2016-03-10 34 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;