0

2つ以上のWebブラウザ/同じWebページに異なるタブのある同じブラウザにログインしようとすると問題が発生します。エラーが発生します。

Io例外:ソケットが閉じています

同時に更新/ログインすると、どちらかの側で。

マルチスレッドオープン接続を使用する必要がありますか?はいの場合、それはどのように行われますか?誰かがこの問題を手伝うことができますか?プログラムはJSPで書かれています。

4

1 に答える 1

0

コード内のどこConnectionにも、SQLを静的変数またはインスタンス変数として宣言および格納していないことを確認してください。

たとえば、これは悪いです:

public class SomeClass {

    private Connection connection;
    // Or
    private static Connection connection;

}

これは、SQL クエリを実行している場所とまったく同じメソッド ブロック内で宣言、作成、およびクローズする必要があります。

だから、これは良いです:

public class SomeDAO {

    public SomeEntity find(Long id) throws SQLException {
        Connection connection = null;
        // ...

        try {
            connection = database.getConnection();
            // ...
        }
        finally {
            // ...
            if (connection != null) try { connection.close(); } catch(SQLException ignore) {}
        }

        return someEntity;
    }

以下も参照してください。

于 2012-04-26T13:34:17.597 に答える