Version: 1.0.0, by GeekyDesigns
Developer Last Online: Nov 2023
Category: Administrative and Maintenance Tools -
Version: 4.x.x
Rating:
Released: 11-16-2009
Last Update: Never
Installs: 85
Code Changes Additional Files
No support by the author.
What is Suppress-o-matic?
Suppress-o-matic is a change to the way vBulletin handles database error emails. It limits sending the same error email repeatedly to your inbox every time a database error is generated. On a busy site if a table is crashed or mysql itself goes down you could recieve several thousand emails. This causes the email server to bog down, and possibly the server itself if there is enough traffic generating emails.
Why do I want Suppress-o-matic?
It should be pretty clear, you still get the vital information that your vBulletin forum is offline for whichever reason, without the hassle of having to delete and manage your inbox afterwords.
Why do I have to edit the files?
If the database is down, there is no way to get to the plugins. Plugins are stored in the vBulletin database.
Isn't there a vBulletin Option for this?
There is an option to disable some emails, assuming that the settings table can be read. If it cannot then it doesn't work. It even states this on the option itself.
Can't I just remove my tech email from the config file?
This doesn't keep you up to date. What if a serious error like error 28 (no space left) crops up? This means that your server could potentially have serious issues. Not resolving these problems could cause major issues.
Are you considering adding more functionality to Suppress-o-matic?
We have plans to add a repair feature at some point in time, with an on/off switch.
What is SQlite?
SQLite is a tiny database engine that is found in PHP. It is very lite, and requires only that php have the extension. There is no other dedicated server for it. You can find more information here: http://en.wikipedia.org/wiki/SQLite
Whats required?
PHP5
SQLITE2 or newer (found in most php installations)
1 file edit
1 file to upload
If you need a clean database for this mod this can be used:
(It said mine was corrupt)
Edit the path and run it with "php -f createdb.php" from the command line.
PHP Code:
<?php // createdb.php // Run once module to create an empty SQLite database for this mod // (c) Kym Farnik 2014 - permission given to use/modify as needed.
$sqliteerror=''; define('DIR','/home/XXXXXX/public_html/forum'); // Edit path to YOUR forum folder
unlink(DIR .'/sqlitedberrors.sqlite'); // delete existing DB
// Create a new Db and create the table and index if ($sqlitedb = new SQLiteDatabase(DIR .'/sqlitedberrors.sqlite', 0666, $sqliteerror)) { $sqlitedb->unbufferedQuery("CREATE TABLE dberrors ( time TIME PRIMARY KEY, error TEXT, errorcode INT(10), ipaddress VARCHAR(39) , script VARCHAR(255) );"); $sqlitedb->unbufferedQuery("CREATE INDEX dberrors_time ON dberrors(time);"); }
If you need a clean database for this mod this can be used:
(It said mine was corrupt)
Edit the path and run it with "php -f createdb.php" from the command line.
PHP Code:
<?php // createdb.php // Run once module to create an empty SQLite database for this mod // (c) Kym Farnik 2014 - permission given to use/modify as needed.
$sqliteerror=''; define('DIR','/home/XXXXXX/public_html/forum'); // Edit path to YOUR forum folder
unlink(DIR .'/sqlitedberrors.sqlite'); // delete existing DB
// Create a new Db and create the table and index if ($sqlitedb = new SQLiteDatabase(DIR .'/sqlitedberrors.sqlite', 0666, $sqliteerror)) { $sqlitedb->unbufferedQuery("CREATE TABLE dberrors ( time TIME PRIMARY KEY, error TEXT, errorcode INT(10), ipaddress VARCHAR(39) , script VARCHAR(255) );"); $sqlitedb->unbufferedQuery("CREATE INDEX dberrors_time ON dberrors(time);"); }
?>
I assume you could also reupload a clean version of the file we provided, right?
$sqliteerror=''; define('DIR','/home/XXXXXX/public_html/forum'); // Edit path to YOUR forum folder
// Open the database if ($sqlitedb = new SQLiteDatabase(DIR .'/sqlitedberrors.sqlite', 0666, $sqliteerror)) { $sqlitequery = $sqlitedb->unbufferedQuery("SELECT * FROM dberrors ORDER BY time DESC"); while ($sqliteresult = $sqlitequery->fetch(SQLITE_ASSOC)) { echo '"'.date("Y-m-d H:i:s",$sqliteresult['time']).'",'. '"'.$sqliteresult['error'].'",'. $sqliteresult['errorcode'].','. '"'.$sqliteresult['ipaddress'].'",'. '"'.$sqliteresult['script'].'"'."\n"; } } else die ($sqliteerror); // the SQLite failed -- yuck