View Single Post

   
  #3 (permalink)  
Old 02-26-2008, 03:26 AM
Galen Boyer
 
Posts: n/a
Default Re: ORA-02041: client database did not begin a transaction

On 10 Jan 2007, skyloon@gmail.com wrote:
> currently im using VB connect to oracle 8i and 9i, it's a data purging
> program which purge data from 8i to 9i.
>
> for example,
> db.Open for oracle 8i, and when i execute insert statement into oracle
> 9i from 8i, it gives me this error message:
> ORA-02041: client database did not begin a transaction


I've never worked with VB, so, anything I say is just a guess.

Here is what the docs say:

ORA-02041 client database did not begin a transaction

Cause: An update occurred at a coordinated database without the
coordinator beginning a distributed transaction. This may happen if
a stored procedure commits and then performs updates, and the stored
procedure is invoked remotely. It could also happen if an external
transaction monitor violates the XA protocol.

Action: If the cause is the former, check that any commit is
not followed by an update.


> but when i tried db.Open for oracle 9i, it won't give any error, it
> executes successfully.
>
> the query is very simple, Insert Into
> FwdBook_Hbl@Oracle9(COMPANYCODE,BRANCHCODE,JOBNO,H OUSEBLNO) (SELECT
> FwdBook_Hbl.COMPANYCODE,FwdBook_Hbl.BRANCHCODE,Fwd Book_Hbl.JOBNO,FwdBook_Hbl.HOUSEBLNO
> FROM FwdBook_Hbl@Oracle8)


I see that you are using a remote incantation for both the 9i and 8i
databases. Which database is the database your code is logging into,
8i? Maybe try to just make a remote call to the 9i server and remove
the @Oracle8 part of the "FROM" clause? Maybe the remote call to 9i
from a remote 8i database and VB/odbc is confusing things?


> i already created database link for these 2 servers.
> when i run this query in sql*plus, no problem at all.
> ODBC > Disable Microsoft Transaction Server (tick or untick also won't
> help)
>
> Am i need to do any setting for oracle 8i?
>
> Thanks...


--
Galen Boyer
Reply With Quote