2009-07-17 14 views
0

Ich habe eine Frage im Zusammenhang mit Prepared Steatment Pooling (über alle Verbindungen). Hier ist die Konfigurationsdateijboss Verbindung Pooling

<datasources> 
    <local-tx-datasource> 
    <jndi-name>JNDI-NAME</jndi-name> 
    <connection-url>jdbc:mysql://<server_name>/<database_name>?useServerPrepStmts=true</connection-url> 
    <driver-class>com.mysql.jdbc.Driver</driver-class> 
    <user-name>xxx</user-name> 
    <password>xxxxx</password> 
    <min-pool-size>10</min-pool-size> 
    <max-pool-size>20</max-pool-size> 
    <idle-timeout-minutes>20</idle-timeout-minutes> 
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name> 
    <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name> 
    <background-validation>true</background-validation> 
    <background-validation-minutes>5</background-validation-minutes> 
    <prepared-statement-cache-size>100</prepared-statement-cache-size> 
    <share-prepared-statements>true</share-prepared-statements> 
    <!-- sql to call when connection is created 
    <new-connection-sql>some arbitrary sql</new-connection-sql> 
     --> 
    <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers 
    <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql> 
     --> 
    <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml --> 
    <metadata> 
     <type-mapping>mySQL</type-mapping> 
    </metadata> 
    </local-tx-datasource> 
</datasources> 

Es scheint, dass diese Linie:

<background-validation-minutes>5</background-validation-minutes> 

verursacht keine Probleme mit Prepared Statements, aber:

<idle-timeout-minutes>20</idle-timeout-minutes> 

Ursachen, die alle Verbindungen entfernt und neu erstellt, wenn in den letzten 20 Minuten kein Verkehr stattgefunden hat. Aus diesem Grund werden vorhandene vorbereitete Anweisungen aus dem Pool der zwischengespeicherten vorbereiteten Anweisungen entfernt. Wie überwinde ich dieses Problem? Ich muss Idle-Timeout-Minuten verwenden, weil MySQL Server die Verbindung nach 8h schließt

Antwort

0

Set Idle Timeout = 480 Minuten?