- - PR -
コネクション作成
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-01-31 20:58
どうも。はじめまして、はじめて投稿させていただきます。
現在、以下のようなクラスをつくり、ドライバをロードしてコネクションを作成し、 さらにSQLを実行してデータを削除したり追加したりしたいのですが、 コネクション作成時にエラーとなってしまいます。DBは別マシンでサーバーを たてています。 いろいろ調べてはみたのですが、どれも解決しないままおわっているので、 何故接続出来ないのかわからず悩んでおります。 <エラー内容> java.sql.SQLException: I/O例外です。: The Network Adapter could not establish the connection <環境> JDK:1.4.0_03 DBサーバー:Oracle8.1.6 オラクルクライアント:Oracle9i JDBCドライバのクラスパスも通しています。 <ソース> public class TableDataConverter { private static String strDriver = "oracle.jdbc.driver.OracleDriver"; private static String strUrl= "jdbc:oracle:thin:@xx.xx.xxx.xxx:1521:ORCL"; private static String strUserId = "user"; private static String strPassword = "pass"; private static String strTrunSql = ""; private static StringBuffer sbSelectSql = new StringBuffer(); private static StringBuffer sbInsertSql = new StringBuffer(); /** * main処理 */ public static void main(String arg[]) { //SQL文生成 createSQL(); Connection objCon = null; ResultSet objRS = null; Statement objStmt = null; PreparedStatement objPStmt = null; try { //JDBCドライバーロード Class.forName(strDriver); //データベース接続 objCon = DriverManager.getConnection (strUrl, strUserId, strPassword); ←ここでエラーとなります!!! 〜〜〜〜〜〜〜 以下省略 〜〜〜〜〜〜〜〜〜 } | ||||||||
|
投稿日時: 2005-02-01 04:19
" The Network Adapter could not establish the connection "はソケット接続が確立できなかったことを示します。
ファイアウォールとかで1521番への接続が禁止されていたりしませんか? SQLPlusで接続できるか、DBサーバ側でリスナが起動しているか、など確認してみましょう。 | ||||||||
|
投稿日時: 2005-02-01 22:42
アドバイスありがとうございます。
SQLPlusでは接続でき、DBサーバ側でもリスナは起動しています。 インギさんからファイアウォールのご指摘がありましたが、 ネットワーク絡みで遮断されている可能性が高いと思います。 現在、このあたりを確認中です。 | ||||||||
|
投稿日時: 2005-02-02 02:12
SQL Plus で接続できるっていうのはTableDataConverterを起動しているのと同一筐体ですよね?
それでも接続できないのであればプロセス毎に接続ポリシーがことなっていることになりますので、Windows XP SP2 などのクライアント側のファイウォールが影響しているかもしれませんね。 | ||||||||
|
投稿日時: 2005-02-02 22:48
こんにちは。
私も同じエラーを見たことがあります。 詳細を忘れてしまったのですが、
のホスト名のところを、いじって解決したような記憶があります。 どういじったかを忘れてしまったので、何とも言えませんが。 | ||||||||
|
投稿日時: 2005-02-03 00:27
この手の話題でよくあるのが、オラクルのSIDとSQL*NETのローカルネットサービス名を混同しているケースです。
# ちなみに、"jdbc:oracle:thin:@xx.xx.xxx.xxx:1521:ORCL" の一番最後に # ついてるのはSID、SQL*PLUSで指定するのはネットサービス名 もし私の勘繰りすぎなら、ごめんなさい。>かずさん | ||||||||
|
投稿日時: 2005-02-03 10:33
orclってoacleインストール直後のデフォルトでできてる
インスタンスですよね。何もいじってないならorclで行け そうですが。 | ||||||||
|
投稿日時: 2005-02-03 12:34
強調部分を追加してみたらどうですか? |