I have a main flow service which calls another wrapper service .The wrapper simply wraps an E1 adapter service.
If the adapter service successfully performs all the updation the transaction is commited.Otherwise in the catch block the
transaction is rolled back.
Now the problem is When i am running the main service i get no errors.When i debug the code by using step, everything runs
fine but when i move my control in to the inner(called) service by using step to , it fails to commit the transaction and consequently
the error message i get is :[ART.114.303] Adapter Runtime (Transaction): Unable to commit transaction.null
Sometimes i get error meesages saying unable to rollback also.
Can anyone suggest why the code behaves differently?
I believe the documentation points out the stepping through ART sessions with transactions doesn’t work–hard to manage the transaction that way.
You will have to disable the commit and rollback steps when stepping through in developer.
when you step through the service the adpater service commits the transaction in the very next step, so you can’t step through the service and check for the roll back. And if you don’t want to check the roll back and just step thru the full service for any other error then disable the commit and rollback step as Matunjt said.
Thanks everyone.But dont you all think that its a limitation in WM.Has it got any logical reason for disabling the commit/rollback steps while debugging?
While I don’t know the details, I surmise that there are specific technical limitations with keeping a transaction open while stepping through a service. Imagine the impact of keeping a DB transaction open for several minutes, or never closing because you abandon the session–not a good thing.
Im sure it has to do with threading. When you step through code it will spawn threads and cant keep track of the transaction
Actually each step is take as a Tx. while you are tracing… thats why its throws while commiting Tx. And this is not limitation of wM… they hav built in this way only…
But when you run it the it treats every thing as one Tx. and runs fine…