[jboss-user] [jBPM] New message: "Re: jbpm 4.3 - org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update"

Martin Porter do-not-reply at jboss.com
Wed Jan 27 03:41:29 EST 2010


User development,

A new message was posted in the thread "jbpm 4.3 - org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update":

http://community.jboss.org/message/522457#522457

Author  : Martin Porter
Profile : http://community.jboss.org/people/jedizippy

Message:
--------------------------------------------------------------
Hi ZT,
 
Well the current status is that we still do not know what is causing the issue. There is without any doubt a bug in the id generation somewhere but we have not been able to nail down where the root cause is. We get integrity constraint violations in random places throughout the workflow and its not reproducable. Also our workflow is quite complex but it is just a sequence of calls to a generic subprocess that handles retry and manual error handling processing and these subprocesses all have continue="async" on.
 
We found that removing continue=async on our custom and task nodes in that subprocess caused the Constraint Violation to be reproducable every time. Adding continue=async solved the issue so presumably forcing the subprocess state to persist to the DB somehow prevents the duplicate ID generation. But its flaky.
 
However just this morning for example l ran our test and it failed at the very start with this same Constraint violation again. The process is started and the first step is a <java> with continue="async". We had to add this so the caller will get immediate return and not wait for the process. We tried adding continue="async" on the <start> but we get NullPointerException then (its been like that since 4.1) so we have this Java activity which just logs a message and then moves onto the first subprocess call. At this first java activity we got our Constraint Violation so it happened when jbpm attempted to persist the main process (not subprocess). We invoke (create) our processes using MDB's and in this case the second time the MDB was fired and tried to create the process it worked.......
 
We are using out of the box job executor with no changes so according to the docs that is 3 threads (but I have not had time to verify that). We are running on WLS 11g but I am unable at the moment to verify which JTA configuration we should be using. As soon as you mention transactions on this forum it all goes quiet. All the questions remain unanswered. I added a previous (unanswered) post about this a few days ago.
 
We are due to deliver into end to end testing next Friday but to be honest given the current status that seems increasingly unlikey as that environment is clustered etc etc and we cant even get this to run properly on a single WLS instance at the moment.
 
Will update with any further findings !.
 
One option might be to write our own ID Generator and use an Oracle sequence but not sure how much effort that will be. But it might be an option we have to consider.
 
Cheers
MP

--------------------------------------------------------------

To reply to this message visit the message page: http://community.jboss.org/message/522457#522457




More information about the jboss-user mailing list