How to handle multiple users access a web page at the same time without socket close in any users side

StackOverflow https://stackoverflow.com/questions/10328786

質問

I have a problem where I have tried to login two or more web browser/same browsers with difference tab to the same web page, there will had an error said

Io exception: Socket closed

in either one side when refresh/login in the same time.

Should I use multithread open connection? If yes how it be done? Can anyone help with this problem? The program is written in JSP.

役に立ちましたか?

解決

Make sure that you are not declaring and storing the SQL Connection as a static or instance variable anywhere in your code.

E.g, this is bad:

public class SomeClass {

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

}

It should be declared, created and closed within the very same method block as where you're executing the SQL query.

So, this is good:

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;
    }

See also:

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top