こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

JDBC Connectionを開放し続ける方法

JDBC経由でOracleに接続して、接続しっぱなしにしたいのですが、どうすればいいのかよくわかりません。
とりあえず正常終了するようなソースを書いてみました。このソースからconnectionをCloseしないように編集したいのですが、どうすればいいのかわかりません。
やりたいことはJDBCの複数同時Connectionを試したくて、このConnectionを維持したまま、何回かこのプログラムを実行すればいいかなと思っているんですが。
長くなりましたが、よろしくお願いします。

import java.sql.*;

class Employee
{
public static void main (String args [])
throws SQLException
{
// Load the Oracle JDBC driver
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

// Connect to the database
// You must put a database name after the @ sign in the connection URL.
// You can use either the fully specified SQL*net syntax or a short cut
// syntax as <host>:<port>:<sid>. The example uses the short cut syntax.
Connection conn =
DriverManager.getConnection ("jdbc:oracle:thin:@HOST:PORT:SID",
"scott", "tiger");

// Create a Statement
Statement stmt = conn.createStatement ();

// Select the ENAME column from the EMP table
ResultSet rset = stmt.executeQuery ("select ENAME from EMP");

// Iterate through the result and print the employee names
while (rset.next ())
System.out.println (rset.getString (1));
}
}

投稿日時 - 2005-06-23 12:09:55

QNo.1467846

困ってます

質問者が選んだベストアンサー

Connection#finally()が走ったりプログラムが終了すると
クローズされてしまいます。

コネクションのインスタンスを保持するようにしましょう。
簡単な改修は、以下のようなものです。
いくつコネクションを保持するかはループ回数で
調整してください。

public static void main (String args []) {
List conList = new ArrayList();

for (int i = 0; i < 10; i++) {
// もともとのロジックの内容
conList.add(conn); // Connectionのインスタンスを保持
}
}

投稿日時 - 2005-06-24 20:48:48

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

複数スレッドで実行してみては?

Threadクラスを継承してrun()メソッドの中に
質問のmain()メソッドの中身を書いて、
main()メソッドの中では複数のThreadを起動して実行する。
ってな感じで。

投稿日時 - 2005-06-23 14:20:47

ANo.1

>このConnectionを維持したまま、何回かこのプログラムを実行すればいいかなと思っているんですが。

試してみればいいのでは?
容易に試せない環境なのかな?

質問を読む限りでは、その方法でも問題ないと思うのですが。

投稿日時 - 2005-06-23 12:41:44

補足

実際に試してみたのですが、プログラムが終了すると、Connectionも切断されてしまいます。バッチ等で複数回実行してみても一つの処理が終了してから次の処理へいくので複数のConnectionを作成することができないんです。

投稿日時 - 2005-06-23 13:25:04

あなたにオススメの質問