後に閉鎖され、私は、context.xmlファイル内でこの方法をconfiguedしているのはなぜデータベース接続は、私はTomcatの6で接続プーリングを使用していますすべての操作
<Resource name="jdbc/myoracle" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:ORCLE"
username="scott" password="tiger" maxActive="20" maxIdle="10"
maxWait="-1"/>
そして、これは、データソースを使用して接続を取得するために私のファクトリクラスです。
public class ConnPoolFactory {
private static DataSource dataSource;
private static Connection connection;
private ConnPoolFactory() {
}
public static synchronized Connection getConnection() throws SQLException {
try {
if (connection == null) {
Context initContext = new InitialContext();
Context envContext = (Context) initContext
.lookup("java:/comp/env");
dataSource = (DataSource) envContext.lookup("jdbc/myoracle");
connection = dataSource.getConnection();
} else {
return connection;
}
} catch (NamingException e) {
e.printStackTrace();
}
return connection;
}
}
そして最後にブロック内の私のサーブレットから
、私はそれをこのようtry {
connection = ConnPoolFactory.getConnection();
finally
{
if(conn!=null)
con.close();
}
を閉じています3210
私のユーザーインターフェイスから、私はInsert、Update、Delete、Select - のような異なるコマンド(ボタンを押す)を与えることができます。
私が直面している問題は、アプリケーションが1つのコマンドに対してのみ実行されるということです。たとえば、[挿入]ボタンをクリックした場合、レコードを正常に挿入しています。接続が閉じられているというサーバーコンソールの例外が表示されます。
私はようやく私のサーブレット内のコードをブロックすることを削除した場合、アプリケーションは、コマンドの任意の数の
のために正常に動作誰もいただきましたことfinnalyブロックと間違って私に教えてもらえます?
あなたはcloseを呼び出した後に接続が閉じられているのか疑問に思っていますか? – Mat