persistence@glassfish.java.net

Re: Updated Objects Are Not Being Persisted

From: Adam Bien <abien_at_adam-bien.com>
Date: Sat, 12 Jul 2008 15:02:53 +0200

Hi Xedus,

and you do it inside a TX? Try to clear the EM before reading,

adam
xedus schrieb:
> Hello everyone,
>
> i'm runing a printing queue web service on glassfish v2, the clients ask for
> thier printing jobs and the server send it to them. After each successful
> print the client invoke a web service method to flag that certain job as
> being "done" so that the client will not have it sent to him again the next
> round when it askes for available printg jobs...
>
> it hapens many times that the new status "done" will not persist to the data
> base which leads to the pritnig job being sent over and over again.
>
> i tried container managed transactions and bean managed transaction with the
> same result. i even tried em.flush(), but no luck.....
>
> i'm using oracle toplink..
>
> here is how the code looks like .....
>
> .
> .
> .
> private void persist(Object obj){
> try{
> //ut.begin();
> //em.merge(obj);
> em.persist(obj);
> //ut.commet();
> }catch(Exception ex){ ...}
> }
> @webmethod
> public boolean markJobAsDone(long jobID){
> try{
> PrintingJob aJob = em.find(PrintingJob.class,jobID);
> aJob.setStatus("done");
> persist(aJob);
> }catch(Exception ex){
> return false;
> }
> return true;
> }
>
>
>
> also the clients are asking for jobs every 30 seconds
> another question, is there any other aproach to these queues and jobs?
>
> please help
>
>
>
> i just wanted to add that i can recreate the problem simply by changing the
> status of a job manualy form "SQL Developer" for example from "Done" to
> "pending" and the job will keep beibg sent and will never be set to "Done"
> again....
>
>


-- 
 Consultant, Author, Java Champion
 
 Homepage: www.adam-bien.com
 Weblog: blog.adam-bien.com
 eMail:  abien_at_adam-bien.com
 Mobile: 0049(0)170 280 3144
 Books: Enterprise Architekturen (ISBN: 393504299X),
        Java EE 5 Architekturen  (ISBN: 3939084247),
        J2EE Patterns, J2EE Hotspots, Enterprise Frameworks and Struts