cig
Sep 16th, 2004, 09:38 AM
Hi
I am using Spring with kodo JDO. I am trying to get the programmatic transaction management working. The code I use looks as follows:
protected void doStore(final SPJDeal dealForAddition) {
TransactionTemplate tt = new TransactionTemplate(ptm);
tt.setPropagationBehavior(TransactionDefinition.PR OPAGATION_REQUIRED);
tt.execute(new TransactionCallback() {
public Object doInTransaction(TransactionStatus transStatus) {
return new JdoTemplate(pmf).execute(new JdoCallback() {
public Object doInJdo(PersistenceManager pm) throws JDOException {
dealsHolder.add(dealForAddition);
return null;
}
});
}
});
}
This code (from what I can see) is exactly the same as the code in the Spring test case for JdoTransactionManagerTests#testTransactionCommit() .
However when I run it, I get the following exception:
There is no active transaction running for (0:0-2601#0, 125)
at com.poet.rt.db.JDOBindingSupport.noActiveTransacti on(Unknown Source)
at com.poet.rt.db.LocalPersistenceManager.writeFieldO utsideTransaction(Unknown Source)
at com.poet.rt.db.LocalStateManager.makeDirty(Unknown Source)
at com.poet.rt.db.tracked.TrackedObjectHelper.jdoMake Dirty(Unknown Source)
at com.poet.rt.db.tracked.TrackedArrayList.jdoMakeDir ty(Unknown Source)
at com.poet.rt.db.tracked.TrackedArrayList.preWrite(U nknown Source)
at com.poet.rt.db.tracked.TrackedArrayList.add(Unknow n Source)
at za.co.rmb.spj.deals.domain.DealsHolder.add(DealsHo lder.java:26)
at za.co.rmb.spj.deals.session.JdoDealRepository$2.do InJdo(JdoDealRepository.java:148)
at org.springframework.orm.jdo.JdoTemplate.execute(Jd oTemplate.java:130)
at za.co.rmb.spj.deals.session.JdoDealRepository$1.do InTransaction(JdoDealRepository.java:145)
at org.springframework.transaction.support.Transactio nTemplate.execute(TransactionTemplate.java:114)
at za.co.rmb.spj.deals.session.JdoDealRepository.doSt ore(JdoDealRepository.java:143)
at za.co.rmb.spj.deals.session.JdoDealRepository.stor e(JdoDealRepository.java:136)
at za.co.rmb.spj.deals.session.StoreTask.execute(Stor eTask.java:29)
I would be very gratefull if anybody could help me out.
thanks
I am using Spring with kodo JDO. I am trying to get the programmatic transaction management working. The code I use looks as follows:
protected void doStore(final SPJDeal dealForAddition) {
TransactionTemplate tt = new TransactionTemplate(ptm);
tt.setPropagationBehavior(TransactionDefinition.PR OPAGATION_REQUIRED);
tt.execute(new TransactionCallback() {
public Object doInTransaction(TransactionStatus transStatus) {
return new JdoTemplate(pmf).execute(new JdoCallback() {
public Object doInJdo(PersistenceManager pm) throws JDOException {
dealsHolder.add(dealForAddition);
return null;
}
});
}
});
}
This code (from what I can see) is exactly the same as the code in the Spring test case for JdoTransactionManagerTests#testTransactionCommit() .
However when I run it, I get the following exception:
There is no active transaction running for (0:0-2601#0, 125)
at com.poet.rt.db.JDOBindingSupport.noActiveTransacti on(Unknown Source)
at com.poet.rt.db.LocalPersistenceManager.writeFieldO utsideTransaction(Unknown Source)
at com.poet.rt.db.LocalStateManager.makeDirty(Unknown Source)
at com.poet.rt.db.tracked.TrackedObjectHelper.jdoMake Dirty(Unknown Source)
at com.poet.rt.db.tracked.TrackedArrayList.jdoMakeDir ty(Unknown Source)
at com.poet.rt.db.tracked.TrackedArrayList.preWrite(U nknown Source)
at com.poet.rt.db.tracked.TrackedArrayList.add(Unknow n Source)
at za.co.rmb.spj.deals.domain.DealsHolder.add(DealsHo lder.java:26)
at za.co.rmb.spj.deals.session.JdoDealRepository$2.do InJdo(JdoDealRepository.java:148)
at org.springframework.orm.jdo.JdoTemplate.execute(Jd oTemplate.java:130)
at za.co.rmb.spj.deals.session.JdoDealRepository$1.do InTransaction(JdoDealRepository.java:145)
at org.springframework.transaction.support.Transactio nTemplate.execute(TransactionTemplate.java:114)
at za.co.rmb.spj.deals.session.JdoDealRepository.doSt ore(JdoDealRepository.java:143)
at za.co.rmb.spj.deals.session.JdoDealRepository.stor e(JdoDealRepository.java:136)
at za.co.rmb.spj.deals.session.StoreTask.execute(Stor eTask.java:29)
I would be very gratefull if anybody could help me out.
thanks