在我们连接到Oracle DB的系统中,我们遇到了这种错误
Internal error not handled (-2).\n at System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc)
at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals)
at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, ArrayList& resultParameterOrdinals)
at System.Data.OracleClient.OracleCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.OracleClient.OracleCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
一旦发生此错误,则它是连续的,所有进一步的查询甚至SELECT语句都会失败。
错误将从任何随机SELECT语句开始。并且没有SQL导致此问题的模式。
唯一可行的方法是执行IISRESET。
之后系统将正常工作2-3天。如果再次弹出此错误,则整个系统再次关闭。
注意:我还没有获得Oracle日志。我有时会发布 那些。
编辑1:我们缩小了问题的范围。似乎我们的应用程序的连接泄漏是问题的原因。一旦我们解决问题,我会更新帖子的详细信息。谢谢大家。
答案 0 :(得分:0)
最后我们可以找出错误的原因。
我们的查询中有一些外部数据库链接。在一个地方,此查询与单个事务中的本地数据库查询相结合。这导致了这个问题。
由于某种原因,本地事务无法升级为分布式事务。
注意:我们仍在使用Miscrosft Oracle Provider与oracle DB进行通信
如果您
,这可以解决