0
votes

We are upgrading from Oracle 11g to 12c. On a new VM machine in Microsoft Azure.

On a specific call on our Website C#, visually nothing seems to happen, but we are expecting a PDF to be generate. We got no error on the screen, but all our sessions variables are lost. So I suspected a IIS Pool Crash that restart itself.

In the EventViewer we have 4 entries:

Fault bucket , type 0
Event Name: APPCRASH
Response: Not available
Cab Id: 0

Problem signature:
P1: w3wp.exe
P2: 8.5.9600.16384
P3: 5215df96
P4: KERNELBASE.dll
P5: 6.3.9600.17415
P6: 54505737
P7: e0434352
P8: 0000000000008b9c
P9: 
P10: 

Attached files:

These files may be available here:
C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_w3wp.exe_581137a17c847dd9f7a031c3aa3f034922c43eb_9e3fd63b_15d86310

Analysis symbol: 
Rechecking for solution: 0
Report Id: af7a2d91-61fe-11e5-80d7-000d3a120856
Report Status: 4100
Hashed bucket: 
Faulting application name: w3wp.exe, version: 8.5.9600.16384, time stamp: 0x5215df96
Faulting module name: KERNELBASE.dll, version: 6.3.9600.17415, time stamp: 0x54505737
Exception code: 0xe0434352
Fault offset: 0x0000000000008b9c
Faulting process id: 0x3f8
Faulting application start time: 0x01d0f60a6cd8b18e
Faulting application path: c:\windows\system32\inetsrv\w3wp.exe
Faulting module path: C:\Windows\system32\KERNELBASE.dll
Report Id: af7a2d91-61fe-11e5-80d7-000d3a120856
Faulting package full name: 
Faulting package-relative application ID: 
Fault bucket , type 0
Event Name: APPCRASH
Response: Not available
Cab Id: 0

Problem signature:
P1: w3wp.exe
P2: 8.5.9600.16384
P3: 5215df96
P4: OraOps12.dll
P5: 2.121.2.0
P6: 54901d98
P7: c0000005
P8: 0000000000017ff5
P9: 
P10: 

Attached files:

These files may be available here:
C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_w3wp.exe_a4d182c0c99e9b38629c62a88d0c14f07b7de2_9e3fd63b_0a985f09

Analysis symbol: 
Rechecking for solution: 0
Report Id: aeb6b548-61fe-11e5-80d7-000d3a120856
Report Status: 4100
Hashed bucket: 
Faulting application name: w3wp.exe, version: 8.5.9600.16384, time stamp: 0x5215df96
Faulting module name: OraOps12.dll, version: 2.121.2.0, time stamp: 0x54901d98
Exception code: 0xc0000005
Fault offset: 0x0000000000017ff5
Faulting process id: 0x3f8
Faulting application start time: 0x01d0f60a6cd8b18e
Faulting application path: c:\windows\system32\inetsrv\w3wp.exe
Faulting module path: C:\oracle\product\12.1.0\client_1\bin\OraOps12.dll
Report Id: aeb6b548-61fe-11e5-80d7-000d3a120856
Faulting package full name: 
Faulting package-relative application ID:  

After a lot of tuning and testing I activated the Oracle Tracing. Where I suspect a Wrong Connection Close before a DataReader Dispose.

TIME:2015/09/23-10:58:14:002 TID:1130  (ENTRY) OpsConCheckConStatus(): (7edf09f0)=2128546288
TIME:2015/09/23-10:58:14:018 TID:1130  (opsConCheckConstatus) OCIPing(0) called
TIME:2015/09/23-10:58:14:018 TID:1130  (EXIT)  OpsConCheckConStatus(): RetCode=0 Line=3290 (7edf09f0)=2128546288
TIME:2015/09/23-10:58:14:018 TID:1130  (ENTRY) OpsConAllocValCtx()
TIME:2015/09/23-10:58:14:018 TID:1130  (EXIT)  OpsConAllocValCtx(): RetCode=0 Line=443
TIME:2015/09/23-10:58:14:018 TID:1130  (EXIT)  OracleConnection::Close()
TIME:2015/09/23-10:58:14:018 TID:1130  (EXIT)  OracleDataReader::Dispose()
TIME:2015/09/23-10:58:14:018 TID:1130  (ENTRY) OracleParameter::OracleParameter(2)
TIME:2015/09/23-10:58:14:018 TID:1130  (EXIT)  OracleParameter::OracleParameter(2)
TIME:2015/09/23-10:58:14:018 TID:1130  (ENTRY) OracleParameter::OracleParameter(2)
TIME:2015/09/23-10:58:14:018 TID:1130  (EXIT)  OracleParameter::OracleParameter(2)
TIME:2015/09/23-10:58:14:018 TID:1130  (ENTRY) OracleCommand::OracleCommand(1)
TIME:2015/09/23-10:58:14:018 TID:1130  (EXIT)  OracleCommand::OracleCommand(1)
1

1 Answers

0
votes

Finally, we add a problem with the way we were closing our DB Connection.

For some reason Oracle 11 doesn't care but 12c ask for more.

It's seem that somewhere we were mishandling the connection, so we revised our entire source for refactoring our code. We use "Using Clause", Try/Catch/Finally, add Close() and Dispose() instruction if necessary (and remove some when not needed).

We also add Pool parameters on our connectionString for better pool management.

All of that fix our problem.