【问题标题】:OraOps crash w3wp.exe ProcessOraOps 崩溃 w3wp.exe 进程
【发布时间】:2015-12-21 05:09:37
【问题描述】:

我们正在从 Oracle 11g 升级到 12c。在 Microsoft Azure 中的新 VM 计算机上。

在我们的网站 C# 上进行特定调用时,视觉上似乎没有发生任何事情,但我们期望生成一个 PDF。屏幕上没有错误,但我们所有的会话变量都丢失了。所以我怀疑是 IIS Pool Crash 会自行重启。

在 EventViewer 我们有 4 个条目:

故障桶,类型0 活动名称:APPRCASH 回应:不可用 驾驶室编号:0 问题签名: P1:w3wp.exe P2:8.5.9600.16384 P3:5215df96 P4:内核基础.dll P5:6.3.9600.17415 P6:54505737 P7:e0434352 P8: 0000000000008b9c P9: 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 活动名称:APPRCASH 回应:不可用 驾驶室编号:0 问题签名: 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: 附加的文件: 这些文件可能在此处可用: 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 TIME: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 (退出) OracleConnection::Close() 时间:2015/09/23-10:58:14:018 TID:1130 (退出) 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) OracleCommand::OracleCommand(1) 时间:2015/09/23-10:58:14:018 TID:1130 (EXIT) OracleCommand::OracleCommand(1)

【问题讨论】:

    标签: c# database oracle oracle12c


    【解决方案1】:

    最后,我们添加了一个关闭数据库连接方式的问题。

    出于某种原因,Oracle 11 不在乎,但 12c 要求更多。

    似乎我们在某个地方错误地处理了连接,因此我们修改了整个源代码以重构我们的代码。我们使用“Using Clause”,Try/Catch/Finally,必要时添加 Close() 和 Dispose() 指令(并在不需要时删除一些)。

    我们还在 connectionString 上添加了池参数,以便更好地管理池。

    所有这些都解决了我们的问题。

    【讨论】:

      猜你喜欢
      • 2011-06-07
      • 1970-01-01
      • 1970-01-01
      • 2013-06-21
      • 2011-04-23
      • 1970-01-01
      • 2015-11-26
      • 1970-01-01
      • 2012-02-17
      相关资源
      最近更新 更多