clearing the EM didn't help, but refreshing the object before the actual
update did... :-)
regards
Adam Bien wrote:
>
> Hi Xedus,
>
> you have to have an object to refresh it :-). If you clear the EM - it
> should be empty - then it is forced to load the entities from the
> database.
> Except - the second level cache is not too aggresive....
>
> thank you in advance,
>
> adam
> xedus schrieb:
>> greetings,
>>
>>
>>
>> you mean doing a refresh before doing find to update?
>> is there a way to prevent caching which i think the reason for this
>> problem....?
>>
>> thank you
>>
>>
>> Adam Bien wrote:
>>
>>> 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
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>
>
>
>
>
--
View this message in context: http://www.nabble.com/Updated-Objects-Are-Not-Being-Persisted-tp18419023p18481003.html
Sent from the java.net - glassfish persistence mailing list archive at Nabble.com.