You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Ron Grimes <rg...@sinclairoil.com> on 2010/07/29 17:48:05 UTC

Thread Question

First, forgive me for cross-posting. This should be on the Spring forum, but I couldn't get any responses. So, I'm hoping someone here might be able to enlighten me.

My environment is Spring/CXF framework in a jdk 6 jvm, using JPA with Eclipselink for persistence.

I have written a process to daily map 20-30K XML nodes to corresponding transaction tables in DB2. The main class that drives this application spawns about a dozen DAO threads, which wakes up periodically to read an ArrayDeque that the main class populates with XML nodes that the given DAO should map and persist to DB2.

When the daily job is done, each of the threads go into a wait state, and the next day, when the process fires off again, the main class issues to each DAO thread a notify so that they wake up again and begin processing the ArrayDeque.

So far, so good. However, everything executes without error, but nothing actually persists to the DB2. Obviously, the frameworks and DAO threads are still active in the JVM instance. The EntityManagerFactory is still active, but something is missing, or has detached, from the original run so that the em.persist, although it executes without error, it doesn't actually save anything.

To fix this, in the interim, I restart the JVM every morning at 3am because the original run of this program works fine. It's the subsequent one that fails.  Btw, I've deployed this app as a web app so that it can be remotely invoked if necessary. So, obviously, it uses the all the ApplicationContext wiring.

Any help is greatly appreciated.

Ron Grimes