Exception - kann mit der Fehlermeldung nix anfangen

Status
Nicht offen für weitere Antworten.

bambi

Bekanntes Mitglied
Also ich arbeite mit EJB's und so...

Was ich mache ist: ich habe einen TimerTask, der mir 1x pro Stunde Daten aus einer DB holt (per findAll() ), die dann etwas "bearbeitet" und in eine HashMap schreibt. Diese Map schreib ich dann in den Cache und arbeite dann damit weiter...

Mein Problem ist jetzt: wenn ich den Server ein paar Stunden laufen lasse, dann bekomme ich eine Exception und es geht gar nix mehr:

Code:
>> ... Exception caught while extracting/merging data java.rmi.RemoteException: EJB Exception: ; nested exception is: 
	javax.ejb.EJBException: EJB Exception: : weblogic.jdbc.extensions.PoolLimitSQLException: weblogic.common.resourcepool.ResourceLimitException: No resources currently available in pool cedPool to allocate to applications, please increase the size of the pool and retry..
	at weblogic.jdbc.common.internal.JDBCUtil.wrapAndThrowResourceException(JDBCUtil.java:203)
	at weblogic.jdbc.jts.Driver.newConnection(Driver.java:707)
	at weblogic.jdbc.jts.Driver.createLocalConnection(Driver.java:197)
	at weblogic.jdbc.jts.Driver.connect(Driver.java:155)
	at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:305)
	at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.getConnection(RDBMSPersistenceManager.java:2247)
...

und dann stuendlich...

Code:
In createCacheMap(): FinderException javax.ejb.FinderException: Couldn't get connection: 
weblogic.jdbc.extensions.PoolLimitSQLException: weblogic.common.resourcepool.ResourceLimitException: No resources currently available in pool myPool to allocate to applications, please increase the size of the pool and retry..
weblogic.jdbc.extensions.PoolLimitSQLException: weblogic.common.resourcepool.ResourceLimitException: No resources currently available in pool myPool to allocate to applications, please increase the size of the pool and retry..
	at weblogic.jdbc.common.internal.JDBCUtil.wrapAndThrowResourceException(JDBCUtil.java:203)
	at weblogic.jdbc.jts.Driver.newConnection(Driver.java:707)
	at weblogic.jdbc.jts.Driver.createLocalConnection(Driver.java:197)
	at weblogic.jdbc.jts.Driver.connect(Driver.java:155)
	at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:305)
	at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.getConnection(RDBMSPersistenceManager.java:2247)
...

Also ich habe noch nicht so viel mit dem TimerTask gearbeitet. Ich schaetze mal, dass ich irgendwo was loeschen/schliessen muesste und es halt nicht tu... Muss ich irgendwo ejbRemove aufrufen?

Bin fuer jede Idee dankbar!
THX B.
 

Bleiglanz

Gesperrter Benutzer
(per findAll() ), die dann etwas "bearbeitet" und in eine HashMap schreibt.
klarer Fall von Design kaputt

ich geh mal von Local-Homes und so aus, ist aber Remote genau so

=> mit findAll holst du dir eine Collection der Local-Interfaces

die enzelnen Objektinstanzen in dieser Collection sind LIVE, wenn du die alle in eine Hash-Map legst, sind effektiv alle Zugriffe auf den ganzen Schamott gesperrt?!

Wenn die Entities etwa mit Trasaktion REQUIRED laufen, wird eine Transaktion aufgemacht (und damit auch eine Datenbankverbindung) -> wenn du also diese Dinger nie wieder aufgibst wirds problematisch

wenn du ejbRemove auf einer Entity aufrufst, wird die in der Datenbank gelöscht, mach das lieber nicht...

Verwende ValueObjects, kopiere alle Einträge in der Collection und leg diese Kopien in deine HashMap!
 

bambi

Bekanntes Mitglied
Oh sorry, hatte ich vergessen zu sagen:

Also ich lege nicht die Objekte in der HashMap ab. Beim "bearbeiten" erzeuge ich mir zu jeder Instanz eine JavaBean. (Kopiere die Daten der EntityBean in eine JavaBean. Mit diesen JavaBeans arbeite ich dann auch und kopiere die in die Map. Sollte also nicht das Problem sein, oder?

Was mir auch gerade aufgefallen ist: es laeuft wieder - keine Ahnung warum. Ich habe den Server definitiv nicht restartet. Es ist also einfach von 10 Uhr abends bis 10 Uhr morgens - (hab' hier 'ne kleine Zeitverschiebung zu Deutschland) nicht gelaufen.
Arghhhhh... Das wird immer verrueckter. Muss dass aber natuerlich trotzdem irgendwie fixen - "Noe sorry Leute - das leuft jetzt die naechsten 12 Stunden halt mal nicht - iss halt so." - zaubert sicher meinem Chef nicht grad ein Laecheln auf's Gesicht...

Hat jemand 'ne Idee? Wie gesagt: bin fuer JEDE Idee dankbar... :bahnhof:
 

Bleiglanz

Gesperrter Benutzer
Irgendwo ein Leck, jemand schliesst eine Connection nicht

Ins Logfile schauen ob irgendwo Exceptions autauchen (ein erster anstatzpunkt)

Suche im code nach verschluckten Exceptions
Code:
catch(Exception e){}
und wenn du sowas findest, geh zum zuständiger Progger und verpass ihm ein paar Ohrfeigen

=> such mal nach BMP Entities oder Sessions, bei denen direkt mit der DB kommuniziert wird

oft ein conn.close() vergessen; oder man hat
Code:
...
    rs.getString(1);
    /// jetzt wilder Code
    conn.close()
...
=> wenn der wilde Code eine Ex wirft, dann wird conn.close() icht mehr aufgerufen (sollte immer in finally stehen)

wirf mal einen Profiler/Tracer auf der DB an und schau zu, welche Verbindungen wann aufgebaut werden [hilft aber oft nix, weil der Appserver einfach seinen pool aufbaut...]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S OpenJPA-Exception beim Tomee Allgemeines EE 0
P DTO, JPA Implementierungen, Exception Handling Allgemeines EE 6
P Kann jemand mit dieser Exception was anfangen? (JBoss) Allgemeines EE 5
S Servlet.service() threw exception Allgemeines EE 4
G Exception beim versenden einer Mail Allgemeines EE 3
MQue Session Exception Allgemeines EE 5
K Exception: getOutputStream() has already been called Allgemeines EE 8
A merkwürdige Exception in JSF Allgemeines EE 3
G JSF Exception: Could not retrieve value of component . Allgemeines EE 14
M Error Page exception Allgemeines EE 2
G Exception creating bean of class . (Struts) Allgemeines EE 8
T Warum wirft der mir diese Exception? Allgemeines EE 4
G BeanBox J2SE v 1.4 exception Allgemeines EE 5
G hartnäckige NullPointer Exception in Servlet - wieso finde. Allgemeines EE 6
C [JSP] errorpage: Zugriff auf exception-Objekt Allgemeines EE 2
L JSP Fehlermeldung bei Verwendung von Java-Expression-Language Allgemeines EE 8
O Hibernate Fehlermeldung bei start des Servers Allgemeines EE 2
Kenan89 Fehlermeldung bei misslungener Anmeldung Allgemeines EE 8
D Fehlermeldung hs_err_pid4104 - Editor Allgemeines EE 8
Y JSF Komische Fehlermeldung nach Deployment und Serverstart Allgemeines EE 5
B Fehlermeldung beim ausführen des Clients // Need Help Allgemeines EE 2
B ich kann mit dieser fehlermeldung nix anfangen? Allgemeines EE 5
K Dateipfad in Fehlermeldung nicht nachvollziehbar Allgemeines EE 3
K Fehlermeldung bei Serverapplikation Allgemeines EE 3
F Fehlermeldung beim redirect in der JSP Allgemeines EE 4
M Fehlermeldung von Class an anderes Servlet und dann in JSP Allgemeines EE 5
G jboss fehlermeldung Allgemeines EE 4
N Validierung:häßliche Fehlermeldung, wie überschreibe ich sie Allgemeines EE 4
F kryptische Fehlermeldung Allgemeines EE 2
B Sun Application Server 8 --- Nichtsaussagende Fehlermeldung Allgemeines EE 2
D Login - unbekannte Fehlermeldung Allgemeines EE 3
A jee 5 anfangen Allgemeines EE 2

Ähnliche Java Themen

Neue Themen


Oben