Skip to Main Content

Integration

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

soa suite 12c fault policy invokeWS action enqueue action resolveAndrecover: error in fault resoluti

2911019Apr 17 2015 — edited Apr 21 2015

Hi,

I'm trying to use the new fault actions in Oracle SOA Suite 12c (12.1.3.0) invokeWS and enqueue.

I've done the following:

fault-policies.xml

<faultName name="custom:MyFault" xmlns:custom="http://xmlns.oracle.com/Application1/Dummy/WebServiceB"

           path="SOA\WSDLs\dummybpelprocess_client_ep.wsdl">

    <condition>

        <action ref="default-enqueue"/>

    </condition>

</faultName>

<Action id="default-ws">

    <invokeWS uri="http://host:7003/soa-infra/services/default/WebServiceHandler/webservicehandlerbpel_client_ep?WSDL|webservicehandlerbpel_client_ep|WebServiceHandlerBPEL_pt"/>

    <!-- format - <Absolute wsdl path>|service name|port name -->

</Action>

<Action id="default-enqueue">

    <!-- enqueue uri="eis/aq/aqjmsuserDataSource"/ -->

    <enqueue uri="jdbc:oracle:thin:@host:1521:orcl#user/userpassword#USERQUEUE" />

    <!-- QueueURI format  - jdbc:oracle:thin:@<host>:<port>:<sid>#<un>/<pw>#queue -->

</Action>

Webservice Handler (which is the webservice to be invoked by the faultpolicy) is constructed 1-way pattern, 1 operation, 1 port and using the following schema:

<?xml version="1.0"?>

<schema xmlns="http://www.w3.org/2001/XMLSchema"

        targetNamespace="http://xmlns.oracle.com/pcbpel/errorHandling"

        xmlns:tns="http://xmlns.oracle.com/pcbpel/errorHandling"

        elementFormDefault="qualified">

  <element name="RejectedMessage" type="tns:RejectedMessageType"/>

    <complexType name="RejectedMessageType">

        <sequence>

       <!-- base64 encoded strings" -->

          <element name="MessageHeader" type="string"/>

          <element name="MessagePayload" type="string"/>

          <element name="RejectionReason" type="string"/>

        </sequence>

      <attribute name="RejectionId" type="string"/>

    </complexType>

</schema>

The scenario is the following:

  1. Webservice A invokes WebService B
  2. Webservice B has defined a BusinessFault
  3. Webservice A has defined faultbindings using the faulpolicies from the previous snippet, for the reference of WebserviceB
  4. The BusinessFault is thrown by WebServiceB
    1. The fault policy is not able to neither enque or call the webservce to handle the businessexception
    2. A NullPointerException is shown in the logs
    3. The error is also present if enqueue os invokeWS are used in retryFailureAction of a retry action
    4. The error is only present for enqueue or invokeWS actions (I didn't try fileAction)
    5. Traditional actions (such as retry, humanintervention, temrinate) are working properly for businessfaults

The error in logs is the following:

resolveAndrecover: error in fault resolution:java.lang.NullPointerException
at com.collaxa.cube.engine.fp.BPELRecoverFault.recoverFault(BPELRecoverFault.java:102)
at oracle.fabric.CubeServiceEngine.recoverFault(CubeServiceEngine.java:2195)
at oracle.integration.platform.faultpolicy.RecoverFault.recoverAndChain(RecoverFault.java:497)
at oracle.integration.platform.faultpolicy.RecoverFault.resolveAndRecover(RecoverFault.java:337)
at oracle.integration.platform.faultpolicy.FaultRecoveryManagerImpl.resolveAndRecover(FaultRecoveryManagerImpl.java:372)
  at oracle.soa.tracking.fabric.service.se.ServiceEngineFaultRecoveryServiceImpl.recoverFault(ServiceEngineFaultRecoveryServiceImpl.java:116)
  at oracle.soa.tracking.fabric.service.se.CubeServiceEngineAuditServiceImpl.recoverFault(CubeServiceEngineAuditServiceImpl.java:502)
at com.collaxa.cube.engine.ext.common.FaultPolicyHandler.resolveAndRecover(FaultPolicyHandler.java:115)
at com.collaxa.cube.engine.ext.common.InvokeHandler.handleException(InvokeHandler.java:715)
at com.collaxa.cube.engine.ext.common.InvokeHandler.__callback(InvokeHandler.java:784)
at com.collaxa.cube.engine.ext.common.InvokeHandler.handleNormalInvoke(InvokeHandler.java:657)
at com.collaxa.cube.engine.ext.common.InvokeHandler.handle(InvokeHandler.java:143)
at com.collaxa.cube.engine.ext.common.InvokeHandler.expire(InvokeHandler.java:1371)
at com.collaxa.cube.engine.ext.bpel.common.wmp.BPELInvokeWMP.expire(BPELInvokeWMP.java:62)
at com.collaxa.cube.engine.CubeEngine.expireActivity(CubeEngine.java:3358)
at com.collaxa.cube.engine.CubeEngine._expireActivity(CubeEngine.java:1621)
at com.collaxa.cube.engine.CubeEngine.expireActivity(CubeEngine.java:1557)
at com.collaxa.cube.engine.CubeEngine.expireActivity(CubeEngine.java:1478)
at com.collaxa.cube.ejb.impl.CubeActivityManagerBean.expireActivity(CubeActivityManagerBean.java:115)
at com.collaxa.cube.ejb.impl.CubeActivityManagerBean.expireActivity(CubeActivityManagerBean.java:72)
at com.collaxa.cube.ejb.impl.bpel.BPELActivityManagerBean_8dvvts_ICubeActivityManagerLocalBeanImpl.__WL_invoke(Unknown Source)
at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:33)
  at com.collaxa.cube.ejb.impl.bpel.BPELActivityManagerBean_8dvvts_ICubeActivityManagerLocalBeanImpl.expireActivity(Unknown Source)
at com.collaxa.cube.engine.dispatch.message.instance.ExpirationMessageHandler.handle(ExpirationMessageHandler.java:58)
at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:153)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.process(BaseDispatchTask.java:132)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTask.java:90)
at com.collaxa.cube.engine.dispatch.WMExecutor$W.run(WMExecutor.java:239)
at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:184)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)

I already made sure I had all the artifacts for the AQ queue:

-database

-table

-queue

-permissions

Do you have the same problem?

Are you able to use this new actions?

Please advise

Thanks in advance.

P.S: Related documentation: http://docs.oracle.com/middleware/1213/soasuite/develop-soa/bpel-fault-handling.htm#CHDCIBDF

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on May 19 2015
Added on Apr 17 2015
1 comment
1,323 views