2016-03-10 74 views
0

在Sybase死了,我们间歇例外,像Sybase ASE正在终止此过程。连接,同时写入插座

System.Data.OleDb.OleDbException (0x80004005): [08S01] 
[ASEOLEDB]ASE is terminating this process. 
    at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) 
    at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForMultpleResults(tagDBPARAMS dbParams, Object& executeResult) 
    at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) 
    at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) 
    at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) 

System.Data.OleDb.OleDbException (0x80004005): [08S01] 
[ASEOLEDB]Sybase Connection died while writing to socket. Socket returned error code 10053. 
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) 
    at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForMultpleResults(tagDBPARAMS dbParams, Object& executeResult) 
    at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) 
    at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) 
    at System.Data.OleDb.OleDbCommand.ExecuteNonQuery() 

的表中的记录数小于200K和查询通常inline insertsselect with temporary tables

断开连接后,我们需要回收线程或反弹进程。

我们需要在Sybase配置结束时更改吗?或者在应用程序过程中?

回答

0

这可能是ASE服务器端的问题。查看ASE错误日志文件,应该有一个堆栈跟踪,其中包含为什么该进程已终止的线索。根据您在那里找到的内容,您可能需要联系TechSupport并获取最新补丁,或者增加某些ASE配置设置也可能有所帮助。

0

当连接成为死锁情况的受害者时,我通常会看到这个错误措辞。如果是这种情况,应该在ASE错误日志中。

0

这里我们有一个通用的WinSock“10053”错误代码,显示在.net(ASE,Oledb等)客户端调用数据库的操作系统上。

有可能您在ASE错误日志中找不到任何东西(除非激活特定的用户跟踪),因为服务器以标准方式关闭连接,而Sybase客户端软件缓存了它的请求并仍然写入Windows套接字(顺便说一下,是的,这是一个错误/问题:您可以搜索关于EBF和软件维护的最新信息或打开新的支持请求)。

创建临时表时(从.Net ASE Client dll),我遇到了这个问题:可能的原因是,如果连接返回到连接池,本地临时表会丢失(实际上错误是存在的每天在第一次审判)。我试过turning off连接池中的连接字符串,并为我工作。

Data Source=myASEsrv;Port=nnnn;Database=myDB;Uid=myUsr;Pwd=myPswd;Pooling=False;