the good practice as we noticed is to have a start transaction and a commit or rollback around every database call(that uses a LOCAL_TRANSACTION), you can gather multiple calls using the same connection in the same transaction (do not use nested transactions!)
If you have two connections in the same flow that are of the local_transaction type you will definitely encounter problems if the transaction handling is not used
use a unique id for every transaction name!!
Be ware that if you put a rollback in your catch block sequence that the pipeline content of the try block sequence is not passed! meaning that the identifier of the transaction must be generated before the try sequence. If you use a rollback in the try block it works if the identifier was still known but it displays however an error in the logs, something like transaction with id … already marked for rollback. We ignore the error as the service executed OK.
We also noticed that that the transaction gets commited automatically when it goes to the catch block sequence even if there were no commit or rollback transactions specified.
Watch out with transactions that are not commited or roll backed as they mess up the connection pool.
the debug mode currently does not support transactions and this is a real problem!!!
hope this was of any help
feel free to contact me for more info on this topic as we had the same problems, currently everything seems to be working OK
#Integration-Server-and-ESB#webMethods#Adapters-and-E-Standards