Link to home
Start Free TrialLog in
Avatar of stuartngo
stuartngo

asked on

MTS Transactions and AS400 OLEDB

Hi,

I have an MTS component which calls a program on the AS400 via IBMDA400 OLEDB. When I set the MTS component to "NoTransactions" the call works. When I set the MTS component to "RequiresTransaction", I get an error "No such interface supported 80004002"

So my question is: Does IBMDA400 OLEDB support MTS transactions? In the OLEDB TechRef it says the you can use ADO transactional functionality which suggests that AS400 OLEDB supports MTS/COM Transactions. Other IBM articles says that SQL Transactions are not supported. Niether of these answers my question.

Furthermore, I have read that the COMCAT.dll is the cause of the problem. I have checked my COMCAT.DLL and it is version 5.2195 so its fairly recent.

Any help would be appreciated.

Stuart
Avatar of Theo Kouwenhoven
Theo Kouwenhoven
Flag of Netherlands image

Never heard about this problem, I just cheked and all our PC's using COMCAT.DLL Version 5.0.
So if the dll shoult be teh problem, go back to 5.0 instead of 5.2

Let us know if it worked.

Regards.
Avatar of stuartngo
stuartngo

ASKER

Actually, its doubtful that the IBMDA400 OLEDB supports MTS transactions - which is why we get the "interface not supported" error message.

BTW I'm not allowed to change the COMCAT.dll because it means changing the configuration of live servers.

Thanks anyway

ps Does anyone know how to close questions?
Hi,
I'm no expert but I'm currently working with some VB & AS400 related stuffs. This is what I've concluded :-

1). I can't control transactions from VB to AS400 using MTS.Therefore MTS does not handle AS400 transactions.

2). If u want to have transactional handling in VB, using the ADODB.Connection objects BeginTrans,CommitTrans & RollbackTrans does the trick.This works but u need to set the VB dll that u compiled to MTSTransactionMode : 3-UsesTransactions.

Hope this is works for u.
Appreciate ur feedback.

;-)
SJ
Hi shiyamala,

I tried your suggestion (2) but it didn't work - I still get the interface error. Where do you put the ADOCON.BeginTrans in the code - can you give me an example.

Thanks
Stuart
ASKER CERTIFIED SOLUTION
Avatar of shiyamala
shiyamala

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial