- - PR -
tomcat4とDB2の連携
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-05-21 14:58
うどです。
sever.xmlの他の設定がそうなっていたのでdriverNameとしていましたが、 urlでもダメでした。 それで環境を変えてみようと思いまして さっきまで環境をTomcat/4.1.12-LEに移して同じことを実行しましたが、 やはりClass.forName()ではうまくいってDataSourceに変えたらダメでした。 それで4.1から導入された管理コンソールを使用してDataSourceの設定を行いましたが そうすると <GlobalNamingResources> として設定され、今度は GlobalResourcesLifecycleListener: Exception processing Global JNDI Resources javax.naming.NamingException: Cannot create resource instance といって怒られてしまいます。 まだいろいろと調べては見ますが、もし気づいたところがありましたら アドバイス願います。 | ||||||||
|
投稿日時: 2003-05-21 16:08
urlの<value>に指定している値ですが、普通は下記のようになります。
jdbc:mysql://ホスト名/TestDB jdbc:oracle:thin:@ホスト名:TestDB DB2でもホスト名の指定が必要な気がします。 Class.forName()でやってる方で、getConnection()の引数に渡しているURLはどうなってますか? _________________ class HegeMon extends Singleton implements Cpp,Java,UML,XML {...} | ||||||||
|
投稿日時: 2003-05-21 16:30
Class.forName()で接続する場合も同じで jdbc:db2:データベース別名 です。 今回の接続では以前、yuzyさんにご指摘された様に type2を使用しています。 (クライアントAPがApplet以外ではtype2を推奨しているようです。) そのため上記のようなURLで接続しています。 それでデータベースの別名にはDB2クライアント(構成アシスタント)で 設定した名称を入れています。 | ||||||||
|
投稿日時: 2003-05-22 12:41
>Class.forName()で通常にJDBC接続を行うと正常につながるのです。
これってTOMCATの外の話ですか? 切り分けのため、TOMCAT上の Servlet なり JSP なりで同様の接続を行ってみてはどうでしょう? やはり例外が出力されるようでしたら、ネイティブライブラリのパスが間違っているはずです。 また、DB2の DLL は JDBC1.0 と JDBC2.0 用で別のものが用意されていますので、気を付ける必要があります。 | ||||||||
|
投稿日時: 2003-05-22 13:36
こんにちは。
今回の話ではすべて一つのWebアプリケーション内(Servlet)で動作させています。 Class.forName()もContext#lookup()にしろすべて同一Servletにてテストはしています。 それで一つ勘違いしていたのですが、Class.forName()の場合 tomcat4.0.3ではlibrary.pathのエラーになってしまいました。 動作していたのはtomcat4.1.12です。 また、ためしにWEBアプリをtomcat4.1.24で動作させたらなんと動きました。 結果をまとめますと、 ■tomcat4.0.4 Class.forName()・・・× DataSource・・・× エラートレース・・・ javax.naming.NamingException: Exception creating DataSource: java.lang.UnsatisfiedLinkError: no db2jdbc in java.library.path ■tomcat4.1.12 Class.forName()・・・○ DataSource・・・× エラートレース・・・ javax.naming.NamingException: Cannot create resource instance ■tomcat4.1.24 Class.forName()・・・○ DataSource・・・○ となりました。 もちろんWEBアプリはすべて同一のものを使用していますし、 各環境変数も当初から変更はしていません。 また、データソースの設定では一番最初の質問時に記述した内容から driverName → url user → username とパラメータ名を変更したものをすべてのtomcatで使用しました。 確かにtomcat4.0.4とtomcat4.1.xではserver.xmlに微妙に違うところが あったのですがバージョンによって設定の仕方が違うんですかね? 余計に分からなくなってしまいました。。。 | ||||||||
