Bang in the middle of my trip to Los Angeles for PDC, on 15th November, this GraffitiCMS site you are reading (https://boyet.com/) went down. Hard. It seemed to happen just after my last post as well.
I added a "site under repair"
default.html file to the root directory while I investigated (it would be picked up first if no filename is entered in a browser address bar). I had absolutely no idea what was wrong. I couldn't log into the site (indeed, the main page didn't even come up) to check out the error logs. The site is hosted on GoDaddy, but when logged into that I couldn't see anywhere that described what was up. I could FTP into the file system on GoDaddy's servers, so I did make a backup just in case. I even reset the whole application on GoDaddy, removing it from IIS, and re-adding it, hoping that would help. After downloading the whole site via FTP, I attached to the local version with the IIS running on may laptop and it seemed to come up just fine.
Another problem was that even when the main page was up (it was as slow as heck in doing so), clicking on an in-site link would crash the application, producing the GraffitiCMS error page. Again, no idea why.
Finally I decided to take a look this evening. I downloaded the site again, this time to my desktop. I attached the local site to IIS7 and investigated. Pretty soon I got a server error (a Yellow Screen of Death) which indicated that I had a duplicate key in
graffiti_Post_Statistics. OK, then. Onto the next problem.
I'm using GraffitiCMS in its default mode, using a VistaDB database. The only database management tool for VistaDB databases is part of the VistaDB database engine itself. Using a helpful post from DamianM (Migrating Graffiti CMS from VistaDB to SQL Server), I downloaded a trial version of VistaDB 3 and installed it. I then ran the Data Builder tool that's part of the product to repair and pack the database. I still got a duplicate key error on running the site, so I went back into the tool and deleted the record causing the key violation. After that all was fine: the site came up and I could navigate through to in-site URLs. I then uploaded the fixed database to GoDaddy's servers and the public site worked perfectly again.
However, this does not bode well for the future. The VistaDB trial I installed runs out in 29 days (it's a 30 day trial). VistaDB is up to version 4 now, and DamianX intimates that the database file format has changed; in other words, you have to use the Data Builder 3 tool to fix a VistaDB 3 database. I'm going to email Jason Short, the owner of VistaDB, to verify whether this is true or not (I can't find any such information on their site). If so, once the trial runs out, I'm SOL if this problem happens again. (Of course, if the current version of VistaDB works with VDB3 files — without upgrading them to some VDB4 format — then this is no problem.)
Also, although Graffiti comes with a Data Mover application (and you can copy the data for your site from one VistaDB database to another blank one), it would not have solved this particular problem. I had to physically delete the erroneous record from the table. At the very least, Telligent should have provided a simple database repair app with GraffitiCMS(heck, VistaDB provide the source code for Data Builder so you can do exactly that). But then again, Telligent don't particularly care about GraffitiCMS any more — version 2 was due "in early summer", but we now have snow here in Colorado with no new version in sight.
In conclusion, the short-term moral of the tale is that it's time to migrate this site to SQL Server. Not dissing the VistaDB folks here, but a database needs an easily downloadable management tool.
And the long-term moral is to use some other blogging engine.
Kool & the Gang - Jungle Boogie
(from Gold (CD 1))