Direct links to fixes
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