Oprettet fre. d. 03. september 2010 kl. 22:12:08

fredand
fredand (6.820 point. Point ude: 180)

How to tell JPA to queue threads?

Hello guys!

We get a ORA-00054 from Oracle when we stress our application.
The exception looks like:
java.sql.SQLException: ORA-00054: resource busy and acquire with NOWAIT specified

The code that cause this is this JPA-code:

MyObject myObject =(MyObject)em.find(MyObject.class, id);
em.lock(myObject, LockModeType.WRITE);

What we want is that when several threads access this code they should wait in a nice line until they can set there own lock.
Now it looks like that next thread accessing this code it just get a exception back from oracle.

If I'm not wrong the JPA-code above do some SQL like:
select * from myobject where id = x for update nowait

We of course would like it to do something like:
select * from myobject where id = x for update wait

But how do we send the "wait"-param?

Right now I can not give information of what version of JPA we use. I just know that we use EJB 3.0 with JBoss 5.

Bets regrads
Fredrik

Skrevet man. d. 18. oktober 2010 kl. 08:33:34| #1

fredand
fredand (6.820 point)
Hello!

It turned out that our version if JPA did not support this.
We had to go to our hibernate (impl of JPA) and do:

    org.hibernate.Session session = (org.hibernate.Session) em.getDelegate();
      OurObject object = (OurObject )session.get(OurObject.class, primaryKey, org.hibernate.LockMode.UPGRADE);
     
      // Now it is possible to do our operation
      String counter = .. bla bla(object);
      em.merge(object );
     
      return counter;

Best regards
Fredrik

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

REST/JSON Java + Android

Oprettet den 25. januar 2012 kl. 22.22
arsa giver 100 point for svar | Giv et svar »

Java EE: Hjælp til projektstart

Oprettet den 23. september 2011 kl. 20.11
tjens giver 100 point for svar | Giv et svar »

Weblogic (app) med log4j?

Oprettet den 10. august 2011 kl. 14.42
sunlock giver 30 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Gør dig selv en tjeneste: Køb et ordentligt SD-kort

Der kan være meget stor hastighedsforskel på to umiddelbare ens SD-kort. Se her hvad du skal være opmærksom på, når du køber ekstra hukommelse til din mobil, tablet eller kamera.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Gratis flysimulator fra Microsoft

Den legendariske Flight Simulator fra Microsoft genopstår den 29. februar - og denne gang er spillet gratis.


Nyheder fra Computerworld

Teaser billede

Bank: Derfor er login uden NemID helt i orden

Der er ikke hold i påstanden om sikkerhedsproblemer i forbindelse med bankkunders login uden brug af NemID, lyder det fra Nykredit Bank.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger