IBM Support

JR55492: EVENT MANAGER TASK WON'T LOAD TASK DUE TO CWLLG0583E NUMERIC OVERFLOW WHEN DISCRIMINATOR FIELD EXCEEDS MAX FIELD VALUE

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as fixed if next.

Error description

  • When you run a process in IBM Business Process Manager (BPM),
    the system runs system tasks asynchronously by using the event
    manager. The tasks for the event manager are stored in the
    LSW_EM_TASK table. This table contains a DISCRIMINATOR column
    that is filled with incrementing numbers to guarantee the
    runtime order of the tasks. When the number reaches 2147483648,
    you see an exception like the following exception in the server
    SystemOut.log file:
    
    Caused by: com.ibm.db2.jcc.am.SqlSyntaxErrorException:
    [jcc][10177][11615][4.18.60] Invalid data conversion: Requested
    conversion would result in a loss of precision of 2147483648.
    ERRORCODE=-4461, SQLSTATE=42815
     at com.ibm.db2.jcc.am.kd.a(kd.java:747)
     at com.ibm.db2.jcc.am.kd.a(kd.java:66)
     at com.ibm.db2.jcc.am.kd.a(kd.java:111)
     at com.ibm.db2.jcc.am.lc.d(lc.java:1680)
     at com.ibm.db2.jcc.am.mc.H(mc.java:1209)
     at com.ibm.db2.jcc.am.ResultSet.getIntX(ResultSet.java:849)
     at com.ibm.db2.jcc.am.ResultSet.getInt(ResultSet.java:829)
     at com.ibm.ws.rsadapter.jdbc.WSJdbcResultSet.getInt
      (WSJdbcResultSet.java:1480)
     at com.lombardisoftware.server.scheduler.TaskLoader.
      executeLoaderFindTasksInExistingTx(TaskLoader.java:1064)
    
    Consequently, the event manager does not run those tasks.
    Process instances stay in the Active state. Other operations
    that also schedule asynchronous work by using the event manager
    also stop processing tasks.
    
      The exception that occurs when Oracle is the database provider
    is
    [9/3/18 2:58:01:385 EDT] 00000125 TaskLoader  E  CWLLG0583E: The
     following error occurred while loading the 40 tasks to the
    queue: -101
    
                     com.lombardisoftware.core.TeamWorksException:
    Numeric Overflow
    
    at
    com.lombardisoftware.core.TeamWorksException.asTeamWorksExceptio
    n(TeamWorksException.java:136)
    
    at
    com.lombardisoftware.utility.db.DbUtils$2.doInTransaction(DbUtil
    s.java:127)
    
    at
    com.lombardisoftware.server.core.TXCommand$3.call(TXCommand.java
    :93)
    
    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:91)
    
    at
    com.lombardisoftware.utility.db.DbUtils.executeInTransaction(DbU
    tils.java:122)
    
    at
    com.lombardisoftware.server.scheduler.TaskLoader.loadTasks(TaskL
    oader.java:923)
    
    ...
    
    Caused by: java.sql.SQLException: Numeric Overflow
     at
    oracle.jdbc.driver.NumberCommonAccessor.throwOverflow(NumberComm
    onAccessor.java:4170)
     at
    oracle.jdbc.driver.NumberCommonAccessor.getInt(NumberCommonAcces
    sor.java:119)
     at
    oracle.jdbc.driver.GeneratedStatement.getInt(GeneratedStatement.
    java:217)
     at
    oracle.jdbc.driver.GeneratedScrollableResultSet.getInt(Generated
    ScrollableResultSet.java:522)
     at
    com.ibm.ws.rsadapter.jdbc.WSJdbcResultSet.getInt(WSJdbcResultSet
    .java:1480)
     at
    com.lombardisoftware.server.scheduler.TaskLoader.executeLoaderFi
    ndTasksInExistingTx(TaskLoader.java:1064)
    

Local fix

  • For DB2 as your database, follow this procedure to
    lower the values in the DISCRIMINATOR column and to reset the
    sequence. Microsoft SQLServer does not have the required
    capabilities.  For Oracle, see the instructions below.
    
    1. Stop the application cluster
    2. Run the following commands against your database to lower the
    values in the DISCRIMINATOR column and to reset the sequence to
    start with the starting value again.
    
    
    
    ALTER TABLE LSW_EM_TASK ALTER COLUMN DISCRIMINATOR DROP
    IDENTITY;
    UPDATE LSW_EM_TASK SET DISCRIMINATOR=DISCRIMINATOR-(SELECT
    MAX(DISCRIMINATOR) - 2147483647 FROM LSW_EM_TASK);
    ALTER TABLE LSW_EM_TASK ALTER COLUMN DISCRIMINATOR SET GENERATED
    ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1, CACHE 1000);
    
    3. Restart the application cluster
    
    --------------------------------------------------
       For Oracle
    1. stop all of the BPM AppTargets (process servers)
    
    
    
    2. drop the unique part of the discriminator table. run this
    command on the database
    
    
    
    DROP SEQUENCE SEQ_TASK_DISCRIMINATOR;
    
    
    
    
    
    3. alter the values in the event manager columns
    
    
    
    3.1
    
    create table tempTable (
    
    "TASK_ID" NUMBER(12,0) NOT NULL ENABLE,
    
    "RN" NUMBER(12,0) NOT NULL ENABLE
    
    )
    
    
    
    3.2
    
    insert into tempTable
    
    select * from (
    
    SELECT
    
    TASK_ID,
    
    ROW_NUMBER() OVER(ORDER BY SCHEDULED_TIME, DISCRIMINATOR) RN
    
    FROM LSW_EM_TASK
    
    )
    
    
    
    3.3
    
    update LSW_EM_TASK t set t.DISCRIMINATOR = (select RN from
    tempTable where tempTable.task_id = t.task_id)
    
    
    
    3.4
    
    drop table tempTable
    
    
    
    4. reset the value that starts the generation of the data.
    (doing 1 as that is where the values started in the LSW_EM_TASK
    table
    
    
    
    CREATE SEQUENCE SEQ_TASK_DISCRIMINATOR INCREMENT BY 1 START WITH
    1 NOMINVALUE NOMAXVALUE NOCYCLE CACHE 20 ORDER;
    

Problem summary

  • The IBM BPM system incorrectly used the Java int data type to
    read the values from the DISCRIMINATOR column, which is greater
    than the maximum possible int value of 2147483647.
    
    PROBLEM CONCLUSION
    A fix will be included in an upcoming IBM BPM V8.5 cumulative
    maintenance vehicle.
    
    To determine whether the cumulative fix is available and
    download it if it is, complete the following steps on Fix
    Central:
    
    1. Select IBM Business Process Manager with your edition from
      the product selector, the installed version to the fix pack
      level, and your platform, and then click Continue.
    
    2. Select Text, enter ?cumulative fix?, and click Continue.
    

Problem conclusion

Temporary fix

  • Not applicable
    

Comments

APAR Information

  • APAR number

    JR55492

  • Reported component name

    BPM ADVANCED

  • Reported component ID

    5725C9400

  • Reported release

    856

  • Status

    CLOSED FIN

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-03-08

  • Closed date

    2016-05-12

  • Last modified date

    2018-09-04

  • 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

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSFTDH","label":"IBM Business Process Manager Standard"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"856","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
31 August 2023