You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by Michael Horwitz <mi...@gmail.com> on 2007/06/05 17:17:04 UTC
Problem with Catch statement on an Invoke
Hi,
I am trying to write a process to deploy on Ode 1.0 running inside
ServiceMix. All was going fine until I tried to add a catch clause to an
invoke in the process. The process compiles fine, just the catch clause gets
ignored and the fault is thrown out of the service. If I copy and paste the
catch clause to the <faultHandlers> section on the process, then all works
as expected.
First the snippet from the wsdl service declaring the fault:
<wsdl:portType name="marketbus">
<wsdl:operation name="getRecord">
<wsdl:input message="tns:getRecordRequest"/>
<wsdl:output message="tns:getRecordResponse"/>
<wsdl:fault name="noRecordFault"
message="tns:noSuchRecordFault"></wsdl:fault>
</wsdl:operation>
</wsdl:portType>
Now the snippet from the bpel service:
<bpws:invoke inputVariable="recordRequest" name="invokeMarketBus"
operation="getRecord" outputVariable="recordResponse"
partnerLink="marketbusClient" portType="ns1:marketbus">
<bpws:catch faultName="ns1:noRecordFault">
<bpws:sequence name="HiddenSequence">
<bpws:assign name="buildFaultMessage" validate="no">
<bpws:copy>
<bpws:from>
<bpws:literal>No such message.</bpws:literal>
</bpws:from>
<bpws:to>$echoRequest.payload</bpws:to>
</bpws:copy>
</bpws:assign>
<bpws:invoke inputVariable="echoRequest" name="invokeEchoService"
operation="echoMessage" partnerLink="echoClient"
portType="ns1:EchoPortType"/>
</bpws:sequence>
</bpws:catch>
</bpws:invoke>
And the debug output from the Ode engine (snippet):
DEBUG - BpelProcess - InvokeResponse event for iid 20
DEBUG - BpelRuntimeContextImpl - Invoking message response for mexid
4611686018427387948 and channel 20
DEBUG - JacobVPU - injecting
BpelRuntimeContextImpl$4(...)
DEBUG - BpelRuntimeContextImpl - Triggering response
DEBUG - SCOPE - ({OScope 'invokeMarketBus'
id=50},TerminationChannel#14,ParentScopeChannel#16): has
a fault handler for {http://abnamro.com/sc}noRecordFault: {OCatch
faultName=null, faultVariable=null}
DEBUG - SCOPE - ({OCatch faultName=null,
faultVariable=null},TerminationChannel:FH#21,ParentScopeCha
nnel:FH#22): has no fault handler for {http://abnamro.com/sc}noRecordFault;
scope will propagate FAULT!
DEBUG - SCOPE - ({OScope
'__PROCESS_SCOPE:algotf-bpe' id=3},TerminationChannel#1,ParentScopeChannel#
2): has no fault handler for {http://abnamro.com/sc}noRecordFault; scope
will propagate FAULT!
DEBUG - BpelProcess - ProcessImpl completed with fault '{
http://abnamro.com/sc}noRecordFault'
DEBUG - ProcessDaoImpl - Removing completed process instance
20 from in-memory store.
DEBUG - OdeService - Consuming MEX tracker
ID:gbws-00065343-3167-1181051426187-7:20
WARN - OdeService - Ignoring unknown async reply:
{MyRoleMex#4611686018427387947 [Client ID:gbws-0006534
3-3167-1181051426187-7:20] calling {
http://abnamro.com/sc/algotf}WorkflowService.processNewRecord(...)}
DEBUG - QuartzSchedulerImpl - Commiting transaction.
Exactly the same catch statement (copied and pasted) works as expected if
placed in the <faultHandlers> section of the process.
I am reasonably new to BPEL, so may have missed something?
Thanks
Mike Horwitz
Re: Passing SOAP Header to BPEL in ServiceMix
Posted by Alex Boisvert <bo...@intalio.com>.
I've worked on this before... see
http://www.intalio.org/confluence/display/PXE/SOAP+Binding+and+JBI+Normalization
I'm not sure of the state of JBI normalization in SM at this point. I had
submitted a patch (referenced above) but Guillaume decided on another
approach and I don't know if he got around to supporting this use-case.
alex
On 6/5/07, Vishal Bhasin <vb...@yahoo.com> wrote:
>
> Hello All:
>
> I'm posting this here, since this is somewhat related to Apache ODE.
>
> I'm trying to orchestrate Web Services from a Web Services provider that
> expects certain information (such as binary security token) in the SOAP
> Header.
>
> I don't know the process of passing SOAP header to BPEL in ODE..any ideas?
>
> Thanks,
>
>
> Vishal Bhasin
>
>
> Regards,
>
> Vishal
>
>
Re: Problem with Catch statement on an Invoke
Posted by Michael Horwitz <mi...@gmail.com>.
Thanks - I have worked around this for the moment by placing my invokes
inside dedicated scopes and placing the catch statements on the scope (just
in case anyone else tries it... :-)
Mike.
On 6/6/07, Maciej Szefler <mb...@intalio.com> wrote:
>
> Apparently not. This is now fixed in svn.
>
> -mbs
>
> On 6/5/07, Michael Horwitz <mi...@gmail.com> wrote:
> > Does Ode not support the catch clause below an invoke as specified here:
> >
> http://docs.oasis-open.org/wsbpel/2.0/wsbpel-specification-draft.html#_Toc143402873
> > ?
> >
> >
> > Mike
> >
> > On 6/5/07, Alex Boisvert <bo...@intalio.com> wrote:
> > >
> > > Hi Michael,
> > >
> > > According to the BPEL spec, your <bpel:catch> must be placed under the
> > > <bpel:faultHandlers> element. So the real issue here is insufficient
> > > validation to warn you against placing a <bpel:catch> directly within
> a
> > > scope...
> > >
> > > alex
> > >
> > >
> > > On 6/5/07, Michael Horwitz <mi...@gmail.com> wrote:
> > > >
> > > > Hi,
> > > >
> > > > I am trying to write a process to deploy on Ode 1.0 running inside
> > > > ServiceMix. All was going fine until I tried to add a catch clause
> to an
> > > > invoke in the process. The process compiles fine, just the catch
> clause
> > > > gets
> > > > ignored and the fault is thrown out of the service. If I copy and
> paste
> > > > the
> > > > catch clause to the <faultHandlers> section on the process, then all
> > > works
> > > > as expected.
> > > >
> > > > First the snippet from the wsdl service declaring the fault:
> > > >
> > > > <wsdl:portType name="marketbus">
> > > > <wsdl:operation name="getRecord">
> > > > <wsdl:input message="tns:getRecordRequest"/>
> > > > <wsdl:output message="tns:getRecordResponse"/>
> > > > <wsdl:fault name="noRecordFault"
> > > > message="tns:noSuchRecordFault"></wsdl:fault>
> > > > </wsdl:operation>
> > > > </wsdl:portType>
> > > >
> > > > Now the snippet from the bpel service:
> > > >
> > > > <bpws:invoke inputVariable="recordRequest" name="invokeMarketBus"
> > > > operation="getRecord" outputVariable="recordResponse"
> > > > partnerLink="marketbusClient" portType="ns1:marketbus">
> > > > <bpws:catch faultName="ns1:noRecordFault">
> > > > <bpws:sequence name="HiddenSequence">
> > > > <bpws:assign name="buildFaultMessage" validate="no">
> > > > <bpws:copy>
> > > > <bpws:from>
> > > > <bpws:literal>No such message.</bpws:literal>
> > > > </bpws:from>
> > > > <bpws:to>$echoRequest.payload</bpws:to>
> > > > </bpws:copy>
> > > > </bpws:assign>
> > > > <bpws:invoke inputVariable="echoRequest"
> name="invokeEchoService"
> > > > operation="echoMessage" partnerLink="echoClient"
> > > > portType="ns1:EchoPortType"/>
> > > > </bpws:sequence>
> > > > </bpws:catch>
> > > > </bpws:invoke>
> > > >
> > > > And the debug output from the Ode engine (snippet):
> > > >
> > > > DEBUG - BpelProcess - InvokeResponse event for
> iid 20
> > > > DEBUG - BpelRuntimeContextImpl - Invoking message response
> for
> > > > mexid
> > > > 4611686018427387948 and channel 20
> > > > DEBUG - JacobVPU - injecting
> > > > BpelRuntimeContextImpl$4(...)
> > > > DEBUG - BpelRuntimeContextImpl - Triggering response
> > > > DEBUG - SCOPE - ({OScope 'invokeMarketBus'
> > > > id=50},TerminationChannel#14,ParentScopeChannel#16): has
> > > > a fault handler for {http://abnamro.com/sc}noRecordFault: {OCatch
> > > > faultName=null, faultVariable=null}
> > > > DEBUG - SCOPE - ({OCatch faultName=null,
> > > > faultVariable=null},TerminationChannel:FH#21,ParentScopeCha
> > > > nnel:FH#22): has no fault handler for {
> > > http://abnamro.com/sc}noRecordFault
> > > > ;
> > > > scope will propagate FAULT!
> > > > DEBUG - SCOPE - ({OScope
> > > > '__PROCESS_SCOPE:algotf-bpe'
> > > > id=3},TerminationChannel#1,ParentScopeChannel#
> > > > 2): has no fault handler for {http://abnamro.com/sc}noRecordFault;
> scope
> > > > will propagate FAULT!
> > > > DEBUG - BpelProcess - ProcessImpl completed with
> > > fault
> > > > '{
> > > > http://abnamro.com/sc}noRecordFault'
> > > > DEBUG - ProcessDaoImpl - Removing completed process
> > > > instance
> > > > 20 from in-memory store.
> > > > DEBUG - OdeService - Consuming MEX tracker
> > > > ID:gbws-00065343-3167-1181051426187-7:20
> > > > WARN - OdeService - Ignoring unknown async
> reply:
> > > > {MyRoleMex#4611686018427387947 [Client ID:gbws-0006534
> > > > 3-3167-1181051426187-7:20] calling {
> > > > http://abnamro.com/sc/algotf}WorkflowService.processNewRecord(...)}
> > > > DEBUG - QuartzSchedulerImpl - Commiting transaction.
> > > >
> > > > Exactly the same catch statement (copied and pasted) works as
> expected
> > > if
> > > > placed in the <faultHandlers> section of the process.
> > > >
> > > > I am reasonably new to BPEL, so may have missed something?
> > > >
> > > > Thanks
> > > >
> > > > Mike Horwitz
> > > >
> > >
> >
>
Re: Problem with Catch statement on an Invoke
Posted by Maciej Szefler <mb...@intalio.com>.
Apparently not. This is now fixed in svn.
-mbs
On 6/5/07, Michael Horwitz <mi...@gmail.com> wrote:
> Does Ode not support the catch clause below an invoke as specified here:
> http://docs.oasis-open.org/wsbpel/2.0/wsbpel-specification-draft.html#_Toc143402873
> ?
>
>
> Mike
>
> On 6/5/07, Alex Boisvert <bo...@intalio.com> wrote:
> >
> > Hi Michael,
> >
> > According to the BPEL spec, your <bpel:catch> must be placed under the
> > <bpel:faultHandlers> element. So the real issue here is insufficient
> > validation to warn you against placing a <bpel:catch> directly within a
> > scope...
> >
> > alex
> >
> >
> > On 6/5/07, Michael Horwitz <mi...@gmail.com> wrote:
> > >
> > > Hi,
> > >
> > > I am trying to write a process to deploy on Ode 1.0 running inside
> > > ServiceMix. All was going fine until I tried to add a catch clause to an
> > > invoke in the process. The process compiles fine, just the catch clause
> > > gets
> > > ignored and the fault is thrown out of the service. If I copy and paste
> > > the
> > > catch clause to the <faultHandlers> section on the process, then all
> > works
> > > as expected.
> > >
> > > First the snippet from the wsdl service declaring the fault:
> > >
> > > <wsdl:portType name="marketbus">
> > > <wsdl:operation name="getRecord">
> > > <wsdl:input message="tns:getRecordRequest"/>
> > > <wsdl:output message="tns:getRecordResponse"/>
> > > <wsdl:fault name="noRecordFault"
> > > message="tns:noSuchRecordFault"></wsdl:fault>
> > > </wsdl:operation>
> > > </wsdl:portType>
> > >
> > > Now the snippet from the bpel service:
> > >
> > > <bpws:invoke inputVariable="recordRequest" name="invokeMarketBus"
> > > operation="getRecord" outputVariable="recordResponse"
> > > partnerLink="marketbusClient" portType="ns1:marketbus">
> > > <bpws:catch faultName="ns1:noRecordFault">
> > > <bpws:sequence name="HiddenSequence">
> > > <bpws:assign name="buildFaultMessage" validate="no">
> > > <bpws:copy>
> > > <bpws:from>
> > > <bpws:literal>No such message.</bpws:literal>
> > > </bpws:from>
> > > <bpws:to>$echoRequest.payload</bpws:to>
> > > </bpws:copy>
> > > </bpws:assign>
> > > <bpws:invoke inputVariable="echoRequest" name="invokeEchoService"
> > > operation="echoMessage" partnerLink="echoClient"
> > > portType="ns1:EchoPortType"/>
> > > </bpws:sequence>
> > > </bpws:catch>
> > > </bpws:invoke>
> > >
> > > And the debug output from the Ode engine (snippet):
> > >
> > > DEBUG - BpelProcess - InvokeResponse event for iid 20
> > > DEBUG - BpelRuntimeContextImpl - Invoking message response for
> > > mexid
> > > 4611686018427387948 and channel 20
> > > DEBUG - JacobVPU - injecting
> > > BpelRuntimeContextImpl$4(...)
> > > DEBUG - BpelRuntimeContextImpl - Triggering response
> > > DEBUG - SCOPE - ({OScope 'invokeMarketBus'
> > > id=50},TerminationChannel#14,ParentScopeChannel#16): has
> > > a fault handler for {http://abnamro.com/sc}noRecordFault: {OCatch
> > > faultName=null, faultVariable=null}
> > > DEBUG - SCOPE - ({OCatch faultName=null,
> > > faultVariable=null},TerminationChannel:FH#21,ParentScopeCha
> > > nnel:FH#22): has no fault handler for {
> > http://abnamro.com/sc}noRecordFault
> > > ;
> > > scope will propagate FAULT!
> > > DEBUG - SCOPE - ({OScope
> > > '__PROCESS_SCOPE:algotf-bpe'
> > > id=3},TerminationChannel#1,ParentScopeChannel#
> > > 2): has no fault handler for {http://abnamro.com/sc}noRecordFault; scope
> > > will propagate FAULT!
> > > DEBUG - BpelProcess - ProcessImpl completed with
> > fault
> > > '{
> > > http://abnamro.com/sc}noRecordFault'
> > > DEBUG - ProcessDaoImpl - Removing completed process
> > > instance
> > > 20 from in-memory store.
> > > DEBUG - OdeService - Consuming MEX tracker
> > > ID:gbws-00065343-3167-1181051426187-7:20
> > > WARN - OdeService - Ignoring unknown async reply:
> > > {MyRoleMex#4611686018427387947 [Client ID:gbws-0006534
> > > 3-3167-1181051426187-7:20] calling {
> > > http://abnamro.com/sc/algotf}WorkflowService.processNewRecord(...)}
> > > DEBUG - QuartzSchedulerImpl - Commiting transaction.
> > >
> > > Exactly the same catch statement (copied and pasted) works as expected
> > if
> > > placed in the <faultHandlers> section of the process.
> > >
> > > I am reasonably new to BPEL, so may have missed something?
> > >
> > > Thanks
> > >
> > > Mike Horwitz
> > >
> >
>
Passing SOAP Header to BPEL in ServiceMix
Posted by Vishal Bhasin <vb...@yahoo.com>.
Hello All:
I'm posting this here, since this is somewhat related to Apache ODE.
I'm trying to orchestrate Web Services from a Web Services provider that expects certain information (such as binary security token) in the SOAP Header.
I don't know the process of passing SOAP header to BPEL in ODE..any ideas?
Thanks,
Vishal Bhasin
Regards,
Vishal
I want to improve the system, not fight it
---------------------------------
Luggage? GPS? Comic books?
Check out fitting gifts for grads at Yahoo! Search.
Re: Problem with Catch statement on an Invoke
Posted by Michael Horwitz <mi...@gmail.com>.
Does Ode not support the catch clause below an invoke as specified here:
http://docs.oasis-open.org/wsbpel/2.0/wsbpel-specification-draft.html#_Toc143402873
?
Mike
On 6/5/07, Alex Boisvert <bo...@intalio.com> wrote:
>
> Hi Michael,
>
> According to the BPEL spec, your <bpel:catch> must be placed under the
> <bpel:faultHandlers> element. So the real issue here is insufficient
> validation to warn you against placing a <bpel:catch> directly within a
> scope...
>
> alex
>
>
> On 6/5/07, Michael Horwitz <mi...@gmail.com> wrote:
> >
> > Hi,
> >
> > I am trying to write a process to deploy on Ode 1.0 running inside
> > ServiceMix. All was going fine until I tried to add a catch clause to an
> > invoke in the process. The process compiles fine, just the catch clause
> > gets
> > ignored and the fault is thrown out of the service. If I copy and paste
> > the
> > catch clause to the <faultHandlers> section on the process, then all
> works
> > as expected.
> >
> > First the snippet from the wsdl service declaring the fault:
> >
> > <wsdl:portType name="marketbus">
> > <wsdl:operation name="getRecord">
> > <wsdl:input message="tns:getRecordRequest"/>
> > <wsdl:output message="tns:getRecordResponse"/>
> > <wsdl:fault name="noRecordFault"
> > message="tns:noSuchRecordFault"></wsdl:fault>
> > </wsdl:operation>
> > </wsdl:portType>
> >
> > Now the snippet from the bpel service:
> >
> > <bpws:invoke inputVariable="recordRequest" name="invokeMarketBus"
> > operation="getRecord" outputVariable="recordResponse"
> > partnerLink="marketbusClient" portType="ns1:marketbus">
> > <bpws:catch faultName="ns1:noRecordFault">
> > <bpws:sequence name="HiddenSequence">
> > <bpws:assign name="buildFaultMessage" validate="no">
> > <bpws:copy>
> > <bpws:from>
> > <bpws:literal>No such message.</bpws:literal>
> > </bpws:from>
> > <bpws:to>$echoRequest.payload</bpws:to>
> > </bpws:copy>
> > </bpws:assign>
> > <bpws:invoke inputVariable="echoRequest" name="invokeEchoService"
> > operation="echoMessage" partnerLink="echoClient"
> > portType="ns1:EchoPortType"/>
> > </bpws:sequence>
> > </bpws:catch>
> > </bpws:invoke>
> >
> > And the debug output from the Ode engine (snippet):
> >
> > DEBUG - BpelProcess - InvokeResponse event for iid 20
> > DEBUG - BpelRuntimeContextImpl - Invoking message response for
> > mexid
> > 4611686018427387948 and channel 20
> > DEBUG - JacobVPU - injecting
> > BpelRuntimeContextImpl$4(...)
> > DEBUG - BpelRuntimeContextImpl - Triggering response
> > DEBUG - SCOPE - ({OScope 'invokeMarketBus'
> > id=50},TerminationChannel#14,ParentScopeChannel#16): has
> > a fault handler for {http://abnamro.com/sc}noRecordFault: {OCatch
> > faultName=null, faultVariable=null}
> > DEBUG - SCOPE - ({OCatch faultName=null,
> > faultVariable=null},TerminationChannel:FH#21,ParentScopeCha
> > nnel:FH#22): has no fault handler for {
> http://abnamro.com/sc}noRecordFault
> > ;
> > scope will propagate FAULT!
> > DEBUG - SCOPE - ({OScope
> > '__PROCESS_SCOPE:algotf-bpe'
> > id=3},TerminationChannel#1,ParentScopeChannel#
> > 2): has no fault handler for {http://abnamro.com/sc}noRecordFault; scope
> > will propagate FAULT!
> > DEBUG - BpelProcess - ProcessImpl completed with
> fault
> > '{
> > http://abnamro.com/sc}noRecordFault'
> > DEBUG - ProcessDaoImpl - Removing completed process
> > instance
> > 20 from in-memory store.
> > DEBUG - OdeService - Consuming MEX tracker
> > ID:gbws-00065343-3167-1181051426187-7:20
> > WARN - OdeService - Ignoring unknown async reply:
> > {MyRoleMex#4611686018427387947 [Client ID:gbws-0006534
> > 3-3167-1181051426187-7:20] calling {
> > http://abnamro.com/sc/algotf}WorkflowService.processNewRecord(...)}
> > DEBUG - QuartzSchedulerImpl - Commiting transaction.
> >
> > Exactly the same catch statement (copied and pasted) works as expected
> if
> > placed in the <faultHandlers> section of the process.
> >
> > I am reasonably new to BPEL, so may have missed something?
> >
> > Thanks
> >
> > Mike Horwitz
> >
>
Re: Problem with Catch statement on an Invoke
Posted by Alex Boisvert <bo...@intalio.com>.
Hi Michael,
According to the BPEL spec, your <bpel:catch> must be placed under the
<bpel:faultHandlers> element. So the real issue here is insufficient
validation to warn you against placing a <bpel:catch> directly within a
scope...
alex
On 6/5/07, Michael Horwitz <mi...@gmail.com> wrote:
>
> Hi,
>
> I am trying to write a process to deploy on Ode 1.0 running inside
> ServiceMix. All was going fine until I tried to add a catch clause to an
> invoke in the process. The process compiles fine, just the catch clause
> gets
> ignored and the fault is thrown out of the service. If I copy and paste
> the
> catch clause to the <faultHandlers> section on the process, then all works
> as expected.
>
> First the snippet from the wsdl service declaring the fault:
>
> <wsdl:portType name="marketbus">
> <wsdl:operation name="getRecord">
> <wsdl:input message="tns:getRecordRequest"/>
> <wsdl:output message="tns:getRecordResponse"/>
> <wsdl:fault name="noRecordFault"
> message="tns:noSuchRecordFault"></wsdl:fault>
> </wsdl:operation>
> </wsdl:portType>
>
> Now the snippet from the bpel service:
>
> <bpws:invoke inputVariable="recordRequest" name="invokeMarketBus"
> operation="getRecord" outputVariable="recordResponse"
> partnerLink="marketbusClient" portType="ns1:marketbus">
> <bpws:catch faultName="ns1:noRecordFault">
> <bpws:sequence name="HiddenSequence">
> <bpws:assign name="buildFaultMessage" validate="no">
> <bpws:copy>
> <bpws:from>
> <bpws:literal>No such message.</bpws:literal>
> </bpws:from>
> <bpws:to>$echoRequest.payload</bpws:to>
> </bpws:copy>
> </bpws:assign>
> <bpws:invoke inputVariable="echoRequest" name="invokeEchoService"
> operation="echoMessage" partnerLink="echoClient"
> portType="ns1:EchoPortType"/>
> </bpws:sequence>
> </bpws:catch>
> </bpws:invoke>
>
> And the debug output from the Ode engine (snippet):
>
> DEBUG - BpelProcess - InvokeResponse event for iid 20
> DEBUG - BpelRuntimeContextImpl - Invoking message response for
> mexid
> 4611686018427387948 and channel 20
> DEBUG - JacobVPU - injecting
> BpelRuntimeContextImpl$4(...)
> DEBUG - BpelRuntimeContextImpl - Triggering response
> DEBUG - SCOPE - ({OScope 'invokeMarketBus'
> id=50},TerminationChannel#14,ParentScopeChannel#16): has
> a fault handler for {http://abnamro.com/sc}noRecordFault: {OCatch
> faultName=null, faultVariable=null}
> DEBUG - SCOPE - ({OCatch faultName=null,
> faultVariable=null},TerminationChannel:FH#21,ParentScopeCha
> nnel:FH#22): has no fault handler for {http://abnamro.com/sc}noRecordFault
> ;
> scope will propagate FAULT!
> DEBUG - SCOPE - ({OScope
> '__PROCESS_SCOPE:algotf-bpe'
> id=3},TerminationChannel#1,ParentScopeChannel#
> 2): has no fault handler for {http://abnamro.com/sc}noRecordFault; scope
> will propagate FAULT!
> DEBUG - BpelProcess - ProcessImpl completed with fault
> '{
> http://abnamro.com/sc}noRecordFault'
> DEBUG - ProcessDaoImpl - Removing completed process
> instance
> 20 from in-memory store.
> DEBUG - OdeService - Consuming MEX tracker
> ID:gbws-00065343-3167-1181051426187-7:20
> WARN - OdeService - Ignoring unknown async reply:
> {MyRoleMex#4611686018427387947 [Client ID:gbws-0006534
> 3-3167-1181051426187-7:20] calling {
> http://abnamro.com/sc/algotf}WorkflowService.processNewRecord(...)}
> DEBUG - QuartzSchedulerImpl - Commiting transaction.
>
> Exactly the same catch statement (copied and pasted) works as expected if
> placed in the <faultHandlers> section of the process.
>
> I am reasonably new to BPEL, so may have missed something?
>
> Thanks
>
> Mike Horwitz
>