BPEL instance recovery is not picking up all eligible messages
(Doc ID 2158084.1)
Last updated on MARCH 27, 2020
Applies to:
Oracle SOA Suite - Version 11.1.1.6.0 to 11.1.1.9.0 [Release 11gR1 to 11g]Information in this document applies to any platform.
Symptoms
BPEL Auto-Recovery is not working as expected after enabling recurring recovery.
The SQL which represent undelivered messages (state=0) shows a large count:
- Invoke messages with recover count < 3
Select COUNT(MESSAGE_GUID), COMPOSITE_NAME from DLV_MESSAGE where state =0 AND DLV_TYPE = 1 AND recover_count > 3 AND RECEIVE_DATE < (SYSDATE- INTERVAL '30' MINUTE) GROUP BY COMPOSITE_NAME
- Invoke messages with recover count > 3
Select COUNT(MESSAGE_GUID), COMPOSITE_NAME from DLV_MESSAGE where state =0 AND DLV_TYPE = 1 AND recover_count < 3 AND RECEIVE_DATE < (SYSDATE- INTERVAL '30' MINUTE) GROUP BY COMPOSITE_NAME
- Callback messages with recover count < 3
Select COUNT(MESSAGE_GUID), COMPOSITE_NAME from DLV_MESSAGE where state =0 AND DLV_TYPE = 2 AND recover_count < 3 AND RECEIVE_DATE < (SYSDATE- INTERVAL '30' MINUTE) GROUP BY COMPOSITE_NAME
- Recoverable Activity messages
SELECT COUNT (*) , CI.COMPOSITE_NAME FROM WORK_ITEM WI, CUBE_INSTANCE CI WHERE CI.CIKEY = WI.CIKEY AND CI.STATE <= 3 AND WI.STATE = 1 AND WI.EXP_DATE IS NULL AND WI.EXP_FLAG = 0 AND WI.EXECUTION_TYPE != 1 AND WI.MODIFY_DATE < (SYSDATE- INTERVAL '30' MINUTE) AND WI.EXT_INT1 < 3 GROUP BY CI.COMPOSITE_NAME
- Recoverable expirable count
SELECT COUNT(*) ,COMPOSITE_NAME FROM WI_EXPIRABLE WHERE EXP_DATE < (SYSDATE- INTERVAL '30' MINUTE) GROUP BY COMPOSITE_NAME
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Symptoms |
Cause |
Solution |
References |