- PR -

JDBCドライバの読み込みについて

投稿者投稿内容
ココバット
会議室デビュー日: 2005/01/31
投稿数: 19
投稿日時: 2005-02-10 11:23
WebアプリケーションでJDBCドライバ接続を行っております。
そのWebアプリケーションからは、JDBCドライバを使用することが
できます。
そのWebアプリケーションの付属としてバッチファイルがあり
バッチファイルからJAVAコマンドでCLASSを呼んで、JDBC接続で
処理するようになっているのですがこちらは、JDBCドライバを
ロードできずに落ちていると思われる現象がありました。

WebアプリケーションのAPサーバはTomcatでDBはOracle9iです。
TomcatとOracleとバッチファイルは1つのサーバに入っております。
現象が発生したサーバのCLASSPATHの確認及びJDBCドライバを
違う環境に適用しましたが共に問題ありませんでした。
現象が発生したサーバのOSはWin2000 Serverです。

諸事情により、Webアプリケーションが出力しているログしか採取できず、
そのログでも落ちている箇所の推測しかできずに悩んでおります。

説明が下手で、冗長になってしまい申し訳ないですが
宜しくお願い致します。


[ メッセージ編集済み 編集者: ココバット 編集日時 2005-02-10 11:25 ]
NAO
ぬし
会議室デビュー日: 2001/10/24
投稿数: 1256
お住まい・勤務地: 神奈川のはずれから東京の下町
投稿日時: 2005-02-10 11:25
多重投稿の残り消して下さいね 
_________________
Inspired Ambitious
ISMS Assistant Auditor
ココバット
会議室デビュー日: 2005/01/31
投稿数: 19
投稿日時: 2005-02-10 11:31
NAOさん

多重投稿の件、大変失礼致しました。
使い方に不慣れなところがあり、多重投稿を
行っておりました。以後気をつけます。

ありがとうございました。
ココバット
会議室デビュー日: 2005/01/31
投稿数: 19
投稿日時: 2005-02-18 10:50
お客様からエラーのログを頂くことができましたので
ログを添付いたします。
JDBCドライバでエラーが発生しているようですが、
このエラーは何が原因かご存知の方はいらっしゃいますでしょうか?
同じJDBCドライバを使用して、自分の環境でも試したのですが
同じ現象にはなりませんでした。環境に依存しているような気もしますが。。。
■エラーログ
java.lang.ArrayIndexOutOfBoundsException
at oracle.security.o3logon.C1.r(C1)
at oracle.security.o3logon.C1.l(C1)
at oracle.security.o3logon.C0.c(C0)
at oracle.security.o3logon.O3LoginClientHelper.getEPasswd(O3LoginClientHelper)
at oracle.jdbc.ttc7.O3log.<init>(O3log.java:291)
at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:257)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:287)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:442)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:321)
at java.sql.DriverManager.getConnection(DriverManager.java:517)
at java.sql.DriverManager.getConnection(DriverManager.java:146)

宜しくお願い致します。
taro
ぬし
会議室デビュー日: 2003/10/20
投稿数: 316
投稿日時: 2005-02-18 11:08
http://forum.java.sun.com/thread.jspa?threadID=525992&messageID=2523361
これと現象は同じですね。
新しいjarにすると直ったとありますので、JDBCDriverのバグなのでしょうか。
ココバット
会議室デビュー日: 2005/01/31
投稿数: 19
投稿日時: 2005-02-18 19:44
http://forum.java.sun.com/thread.jspa?threadID=525992&messageID=2523361
を確認いたしました。
せっかくtaroさんに回答頂いておいて恐縮なのですが、
Tomcatからの接続はうまく動作して、Javaコマンドでのclassファイルからの
接続では動作しないのが腑に落ちないのです。
JDBCドライバのバグであれば、Tomcatからの接続も動作しないのではと考えております。
(お教え頂いたサイトでは、Tomcat等の実行環境には触れていないようでしたので)

お客様で使っていたclasses12.jarを自分の環境でも使ってみたのですが、
Tomcatからでもjavaコマンドでも動作しました。
お客様と自分のOracleとTomcatとJDKのバージョンは同じです。

何かしらの環境に依存するのかとも考えましたが、どうでしょうか。
その可能性はありますでしょうか?

以上、宜しくお願い致します。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-02-18 20:55
バッチファイルから実行されるときに設定されるクラスパスとTomcatで動くときのクラスパス
は別物だと思いますが、同じライブラリを参照していることは確認されているでしょうか。
ココバット
会議室デビュー日: 2005/01/31
投稿数: 19
投稿日時: 2005-02-21 10:25
引用:

ukさんの書き込み (2005-02-18 20:55) より:
バッチファイルから実行されるときに設定されるクラスパスとTomcatで動くときのクラスパス
は別物だと思いますが、同じライブラリを参照していることは確認されているでしょうか。



バッチファイルとTomcatで使われるクラスパスが違うのは知りませんでした。
環境変数のCLASSPATHには、Tomcatの「WEB-INF\LIB\classes12.jar」を設定しております。
バッチファイルからは、環境変数のCLASSPATHを見ていると認識しているのですが、
Tomcatは他のフォルダを参照している場合があるのでしょうか?

申し訳ありませんが、お教えいただけないでしょうか。
宜しくお願い致します。

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