Professional Documents
Culture Documents
• Key features
• Architecture
• Fault policy
• Notification setup
• Error notification and details
• Extending Error Handling
• Logging
• Enabling Error Handling and Logging
• Targeted new features: 2.x – 3.0
• Guaranteed Delivery and Message Resubmission
Unified Approach
• Across technologies (BPEL, ESB)
• Across integration patterns
Error Notifications
• Issues error notifications to suitable Actor roles, and FYI roles
• Links to Error Console (BPM Worklist) for error details
Error Console
• Centralized UI to access error details that are assigned for resolution or for
informational purposes
• Accessible to administrators, and end-users
Error Logging
• Logs messages non-intrusively in a consistent schema
• Logs can be searched, sorted, and filtered using Oracle Enterprise Manager
<Action id="aia-ora-retry">
<retry>
<retryCount>3</retryCount>
<retryInterval>2</retryInterval>
<exponentialBackoff/>
<retryFailureAction ref="aia-ora-java"/>
<retrySuccessAction ref="aia-ora-java"/>
</retry>
</Action>
<Action id="aia-ora-java">
<javaAction className="oracle.apps.aia.core.eh.BPELJavaAction"
defaultAction="ora-rethrow-fault">
<returnValue value="REPLAY" ref="ora-terminate"/>
<returnValue value="RETHROW" ref="ora-rethrow-fault"/>
<returnValue value="ABORT" ref="ora-terminate"/>
<returnValue value="RETRY" ref="aia-ora-retry"/>
<returnValue value="MANUAL" ref="ora-human-intervention"/>
• Error Code
• Fault code in BPEL, ESBString string for ESB. ESB has a
concept of error codes. Examples: bpelx:bindingFault,
bpelx:remoteFault
• System Code
• Value is obtained from EBM Header. Examples: SEBL_01,
PORTAL_01
• Service Name
• Name of the BPEL process or ESB service that encounters
error. Examples: CreateCustomerPartyProvABCSImpl,
CustomerPartyEBS
• Process Name
• Value is obtained from EBM Header. Examples: Siebel-
Portal-Get-Account-Balance
For every error that occurs, the error handler checks for
matches in the following order:
1. SYSTEM_CODE, ERROR_CODE, SERVICE_NAME,
PROCESS_NAME
2. ERROR_CODE, SERVICE_NAME, PROCESS_NAME
3. SERVICE_NAME, PROCESS_NAME
4. SERVICE_NAME
Depth of Content
- Add one, two custom fields or entire
message payload
- View logged content in AIA Log Files
via Enterprise Manager
Enriching fault content
Step1 Step2 Step3
- Implement Custom extension - Register class with Error - Identify error scenario for which
handler. Implement AIA Interface Handling Framework handler needs to be called within
Setup UI
AIAConfigurationProperties.xml
Copyright © 2008, 15
Oracle. All rights reserved.
Custom Handling of Errors
Example:
- Step 1:
• Indicate custom error handling
for Order Fallout functionality:
ORDER_FO
- Step 2:
• Indicate custom plus default AIA
Error Handling behavior: Error Type
= ORDER_FO, AIA_EH_DEFAULT
- Step 3:
• Implement extension listener to
subscribe to messages with JMS
Header stamp = ORDER_FO. AIA
will ensure default behavior in
addition
Enabling Custom Handling of Errors
Step1 Step2 Step3
- Define a unique custom filter - Identify error scenario for which - Implement extension listener
code fault message should be to subscribe to AIA Error topic
stamped with custom filter code for messages with custom
in Setup UI filter code
• Trace Logging –
Recording chronological
sequence of events.
- Custom XPath
- Java API
Siebel CRM
On Demand
• Error Logging –
Recording of errors. No
specific configuration
required. Logging done
non-intrusively.
2.x 3.0
• SOA platform 10.1.3.x • SOA platform 11g
1. Support OC4J JMS 1. Support Weblogic JMS
2. BPEL, ESB Fault Policies 2. Mediator Error Handling
3. Error Log + Trace Log 3. Error Log + Trace Log
framework framework
• No B2B Support • Capture Errors from B2B
• Worklist an integral part of framework • Option to decouple or switch off Worklist
• Log onto BPEL and ESB dashboards • Drill down into EM Control Flow Trace
externally from email notification
• No customization of notification • Customization of email notification content
• Multiple notifications based on number of • Notification aggregation
errors • Automatic error resubmission
• Manual error resubmission
Concepts
AIA Approach
Source Responsibilities
Sample Flows
Configuration Settings
Error Recovery
AIA Recommends
Global Transaction
Source
Target
Application
Application
Source Integration
Milestone Target
Milestone
Milestone
Global Transaction
• Enable all services in one single transaction
• No commit point between two milestones
Error Handling
• Any system error will generate a rollback of all preceding
services
• One notification will be sent to Integration Administrator
Error Recovery
• Manual scripts to recover message from queue and resubmit
Source
Target
Application
Application
Integration
Source Milestone
Fault Notification Target Milestone
Milestone
Create Task
Global Transaction
• IDG – Chapter 11 - Enabling Transactions for an Integration Scenario
in Asynchronous Patterns of the Application Integration Architecture
• No commit point between milestones
Error Handling
• IDG - Chapter 14: Implementing Error Handling and Recovery for the
Asynchronous Message Exchange Pattern to Ensure Guaranteed
Message Delivery
• Use bpelx:rollback instead of throw in the catch blocks.
• Java snippet to send notifications for AIA / User Faults.
• Fault policies to contain a filter expression and perform “No Action” in
case of a roll back fault(ORABPEL-02180).
– Filter Expression - <test>$fault.summary/summary[contains(.,
"ORABPEL-02180")]</test>
• SenderResourceTypeCode
– Indicates the type of resource or system
where the rolled back message is stored,
whether Queue, Topic or Resequence
Store
• SenderResourceID
– Identification of the resource/system of
type SenderResourceTypeCode
• SenderMessageID
– Identification of the message persisted in
the resource/system associated with
type SenderResourceTypeCode
EM Targets
• Register all services and Edge applications as “Targets”
AIA_FAULT_TABLE
• Mapping table for JMS Queue Name, JMS Message ID and
Target instance id
Source
Target
Application
Application
Integration
Source Milestone
Update AIA_FAULT_TABLE Target Milestone
Milestone
Fault Notification
Create Task
Update AIA_FAULT_TABLE
with Task ID
WF AIA Auto
Recovery
Notification
Agent