<div dir="ltr"><div><div><div><div><div><div>Sziasztok !<br><br></div>1. A pool-ból kapott connection-t ha close()-zal zárjuk az természetesen semmiféle ResultSet-et, Statement-et nem zár le, ezt ki is próbálhatjátok. Annyi a hatása hogy visszakerül a pool-ba. Sőt nekem az a gyanúm ha egy nyitott tranzakció van, akkor aki újból kiveszi a pool-ból az tudja commit-álni vagy rollback-elni :), de ez utóbbiról azért nem győzödtem még meg.<br><br></div>2. Itt nálunk az Oracle-ben 200 cursor lehet, tegnap tesztelgettem, ez a default.<br><br></div>3. Valóban csak gány megoldások vannak, tegnap a glassfish-nél találtam olyan beállítást ami valóban ellenőrzi hogy a pool-ban visszatett connection-ban nincsenek lezárva Statement-ek és Resultset-ek, és ha kérjük a glassfisht, akkor ezeket el tudja dobni. Erre két beállítás van, az egyik hogy mennyi időközönként fusson az ellenőrzés, a másik pedig hogy fusson-e. De ez valóban tákolmány szerintem.<br><br></div>4. Természetesen a hibát úgy lehet produkálni, hogy kivessszük a &quot;rossz&quot; connection-t a pool-ból, és ahogy az első ResultSet-et akarjuk nyitni már exception keletkezik a túl sok nyitott ResultSet miatt. Ha várunk perceket ez a connection akkor is szar lesz és a glassfish soha nem javítja meg (na jó, nem vártam vele órákat), kivéve ha a glassfish-ben alkalmazzuk a 3. pontot, ami megjavítja:<br>

<p class="MsoNormal"><br></p><p class="MsoNormal">Glassfish beállítás: JDBC Connection Pools -&gt; Connection
Settings</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal"><b><span style="color:rgb(192,0,0)">Statement Leak Timeout: 10
Seconds</span></b></p>

<p class="MsoNormal"><b><span style="color:rgb(192,0,0)">Statement Leak Reclaim:
igen  </span></b></p>

<br></div>Amúgy van olyan beállítás is hogy connection leak timeout...<br><br></div>Joe<br></div><div class="gmail_extra"><br><div class="gmail_quote">2016. április 27. 4:59 Suller Andras írta, <span dir="ltr">&lt;<a href="mailto:suller.andras@gmail.com" target="_blank">suller.andras@gmail.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Nem irtad, hogy ez a hiba az elso select lefuttatasakor jon-e elo,<br>
vagy a kesobbiek folyaman? Determinisztikusan elo tudod-e idezni ezt a<br>
hibat?<br>
<br>
A default beallitasokkal 50 cursor lehet megnyitva egyszerre. Ezt<br>
normal mukodes kozben sem olyan nehez elerni, szoval elso korben<br>
megemelnem ezt az erteket, aztan hatha ez megoldja.<br>
Ahogy Adrian irta, a connection pool valoszinuleg lezarogatja a<br>
resultset-eket, ez nem kellene hogy gondot okozzon.<br>
<br>
Bovebb info pl itt:<br>
<a href="https://stackoverflow.com/questions/2560350/oracle-doesnt-remove-cursors-after-closing-result-set/" rel="noreferrer" target="_blank">https://stackoverflow.com/questions/2560350/oracle-doesnt-remove-cursors-after-closing-result-set/</a><br>
<span class="HOEnZb"><font color="#888888"><br>
Andras<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
2016-04-26 20:30 GMT+08:00 József Keresztes &lt;<a href="mailto:xesj.hu@gmail.com">xesj.hu@gmail.com</a>&gt;:<br>
&gt; Sziasztok !<br>
&gt;<br>
&gt; Van egy webalkalmazás, az Oracle adatbázis kapcsolatok pool-ban üldögélnek.<br>
&gt; Az egyik folyamat kivesz egy Connection-t a pool-ból, de abban nincsenek<br>
&gt; tisztességesen lezárva a ResultSet-ek, így amikor szerencsétlen szeretne egy<br>
&gt; ResultSet-et kapni akkor az Oracle beint neki:<br>
&gt;<br>
&gt; java.sql.SQLException: ORA-01000: maximum open cursors exceeded<br>
&gt;<br>
&gt; A kérdés lerágott csont, természetesen úgy kell programozni hogy mindig<br>
&gt; mindent szépen lezárunk stb stb stb.<br>
&gt;<br>
&gt; DE ! Tényleg nincs arra mód hogy amikor valaki kivesz a pool-ból egy<br>
&gt; connection-t akkor valami &quot;tisztogatás&quot; félét hajtson végre rajta, tehát<br>
&gt; rögtön ezzel kezdjen, és így függetlenné váljon attól hogy milyen állapotú<br>
&gt; connection-t hagytak neki a pool-ban ? Sajnos hiába kezd rögtön rollback-el,<br>
&gt; vagy setHoldability(0)-lal, ez nincs hatással rá. Valszeg nincs is rá<br>
&gt; megoldás, de hátha Ti mégis megoldottátok ezt a dolgot.<br>
&gt;<br>
&gt; Joe<br>
&gt;<br>
</div></div><div class="HOEnZb"><div class="h5">&gt; _______________________________________________<br>
&gt; Javalist mailing list<br>
&gt; <a href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a><br>
&gt; <a href="http://lists.javaforum.hu/mailman/listinfo/javalist" rel="noreferrer" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
&gt;<br>
_______________________________________________<br>
Javalist mailing list<br>
<a href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a><br>
<a href="http://lists.javaforum.hu/mailman/listinfo/javalist" rel="noreferrer" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
</div></div></blockquote></div><br></div>