Error Hospital

Does anyone know anything about the error hospital. I have heard utterings but want to find out more. Is this in the current release 10.1.3.1. Is there a document out there that shows how to implement?
cheers
James

The error hospital is a design pattern that outlines a best practice on how to generically handled errors. There is normally a lot of common actions (audit, logging, notification, etc.) that occur when an error is encountered. The error hospital pattern outlines how to move the common actions for error out of each BPEL process and into a central error handling process. This error handling process can be as simple as writing a record to an error table and sending an email and as complicated as using rules engine and human workflow to track and retry tasks.
There are components rumored to be coming in the 10.1.3.3 release that provides some enhanced error handling functionality, but I haven't see any details on it yet. Rumors are it will help with flow control of processes. For example if a process has an error because a database connection is down it will queue up all of the process that follow until the connection is restored. Once the connection is restored it will flow control the number of requests sent to the database connection so not to overwhelm BPEL or the database.
The current functionality in 10.1.3.1 provides automatic retries and other nice features already. Can you provide more details around what you are looking for and maybe I can point you in the right direction.
Chris

Similar Messages

  • Is it possible to send a instance to error hospital for business errors?

    I have a business cenario where if an error is returned from an external service the first time it will automatically retry. The second time it will need to be sent for manual resolution which I was thinking of doing in the error hospital (human intervention) does anyone know if it is possible to send an instance for human-intervention from within the process rather from the fault policies?

    We have an instance where sometimes we are sending embedded tiff images to an external service and if the image is corrupt we need to allow the users to terminate the process. Unfrotunately there are no capabilities to send any notifications (email/sms/fax/voicemail) and need to notify the user of the corrupt image and to terminate the process. We could use a worklist task and but the business have defined this as a support team responsibility and want to use the same manual recovery console for all errors. (activities tab)

  • 10.1.3.3 fault management to simplify our complex error hospital pattern

    We have designed an error hospital pattern on 10.1.3.1, this consists of :
    1. A loop around key components of each process which may fail and need retry (e.g. invokes, database operations)
    2. Within each error loop a fault handler, this catches faults as they are thrown and passes them onto another BPEL error handling process (with a nested fault handler in case this invoke fails which spits error out to a file), the error handler can reply with retry (loop around again) or cancel (exit loop), if no response is received an automated retry occurs
    3. An error service process which creates a human task for an error to be dealt with
    4. A web app which allows users to process the tasks created by the error service, user can inspect data, see fault detail and mainly just select to cancel or retry the failed operation (including multi select if for example hundreds of processes had hit the same error)
    This has been refined and is now operating nicely in production, but the development (items 1 and 2 above) and testing effort involved is high - frequently more than the actual business logic. In a 3GL this error handling would be simplified by having a nice reusable piece of code (proceudre or method call) that could go in the error handling loop, rather than putting a whole set of logic (invoke, pick, handling of faults in the error handling code, etc).
    I'm aware of the fault management framework in 10.1.3.3 which does a subset of our functionality, we are now looking back at the error hospital we have created and wondering if we could simplify. The main stumbing block I see with the fault management framework is that we need to decide whether to do an automated retry after some interval or whether to await human action, we want to do both, await human activity but if they don't action it retry the operation. I'm thinking that we could achieve everything that we have got by a slight manipulation of the error management framework, as follows :
    A. Define faults such that all faults cause human intervention.
    B. Create a daemon process which scans for activities requiring human intervention and automatrically triggers a rety after a configurable period (so that things like database errors will get auto retried)
    C. Adapt our web app to look for and operate on activities outstanding rather than workflow tasks.
    Questions:
    i) To support B/C above is there a java api this daemon can use or is it a question of updating the rdbms
    ii) Am I underestimating what can be done with the java action fault policy ?
    iii) To make our existing approach easier, is there a way of doing an invoke and pick operation actually within an embedded java routine to minimise the amount of code we have in each error handling block
    Hope this makes sense, thanks in advance - there seem to be a lot of knowledgeable people out there in this forum.

    Hi,
    The next blogs might be interesting for you. It addresses your questions.
    http://technology.amis.nl/blog/?p=2485
    http://www.it-eye.nl/weblog/2007/09/10/oracle-bpel-10133-fault-policy-management/
    Kind regards,
    Harm

  • ESB Error Hospital and Rejection Handlers

    Hi,
    I am getting confused with ESB Error Hospital and ESB Rejection Handlers? Can anyone of you explain me what is this?
    Thanks,
    Gomathi

    Rejection Handlers are used for adapters such as file adapter. When these fail during the invokation of the ESB, you can perform some operation, e.g. call a BPEL process. The default is to write to a default directory. But no notifications are made.
    The error hospital is an error handlers for when the process fails in flight. This allows use to send notifications and retry if required, etc.
    Here is a good doc on the subject.
    http://www.oracle.com/technology/products/integration/esb/files/esb-transactions-errorhandling.pdf
    cheers
    James

  • Error Hospital java action : How to use getVariableData

    Hi all,
    I'm playing with Error Hospital and try to use the getVariableData of the IFaultRecoveryContext class. I use something like :
    iFaultRecoveryContext.getVariableData("inputVariable","payload","/client:BPELProcessTestPLProcessRequest/client:lastname");
    to get the lastname value of my current BPEL instance. But the result I get is oracle.xml.parser.v2.XMLElement@f6fd93
    Is anyone know how to get the value ?
    Thanks

    I finally found a solution ... I cast the line :
    ((Node)iFaultRecoveryContext.getVariableData("inputVariable","payload","/client:BPELProcessTestPLProcessRequest/client:lastname")).getFirstChild().getNodeValue();
    Thanks for your help

  • How Handle ESB business Faults using Error Hospital

    Hai Everyone
    I am trying to configure Error Hospital for both BPEL & ESB faults. I`ve successfully configured it for BPEL and am trying to do that for ESB. I found that Fault Management can`t be done for ESB. Is that true ?
    If thats true, then I was thinking of a solution:
    1) Throw Fault from ESB to BPEL Service Invoker
    2) BPEL Invoke activity fails
    3) BPEL fault policy will be used.
    Now I am struck in throwing fault using XSL transformation from ESB service wsdl to BPEL, but my BPEL invoke activity doesnt understand the fault from wsdl and just thinks that as the output and succeeds.
    Is there anyway to get around this ?
    cheers
    Srini

    Nagakiran-
    As long as the fault is thrown by external service, you could handle the same ways as system fault.
    Below URL could show some example:
    http://www.it-eye.nl/weblog/2009/02/14/oracle-bpel-fault-policy-framework-handling-custom-business-faults/
    -Sridhar

  • Error Hospital to handle Functional Errors

    Hi,
    In my implementation I'm consuming external Web Services from BPEL.
    Some of those webservices may return errors in a controlled fashion, returning a numeric field that indicates failure due to whatever reasons.
    My question is: Can a BPEL process receive the response from such a web service and thwow an error to the error hospital, so that all errors(connectivity errors and functional errors) are handled in the same console?
    Thanks,
    Alex

    can you give a description of "the error hospital"
    is this something you created yourself..or do you use the bpelconsole for this together with the faultpolicyframework ?

  • What is error Hospital ?

    Hi All,
    I am new to SOA Suite, Can anyone shed some light on Error Hospital and how to configure with Fusion ? Any tutorials or useful links are appreciated.
    cheers
    Srini

    Error Hospital might seem like vaporware but in ESB and BPEL they mean 2 different things.
    For ESB have a look at this link.
    http://www.oracle.com/technology/products/integration/esb/files/esb-transactions-errorhandling.pdf
    The error hospital is configured out of the box but the functionality only work when invoking asynchronouse messages. And you need to manually resubmit. If you require additional functionality then to need to make some customisations.
    If you want the error hospital in BPEL there is additional functionality have a look at this link and look at the section BPEL Fault Framework
    http://www.oracle.com/technology/products/ias/bpel/pdf/10133technotes.pdf
    hope this helps
    James

  • Clarification needed in the Fault Handling Framework(Error Hospital)

    Hi,
    I need some clarification on Fault Handling Framework...
    Scenario:
    My BPEL Process is Asynchronous.(10.1.3.3.1) and I tryed to invoke the another BPEL Process( which is used to select the Fname from the table using DB Adapter) . In the Main BPEL Process I have the Fault handling Framework and I done necessary changes in the bpel.xml. This is successfully working for Invoke Activity when ever an Remote or Binding Fault occurs in the Sub-BPEL Process and this Fault is send to Fault-Policy.xml in the server(bpel/domains/default/config/fault-Policy) and works accordingly to the action mentioned in the policy xml....( I have also made changes in the fault-bindings.xml ).
    How ever this Framework is working fine for every actions.
    Need Clarification:
    1) Only the Binding and Remote faults will work for the Fault handling Framework.
    2) can we use User defined faults (Buissness Faults,,,) for this........because I used the User defined faults to invoke the fault-policy.xml and it won't works....
    3)Only Invoke Activity can be handled for this Framework or any Other Activity........
    4)How to handle other Activity in the Fault-policy.xml...
    5)Any difference for Asynchronous or Synchronous in this Fault Handling Framework.......
    I also referred the Oracle SOA Suite New Feauters PDF .......
    Can any one send me the related documents and try to help me on this.
    Please help me on this.......
    Thanks,
    Ashok.

    Hi Chintan,
    You are saying that Custom faults are also supported for fault-Policy.xml.
    I can't understand that 2nd answer you said. can you please explain how to use the Custom faults in the FaultHandlingFramework..
    My Scenario:
    I have 2 BPEL Process, BPEL1 will invoke the BPEL2 and if any remote fault or binding faults occurs in the BPEL 2 its returning the same fault to BPEL1 and here I am using FaulthandlingFramework , this fault send to fault-policy.xml and necessary action is took place succesfuly...(like retry, human intervention.....)
    But when I throw some CustomFaults(userdefinedFaults)in the BPEL2 , its returning as a remotefault to BPEL1. I don't know how to use the customFaults in the Fault handling framework.......
    Can you explain me in detail how to use custom faults in faulthandling framework...............
    Send me some related documents for this.....

  • Error Handling in BPEL & ESB - Rejection Handlers

    Hi guys
    I have been trying to evaluate various ways for handling errors/exceptions in BPEL and ESB in Oracle SOA Suite 10.1.3.4 (Basic installation).
    What i have found is that in ESB, errors can be handled at two levels: ESB routing service errors using ERROR_TOPIC and Adapter errors using RejectionHandlers. AND
    in BPEL errors can be handled using in built try/catch (calling error hospital from the catch) and adapter erros using RejectionHandlers.
    I tried using Rejection handlers (bpel, wsif, file) in BPEL and ESB. In BPEL they all are working fine when registered in bpel.xml.
    But in ESB only the file handler is working. What i did in ESB is:
    I set up an ESB which is polling a file adapter and simply putting the data into a table in database.
    Then i created a BPEL (or a Webservice) which is based on http://localhost:8888/orabpel/xmllib/jca/RejectionMessage.wsdl file, taking
    {http://xmlns.oracle.com/pcbpel/errorHandling}RejectedMessage as input.
    Then I registered Rejection Handler in ESB's file adapter's .esbsvc (or Enpoint property- rejectedMessageHandlers):
    "wsif://http//localhost8888/Error_Service/RejectionHandlerPort?wsdl|handleRejection|message"OR "bpel://default:welcome1|BPEL_Error_Handler|handleRejection|message"
    I generated error in ESB by changing a column name of the table
    For bpel rejection handler:
    i was getting error: "<ERROR> <default.collaxa.cube.activation> <AdapterFramework::Inbound> Rejection handler failed
    Error while trying to hand off bad message to Rejection handler bpel://default|BPELProcess2|handleRejection|message due to: java.lang.Exception: Failed to create "ejb/collaxa/system/DeliveryBean" bean; exception reported is: "javax.naming.NameNotFoundException: ejb/collaxa/system/DeliveryBean not found
    at com.evermind.server.rmi.RMIServerContext.lookup(RMIServerContext.java:207)
    at com.evermind.server.ApplicationContext.unprivileged_lookup(ApplicationContext.java:256)
    at com.evermind.server.ApplicationContext.lookup(ApplicationContext.java:196)
    at javax.naming.InitialContext.lookup(InitialContext.java:351)"
    It was solved by adding in server.xml - <application-server ... global-jndi-lookup-enabled="true">. But now i am getting
    "Error while trying to hand off bad message to Rejection handler bpel://default:welcome1|BPEL_Error_Handler|handleRejection|message due to: java.lang.LinkageError: duplicate class definition: com/oracle/bpel/client/ejb/interfaces/IDeliveryBeanHome. Please address the underlying issue or correct/redeploy the process."
    *For wsif rejection handler*:
    getting error: "Error while trying to hand off bad message to Rejection handler wsif://http//localhost8888/Error_webservices/RejectionHandlerPort?WSDL|handleRejection|message due to: exception on JaxRpc invoke: serialization error: java.lang.IllegalArgumentException: getSerializer requires a Java type and/or an XML type
    Please address the underlying issue or correct/redeploy the process."
    I followed: Link:[http://www.oracle.com/technology/products/integration/adapters/pdf/Adapter_TN_004_Adapter_ErrorManagement.pdf]
    Same bpel/wsif handlers pointing to same BPEL/J2EE services, if configured for BPEL adapters, works absolutly fine and gives proble in ESB.
    Am i missing something in ESB or is there any patch need to be applied? Please help me there.
    Thanks in advance.
    Inder

    Hi
    I even installed SOA Suite 10.1.3.4 MLR#5 Advanced installation with Oracle Express dehyderation store.
    I was able to use WSIF rejection handler with this upgrade... but bpel rejection handler was still a failure.
    So basically i re-visited ESB documentation. it says that ESB will not support bpel rejection handler.
    At least not upto now.
    So Summary:
    For BPEL we can use - file, wsif, bpel & aq rejection and fatal message handler.
    For ESB we can use file, WSIF (10.1.3.4 with MLR#5) & aq rejection and fatal message handler.
    Thanks
    Inder
    Keep going...

  • ESB error handling and notification features

    Hello everyone,
    I am newbie to oracle SOA ESB. I am an oracle apps guy.
    This being my first post to this forum, I have a lot of questions. :-)
    For a small intergration requirement, we are looking for a good integration tool
    Some requirements are:
    1) Flat files will be generated by concurrent programs on oracle apps which need to be transferred to legacy systems.
    2) Pick the data from apps tables and insert them into another database. Not much translation required.
    After some research, found ESB to be a good fit.
    Before actually start using it, we wanted to do a couple of POCs.
    So far we are using shell scripts for ftp process. We opted for an integration tool to have DB to DB transmission. Apart from this we need better error handling and error notification mechanism.
    Some error conditions:
    1) Unavailability of ftp server or Database server.
    2) Permission issues. Say some files may not have read, write, deletion permissions. They need to be caught and notified.
    3) Mandatory field missing while inserting data which is read from a flat file into a DB table etc..
    My initial thoughts on error handling are:
    Connection error: To retry for connection errors. If the retry fails send notification via email and also write the failed connection details into an error log file(apart from the server log file).
    Data mismatch: NOtification to be sent with the error details.
    I would like to know What happens to the file if the destination ftp server is unavailable while ESB is trying to FTP the file. Will ESB retain the file with itself and FTP the file once the ftp server is up?
    In BPEL I could see try catch blocks which can be used to handle the errors and thus send notifications.
    ESB documents introduced terms like error hospital related to error handling but I was not able to figure out a way of implementing them. As I am not well versed with XML and WSDL I am probably unable to use the fault tab which is in the routing service. I feel Oracle could have given some samples that explain about ESB error handling.
    Also to my dismay, adapter docs say that there is a limitation of 7MB size for ftping. Although our file sizes often fall below this size, I would want to know if there is any workaround to over come this size constraint.
    I think I put a lot of stuff in a single post and may be in the most haphazard way. Please bear with me.
    Please suggest me of some documents if any related to my questions.
    Would be really great if you can give me a straight forward solution to all the above problems
    Hope this forum would be a great help to me.
    Cheers,
    Robert.

    I have worked on a few SOA Apps implementations. Some successful and some not so. It really comes down to the type of integrations.
    But I would say the majority of your integration will be batch as this is what eBus is all about. If this is the case then I would recommend Oracle Data Integrator. If you go Oracle Data Integrator Suite it includes Service Bus and BPEL. ODI has an eBusiness Suite adapter as well.
    The good thing about ODI is that you can use it for data conversion, that conversion can then be reused once live, so the conversion is not throw away.
    In SOA 10.1.3.4 the limit of 7MB has been resolved but you must be using the file / FTP adapter for input and out, from the sounds of it you want to call concurrent programs so this probably wouldn't work.
    cheers
    James

  • Can error handling framework use fault policies and BPEL catch blocks

    As part of an integrated customer solution that makes substantial use of SOA Suite (including OSB, BPEL, Mediator, etc) we are in the process of designing an “Error Hospital” subsystem to expose a web service API specifically for BPEL services and/or the OSB layer to call whenever they encounter an exception which they cannot handle so that the appropriate user is notified of the error (via email) and the error is recorded (in an appropriate common fault format, with error codes elaborated into more meaningful descriptions, etc) within OEM, immediately prior to returning the exception to the caller.
    The problem we have experienced in our design is as follows:
    •     We have an error handling service to be called, inside the BPEL catch blocks, when an error occurs to notify the appropriate user, via email, that an error has occurred;
    •     We also use the error handling XML fault-policies so that we can recover from an error using OEM (via human intervention);
    •     The error service needs to be called before the process is suspended (waiting for human intervention) so the email notification and error message formatting occurs BEFORE the recovery action. Unfortunately the fault policies trigger BEFORE the error handler is able to transform the error into the appropriate format and notify the user so the error recorded is not the reformatted one and the user is never notified.
    The key question is how can a BPEL, upon catching an exception, invoke the error handling service and AFTER that send the error to OEM (and have the process suspended).
    It seems the two mechanisms "cannot play nicely together"

    As part of an integrated customer solution that makes substantial use of SOA Suite (including OSB, BPEL, Mediator, etc) we are in the process of designing an “Error Hospital” subsystem to expose a web service API specifically for BPEL services and/or the OSB layer to call whenever they encounter an exception which they cannot handle so that the appropriate user is notified of the error (via email) and the error is recorded (in an appropriate common fault format, with error codes elaborated into more meaningful descriptions, etc) within OEM, immediately prior to returning the exception to the caller.
    The problem we have experienced in our design is as follows:
    •     We have an error handling service to be called, inside the BPEL catch blocks, when an error occurs to notify the appropriate user, via email, that an error has occurred;
    •     We also use the error handling XML fault-policies so that we can recover from an error using OEM (via human intervention);
    •     The error service needs to be called before the process is suspended (waiting for human intervention) so the email notification and error message formatting occurs BEFORE the recovery action. Unfortunately the fault policies trigger BEFORE the error handler is able to transform the error into the appropriate format and notify the user so the error recorded is not the reformatted one and the user is never notified.
    The key question is how can a BPEL, upon catching an exception, invoke the error handling service and AFTER that send the error to OEM (and have the process suspended).
    It seems the two mechanisms "cannot play nicely together"

  • Esb error handling

    hi all,
    is there any sample ESB project implementing error hospital there? i found many sites and blogs for BPEL error hospital but none for ESB. mention any site or blog for ESB error hospital sample project.
    Thanks,
    Terry

    hi all,
    is there any sample ESB project implementing error hospital there? i found many sites and blogs for BPEL error hospital but none for ESB. mention any site or blog for ESB error hospital sample project.
    Thanks,
    Terry

  • How does BPEL Fault Management Framework gel with ESB Error Handling ?

    I see that BPEL 10.1.3.3 has pretty neat Fault Management Framework (although I have to admit it is not very well advertised).
    The next logical question is: what about ESB ? Would that help in ESB error handling ? I understand that ESB has its own Error Hospital etc.; however, we have to constantly grapple with two distinct paths for any piece of integration functionality (1. ESB 2. BPEL). I guess, all of this will be moot in the 11g timeframe. Still wondering if anyone out there has somehow unified error handling for these two distinct offerings ?

    It's not available in ESB, you have to implement/extend that by your self. Off course in the next release everthing will be better :-)
    But, if you are able to use Oracle AIA (http://edelivery.oracle.com) You could use Oracle AIA Foundation, that has a fault 'hospital' implemented both for BPEL and ESB.
    Marc
    http://orasoa.blogspot.com

  • Stopping DB-Polling-Adapter when failure in mediator

    Hi
    I have a DB-Polling-Adapter that posts data directly to a mediator. When data is readed mediator does a logical delete, e.g 2 for field readstatus. So during reading readstatus is 9 and before 1.
    When a failure happens in mediator (during xsl-transformation) mediator throws failure back to DB-Polling-Adapter. The problem is now that state of readingstatus is still 9 and after each polling sequence adaptor reads and posts same data again and the failure happens also.
    Is there any posibility to send failure into error hospital and to set readstatus to 2, so that adapter doesn't poll the same data on and on? Catching mediator fault in fault-policies doesn't work.
    I found two solutions: 1. Send data from Polling-Adapter to BPEL, 2. Sematron validation but it doesn't cover all posible failures.
    Example failure during transformaiton:
    ORAMED-03303:[Unexpected exception in case execution]Unexpected exception in request response operation "execute" on reference "Convert_JDE-to-Common". Possible Fix:Check whether the reference service is properly configured and running or look at exception for analysing the reason or contact oracle support. Cause:oracle.tip.mediator.infra.exception.MediatorException: ORAMED-01201:[Error in transform operation]Error occurred while transforming payload using "xsl/F0006Collection_To_ProjectsCollection.xsl" for target part "reply".Possible Fix:Review the XSL or source payload. Either the XSL defined does not match with the payload or payload is invalid
    Thx a lot for help.
    Pascal

    Issue solved.
    Setting jca.retry.count=unlimited causes the adapter to behave as we want.
    We had set jca.retry.count = 1 on the mistaken understanding that this related only to a failure to query/poll the database, and that sequence number was updated in a separate context that needed a global transaction to coordinate/rollback.
    We don’t even need to propagate our global transaction from polling adapter to bpel component since all our writes happen in an OSB transaction; Our bpel just (re)throws a fault back to the polling adapter which is enough to trigger retry.

Maybe you are looking for