- ベストアンサー
DB2のJDBCを使用したDBコネクションの取得方法の違い
- DB2のJDBCを使用したDBコネクションの取得方法の違いをまとめました。
- DB2のJDBCを使ってWebSphereからDB2にアクセスし、テーブルからデータの取得をする方法について説明します。
- DB2のJDBCを使用する際に、コネクションの取得方法には複数の指定方法がありますが、その違いについて解説します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
まず、 その1: jdbc:db2:データベース名 その2: jdbc:db2://ホストIP:ポート番号/データベース名 の違いですが、 「その1」の方はJava実行マシンとDB2サーバが同じホスト上にある場合(Type2のJDBCドライバ用?)に使うようです。 それに対して、「その2」は、ホスト名とポート番号を指定していることからわかるように、Java実行マシンとDB2サーバが別々のホスト上にある場合(Type4のJDBCドライバ用?)に使うようです。 で、なんで「その2」で接続ができないのかという原因ですが、 (1)サーバー側の設定が足りない (2)ドライバ名が違う の2つが考えられます。 (1)の方は、サーバー側で「このポート番号でJDBC接続を待ち受けます」という設定を行う必要があります。これは、"db2jstrt <ポート番号>"というコマンドをサーバー上で実行することで、設定できます。 (2)の方は、"COM.ibm.db2.jdbc.net.DB2Driver"というJDBCドライバを使っているか確認してください。"COM.ibm.db2.jdbc.app.DB2Driver"ではありません。こっちだと、「その1」の方の接続方法しかサポートしていないような気がします。(よく調べていないのでわかりませんが) 以上2点を確認してみては?
その他の回答 (1)
- kamkamkam3
- ベストアンサー率42% (216/514)
全然違ってたらすみません。 私も最初は、jdbc:db2://ホストIP:ポート番号/データベース名 に教えてもらったんですが、ホストIP:ポート番号は省略できますよ。 jdbc:db2:///データベース名 でOKです。 なお、難しいことは分かりませんが、データベース名はlocalhostで良いんではないでしょうか?
お礼
ご回答をありがとうございます。 今の環境は、DB2とWebSphereは同一マシン上にあるので、ホストIPとポート番号の指定がなくてもDB2にアクセスできます。 しかし、DB2とWebSphereが別のマシン上にあるときは、このままだとアクセスできないと思うので、今回質問させていただきました。 最初の質問でも書いたように、「jdbc:db2:データベース名」で指定したときは、アクセスできました。 ちなみに、「jdbc:db2:///データベース名」で指定したときはアクセスできませんでした。 kamkamkam3さんは、「jdbc:db2://ホストIP:ポート番号/データベース名」で指定したときも、DB2にアクセスできたのでしょうか? もし、アクセスできているとすると、私の環境のどこかがおかしいということですね。 (インストール時に何かの設定を忘れているとか・・・) あと、localhostは自分のマシンのIPアドレスを指定する代わりに良く使われているみたいなので、データベース名ではないと思います。 データベース名はDB2で、"db2 create db XXXX"というコマンドでDBを作成するときに作る「XXXX」の部分になるようです。
お礼
ご回答ありがとうございます。 私が使用していたJDBCドライバーは、"COM.ibm.db2.jdbc.app.DB2Driver"でした。 ドライバーを"COM.ibm.db2.jdbc.net.DB2Driver"に変更したところ、"jdbc:db2://ホストIP:ポート番号/データベース名"という指定でDB2に接続できました。 ただ、"jdbc:db2:データベース名"で指定したら接続が出来なくなっていたので、それぞれのJDBCドライバーによってサポートされている接続方法が違うみたいですね。 どうもありがとうございました。