Fault BPEL 10.1.3.4

Attempting first BPEL using 2 PartnerLinks. Each PartnerLink returns business faults (missing or invalid data etc) as a SOAPException.
I invoked fault-bindings.xml to handle server problems, which I expected to retry a number of times if a PartnerLink was unavailable.
Without a catch within my BPEL I am getting Unhandled Exception errors.
If I add a catch within my BPEL the business fault is causing the multiple retrys and returning a timeout to the client.
<Faulthttp://schemas.xmlsoap.org/soap/envelope/>
<faultcode>env:Server</faultcode>
<faultstring>com.oracle.bpel.client.delivery.ReceiveTimeOutException: Waiting for response has timed out. The conversation id is a9666a35e64fe6c5:3a5d1881:11e41afb00f:-7fa9. Please check the process instance for detail.</faultstring>
</Fault>
Within the console I can see the returned business fault
<fault>
-<bindingFault xmlns="http://schemas.oracle.com/bpel/extension">
-<part name="summary">
<summary>
exception on JaxRpc invoke:
start fault message:
Invalid account attempted [PREP]
:end fault message
</summary>
</part>
</bindingFault>
</fault>
If I remove the catch from the BPEL it runs quickly but returns the Unhandled Exception.
I have tried to remove the fault-bindings.xml without a change in behaviour. Restarted the service and even rebooted the server.
How can I catch the business fault and return this to the BPEL client without the huge timeout.
Sara

Attempting first BPEL using 2 PartnerLinks. Each PartnerLink returns business faults (missing or invalid data etc) as a SOAPException.
I invoked fault-bindings.xml to handle server problems, which I expected to retry a number of times if a PartnerLink was unavailable.
Without a catch within my BPEL I am getting Unhandled Exception errors.
If I add a catch within my BPEL the business fault is causing the multiple retrys and returning a timeout to the client.
<Faulthttp://schemas.xmlsoap.org/soap/envelope/>
<faultcode>env:Server</faultcode>
<faultstring>com.oracle.bpel.client.delivery.ReceiveTimeOutException: Waiting for response has timed out. The conversation id is a9666a35e64fe6c5:3a5d1881:11e41afb00f:-7fa9. Please check the process instance for detail.</faultstring>
</Fault>
Within the console I can see the returned business fault
<fault>
-<bindingFault xmlns="http://schemas.oracle.com/bpel/extension">
-<part name="summary">
<summary>
exception on JaxRpc invoke:
start fault message:
Invalid account attempted [PREP]
:end fault message
</summary>
</part>
</bindingFault>
</fault>
If I remove the catch from the BPEL it runs quickly but returns the Unhandled Exception.
I have tried to remove the fault-bindings.xml without a change in behaviour. Restarted the service and even rebooted the server.
How can I catch the business fault and return this to the BPEL client without the huge timeout.
Sara

Similar Messages

  • Retrying faulted BPEL instances from Oracle BAM.

    Hi
    need to configure bam report by adding hyperlink to order id of the faulted BPEL process to open em console to retry the faulted BPEL instances.
    Oracle document available is wrt BPEL 10g where we configure static address of the BPEL console activity tab and pass dynamically the faultID by defining action in BAM report.
    I am not able to configure the static address and dynamic link wrt soa 11g.
    Please help me in achieving this functionality using BAM report for BPEL 11g.
    Thanks in advance
    Krishna

    the locator api + the instance state will do the trick (the console is using those btw.). Various resources on the net explain this in depth (including the developers guide)
    thanks

  • Avoid persistent faulted BPEL process instances in database

    Hello All,
    I have a doubt relative to Memory Optimization, I've configured a BPEL process like a transient process using these lines:
    <property name="bpel.config.inMemoryOptimization">true</property>
    <property name="bpel.config.completionPersistPolicy">off</property>
    My problem starts when I have a faulted instance, because this instance creates a row in the CUBE_INSTANCE table in the database and I have the requiriment of avoid persistent instances in datase.
    If I change the the value of completionPersistPoliciy property to fault, the behaviour is the same...
    <property name="bpel.config.inMemoryOptimization">true</property>
    <property name="bpel.config.completionPersistPolicy">faulted</property>
    Anybody knows how to avoid persistent faulted instances?
    Thanks in advance,
    Edited by: luismiguelfdez on Mar 26, 2012 1:59 AM

    When an unhandled fault happens regardless of these flags, bpel will persist the audit information for the instance, so cube_instance table has a record and EM could show this in meaningful way.
    Docs should be updated in SOA PS5(11.1.1.6.0) release with above information.

  • BPEL 11g fault policy action java class not sending email

    Hi All,
    I am trying to attach fault policy to my bpel process. The fault conditions are working fine but the email part from the action class is not able to send email. The code execute properly , i can't see any error message in the log but I cant access the email in my inbox.
    I am able to send email from using email bpel activity and also test work flow notification from em console.
    I have used both the java options for sending email like javax.mail and oracle.sdp.messaging .
    JAVA CODE FOR EMAIL javax.mail
    public String handleFault(IFaultRecoveryContext iFaultRecoveryContext){
    //Print Fault Meta Data to Console
    System.out.println("****************Fault Metadata********************************");
    System.out.println("Fault policy id: " + iFaultRecoveryContext.getPolicyId());
    System.out.println("Fault type: " + iFaultRecoveryContext.getType());
    System.out.println("Partnerlink: " + iFaultRecoveryContext.getReferenceName());
    System.out.println("Port type: " + iFaultRecoveryContext.getPortType());
    System.out.println("**************************************************************");
    //print all properties defined in the fault-policy file
    System.out.println("Properties Set for the Fault");
    //Print Fault Details to Console if it exists
    System.out.println("****************Fault Details********************************");
    // if(iFaultRecoveryContext instanceof BPELFaultRecoveryContextImpl)
    BPELFaultRecoveryContextImpl bpelCtx = (BPELFaultRecoveryContextImpl)iFaultRecoveryContext;
    System.out.println("Fault: " + bpelCtx.getFault());
    System.out.println("Activity: " + bpelCtx.getActivityName());
    System.out.println("Composite Instance: " + bpelCtx.getCompositeInstanceId());
    System.out.println("Composite Name: " + bpelCtx.getCompositeName());
    System.out.println("***********************************************************");
    try {
    bpelCtx.addAuditTrailEntry("Sending Email...");
    Map props = iFaultRecoveryContext.getProperties();
    if (props != null && props.size() > 0) {
    setFrom(getParameterValue((ArrayList)props.get("from")));
    setTo(getParameterValue((ArrayList)props.get("to")));
    setSubject(getParameterValue((ArrayList)props.get("subject")) + bpelCtx.getTitle());
    setText(getParameterValue((ArrayList)props.get("text")) + "\n" + "BPEL Process Instance: " + bpelCtx.getInstanceId() + " needs intervention to recover from a technical exception: " + bpelCtx.getFault().getMessage() + ".\n" + "Check the Activities tab in the BPEL Management Console in order to resolve the error as soon as possible.\n" + "This message was automatically generated, please do not reply to it.");
    setHost(getParameterValue((ArrayList)props.get("host")));
    setPort(getParameterValue((ArrayList)props.get("port")));
    bpelCtx.addAuditTrailEntry("to Email getFrom..."+getFrom());
    bpelCtx.addAuditTrailEntry("to Email getTo..."+getTo());
    bpelCtx.addAuditTrailEntry("to Email getText..."+getText());
    bpelCtx.addAuditTrailEntry("to Email getHost..."+getHost());
    bpelCtx.addAuditTrailEntry("to Email getPort..."+getPort());
    Session mailSession = Session.getDefaultInstance(properties);
    Message simpleMessage = new MimeMessage(mailSession);
    bpelCtx.addAuditTrailEntry("to Email toAddresses2...");
    InternetAddress fromAddress = new InternetAddress(from);
    bpelCtx.addAuditTrailEntry("to Email fromAddress..."+fromAddress);
    simpleMessage.setFrom(fromAddress);
    String[] toAddresses = to.split(";");
    if (toAddresses != null && toAddresses.length > 0)
    bpelCtx.addAuditTrailEntry("to Email toAddresses3...");
    InternetAddress[] toInternetAddresses =new InternetAddress[toAddresses.length];
    for (int i = 0; i < toAddresses.length; i++)
    bpelCtx.addAuditTrailEntry("to Email toAddresses4444..."+ toAddresses);
    toInternetAddresses[i] = new InternetAddress(toAddresses[i]);
    bpelCtx.addAuditTrailEntry("to Email toInternetAddresses..."+ toInternetAddresses[i]);
    simpleMessage.setRecipients(RecipientType.TO,toInternetAddresses);
    simpleMessage.setSubject(subject);
    simpleMessage.setText(text);
    Transport.send(simpleMessage);
    bpelCtx.addAuditTrailEntry("After Email...");
    } catch (Exception e) {
    bpelCtx.addAuditTrailEntry("fault Message:" + e.getMessage());
    //Custom Code to Log Fault to File/DB/JMS or send Emails etc.
    return "Manual";
    private String getParameterValue(ArrayList parameterList) {
    String value = null;
    if (parameterList != null && parameterList.size() > 0)
    value = (String)parameterList.get(0);
    return value;
    JAVA CODE FOR EMAIL oracle.sdp.messaging 
    private void sendMail(IFaultRecoveryContext iFaultRecoveryContext) {
    BPELFaultRecoveryContextImpl bpelCtx = (BPELFaultRecoveryContextImpl)iFaultRecoveryContext;
    bpelCtx.addAuditTrailEntry("In sendMail...");
    Map<String, Object> params = new HashMap<String, Object>();
    // params.put(key, value); // if optional parameters need to be specified.
    MessagingClient messagingClient;
    try {
    bpelCtx.addAuditTrailEntry("In sendMail111...");
    messagingClient =
    MessagingClientFactory.createMessagingClient(params);
    Message newMessage = MessagingFactory.createMessage();
    // newMessage.setContent(createEventPayload(iFaultRecoveryContext),"text/plain");
    newMessage.setContent("Component Name :"+bpelCtx.getComponentName()+ "\n Instacne Id :"+bpelCtx.getComponentInstanceId()+
    "\n Composite Instance Id :"+bpelCtx.getCompositeInstanceId()+ "\n Composite Name :" bpelCtx.getCompositeName()
    "\n Activity name :"+bpelCtx.getActivityName() + "\n Activity Id :" bpelCtx.getActivityId() "\n ECID :" bpelCtx.getECID()
    "\n Reference Name :"+bpelCtx.getReferenceName()+ "\n Title :" bpelCtx.getTitle()
    "\n Fault :" + bpelCtx.getFault()+ "\n Port Name :"+bpelCtx.getPortType(), "text/plain");
    bpelCtx.addAuditTrailEntry("In sendMail222...");
    Address sender = MessagingFactory.createAddress(getFrom());
    bpelCtx.addAuditTrailEntry("In sendMail sender..."+sender.toString());
    bpelCtx.addAuditTrailEntry("from Email..."+getFrom());
    String recipientsStr[] = to.split(";");
    bpelCtx.addAuditTrailEntry("to Email..."+getTo());
    bpelCtx.addAuditTrailEntry("In sendMail333...");
    Address[] recipients = MessagingFactory.createAddress(recipientsStr);
    bpelCtx.addAuditTrailEntry("In sendMail444...");
    newMessage.addSender(sender);
    messagingClient.registerAccessPoint(MessagingFactory.createAccessPoint(sender));
    newMessage.addAllRecipients(recipients);
    bpelCtx.addAuditTrailEntry("In sendMail5555...");
    newMessage.getMessageInfo().setSession(MessageSessionType.INBOUND_SESSION);
    newMessage.setSubject(getSubject());
    bpelCtx.addAuditTrailEntry("Subject..."+getSubject());
    String messageId = "";
    bpelCtx.addAuditTrailEntry("In sendMail666...");
    synchronized (this) {
    bpelCtx.addAuditTrailEntry("In sendMail777...");
    messageId = messagingClient.send(newMessage);
    bpelCtx.addAuditTrailEntry("In sendMail888...");
    Status[] statuses = messagingClient.getStatus(messageId);
    bpelCtx.addAuditTrailEntry("In sendMail999...");
    } catch (MessagingException e) {
    bpelCtx.addAuditTrailEntry("inside exception email fault Message:" + e.getMessage());
    //e.printStackTrace();
    MESSAGES FROM SOA SERVER OUT LOG after test the bpel process:
    ===========================================
    ****************Fault?Metadata********************************
    Fault?policy?id:?SimpleFaultPolicy
    Fault?type:?bpel
    Partnerlink:?Service1
    Port?type:?{http://kacst.edu.sa/process/nstip/coPINotifyProcess}kacst_process_nstipCoPIMotifyProcess
    Properties?Set?for?the?Fault
    ****************Fault?Details********************************
    Fault:?com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.oracle.com/bpel/extension}remoteFault}
    messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
    parts: {{
    summary=<summary>Message Router for nstip/nstip_Pro_CoPiNotificationProcess!1.0*soa_084da522-a825-4aa6-9d1c-ca1d50b4595b is not able to process messages. The composite state is set to "off". The composite can be turned "on" by using the administrative consoles.</summary>
    ,detail=<detail>&lt;exception>Message Router for nstip/nstip_Pro_CoPiNotificationProcess!1.0*soa_084da522-a825-4aa6-9d1c-ca1d50b4595b is not able to process messages. The composite state is set to "off". The composite can be turned "on" by using the administrative consoles.&lt;/exception>
    </detail>
    ,code=<code>env:Server</code>}
    Activity:?Invoke1
    Composite?Instance:?740332
    Composite?Name:?TestBPELFaultPolicy
    DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
    DEBUG SMTP: useEhlo true, useAuth false
    DEBUG SMTP: trying to connect to host "localhost", port 25, isSSL false
    220 taisirsit.kacst.edu.sa ESMTP Sendmail 8.14.4+Sun/8.14.4; Fri, 12 Oct 2012 13:00:45 +0300 (AST)
    DEBUG SMTP: connected to host "localhost", port: 25
    EHLO taisirsit.kacst.edu.sa
    250-taisirsit.kacst.edu.sa Hello localhost [127.0.0.1], pleased to meet you
    250-ENHANCEDSTATUSCODES
    250-PIPELINING
    250-EXPN
    250-VERB
    250-8BITMIME
    250-SIZE
    250-DSN
    250-ETRN
    250-DELIVERBY
    250 HELP
    DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
    DEBUG SMTP: Found extension "PIPELINING", arg ""
    DEBUG SMTP: Found extension "EXPN", arg ""
    DEBUG SMTP: Found extension "VERB", arg ""
    DEBUG SMTP: Found extension "8BITMIME", arg ""
    DEBUG SMTP: Found extension "SIZE", arg ""
    DEBUG SMTP: Found extension "DSN", arg ""
    DEBUG SMTP: Found extension "ETRN", arg ""
    DEBUG SMTP: Found extension "DELIVERBY", arg ""
    DEBUG SMTP: Found extension "HELP", arg ""
    DEBUG SMTP: use8bit false
    MAIL FROM:<[email protected]>
    250 2.1.0 <[email protected]>... Sender ok
    RCPT TO:<[email protected]>
    250 2.1.5 <[email protected]>... Recipient ok
    DEBUG SMTP: Verified Addresses
    DEBUG SMTP: [email protected]
    DATA
    354 Enter mail, end with "." on a line by itself
    From: [email protected]
    To: [email protected]
    Message-ID: <[email protected].sa>
    Subject: SOA EXCEPTIONInstance #890381 of BPELProcess1
    MIME-Version: 1.0
    Content-Type: text/plain; charset=us-ascii
    Content-Transfer-Encoding: 7bit
    Testing Email From Fault
    BPEL Process Instance: 890381 needs intervention to recover from a technical exception: faultName: {{http://schemas.oracle.com/bpel/extension}remoteFault}
    messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
    parts: {{
    summary=<summary>Message Router for nstip/nstip_Pro_CoPiNotificationProcess!1.0*soa_084da522-a825-4aa6-9d1c-ca1d50b4595b is not able to process messages. The composite state is set to "off". The composite can be turned "on" by using the administrative consoles.</summary>
    ,detail=<detail>&lt;exception>Message Router for nstip/nstip_Pro_CoPiNotificationProcess!1.0*soa_084da522-a825-4aa6-9d1c-ca1d50b4595b is not able to process messages. The composite state is set to "off". The composite can be turned "on" by using the administrative consoles.&lt;/exception>
    </detail>
    ,code=<code>env:Server</code>}
    Check the Activities tab in the BPEL Management Console in order to resolve the error as soon as possible.
    This message was automatically generated, please do not reply to it.
    250 2.0.0 q9CA0j30012424 Message accepted for delivery
    QUIT
    221 2.0.0 taisirsit.kacst.edu.sa closing connection
    Details from Instance of BPEL PROCESS :
    Started invocation of operation "process" on partner "Service1".
    Oct 12, 2012 10:00:45 AM [FAULT RECOVERY] Invoked handleBPELFault on custom java action class "com.kacst.fault.CustomFaultHandler".
    Oct 12, 2012 10:00:45 AM Sending Email...
    Oct 12, 2012 10:00:45 AM to Email [email protected]
    Oct 12, 2012 10:00:45 AM to Email [email protected]
    Oct 12, 2012 10:00:45 AM to Email getText...Testing Email From Fault BPEL Process Instance: 890381 needs intervention to recover from a technical exception: faultName: {{http://schemas.oracle.com/bpel/extension}remoteFault} messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage} parts: {{ summary=<summary>Message Router for nstip/nstip_Pro_CoPiNotificationProcess!1.0*soa_084da522-a825-4aa6-9d1c-ca1d50b4595b is not able to process messages. The composite state is set to "off". The composite can be turned "on" by using the administrative consoles.</summary> ,detail=<detail>&lt;exception>Message Router for nstip/nstip_Pro_CoPiNotificationProcess!1.0*soa_084da522-a825-4aa6-9d1c-ca1d50b4595b is not able to process messages. The composite state is set to "off". The composite can be turned "on" by using the administrative consoles.&lt;/exception> </detail> ,code=<code>env:Server</code>} . Check the Activities tab in the BPEL Management Console in order to resolve the error as soon as possible. This message was automatically generated, please do not reply to it.
    Oct 12, 2012 10:00:45 AM to Email getHost...smtp.kacst.edu.sa
    Oct 12, 2012 10:00:45 AM to Email getPort...25
    Oct 12, 2012 10:00:45 AM to Email toAddresses2...
    Oct 12, 2012 10:00:45 AM to Email [email protected]
    Oct 12, 2012 10:00:45 AM to Email toAddresses3...
    Oct 12, 2012 10:00:45 AM to Email [email protected]
    Oct 12, 2012 10:00:45 AM to Email [email protected]
    Oct 12, 2012 10:00:45 AM After Email...
    Oct 12, 2012 10:00:45 AM [FAULT RECOVERY] Marked Invoke activity as "pending manual recovery".
    Oct 12, 2012 10:00:45 AM Faulted while invoking operation "process" on provider "Service1".
    Please suggest.
    Thanks

    Hi,
    I got the solution. our email server is sending email to the mail accounts those are in the same domain but for different domains its not able to send the email.
    you can try with the email those are created on the same email server.
    Thanks
    Tuku

  • Request/Response From Long running Service to BPEL

    Hi,
    I have long running web service which I plan to implement as a EJB30 Webservice.
    I need to add support for Async callback Repsonse to the BPEL process calling this ejb service.
    Since jax-ws is not supported by the current version of Oracle I cannot use that.
    Can I use the Java concurrent api in side the EJB and implement the EJB as a stateful EJB with support for WS-Addressing?
    I do not want to use the JMS, becuse of the additional coding of multiple Message beans to send and receive the message.
    What other options do I have here?

    <con:fault xmlns:con="http://www.bea.com/wli/sb/context"> is an osb internal fault and not a soap:Fault
    BPEL process will fault if it receives either a soap:fault or a custom fault defined in the wsdl. so change your proxy service error handling to replace $body to one of these.
    If you don't have reply with failure action, osb will return a soap:Fault ( generated by the system error handler) and bpel will fault , but the error info in $fault will be lost..
    One way to address this is to define a Fault message for the service in the wsdl ( port type will have input, output and fault elements for the operation) and in the osb error handler transform $ fault to the fault message format and do a reply.

  • Exception obtained when invoking a web service generated with JDeveloper

    Hello,
    I tried to create a synchronous BPEL process that invokes synchronously a Java Web Service created with the JDeveloper. The web service is wrapped around a regular Java class. The new created BPEL process is successfully compiled and deployed on the server. But when I try to initiate a test instance of the process in the BPEL console, after I fill the input parameter for then process and push the "Post XML Message" button, I obtain the following error:
    Your test request generated the following exception/fault:
    BPEL Fault: {http://oracle.com/cde/util/Top300DAO.wsdl}org.apache.wsif.soap.fault{org.apache.wsif.soap.fault.object=java.net.ConnectException: Connection refused: connect}
    I looked at flow and it throws the exception when it tries to invokes the web service generated with JDeveloper.
    Do you have any hints, ideas? Thanks a lot in advance for your help.
    I want to also say that the proxy settings for the BPEL server and designer are filled. I think that they are ok because I succeeded to start an instance of another process that calls synchronously an external Web Service.
    Regards,
    Marinel

    My guess is that this is caused by the WSDL of your service having an invalid service address. Can you please take a look at the WSDL of your service make sure that the location of the address is valid? (we have seen a couple of instances in the past where the generated url did not have the right port information).
    Update that WSDL, restart the BPEL server or from the BPEL console clear the WSDL cache and re-initiate your flow.
    Best,
    Edwin

  • 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.

  • Invoking a PL/SQL function from BPEL throws fault.

    Hi, I'm trying to invoke a PL/SQL function that inserts data in to a table from a BPEL via DB Adapter. The process, when I test it, throws a runtime fault as follows:
    *Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'EmpRegister' failed due to: JCA Binding Component connection issue. JCA Binding Component is unable to create an outbound JCA (CCI) connection. AddEmployee:EmpRegister [ EmpRegister_ptt::EmpRegister(InputParameters,OutputParameters) ] : The JCA Binding Component was unable to establish an outbound JCA CCI connection due to the following issue: BINDING.JCA-12510 JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element <connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the <connection-factory/> element: location='eis/DB/DBConn_215'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '<jndi-name>' element in weblogic-ra.xml has not been set to eis/DB/DBConn_215. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.*
    Also, the fault description was a s follows:
    *JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element <connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the <connection-factory/> element: location='eis/DB/DBConn_215'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '<jndi-name>' element in weblogic-ra.xml has not been set to eis/DB/DBConn_215. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server.*
    I know, it looks like a JCA adapter error, but when I do a DB to DB table synchronization with this connection factory, no problems happen. Is ther any special procedure I should follow in mapping input data to db schema?

    HI,
    I am working on BPEL process and human workflow...
    I created a process and a Data control and now can see it as JCA Adapter in console..in this adapter I am executing a sql procedure.. we can execute in in BPEL process through invoke activity, now my requirement is how to invoke this data control through custom java code. please help...\
    now i have two wsdl files.
    RegistrationUpload.wsdl(process name)
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions name="RegistrationUpload"
    targetNamespace="http://xmlns.oracle.com/RegistrationUpload_jws/RegistrationUpload/RegistrationUpload"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:client="http://xmlns.oracle.com/RegistrationUpload_jws/RegistrationUpload/RegistrationUpload"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         TYPE DEFINITION - List of services participating in this BPEL process
         The default output of the BPEL designer uses strings as input and
         output to the BPEL Process. But you can define or import any XML
         Schema type and use them as part of the message types.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <wsdl:types>
              <schema xmlns="http://www.w3.org/2001/XMLSchema">
                   <import namespace="http://xmlns.oracle.com/RegistrationUpload_jws/RegistrationUpload/RegistrationUpload" schemaLocation="xsd/RegistrationUpload.xsd" />
              </schema>
         </wsdl:types>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         MESSAGE TYPE DEFINITION - Definition of the message types used as
         part of the port type defintions
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <wsdl:message name="RegistrationUploadRequestMessage">
              <wsdl:part name="payload" element="client:process"/>
         </wsdl:message>
         <wsdl:message name="RegistrationUploadResponseMessage">
              <wsdl:part name="payload" element="client:processResponse"/>
         </wsdl:message>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         PORT TYPE DEFINITION - A port type groups a set of operations into
         a logical service unit.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <!-- portType implemented by the RegistrationUpload BPEL process -->
         <wsdl:portType name="RegistrationUpload">
              <wsdl:operation name="process">
                   <wsdl:input message="client:RegistrationUploadRequestMessage"/>
              </wsdl:operation>
         </wsdl:portType>
         <!-- portType implemented by the requester of RegistrationUpload BPEL process
         for asynchronous callback purposes
         -->
         <wsdl:portType name="RegistrationUploadCallback">
              <wsdl:operation name="processResponse">
                   <wsdl:input message="client:RegistrationUploadResponseMessage"/>
              </wsdl:operation>
         </wsdl:portType>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         PARTNER LINK TYPE DEFINITION
         the RegistrationUpload partnerLinkType binds the provider and
         requester portType into an asynchronous conversation.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <plnk:partnerLinkType name="RegistrationUpload">
              <plnk:role name="RegistrationUploadProvider">
                   <plnk:portType name="client:RegistrationUpload"/>
              </plnk:role>
              <plnk:role name="RegistrationUploadRequester">
                   <plnk:portType name="client:RegistrationUploadCallback"/>
              </plnk:role>
         </plnk:partnerLinkType>
    </wsdl:definitions>
    uploadDataToPermananentDB.wsdl
    <?binding.jca uploadDataToPermananentDB_db.jca?>
    <wsdl:definitions name="uploadDataToPermananentDB"
    targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/RegistrationUpload/RegistrationUpload/uploadDataToPermananentDB"
    xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/DAMSMGR/TEMP_TO_PERMANENTDB/"
    xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/db/RegistrationUpload/RegistrationUpload/uploadDataToPermananentDB"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
    <plt:partnerLinkType name="uploadDataToPermananentDB_plt">
    <plt:role name="uploadDataToPermananentDB_role">
    <plt:portType name="tns:uploadDataToPermananentDB_ptt"/>
    </plt:role>
    </plt:partnerLinkType>
    <wsdl:types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/DAMSMGR/TEMP_TO_PERMANENTDB/"
    schemaLocation="xsd/DAMSMGR_TEMP_TO_PERMANENTDB.xsd"/>
    </schema>
    </wsdl:types>
    <wsdl:message name="args_in_msg">
    <wsdl:part name="InputParameters" element="db:InputParameters"/>
    </wsdl:message>
    <wsdl:portType name="uploadDataToPermananentDB_ptt">
    <wsdl:operation name="uploadDataToPermananentDB">
    <wsdl:input message="tns:args_in_msg"/>
    </wsdl:operation>
    </wsdl:portType>
    </wsdl:definitions>
    please help me how to call the data adaper from my java code..
    hope i will get some hint in this forum...
    Edited by: user13370040 on Mar 22, 2011 5:55 AM

  • Unable to get Fault in reply from Synchronous BPEL Process

    Hi All,
    I am using a synchronous BPEL process which always throws a fault. The structure of this fault message is added to <bpel_process_name>.xsd.
    For WSDL faults I have added the following in .wsdl file:
    </wsdl:message>
    <wsdl:message name="BusinessFault">
    <wsdl:part name="payload" element="client:faultarea"/>
    </wsdl:message>
    <wsdl:portType name="FaultBPELProcess">
    <wsdl:operation name="process">
    <wsdl:input message="client:FaultBPELProcessRequestMessage"/>
    <wsdl:output message="client:FaultBPELProcessResponseMessage"/>
    <wsdl:fault message="client:BusinessFault" name="BusinessFault" />
    </wsdl:operation>
    </wsdl:portType>
    Now when I invoke this BPEL process, the fault is thrown and caught by the catch block at main scope. this catch assigns some values to the fault message and returns it back to the calling party.
    Fault QName is defined in the reply activity of catch block.
    On testing it, the reply never comes back and I can see the following error message in the logs:
    [2011-08-09T09:47:01.001+05:30] [soa_server1] [NOTIFICATION] [] [oracle.wsm.agent.WSMAgent] [tid: [ACTIVE].ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 11d1def534ea1be0:53ccedc:131a8598fc1:-8000-0000000000000ed1,0:3] [WEBSERVICE_PORT.name: FaultBPELProcess_pt] [APP: soa-infra] [J2EE_MODULE.name: fabric] [WEBSERVICE.name: faultbpelprocess_client_ep] [J2EE_APP.name: soa-infra] Message Type is normalized, exiting agent.processFault()
    [2011-08-09T09:47:01.001+05:30] [soa_server1] [NOTIFICATION] [] [oracle.wsm.agent.WSMAgent] [tid: [ACTIVE].ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 11d1def534ea1be0:53ccedc:131a8598fc1:-8000-0000000000000ed1,0:3] [WEBSERVICE_PORT.name: FaultBPELProcess_pt] [APP: soa-infra] [J2EE_MODULE.name: fabric] [WEBSERVICE.name: faultbpelprocess_client_ep] [J2EE_APP.name: soa-infra] Message Type is normalized, exiting agent.processFault()
    [2011-08-09T09:47:01.060+05:30] [soa_server1] [ERROR] [OWS-04086] [oracle.webservices.service] [tid: [ACTIVE].ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 11d1def534ea1be0:53ccedc:131a8598fc1:-8000-0000000000000ed1,0:3] [APP: soa-infra] javax.xml.rpc.soap.SOAPFaultException[[
    at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.generateSoapFaultException(WebServiceEntryBindingComponent.java:1094)
    at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.processIncomingMessage(WebServiceEntryBindingComponent.java:887)
    at oracle.integration.platform.blocks.soap.FabricProvider.processMessage(FabricProvider.java:113)
    at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:1187)
    at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:1081)
    at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:581)
    at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:232)
    at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:192)
    at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:459)
    at oracle.integration.platform.blocks.soap.FabricProviderServlet.doPost(FabricProviderServlet.java:507)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
    [2011-08-09T09:47:01.061+05:30] [soa_server1] [ERROR] [OWS-04115] [oracle.webservices.service] [tid: [ACTIVE].ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 11d1def534ea1be0:53ccedc:131a8598fc1:-8000-0000000000000ed1,0:3] [APP: soa-infra] An error occurred for port: FabricProvider: javax.xml.rpc.soap.SOAPFaultException.
    If I try to invoke the endpoint uri, it gets invoked and returns the response.
    Any pointers will be appreciated!!

    I tried the same scenario which you told and it's working for me...I'll paste the contents for your reference...
    BPELProcess.bpel
    <?xml version = "1.0" encoding = "UTF-8" ?>
    <!--
    -->
    <process name="BPELProcess1"
    targetNamespace="http://xmlns.oracle.com/Test_jws/TestSync/BPELProcess1"
    xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:client="http://xmlns.oracle.com/Test_jws/TestSync/BPELProcess1"
    xmlns:ora="http://schemas.oracle.com/xpath/extension"
    xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
    <!--
    PARTNERLINKS
    List of services participating in this BPEL process
    -->
    <partnerLinks>
    <!--
    The 'client' role represents the requester of this service. It is
    used for callback. The location and correlation information associated
    with the client role are automatically set using WS-Addressing.
    -->
    <partnerLink name="bpelprocess1_client" partnerLinkType="client:BPELProcess1" myRole="BPELProcess1Provider"/>
    </partnerLinks>
    <!--
    VARIABLES
    List of messages and XML documents used within this BPEL process
    -->
    <variables>
    <!-- Reference to the message passed as input during initiation -->
    <variable name="inputVariable" messageType="client:BPELProcess1RequestMessage"/>
    <!-- Reference to the message that will be returned to the requester-->
    <variable name="outputVariable" messageType="client:BPELProcess1ResponseMessage"/>
    <variable name="FaultVar_2" messageType="client:BusinessFault"/>
    <variable name="FaultVar" messageType="client:BusinessFault"/>
    </variables>
    <faultHandlers>
    <catch faultName="client:BusinessFault" faultVariable="FaultVar">
    <reply name="Reply_1" variable="FaultVar"
    partnerLink="bpelprocess1_client" portType="client:BPELProcess1"
    operation="process" faultName="client:BusinessFault"/>
    </catch>
    </faultHandlers>
    <!--
    ORCHESTRATION LOGIC
    Set of activities coordinating the flow of messages across the
    services integrated within this business process
    -->
    <sequence name="main">
    <!-- Receive input from requestor. (Note: This maps to operation defined in BPELProcess1.wsdl) -->
    <receive name="receiveInput" partnerLink="bpelprocess1_client" portType="client:BPELProcess1" operation="process" variable="inputVariable" createInstance="yes"/>
    <!-- Generate reply to synchronous request -->
    <assign name="Assign_1">
    <copy>
    <from expression="'A business fault occured'"/>
    <to variable="FaultVar_2" part="payload"
    query="/client:processResponse/client:result"/>
    </copy>
    </assign>
    <throw name="Throw_1" faultName="client:BusinessFault"
    faultVariable="FaultVar_2"/>
    <reply name="replyOutput" partnerLink="bpelprocess1_client" portType="client:BPELProcess1" operation="process" variable="outputVariable"/>
    </sequence>
    </process>
    BPELProcess1.wsdl
    <?xml version= '1.0' encoding= 'UTF-8' ?>
    <wsdl:definitions
    name="BPELProcess1"
    targetNamespace="http://xmlns.oracle.com/Test_jws/TestSync/BPELProcess1"
    xmlns:ns1="http://schemas.oracle.com/bpel/extension"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:client="http://xmlns.oracle.com/Test_jws/TestSync/BPELProcess1"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    >
    <plnk:partnerLinkType name="BPELProcess1">
    <plnk:role name="BPELProcess1Provider">
    <plnk:portType name="client:BPELProcess1"/>
    </plnk:role>
    </plnk:partnerLinkType>
    <wsdl:import namespace="http://schemas.oracle.com/bpel/extension" location="RuntimeFault.wsdl"/>
    <wsdl:types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://xmlns.oracle.com/Test_jws/TestSync/BPELProcess1" schemaLocation="xsd/BPELProcess1.xsd"/>
    </schema>
    </wsdl:types>
    <wsdl:message name="BPELProcess1RequestMessage">
    <wsdl:part name="payload" element="client:process"/>
    </wsdl:message>
    <wsdl:message name="BPELProcess1ResponseMessage">
    <wsdl:part name="payload" element="client:processResponse"/>
    </wsdl:message>
    <wsdl:message name="BusinessFault">
    <wsdl:part name="payload" element="client:processResponse"/>
    </wsdl:message>
    <wsdl:portType name="BPELProcess1">
    <wsdl:operation name="process">
    <wsdl:input message="client:BPELProcess1RequestMessage"/>
    <wsdl:output message="client:BPELProcess1ResponseMessage"/>
    <wsdl:fault message="client:BusinessFault" name="BusinessFault" />
    </wsdl:operation>
    </wsdl:portType>
    </wsdl:definitions>
    Hope that helps you...
    Thanks,
    N

  • BPEL process times out when SOAP-ENV:Fault is received from service.

    Hi - I have a BPEL process identical to one in 10.1.2.0.2. If I execute the same test, the BPEL console displays the following on the console for version 10.1.2.0.2.
    <Response>Clientwhen invoking endpointAddress 'http://galileo.wlgore.com:5555/soap/default', [ISS.0088.9134] Exception occurred while processing the body of the messageAxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client faultSubcode: faultString: [ISS.0088.9134] Exception occurred while processing the body of the message faultActor: http://galileo.wlgore.com:5555/soap/default faultNode: faultDetail: {http://www.webMethods.com/2001/10/soap/encoding}exception: <className>com.wm.pkg.art.error.DetailedServiceException</className>
         <message lang="">[ART.117.4002] Adapter Runtime (Adapter Service): Unable to invoke adapter service GORE_DSI_Services.AdaptorService:WorkOrderCompletion. BSFN error code: 2 Number of error: 1 Error item 1 ErrorLevel : 1 ErrorID : 0 DDItem : 0115 lineNumber : 5371 fileName : nd3n1114.c subText : alphaDescription : Error: Work Order Number Invalid glossaryText : CAUSE . . . . The Work Order Number entered does not exist in the Work Order Master file (F4801). RESOLUTION. . Either enter the correct Work Order Number or create a new Work Order for the number on the display. javax.resource.ResourceException: BSFN error code: 2 Number of error: 1 Error item 1 ErrorLevel : 1 ErrorID : 0 DDItem : 0115 lineNumber : 5371 fileName : nd3n1114.c subText : alphaDescription : Error: Work Order Number Invalid glossaryText : CAUSE . . . . The Work Order Number entered does not exist in the Work Order Master file (F4801). RESOLUTION. . Either enter the correct Work Order Number or create a new Work Order for the number on the display. at com.psft.xpi.adapter.erp.service.BSFNExecuteTemplateImpl.execute(BSFNExecuteTemplateImpl.java:306) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.psft.xpi.adapter.erp.service.BSFNExecuteTemplate.execute(BSFNExecuteTemplate.java:134) at com.wm.adk.cci.interaction.WmInteraction.execute(WmInteraction.java:70) at com.wm.pkg.art.ns.AdapterServiceNode.invokeService(AdapterServiceNode.java:596) at com.wm.pkg.art.ns.ARTNSService.baseInvoke(ARTNSService.java:47) at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:554) at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:44) at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:221) at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49) at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:194) at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:39) at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:384) at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:486) at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:359) at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:246) at com.wm.app.b2b.server.BaseService.invoke(BaseService.java:155) at com.wm.lang.flow.FlowInvoke.invoke(FlowInvoke.java:324) at com.wm.lang.flow.FlowState.invokeNode(FlowState.java:580) at com.wm.lang.flow.FlowState.step(FlowState.java:438) at com.wm.lang.flow.FlowState.invoke(FlowState.java:403) at com.wm.app.b2b.server.FlowSvcImpl.baseInvoke(FlowSvcImpl.java:1749) at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:554) at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:44) at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:221) at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49) at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:194) at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:39) at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:384) at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:486) at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:359) at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:246) at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:113) at com.wm.app.b2b.server.Service.doInvoke(Service.java:607) at com.wm.app.b2b.server.Service.doInvoke(Service.java:556) at wm.server.soap.envelope(soap.java:98) at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java:287) at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:554) at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:44) at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:221) at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49) at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:194) at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:39) at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:384) at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:486) at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:359) at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:246) at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:128) at com.wm.app.b2b.server.HTTPSOAPHandler._process(HTTPSOAPHandler.java:457) at com.wm.app.b2b.server.HTTPSOAPHandler.process(HTTPSOAPHandler.java:111) at com.wm.app.b2b.server.Dispatch.run(Dispatch.java:298) at com.wm.util.pool.PooledThread.run(PooledThread.java:105) at java.lang.Thread.run(Thread.java:534) </message>
    </Response>
    With this version, however, we either receive "java.lang.IllegalStateException: "Cannot call setRollbackOnly() current thread is NOT associated with a transaction" or a timeout error.
    I captured the return message from both servers and it is identical (shown below):
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
         <SOAP-ENV:Body>
              <SOAP-ENV:Fault>
                   <faultcode>SOAP-ENV:Client</faultcode>
                   <faultstring>[ISS.0088.9134] Exception occurred while processing the body of the message</faultstring>
                   <faultactor>http://galileo.wlgore.com:5555/soap/default </faultactor>
                   <detail xmlns:webM="http://www.webMethods.com/2001/10/soap/encoding">
                        <webM:exception>
                             <webM:className>com.wm.pkg.art.error.DetailedServiceException</webM:className>
                             <webM:message xml:lang="">="">[ART.117.4002] Adapter Runtime (Adapter Service): Unable to invoke adapter service GORE_DSI_Services.AdaptorService:WorkOrderCompletion. BSFN error code: 2 Number of error: 1 Error item 1 ErrorLevel : 1 ErrorID : 0 DDItem : 0115 lineNumber : 5371 fileName : nd3n1114.c subText : alphaDescription : Error: Work Order Number Invalid glossaryText : CAUSE . . . . The Work Order Number entered does not exist in the Work Order Master file (F4801). RESOLUTION. . Either enter the correct Work Order Number or create a new Work Order for the number on the display. javax.resource.ResourceException: BSFN error code: 2 Number of error: 1 Error item 1 ErrorLevel : 1 ErrorID : 0 DDItem : 0115 lineNumber : 5371 fileName : nd3n1114.c subText : alphaDescription : Error: Work Order Number Invalid glossaryText : CAUSE . . . . The Work Order Number entered does not exist in the Work Order Master file (F4801). RESOLUTION. . Either enter the correct Work Order Number or create a new Work Order for the number on the display. at com.psft.xpi.adapter.erp.service.BSFNExecuteTemplateImpl.execute(BSFNExecuteTemplateImpl.java:306) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.psft.xpi.adapter.erp.service.BSFNExecuteTemplate.execute(BSFNExecuteTemplate.java:134) at com.wm.adk.cci.interaction.WmInteraction.execute(WmInteraction.java:70) at com.wm.pkg.art.ns.AdapterServiceNode.invokeService(AdapterServiceNode.java:596) at com.wm.pkg.art.ns.ARTNSService.baseInvoke(ARTNSService.java:47) at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:554) at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:44) at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:221) at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49) at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:194) at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:39) at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:384) at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:486) at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:359) at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:246) at com.wm.app.b2b.server.BaseService.invoke(BaseService.java:155) at com.wm.lang.flow.FlowInvoke.invoke(FlowInvoke.java:324) at com.wm.lang.flow.FlowState.invokeNode(FlowState.java:580) at com.wm.lang.flow.FlowState.step(FlowState.java:438) at com.wm.lang.flow.FlowState.invoke(FlowState.java:403) at com.wm.app.b2b.server.FlowSvcImpl.baseInvoke(FlowSvcImpl.java:1749) at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:554) at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:44) at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:221) at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49) at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:194) at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:39) at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:384) at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:486) at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:359) at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:246) at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:113) at com.wm.app.b2b.server.Service.doInvoke(Service.java:607) at com.wm.app.b2b.server.Service.doInvoke(Service.java:556) at wm.server.soap.envelope(soap.java:98) at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java:287) at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:554) at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:44) at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:221) at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49) at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:194) at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:39) at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:384) at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:486) at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:359) at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:246) at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:128) at com.wm.app.b2b.server.HTTPSOAPHandler._process(HTTPSOAPHandler.java:457) at com.wm.app.b2b.server.HTTPSOAPHandler.process(HTTPSOAPHandler.java:111) at com.wm.app.b2b.server.Dispatch.run(Dispatch.java:298) at com.wm.util.pool.PooledThread.run(PooledThread.java:105) at java.lang.Thread.run(Thread.java:534)</webM:message>
                        </webM:exception>
                   </detail>
              </SOAP-ENV:Fault>
         </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Thanks,
    RM

    We have tested this same scenario for several services and are experiencing the same result... timing out instead of returning the fault. This is a critical issue for us and would prevent us from implementing this software.

  • How to propagate a BPEL fault into ESB

    Hi
    I have a problem with getting errors that occur in my BPEL process propagate up to the calling ESB service.
    I have an ESB service that via a routing rule invokes a BPEL process.
    I'm using direct Java-call (i think) between ESB and BPEL by simply choosing the BPEL process via the browser in the Routing Rule (BPELSystem/default/myBPELProcess/etc...). BPEL and ESB resides in the same container.
    The BPEL process basically just inserts some data in the database using the DB adapter. If something goes wrong this this insert (unique key violation, etc) I would like the error to be propagated up to the ESB.
    I have tried using both synchronous and asynchronous execution in my Routing Rule, and I have tried setting the Endpoint Property 'InvocationMode' to 'local'. I have also tried to set the property 'transaction' to 'participate' in the bpel.xml of my BPEL process. Nothing makes the fault in the BPEL process propagate up to my ESB service.
    What do I have to do in order to achieve this? I would like this error to propagate up the the ESB so that I can retry BPEL process when the error is fixed.
    Any ideas?
    Regards
    Kalle

    Hi Kalle,
    which version of SOA Suite are you using?
    Have a look to latest patchset (10.1.3.3 and patch 6723162 on metalink) - I guess there were some fixes for fault propragation.
    Hope this helps,
    Ivan

  • Test Conditions in BPEL Fault Policy

    Per the ORacle 10.1.3.3 SOA Suite techical document, under the Fault Policy Framework section you can use an XPath expression in the <test> section of a fault policy. The example provided is +<test>$fault.code/code="WSDLReadingError"</test>+
    Instead of using an equals sign, I am trying to figure out the syntax to use a "contains" or "starts-with" expression. I want to filter out a particular remoteFault using the "summary".
    I have tried:
    +<Conditions>+
    +          <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension" name="bpelx:remoteFault">+
    +               <condition>+
    +*<test>contains($fault.summary/summary,"exception on JaxRpc")</test>*+      
    +<action ref="ora-retry"/>+
    +               </condition>+
    +          </faultName>+
    +     </Conditions>+
    +     <Actions>...+
    but this does not seem to work.
    Anyone know what "tests" are possible, and\or have used a "contains" expression in their Fault Policy?
    Thanks in advance,
    Eric
    Example of the fault that I am trying to "catch".
    +<remoteFault xmlns="http://schemas.oracle.com/bpel/extension">+
    +<part name="code">+
    +<code>ESBMessageProcessingFailed</code>+
    +</part><part name="summary"><summary>exception on JaxRpc invoke:+
    start fault message:
    +801 Error validating amount. Must be numerical and greater than 0 [000]+
    +:end fault message</summary>+
    +</part><part name="detail"><detail>null</detail>+
    +</part></remoteFault>+

    I did try to add namespace but it still didn't catch the fault.
    I contacted Oracle support and they indicated that the syntax is: $fault.part/<xpath expression>
    So for my purposes I needed to put: <test>$fault.summary/contains(summary, "xyz")</test>
    HOWEVER this did not work. We recontacted Oracle and this time they admitted there is a bug that they will document. Only = or != can be used at this time.
    Thanks for all who responded. I'm closing this question.
    For reference, here's a list of what I tried:
    The following did NOT catch my fault
    <test>$fault.summary/contains(summary, "JaxRpc invoke")</test>      
    <test>$fault.summary/contains(summary, 'start fault message:')</test>     
    <test>$fault.code/contains(code, "ProcessingFail")</test>           
    <test>$fault.code/contains(code, "ESBMessageProcessingFailed")</test>
    <test>$fault.code/contains(code/code, "ESBMessageProcessingFailed")</test>          
    <test>$fault.code/contains($fault.code, "ESBMessageProcessingFailed")</test>          
    <test>$fault.code/contains($fault.code/code, "ESBMessageProcessingFailed")</test>     
    <test>$fault.code/code/contains(code, "ESBMessageProcessingFailed")</test>          
    <test>$fault.code/code/contains($fault.code/code/, "ESBMessageProcessingFailed")</test>     
    <test>$fault.code/code/contains(code/code/, "ESBMessageProcessingFailed")</test>           
    <test>$fault.code/contains(/remoteFault/part[1]/code/, "ESBMessageProcessingFailed")</test>     
    <test>contains($fault.code/code,"ESB")</test>           
    <test>contains($fault.summary/summary,"ESB")</test>     
    <test>contains($fault.summary, "ESB")</test>          
    <test>contains($fault.summary/summary, &#xD;)</test>           
    <test>xp20:matches($fault.summary/summary,'.*fault message.*')</test>      
    <test>xp20:matches($fault.summary/summary,'*fault message*')</test>     
    <test>not(xp20:matches($fault.summary/summary,'.*xyz.*'))</test>          
    <test>true()</test>

  • BPEL catch all block doesn't catch fault

    Hi,
    I have a catch all block in my BPEL process. One instance tried to write to the Oracle database without success throwing a fault which wasn't taken by BPEL's catch all. I see an error on invoke but it does not go to catch all block.
    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: [writeCountry.Country]. Caused by java.sql.SQLRecoverableException: No more data to read from socket. Please see the logs for the full DBAdapter logging output prior to this exception. This exception is considered retriable, likely due to a communication failure. Because the global transaction is rolling back the invoke must be retried in a new transaction, restarting from the place of the last transaction commit. To classify it as non-retriable instead add property nonRetriableErrorCodes with value "17410" to your deployment descriptor (i.e. weblogic-ra.xml). ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
    Global retry rollback fault thrown.
    The current JTA transaction is aborting due to an user rollback fault being thrown. The upstream component should retry in a new JTA transaction upon catching this fault.
    This exception was caused by a global retry fault being thrown from downstream component. The user had directed the BPEL engine to roll back the current JTA transaction and retry within new JTA transactions for the specified number of times and retry interval.
    There is no action recommended.
    Ah, I have one more question, I have a BPEL process wich write to the database to the table X. Some time ago i extended the table X and add one more column. Why does BPEL lost all data in dbadapter and does not sygnalize any error when invoked adapter? Usually when I drop or alter table i get an error message. This time I see that the transformation which was before invoke to dbadapter was done correctly but I can see no data in invoke which should be written
    All environment is on 11.1.1.6, BPEL 2.0
    Edited by: 863909 on 2012-08-29 01:05

    Aye. My catch all block is defined for a parent scope. Just some arrors are not catch by catch all block (the same as for OutOfMemoryError for java - which will never be catched). I just wonder, because my red invoke activity in the EM sygnalizes error and throw error message but catch all block does not get it. Process stoped on error invoke and not go into catch all.
    Change table aspect. I don't have a problem, because i deleted old and implemented new adapter. It works. I just wonder why when I deleted an atribute (column) from DB I got en error and process stops, but when I extended a table, my process were runing to the end and was marked as finished completely. Something is wrong here, because adapter didnt write all data it should write. Process were going and was finished without throwing an error.
    Edited by: 863909 on 2012-08-29 04:14

  • Exception Handling In BPEL  By using Catch Blocks or Fault Policies Or Both

    I have a confusion regarding
    Exception handling :
    When Should i go for 1)Catch Block (Remote , or binding ) in bpel for exception handling .
    2)Fault Policy , Fault binding.xml
    Currently iam using catch blocks , but even fault policy is good , but can i use both...
    Currently in My bpel ,when any error occurs i have to send a error notification by Email .
    Currently i have exposed the email service which shuts emails and write a file with errored Message.
    Hence if any error i will catch i in a parent BPEL, i will just invoke the above email, service .
    So anybody can help me by giving the suggestion how to go for the best approach
    Edited by: anantwag on Mar 23, 2011 6:31 AM

    Currently in My bpel ,when any error occurs i have to send a error notification by Email .
    Currently i have exposed the email service which shuts emails and write a file with errored Message.Seeing your use case I will suggest you to use fault handling framework (fault policy). Fault handling framework should be used where you need generic error handling framework which handles all the faults occured in any composite component. Generally BPEL catch block should be used to propagate error info/fault back to the client/to fault handling framework or to consume an error
    Regards,
    Anuj

  • 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>

Maybe you are looking for

  • Why is the sound browser so slow during playback?

    Why is the sound browser so slow during playback? This problem seems to have no solution. This problem even occurs on my Mac Pro With 8 Cores... This problem is in its 3rd Generation since version 8... Even AU Plugins with built-in sound browsers tri

  • Additinal Fields in POWL Search Criterea for RFx

    Hi, We want to add a column in the POWL result and a new field in the search criteria in SRM 7.0 We are able to add column in POWL result after adding a field in structure /SAPSRM/S_SEARCH_RESULT_BID and confguration in the T-code /SAPSRM/POWL_CUST.

  • Leaving or hiding unnecessary screen

    Hi everybody, I have created some simple gui using only objects at runtime: they are accessible from a main dialogbox container. I want to display this, but there is always an empty screen behind which shouldn't be seen. DATA: g_custom_container TYPE

  • Installing student/teacher edition of CS5

    Earier today, I tried to used the link www.adobe.com/go/edu-validate to obtain my serial number for my student CS5. The link was slow and did not seem to work, but now it works, but the computer says that it is an unsafe link. what should I do?

  • Application Manager has unexpectedly quit by starting PremierePro CC

    Hello! I installed the Adobe Cloud Installer on the clean System (OSX10.8.4, iMac Mid 2011, 3,4GHz i7, 16GB RAM, AMD Radeon HD 6970 2GB VRAM). I download within Premiere Pro CC and will start it. Premiere dont start, instead of Error Message: "The Ad