IBM Support

PM89827: VMM ROLLS BACK GLOBAL TRANSACTION WHEN AN API CALL FAILS

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Virtual member manager (VMM) joins a transaction if
    one is in progress, otherwise it creates a new one. If an
    exception occurs at any point during the API call(such as get,
    search, create, update, delete, etc..), the transaction fails
    and may be rolled back. VMM should provide support to suspend
    the active Global Transaction, and  create a new one internally
    before calling each of the VMM API's. So, when any call fails,
    the global transaction of the caller will remain intact.
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server V8.0 and V8.5 Virtual member         *
    *                  manager (VMM)                               *
    ****************************************************************
    * PROBLEM DESCRIPTION: VMM rollsback global transaction when   *
    *                      a VMM ServiceProvider API call throws   *
    *                      an exception back to the caller         *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    VMM ServiceProvider API calls such as GET, SEARCH,
    LOGIN, UPDATE, CREATE, etc.. currently use active global
    transactions. So when any VMM operation fails internally, it
    marks the global transaction for rollback. VMM cannot
    determine if the transaction succeeded or failed based on the
    exception received.
    

Problem conclusion

  • A new property "useGlobalTransaction" has been added to the
    "contexts" DataObject, which is part of the input DataObject
    while invoking the VMM API.
    
    When this property value is set to false then VMM creates a
    NEW transaction internally, so no global transaction is
    affected. If the property is not defined or its value is
    set to true, then the behavior is as it previously was. VMM
    will not create new transaction for the API calls. This fix is
    applicable for all VMM APIs.
    
    Sample code with 'useGlobalTransaction' property defined:
    DataObject root = SDOHelper.createRootDataObject();
    /* Set 'useGlobalTransaction=false' in the context dataobject
    and instruct VMM to create a new transaction for invoking the
    VMM API */
    DataObject contexts = root.createDataObject(DO_CONTEXTS);
    // DO_CONTEXTS = "contexts"
    contexts.set("key", "useGlobalTransaction");
    contexts.set("value", "false");
    ....
    DataObject entity = SDOHelper.createEntityDataObject(root,
    null, SchemaConstants.DO_GROUP);
    entity.createDataObject(SchemaConstants.DO_IDENTIFIER).set(Schem
    aConstants.PROP_UNIQUE_NAME, principalDN);
    ....
    //Inside PrivilegedExceptionAction.run()
    Service service = new LocalServiceProvider(null);
    return service.get(root);
    
    The fix for this APAR is currently targeted for inclusion in
    fix packs 8.0.0.7, 8.5.5.1.  Please refer to the
    Recommended Updates page for delivery information:
    http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM89827

  • Reported component name

    WEBSPHERE APP S

  • Reported component ID

    5724J0800

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2013-05-27

  • Closed date

    2013-08-09

  • Last modified date

    2013-08-09

  • 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

    WEBSPHERE APP S

  • Fixed component ID

    5724J0800

Applicable component levels

  • R800 PSY

       UP

  • R850 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.0","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
12 January 2022