我们这里有一个应用程序,它使用 COM+ dll 中的 ODAC 组件连接到 Oracle Server 11g。
最近我们面临一个问题,我们无法找到解决方案。
由于某些原因,当我们的一些客户端的应用服务器并发太高时,一些dll开始挂起,他们不得不杀死进程来恢复我们产品的可用性。为了在我们的办公室重现错误,我们创建了一个测试环境来给应用程序服务器施加压力。我们启动了 30-50 个调用应用程序的程序,一段时间后问题出现了。
在服务器挂起后调试我们的 DLL,表明对 OCISessionBegin 的任何后续调用都无法完成。不会产生错误。没有其他症状可见。
我们尝试执行的最后一行是:Check(OCISessionBegin(...)); 在 OraClasses.pas
我们检查了数据库没有争用,没有锁。
我们在客户端上使用 ODAC 6,但我们将其升级到最新版本,问题仍然存在。我们必须使用 Oracle Client 10 连接到数据库 11g,因为使用的是 ODAC 版本 6。
非常感谢