db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rahul <rahul_r_budhir...@rediffmail.com>
Subject org.datanucleus.exceptions.NucleusObjectNotFoundException: No such database row
Date Tue, 10 Apr 2012 09:43:58 GMT
Hi,

I have written a program to insert list of records (around 2000 records) in
oracle database using JDO.

While most of these records gets inserted sucessfully some records (around
30 records) are not getting inserted.

Following error message are thrown in log file. 

javax.jdo.JDOException: Transaction failed to commit
NestedThrowables:
org.datanucleus.exceptions.NucleusObjectNotFoundException: No such database
row'. Here was the line
'M.;CHARON;;GEORGES;g.charon@siela.com;;0608996418;SIELA;5 RUE DES
ORFEVRES;LES
SORINIERES;44840;17;;0240057171;0240057071;;;;376170;intimacy;TRUE;FALSE;21/03/2012;;TRUE;;;Batiment'
javax.jdo.JDOException: Transaction failed to commit
	at
org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:434)
	at
org.datanucleus.jdo.JDOPersistenceManager.close(JDOPersistenceManager.java:286)




NestedThrowablesStackTrace:
No such database row
org.datanucleus.exceptions.NucleusObjectNotFoundException: No such database
row
	at
org.datanucleus.store.rdbms.request.FetchRequest.execute(FetchRequest.java:330)
	at
org.datanucleus.store.rdbms.RDBMSPersistenceHandler.fetchObject(RDBMSPersistenceHandler.java:240)
	at
org.datanucleus.jdo.state.JDOStateManagerImpl.loadFieldsFromDatastore(JDOStateManagerImpl.java:1929)
	at
org.datanucleus.jdo.state.JDOStateManagerImpl.loadUnloadedFieldsInFetchPlan(JDOStateManagerImpl.java:1664)
	at
org.datanucleus.jdo.state.JDOStateManagerImpl.detach(JDOStateManagerImpl.java:3660)
	at
org.datanucleus.ObjectManagerImpl.performDetachAllOnTxnEnd(ObjectManagerImpl.java:3587)
	at
org.datanucleus.ObjectManagerImpl.postCommit(ObjectManagerImpl.java:3658)
	at
org.datanucleus.TransactionImpl.internalPostCommit(TransactionImpl.java:554)
	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:325)
	at
org.datanucleus.ObjectManagerImpl.performDetachOnClose(ObjectManagerImpl.java:3638)
	at org.datanucleus.ObjectManagerImpl.close(ObjectManagerImpl.java:850)
	at
org.datanucleus.jdo.JDOPersistenceManager.close(JDOPersistenceManager.java:276)


Some observations noted :
 When JDO performs a close following methods are invoked in the order shown
in logs.

close
performDetachOnClose
commit

internalPostCommit
postCommit
performDetachAllOnTxnEnd
detach

*loadUnloadedFieldsInFetchPlan
loadFieldsFromDatastore
fetchObject
FetchRequest.execute*


Why does JDO load files again and perfroms a fetch on close.

I have applied the logic for JDO (Detach All On Commit) as suggested in link
below 

http://db.apache.org/jdo/attach_detach.html

I am trying to investigate this issue since few days but did not get any
breakthrough ,  Can any one please guide me what investigation needs to be
done further to resolve this issue.

Thanks in Advance.

Regards,
Rahul

--
View this message in context: http://apache-jdo.2283334.n4.nabble.com/org-datanucleus-exceptions-NucleusObjectNotFoundException-No-such-database-row-tp4545072p4545072.html
Sent from the JDO - Development mailing list archive at Nabble.com.

Mime
View raw message