You are on page 1of 6

Error Handling in Oracle Service Bus

Faults in Oracle Service Bus can be handled in the Proxy Services. Typically faults can be handled within the Proxy Service at the following places:
SERVICE : AT THE GLOBAL SERVICE LEVEL. THIS IS THE HIGHEST LEVEL OF FAULT HADLING. ALL FAULTS IN THE SERVICE ARE HANDLED HERE PIPELINE : FAULTS CAN BE HANDLED AT THE REQUEST OR RESPONSE PIPELINES. ALL FAULTS WITHIN THAT PIPELINE SCOPE ARE HANDLED STAGE: STAGE LEVEL FAULT HANDLING ALLOWS TO HANDLE FAULTS WITHIN THE SCOPE OF A PARTICULAR STAGE ROUTE: FAULTS CAN ALSO BE HANDLED FOR THE ROUTE NODE TO HANDLE COMMUNICATION FAULTS

SERVICE LEVEL ERROR HANDLING


ERROR HANDLER
ERROR HANDLER STAGE

RETURN AN ERROR TO THE CLIENT ASSIGN SOAP FAULT TO BODY

Fault caught by OSB at runtime are automatically propagated in the $fault context variable. The $fault context variable is defined as the following complex type. This means that the $fault context variable has the following information:
<complexType name="FaultType"> <all> <!-- A short string identifying the error (e.g. BEA38229) --> <element name="errorCode" type="string"/> <!-- Descriptive text explaining the reason for the error --> <element name="reason" type="string" minOccurs="0"/> <!-- Any additional details about the error --> <element name="details" type="anyType" minOccurs="0"/> <!-- Information about where the error occured in the proxy --> <element name="location" type="mc:LocationType" minOccurs="0"/> <!-- Information about the exception instance reference stored in the object repository --> <element name="java-exception" minOccurs="0"> <complexType> <sequence> <element ref="mc:java-content"/> </sequence> </complexType> </element> </all> </complexType>

Fault caught by OSB from external systems or faults thrown by OSB to external systems is part of the SOAP fault and is wrapped inside the $body context variable as shown below
<Body xmlns="http://schemas.xmlsoap.org/soap/envelope/"> <Fault> <faultCode>String</faultCode> <faultstring>String</faultstring> <detail> <fault> <source>String</source> <errorCode>String</errorCode> <description>String</description> <faultInstance>String</faultInstance> <property> <property name="String"> <value>String</value> </property> </property> <timestamp>2001-12-17T09:30:47Z</timestamp> </fault> </detail> </Fault> </Body>

You might also like