7
votes

Impossible de voir les entrées JMX dans JConsole lors de l'utilisation du pool de connexion Tomcat JDBC

Nous évaluons la commutation du pool de connexion C3P0 au pool de connexion Tomcat JDBC ( comme décrit ici ).

Il semble fonctionner comme piscine de connexion, mais je ne peux pas sembler voir des entrées JMX pour cela lorsque je gère JConsole.
Hors de la case C3P0 donne beaucoup d'opérations et d'attributs via JMX, TOMCAT JDBC Connection Pool ne donne aucune (pour moi).

Selon la page liée ci-dessus, il y a un indicateur JMXEnabled par défaut vers true. J'ai défini cela explicitement mais il semble ne faire aucune différence.

Qu'est-ce que je manque?

J'exécute une application java6 / printemps / hibernate assez standard à la manière.


2 commentaires

utilisez-vous SpringSource TC Server? Cet article mentionne que le "piscin de connexion JDBC Tomcat" n'est disponible que dans la distribution de Tomcat de SpringSource (qui fait le nom du pool de connexion un pauvre choix, IMO)


Non, nous ne sommes pas que notre application fonctionne bien avec Tomcat 6 et une autre application l'utilise depuis quelques mois sur Tomcat 6.


4 Réponses :


0
votes

Voyez-vous des entrées sous l'arborescence

Catalina -> DataSource -> javax.sql.DataSource


2 commentaires

Je n'ai pas de datasource d'entrée sous Catalina.


Je ne vois pas non plus cette entrée. J'utilise le printemps 3 avec la piscine DBCP sur Tomcat 5 avec JDK 5



0
votes

darren, si vous ne voyez pas le nom d'objet sous catalina / datasource / javax.sql.datasource / dans jconsole, alors je me demande si la source de données est définie de manière incorrecte ou peut-être n'a pas été connecté à la base de données lorsque Tomcat a été démarré.

Bruce


3 commentaires

J'utilise la source de données Spring et DBCP. Je n'ai pas vu Catalina / DataSource à JConsole. Merci de me donner des idées Comment surveiller la taille de la piscine lors de l'utilisation d'un pool de connexion Spring 3 et DBCP.


Voici un projet Maven qui utilise le printemps 3 pour exposer un pool de connexion DBCP via JMX: Github. COM / BSNYDER / Spring-jdbc-jmx Remarque: il existe un thread.sleep dans la méthode app.Select () afin de pouvoir démarrer JConsole pour jeter un coup d'œil sur les propriétés JMX de l'objet DataSource.


Wao ... tu es super. Merci beaucoup. C'est ce que je cherche :-)



12
votes

Si vous configurez la piscine dans votre contexte de printemps, vous devez exporter Manuellement. Autoexport ne fonctionne que si vous confie piscine dans le conteneur Tomcat et l'importait de JNDI. Voir http://tomcat.apache.org/tomcat-7.0- doc / jdbc-piscine.html # jmx

Vous pouvez utiliser cette configuration de ressort pour les informations de pool d'exportation vers JMX: xxx

configure fonctionne uniquement dans la version printanière 3.0 et plus, car il utilise la langue d'expression de printemps


2 commentaires

Merci pour cela, ça m'a aidé. Pour une raison quelconque, la piscine n'a pas été initialisée à l'aide de cette technique directement, je devais donc la modifier vers pour le faire fonctionner


@Johnc probablement un problème de synchronisation, vous voulez jmxexporter à exporter après DataSource est initialisé, non auparavant; Avez-vous essayé cela?



0
votes
À l'appui du poste de Sean:

Le placement du javax.sql.datasource entrée dans Mbeans de JConsole est:

  • catalina
    • DataSource
      • / [nom_of_deployed_application] // E.G. "/ DomainService
        • / [host_name_of_the_deployed_application] //e.g. "localhost"
          • javax.sql.dataSource

0 commentaires