Re: [bdbxml] General questions regarding transactions et al
Moe <[email protected]> Thu, 22 Sep 2005 22:11:56 +0000 (UTC)
| Newsgroups | gmane.comp.db.dbxml.general |
|---|---|
| Message-ID | <[email protected]> |
George Feinberg <gmf@...> writes: > > > The fact that you are getting DB_LOCK_NOTGRANTED > implies that you've set some configuration asking > for either a lock timeout or set DB_LOCK_NOWAIT. > > What configuration options are you using for your > Environment? > > Do you really need to be using transactions in the first place? > If you don't need them, you can simplify things. > > The error, DB_LOCK_NOTGRANTED will occur when > the system would otherwise deadlock. This means > that when you perform your updateDocument() call, > some thread (perhaps the current one) is holding > locks that are required for the update to happen. > > A possible cause is not committing a transaction, or > mixing (by accident) transactional and non-transactional > operations. > > Regards, > > George > > > I'm still trying to get my app running, but the DB_LOCK_NOTGRANTED- > > error > > remains. Here's what the console's up to when I start the program: > > > > Updating documents > > Found 1 matching the expression <--check, if file's present > > Updating document: > > Updating with new document <--if so, update the document in > > the container > > > > ---ENVIRONMENT DETAILS------ <-- some environment & transaction > > stuff > > max lockers: 100000 > > deadlock detection value: 0 > > reg size: 98304 > > stats (last) id: 964 > > curmaxid id: 2147483647 > > ---TRANSACTION DETAILS------ > > transaction commits: 13 > > max transactions (getMaxTxns()): 20 > > last transaction id: -2147483634 > > no. of aborted transactions: 0 > > no. of active transactions: 1 > > reg size (getRegSize()): 16384 > > max active transactions(getMaNactive()): 2 > > > > Error performing document update against mainDataStorage.dbxml > > Message: Error: Db::del: DB_LOCK_NOTGRANTED: Lock not granted > > Exception in thread "main" com.sleepycat.dbxml.XmlException: Error: > > Db::del: > > DB_LOCK_NOTGRANTED: Lock not granted, errcode = DATABASE_ERROR > > at > > com.sleepycat.dbxml.dbxml_javaJNI.XmlContainer_updateDocument__SWIG_1( > > Native > > Method) > > at com.sleepycat.dbxml.XmlContainer.updateDocument > > (XmlContainer.java:361) > > at ws.updateFile.doUpdateDocument(updateFile.java:109) > > at ws.updateFile.updateDocument(updateFile.java:247) > > at ws.updateFile.main(updateFile.java:275) > > > > Are there some general issues I should be aware of? I really don't > > get it. Does > > "max transactions" really have anything to do with the transactions > > committed? > > If so, why should the actual stat be a problem? I've used to work > > with sql data > > bases so this whole problem's just confusing me, stabbing around in > > the darkness > > of transactional void. What would be the best approach to solve the > > problem? Any > > clever way of debugging faulty (berkeley db xml) database actions? > > > > Thnx in advance, > > > > M.B. > > ------------------------------------------ > To remove yourself from this list, send an > email to xml-unsubscribe@... > > Hi, thank you for your fast response. The environment configuration's like this: config.setAllowCreate(true); config.setInitializeCache(true); config.setCacheSize(60 * 1024 * 1024); config.setTransactional(true); config.setInitializeLocking(true); config.setLockTimeout(100); //TimeOut-Zeit in Millisekunden config.setMaxLocks(10000); config.setMaxLockers(100000); config.setMaxLockObjects(10000); config.setLockDetectMode(LockDetectMode.EXPIRE); config.setInitializeLogging(true); config.setLogAutoRemove(true); config.setErrorStream(System.err); config.setInitializeRegions(true); config.setInitializeReplication(false); config.setThreaded(true); config.setTxnTimeout(1000); I don't know if I need transactions, thinking about, probably not, since my little app will never be used in some critical application environment. Just exploring new ways here. What other options can I chose from? Maybe working with XmlModify instead? Kind regards, M.B. ------------------------------------------ To remove yourself from this list, send an email to [email protected]