Áno, je to lock v Oracle. To sme medzičasom zistili. Ale prečo vzniká???

Spring má nakonfigurovaný dataSource, ktorý použije OracleDataSource, Hibernate si vezme takto vytvorený dataSource a viac sa o databázu nestarám. Hibernate vytvára príkazy a prípadné transakcie. Kto má uvoľniť prípadný lock? Zrejme by sa mal uvoľniť, keď Hibernate uvoľní statement. Ale toto tam určite je.

Skúsim nastaviť nejaké time-outy pre ten OracleDataSource. Default ich má nastavené na 0. Typický Oracle :-)

Aj tak dík,
Rastislav "Bedo" Siekel


Ing. Rastislav Siekel
Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia
E-mail : <[email protected]>
Tel : 041/562 54 91
Fax : 041/562 54 97
Mobil : 0905 34 00 20


Pavel Savara wrote:
Tipl bych to na lock v databazi. Databaze umi rict jaky lock a na cem drzi a con na to ceka tam bych se podival. Jinak vetsinou rowlevel na problemove tabulce pomuze.

Pavel

2009/2/18 Rastislav Siekel <[email protected]>
Zdravím vospolok,

chcel by som sa spýtať, či už niekto neriešil takýto problém:
Na jednom Tomcate som si spravil kópiu web aplikácie kvôli testovaniu novej verzie. Každá z týchto dvoch aplikácií používa OracleDataSource, ktorý majú nastavený do rovnakej DB. Odvtedy sa niekedy aplikácia správa ako pri dead-lock. SQL príkazy typu SELECT prejdú, ale pri INSERT alebo disable autocommit sa zastaví vykonávanie príkazu bez akejkoľvek chybovej hlášky. Thread, ktorý spracoval ten HTTP request je v stave wait (v Tomcat manager console má status "service"). Debugovanie proste na tom riadku zastaví a čaká a čaká (aj niekoľko desiatok minút).

Neriešil to už niekto?

Aplikácia beží na Tomcat-e na Linux-e, používam Hibernate a Ten DataSource má nastavené akurát
- connectionCachingEnabled na TRUE
- implicitCachingEnabled na TRUE
Oracle driver je vo verzii 10.2.0.2.0

R.



Ing. Rastislav Siekel
Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia
E-mail : <[email protected]>
Tel : 041/562 54 91
Fax : 041/562 54 97
Mobil : 0905 34 00 20

Odpovedet emailem