Traversez le pool de connexions JNDI (configurez le pool de connexions via l'interface de gestion sous Tomcat5.5)
Auteur:Eve Cole
Date de mise à jour:2009-07-03 16:56:20
Briser le pool de connexions JNDI - -
Après plusieurs jours de travail acharné, je peux enfin me connecter au pool de connexion. J'ai fait référence à de nombreux messages de héros à ce sujet. Je vais maintenant écrire ici plusieurs problèmes survenus ces derniers jours :
1. Placez les trois pilotes jdbc (must) sous tomcat_homecommon, qui peuvent être téléchargés à partir du site Web de Microsoft. Le nom d'utilisateur par défaut du SQLSERVER2k installé est sa et le mot de passe est vide, mais peu importe que le mot de passe soit vide. . Cela signifie qu'il n'y a pas de mot de passe, vous devez donc définir le nom d'utilisateur et le mot de passe dans votre URL. S'il y a une erreur qui ne peut pas être citée, c'est généralement parce que le chemin n'est pas écrit correctement. le chemin de Tomcat est tomcat_homewebapps, mais utilisez 5.5 .x, suivez simplement la méthode ci-dessous. Il n'est pas nécessaire de configurer le chemin, et il n'est pas nécessaire de configurer la référence dans youwebappWEB-INFweb.xml. La configuration server.xml de la version tomcat5.5.x est différente de la configuration de tomcat5.0, voici trois méthodes de configuration dans tomcat5.5.x. Si la configuration est incorrecte, javax.naming.NameNotFoundException : Nom. n'est pas lié à cette méthode d'erreur de contexte 1. Pool de connexions à la base de données globale
1. Configurez le pool de connexions via l'interface de gestion ou ajoutez-le directement à GlobalNamingResources dans tomcatconfserver.xml
<Nom de la ressource="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>
2. Ajoutez ce qui suit au contexte de tomcatwebappsmyappMETA-INFcontext.xml :
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
C'est ça.
Méthode 2. Pool de connexions à la base de données globale
1. Comme ci-dessus
2. Ajoutez ce qui suit au contexte de tomcatconfcontext.xml :
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
Méthode 3 : le pool de connexions à la base de données locale doit uniquement être ajouté au contexte de tomcatwebappsmyappsMETA-INFcontext.xml :
<Nom de la ressource="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>
Description du paramètre :
driveClassName : le nom complet de la classe du pilote JDBC ;
maxActive : nombre maximum d'instances disponibles pouvant être allouées simultanément à partir du pool de connexions ;
maxIdle : nombre maximum de connexions pouvant être inactives dans le pool de connexions en même temps ;
maxWait : délai d'expiration maximum, en millisecondes ;
mot de passe : mot de passe utilisateur ;
url : URL de connexion à JDBC ;
utilisateur : nom d'utilisateur ;
validationQuery : utilisé pour interroger les connexions inactives dans le pool.
Les trois méthodes ci-dessus sont toutes disponibles sous Tomcat 5.5.4. De plus, le pilote jdbc du serveur sql est le serveur sql jdbc (sp3) téléchargé depuis le site Web de Microsoft.
4. Erreur org.apache.tomcat.dbcp.dbcp.SQLNestedException : Impossible de créer PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Erreur lors de l'établissement du socket.) Il s'agit d'un petit problème car mon service SQLSERVER2K a été modifié en manuel, donc vous devez démarrer manuellement SQLSERVER2K après chaque démarrage. Comme il a démarré sans vous en souvenir, certaines erreurs sont signalées, donc si vous utilisez souvent SQLSERVER2K, il est préférable de ne pas le modifier en démarrage manuel.