[bdbxml] DbWrapper Error and Subsequent Database Failure
"Mason, Mark L." <[email protected]>
| Newsgroups | gmane.comp.db.dbxml.general |
|---|---|
| Message-ID | <97E02A05E253E74B826FDEFF342AED8E7D9742@txsa01-mail01.ad.gd-ais.com> |
Hello, I am running DbXml v2.1.4 on a Fedora Core 3 O.S. x86 machine. I have built two wrapper classes around the v2.1.4 C++ API. The base class opens/configures the environment, calls up the manager, opens/configures the container, loads the container with the root node, sets global pointers to XmlQueryContext and XmlUpdateContext objects that the XmlManager brings into existence, etc... All this is done in sequence within the blank constructor of the base class. And the destructor cleans up the global pointers created in the constructor. The second class handles the "SQL" transactions with the container. Other applications instantiate these two classes to query the database. While experimenting, I ran a script that started and stopped a certain application multiple times. The start/stop trials, in turn, constructed and destroyed the DbXml objects associated with the two wrapper classes multiple times. On the nth (n >= 20) start/stop, the application hangs, and the following error is generated "under the hood": <application_name>: DbWrapper.cpp:46: virtual DbXml::DbWrapper::~DbWrapper(): Assertion '0' failed. On subsequent trials, the application hangs again, while the following error message is generated: Message: PANIC: fatal region error detected; run recovery And later still, the application hangs again, and the following error message is generated: In DbException. Error with XmlManager.prepare(): Db::cursor:DB_RUNCRECOVERY: Fatal Error, run database recovery By this time, the application is hanging every time. I verified the code deletes all its globals and closes the database environment when the destructor is called. However, for some reason, after multiple times (>20) the database starts crashing. This is a real show stopper. Can you help? I can send on some code snippets, if necessary. Thanks, Mark Mason Senior Software Engineer General Dynamics Advanced Information Systems 210-442-4347