4 Replies Latest reply: Dec 3, 2010 10:53 AM by Veeru-Oracle RSS

    AIA Fault Management Behavior When the No. of Instance Retries is Exceeded

    746145
      Hi All,

      I have seen that couple of our BPEL process instances keep on retrying even after the retry limit has exceeded. As a result they keep on sending error emails. I believe this is because they remain in open faulted state rather than closed faulted.

      Eg. if I have an invoke which calls SAP and SAP is down due to some reason, it retries 3 times and sends error email for remote fault. When I restart the server I can see that it retries at the same invoke again and sends out another error email. This happens everytime I restart the server.

      Below is my fault policy file. Can anyone let me know what setting do I change in this file to avoid this situation.

      ...
      ...
      <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension" name="bpelx:remoteFault">
      <condition>
      <action ref="ora-retry"/>
      </condition>
      </faultName>
      ...
      ...
      <Actions>
      <Action id="ora-retry">
      <retry>
      <retryCount>3</retryCount>
      <retryInterval>2</retryInterval>
      <exponentialBackoff/>
      <retryFailureAction ref="aia-ora-java"/>
      </retry>
      </Action>
      <Action id="aia-ora-java">
      <javaAction className="oracle.apps.aia.core.eh.CompositeJavaAction" defaultAction="ora-rethrow-fault">
      <returnValue value="REPLAY" ref="ora-terminate"/>
      <returnValue value="RETHROW" ref="ora-rethrow-fault"/>
      <returnValue value="ABORT" ref="ora-terminate"/>
      <returnValue value="RETRY" ref="aia-ora-retry"/>
      <returnValue value="MANUAL" ref="ora-human-intervention"/>
      </javaAction>
      </Action>
      </Actions>
      ...
      ...

      Regards
      Subhankar
        • 1. Re: AIA Fault Management Behavior When the No. of Instance Retries is Exceeded
          Veeru-Oracle
          Hi this is by design,

          Please check http://download.oracle.com/docs/cd/E14571_01/integration.1111/e10224/bp_faults.htm - section 11.4.4.

          When you configure a fault policy to recover instances with the ora-retry action and the number of specified instance retries is exceeded, the instance is marked as open.faulted (in-flight state). The instance remains active.

          Marking instances as open.faulted ensures that no instances are lost. You can then configure another fault handling action following the ora-retry action in the fault policy file, such as the following:

          Configure an ora-human-intervention action to manually perform instance recovery from Oracle Enterprise Manager Fusion Middleware Control Console.

          Configure an ora-terminate action to close the instance (mark it as closed.faulted) and never retry again.
          • 2. Re: AIA Fault Management Behavior When the No. of Instance Retries is Exceeded
            746145
            Hi Veeru

            I had checked that link. My question was basically to know where should I include ora-terminate action in Fault policy file to make this work.
            If you see my fault policy file I am calling aia-ora-java incase of retryFailureAction so that it can send out the error notification email once the retry limit is exceeded.

            <Action id="ora-retry">
            <retry>
            <retryCount>3</retryCount>
            <retryInterval>2</retryInterval>
            <exponentialBackoff/>
            <retryFailureAction ref="aia-ora-java"/>
            </retry>
            </Action>

            Also under aia-ora-java the defaultAction is ora-rethrow-fault so that once the error email has been sent by oracle.apps.aia.core.eh.CompositeJavaAction class, it will rethrow the fault back to the BPEL.

            <Action id="aia-ora-java">
            <javaAction className="oracle.apps.aia.core.eh.CompositeJavaAction" defaultAction="ora-rethrow-fault">
            <returnValue value="REPLAY" ref="ora-terminate"/>
            <returnValue value="RETHROW" ref="ora-rethrow-fault"/>
            <returnValue value="ABORT" ref="ora-terminate"/>
            <returnValue value="RETRY" ref="aia-ora-retry"/>
            <returnValue value="MANUAL" ref="ora-human-intervention"/>
            </javaAction>
            </Action>

            So where should the ora-terminate action be included in this case ?

            Regards
            Subhankar
            • 3. Re: AIA Fault Management Behavior When the No. of Instance Retries is Exceeded
              746145
              Can I modify the aia-java-action part

              From

              <Action id="aia-ora-java">
              <javaAction className="oracle.apps.aia.core.eh.CompositeJavaAction" defaultAction="ora-rethrow-fault">

              To

              <Action id="aia-ora-java">
              <javaAction className="oracle.apps.aia.core.eh.CompositeJavaAction" defaultAction="ora-terminate">

              to make the instances as Closed.Faulted ? I believe doing this will still send the error email, but it wont throw back the fault back to the BPEL. However instance termination should still happen.

              Any pointers will be helpful.
              • 4. Re: AIA Fault Management Behavior When the No. of Instance Retries is Exceeded
                Veeru-Oracle
                No, Its not recommended to modify aia-ora-java to have ora-terminate as defaultAction. Why dont you have direct call to aia-ora-java instead of calling retry action.