Hi all,
I have posted the same problem before (and got no answer at all) but since then we came
to find where the problem was, so I reply for the sake of the list members :-)
Don't know if you ahve the same config but we found that it is a problem with the MAX key
generator that, when used with the generic engine, does not lock the last row as it should
(or as it does when using a specific engine) then the next call to db.create will grab the
same oid which is already locked.
The problem is not solved but we found that specifying the engine to use is a workaround
(at least with db2 which is the one we're using)
Regards,
Claude
-----Original Message-----
From: Arun Sudhakaran [mailto:[EMAIL PROTECTED]]
Sent: 30 October 2002 11:41
To: [EMAIL PROTECTED]
Subject: [castor-dev] Key Generator Failure
Hi all,
Im using JBoss 3.0 with Castor 0.9.3.21.The problem is that when i try to perform a write operation on the database from 4 different processes it throws the following exception :
2002-10-30 15:44:43,544 ERROR [STDERR] org.exolab.castor.jdo.LockNotGrantedException: Lock is already existed for the new oid.
2002-10-30 15:44:43,564 ERROR [STDERR] at org.exolab.castor.persist.LockEngine$TypeInfo.rename(Unknown Source)
2002-10-30 15:44:43,564 ERROR [STDERR] at org.exolab.castor.persist.LockEngine$TypeInfo.access$400(Unknown Source)
2002-10-30 15:44:43,564 ERROR [STDERR] at org.exolab.castor.persist.LockEngine.create(Unknown Source)
2002-10-30 15:44:43,564 ERROR [STDERR] at org.exolab.castor.persist.TransactionContext.prepare(Unknown Source)
2002-10-30 15:44:43,564 ERROR [STDERR] at org.exolab.castor.jdo.engine.DatabaseImpl.beforeCompletion(DatabaseImpl.java:561)
2002-10-30 15:44:43,564 ERROR [STDERR] at org.jboss.tm.TxCapsule.doBeforeCompletion(TxCapsule.java:1331)
2002-10-30 15:44:43,564 ERROR [STDERR] at org.jboss.tm.TxCapsule.commit(TxCapsule.java:328)
2002-10-30 15:44:43,564 ERROR [STDERR] at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:74)
2002-10-30 15:44:43,564 ERROR [STDERR] at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:190)
2002-10-30 15:44:43,564 ERROR [STDERR] at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:61)
2002-10-30 15:44:43,574 ERROR [STDERR] at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:129)
2002-10-30 15:44:43,574 ERROR [STDERR] at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:166)
2002-10-30 15:44:43,574 ERROR [STDERR] at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:313)
2002-10-30 15:44:43,574 ERROR [STDERR] at org.jboss.ejb.Container.invoke(Container.java:705)
2002-10-30 15:44:43,574 ERROR [STDERR] at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:491)
2002-10-30 15:44:43,574 ERROR [STDERR] at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:98)
2002-10-30 15:44:43,574 ERROR [STDERR] at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:102)
2002-10-30 15:44:43,574 ERROR [STDERR] at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:73)
2002-10-30 15:44:43,574 ERROR [STDERR] at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:76)
2002-10-30 15:44:43,574 ERROR [STDERR] at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:111)
2002-10-30 15:44:43,574 ERROR [STDERR] at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76)
2002-10-30 15:44:43,574 ERROR [STDERR] at $Proxy44.submitAnswer(Unknown Source)
2002-10-30 15:44:43,574 ERROR [STDERR] at com.softex.mobilequiz.server.servlet.action.MQSGetResults.executeAction(MQSGetResults.java:176)
2002-10-30 15:44:43,584 ERROR [STDERR] at com.softex.mobilequiz.server.servlet.action.MQSEntryPoint.execute(MQSEntryPoint.java:159)
2002-10-30 15:44:43,584 ERROR [STDERR] at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:453)
2002-10-30 15:44:43,584 ERROR [STDERR] at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:266)
2002-10-30 15:44:43,584 ERROR [STDERR] at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292)
2002-10-30 15:44:43,584 ERROR [STDERR] at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)
2002-10-30 15:44:43,584 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
2002-10-30 15:44:43,584 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
2002-10-30 15:44:43,594 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
2002-10-30 15:44:43,594 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
2002-10-30 15:44:43,594 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
2002-10-30 15:44:43,594 ERROR [STDERR] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
2002-10-30 15:44:43,594 ERROR [STDERR] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
2002-10-30 15:44:43,594 ERROR [STDERR] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
2002-10-30 15:44:43,594 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
2002-10-30 15:44:43,594 ERROR [STDERR] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
2002-10-30 15:44:43,594 ERROR [STDERR] at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
2002-10-30 15:44:43,594 ERROR [STDERR] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
2002-10-30 15:44:43,594 ERROR [STDERR] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
2002-10-30 15:44:43,594 ERROR [STDERR] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
2002-10-30 15:44:43,594 ERROR [STDERR] at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
2002-10-30 15:44:43,594 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
2002-10-30 15:44:43,594 ERROR [STDERR] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
2002-10-30 15:44:43,604 ERROR [STDERR] at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
2002-10-30 15:44:43,604 ERROR [STDERR] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
2002-10-30 15:44:43,604 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
2002-10-30 15:44:43,704 ERROR [STDERR] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
2002-10-30 15:44:43,704 ERROR [STDERR] at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
2002-10-30 15:44:43,704 ERROR [STDERR] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
2002-10-30 15:44:43,704 ERROR [STDERR] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
2002-10-30 15:44:43,704 ERROR [STDERR] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
2002-10-30 15:44:43,704 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
2002-10-30 15:44:43,714 ERROR [STDERR] at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
2002-10-30 15:44:43,714 ERROR [STDERR] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
2002-10-30 15:44:43,714 ERROR [STDERR] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
2002-10-30 15:44:43,714 ERROR [STDERR] at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:429)
2002-10-30 15:44:43,714 ERROR [STDERR] at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:495)
2002-10-30 15:44:43,714 ERROR [STDERR] at java.lang.Thread.run(Thread.java:536)
2002-10-30 15:44:43,714 ERROR [org.jboss.jdo.castor.CastorJDOImpl] Exception
org.exolab.castor.jdo.PersistenceException: Nested error: Key Generator Failure. Duplicated Identity is generated!
at org.exolab.castor.persist.LockEngine.create(Unknown Source)
at org.exolab.castor.persist.TransactionContext.prepare(Unknown Source)
at org.exolab.castor.jdo.engine.DatabaseImpl.beforeCompletion(DatabaseImpl.java:561)
at org.jboss.tm.TxCapsule.doBeforeCompletion(TxCapsule.java:1331)
at org.jboss.tm.TxCapsule.commit(TxCapsule.java:328)
at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:74)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:190)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:61)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:129)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:166)
at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:313)
at org.jboss.ejb.Container.invoke(Container.java:705)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:491)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:98)
at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:102)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:73)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:76)
at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:111)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76)
at $Proxy44.submitAnswer(Unknown Source)
at com.softex.mobilequiz.server.servlet.action.MQSGetResults.executeAction(MQSGetResults.java:176)
at com.softex.mobilequiz.server.servlet.action.MQSEntryPoint.execute(MQSEntryPoint.java:159)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:453)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:266)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:429)
at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:495)
at java.lang.Thread.run(Thread.java:536)
My guess is that since a Key Generator Failure occured,the lock previouly acquired on that object does not get released and it thorws the LockNotGrantedException when another process tries to lock it. This would lead to the question as to why the Key Generator Failure occured in the first place.
I'd already seen 2 or 3 postings on the same matter but there were no replies to that , and i would like to have an answer to this solution at the earliest.
Thanking you,
Arun Sudhakaran,
Softex Computer Consultants.
E-Mail : [EMAIL PROTECTED]
__________________________________________________________________________
· This email and any files transmitted with it are CONFIDENTIAL and intended
solely for the use of the individual or entity to which they are addressed.
· Any unauthorized copying, disclosure, or distribution of the material within
this email is strictly forbidden.
· Any views or opinions presented within this e-mail are solely those of the
author and do not necessarily represent those of Odyssey Asset Management
Systems SA unless otherwise specifically stated.
· An electronic message is not binding on its sender. Any message referring to
a binding engagement must be confirmed in writing and duly signed.
· If you have received this email in error, please notify the sender immediately
and delete the original.
