Ich habe Java-Anwendungen auf Jboss eap 6.3 in redhat 6 mit Oracle 11g verbunden bereitgestellt. ich verwende jdbc Anschluss wie folgt aus: auftretenjboss Datenbankverbindung Zeitüberschreitung im Leerlauf in Oracle
<datasource jta="true" jndi-name="java:/jdbc/myjdbc" pool-name="myConfigDS" enabled="true" use-java-context="true" use-ccm="false" statistics-enabled="true">
<connection-url>jdbc:oracle:thin:@(DESCRIPTION=(enable=broken)(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=MYSERVICENAME)))</connection-url>
<connection-property name="oracle.net.CONNECT_TIMEOUT">
10000
</connection-property>
<driver>oracle</driver>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>30</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>myusername</user-name>
<password>mypassword</password>
</security>
<validation>
<check-valid-connection-sql>SELECT 1 FROM DUAL</check-valid-connection-sql>
<background-validation>true</background-validation>
<background-validation-millis>60000</background-validation-millis>
<stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/>
</validation>
<timeout>
<blocking-timeout-millis>5000</blocking-timeout-millis>
<idle-timeout-minutes>15</idle-timeout-minutes>
</timeout>
</datasource>
Wenn das App im Leerlauf in mehreren Stunden und wir haben versucht, int Datenbank, Datenbank-IO-Verbindung Timeout abzufragen.
In meiner Untersuchung gehe ich davon aus, dass die Netzwerkfirewall diese Verbindung blockiert, wenn kein Verkehr darin ist. Meine Frage ist, wie man mit der Netzwerk-Firewall umgehen? Gibt es einen Parameter, der innerhalb der jboss xml-Konfiguration innerhalb der jndi-Verbindung hinzugefügt werden kann?