1 Reply Latest reply on Jul 24, 2009 10:07 AM by mazz

    ora tx recovery encountering

    mazz

      Has anyone encountered an Oracle exception "java.sql.SQLException: Got minus one from a read call" during what appears to be a tx recovery attempt? See stack below.

      Things were going fine for about a day, then we got that error.

      BTW: for some background - we purposefully tuned DOWN our Oracle (lowered PGA and SGA spaces) to try to test its effect (we think we will expect to see degraded performance on Oracle - so getting tx failures does not surprise us), however, this error during tx recovery is a new one to us. Not sure what its trying to tell us.

      2009-07-23 22:13:31,953 WARN [com.arjuna.ats.jta.logging.loggerI18N] [com.arjuna.ats.internal.jta.recovery.getxaresource] Caught:
      java.sql.SQLException: Got minus one from a read call
       at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
       at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:131)
       at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:197)
       at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:525)
       at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:413)
       at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:508)
       at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:203)
       at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)
       at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:510)
       at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:275)
       at oracle.jdbc.xa.client.OracleXADataSource.getPooledConnection(OracleXADataSource.java:454)
       at oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:159)
       at oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:105)
       at org.rhq.jbossatx.jta.recovery.AppServerJDBCXARecovery.createConnection(AppServerJDBCXARecovery.java:233)
       at org.rhq.jbossatx.jta.recovery.AppServerJDBCXARecovery.getXAResource(AppServerJDBCXARecovery.java:110)
       at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.resourceInitiatedRecovery(XARecoveryModule.java:683)
       at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkSecondPass(XARecoveryModule.java:179)
       at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWork(PeriodicRecovery.java:237)
       at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:163)
      Caused by: oracle.net.ns.NetException: Got minus one from a read call
       at oracle.net.ns.Packet.receive(Packet.java:243)
       at oracle.net.ns.NSProtocol.connect(NSProtocol.java:259)
       at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:966)
       at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:292)
       ... 14 more


        • 1. Re: ora tx recovery encountering
          mazz

          Some info I gathered on this via other channels... so this thread isn't dangling, I'll post here:

          It's not recovery specific, it's related to connection establishment. problem allocating enough resource to service the connection, or a network fault maybe. Need to check the oracle server logs, it may log the connection failure or resource exhaustion.

          Oracle is probably trying to allocation a fair chunk of memory for connection specific work - guess is that is the problem and the driver's error handling is not elegant enough to report it cleanly.

          This error started occurring when we purposefully dropped our PGA and SGA sizes to about 10% what they were before. So, if you have this problem, it could be solved by increasing those parameters.