Invalid Handle exception in realRemoveAssociation and KPSA freeze.

Invalid Handle exception in realRemoveAssociation and KPSA freeze.

book

Article ID: KB0088537

calendar_today

Updated On:

Products Versions
TIBCO KPSA - Mobile -
Not Applicable -

Description

Resolution:
Description:
============
Sometimes, when a service order enters in a CommitPoint module, the following exception can be thrown.

2012-03-26 16:23:18.916126|OBJ|WARN |369|osdisp.cpp(1322)|Transaction 808:0: exitOnSystemException disabled: Caught unhandled system exception DSEBuiltin::ExceptionInvalidHandle: reason 'Transaction 808:192: Model error detected: invalid instance handle for object type 'SDDTools::NVSetImpl (domain: 216568, typeId: 4316384)', status = 'ObjectNotFound'', dropping event OSAStreams::SublinkImpl::asyncOnPutWrap for object OSAStreams::SublinkImpl:137 (282608:5735360:84250:137 offset 891550464)
  Callstack for transaction 808:192:
                calling asyncOnPutWrap on OSAStreams::SublinkImpl:137
                    calling onPutWrap on OSAStreams::SublinkImpl:137
                        calling onPut on prov::CommitpointImpl:1
                            calling commitCartridgeWO on sodata::WorkOrderDataImpl:148
                                calling realRemoveAssociation on basesodata::CartridgeWOImpl:103
                                    invalid handle exception on SDDTools::NVSetImpl:
2012-03-26 16:23:18.916300|EXP|WARN |369|dseexcpt.cpp(406)|STACK TRACE:
  +++ START +++
    cgobjex.cpp (162): THROW DSEBuiltin::ExceptionInvalidHandle: reason: 'Transaction 808:192: Model error detected: invalid instance handle for object type 'SDDTools::NVSetImpl (domain: 216568, typeId: 4316384)', status = 'ObjectNotFound''
    cgobjex.cpp (164): RETHROW DSEBuiltin::ExceptionInvalidHandle
    SDDTools_stb0.cpp (6085): RETHROW DSEBuiltin::ExceptionInvalidHandle
    basesodata_mimpl1.cpp (4616): RETHROW DSEBuiltin::ExceptionInvalidHandle
    basesodata_mimpl1.cpp (4618): RETHROW DSEBuiltin::ExceptionInvalidHandle
    basesodata_stb3.cpp (2987): RETHROW DSEBuiltin::ExceptionInvalidHandle
    basesodata_stb3.cpp (2989): RETHROW DSEBuiltin::ExceptionInvalidHandle
    basesodata_mimpl1.cpp (2980): RETHROW DSEBuiltin::ExceptionInvalidHandle
    basesodata_mimpl1.cpp (2982): RETHROW DSEBuiltin::ExceptionInvalidHandle
    
This exception invalid handle occurs because of missing information in the sodata::WorkOrderData object.
    
Environment:
===========
TIBCO® KPSA - Mobile 3.5.x up to 3.5.9
TIBCO® KPSA - Broadband 3.5.x up to 3.5.9

Symptoms:
========
Each time the exception occurs a token of the flow controller is lost. Once all tokens have been lost, the application seems to freeze and no Service Ordesr are processed.

Cause:
=====
The issue occurs only for the asynchronous work order mechanism when the following conditions are met :

1). The related service order is flushed from the POP waiting queue due to manual operation or timed out mechanism.

2). The service order has been swapped out.

3). No response has been returned back by network element to the cartridge.

When all the above conditions are met then an empty sodata::WorkOrderData object is created which leads to this exception during the deletion of the checkpoint file related to the service order.  

Resolution:
==========
The work around consists of implementing a stream module linked before any CommitPoint and used to retrieve the missing informations. An exemple is attached (see beforecp.act and beforecp.soc).

Attachments:
============
beforecp.soc, soc file of the stream module  
beforecp.act, act file of the stream module

Issue/Introduction

Invalid Handle exception in realRemoveAssociation and KPSA freeze.

Attachments

Invalid Handle exception in realRemoveAssociation and KPSA freeze. get_app
Invalid Handle exception in realRemoveAssociation and KPSA freeze. get_app