- PR -

DB接続ができません

投稿者投稿内容
迷い猫
常連さん
会議室デビュー日: 2004/08/13
投稿数: 30
投稿日時: 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 ]
ボア
ベテラン
会議室デビュー日: 2002/05/22
投稿数: 78
投稿日時: 2004-09-02 16:37
CODE=12505 とあるので、TNS-12505 かもしれません。
SIDが正しいか確認してみては?
迷い猫
常連さん
会議室デビュー日: 2004/08/13
投稿数: 30
投稿日時: 2004-09-02 16:43
回答ありがとうございます。

AccessやSQLPlusを使用してDBを見に行くことは出来るので、SIDはあっていると思います。上記のエラーはドライバ関係ではないということでしょうか?
yuzy
大ベテラン
会議室デビュー日: 2002/02/14
投稿数: 117
投稿日時: 2004-09-02 16:48
引用:

classes12.jarをojdbc14.jarにしてみましたがうまく出来ませんでした。



Oracle 8.x用の classes12.jar がクラスパス中に存在していて、
ojdbc14.jar よりも前に読み込まれている、ということはないでしょうか?
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-09-02 17:00
引用:

迷い猫さんの書き込み (2004-09-02 16:43) より:
AccessやSQLPlusを使用してDBを見に行くことは出来るので、SIDはあっていると思います。上記のエラーはドライバ関係ではないということでしょうか?


使用しているのはThin Driverですね? であれば、ODBCやSQL*Plusで指定するSIDとThin
Driver使用時に指定するSIDはイコールではないので、その辺でエラーになっているように
思います。
迷い猫
常連さん
会議室デビュー日: 2004/08/13
投稿数: 30
投稿日時: 2004-09-02 17:18
yuzyさん回答ありがとうございます。

classes12.jarをCLASSPATHの中から消してみて、動かしてみましたが、
変わらず同じエラーは発生してしまいます。


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

使用しているのは、Thin Driverです。
ODBCやSQL*Plusで指定するSIDとThin
Driver使用時に指定するSIDはイコールではないのですか?
SIDとはサービス名ではないのですか?

全て質問で返してしまって申し訳ありません。
ねこのこ
会議室デビュー日: 2004/09/01
投稿数: 6
投稿日時: 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時に指定した値です。

いかがでしょう?
okutin
ベテラン
会議室デビュー日: 2003/12/11
投稿数: 98
お住まい・勤務地: 広島
投稿日時: 2004-09-02 17:36
こんにちは。

引用:

迷い猫さんの書き込み (2004-09-02 17:18) より:

使用しているのは、Thin Driverです。
ODBCやSQL*Plusで指定するSIDとThin
Driver使用時に指定するSIDはイコールではないのですか?
SIDとはサービス名ではないのですか?




ODBCやSQL*Plusで指定するのは普通はサービス名です。
Thin DriverではSIDを指定します。
そして、サービス名とSIDは違うものです。

スキルアップ/キャリアアップ(JOB@IT)