我有一個使用Cassandra 2.0和Datastax java驅動程序2.0.2的Web服務應用程序。在嘗試從數據庫寫入/讀取數據庫時,我有時會得到下面的堆棧跟蹤,尤其是如果應用程序已經坐在那裏一段時間(比如過夜)。當我重試時,這個錯誤通常會消失,但是,有時它仍然存在,我必須重新啓動Web應用程序才能消除錯誤。從Datastax Cassandra Java驅動程序獲取「寫入嘗試停止連接」Error
我不知道這是否是某種「過時的連接」問題。但是,Datastax Java驅動程序文檔表明它應該保持連接活着。
我做了一個谷歌搜索的錯誤消息,只有兩個(!)命中是由谷歌提供的。他們是相關的。這是在谷歌結果的一個答案:
西爾Lebresne 4月2日您正在運行到 https://datastax-oss.atlassian.net/browse/JAVA-250。我們很快會修復它 希望(我有一些我需要完成的半補丁修補程序),但是 目前,如果重新啓動整個羣集而沒有在 期間進行查詢,那麼有時可能會發生,這之前 羣集正確重新連接。與此同時,作爲解決方法,您可以始終確保在您正在執行集羣重新啓動時運行一些簡單的查詢以避免它。
但是,這看起來不像我的情況,因爲我們根本沒有重新啓動集羣。我想知道有沒有人對這個錯誤有所瞭解?
堆棧跟蹤:
com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: ec2-54-197-xxx-xxx.compute-1.amazonaws.com/54.197.xxx.xxx:9042 (com.datastax.driver.core.ConnectionException: [ec2-54-197-xxx-xxx.compute-1.amazonaws.com/54.197.xxx.xxx:9042] Write attempt on defunct connection))
at com.datastax.driver.core.exceptions.NoHostAvailableException.copy(NoHostAvailableException.java:65)
at com.datastax.driver.core.DefaultResultSetFuture.extractCauseFromExecutionException(DefaultResultSetFuture.java:256)
at com.datastax.driver.core.DefaultResultSetFuture.getUninterruptibly(DefaultResultSetFuture.java:172)
at com.datastax.driver.core.SessionManager.execute(SessionManager.java:92)