Oracle distributed transactions in vb6/vb.net mixed environment

K

Klas Mellbourn

We have a large VB6 system that uses an Oracle 8.1.7 database (we are
about to migrate to Oracle 9.2).
The system is built using COM+ components that interact using
distributed transactions.

We are considering migrating to VB.NET gradually by replacing the VB6
COM+ components with VB.NET COM+ components. When using SQL Server,
there seems to be no problems making transacted COM+ calls between VB6
and VB.NET COM+ components.

Now, is it possible to make transacted distributed COM+ calls between
VB6 and VB.NET components when the database is Oracle 8 (or Oracle 9
for that matter)?

If yes, what drivers would we have to use? ODP.NET? Microsoft OLE DB
Provider for Oracle?

/Klas
 
P

Paul Clement

On 12 Sep 2003 04:11:55 -0700, (e-mail address removed) (Klas Mellbourn) wrote:

¤ We have a large VB6 system that uses an Oracle 8.1.7 database (we are
¤ about to migrate to Oracle 9.2).
¤ The system is built using COM+ components that interact using
¤ distributed transactions.
¤
¤ We are considering migrating to VB.NET gradually by replacing the VB6
¤ COM+ components with VB.NET COM+ components. When using SQL Server,
¤ there seems to be no problems making transacted COM+ calls between VB6
¤ and VB.NET COM+ components.
¤
¤ Now, is it possible to make transacted distributed COM+ calls between
¤ VB6 and VB.NET components when the database is Oracle 8 (or Oracle 9
¤ for that matter)?
¤
¤ If yes, what drivers would we have to use? ODP.NET? Microsoft OLE DB
¤ Provider for Oracle?

You can but you need to be aware of the following issue:

PRB: "Failed to Initialize Distributed Transactions" Error Message with Oracle .NET Managed Provider
http://support.microsoft.com/default.aspx?scid=kb;en-us;322343


Paul ~~~ (e-mail address removed)
Microsoft MVP (Visual Basic)
 
A

Angel Saenz-Badillos[MS]

That article applies _only_ to v1.0 RTM of the Oracle Managed provider it
does NOT affect v1.1 Everett where distributed transactions are fully
supported.

Yes, it is possible to use distributed transactions across VB6 and VB.NET,
it is also possible to use them across any COM+ components and .net. The way
distributed transactions work with the managed provider is as follows:

Option 1 autoenlist. The connection will automatically enlist in any
distributed transaction that it can find in its current context (walk up the
stack). If you call a managed component from inside a distributed
transaction context your connections will automatically run inside of your
distributed transaction.

Option 2 manual enlistment. You can enlist in an existing Distributed
transaction context that is available using the EnlistDistributedTransaction
method in the connection.

For the Oracle Managed provider you need to install Oracle Client v9.0 or
higher and make sure that the Support for Microsoft Distributed Transaction
component is installed (this is installed by default in 9.2, it is an
optional component for 9.0 and 9.1) Depending on your application you may
have to do additional setup work like giving your assembly a strong name.

Hope this helps, feel free to contact me directly with any issues related to
managed distributed transactions,
Angel

 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top