Ask Me Help Desk

Ask Me Help Desk (https://www.askmehelpdesk.com/forum.php)
-   Java (https://www.askmehelpdesk.com/forumdisplay.php?f=440)
-   -   Hibernate Transaction commit prevents to lock another record in a loop (https://www.askmehelpdesk.com/showthread.php?t=681384)

  • Jul 11, 2012, 02:52 AM
    mishrasat3011
    Hibernate Transaction commit prevents to lock another record in a loop
    Hi,

    I have a problem with hibernate in my application. I am using a loop for processing records like example below-

    Fetch 10 records
    While()
    {
    Begin transaction
    Lock one record(using session.lock)
    Process this record
    Commit transaction
    }

    Application will run on two or more machines to access one database, this is why lock is important.

    Inside the loop everything is fine in first run, but next time when trying to lock it gets error-

    2012-07-11 05:33:02,361 ERROR [STDERR] net.sf.hibernate.exception.GenericJDBCException: Unable to perform find
    At net.sf.hibernate.exception.ErrorCodeConverter.hand ledNonSpecificException(ErrorCodeConverter.java:90 )
    At net.sf.hibernate.exception.ErrorCodeConverter.conv ert(ErrorCodeConverter.java:79)
    At net.sf.hibernate.exception.JDBCExceptionHelper.con vert(JDBCExceptionHelper.java:29)
    At net.sf.hibernate.impl.SessionImpl.convert(SessionI mpl.java:4131)
    At net.sf.hibernate.impl.SessionImpl.find(SessionImpl .java:3663)
    At net.sf.hibernate.impl.CriteriaImpl.list(CriteriaIm pl.java:238)
    At com.uniteller.switchcore.databroker.DataBroker.fet chUpdateRecord(DataBroker.java:760)
    At com.uniteller.switchcore.databroker.DataBrokerProc essor.processUpdates(DataBrokerProcessor.java:50)
    At com.uniteller.switchcore.databroker.DataBroker.run (DataBroker.java:258)
    Caused by: java.sql.SQLException: ORA-01002: fetch out of sequence

    At oracle.jdbc.dbaccess.DBError.throwSqlException(DBE rror.java:168)
    At oracle.jdbc.oci8.OCIDBAccess.check_error(OCIDBAcce ss.java:1597)
    At oracle.jdbc.oci8.OCIDBAccess.fetch(OCIDBAccess.jav a:1410)
    At oracle.jdbc.driver.OracleStatement.doExecuteQuery( OracleStatement.java:1681)
    At oracle.jdbc.driver.OracleStatement.doExecuteWithTi meout(OracleStatement.java:1870)
    At oracle.jdbc.driver.OraclePreparedStatement.execute Update(OraclePreparedStatement.java:363)
    At oracle.jdbc.driver.OraclePreparedStatement.execute Query(OraclePreparedStatement.java:314)
    At org.jboss.resource.adapter.jdbc.WrappedPreparedSta tement.executeQuery(WrappedPreparedStatement.java: 304)
    At net.sf.hibernate.impl.BatcherImpl.getResultSet(Bat cherImpl.java:89)
    At net.sf.hibernate.loader.Loader.getResultSet(Loader .java:880)
    At net.sf.hibernate.loader.Loader.doQuery(Loader.java :273)
    At net.sf.hibernate.loader.Loader.doQueryAndInitializ eNonLazyCollections(Loader.java:138)
    At net.sf.hibernate.loader.Loader.doList(Loader.java: 1063)
    At net.sf.hibernate.loader.Loader.list(Loader.java:10 54)
    At net.sf.hibernate.loader.CriteriaLoader.list(Criter iaLoader.java:118)
    At net.sf.hibernate.impl.SessionImpl.find(SessionImpl .java:3660)
    ... 4 more

  • All times are GMT -7. The time now is 10:35 AM.