IBM Support

IC91982: COMMIT WORK RETURNS -934 ERROR WHEN REMOTE CONNECTION IS TERMINA TED DESPITE THE COMMIT OF ALL LOCAL DML THAT WAS EXECUTED IN STO

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

  • Consider this pseudo definition of a stored procedure (SP):
    
    create procedure nodml()
    
    on exception in (-936)
        commit work;
    end exception;
    
    begin work;
    
    select from remote database on remote server;
    
    insert into local database
    
    system 'sleep 20'
    
    select from same remote database on same remote server as above
    
    end procedure
    
    When the nodml() SP is executed, the first remote select starts
    a remote session
    on the remote server to handle the remote query then it does the
    local insert.
    
    If, during the 'sleep 20', the remote session is terminated with
    a command
    like onmode -z, then when we attempt the 2nd remote select, it
    will fail with
    a -936 error and trigger the 'on exception' code where we try to
    commit.
    
    In this case, the commit work returns a -934 error, but the
    local data insert will be committed.
    
    Now, consider this pseudo procedure definition:
    
    create procedure dml()
    
    on exception in (-936)
        commit work;
    end exception;
    
    begin work;
    
    select from remote database on remote server;
    
    insert into remote database on remote server;
    
    insert into local database
    
    system 'sleep 20'
    
    select from same remote database on same remote server as above
    
    end procedure
    
    When the dml() SP is executed, the first remote select starts a
    remote session
    on the remote server to handle the remote query.  This remote
    session also handles
    the remote insert.  The procedure then does a local insert.
    
    If, during the 'sleep 20', the remote session is terminated with
    a command
    like onmode -z, then when we attempt the 2nd remote select, it
    will fail with
    a -936 error and trigger the 'on exception' code where we try to
    commit.
    
    In this case the commit will return a -934 error and both the
    remote DML and
    the local DML will have been rolled back.
    
    In both cases, the commit returns a -934 error, yet in one case
    the SQL is committed
    and in the other case the SQL is rolled back.
    
    Without further investigation, the user can't be clear as to
    whether or not the data
    was actually committed.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * More than one server is participating in the transaction and *
    * only one server has updated (i.e inserted/delete/updated)    *
    * when remote connection is lost.                              *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * See Error Description                                        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Update to IDS-11.70.xC8                                      *
    ****************************************************************
    

Problem conclusion

  • Problem Fixed In IDS-11.70.xC8
    

Temporary fix

Comments

APAR Information

  • APAR number

    IC91982

  • Reported component name

    INFORMIX SERVER

  • Reported component ID

    5725A3900

  • Reported release

    B50

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-04-29

  • Closed date

    2014-02-26

  • Last modified date

    2014-02-26

  • 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

    INFORMIX SERVER

  • Fixed component ID

    5725A3900

Applicable component levels

  • RB50 PSY

       UP

  • RB70 PSY

       UP

  • RC10 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSGU8G","label":"Informix Servers"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"B50","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
26 February 2014