IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

Java Tomcat SQL Server "Cannot create PoolableConnectionFactory"


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Points : 114
    Points
    114
    Par défaut Java Tomcat SQL Server "Cannot create PoolableConnectionFactory"
    Bonjour,
    J'ai une application java (en partie JSF) utilisant Tomcat et SQL Server.
    Elle tournait bien, jusqu'au jour ou elle a décidé de planter...Je n'ai pas l'erreur au moment de l'arrêt mais mon collègue dit qu'elle a planté et l'interface web n'était plus accessible non plus.

    Si je regarde dans le log de tomcat j'ai les erreurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/sc]  Exception lors de l'ouverture de la base de données
    java.sql.SQLException: Network error IOException: Address already in use: connect
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ERROR org.apache.catalina.session.ManagerBase  Exception au chargement des sessions depuis le stockage persistant (persistent storage)
    java.lang.NullPointerException
    et le log de mon appli:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnection
    Factory (Network error IOException: Address already in use: connect)
    J'ai essayé de rebooter l'appli plusieurs fois, sans succès, en ayant la même erreur.

    J'ai redémarré le pc et j'ai pus relancer l'appli que maintenant tourne normalement.

    Je ne trouve pas d'infos sur les erreurs, quelqu'un peut me dire où les trouver? Ou sait m'expliquer à quoi sont dues les erreurs?

    Le problème vient de l'appli ou du pc?
    Si c'est l'appli je dois trouver comment le corriger...

    Si vous avez besoin d'infos en plus, merci de les demander.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    bizzare comme erreur. Ce serait pas un message d'erreur renvoyé par ton serveur SQL?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Points : 114
    Points
    114
    Par défaut
    merci pour ta réponse,
    c'est à dire par le serveur SQL?

    je peut mettre le log complet. depuis le file stdout_date.log de tomcat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/sc]  Exception lors de l'ouverture de la base de données
    java.sql.SQLException: Network error IOException: Address already in use: connect
    	at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:372)
    	at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
    	at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:178)
    	at org.apache.catalina.realm.JDBCRealm.open(JDBCRealm.java:703)
    	at org.apache.catalina.realm.JDBCRealm.start(JDBCRealm.java:771)
    	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4166)
    	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    	at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
    	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    	at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    	at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
    	at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
    	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
    Caused by: java.net.BindException: Address already in use: connect
    	at java.net.PlainSocketImpl.socketConnect(Native Method)
    	at java.net.PlainSocketImpl.doConnect(Unknown Source)
    	at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    	at java.net.PlainSocketImpl.connect(Unknown Source)
    	at java.net.SocksSocketImpl.connect(Unknown Source)
    	at java.net.Socket.connect(Unknown Source)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:289)
    	at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:250)
    	at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:297)
    	... 18 more
    ERROR org.apache.catalina.session.ManagerBase  Exception au chargement des sessions depuis le stockage persistant (persistent storage)
    java.lang.NullPointerException
    	at com.xa.sc.bean.AuthBean.getRemoteUser(AuthBean.java:145)
    	at com.xa.sc.bean.AuthBean.readObject(AuthBean.java:183)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
    	at java.io.ObjectInputStream.readSerialData(Unknown Source)
    	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    	at java.io.ObjectInputStream.readObject0(Unknown Source)
    	at java.io.ObjectInputStream.readObject(Unknown Source)
    	at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1416)
    	at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:940)
    	at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:394)
    	at org.apache.catalina.session.StandardManager.load(StandardManager.java:321)
    	at org.apache.catalina.session.StandardManager.start(StandardManager.java:637)
    	at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:432)
    	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4196)
    	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    	at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
    	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    	at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    	at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
    	at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
    	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
    et au lancement de mon appli:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    C:\Service Center>java com.xa.sc.autoreg.AutoReg
    DEBUG com.xa.sc.autoreg.AutoReg  creating new instance of AutoReg
    DEBUG com.xa.sc.ServiceCenter  creating new instance of ServiceCenter
    DEBUG com.xa.sc.utils.DBHelper  reading sc.properties
    DEBUG com.xa.sc.utils.DBHelper  reading sc.properties
    org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnection
    Factory (Network error IOException: Address already in use: connect)
            at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
            at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
            at com.xa.sc.utils.DBHelper.getDBConnection(DBHelper.java:113)
            at com.xa.sc.utils.DBHelper.getDBConnection(DBHelper.java:97)
            at com.xa.sc.SCHelper.load(SCHelper.java:21)
            at com.xa.sc.ServiceCenter.<init>(ServiceCenter.java:116)
            at com.xa.sc.autoreg.AutoReg.<init>(AutoReg.java:59)
            at com.xa.sc.autoreg.AutoReg.getInstance(AutoReg.java:54)
            at com.xa.sc.autoreg.AutoReg.main(AutoReg.java:132)
    Caused by: java.sql.SQLException: Network error IOException: Address already inuse: connect
            at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:372)
            at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
            at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:178)
            at org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
            at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
            at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
            at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
            ... 8 more
    Caused by: java.net.BindException: Address already in use: connect
            at java.net.PlainSocketImpl.socketConnect(Native Method)
            at java.net.PlainSocketImpl.doConnect(Unknown Source)
            at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
            at java.net.PlainSocketImpl.connect(Unknown Source)
            at java.net.SocksSocketImpl.connect(Unknown Source)
            at java.net.Socket.connect(Unknown Source)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:289)
            at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:250)
            at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:297)
            ... 14 more
    FATAL com.xa.sc.autoreg.AutoReg  fatal error, stop
    java.lang.NullPointerException
            at com.xa.sc.SCHelper.load(SCHelper.java:38)
            at com.xa.sc.ServiceCenter.<init>(ServiceCenter.java:116)
            at com.xa.sc.autoreg.AutoReg.<init>(AutoReg.java:59)
            at com.xa.sc.autoreg.AutoReg.getInstance(AutoReg.java:54)
            at com.xa.sc.autoreg.AutoReg.main(AutoReg.java:132)
    mais comme j'ai dit, la j'ai redemarré le pc, et tout est retourné à la normalité. Mais je cherche des explication car il ne doit plus se reproduire.

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    le address already in use se produit lorsque tu essaie d'ouvrir une socket serveur sur un port déjà utilisé. Apparement ce serait un bug des drivers jtds pour ce que j'en ai trouvé et les driver propriétaire pour sql server se comportent mieux.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Points : 114
    Points
    114
    Par défaut
    ok, merci beaucoup pour la réponse!
    ça me soulage de savoir que ce n'est pas mon code qui bogue..
    je vais quand même observer l'histoire.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 29/04/2011, 13h02
  2. Réponses: 0
    Dernier message: 29/04/2009, 22h17
  3. Réponses: 5
    Dernier message: 21/04/2008, 16h38
  4. Réponses: 2
    Dernier message: 09/04/2008, 21h45
  5. java et sql server
    Par vijeo dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 28/10/2005, 10h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo