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

Hibernate Java Discussion :

Pool de connexion externe


Sujet :

Hibernate Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 106
    Points : 76
    Points
    76
    Par défaut Pool de connexion externe
    Bonjour,

    Tout d'abord voilà un extrait de mon fichier de configuration de Jboss web.xml
    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
     
     <!-- Parametres de connexion à la base de données BPLH -->	
            <context-param>
                    <param-name>baseUrl</param-name>
                    <param-value>jdbc:mysql://localhost:3306/BPLH?autoReconnect=true</param-value>
                    <description>emplacement de la base de données</description>
            </context-param>
            <context-param>
                    <param-name>baseDriver</param-name>
                    <param-value>com.mysql.jdbc.Driver</param-value>
                    <description>driver JDBC permettant d'accéder à la base de données</description>
            </context-param>
            <context-param>
                    <param-name>baseUsername</param-name>
                    <param-value>root</param-value>
                    <description>nom de l'utilisateur de la base de données</description>
            </context-param>
            <context-param>
                    <param-name>basePassword</param-name>
                    <param-value></param-value>
                    <description>password de l'utilisateur de la base de données</description>
            </context-param>
            <context-param>
                    <param-name>baseDialect</param-name>
                    <param-value>net.sf.hibernate.dialect.MySQLDialect</param-value>
                    <description>dialect de la base de données</description>
            </context-param>
            <context-param>
                    <param-name>urlAccueil</param-name>
                    <param-value>http://accessit/application/default.asp</param-value>
                    <description>adresse de la page Mes applications</description>
            </context-param>
    Ce morceau de code, nous montre que je crée un pool de connexion à ma base de données, j'aimerais donc utiliser celle ci pour utiliser Hibernate. Voilà donc le bout de code que j'aimerais supprimer de mon fichier hibernate-cfg.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     <!-- Database connection settings -->
            <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="connection.url">jdbc:mysql://localhost:3306/BPLH?autoReconnect=true</property>
            <property name="connection.username">root</property>
            <property name="connection.password"></property>
    MERCI

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    Source de données gérée par le conteneur : Hibernate peut utiliser des connexions JDBC gérées par le conteneur et fournie par l'intermédiaire de JNDI. Souvent, un TransactionManager compatible JTA et un ResourceManager s'occupent de la gestion des transactions (CMT). Ils sont particulièrement prévus pour pouvoir gérer des transactions distribuées sur plusieurs sources de données. Vous pouvez bien sûr également définir vos limites de transaction dans votre programme (BMT) ou vous pouvez sinon aussi utiliser l'API optionnelle Transaction d'Hibernate qui vous garantira la portabilité de votre code entre plusieurs serveurs d'application.

    J'ai juste trouvé ça sur le Hibernate.org mais pour moi c'est du chinois !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    Je suppose que personne n'a aucune idée ?!

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    J'avais plutôt utilisé un fichier nommé Posgres-ds.xml pour configurer la base de données dans jboss.
    Il existe un fichier nomDeLaBase-ds.xml dans un des repertoire de jboss pour chaque base de données supportée.
    Il suffit de prendre celui qui correspond à ta base et le modifier avec tes paramètres.

    Ensuite, tu modifies ton hibernate.cfg avec cette ligne:
    <
    property name="connection.datasource">java:/comp/env/jdbc/MyDB</property>
    en remplaçant la valeur par celle définie dans ton fichier nomDeLaBase-ds.xml défini auparavant.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    Je ne sais pas si c'est possible mais j'aurais vraiment aimé n'avoir qu'un seul fichier de configuration, ton idée est tout à faire réalisable mais est il possible de tout combiner dans le web.xml ?

  6. #6
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Je ne connais pas assez JBoss pour répondre à ta question.
    Dans mon cas, on avait fait au plus simple.
    Une application déployée, et la base de données configurée dans le fameux fichier nomDeLaBase-ds.xml.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    D'après ce que j'ai pu voir, il faudrait que j'utilise une datasource, grâce un post je vois bien comment le configurer ds le hibernate-cfg.xml mais comment ça se passe dans le web.xml ?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 25
    Points : 22
    Points
    22
    Par défaut
    Je ne suis pas trop sur de tas question...mais je sais comment configurer une datasource avec tomcat , mysql et hibernate...est-ce bien ce que tu veux faire?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 25
    Points : 22
    Points
    22
    Par défaut
    En gros moi j'ai les éléments suivants pour avoir une datasource bien configuré:

    WEB-INF/web.xml :
    ...
    <resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/MaDB</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    ...


    META-INF/context.xml : i created this file to declare my datasource for my webapp only

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <Context
    docBase="${catalina.home}/webapps/app"
    path="/app"
    reloadable="true">
    <Resource
    name="jdbc/MaDB"
    type="javax.sql.DataSource "
    auth="Container"
    username="admin"
    password="pass"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost/databaseName?autoReconnect=true"/>
    </Context>

    hibernate.cfg.xml:

    ...
    <property name="connection.datasource">java:comp/env/jdbc/MaDB</property>
    <property name="dialect"> org.hibernate.dialect.MySQLDialect</property>

    <!--### Apache DBCP Connection Pool ###-->
    <!--connection pool-->
    <property name="hibernate.dbcp.maxActive">10</property>
    <property name="hibernate.dbcp.whenExhaustedAction">1</property>
    <property name="hibernate.dbcp.maxWait">100</property>
    <property name="hibernate.dbcp.maxIdle ">10</property>
    ...
    Si tu as besoin de savoir comment coder en java pour accéder à ton datasource et la libérer laisse moi le savoir

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    Je vais essayer de coder ma datasource avec les informations que tu viens de me donner. Penses tu que la configuration soit la même entre un serveur JBOSS et Tomcat, sachant que JBOSS contient TOMcat!

  11. #11
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Je ne vois pas pourquoi tu t'embêtes la vie.
    Ce serait déjà plié si tu essayais ma méthode, qui n'est pas une bidouille, mais simplement, la façon de faire.

  12. #12
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Si je devais poser une question de mon cote, ca serait : pourquoi déléguerle pool de connexion externe au serveur si Hibernate permet de le gérer lui même ?
    Hibernate ne préconise certes, pas l'utilisation de son pool par défaut, cependant il permet de gérer des pools performants comme C3P0, DBCP ou Proxool.

  13. #13
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Parce qu'il est plus facile ensuite de changer de base via, la conf du serveur d'application, que de devoir redéployer l'application.
    JBoss permet, via la console JMX, d'administrer facilement ses composants.

  14. #14
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Pourquoi redéployer une appli puisque tout ne se joue que dans les fichiers de configuration ?!? enfin je ne comprend pas trop le raisonnement ... mais si tu l'dis

  15. #15
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Tu le mets où ton hibernate.cfg ?

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    Je veux tout mettre dans le fichier web.xml pour une seule et unique raison, je ne veux pas 50 fichiers de configurations même 2 c'est de trop . Donc si je ne prends pas ta solution fr1man, tout simplement car je déporte le problème sur le fichier mabase.xml.

    Je veux déclarer mon pool de connexion dans le web.xml, et après essayer de le récupérer pour hibernate ! MOn hibernate est dans WEB_INf/src

  17. #17
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Ma question précédente etait destinée à Bizur.

    Je ne suis pas sur qu'il soit possible de declarer un pool dans le web.xml.

    Je sais que c'est chiant d'avoir plusieurs fichiers de conf, mais malheureusement, tu en auras toujours plusieurs avec ce genre d'appli.

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    je vais essayer le bout de code qui m'a été envoyé pour faire ce pool et voir comment tout ça réagi !

  19. #19
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    @fr1man : A la racine du classpath dans un dossier properties que je dégage de l'appli ... comme tout fichier de propriété sinon, je ne vois plus leur interêt

  20. #20
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Effectivement, vu comme ça.
    Cependant, je préfère tout embarquer dans l'archive de l'appli. (sauf ce qui ne peut pas l'être)
    C'est beaucoup plus simple à déployer.

Discussions similaires

  1. Pool de connexion
    Par borgfabr dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 15/10/2004, 14h20
  2. [TOMCAT] pool de connexion postgres
    Par kitov dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 04/06/2004, 16h13
  3. [WSAD] [POOL de CONNEXION]
    Par gandia dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 19/05/2004, 18h22
  4. [EJB]JBoss et Pool de connexion
    Par Kleb dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 20/04/2004, 12h12
  5. [tomcat 4.1] [oracle] Pool de connexion
    Par Franco dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 23/09/2003, 00h42

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