- - PR -
DB接続ができません
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-09-02 14:03
こんにちわ。
いつもお世話になっています。 今回は、DB接続について質問をさせてください。 Oracleに接続をしたいのですが、下記のようなエラーが出てしまいま。 サーバーに入っているOracleが8の時はうまく出来ていたのですが、バージョンが9.0.1になったら、接続が出来なくなってしまいました。 JDBCドライバが違うのかなと思い、ネットで調べてみて、classes12.jarをojdbc14.jarにしてみましたがうまく出来ませんでした。すみませんがどなたかご教授を宜しくお願い致します。 ○エラー内容 致命的: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory, cause: java.sql.SQLException: I/O例外です。: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=150999297)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4)))) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:335) at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:361) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:442) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:321) at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:82) at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:300) at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:838) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:821) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:518) <省略> at java.lang.Thread.run(Unknown Source) 以上、長くなって申し訳ありませんが、宜しくお願い致します。 環境 WindowsXP j2sdk1.4.2_02 Tomcat5.0 Struts1.1 apache-ant-1.5.3-1 [ メッセージ編集済み 編集者: 迷い猫 編集日時 2004-09-02 18:34 ] | ||||
|
投稿日時: 2004-09-02 16:37
CODE=12505 とあるので、TNS-12505 かもしれません。
SIDが正しいか確認してみては? | ||||
|
投稿日時: 2004-09-02 16:43
回答ありがとうございます。
AccessやSQLPlusを使用してDBを見に行くことは出来るので、SIDはあっていると思います。上記のエラーはドライバ関係ではないということでしょうか? | ||||
|
投稿日時: 2004-09-02 16:48
Oracle 8.x用の classes12.jar がクラスパス中に存在していて、 ojdbc14.jar よりも前に読み込まれている、ということはないでしょうか? | ||||
|
投稿日時: 2004-09-02 17:00
使用しているのはThin Driverですね? であれば、ODBCやSQL*Plusで指定するSIDとThin Driver使用時に指定するSIDはイコールではないので、その辺でエラーになっているように 思います。 | ||||
|
投稿日時: 2004-09-02 17:18
yuzyさん回答ありがとうございます。
classes12.jarをCLASSPATHの中から消してみて、動かしてみましたが、 変わらず同じエラーは発生してしまいます。 ukさん回答ありがとうございます。 使用しているのは、Thin Driverです。 ODBCやSQL*Plusで指定するSIDとThin Driver使用時に指定するSIDはイコールではないのですか? SIDとはサービス名ではないのですか? 全て質問で返してしまって申し訳ありません。 | ||||
|
投稿日時: 2004-09-02 17:34
どのように接続部分の記述がされているか分かりませんが、
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:<host-name>:<port#>:<sid>","user-id","password"); で接続できましたよ。 "jdbc:oracle:thin:"は固定で、host-name、port#、sidは ご自身が使用している環境の情報をセットしてください。 SQL*Plusで接続する際の connect user/password@hostname のhostnameを上記の<host-name>部分に、 あとのport#とsidはNet Config時に指定した値です。 いかがでしょう? | ||||
|
投稿日時: 2004-09-02 17:36
こんにちは。
ODBCやSQL*Plusで指定するのは普通はサービス名です。 Thin DriverではSIDを指定します。 そして、サービス名とSIDは違うものです。 | ||||
