• 締切済み

JavaからOracleへの接続が出来たり出来なかったりする

こんにちは。 いつもお世話になっています。よろしくお願いします。 Javaで、 JDBCドライバをロードし、OCI接続をして、 Oracleのデータベースを操作しています。 この、ロード接続の部分が、出来たり出来なかったりする不思議な現象に困っています。 ソースの中の一部分ですが、 (1)文字列を表示する処理 (2)JDBCドライバのロードとOracleへの接続処理 (3)キーボード入力を促す処理 という順番で、処理があります。 (1)の表示がされた状態で以下、エラー処理の表示になります。 イコール 同じソースで(3)までうまく進む時もあります。 (1)の表示がされた部分で長らく固まっていて、1~2分後に突然 (3)の入力を促す処理に進んだりもします。 このような現象を経験されたことのある方、 またOracleの接続にお詳しい方、 どうか、ご教授よろしくお願いします。

noname#106387
noname#106387
  • Java
  • 回答数1
  • ありがとう数1

みんなの回答

回答No.1

実際のソースやエラー内容が書かれていないのでなんともいえませんが。 適当にエスパーすると。 コネクションを正しくクローズしていなかったりでDB側のリソースが開放されるまで接続されなくなっている、とかでしょうか。 せめて環境やソース、エラー内容等を提示してもらえないとまともな回答はつかないですよ。

noname#106387
質問者

お礼

ProKaseifuさん、回答くださってありがとうございます! 質問方法のアドバイスまで下さってとても有難く思います。 質問内容についてアドバイス下さったことに従い、 もう一度書くことにします。 よろしければ、そちらでもまたご回答くだされば幸いです。 ありがとうございました!

関連するQ&A

  • javaでのORACLEへの接続

    javaでのORACLEへの接続方法を教えてください javaの初心者なのですが、JAVAでのORACLEへの接続方法がよくわかりません。 解説書のORACLEへの接続へのクラスファイルを実行してみましたがエラーとなって しまいます。(コンパイルは通ります)ちなみにクラスファイルの中身は... import java.sql.*; /* 省略 */ Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@hostname:1521:ORA817"; /* 省略 */ Connection conn = DriverManager.getConnection(url, user, password); /* 以下省略 */ この中でJDBCドライバのURLの@hostnameの部分にサーバーのIP(202.15....) ORA817の部分にデータベース名を入れ、ユーザ-、パスワードも実在するものにしてあります。Class.forNameの部分は変える必要があるのでしょうか?ファイルの場所は"C:\A116"です。ちなみにエラーメッセージは... C:\A116>java GetConnectionDemo java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at GetConnectionDemo.main(GetConnectionDemo.java:6) ORACLEサーバ WINDOWS2000 ORACLE 8.1.6i です。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • JavaからOracleへの接続が出来たり出来なかったり(改

    いつもお世話になっています。よろしくお願いします。 問題は、同じソースなのに、タイミングによって Oracleに接続出来たり、出来なかったりすることです。 まずは、問題のソースを短くまとめたものを書きたいと思います。 public class Sql private static Statement stmt; private static Connection conn; public static void main(String args[]) { Sql banana = new Sql banana(); banana.openOracle(); // Oracleへ接続するメソッドです。 ・ ・リャクサレテルワァ*:.。..。.:*・゜(n;‘∀)η(略 ・ banana.closeOracle(); // Oracleを切断するメソッドです。 } /** * Oracleへ接続するメソッドです。 */ private void openOracle() throws SQLException, ClassNotFoundException{ Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection("jdbc:oracle:oci8:@sampledb","user5","user5"); stmt = conn.createStatement(); } /** * Oracleを切断するメソッドです。 */ private void closeOracle() throws SQLException, ClassNotFoundException{ stmt.close(); conn.close(); } } 環境としては、 JDK5.0と、 Oracle9i(Client)をインストールしています。 インストールしてから今日まで1週間ですが、このような現象は 初めて起こりました。 JavaからOracleのデータベースを操作するようになって 3日目ですが、今日までうまく接続出来てきました。 処理をメソッドに分けてみたのは、今日が初めてです。 しかし、同じソースで接続できたりできなかったりする というのは、どういう現象なのでしょうか。 同じような現象を経験された方、 Oracle接続にお詳しい方、 どうか、ご教授よろしくお願いします。 プログラミングも、質問させていただくことも初心者ですので、 何か足りない情報などございましたら、ご指摘ください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • JAVAからORACLEへの接続について

    JAVAからORACLEへの接続について教えてください。 JAVAからORACLEデータベースに接続するには何が必要ですか? 自分としてはORACLEに標準でついているJDBCを使用すれば 接続できると思っているのですが... なにせ、JAVA、ORACLEの知識がほとんどないので宜しくお願いします。 ちなみに、何が必要というのは、お金のかかるものがいるかどうかです。 接続できる環境についてもなるべく詳しく知りたいと思っています。 宜しくお願い致します。

  • oracleへの接続

    Java初心者です。oracleについて勉強しているのですが なかなかうまくいきません。 Class.forName("oracle.jdbc.driver.OracleDriver"); Connection connection=DriverManager.getConnection("jdbc:oracle:thin:@dbserver:1521:oracle","test","test"); jdbc:oracle:thin:@(ホスト名):(ポート番号): (接続するデータベースのSID)   ↑   ↑ この接続するデータベースのSIDとはどういう意味なの でしょうか? もしかしたら追加質問をするかもしれないので よろしくお願いします。

  • JavaでのOracle接続について(JDBC)

    はじめまして。 先週よりJavaの勉強を始めていまして 先日からDB接続(Oracle)をやっているのですが、Oracleに接続することが出来ません。色々なサイトからクラスパスが通っていないというエラーのようなのですが、プログラミング経験のある友人に聞いてもさっぱり原因が分かりません。また何度もインストールをやり直して同じです。以下に環境とソースを載せておきますので、もし何か解決のヒントになるような事がありましたら教えて下さい。 ●状況 (1)コンパイルは通るがjavaコマンドで実行をすると”Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driveOracleDriver”が出てしまう。 (2)C:\oracle\ora92\jdbc\lib\ojdbc14.jarを環境変数→Pathへしっかりと通してあります。(setコマンドでも確認済みです) (3)C:\j2sdk1.4.1_02\jre\lib\extへojdbc14.jarをコピー (4)SQL PLUSからは接続出来る。 ●環境 クライアント:Win2000 DBサーバー:SQLサーバー(別マシンに環境構築) DB:Oralce9.2.0 JDK:1.4.1_02 import java.sql.*; class Employee { public static void main (String args []) throws SQLException,ClassNotFoundException { // Oracle JDBC Driverのロード Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@ホスト名:1521:SID", "ID", "パスワード"); Statement stmt = conn.createStatement (); ResultSet rset = stmt.executeQuery ("SQL"); while (rset.next ()) System.out.println (rset.getString ("ISBN")); rset.close(); conn.close(); } } 以上です。何か足りない情報がありましたら教えて下さい。

  • java データベース接続

    javaの勉強していまして、質問があります。よろしくお願いします。 javaでデータベースの接続ができなくて迷っております。ずっとネットで調べてもダメでした。 ネットで調べたとおりにやっても、 例外発生:java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver このようなエラーがでます。 eclipseを使ってます。windows7 練習にアクセスにつなごうと思ってます。 事前にデータソース(ODBC)の登録はしました。 ドライバーとかインストールするものなのでしょうか? package sample; import java.sql.Connection; import java.sql.DriverManager; public class Hello { public static void main(String args[]) { try { //JDBCドライバのロード Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //各設定 String url = "jdbc:odbc:SampleDB030"; String user = ""; String pass = ""; //データベースに接続 Connection con = DriverManager.getConnection(url,user,pass); System.out.println("接続成功"); //データベースを切断 con.close(); } catch (Exception e) { System.out.println("例外発生:" + e ); } } }

    • ベストアンサー
    • Java
  • ORACLEに接続できない

    お世話になります。 JAVAでoracleに接続しようとしているのですが cmdからの接続はできたのですが tomcatでの接続が行えません。 oracle 9i Tomcat 5.5 エラー内容は java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver です。 接続するコードは以下のようです。 String drv = "oracle.jdbc.OracleDriver"; String dsn = "jdbc:oracle:thin:@localhost:1521:SID"; その他補足も致しますので、 ご教授宜しくお願い致します。 また、上記コードを使用した別のコードで行ったところ CMDでの接続はできましたので classPathは通っているとおもうのですが…

    • ベストアンサー
    • Java
  • oracle9iにJDBC接続が出来ない

    oracle9iにJDBCで接続したいのですがI/O例外が出てうまくいきません。 多分、DriverManager.getConnection の引数のURLが間違っているのだと思うのですが。 jdbc:oracle:thin:@<ホスト名>:<リスナのポート番号>:<Oracle SID> ホスト名・ポート番号・Oracle SID はどこを見ればわかるのでしょうか? ちなみに出ているエラーは以下のとうりです。 Exception in thread "main" 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 java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at JavaDataAccess01.main(JavaDataAccess01.java:13) 何か参考になるHPなどあれば教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • oracle thin driver はタダ?

    oracle thin driver は無料で配布されているものなのでしょうか? oracle thin driverはORACLEのホームページからダウンロードすることが できますが、これには接続数等の制限があるのでしょうか?制限があると すれば、ORACLEクライアントに付属するJDBCドライバ(thin,oci)にも 制限があるのでしょうか? ご存知の方教えてくださいm(__)m

    • ベストアンサー
    • Java
  • tomcatからのoracle接続エラーについて

    お世話になります。 javaサーブレットからoracleに接続する際、以下のエラーが発生して困っております。 エラー:java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver 解決するための情報を頂けますでしょうか。 私がテストしている環境は、以下となります。 【Webサーバ】 centOS5.5. jdk1.6 tomcat5.5 【DBサーバ】 centOS5.5. oracle11g r2 jdbcドライバーは、ojdbc6.jarを使用しております。 ドライバーは、Webサーバの /WEB-INF/libと$TOMCAT_HOME/common/lib配下に設置しております。 環境変数クラスパスに$TOMCAT_HOME/common/libが、設定されていることも確認しております。 JDBCドライバについては、以下の3パターンで試してみましたがすべて同じエラーとなりました。  ・オラクルインストール時のもの(DBサーバ)  ・オラクルHPの11g r2(11.2.0.1)のもの  ・オラクルHPの11g r2(11.2.0.2)のもの どのJDBCドライバを配置した時も、cataline.outには、 oracle.jdbc.OracleDriverクラスが、追加できたというログが出力されておりました。 尚、同じWebサーバでpostgresqlに接続するjavaサーブレットは、/WEB-INF/lib 配下にJDBCドライバーを配置しているだけで問題なく動作しております。 お手数お掛け致しますが、ご教授宜しくお願い致します。

    • ベストアンサー
    • Java

専門家に質問してみよう