2013-03-19 1 views
3

J'ai essayé de configurer un pool de connexions pour une base de données SQL Server 2012. J'ai actuellement des pools Informix et Oracle configurés et fonctionnant, seul SQL Server me donne mal à la tête. Voici comment ma ressource sur context.xml semble jusqu'à présent:Configurer le pool de connexions SQL Server sur Tomcat

<Resource name="jdbc/sqlserv" 
    auth="Container" 
    factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" 
    driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
    type="javax.sql.DataSource" 
    maxActive="50" 
    maxIdle="10" 
    maxWait="15000" 
    username="username" 
    password="password" 
    url="jdbc:sqlserver://127.0.0.1:1433;databaseName=SQLDB;" 
    removeAbandoned="true" 
    removeAbandonedTimeout="30" 
    logAbandoned="true" /> 

C'est l'utilisation du pilote sqljdbc4, bien sûr. Nous avons déjà essayé d'utiliser jtds-1.3.0 avec le driverClass="net.sourceforge.jtds.jdbc.Driver", mais pas d'aller. Toutes les références de ressources sont également correctement configurées. Chaque fois que j'essaye de créer une nouvelle connexion en utilisant cette ressource, elle échoue.
Par souci de comparaison, voici comment nos Informix et les ressources Oracle ressemblent:

<Resource name="jdbc/infmx" 
    auth="Container" 
    type="javax.sql.DataSource" 
    factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" 
    maxActive="50" 
    maxIdle="10" 
    maxWait="15000" 
    username="username" 
    password="password" 
    driverClassName="com.informix.jdbc.IfxDriver" 
    url="jdbc:informix-sqli://localhost:30091/infmx:informixserver=ol_infmx_soc" 
    removeAbandoned="true" 
    removeAbandonedTimeout="30" 
    logAbandoned="true"/> 

<Resource name="jdbc/orcl" 
    auth="Container" 
    type="oracle.jdbc.pool.OracleDataSource" 
    driverClassName="oracle.jdbc.driver.OracleDriver" 
    factory="oracle.jdbc.pool.OracleDataSourceFactory" 
    url="jdbc:oracle:thin:@127.0.0.1:1521:orcl" 
    user="username" 
    password="password" 
    maxActive="50" 
    maxIdle="10" 
    maxWait="15000" /> 

Ma question est: Comment puis-je configurer correctement un pool de connexion pour SQL Server 2012 sur mon contexte tomcat? J'ai cherché haut et bas, essayé tout ce que j'ai trouvé, mais rien n'a fonctionné.


Merci d'avance.

[modifier] est ici la trace de la pile: http://pastebin.com/w3rZSERs

[edit-2] Il semble que le problème est que Tomcat ne peut pas trouver le pilote sur son dossier lib. Nous sommes à peu près sûrs que c'est là, mais nous ne savons pas pour être sûr de cela. Cela se produit avec sqljdbc4 et jtds-1.3.0. Nous suivons toutes les directives que nous pouvons trouver, mais le problème persiste.

Répondre

8

Nous avons trouvé notre problème.

driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver" 

Aurait été

driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
1

Il me semble que le côté java est correctement configuré.

Pouvez-vous accéder au serveur en utilisant une autre connexion JDBC (par exemple SquirrelSQL ou un logiciel similaire)?

Si vous ne pouvez pas accéder au serveur en utilisant écureuil, peut-être vous n'avez pas activé l'accès TCP/IP à votre serveur, dans ce cas, suivre la réponse acceptée de Enable remote connections for SQL Server Express 2012

+0

qui avait certainement un effet! Cependant, je reçois maintenant le message suivant: 19 mars 2013 10:50:57 org.apache.naming.NamingContext recherche Attention: Exception inattendue résolution référence java.sql.SQLException à org.apache .tomcat.jdbc.pool.PooledConnection.connectUsingDriver (PooledConnection.java:254) – fcm

+1

J'ai besoin de plus de lignes sur la trace de la pile, pourriez-vous éditer votre message, en y joignant l'exception complète que vous obtenez? –

+0

Je l'ai ajouté à l'article d'origine – fcm

Questions connexes