问题
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:
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.
来源:https://stackoverflow.com/questions/32747092/oraops-crash-w3wp-exe-process