Précédent   Forum du club des développeurs et IT Pro > Java > Serveurs, conteneurs, et Java EE > Tomcat
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 17/12/2012, 11h08   #1
thierryler
Rédacteur
 
Avatar de thierryler
 
Homme Thierry Leriche-Dessirier
Inscription : octobre 2007
Messages : 2 161
Détails du profil
Informations personnelles :
Nom : Homme Thierry Leriche-Dessirier
Localisation : France

Informations forums :
Inscription : octobre 2007
Messages : 2 161
Points : 5 925
Points : 5 925
Par défaut Perte de mes connexions Oracle après une période d'inactivité

Bonjour à tous,

J'ai configuré un pool de connexions dans Tomcat 7 (Java 6) :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
<Resource auth="Container" 
driverClassName="oracle.jdbc.driver.OracleDriver" 
name="jdbc/ds_monprojet"
logAbandoned="true"  
initialSize="10" 
minIdle="10"  
maxActive="20" 
maxIdle="20" 
maxWait="10000"
password="PASS" 
type="javax.sql.DataSource" 
url="jdbc:oracle:thin:@host:1521:SID" 
username="USER"
autoReconnect="true" 
removeAbandoned="true" 
testOnBorrow="true" 
testOnReturn="true" 
validationQuery="select 1 from dual" 
validationQueryTimeout="10"  />
Comme vous le voyez, je m'acharne sur les param...

En fait, le pool fonctionne super bien. Mais après 45 min (voire moins) d'inactivité, c'est comme si toutes les connexions étaient mortes.

En gros tant que je les utilise, elles fonctionnent, ce qui me fait penser que je n'ai pas de fuite de connexion. Mais dès que je reste trop longtemps inactif, elles ne fonctionnent plus...

Je n'ai ce problème que depuis que j'ai déployé en intégration. Ca marche ben en Dev. Ça peut donc venir du Tomcat, du réseau, du Oracle, de plein de trucs.

Quelqu'un aurait des pistes intéressantes ?
__________________
Thierry Leriche-Dessirier
Ingénieur Architecte JEE Freelance
Rédacteur pour Developpez
Professeur de Génie Logiciel à l'ESIEA

Page sur Developpez : http://thierry-leriche-dessirier.developpez.com
Site : http://www.icauda.com
Linked'in : http://www.linkedin.com/in/thierryler
Twitter : http://www.twitter.com/thierryleriche
thierryler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 11h23   #2
chtig
Membre Expert
 
Inscription : janvier 2007
Messages : 1 331
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2007
Messages : 1 331
Points : 1 561
Points : 1 561
Tu peux essayer de rajouter ?
Sinon côté serveur tu as un paramètre SQLNET.EXPIRE_TIME dans sqlnet.ora
__________________
Program manager chez TraceOne. http://www.traceone.com
chtig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 11h40   #3
thierryler
Rédacteur
 
Avatar de thierryler
 
Homme Thierry Leriche-Dessirier
Inscription : octobre 2007
Messages : 2 161
Détails du profil
Informations personnelles :
Nom : Homme Thierry Leriche-Dessirier
Localisation : France

Informations forums :
Inscription : octobre 2007
Messages : 2 161
Points : 5 925
Points : 5 925
Ah génial. Je teste ça et je vous dis dans 45 min...
__________________
Thierry Leriche-Dessirier
Ingénieur Architecte JEE Freelance
Rédacteur pour Developpez
Professeur de Génie Logiciel à l'ESIEA

Page sur Developpez : http://thierry-leriche-dessirier.developpez.com
Site : http://www.icauda.com
Linked'in : http://www.linkedin.com/in/thierryler
Twitter : http://www.twitter.com/thierryleriche
thierryler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 12h59   #4
thierryler
Rédacteur
 
Avatar de thierryler
 
Homme Thierry Leriche-Dessirier
Inscription : octobre 2007
Messages : 2 161
Détails du profil
Informations personnelles :
Nom : Homme Thierry Leriche-Dessirier
Localisation : France

Informations forums :
Inscription : octobre 2007
Messages : 2 161
Points : 5 925
Points : 5 925
Bon, le keepalive ne suffit pas :-(
__________________
Thierry Leriche-Dessirier
Ingénieur Architecte JEE Freelance
Rédacteur pour Developpez
Professeur de Génie Logiciel à l'ESIEA

Page sur Developpez : http://thierry-leriche-dessirier.developpez.com
Site : http://www.icauda.com
Linked'in : http://www.linkedin.com/in/thierryler
Twitter : http://www.twitter.com/thierryleriche
thierryler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 13h11   #5
thierryler
Rédacteur
 
Avatar de thierryler
 
Homme Thierry Leriche-Dessirier
Inscription : octobre 2007
Messages : 2 161
Détails du profil
Informations personnelles :
Nom : Homme Thierry Leriche-Dessirier
Localisation : France

Informations forums :
Inscription : octobre 2007
Messages : 2 161
Points : 5 925
Points : 5 925
Et je n'ai pas de EXPIRE_TIME dans sqlnet.ora :-(
__________________
Thierry Leriche-Dessirier
Ingénieur Architecte JEE Freelance
Rédacteur pour Developpez
Professeur de Génie Logiciel à l'ESIEA

Page sur Developpez : http://thierry-leriche-dessirier.developpez.com
Site : http://www.icauda.com
Linked'in : http://www.linkedin.com/in/thierryler
Twitter : http://www.twitter.com/thierryleriche
thierryler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 14h33   #6
thierryler
Rédacteur
 
Avatar de thierryler
 
Homme Thierry Leriche-Dessirier
Inscription : octobre 2007
Messages : 2 161
Détails du profil
Informations personnelles :
Nom : Homme Thierry Leriche-Dessirier
Localisation : France

Informations forums :
Inscription : octobre 2007
Messages : 2 161
Points : 5 925
Points : 5 925
Au final, j'ai mis ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
 <Resource auth="Container" 
driverClassName="oracle.jdbc.driver.OracleDriver" 
name="jdbc/ds_FOO"
logAbandoned="true"  
initialSize="10" 
minIdle="0"  
maxActive="20" 
maxIdle="20" 
maxWait="10000"
password="FOO" 
type="javax.sql.DataSource" 
url="jdbc:oracle:thin:@FOO:1521:FOO" 
username="FOO"
autoReconnect="true" 
removeAbandoned="true" 
removeAbandonedTimeout="120"    
testOnBorrow="true" 
testOnReturn="true" 
validationQuery="select 1 from dual"
validationQueryTimeout="10" 
keepalive="true" 
timeBetweenEvictionRunsMillis="59000" 
minEvictableIdleTimeMillis="58000"     />
Mais ça me recrée des connexions tout le temps au lieux de me les conserver ouvertes :-(

Faut dire qu'Oracle me donne les logs suivantes :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
Fatal NI connect error 12170.
 
  VERSION INFORMATION:
        TNS for Linux: Version 10.2.0.2.0 - Production
        Oracle Bequeath NT Protocol Adapter for Linux: Version 10.2.0.2.0 - Production
        TCP/IP NT Protocol Adapter for Linux: Version 10.2.0.2.0 - Production
  Time: 17-DEC-2012 13:49:55
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12535
    TNS-12535: TNS:operation timed out
    ns secondary err code: 12560
    nt main err code: 505
    TNS-00505: Operation timed out
    nt secondary err code: 110
    nt OS err code: 0
  Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=00.00.00.00)(PORT=42015))
Et apparemment error 12170 + code 12535, ça veut dire Firewall, comme je le pensais depuis le départ, d'après https://forums.oracle.com/forums/thr...readID=2429810

Du coup, je ne sais pas trop si c'est "timeBetweenEvictionRunsMillis" ou "minEvictableIdleTimeMillis" qui me recrée mes connexions mais, au moins, ça fonctionne ;-) même si c'est crado :-(
__________________
Thierry Leriche-Dessirier
Ingénieur Architecte JEE Freelance
Rédacteur pour Developpez
Professeur de Génie Logiciel à l'ESIEA

Page sur Developpez : http://thierry-leriche-dessirier.developpez.com
Site : http://www.icauda.com
Linked'in : http://www.linkedin.com/in/thierryler
Twitter : http://www.twitter.com/thierryleriche
thierryler est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h15.


 
 
 
 
Partenaires

Hébergement Web