Arnaud,
The problem is, you had first adapter service without transaction context being defined. When the flow service executes, it would encounter the adapter service call, and as there is no explicit transaction defined, it will start one implicit transaction context, and this will complete during the service completion. However, in your flow, you have another piece of code that follows transaction. Since IS has already locked this service for a particular transaction context, it is not able to add one more for the same before it completes.
You can have several ‘start’, ‘commit’ one after the other, which will work fine.
You can have start/commit context, inside another start/commit (trans inside trans).
However, you cannot mix implicit and explicit transaction in the same service. That’s the reason, by adding startTransaction as first step, you will avoid this issue. In this case, commitTrans can be either present in end of the actual service, or soon after the first adapter invocation. Both will work. Pass the right transaction id to the catch block to check roll-back scenarios.
HTH
Senthil
#Integration-Server-and-ESB#webMethods#Adapters-and-E-Standards