IBM Support

JR55478: SQLDATAEXCEPTION "ORA-01476: DIVISOR IS EQUAL TO ZERO" OCCURS FREQUENTLY

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

  • 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

  • R855 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":"855","Edition":"","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
12 May 2016