- - PR -
tomcat4とDB2の連携
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-05-21 10:17
はじめまして。
現在tomcat4.0.3をWin2000上で動作させていまして tomcatからDB2(Ver8.1)への接続を試みているのですがDataSourceをlookupしようと すると失敗してしまいます。 tomcatとDB2は別サーバとなっています。 tomcatのマシンにはDB2クライアントをインストールし、 ローカルで別名は設定済みです。 server.xmlの設定などもいろいろサンプル等を見て自分なりに 設定はしたのですが、エラーがでてしまいます。 以下に各設定とエラートレースを記載しますので どなかたアドバイスください。(かなり行き詰まっています。。。) =========== [発生エラー] ============= TyrexDataSourceFactory: Cannot create DataSource, Exception java.sql.SQLException: java.lang.UnsatisfiedLinkError: no db2jdbc in java.librar y.path at COM.ibm.db2.jdbc.app.DB2Driver.<init>(Unknown Source) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct =========== [server.xml] =========== <Context path="/db2test" docBase="db2test" debug="0" reloadable="true"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="db2test." suffix=".txt" timestamp="true"/> <Resource name="db2test" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="db2test"> <parameter> <name>user</name> <value>user</value> </parameter> <parameter> <name>password</name> <value>pswd</value> </parameter> <parameter> <name>driverClassName</name> <value>COM.ibm.db2.jdbc.app.DB2Driver</value> </parameter> <parameter> <name>driverName</name> <value>jdbc:db2:TestDB</value> </parameter> </ResourceParams> </Context> =========== [web.xml] =========== <resource-ref> <res-ref-name>db2test</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> =========== [DataSourceの取得] =========== Context context = new InitialContext(); DataSource ds = (DataSource)context.lookup("java:comp/env/db2test"); ※上記のlookup時にエラーとなります。 | ||||
|
投稿日時: 2003-05-21 10:24
> java.sql.SQLException: java.lang.UnsatisfiedLinkError: no db2jdbc in java.library.path
エラー読んでます? 原因書いてありますよ。 | ||||
|
投稿日時: 2003-05-21 10:25
>java.sql.SQLException: java.lang.UnsatisfiedLinkError: no db2jdbc in java.librar
y.path が出ているということは、DB2のType2 Driverを使っていて、そのDLLへのパスが通っていないのではないでしょうか? tomcat を起動するときの環境設定で、SET PATH= に DB2のJDBC Driver(DLL)を含めてみたらどうでしょう? | ||||
|
投稿日時: 2003-05-21 10:43
こんにちは。
早速のアドバイスありがとうございます。 (あまりの速さにびっくりしました。)
環境変数にはdb2jdbc.dllへのパスは通っています。 それで前回説明が足りなかったのですが、 Class.forName()で通常にJDBC接続を行うと正常につながるのです。 それをDataSourceを使用した方法に変更したとたんつながらなくなりました。 ちなみにDLLは %DB2クライアントのインストールdir%/SQLLIB/BIN/. でJDBCドライバは %tomcat_dir%/common/lib に格納しています。 また、db2java.zipは拡張子をjarに変更してあります。 db2jdbc.dllへのパスの通し方が間違っているのでしょうか? | ||||
|
投稿日時: 2003-05-21 12:12
Tomcatに対して、DataSourceの設定はどうなってますか? | ||||
|
投稿日時: 2003-05-21 13:19
うどです。
一番最初に記述したとおり server.xmlに設定しましたが、その他に何か設定って必要なのですか? | ||||
|
投稿日時: 2003-05-21 14:06
server.xmlの設定ですが、
とあるのはdriverNameではなくurlではないでしょうか? | ||||
|
投稿日時: 2003-05-21 14:56
もう一つ。
lookup()にはurlではなくデータソース名を指定します。 ==== 上記を訂正。ちゃんとリソース名が指定されてました。 [ メッセージ編集済み 編集者: へげもん 編集日時 2003-05-21 15:39 ] | ||||
