Transactions on Oracle 10gR2

Hi,

We are attempting to do some simple transactions on Oracle but can’t seem to get our commit statements to work in WM. We have a simple flow that looks like this:

startTransaction (transactionName = 123)
incrementDBField()
commitTransaction(transactionName = 123)

If I run the “incrementDBField” adapter service by itself, it properly increments the database field. If I attempt to run the flow service above, I receive the following error by attempting to step through the commit statement:

error : [ART.114.303] Adapter Runtime (Transaction): Unable to commit transaction. null
errorType : com.wm.pkg.art.error.DetailedServiceException
errorDump : com.wm.pkg.art.error.DetailedServiceException: [ART.114.303] Adapter Runtime (Transaction): Unable to commit transaction.
null

We have tried using “NO TRANSACTION”, “LOCAL_TRANSACTION”, and “XA_TRANSACTION” on our connection. All versions still give us the “null error” above. We have also tried using different oracle drivers (e.g. the thin and the OCI.) to no avail.

Is there some property we’re missing that is preventing us from using the commitTransaction?

-g

G,

Rather than using a hardcoded transactionName, try using the one returned by the startTransaction invoke or a unique value that you generate each time the service is executed. If there is a previous transactionName of 123 in the transaction store (my term, not WM’s) then your commit could be failing due to that.

There are many, many discussion threads here on IS transaction management. Including a fairly recent debate on the best ways to use sequences with transaction management.

HTH,

Mark

Thanks for the link.

We just noticed that it works if we do not “step” through the service. We’re going to roll with that for now.

Thanks again.

-g

Yeah, you can’t trace or step through Flows containing invokes of transaction management built-in services.

I usually debug with those steps disabled and then enable them before promoting to Integration Test (or the next environment).

Mark