OraOps崩溃w3wp.exe进程
本文关键字:进程 exe w3wp 崩溃 OraOps | 更新日期: 2023-09-27 18:14:19
我们正在从Oracle 11g升级到12c。在Microsoft Azure中的新VM机器上。
在我们的c#网站上的一个特定调用中,从视觉上看似乎没有发生任何事情,但我们期望生成一个PDF。我们在屏幕上没有出现错误,但是我们所有的会话变量都丢失了。所以我怀疑是IIS池崩溃,重新启动自己。
在EventViewer中我们有4个条目:
故障桶,类型0事件名称:APPCRASH回复:不可用出租车编号:0问题签名:P1: w3wp.exeP2: 8.5.9600.16384P3: 5215df96KERNELBASE.dllP5: 6.3.9600.17415P6: 54505737P7: e0434352P8: 0000000000008b9cp9:p10:附件:这些文件可以在这里找到:c:'ProgramData'Microsoft'Windows'WER'ReportQueue'AppCrash_w3wp.exe_581137a17c847dd9f7a031c3aa3f034922c43eb_9e3fd63b_15d86310分析符号:重新检查解决方案:0报告Id: af7a2d91-61fe-11e5-80d7-000d3a120856报告状态:4100散列桶:
故障应用程序名称:w3wp.exe,版本号:8.5.9600.16384,时间戳:0x5215df96故障模块名称:KERNELBASE.dll,版本:6.3.9600.17415,时间戳:0x54505737异常代码:0xe0434352故障偏移量:0x0000000000008b9c故障进程id: 0x3f8故障应用程序启动时间:0x01d0f60a6cd8b18e故障应用路径:c:'windows'system32'inetsrv'w3wp.exe故障模块路径:C:'Windows'system32'KERNELBASE.dll报告Id: af7a2d91-61fe-11e5-80d7-000d3a120856故障包全名:与包相关的应用程序ID出错:
故障桶,类型0事件名称:APPCRASH回复:不可用出租车编号:0问题签名:P1: w3wp.exeP2: 8.5.9600.16384P3: 5215df96P4: OraOps12.dllP5: 2.121.2.0P6: 54901d98P7: c0000005P8: 0000000000017ff5p9:p10:附件:这些文件可以在这里找到:c:'ProgramData'Microsoft'Windows'WER'ReportQueue'AppCrash_w3wp.exe_a4d182c0c99e9b38629c62a88d0c14f07b7de2_9e3fd63b_0a985f09分析符号:重新检查解决方案:0报告Id: aeb6b548-61fe-11e5-80d7-000d3a120856报告状态:4100散列桶:
故障应用程序名称:w3wp.exe,版本号:8.5.9600.16384,时间戳:0x5215df96故障模块名称:OraOps12.dll,版本:2.121.2.0,时间戳:0x54901d98异常码:0xc0000005故障偏移量:0x0000000000017ff5故障进程id: 0x3f8故障应用程序启动时间:0x01d0f60a6cd8b18e故障应用路径:c:'windows'system32'inetsrv'w3wp.exe故障模块路径:C:'oracle'product'12.1.0'client_1'bin'OraOps12.dll报告Id: aeb6b548-61fe-11e5-80d7-000d3a120856故障包全名:与包相关的应用程序ID出错:
经过大量的调优和测试后,我激活了Oracle Tracing。当我怀疑一个错误的连接在DataReader Dispose之前关闭。
时间:2015/09/23-10:58:14:002 TID:1130 (ENTRY) OpsConCheckConStatus():(7edf09f0)=2128546288 .日志示例时间:2015/09/23-10:58:14:018 TID:1130 (opsConCheckConstatus) OCIPing(0)被调用时间:2015/09/23-10:58:14:018 TID:1130 (EXIT) OpsConCheckConStatus(): RetCode=0 Line=3290 (7edf09f0)=2128546288 .日志示例时间:2015/09/23-10:58:14:018 TID:1130 (ENTRY) OpsConAllocValCtx()时间:2015/09/23-10:58:14:018 TID:1130 (EXIT) OpsConAllocValCtx(): RetCode=0 Line=443时间:2015/09/23-10:58:14:018 TID:1130 (EXIT) OracleConnection::Close()时间:2015/09/23-10:58:14:018 TID:1130 (EXIT) OracleDataReader::Dispose()时间:2015/09/23-10:58:14:018 TID:1130 (ENTRY) OracleParameter::OracleParameter(2)时间:2015/09/23-10:58:14:018 TID:1130 (EXIT) OracleParameter::OracleParameter(2)时间:2015/09/23-10:58:14:018 TID:1130 (ENTRY) OracleParameter::OracleParameter(2)时间:2015/09/23-10:58:14:018 TID:1130 (EXIT) OracleParameter::OracleParameter(2)时间:2015/09/23-10:58:14:018 TID:1130 (ENTRY) oracleccommand:: oracleccommand (1)时间:2015/09/23-10:58:14:018 TID:1130 (EXIT) oracleccommand:: oracleccommand (1)
最后,我们在关闭数据库连接的方式上添加了一个问题。
由于某些原因,Oracle 11不关心,但12c要求更多
似乎我们在某个地方错误地处理了连接,所以我们修改了整个源代码来重构代码。我们使用"Using子句",Try/Catch/Finally,必要时添加Close()和Dispose()指令(并在不需要时删除一些)。
我们还在connectionString上添加Pool参数,以便更好地管理池。
所有这些解决了我们的问题