Copyright © TIBCO Software Inc. All Rights Reserved


Chapter 15 Rules and Rule Functions : Transaction Error Handler Rule Function

Transaction Error Handler Rule Function
You can create a transaction error handler callback rule function that enables you to identify which post RTC transactions failed or which events were not sent out during the post RTC phase. The transaction error handler rule function is invoked each time a database transaction exception occurs, and each time a send event exception occurs.
This feature requires cache-aside database write strategy. It is not supported when the following property value is set:
Agent.agentclassname.enableParallelOps=false
The error handler rule function provides full details of the failed transactions. The transaction details provided in this callback function can be used for audit trail purposes. The engine continues retrying the transaction or action as usual.
To Register the Rule Function
To register the rule function, add the following property to the be-engine.tra / project CDD file at an appropriate level (for example, at the cluster level to affect all deployed engines). Set the value to the project path of the error handler rule function:
be.engine.txn.error.function=projectPathToErrorHandlerRuleFunction
Rule Function Signature
The required signature for the error handler rule function is:
int Name (Object txns, int errorType, int errCode, String errMsg, long retryCount)
The return value must be 0 (zero).
The following table explains the arguments.
You can turn this argument into an Object[] within the rule function, for example:
array[0] is a Concept[] containing all the Concept objects that:
array[1] is a Concept[] containing all the Concept objects that:
array[2] is a long[] containing the id of all the Concept objects that:
array[3] is a SimpleEvent[] containing all the SimpleEvent objects that:
array[4] is a long[] containing the id of all the Event objects that:
int errorType
-1 for errors happening during database operations.
-2 for errors happening when sending an event.
int errCode
The error code as returned by SQLException, if available
Else -100 if TIBCO BusinessEvents determines that the database is not available
Else -200, which means that this is an unknown error
For sent event errors, the value is -1, meaning an internal error condition.
String errMsg
long retryCount
 

Copyright © TIBCO Software Inc. All Rights Reserved