IBM Support

JR57628: PROCESS INSTANCES FAIL ON SQL SERVER IN HIGH-LOAD SCENARIOS

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

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":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
28 April 2017