Direct links to fixes
APAR status
Closed as program error.
Error description
The daemon that collects historical data for the process instance during risk calculation throws the following "ORA-01476: divisor is equal to zero" SQLDataException: [2/23/16 18:58:15:387 ICT] 0000010d wle E CWLLG2229E: An exception occurred in an EJB call. Error: PreparedStatementCallback; SQL [ merge into BPM_BPD_INSTANCE_MEASURES bim using ( select ? as MEASURES_ID, ? as SNAPSHOT_ID, ? as BPD_REF, ? as BPD_FLOW_OBJECT_ID, ? as AVG_TIME_TO_COMPLETION, ? as COMPLETION_COUNT, ? as IS_POTENTIALLY_IN_LOOP from DUAL ) t on (bim.SNAPSHOT_ID = t.SNAPSHOT_ID and bim.BPD_REF = t.BPD_REF and bim.BPD_FLOW_OBJECT_ID = t.BPD_FLOW_OBJECT_ID) when matched then update set bim.AVG_TIME_TO_COMPLETION = (bim.AVG_TIME_TO_COMPLETION * bim.COMPLETION_COUNT + t.AVG_TIME_TO_COMPLETION * t.COMPLETION_COUNT) / (bim.COMPLETION_COUNT + t.COMPLETION_COUNT), bim.COMPLETION_COUNT = bim.COMPLETION_COUNT + t.COMPLETION_COUNT, bim.IS_POTENTIALLY_IN_LOOP = t.IS_POTENTIALLY_IN_LOOP when not matched then insert (MEASURES_ID, SNAPSHOT_ID, BPD_REF, BPD_FLOW_OBJECT_ID, AVG_TIME_TO_COMPLETION, COMPLETION_COUNT, IS_POTENTIALLY_IN_LOOP) values (t.MEASURES_ID, t.SNAPSHOT_ID, t.BPD_REF, t.BPD_FLOW_OBJECT_ID, t.AVG_TIME_TO_COMPLETION, t.COMPLETION_COUNT, t.IS_POTENTIALLY_IN_LOOP) ]; ORA-01476: divisor is equal to zero ; nested exception is java.sql.SQLDataException: ORA-01476: divisor is equal to zero org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [ merge into BPM_BPD_INSTANCE_MEASURES bim using ( select ? as MEASURES_ID, ? as SNAPSHOT_ID, ? as BPD_REF, ? as BPD_FLOW_OBJECT_ID, ? as AVG_TIME_TO_COMPLETION, ? as COMPLETION_COUNT, ? as IS_POTENTIALLY_IN_LOOP from DUAL ) t on (bim.SNAPSHOT_ID = t.SNAPSHOT_ID and bim.BPD_REF = t.BPD_REF and bim.BPD_FLOW_OBJECT_ID = t.BPD_FLOW_OBJECT_ID) when matched then update set bim.AVG_TIME_TO_COMPLETION = (bim.AVG_TIME_TO_COMPLETION * bim.COMPLETION_COUNT + t.AVG_TIME_TO_COMPLETION * t.COMPLETION_COUNT) / (bim.COMPLETION_COUNT + t.COMPLETION_COUNT), bim.COMPLETION_COUNT = bim.COMPLETION_COUNT + t.COMPLETION_COUNT, bim.IS_POTENTIALLY_IN_LOOP = t.IS_POTENTIALLY_IN_LOOP when not matched then insert (MEASURES_ID, SNAPSHOT_ID, BPD_REF, BPD_FLOW_OBJECT_ID, AVG_TIME_TO_COMPLETION, COMPLETION_COUNT, IS_POTENTIALLY_IN_LOOP) values (t.MEASURES_ID, t.SNAPSHOT_ID, t.BPD_REF, t.BPD_FLOW_OBJECT_ID, t.AVG_TIME_TO_COMPLETION, t.COMPLETION_COUNT, t.IS_POTENTIALLY_IN_LOOP) ]; ORA-01476: divisor is equal to zero ; nested exception is java.sql.SQLDataException: ORA-01476: divisor is equal to zero at org.springframework.jdbc.support. SQLExceptionSubclassTranslator.translate (SQLExceptionSubclassTranslator.java:63) at org.springframework.jdbc.support. SQLErrorCodeSQLExceptionTranslator.translate (SQLErrorCodeSQLExceptionTranslator.java:237) at org.springframework.jdbc.core.JdbcTemplate.execute (JdbcTemplate.java:607) at org.springframework.jdbc.core.JdbcTemplate.update (JdbcTemplate.java:792) at org.springframework.jdbc.core.JdbcTemplate.update (JdbcTemplate.java:850) at com.lombardisoftware.server.ejb.runtime.RuntimeServicesCore. mergeMeasureIntoBPDInstanceMeasures(RuntimeServicesCore. java:2236) at sun.reflect.GeneratedMethodAccessor194.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.springframework.aop.support.AopUtils. invokeJoinpointUsingReflection(AopUtils.java:310) at org.springframework.aop.framework. ReflectiveMethodInvocation.invokeJoinpoint (ReflectiveMethodInvocation.java:182) at org.springframework.aop.framework. ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:149) at com.lombardisoftware.utility.spring. TransactionInterceptor$2.call(TransactionInterceptor.java:67) ... Caused by: java.sql.SQLDataException: ORA-01476: divisor is equal to zero at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395) at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521) at oracle.jdbc.driver.T4CPreparedStatement.doOall8 (T4CPreparedStatement.java:205) at oracle.jdbc.driver.T4CPreparedStatement.executeForRows (T4CPreparedStatement.java:1008) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout (OracleStatement.java:1307) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal (OraclePreparedStatement.java:3449) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate (OraclePreparedStatement.java:3530) at oracle.jdbc.driver.OraclePreparedStatementWrapper. executeUpdate(OraclePreparedStatementWrapper.java:1350) at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement. pmiExecuteUpdate(WSJdbcPreparedStatement.java:1187) at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement. executeUpdate(WSJdbcPreparedStatement.java:804) at org.springframework.jdbc.core.JdbcTemplate$2. doInPreparedStatement(JdbcTemplate.java:798) at org.springframework.jdbc.core.JdbcTemplate.execute (JdbcTemplate.java:591) ... 47 more
Local fix
The SQLDataException does not affect the runtime functionality of IBM BPM so you do not have to take immediate action. However, as a temporary workaround, you can prevent the exception from recurring by disabling the at risk calculation for process instances by setting the <enable-process-instance-activity-tracking> configuration property to false. This action affects the at risk date calculated for process instances, mainly the icon displayed in Process Portal for instances, but does not prevent other functionality.
Problem summary
The SQLDataException occurs because there are entries in the BPM_BPD_INSTANCE_MEASURES table where the value of column COMPLETION_COUNT is 0. The COMPLETION_COUNT is the number of completed instances counted for a specific measure. These values should never be 0 because at least one instance must have completed successfully to create an entry.
Problem conclusion
A fix is available for IBM BPM V.8.5.5.0 that prevents entries with COMPLETION_COUNT = 0 to get into the BPM_BPD_INSTANCE_MEASURES table and prevents the exception from occurring. On Fix Central (http://www.ibm.com/support/fixcentral), search for JR55478: 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 APAR or SPR, enter JR55478, and click Continue. When you download fix packages, ensure that you also download the readme file for each fix. Review each readme file for additional installation instructions and information about the fix.
Temporary fix
Not applicable
Comments
APAR Information
APAR number
JR55478
Reported component name
BPM ADVANCED
Reported component ID
5725C9400
Reported release
855
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2016-03-07
Closed date
2016-05-12
Last modified date
2016-05-12
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":"855","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
31 August 2023