5

SQL Server 2012 データベースの接続プールを構成しようとしています。現在、Informix と Oracle のプールを構成して動作させていますが、SQL Server だけが頭痛の種です。これは、Context.xml の私のリソースがこれまでどのように見えるかです。

<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" /> 

もちろん、それは sqljdbc4 ドライバーを使用しています。すでに jtds-1.3.0 を で使用しようとしましたdriverClass="net.sourceforge.jtds.jdbc.Driver"が、うまくいきませんでした。すべてのリソース参照も正しく構成されています。そのリソースを使用して新しい接続を作成しようとすると、失敗します。
比較のために、Informix と Oracle のリソースは次のようになります。

<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" /> 

私の質問は、Tomcat コンテキストで SQL Server 2012 の接続プールを正しく構成するにはどうすればよいですか? 高低を検索し、見つけたすべてを試みましたが、何も機能しませんでした。


前もって感謝します。

[編集]スタック トレースは次のとおりです: http://pastebin.com/w3rZSERs

[編集-2]問題は、Tomcat が lib フォルダーでドライバーを見つけられないことです。そこにあると確信していますが、それが確実かどうかはわかりません。これは、sqljdbc4 と jtds-1.3.0 の両方で発生します。見つけることができるすべてのガイドラインに従っていますが、問題は解決しません。

4

2 に答える 2

10

問題が見つかりました。

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

になるはずだった

driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
于 2013-03-20T16:39:00.070 に答える
1

Java側が正しく構成されているようです。

別の JDBC 接続 (SquirrelSQL または同様のソフトウェアなど) を使用してサーバーにアクセスできますか?

Squirrel を使用してサーバーにアクセスできない場合は、サーバーへの TCP/IP アクセスを有効にしていない可能性があります。この場合は、SQL Server Express 2012 のリモート接続を有効にするの受け入れられた回答に従ってください。

于 2013-03-19T13:32:17.287 に答える