- - PR -
JDBCドライバの読み込みについて
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 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 ] | ||||
|
投稿日時: 2005-02-10 11:25
多重投稿の残り消して下さいね _________________ Inspired Ambitious ISMS Assistant Auditor | ||||
|
投稿日時: 2005-02-10 11:31
NAOさん
多重投稿の件、大変失礼致しました。 使い方に不慣れなところがあり、多重投稿を 行っておりました。以後気をつけます。 ありがとうございました。 | ||||
|
投稿日時: 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) 宜しくお願い致します。 | ||||
|
投稿日時: 2005-02-18 11:08
http://forum.java.sun.com/thread.jspa?threadID=525992&messageID=2523361
これと現象は同じですね。 新しいjarにすると直ったとありますので、JDBCDriverのバグなのでしょうか。 | ||||
|
投稿日時: 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のバージョンは同じです。 何かしらの環境に依存するのかとも考えましたが、どうでしょうか。 その可能性はありますでしょうか? 以上、宜しくお願い致します。 | ||||
|
投稿日時: 2005-02-18 20:55
バッチファイルから実行されるときに設定されるクラスパスとTomcatで動くときのクラスパス
は別物だと思いますが、同じライブラリを参照していることは確認されているでしょうか。 | ||||
|
投稿日時: 2005-02-21 10:25
バッチファイルとTomcatで使われるクラスパスが違うのは知りませんでした。 環境変数のCLASSPATHには、Tomcatの「WEB-INF\LIB\classes12.jar」を設定しております。 バッチファイルからは、環境変数のCLASSPATHを見ていると認識しているのですが、 Tomcatは他のフォルダを参照している場合があるのでしょうか? 申し訳ありませんが、お教えいただけないでしょうか。 宜しくお願い致します。 | ||||
