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.