{"action":"closed","issue":{"url":"https://api.github.com/repos/dnvriend/akka-persistence-jdbc/issues/9","labels_url":"https://api.github.com/repos/dnvriend/akka-persistence-jdbc/issues/9/labels{/name}","comments_url":"https://api.github.com/repos/dnvriend/akka-persistence-jdbc/issues/9/comments","events_url":"https://api.github.com/repos/dnvriend/akka-persistence-jdbc/issues/9/events","html_url":"https://github.com/dnvriend/akka-persistence-jdbc/issues/9","id":51115791,"number":9,"title":"java.sql.SQLRecoverableException: No more data to read from socket","user":{"login":"stevenrigbyS4N","id":8440410,"avatar_url":"https://avatars.githubusercontent.com/u/8440410?v=3","gravatar_id":"","url":"https://api.github.com/users/stevenrigbyS4N","html_url":"https://github.com/stevenrigbyS4N","followers_url":"https://api.github.com/users/stevenrigbyS4N/followers","following_url":"https://api.github.com/users/stevenrigbyS4N/following{/other_user}","gists_url":"https://api.github.com/users/stevenrigbyS4N/gists{/gist_id}","starred_url":"https://api.github.com/users/stevenrigbyS4N/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevenrigbyS4N/subscriptions","organizations_url":"https://api.github.com/users/stevenrigbyS4N/orgs","repos_url":"https://api.github.com/users/stevenrigbyS4N/repos","events_url":"https://api.github.com/users/stevenrigbyS4N/events{/privacy}","received_events_url":"https://api.github.com/users/stevenrigbyS4N/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2014-12-05T16:13:31Z","updated_at":"2015-01-20T20:56:19Z","closed_at":"2015-01-20T20:56:19Z","body":"Hello,\r\n\r\nThe project I'm currently working on uses akka cluster sharding with this plugin connected to an Oracle database. It works fine but after leaving the project running for some time or when the database is stopped it throws the following error and it is unable to recover:\r\n\r\n2014/12/05 09:25:23.887 ERROR[t-dispatcher-14] s.StatementExecutor$$anon$1 81 --- SQL execution failed (Reason: No more data to read from socket):\r\n\r\n   MERGE INTO USERSIS.snapshot snapshot USING (SELECT '/user/sharding/RequestIDRouterCoordinator/singleton/coordinator' AS persistence_id, 7 AS seq_nr from DUAL) val ON (snapshot.persistence_id = val.persistence_id and snapshot.sequence_nr = val.seq_nr) WHEN MATCHED THEN UPDATE SET snapshot='qAAAAKztAAVzcgAtYWtrYS5wZXJzaXN0ZW5jZS5zZXJpYWxpemF0aW9uLlNuYXBzaG90SGVhZGVyAAAAAAAAAAECAAJJAAxzZXJp... (1268)' WHEN NOT MATCHED THEN INSERT (PERSISTENCE_ID, SEQUENCE_NR, SNAPSHOT, CREATED) VALUES ('/user/sharding/RequestIDRouterCoordinator/singleton/coordinator', 7, 'qAAAAKztAAVzcgAtYWtrYS5wZXJzaXN0ZW5jZS5zZXJpYWxpemF0aW9uLlNuYXBzaG90SGVhZGVyAAAAAAAAAAECAAJJAAxzZXJp... (1268)', 1417789523876)\r\n\r\n2014/12/05 09:25:23.888 ERROR[n-dispatcher-44] s.StatementExecutor$$anon$1 81 --- SQL execution failed (Reason: No more data to read from socket):\r\n\r\n   DELETE FROM USERSIS.snapshot WHERE persistence_id = '/user/sharding/RequestIDRouterCoordinator/singleton/coordinator' AND sequence_nr = 7\r\n\r\n[ERROR] [12/05/2014 09:25:23.889] [TokenCluster-akka.actor.default-dispatcher-14] [akka://TokenCluster/system/snapshot-store] No more data to read from socket\r\njava.sql.SQLRecoverableException: No more data to read from socket\r\n\tat oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1157)\r\n\tat oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:350)\r\n\tat oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)\r\n\tat oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)\r\n\tat oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:208)\r\n\tat oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1046)\r\n\tat oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1336)\r\n\tat oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3613)\r\n\tat oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3694)\r\n\tat oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1354)\r\n\tat org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)\r\n\tat org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)\r\n\tat scalikejdbc.StatementExecutor$$anonfun$executeUpdate$1.apply$mcI$sp(StatementExecutor.scala:337)\r\n\tat scalikejdbc.StatementExecutor$$anonfun$executeUpdate$1.apply(StatementExecutor.scala:337)\r\n\tat scalikejdbc.StatementExecutor$$anonfun$executeUpdate$1.apply(StatementExecutor.scala:337)\r\n\tat scalikejdbc.StatementExecutor$NakedExecutor.apply(StatementExecutor.scala:33)\r\n\tat scalikejdbc.StatementExecutor$$anon$1.scalikejdbc$StatementExecutor$LoggingSQLAndTiming$$super$apply(StatementExecutor.scala:317)\r\n\tat scalikejdbc.StatementExecutor$LoggingSQLAndTiming$class.apply(StatementExecutor.scala:264)\r\n\tat scalikejdbc.StatementExecutor$$anon$1.scalikejdbc$StatementExecutor$LoggingSQLIfFailed$$super$apply(StatementExecutor.scala:317)\r\n\tat scalikejdbc.StatementExecutor$LoggingSQLIfFailed$class.apply(StatementExecutor.scala:295)\r\n\tat scalikejdbc.StatementExecutor$$anon$1.apply(StatementExecutor.scala:317)\r\n\tat scalikejdbc.StatementExecutor.executeUpdate(StatementExecutor.scala:337)\r\n\tat scalikejdbc.DBSession$$anonfun$updateWithFilters$1.apply(DBSession.scala:352)\r\n\tat scalikejdbc.DBSession$$anonfun$updateWithFilters$1.apply(DBSession.scala:350)\r\n\tat scalikejdbc.LoanPattern$class.using(LoanPattern.scala:33)\r\n\tat scalikejdbc.ActiveSession.using(DBSession.scala:457)\r\n\tat scalikejdbc.DBSession$class.updateWithFilters(DBSession.scala:349)\r\n\tat scalikejdbc.ActiveSession.updateWithFilters(DBSession.scala:457)\r\n\tat scalikejdbc.DBSession$class.updateWithFilters(DBSession.scala:327)\r\n\tat scalikejdbc.ActiveSession.updateWithFilters(DBSession.scala:457)\r\n\tat scalikejdbc.SQLUpdate$$anonfun$10.apply(SQL.scala:486)\r\n\tat scalikejdbc.SQLUpdate$$anonfun$10.apply(SQL.scala:486)\r\n\tat scalikejdbc.DBConnection$class.autoCommit(DBConnection.scala:183)\r\n\tat scalikejdbc.DB.autoCommit(DB.scala:75)\r\n\tat scalikejdbc.DB$$anonfun$autoCommit$1.apply(DB.scala:218)\r\n\tat scalikejdbc.DB$$anonfun$autoCommit$1.apply(DB.scala:217)\r\n\tat scalikejdbc.LoanPattern$class.using(LoanPattern.scala:33)\r\n\tat scalikejdbc.DB$.using(DB.scala:150)\r\n\tat scalikejdbc.DB$.autoCommit(DB.scala:217)\r\n\tat scalikejdbc.SQLUpdate.apply(SQL.scala:486)\r\n\tat akka.persistence.jdbc.snapshot.GenericStatements$class.deleteSnapshot(Statements.scala:30)\r\n\tat akka.persistence.jdbc.snapshot.OracleSyncSnapshotStore.deleteSnapshot(SnapshotStores.scala:16)\r\n\tat akka.persistence.jdbc.snapshot.JdbcSyncSnapshotStore$class.delete(JdbcSyncSnapshotStore.scala:34)\r\n\tat akka.persistence.jdbc.snapshot.OracleSyncSnapshotStore.delete(SnapshotStores.scala:16)\r\n\tat akka.persistence.snapshot.SnapshotStore$$anonfun$receive$1.applyOrElse(SnapshotStore.scala:44)\r\n\tat akka.actor.Actor$class.aroundReceive(Actor.scala:465)\r\n\tat akka.persistence.jdbc.snapshot.OracleSyncSnapshotStore.aroundReceive(SnapshotStores.scala:16)\r\n\tat akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)\r\n\tat akka.actor.ActorCell.invoke(ActorCell.scala:487)\r\n\tat akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)\r\n\tat akka.dispatch.Mailbox.run(Mailbox.scala:220)\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\r\n\tat java.lang.Thread.run(Thread.java:745)\r\n\r\nIt seems that it is unable to detect that the connection has expired or has been closed. \r\n\r\nI'm not sure if this is the correct place to post this. "}}