プロが教えるわが家の防犯対策術!

WebSphereとDB2を使用してDB2へアクセスしてテーブルからデータの取得をしたいと思っています。
このとき、DB2のJDBCを使用しますが、getConnectionでコネクションを取得するときに指定するDBのURLに、複数の指定方法があるようです。

その1: jdbc:db2:データベース名
その2: jdbc:db2://ホストIP:ポート番号/データベース名

その1の方法ではコネクションを取得できたのですが、その2の方法では失敗しました。

ホストIPには自分のマシンのIPを、ポート番号にはDB2をインストールしたときに設定した番号を指定しました。

この両者の違いをご存知の方は教えてください。
また、その2の方法でなぜ失敗したのか、見当がつく方がいたらこちらも教えていただきたいと思います。

なお、実行環境は以下の通りです。

CPU ペンティアム3 800Mhz
メモリ 512MByte
OS Windows2000 SP2
ブラウザ IE5.5 SP2
AS Websphere 4.0
DB DB2 7.2

※WebshpereとDB2は同一マシンにインストールされています。

A 回答 (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点を確認してみては?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

私が使用していたJDBCドライバーは、"COM.ibm.db2.jdbc.app.DB2Driver"でした。
ドライバーを"COM.ibm.db2.jdbc.net.DB2Driver"に変更したところ、"jdbc:db2://ホストIP:ポート番号/データベース名"という指定でDB2に接続できました。

ただ、"jdbc:db2:データベース名"で指定したら接続が出来なくなっていたので、それぞれのJDBCドライバーによってサポートされている接続方法が違うみたいですね。

どうもありがとうございました。

お礼日時:2002/08/21 10:18

全然違ってたらすみません。



私も最初は、jdbc:db2://ホストIP:ポート番号/データベース名
に教えてもらったんですが、ホストIP:ポート番号は省略できますよ。

jdbc:db2:///データベース名 でOKです。

なお、難しいことは分かりませんが、データベース名はlocalhostで良いんではないでしょうか?
    • good
    • 0
この回答へのお礼

ご回答をありがとうございます。

今の環境は、DB2とWebSphereは同一マシン上にあるので、ホストIPとポート番号の指定がなくてもDB2にアクセスできます。

しかし、DB2とWebSphereが別のマシン上にあるときは、このままだとアクセスできないと思うので、今回質問させていただきました。

最初の質問でも書いたように、「jdbc:db2:データベース名」で指定したときは、アクセスできました。
ちなみに、「jdbc:db2:///データベース名」で指定したときはアクセスできませんでした。

kamkamkam3さんは、「jdbc:db2://ホストIP:ポート番号/データベース名」で指定したときも、DB2にアクセスできたのでしょうか?

もし、アクセスできているとすると、私の環境のどこかがおかしいということですね。
(インストール時に何かの設定を忘れているとか・・・)

あと、localhostは自分のマシンのIPアドレスを指定する代わりに良く使われているみたいなので、データベース名ではないと思います。
データベース名はDB2で、"db2 create db XXXX"というコマンドでDBを作成するときに作る「XXXX」の部分になるようです。

お礼日時:2002/08/20 11:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!