Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Intermittent Problems using OLEDB/ODBC and COM+

590168Jul 26 2007
Hello,

I am having a very odd and intermittent problem.

The application is a classic ASP application that uses COM+ as a data-access layer. I am in charge of fixing the DAL so that CLOBs can be loaded from the database (currently the entire DAL uses MSDORA driver which does not allow CLOBS).

I re-wrote the neccessary portions of the code (that require CLOBS) to use the OraOLEDB.Oracle.1 OLE DB Provider. The application works perfectly, However, intermittantly the COM+ application that the DAL runs in will crash and an error is placed in the event viewer.

COM Application Configuration
Type: Server
Authentication : (User with sufficient priveledges)
Transactions: Supported

The Code

Set CnCLOB = New ADODB.Connection
CnCLOB.CursorLocation = adUseClient
CnCLOB.ConnectionTimeout = 30
CnCLOB.Provider = "OraOLEDB.Oracle.1"
CnCLOB.ConnectionString = "Provider=OraOLEDB.Oracle.1; Data Source=XXXXXX; User Id=XXXXXXX; Password=XXXXX; Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;Incr Pool Size=5;Decr Pool Size=2;"
CnCLOB.Open ' This Line fails

The Error (Intermittant, and unpredicatble)
Event Type: Error
Event Source: COM+
Event Category: SVC
Event ID: 4194
Date: 7/26/2007
Time: 12:41:21 PM
User: N/A
Computer: XXXXXXXXXXXXX
Description:
The system has called a custom component and that component has failed and generated an exception. This indicates a problem with the custom component. Notify the developer of this component that a failure has occurred and provide them with the information below.
Component Prog ID:
Server Application ID: {XXXXXXXX-XXXXXXXXX-XXXXXXXXX-XXXXXXXX}
Server Application Name: XXXXXXXX
The serious nature of this error has caused the process to terminate.
Exception: C0000005
Address: 0x619156A4
Call Stack:
orantcp9 + 0x56A4
msafd!StartWsdpService + 0x718C
ntdll!KiUserApcDispatcher + 0x7
msafd + 0x160D
WS2_32!WSARecv + 0x6C
orantcp9 + 0x5634
orantcp9 + 0x2F64
oran9!ztvull + 0x16C36
oran9!nsrdr + 0x140
oran9!nsdo + 0xD38
oran9!nioqrc + 0x3EA
oracommon9!ttcdrv + 0x41B
oran9!nioqwa + 0x2D
ORACLIENT9!xaolog + 0x2D8FB
ORACLIENT9!upirtr + 0xBD
ORACLIENT9!kpurcs + 0x97
ORACLIENT9!kpuexInitStmh + 0x1B2F
ORACLIENT9!kpuexec + 0xBBD
ORACLIENT9!OCIStmtExecute + 0x2A
OraOLEDBrst + 0xA74E

So, I re-wrote the OLE-DB code to use the Oracle For Ora9i ODBC driver. This worked again, however the same problem occured unpredictably, with a slightly different error.

The Code Using ODBC
Set CnCLOB = New ADODB.Connection
CnCLOB.CursorLocation = adUseClient
CnCLOB.ConnectionTimeout = 30
CnCLOB.ConnectionString = "Driver={Oracle In Ora9i}; RST=T; DBQ=XXXXX; PWD=XXXXXXXXXX;UID=XXXXXXXXXXXXX;DBA=W;"
CnCLOB.Open ' Fails Here


The Error

Event Type: Error
Event Source: COM+
Event Category: SVC
Event ID: 4194
Date: 7/26/2007
Time: 4:49:51 PM
User: N/A
Computer: XXXXXXXXXXXX
Description:
The system has called a custom component and that component has failed and generated an exception. This indicates a problem with the custom component. Notify the developer of this component that a failure has occurred and provide them with the information below.
Component Prog ID:
Server Application ID: {XXXXXXXX-XXXXXXXXX-XXXXXXXX-XXXXXXXX}
Server Application Name: XXXXXXXXX
The serious nature of this error has caused the process to terminate.
Exception: C0000005
Address: 0x619156A4
Call Stack:
orantcp9 + 0x56A4
msafd!StartWsdpService + 0x718C
ntdll!KiUserApcDispatcher + 0x7
msafd + 0x160D
WS2_32!WSARecv + 0x6C
orantcp9 + 0x5634
orantcp9 + 0x2F64
oran9!ztvull + 0x16C36
oran9!nsrdr + 0x140
oran9!nsdo + 0xD38
oran9!nioqrc + 0x3EA
oracommon9!ttcdrv + 0x41B
oran9!nioqwa + 0x2D
ORACLIENT9!xaolog + 0x2D8FB
ORACLIENT9!upirtr + 0xBD
ORACLIENT9!kpurcs + 0x97
ORACLIENT9!kpuexInitStmh + 0x1B2F
ORACLIENT9!kpuexec + 0xBBD
ORACLIENT9!OCIStmtExecute + 0x2A
OCI!OCICharSetToUnicode + 0xB00B
SQORA32 + 0x1A870
SQORA32!SQLExecute + 0x201
SQORA32!SQLExecDirectW + 0xCC
ODBC32!SQLExecDirectW + 0x162
ODBC32!SQLExecDirectW + 0x39
msdasql!DllGetClassObject + 0x78EF
msdasql!DllGetClassObject + 0x6835
msado15!DllGetClassObject + 0x17F38
msado15!DllGetClassObject + 0x181CC
msado15!DllGetClassObject + 0x18423
msado15!DllGetClassObject + 0x17C82
msado15!DllGetClassObject + 0x17E4E
msado15!DllGetClassObject + 0x10785
APPLICATION_NAME + 0xB70E
OLEAUT32!DispCallFunc + 0x15D
MSVBVM60!BASIC_CLASS_Invoke + 0x259
MSVBVM60!BASIC_CLASS_Invoke + 0x52
OLEAUT32!UserEXCEPINFO_free_local + 0x57D

In both cases the line that fails is the Open() function of ADO. We are using version 9.6.0.2.6 of the Oracle Client software.

When the DAL not configured as a COM+ application and allowed to execute within the IIS process, DLLHOST.EXE freezes, and no further requests can be made to the application.

Any help in the matter would be greatly appreciated. I am stuck. I don't have administrative priviledges to the server, nor the oracle server. I do know the server is 10.2.0.2.0

Thanks
- Justin
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 23 2007
Added on Jul 26 2007
0 comments
686 views