JDBC接続できない原因
- 2006.07.25
- Oracle
なんで、Oracle8iへJDBC接続できないんだろ…と悩んでいたが、原因発覚!なんとSIDの名前を間違えていたのだ。tnsnames.oraのSERVICE_NAMEと違うじゃないかー!!
■ソースはこれ
Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@192.168.0.5:1521:ORA8"; String user = "scott"; String password = "tiger"; Connection conn = DriverManager.getConnection(url, user, password);
■エラーはこれ
java.sql.SQLException: I/O例外です。: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=135286784)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4)))) ...続くけど省略...
■SQL*PlusでSIDを確認
SQL> set termout off SQL> column sid0 new_value sid1 SQL> select rtrim(instance, chr(0)) sid0 from v$thread; SID0 ---------------- ORCL
■ついでにシェル上でも確認
$ echo $ORACLE_SID ORCL
■でもtnsnames.oraはというと
ORA8.xxx.com = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.0.5) (PORT = 1521)) ) (CONNECT_DATA = (SEVICE_NAME = ORA8) ) )
というように「ORA8」なので、ORA8を指定すると思っていたのだ。
■ということで
最初のソースのORA8をORCLに変更すれば、無事接続!
これを発見するのに導いてくれたY君に感謝!
-
前の記事
OracleのSQL*Plus便利もの 2006.07.25
-
次の記事
Java練習帳 2006.07.30