1 Reply Latest reply on Nov 4, 2003 4:58 PM by 82532

    OO4O and MTS

    251531
      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
      End If
      dSet.Close
      dbase.Close
      Set dSet = Nothing
      Set dbase = Nothing
      Set dsess = Nothing
      'Display the first record.
      End Function
        • 1. Re: OO4O and MTS
          82532
          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.