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

JDBC Java Discussion :

DataSource.getConnection() en erreur


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2008
    Messages : 22
    Par défaut DataSource.getConnection() en erreur
    Mon application est sensée se connecter à une BDD via JDBC. J'ai donc écrit le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    final Context lContext = new InitialContext( );
    final DataSource lDataSource = ( DataSource ) lContext.lookup( NOM_RESOURCE_JDBC );
     
    final Connection lConnection  = lDataSource.getConnection( );
    ... qui plante lamentablement avec l'erreur suivante :

    org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Packet for query is too large (4739923 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.)
    Au debug, l'appli récupère bien les données de serveur.xml :

    <Resource auth="Container"
    driverClassName="com.mysql.jdbc.Driver"
    maxActive="100" maxIdle="30" maxWait="10000" name="jdbc/bdd"
    password="pwd" type="javax.sql.DataSource"
    url="jdbc:mysql://192.168.84.18:22/bdd"
    username="root" />
    (C'est du SSH)
    J'arrive bien à me connecter à la BDD via d'autres applis, mais là ça plante à lDataSource.getConnection( ). J'ai augmenté la valeur de max_allowed_packet côté serveur MySQL, mais le problème reste. De toute façon, il ne s'agit pas de la valeur 1048576.

    Ça dit quelque chose à quelqu'un ?


    Edit : Et tant qu'à faire les détails de l'exception.

    Cause : com.mysql.jdbc.PacketTooBigException
    SQLState : S1000

  2. #2
    Expert éminent
    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 : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    a priori, c'est la taille des requetes autorisées sur la DB qui est trop petite. Par contre, la question est de savoir pourquoi ce driver a besoin d'un paquet de 4M pour établir une connection!!

    Vous y arrivez sans pool?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2008
    Messages : 22
    Par défaut
    Bon, j'ai fini par m'en sortir avec les actions suivantes :

    1. J'ai changé le driver JDBC (pas sur que ça vienne de là mais l'erreur affichée était plus parlante).
    2. Dans le fichier my.cnf, j'ai commenté la ligne bind-address = 127.0.0.1.
    3. Dans le serveur MySQL, j'ai autorisé la connexion via mon IP :
    grant all privileges on *.* to 'root'@'xx.xx.xx.xx' identified by 'mypassword' with grant option
    4. Dans server.xml, j'ai rajouté un ? à la fin de mon URL, et je suis passé sur le port 3306 que j'ai trouvé dans my.cnf :
    url="jdbc:mysql://192.168.84.18:3306/bdd?"

Discussions similaires

  1. Problème DataSource getConnection dans JBoss-4.2.0.GA
    Par Ashram04 dans le forum Wildfly/JBoss
    Réponses: 7
    Dernier message: 31/01/2011, 19h42
  2. [C#] Erreur av DataGrid et DataSource
    Par Bapt.ice dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/05/2006, 15h36
  3. [Hibernate] : Erreur Could not find datasource
    Par tipaquo dans le forum Hibernate
    Réponses: 2
    Dernier message: 12/10/2005, 10h43
  4. [WSAD 5.1] Erreur sur DataSource
    Par acoue dans le forum Eclipse Java
    Réponses: 11
    Dernier message: 16/12/2004, 14h27
  5. [struts][Datasource]Gestion des erreurs
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 15/09/2004, 16h51

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