I have created a DLL in VB and registered it on the server as a COM component. I am using the open database method which specifies to use MTS. It seems to work well enough. I am pretty sure that Oracle Services for MTS is not installed on the server. A snippet of code is below.
Does OO4O get its connections from MTS's connection pooling? Basically I read some of the documentation and I still don't understand how OO4O and MTS interact or don't interact.
Function getDynaArray(ByVal sqlString As String, _
ByVal tnsString As String, _
ByVal loginString As String, _
ByVal maxBlocks As Long, _
ByVal fetchLimit As Long)
Dim dsess As OraSession
Dim dbase As OraDatabase
Dim dSet As OraDynaset
'Create the OraSession Object.
Set dsess = CreateObject("OracleInProcServer.XOraSession")
'Create the OraDatabase Object by opening a connection to Oracle.
Set dbase = dsess.OpenDatabase(tnsString, loginString, 10&)
'Create the OraDynaset Object.
Set dSet = dbase.CreateCustomDynaset(sqlString, 12&, 1024, 100, maxBlocks, fetchLimit, 500000)
' Set dSet = dbase.CreateDynaset(sqlString, 12)
If Not dSet.EOF Then
getDynaArray = dSet.GetRows
Set dSet = Nothing
Set dbase = Nothing
Set dsess = Nothing
'Display the first record.
Not as I understand it. The docs are brief (to say the least):
Oracle database transactions initiated in Oracle Objects for OLE (OO4O) automatically participate in global transactions coordinated by the MS Distributed Transaction Coordinator (DTC) in the Microsoft Transaction Server (MTS), if all the following conditions are true:
� The OpenDatabase method of OraSession uses the ORADB_ENLIST_IN_MTS option.
� OO4O determines that it is running in the context of a global transaction in MTS.
� Oracle Service for MTS is installed and running.
So nowhere do I see anything about it using the connection pool from MTS.