Direct link to fix
APAR status
Closed as program error.
Error description
When you use Microsoft SQL Server as the IBM Business Process Manager (BPM) database and you start numerous process instances over a short time, you receive the following exception: CWLLG0323E: An exception occurred in saveSearchableValues, reason:com.microsoft.sqlserver.jdbc.SQLServerException: Distributed transaction completed. Either enlist this session in a new transaction or the NULL transaction.. com.microsoft.sqlserver.jdbc.SQLServerException: Distributed transaction completed. Either enlist this session in a new transaction or the NULL transaction. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabase Error(SQLServerException.java:216) at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQ LServerStatement.java:1515) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecut ePreparedStatement(SQLServerPreparedStatement.java:404) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmt ExecCmd.doExecute(SQLServerPreparedStatement.java:350) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:56 96) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand( SQLServerConnection.java:1715) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(S QLServerStatement.java:180) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement (SQLServerStatement.java:155) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeU pdate(SQLServerPreparedStatement.java:314) at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpda te(WSJdbcPreparedStatement.java:1187) at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate( WSJdbcPreparedStatement.java:804) at com.lombardisoftware.bpd.runtime.engine.BPDInstanceDAO.updateExi stingBDVariables(BPDInstanceDAO.java:1642) at com.lombardisoftware.bpd.runtime.engine.BPDInstanceDAO.saveSearc hableValues(BPDInstanceDAO.java:1296) at com.lombardisoftware.bpd.runtime.engine.BPDInstanceDAO.save(BPDI nstanceDAO.java:412) at com.lombardisoftware.bpd.runtime.engine.quartz.AbstractNotificat ionBpdTask.doWithLock(AbstractNotificationBpdTask.java:78) at com.lombardisoftware.bpd.runtime.engine.quartz.DbNotificationBpd Task.doWithLock(DbNotificationBpdTask.java:56) at com.lombardisoftware.bpd.runtime.engine.quartz.AbstractBpdTask$1 .doExecuteDuringLock(AbstractBpdTask.java:97) at com.lombardisoftware.bpd.runtime.engine.quartz.AbstractBpdTask$1 .doExecuteDuringLock(AbstractBpdTask.java:79) at com.lombardisoftware.bpd.runtime.engine.util.LockBPDInstanceComm and$1.doInTransaction(LockBPDInstanceCommand.java:69) at com.lombardisoftware.server.core.TXCommand$2.call(TXCommand.java :85) at com.lombardisoftware.utility.spring.ProgrammaticTransactionSuppo rt.executeInExistingTransaction(ProgrammaticTransactionSupport.j ava:748) at com.lombardisoftware.utility.spring.ProgrammaticTransactionSuppo rt.execute(ProgrammaticTransactionSupport.java:379) at com.lombardisoftware.server.core.TXCommand.executeInDeadlockRetr yLoop(TXCommand.java:83) at com.lombardisoftware.bpd.runtime.engine.util.LockBPDInstanceComm and.execute(LockBPDInstanceCommand.java:81) at com.lombardisoftware.bpd.runtime.engine.quartz.AbstractBpdTask$2 .doInTransaction(AbstractBpdTask.java:119) at com.lombardisoftware.bpd.runtime.engine.quartz.AbstractBpdTask$2 .doInTransaction(AbstractBpdTask.java:115) at com.lombardisoftware.server.core.TXCommand$2.call(TXCommand.java :85) at com.lombardisoftware.utility.spring.ProgrammaticTransactionSuppo rt$3.doInTransaction(ProgrammaticTransactionSupport.java:501) at org.springframework.transaction.jta.WebSphereUowTransactionManag er$UOWActionAdapter.run(WebSphereUowTransactionManager.java:306) at com.ibm.ws.uow.embeddable.EmbeddableUOWManagerImpl.runUnderNewUO W(EmbeddableUOWManagerImpl.java:791) at com.ibm.ws.uow.embeddable.EmbeddableUOWManagerImpl.runUnderUOW(E mbeddableUOWManagerImpl.java:370) at org.springframework.transaction.jta.WebSphereUowTransactionManag er.execute(WebSphereUowTransactionManager.java:252) at com.lombardisoftware.utility.spring.ProgrammaticTransactionSuppo rt.executeInNewTransaction(ProgrammaticTransactionSupport.java:4 89) at com.lombardisoftware.utility.spring.ProgrammaticTransactionSuppo rt.execute(ProgrammaticTransactionSupport.java:350) at com.lombardisoftware.server.core.TXCommand.executeInDeadlockRetr yLoop(TXCommand.java:83) at com.lombardisoftware.server.core.TXCommand.execute(TXCommand.jav a:72) at com.lombardisoftware.bpd.runtime.engine.quartz.AbstractBpdTask.e xecute(AbstractBpdTask.java:115) at com.lombardisoftware.bpd.runtime.engine.quartz.AbstractBpdTask.e xecute(AbstractBpdTask.java:60) at com.lombardisoftware.server.scheduler.Engine.execute(Engine.java :1004) at com.lombardisoftware.server.scheduler.Engine.executeThreadTasks( Engine.java:730) at com.lombardisoftware.server.scheduler.Engine$1.run(Engine.java:6 77) PRODUCTS AFFECTED IBM BPM Advanced IBM BPM Standard IBM BPM Express
Local fix
Problem summary
When the SQL Server Database Engine detects deadlock cycles within SQL Server, it identifies one of the sessions as a deadlock victim and the current transaction is terminated. In these cases, the IBM BPM engine provides a transaction retry logic that does not run if the deadlock happens while retrieving variable values for a process instance. Because the transaction is already terminated, subsequent executions of statements in the context of this transaction fail.
Problem conclusion
A fix will be available in IBM BPM V8.5.7 cumulative fix 2017.06 that ensures the retry logic runs correctly when a deadlock happens while retrieving the variable values for a process instance.
Temporary fix
Comments
APAR Information
APAR number
JR57628
Reported component name
BPM ADVANCED
Reported component ID
5725C9400
Reported release
857
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2017-03-21
Closed date
2017-04-28
Last modified date
2017-04-28
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
BPM STANDARD
Fixed component ID
5725C9500
Applicable component levels
R857 PSY
UP
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSFTDH","label":"IBM Business Process Manager Standard"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"857","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
28 April 2017