JDBC Connection Pooling

Diese Dokumentation erklärt, wie Sie die Verwaltung der Datenbankverbindungen über das JDBC-ConnectionPooling des Tomcat konfigurieren können. Weitere Informationen sind hier zu finden:

https://tomcat.apache.org/tomcat-9.0-doc/jdbc-pool.html

Es ist sinnvoll das Tomcat JDBC Connection Pooling zu verwenden da dies die DB wesentlich entlastet. Dazu muss die b2bbp-engine.xml angepasst werden.

b2bbp-engine.xml anpassen

Nun muss der b2bbp-engine.xml mindestens noch der Eintrag:

factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"

hinzugefügt werden.

Die Konfiguration könnte z.B. folgendermaßen aussehen:

    <?xml version="1.0" encoding="UTF-8"?>
    <Context path="/b2bbp-engine" reloadable="true" crossContext="true">
            <Resource
                            name="jdbc/b2bbp"
                            auth="Container"
                            type="javax.sql.DataSource"
                            factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
                            driverClassName="oracle.jdbc.OracleDriver"
                            url="jdbc:oracle:thin:@localhost:1521:orcl"
                            username="SYSTEM"
                            password="PASSWORD"
                            initialSize="10"
                            maxActive="50"
                            maxIdle="30"
                            minIdle="20"
                            testOnBorrow="true"
                            validationQuery="SELECT 1 FROM DUAL"
                            removeAbandoned="false"
                            testOnReturn="true"
                            testWhileIdle="true"
                            maxAge="30000"
                            validationInterval="3000"
                            timeBetweenEvictionRunsMillis="3000"
            />
    </Context>

Achtung: Der Eintrag “validationQuery=”SELECT 1 FROM DUAL”” kann je nach Datenbank variieren.

Achtung: removeAbandoned darf nicht auf “true” gesetzt sein, weil dadurch lang andauernde Datenbank-Operationen abgebrochen werden! Das kann schlimmstenfalls zur Inkonsistenz der Daten führen. Stattdessen können Connections, die lange Zeit andauern, mit suspectTimeout="3600" logAbandoned="true" geloggt werden.  

View Me   Edit Me