Upon opening a second connection inside of a transaction (a point at which I would expect a promotion) I recieve the above mentioned error.
Asked
Active
Viewed 5,634 times
1 Answers
3
The issue turned out to be that my app was 32 bit and the Oracle MTS Recovery Service was running from my 64 bit oracle home. I uninstalled just the recovery service from that 64 bit setup, and reran the 32 bit setup to install the 32 bit recovery service under an existing 32 bit oracle home.
I believe the new managed provider has more options (search for "32" in the link below) but the app currently uses the unmanaged provider. http://docs.oracle.com/cd/E16655_01/win.121/e18595/install.htm

b_levitt
- 7,059
- 2
- 41
- 56
-
This can also be related to the MSDTC service. If that service is not running (services.msc) and you have nested transactions you will get this error. The service may be disabled for security purposes and in our case it was and we had to eliminate the nested DB transaction. – Mycah Feb 26 '19 at 19:03
-
Correct. Though it's not necessarily a nested transaction that's causing the promotion (thus the need for the DTC) in your case. Its a nested call with an additional connection. Also, while the DTC does ship as disabled by default, that does not mean it is an inherent security risk. It's no different than any of the other services that might run on a server...leave it off if you don't need it, protect it if you do. Creating compound atomic business logic far outweighs the effort needed to protect this service. – b_levitt Feb 26 '19 at 19:46
-
Yes, I wasn't clear but did mean a nested call with an additional transaction. In our case the client has the service disabled (not sure exactly why) so we had to work around it. I wasn't finding anything about MSDTC when trying to find a solution and this post is the first Google result. Hopefully it could help someone down the road. Cheers. – Mycah Feb 26 '19 at 19:53