Connection Pooling Probleme

Peregrin

Mitglied
Hallo zusammen, ich habe ein Problem mit Connection Pools. Ich benutzer eine JSF Anwendung und ein Tomcat 5.5.x. Greife auf eine DB2 zu.

Das Problem ist, das ich immer wieder nicht abbauende busy-connections habe.:suspekt:.

Habe jetzt schon mehrfach überprüft ob ich immer die Connections schließe, da habe ich zumindenst keine Fehler gefunden. Ein IBM Fachmann meint ich solle nach Select´s ein commit machen. Gesagt getan, aber da ich dieser Aussage irgendwie nichts abgewinnen konnte, blieb ich skeptisch und auch da wurde ich bestätigt, die Lösung des Problems war das nicht.

Jetzt gleich mehrere Fragen :)

Ist die context.xml so richtig ?

Code:
        <Resource name="****" auth="Container" type="javax.sql.DataSource"
        username="****" password="*****"
            driverClassName="****" url="****"
            maxActive="100" maxIdle="5" maxWait="200" removeAbandoned="true" removeAbandonedTimeout="300" logAbandoned="true"/>

Gibt es ein Tool zum auslesen welche Connections geöffnet sind und welche nicht geschlossen wurden ?

Was können noch Busy Connections auslösen ?
 
Code:
public static Connection getConnection() throws Exception {
        try {

            Context initCtx = new InitialContext();
            Context envCtx = (Context) initCtx.lookup("***");


            DataSource ds = (DataSource)
              envCtx.lookup("***");

           conn = ds.getConnection();

            return conn;
        } catch (Exception exc) {
            throw new Exception(exc);
        }
        
    }
 
Urgs... das sieht übel aus. Für jede Connection einen Lookup im Initialcontext ist mit sicherheit arg teuer. Wenn du die Connection aus der Methode herrausreichst, musst du auch sicherstellen, dass sie IN JEDEM Fall wieder ordentlich geschlossen wird. Ich vermute genau das wird an verschiedenen Stellen fehlen.

Für sauberen Datenbankzugriff empfehle ich das JdbcTemplate von Spring, siehe hier.

Gruß
Ollie
 

Neue Beiträge

Zurück