Persister did not Connect to Database Automatically when the Database was restarted, keeping the Persister Running.
book
Article ID: KB0089119
calendar_today
Updated On:
Products
Versions
TIBCO ActiveSpaces
-
Not Applicable
-
Description
Resolution: Description: =========== When the "ASPersistence" Persister given with examples in ActiveSpaces installation is started, it connects to the Database. But after restarting the Database, and keeping the persister running, if we try to do any operation on AS, the Persister throws the following error:
java.sql.SQLRecoverableException: IO Error: Software caused connection abort: recv failed at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1065) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1329) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584) at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3685) at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1376) at persistence.ASJdbcConnection.process(ASJdbcConnection.java:208) at persistence.ASPersister.onWrite(ASPersister.java:136) at com.tibco.as.space.impl.ASPersisterAdapter.dispatch(ASPersisterAdapter.java:76) Caused by: java.net.SocketException: Software caused connection abort: recv failed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at oracle.net.ns.Packet.receive(Packet.java:300) at oracle.net.ns.DataPacket.receive(DataPacket.java:106) at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:315) at oracle.net.ns.NetInputStream.read(NetInputStream.java:260) at oracle.net.ns.NetInputStream.read(NetInputStream.java:185) at oracle.net.ns.NetInputStream.read(NetInputStream.java:102) at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:124) at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:80) at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1137) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:290) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207) at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1044) ... 7 more java.sql.SQLRecoverableException: Closed Connection at oracle.jdbc.driver.PhysicalConnection.needLine(PhysicalConnection.java:5389)] at oracle.jdbc.driver.OracleStatement.closeOrCache(OracleStatement.java:1578) at oracle.jdbc.driver.OracleStatement.close(OracleStatement.java:1563)
When we restart the Persister, it runs fine. Why doesn't the Persister reconnect to the database after the database is restarted?
Environment: =========== ActiveSpaces 2.0.* ,ActiveSpaces 2.1.* All operating systems
Resolution: =========== The Persister implementation is up to user. If there is a restart and the onWrite fails due to a connection reference being broken, the client code needs initiate the reconnect. ActiveSpaces would not be aware that DB was down.
Issue/Introduction
Persister did not Connect to Database Automatically when the Database was restarted, keeping the Persister Running.