2016-05-13 2 views
1

J'ai des applications Java déployées sur Jboss eap 6.3 dans redhat 6 connecté à Oracle 11g. J'utilise la connexion jdbc comme ceci:Délai de connexion à la base de données jboss au repos dans 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> 

Si ce ralenti application en quelques heures et nous avons essayé d'interroger la base de données int, délai de connexion de base de données IO se produisent.

Dans mon enquête, je suppose que le pare-feu réseau a bloqué cette connexion si aucun trafic à l'intérieur. Ma question est de savoir comment faire face à un pare-feu réseau? Y at-il un paramètre à ajouter à l'intérieur de la connexion jndi dans la configuration jboss xml?

Répondre

0

Salut @squallbayu pas à 100% sûr que cela pourrait aider, et vous avez probablement déjà résolu le problème mais selon notre DBA enable=broken ne fonctionne que si DCD Dead Connection Detection est activé sur le serveur de base de données, notre serveur (s) Oracle APD. Ce fichier PDF d'Oracle Dead Connection Detection peut vous aider, vous ou vos administrateurs de base de données, à configurer le système et il existe également une note Oracle 1641167.1 qui le décrit.

Le Aperçu exécutif est:

détection Dead Connection (DCD) est une caractéristique d'Oracle Net qui aide à récupérer les ressources allouées à une connexion qui ne sont plus utilisables. DCD a été amélioré dans Oracle Database 12c pour réduire considérablement le temps de détection d'environ 15 minutes à 2-3 minutes. Ce document [le lien PDF] donne un aperçu des 12c et des mécanismes de pré-12c DCD, les détails de configuration et les avantages du mécanisme 12c

En bref sa mise essentiellement sqlnet.expire_time à quelque chose comme 10 minutes dans la base de données SQLNET Fichier .ORA.