I have used findListIteratorByCondition successfully in the past to process
large files with no transaction in place.

By putting a TransactionUtil.begin/end around the
findListIteratorByCondition and a second TransactionUtil.begin/end around
the actual writing of the data.

This all worked just fine.  Now, with 12.04 I get a (ERROR: portal "C_xxx"
does not exist) after processing about 500 or so records (not sure of the
actual number) on the iterator.next() call.

If I remove the begin/end around the findListIteratorByCondition, everything
runs fine.  The only problem is that I get an exception report (no actual
exception) from GenericDelegator that sez (ERROR: Cannot do a find that
returns an EntityListIterator with no transaction in place.)

This is not a thrown exception, only one that is displayed in the log.

So, I have two questions.

1.  Why is it dangerous enough to not have a transaction in place to print
this exception in the log but not throw an actual exception.

2.  Given my need above (where I might spend an hour processing huge amounts
of data), what is the recommended way to use findListIteratorByCondition and
only have a transaction around the actual commits?

Thanks in Advance

Skip


Reply via email to