FIX: ORA-00000 Error Message with ASP, MTS, and Connection Pooling (183345)
The information in this article applies to:
- Microsoft ODBC for Oracle version 2.0 Build 2.73.7269
- Microsoft ODBC for Oracle version 2.0 Build 2.73.7283.01
- Microsoft ODBC for Oracle version 2.0 Build 2.73.7283.03
- ActiveX Data Objects (ADO) 1.5
- Microsoft Data Access Components 1.5
This article was previously published under Q183345 SYMPTOMS
The following error message may appear when an Active Server Page (ASP) is
executing the OPEN method to an Oracle data source:
Microsoft OLEDB Provider for ODBC Drivers error '80004005'
[Microsoft][ ODBC driver for Oracle ][Oracle ]ORA-00000: normal,
successful completion
You may also receive an additional error message:
[Microsoft][ ODBC driver for Oracle ][Oracle ]ORA-06403 Unable to
Allocate memory
CAUSE
The problem arises due to a combination of situations occurring at the
same time. First, Oracle uses a System Global Area (SGA) to share data
between connections. Secondly, when Windows NT authentication is requested
by the Active Server Pages (.asp) page, different users cannot access the
same memory in the System Global Area due to the Windows NT security
model. Internet Information Server (IIS) 4.0, NT LanMan security,
Microsoft Oracle Driver 2.73.7283.03, connection pooling, and .asp use the
following data scenario.
USER 1 requests to connect to Oracle. They have their own user ID for
Windows NT security. Connection Pooling is turned on. USER 1 then
disconnects from Oracle. The .asp no longer needs the connection, but
because Connection Pooling is turned on, the Database Environment Handle
(HDBC) remains in memory for 120 seconds. This also keeps the memory
allocated in the SGA on Oracle to USER 1.
USER 2 requests to connect to Oracle. They use the same connection string
to Oracle, but they have a different Windows NT User ID. The ODBC manager
sees that they are using the same connection string so it reuses the
previous connection from USER 1. Oracle now tries to use the same memory
that was allocated to USER 1, but Windows NT security intervenes because
USER 2 (different Windows NT ID) is attempting to use memory designated by
USER 1. Now, the errors mentioned in the SYMPTOMS section occur.
RESOLUTION
Here are the three workarounds to this problem:
STATUS
You can resolve this issue by using the new Microsoft Oracle ODBC driver
version 2.5. This driver is available in Visual Studio 6.0, the Data
Access Software Development Kit (SDK) 2.0, and Microsoft Data Access
Components (MDAC) 2.0. The Data Access Software Development Kit (SDK) 2.0
and Microsoft Data Access Components (MDAC) can be download from the
following Web address:
Navigate to the Downloads page and proceed from there.
Modification Type: | Major | Last Reviewed: | 12/3/2003 |
---|
Keywords: | kbbug kbDatabase kbDriver kbfix kbMDACNoSweep kbOracle KB183345 |
---|
|