Customize faults in bpel.

When we use custom faults in bpel we get as follows:
<Faulthttp://xmlns.oracle.com/BPEL4http://schemas.xmlsoap.org/soap/envelope/>
<faultcode>client:BusinessFault</faultcode>
<faultstring>business exception</faultstring>
<faultactor>cx-fault-actor</faultactor>
<detail>
<BPEL4faultMessagehttp://xmlns.oracle.com/BPEL4>
<Code http://xmlns.oracle.com/BPEL4>9710</Code>
<Summary http://xmlns.oracle.com/BPEL4>Invalid xml document. According to the xml schemas, the xml document is invalid. The reason is: Error::cvc-complex-type.2.4.a: Invalid content was found starting with element 'ns1:input1'. One of '{"http://xmlns.oracle.com/BPEL4":input}' is expected. Please make sure that the xml document is valid against your schemas. </Summary>
</BPEL4faultMessage>
</detail>
</Fault>
That is whatever our custom fault structure is defined in bpel it comes under the detail tag as above.
Is there a way we can customise that by replacinh the code in the faultcode and summary in the faultstring tag so that we have the fault structure as
<Faulthttp://xmlns.oracle.com/BPEL4http://schemas.xmlsoap.org/soap/envelope/>
<faultcode>9710</faultcode>
<faultstring>Invalid xml document. According to the xml schemas, the xml document is invalid. The reason is: Error::cvc-complex-type.2.4.a: Invalid content was found starting with element 'ns1:input1'. One of '{"http://xmlns.oracle.com/BPEL4":input}' is expected. Please make sure that the xml document is valid against your schemas. </faultstring>
<faultactor>cx-fault-actor</faultactor>
<detail>
<BPEL4faultMessagehttp://xmlns.oracle.com/BPEL4>
<Codehttp://xmlns.oracle.com/BPEL4>9710</Code>
<Summaryhttp://xmlns.oracle.com/BPEL4>Invalid xml document. According to the xml schemas, the xml document is invalid. The reason is: Error::cvc-complex-type.2.4.a: Invalid content was found starting with element 'ns1:input1'. One of '{"http://xmlns.oracle.com/BPEL4":input}' is expected. Please make sure that the xml document is valid against your schemas. </Summary>
</BPEL4faultMessage>
</detail>
</Fault>

oops... sorry... I had typed it in as there is no way to copy that 'error message' on to the clipboard from the BPEL FLOW depiction.
it must have read 'HealthCareWorkFlowProcessRequest'...
the problem is not with the typo... :(
Am not able to find the root cause... but the flow fails when invoked from my web application...

Similar Messages

  • Issue in propagating the fault in BPEL

    Hi,
    I have an issue in propagating the fault in BPEL.
    This is the scenario,
    a) I have a BPEL process which inserts data to a table, where a column is a primary key.
    b) I invoke this BPEL as a partner link in another BPEL process.
    c) I have provided catch for primary key violation in the invoking BPEL process.
    Here, it throws below remote fault:
    When invoking locally the endpoint 'http://localhost:7777/orabpel/default/InsertExceptionGen/1.0', ; nested exception is:
         com.oracle.bpel.client.delivery.ReceiveTimeOutException: Waiting for response has timed out. The conversation id is bpel://localhost/default/HandlingESBFaultInsert1~1.0/20502-BpInv0-BpSeq1.6-2. Please check the process instance for detail.
    But In the case of ESB, I could able to handle the primary key violation fault.
    ie)
    a) An esb process inserts data into a table, where a column is a primary key.
    b) A BPEL process invoke this esb as a partner link.
    c) In the invoking BPEL process, provided catch for primary key violation.
    Pls. someone throw some light on this.
    Thanks
    Jude.

    BPEL process should get a bindingFault for any application related errors.
    since it received remote fault, may be some problem with connectivity.check the timeout values in the bpel configuration.

  • Logging the Runtime Fault messages BPEL in WLS logs

    Requirement: I need to capture the run time fault from BPEL processes in the WLS logs how to do this?
    Solution: I have tried following I created the Java class ot initialise the Java logging.
    Java snippet:
    private static final Logger logger = Logger.getLogger("oracle.soa.Logger");
    static {
    LogFormatter.configFormatter(logger);
    public static final void log(String message) {
    logger.log(Level.INFO, message);
    In my BPEL process I have the CatchAll activity
    In the ‘AssignFault I’ have the assignments using ora: getFaultAsString() , but I’m not getting the expected fault in Assign Activity which we see in Audit Trail.
    In Audit Trail i see the following message against the my Validate Activity
    "Invalid data: The value for variable "ReceiveXML_Read_InputVariable", part "body" does not match the schema definition for this part Element 'TimeBandList' not expected.. The invalid xml document is shown below:"
    The ora: getFaultAsString() is showing the "com.oracle.bpel.client.BPELFault: faultName: {{http://docs.oasis-open.org/wsbpel/2.0/process/executable}invalidVariables} messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}"

    I had gone thru that documentation. I needed something more than that.
    Well, I want to know what entries go into the access log & what into custom
    log of ours.
    Actually, the entries with 200 status only are going into our custom log ,
    how can I make the entries with status 302 (redirection) to get into the
    custom log?
    Thanks.
    priya
    Robert Patrick wrote:
    Yes. http://www.weblogic.com/docs51/admindocs/http.html#logs
    Priya Bangara wrote:
    Hi,
    Our company has WebLogic Server 5.0 b2 running on our livesite. They
    have been using WLS's access log and their own custom log. Now, they
    have found some problem with the logs and I'm looking into it.
    I don't find any documentation on 5.0b2 on BEASYS's site anymore. Are
    all the features like 'extended log format', 'log rotation' of WLS 5.1
    were there in 5.0 b2 ?
    Please help. Issue is very critical. I would appreciate if you could
    also send me some links where I can find more info on WL's logging
    mechanism.
    Thanks in advance,
    Priya

  • Fault handler BPEL PM Weblogic issue ?

    Products:
    SOA for WebLogic Server (10.1.3.4) , p7490612_101340_GENERIC
    Jdeveloper 10.1.3.4
    Windows XP sp2
    1.- I was install SOA for WSL 9.2 and Jdev succesfull, now i start with any test.
    2.- I test Fault handling framework , then i create the simple xml files: fault-bindings.xml and fault-policies\mybpiPolicy.xml
    ----- Abstract files
    &lt;faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension" name="bpelx:bindingFault"&gt;
    &lt;condition&gt;
    &lt;action ref="ora-retry"/&gt;
    &lt;/condition&gt;
    &lt;/faultName&gt;
    &lt;Action id="ora-retry"&gt;
    &lt;retry&gt;
    &lt;retryCount&gt;2&lt;/retryCount&gt;
    &lt;retryInterval&gt;6&lt;/retryInterval&gt;     
    &lt;exponentialBackoff/&gt;
    &lt;retryFailureAction ref="ora-human-intervention"/&gt;           
    &lt;/retry&gt;
    &lt;/Action&gt;
    3.- Then i create an simple async BPEL case for fault handling with a DB BPEL Adapter using a wrong Jdbc string for instance Bad SID database (deliberately , The correct is XE not XE1).
    Then i test it, and with audit trail in BPEL Console, i can view the 2 retries that i indicate in the descriptor, but after [FAULT RECOVERY|http://forums.oracle.com/forums/] Marked Invoke activity as "pending manual recovery, it have a exception.
    * In normal case with OC4J, after last line, the process is ready for recovery in a manual step.
    * Well i think so maybe i missing another configuration or parameter because it is deploy in WebLogic, i do not. next i put the text that in audit trail appers.
    Please help, regards.
    ----- my Messages in audit trail.
    --2008/12/30 21:28:29-- [FAULT RECOVERY|http://forums.oracle.com/forums/] Marked Invoke activity as "pending manual recovery".
    --2008/12/30 21:28:30-- "BPELFault" has not been caught by a catch block.
    --2008/12/30 21:28:30-- There is a system exception while performing the BPEL instance, the reason is "faultName: {{[http://schemas.oracle.com/bpel/extension]}remoteFault} messageType: {{[http://schemas.oracle.com/bpel/extension]}RuntimeFaultMessage} parts: {{code=0 ,summary=file:/D:/oracle/soasuitebasic/bpel/domains/default/tmp/.bpel_Test1BPEL_1.0_7f0af90c7bf1874b5077831987befd2d.tmp/do.wsdl [ do_ptt::doSelect(doSelect_inparameters,DomainCollection) |http://forums.oracle.com/forums/] - WSIF JCA Execute of operation 'doSelect' failed due to: Could not create/access the TopLink Session. This session is used to connect to the datastore. [Caused by: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was: localhost:1521:XE1 |http://forums.oracle.com/forums/] ; nested exception is: ORABPEL-11622 Could not create/access the TopLink Session. This session is used to connect to the datastore. [Caused by: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was: localhost:1521:XE1 |http://forums.oracle.com/forums/] See root exception for the specific exception. You may need to configure the connection settings in the deployment descriptor (i.e. weblogic-ra.xml) and restart the server. Caused by Exception [TOPLINK-4002|http://forums.oracle.com/forums/] (Oracle TopLink - 10g Release 3 (10.1.3.4.0) (Build 080602)): oracle.toplink.exceptions.DatabaseException Internal Exception: java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was: localhost:1521:XE1 Error Code: 0. ,detail= Internal Exception: java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was: localhost:1521:XE1 Error Code: 0}} ". Please check the error log file for more infromation. A failure is detected in use of fault policy used to recover the activity. Please audit the instance manually or let engine recovery to attempt recovery. Best practice suggests to handle exceptions in fault policy or in the fault handlers in your bpel process. less
    com.oracle.bpel.client.BPELFault: faultName: {{[http://schemas.oracle.com/bpel/extension]}remoteFault}
    messageType: {{[http://schemas.oracle.com/bpel/extension]}RuntimeFaultMessage}
    parts: {{code=0
    ,summary=file:/D:/oracle/soasuitebasic/bpel/domains/default/tmp/.bpel_Test1BPEL_1.0_7f0af90c7bf1874b5077831987befd2d.tmp/do.wsdl [ do_ptt::doSelect(doSelect_inparameters,DomainCollection) |http://forums.oracle.com/forums/] - WSIF JCA Execute of operation 'doSelect' failed due to: Could not create/access the TopLink Session.
    This session is used to connect to the datastore. [Caused by: Listener refused the connection with the following error:
    ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
    The Connection descriptor used by the client was:
    localhost:1521:XE1
    ; nested exception is:
    ORABPEL-11622
    Could not create/access the TopLink Session.
    This session is used to connect to the datastore. [Caused by: Listener refused the connection with the following error:
    ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
    The Connection descriptor used by the client was:
    localhost:1521:XE1
    See root exception for the specific exception. You may need to configure the connection settings in the deployment descriptor (i.e. weblogic-ra.xml) and restart the server. Caused by Exception [TOPLINK-4002|http://forums.oracle.com/forums/] (Oracle TopLink - 10g Release 3 (10.1.3.4.0) (Build 080602)): oracle.toplink.exceptions.DatabaseException
    Internal Exception: java.sql.SQLException: Listener refused the connection with the following error:
    ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
    The Connection descriptor used by the client was:
    localhost:1521:XE1
    Error Code: 0.
    ,detail=
    Internal Exception: java.sql.SQLException: Listener refused the connection with the following error:
    ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
    The Connection descriptor used by the client was:
    localhost:1521:XE1
    Error Code: 0
    at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:623)
    at com.collaxa.cube.ws.WSInvocationManager.invoke2(WSInvocationManager.java:437)
    at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:251)
    at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__invoke(BPELInvokeWMP.java:826)
    at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__executeStatements(BPELInvokeWMP.java:402)
    at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.expire(BPELInvokeWMP.java:151)
    at com.collaxa.cube.engine.CubeEngine.expireActivity(CubeEngine.java:4161)
    at com.collaxa.cube.engine.CubeEngine.expireActivity(CubeEngine.java:2073)
    at com.collaxa.cube.ejb.impl.ActivityManagerBean.expireActivity(ActivityManagerBean.java:174)
    at com.collaxa.cube.ejb.impl.ActivityManagerBean.expireActivity(ActivityManagerBean.java:145)
    at com.collaxa.cube.ejb.impl.ActivityManagerBean_lcloe8_ELOImpl.expireActivity(ActivityManagerBean_lcloe8_ELOImpl.java:542)
    at com.collaxa.cube.engine.dispatch.message.instance.ExpirationMessageHandler.handle(ExpirationMessageHandler.java:43)
    at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:140)
    at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTask.java:58)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
    at java.lang.Thread.run(Thread.java:595)
    -----

    The fault management framework catches all faults (business and runtime) for an invoke activity only.
    For all other activities use the BPEL fault handler.

  • Non-Recoverable Fault In BPEL

    Hi:
    I have a BPEL process which is deployed in EM console. I got a error like below saying it as Non-Recoverable error
    Non Recoverable System Fault :
    <bpelFault><faultType>0</faultType><selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"></selectionFailure></bpelFault>.
    The problem is this error comes in *"Recent Fault and Rejected Messages"* section everyday between 12AM to 4 AM, even i have deleted the instance which caused the fault but till the error persists. How to stop this?
    Regards,
    RK

    Hi,
    Have a look at Arik's blog...
    http://ariklalo.wordpress.com/2012/04/25/stop-the-automatic-instances-recovery-on-em/
    Cheers,
    Vlad

  • Faults in BPEL when invoked from a Custom built Web Application

    Hello there,
    I have developed a BPEL flow for a HealthCare demo and it works fine and all is well when it is invoked from the BPEL Console's initiate screen.
    I developed a webapplication to invoke the same (using the regular com.collaxa api for invokation of any BPEL process). It invokes the BPEL successfully and I can see the whole Payload in the 'receiveInput' section of the BPEL Flow. But the very First 'Assign' in which i just assign a text string as a default value to an input element faults out stating that the 'to' field is a 'zero node'... The assign stage also shows the payload with all values in it. But it errors out...
    here is the payload in the 'receiveInput' stage:
    <inputVariable>
    <part name="payload" >
    <HealthCareWorkFlowProcessRequest>
    <enduser_name>pavan</enduser_name>
    <enduser_phone_number>08046521345</enduser_phone_number>
    <enduser_username>pkvedam</enduser_username>
    <enduser_email_id>[email protected]</enduser_email_id>
    <problem_desc>cancer</problem_desc>
    <prob_relates_to>onchology</prob_relates_to>
    <doctor_assigned/>
    <doctor_assigned_email_id/>
    <proposed_date>13-10-2006</proposed_date>
    <proposed_time>09:00</proposed_time>
    <proposed_duration>01:00</proposed_duration>
    <patient_comments>swelling in the arm pit</patient_comments>
    <receptionist_comments/>
    <doctor_comments/>
    <receptionist_username>employee</receptionist_username>
    <receptionist_email_id>[email protected]</receptionist_email_id>
    </HealthCareWorkFlowProcessRequest>
    </part>
    </inputVariable>
    Here is the ASSIGN stage errors out (copied to clipboard):
    [2006/10/14 10:44:54]
    Error in <assign> expression: <to> value is empty at line "46". The XPath expression:
    "/child::client:HealthCareWorkFlowProcessRequedst/child::client:receptionist_username"
    returns zero node, when applied to document shown below:
    <HealthCareWorkFlowProcessRequest>
    <enduser_name>pavan</enduser_name>
    <enduser_phone_number>08046521345</enduser_phone_number>
    <enduser_username>pkvedam</enduser_username>
    <enduser_email_id>[email protected]</enduser_email_id>
    <problem_desc>cancer</problem_desc>
    <prob_relates_to>onchology</prob_relates_to>
    <doctor_assigned/>
    <doctor_assigned_email_id/>
    <proposed_date>13-10-2006</proposed_date>
    <proposed_time>09:00</proposed_time>
    <proposed_duration>01:00</proposed_duration>
    <patient_comments>swelling in the arm pit</patient_comments>
    <receptionist_comments/>
    <doctor_comments/>
    <receptionist_username>employee</receptionist_username>
    <receptionist_email_id>[email protected]</receptionist_email_id>
    </HealthCareWorkFlowProcessRequest>
    <selectionFailure>
    <part name="summary" >
    <summary>XPath query string returns zero node. According to BPEL4WS spec 1.1 section 14.3, The assign activity &lt;to&gt; part query should not return zero node. Please check the BPEL source at line number "46" and verify the &lt;to&gt; part xpath query. </summary>
    </part>
    </selectionFailure>

    oops... sorry... I had typed it in as there is no way to copy that 'error message' on to the clipboard from the BPEL FLOW depiction.
    it must have read 'HealthCareWorkFlowProcessRequest'...
    the problem is not with the typo... :(
    Am not able to find the root cause... but the flow fails when invoked from my web application...

  • Propagate fault from BPEL to BPM

    This is what my use-case is - I have my BPM business process, from which I am calling my more granular BPEL processes. In case of a fault occurring in the BPEL level, I want to propagate that fault to the BPM level, so I can pick the fault, and handle it there, either by creating a sub process, or terminating the BPM process, or whatever else.
    So far, I have not had any success in sending the faults from the BPEL to the BPM. If you done done something like this, please help me on how to proceed.
    Any help/inuts greatly appreciated.
    Thanks,
    Abhi

    First you need to be sure the WSDL for your BPEL is defining the faults that it can return. Next you need to be sure to throw the proper fault from the BPEL process.
    You could confirm that is working using EM or SoapUI to test your BPEL service.
    Once that is working you can use a border exception event on the service activity in the BPMN process to catch the fault that you have declared in the BPEL WSDL.
    Thanks,
    Adam DesJardin

  • Throw customised Faults in BPEL

    Hi ,
    I need to throw a user-defined fault from my BPEL Process.How can I acheive that.When my BPEL process is called by other service it throw that specific fault.
    Any documentation would also be of great help.
    Thanks
    Deepthi

    I am using 10.1.3.1 Bpel Process Manager.
    I am throwing the fault but on the console i am receiving an receive time out exception.Instead of the fault which I have thrown.
    Thanks
    deepthi

  • Custom fault message from OSB is not throw in BPEL

    Hi,
    I have created a custom fault error in OSB which is sent to BPEL.
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header/>
    <env:Body>
    <env:Fault>
    </env:Fault>
    </env:Body>
    </env:Envelope>
    If my namespace in FAULT tag is "http://schemas.xmlsoap.org/soap/envelope/",
    message is understood as fault IN BPEL. But if I change namespace, BPEL understands as reply message.
    How can I use my custom fault message with different namespace as http://schemas.xmlsoap.org/soap/envelope/ ?
    Regards,

    SOAP Fault has a defined structure and defined namespaces. It does provide a placeholder for custom data though. Just like you can not change the namespace of Envelope of Body, similarly you cant change the namespace of Fault(if you want it to be recognized by the client apps). Any custom data you want to send in the SOAP Fault needs to be set as a child of 'detail' element of SOAP Fault. This custom data can have any namespace you wish. This Custom XML will be the element you define as Fault element in your WSDL
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header/>
    <env:Body>
    <env:Fault>
    <faultcode>env:Client</faultcode>
    <faultstring>some error string</faultstring>
    <faultactor>somedata</faultactor>
    <detail>
    {here you can put your custom XML content in any namespace which you have defined in the WSDL}
    </detail>
    </env:Fault>
    </env:Body>
    </env:Envelope>

  • Fault Handling in BPEL - Continue after Catch Block

    Hi,
    I have a catch block in my BPEL process.
    On exception, the catch block catches the error and terminates the BPEL Process.
    Is it possible to loop back the flow after the catch sequence?
    Thanks,
    Venkat

    Hi,
    Thanks for your reply
    Sorry, I was not clear with my question.
    I have a infinite loop in my process. Inside the loop I have an invoke operation(Invokes another BPEL process) and a wait operation. If any exception occurs, my BPEL process terminates. However, I wanted my BPEL process to just continue in the loop.
    I solved the issue with the help of this How to handle fault when BPEL process is polling a FTP server which is down
    i.e, using the Scope activity. Place my invoke operation inside a scope and put a catchAll block only for that scope. Its working fine
    Thanks,
    Venkat

  • BPEL 2.0 throws some of the faults as exceptions.. how do i handle them

    hi All
    I am using Jdev 11.1.1.6
    There is something weird happening while i am trying to handle faults in BPEL 2.0..
    Scenario: I am simply transfering data from one table to another and there is mismatch of the length in two tables i.e. target table have column with 30 length and source system is sending data of 40 length..
    so i am expecting a BPEL Binding Fault for the same
    but I am getting an exception from BPEL 2.0 for the same.. and it is not thrown as a fault to catch block.. Project gets Rolledback without throwing Fault to catch Block..
    then i tried same with BPEL 1.1 and it gave me fault as expected in catch block which i could handle by sending fault notifications..
    but BPEL 2.0 does not give me option of sending notifications as i do not get fault in Catch block..
    Issue: How do i handle the fault in BPEL 2.0 when its throwing it as exception?????
    Below is the trace i get from my instance with BPEL 2.0 and BPEL 1.1..
    Getting Exception From BPEL 2.0 as below_: After throwing the exception process gets rolledback but instance is always in running mode
    Non Recoverable System Fault :
    Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'merge' failed due to: DBWriteInteractionSpec Execute Failed Exception. merge failed. Descriptor name: [MergeItemDBAdapterV1.Item]. Caused by java.sql.BatchUpdateException: ORA-12899: value too large for column "ITEM"."ITEMNAME" (actual: 40, maximum: 30) . Please see the logs for the full DBAdapter logging output prior to this exception. This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-12899" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
    Exception i am getting in Invoke Activity but No Fault
    <fault>
    <exception class="com.collaxa.cube.engine.EngineException">
    JTA transaction is not in active state. The transaction became inactive when executing activity "" for instance "520,633", bpel engine can not proceed further without an active transaction. please debug the invoked subsystem on why the transaction is not in active status. the transaction status is "MARKED_ROLLBACK". The reason was The execution of this instance "520633" for process "BPELProcess2" is supposed to be in an active jta transaction, the current transaction status is "MARKED_ROLLBACK", the underlying exception is "BINDING.JCA-12563 Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'merge' failed due to: DBWriteInteractionSpec Execute Failed Exception. merge failed. Descriptor name: [MergeItemDBAdapterV1.Item]. Caused by java.sql.BatchUpdateException: ORA-12899: value too large for column "ITEM"."ITEMNAME" (actual: 40, maximum: 30) . Please see the logs for the full DBAdapter logging output prior to this exception. This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-12899" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. " . Consult the system administrator regarding this error.
    <stack>
    <f>com.oracle.bpel.client.util.TransactionUtils.throwExceptionIfTxnNotActive#107</f>
    <f>com.collaxa.cube.ws.WSInvocationManager.invoke#352</f>
    <f>com.collaxa.cube.engine.ext.common.InvokeHandler.__invoke#1070</f>
    <f>com.collaxa.cube.engine.ext.common.InvokeHandler.handleNormalInvoke#584</f>
    <f>com.collaxa.cube.engine.ext.common.InvokeHandler.handle#132</f>
    <f>com.collaxa.cube.engine.ext.bpel.common.wmp.BPELInvokeWMP.__executeStatements#74</f>
    <f>com.collaxa.cube.engine.ext.bpel.common.wmp.BaseBPELActivityWMP.perform#166</f>
    <f>com.collaxa.cube.engine.CubeEngine.performActivity#2687</f>
    <f>com.collaxa.cube.engine.CubeEngine._handleWorkItem#1190</f>
    <f>com.collaxa.cube.engine.CubeEngine.handleWorkItem#1093</f>
    <f>com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal#76</f>
    <f>com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage#218</f>
    <f>com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory#297</f>
    <f>com.collaxa.cube.engine.CubeEngine.endRequest#4609</f>
    <f>com.collaxa.cube.engine.CubeEngine.endRequest#4540</f>
    <f>com.collaxa.cube.engine.CubeEngine._createAndInvoke#713</f>
    <f>...</f>
    </stack>
    </exception>
    <root class="oracle.fabric.common.FabricInvocationException">
    BINDING.JCA-12563 Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'merge' failed due to: DBWriteInteractionSpec Execute Failed Exception. merge failed. Descriptor name: [MergeItemDBAdapterV1.Item]. Caused by java.sql.BatchUpdateException: ORA-12899: value too large for column "ITEM"."ITEMNAME" (actual: 40, maximum: 30) . Please see the logs for the full DBAdapter logging output prior to this exception. This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-12899" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
    <stack>
    <f>oracle.integration.platform.blocks.adapter.fw.jca.cci.EndpointInteractionException.getFabricInvocationException#75</f>
    <f>oracle.integration.platform.blocks.adapter.AdapterReference.getFabricInvocationException#307</f>
    <f>oracle.integration.platform.blocks.adapter.AdapterReference.post#293</f>
    <f>oracle.integration.platform.blocks.mesh.AsynchronousMessageHandler.doPost#142</f>
    <f>oracle.integration.platform.blocks.mesh.MessageRouter.post#197</f>
    <f>oracle.integration.platform.blocks.mesh.MeshImpl.post#215</f>
    <f>sun.reflect.GeneratedMethodAccessor1455.invoke</f>
    <f>sun.reflect.DelegatingMethodAccessorImpl.invoke#25</f>
    <f>java.lang.reflect.Method.invoke#597</f>
    <f>org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection#307</f>
    <f>org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint#182</f>
    <f>org.springframework.aop.framework.ReflectiveMethodInvocation.proceed#149</f>
    <f>oracle.integration.platform.metrics.PhaseEventAspect.invoke#71</f>
    <f>org.springframework.aop.framework.ReflectiveMethodInvocation.proceed#171</f>
    <f>org.springframework.aop.framework.JdkDynamicAopProxy.invoke#204</f>
    <f>$Proxy315.post</f>
    <f>...</f>
    </stack>
    </root>
    </fault>
    Getting Exception as well as Fault from BPEL 1.1 as below_
    ->Here i am getting exception as above
    Non Recoverable System Fault :
    Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'merge' failed due to: DBWriteInteractionSpec Execute Failed Exception. merge failed. Descriptor name: [MergeItemDBAdapterV1.Item]. Caused by java.sql.BatchUpdateException: ORA-12899: value too large for column "ITEM"."ITEMNAME" (actual: 40, maximum: 30) . Please see the logs for the full DBAdapter logging output prior to this exception. This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-12899" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
    ->and here is the fault thrown by BPEL 1.1
    Non Recoverable System Fault :
    <bpelFault><faultType>0</faultType><bindingFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'merge' failed due to: DBWriteInteractionSpec Execute Failed Exception. merge failed. Descriptor name: [MergeItemDBAdapterV1.Item]. Caused by java.sql.BatchUpdateException: ORA-12899: value too large for column "ITEM"."ITEMNAME" (actual: 40, maximum: 30) . Please see the logs for the full DBAdapter logging output prior to this exception. This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-12899" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. </summary></part><part name="detail"><detail>ORA-12899: value too large for column "ITEM"."ITEMNAME" (actual: 40, maximum: 30) </detail></part><part name="code"><code>12899</code></part></bindingFault></bpelFault>
    Fault i am getting in Invoke Activity
    <fault>
    <bpelFault>
    <faultType>0</faultType>
    <bindingFault>
    <part name="summary">
    <summary>Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'merge' failed due to: DBWriteInteractionSpec Execute Failed Exception. merge failed. Descriptor name: [MergeItemDBAdapterV1.Item]. Caused by java.sql.BatchUpdateException: ORA-12899: value too large for column "ITEM"."ITEMNAME" (actual: 40, maximum: 30) . Please see the logs for the full DBAdapter logging output prior to this exception. This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-12899" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. </summary>
    </part>
    <part name="detail">
    <detail>ORA-12899: value too large for column "ITEM"."ITEMNAME" (actual: 40, maximum: 30) </detail>
    </part>
    <part name="code">
    <code>12899</code>
    </part>
    </bindingFault>
    </bpelFault>
    </fault>
    Please suggest..

    I sorted out what is happening..
    When My Target DB is Empty and Merge operation is executed , Fault is thrown and catch block was able to catch it
    And When My Target DB is having Values, It is thrown as Exception.. i.e. no fault to Catch block :(
    Someone have any idea, hoe this can be resolved???
    Edited by: 910947 on Aug 31, 2012 1:43 AM

  • Handling BPEL custom business faults in 11g

    Hi All,
    I am trying to work with 11g BPEL custom business faults based on fault-policies and following options are tried, but no success
    1. Use Throw activity to throw business fault and handle it in fault-policies
    2. Receive SOAP:Fault from OSB partnerlink and handle it in fault-policies
    Flow Description_
    BPEL<sync=>OSB
    Fault-Policy used*
    <faultName xmlns:ns="http://schemas.org/2207/Services"
    name="ns:BusinessFault">
    <condition>
    <action ref="ora-retry"/>
    </condition>
    </faultName>
    OSB WSDL*
    &lt;wsdl:message name="Business_ResponseFaultMessage"&gt;
    &lt;wsdl:part name="BusinessFault" element="tns:BusinessFault"&gt;&lt;/wsdl:part&gt;
    &lt;/wsdl:message&gt;
    &lt;wsdl:portType name="IntegrationService"&gt;
    &lt;wsdl:operation name="Order"&gt;
    &lt;wsdl:input message="tns:IntegrationService_InputMessage"/&gt;
    &lt;wsdl:output message="tns:IntegrationService_OutputMessage"/&gt;
    &lt;wsdl:fault name="BusinessFault" message="tns:Business_ResponseFaultMessage"&gt;&lt;/wsdl:fault&gt;
    &lt;/wsdl:operation&gt;
    &lt;/wsdl:portType&gt;
    &lt;wsdl:binding name="IntegrationSoap" type="tns:IntegrationService"&gt;
    &lt;soap:binding transport="http://schemas.xmlsoap.org/soap/http"/&gt;
    &lt;wsdl:operation name="Order"&gt;
    &lt;soap:operation soapAction="Order" style="document"/&gt;
    &lt;wsdl:input&gt;
    &lt;soap:body use="literal"/&gt;
    &lt;/wsdl:input&gt;
    &lt;wsdl:output&gt;
    &lt;soap:body use="literal"/&gt;
    &lt;/wsdl:output&gt;
    &lt;wsdl:fault name ="BusinessFault" &gt;
    &lt;soap:fault name="BusinessFault" use="literal" /&gt;
    &lt;/wsdl:fault&gt;
    &lt;/wsdl:operation&gt;
    &lt;/wsdl:binding&gt;
    I have defined BusinessFault in xsd and xsd is referenced with in OSB WSDL.
    *1st case result*
    When I use Throw activity,business fault is being raised but always going to CatchAll in BPEL, but I would like to handle through fault-policies.
    _2nd case result_
    OSB partnerlink is returning SOAP:Fault to BPEL, but BPEL is always taking it as remoteFault, not as a business fault.
    When I ran OSB service,I can clearly see SOAP:Fault being thrown,but When I invoke from EM console it is always complaining like
    *     Either the WSDL URL is invalid or the WSDL file is not valid or incorrect. - Failed to model operation: {"http://schemas.org/2207/Services}Order(,)*
    *Reason: Could not find definition for element: {"http://schemas.org/2207/Services}BusinessFault Detail:*
    SOAP:Fault returned by OSB is
    &lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&gt;
    &lt;soapenv:Header/&gt;
    &lt;soapenv:Body&gt;
    &lt;soap-env:Fault xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"&gt;
    &lt;faultcode&gt;soap-env:Server&lt;/faultcode&gt;
    &lt;faultstring&gt;Unable to find order offer for supplied product: ZINDA&lt;/faultstring&gt;
    &lt;detail&gt;
    &lt;ns:BusinessFault xmlns:ns="http://schemas.org/2207/Services"&gt;
    &lt;OrderResponse xmlns="http://schemas.org/2207/Services" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
    &lt;Errors&gt;
    &lt;ErrorMsgl Code="Unknown"&gt;Unable to find offer for supplied product: ZINDA&lt;/ErrorDetail&gt;
    &lt;/Errors&gt;
    &lt;Status&gt;Failed&lt;/Status&gt;
    &lt;/OrderResponse&gt;
    &lt;/ns:BusinessFault&gt;
    &lt;/detail&gt;
    &lt;/soap-env:Fault&gt;
    &lt;/soapenv:Body&gt;
    &lt;/soapenv:Envelope&gt;
    Any ideas where we are going wrong?
    Thanks,
    Praveen
    Edited by: Praveen Vaddanam on Apr 3, 2012 5:23 AM
    Edited by: Praveen Vaddanam on Apr 3, 2012 5:32 AM

    Hi
    Did you find a solution to your problem. I am also facing a similar problem.
    Thanks

  • How to return fault from Async BPEL

    Hi,
    I have ESB that has input,output and fault, This ESB calls Async BPEL that takes only input. Now i want to return fault from BPEL to ESB. How do i do it?
    Please help.

    Hi,
    My use case is i am implementing AIA. So my enterprise layer is ESB and my ABCS provider is BPEL. As provider takes lot of time to complete the instance, to avoid timeout issue i just created Async BPEL with two ports one for input another for fault. I am able to send back my fault back to this call back port. But how i can receive the fault to the same ESB which called the BPEL?
    I am not able to implement it. I can not go for any workaround like creating one more BPEL and then make it as sync, put pick activity and receive the fault then send back to ESB.
    Thats the reason i am very specific. If you find some solution please let me know.

  • How to return fault from Async BPEL to ESB

    Hi,
    I have ESB that has input,output and fault, This ESB calls Async BPEL that takes only input. Now i want to return fault from BPEL to ESB. How do i do it?
    Please help.

    Hi,
    My use case is i am implementing AIA. So my enterprise layer is ESB and my ABCS provider is BPEL. As provider takes lot of time to complete the instance, to avoid timeout issue i just created Async BPEL with two ports one for input another for fault. I am able to send back my fault back to this call back port. But how i can receive the fault to the same ESB which called the BPEL?
    I am not able to implement it. I can not go for any workaround like creating one more BPEL and then make it as sync, put pick activity and receive the fault then send back to ESB.
    Thats the reason i am very specific. If you find some solution please let me know.

  • Fault policy does not work when throwing remoteFault in bpel

    Hi
    I have a BPEL-proces in which I throw a remoteFault.
    In the fault-policy there is a condition for this fault
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:remoteFault">
    <condition>
    <action ref="ora-java"/>
    </condition>
    </faultName>
    But the fault-policy does not work if I throw this remoteFault in de bpel. But when I invoke another service (which is shutdown), then I get a remoteFault and for this remoteFault the fault-policy works well.
    Any idea why the fault-policy does not work when I throw the remoteFault?
    Regards

    BPEL fault works only on invocation failures.
    Fault management will work based on the remote fault from the remote service, you cannot throw remote fault from bpel and capture that in fault management and process.
    The following are the actions that we can take on faults.
    1. Human Intervention
    2. Rethrow [rethrowFault]
    3. Termination [abort]
    4. Replay Fault [replayScope]
    5. Custom Java Action [javaAction]
    6. Retry [retry]
    Hope this helps !!!
    Thanks,
    Vijay

Maybe you are looking for