0

全て。

私は英語がうまく話せません..ごめんなさい。

Java プログラムの DB 接続に問題があります。

最初のコードは、各クエリの各接続を取得しています。

2 番目のコードは、クエリごとに 1 つの接続を使用するだけです。

ここにサンプルコードがあります。

例 #1

public void func() {
    Connection conn = null;
    try {
        conn = getConnection();

        //Just example.. 
        //Here, it is assumed that it has been successfully executed.
        String value1 = selectValue1(conn); 
        conn.close();

        conn = getConnection();
        String value2 = selectValue(conn); 
        conn.close();

    } catch(Exception e) {
        ....
    } finally {
        try { 
            if (conn != null) 
                conn.close();
        } catch(Exception e2) { }
    }
}

例 #2

public void func() {
    Connection conn = null;
    try {
        conn = getConnection();

        //Just example.. 
        //Here, it is assumed that it has been successfully executed.
        String value1 = selectValue1(conn); 
        String value2 = selectValue2(conn); 

    } catch(Exception e) {
        ....
    } finally {
        try { 
            if (conn != null) 
                conn.close();
        } catch(Exception e) { }
    }
}

どちらも機能的に実行されます。

しかし、性能テストを行っていると、問題が頻繁に発生しました。(同様のコードを実行するクラスは約 10 あります。)

**java.sql.SQLException: Connection does not exist**
    at Altibase.jdbc.driver.ex.exception(ex.java:52) ~[Altibase.jar:na]
    at Altibase.jdbc.driver.ex.exception(ex.java:37) ~[Altibase.jar:na]
    at Altibase.jdbc.driver.cmnTCP.send(cmnTCP.java:318) ~[Altibase.jar:na]
    at Altibase.jdbc.driver.cmp.flush(cmp.java:252) ~[Altibase.jar:na]
    at Altibase.jdbc.driver.cmp.writePrepareProtocol(cmp.java:1590) ~[Altibase.jar:na]
    at Altibase.jdbc.driver.ABConnection.prepare(ABConnection.java:1002) ~[Altibase.jar:na]
    at Altibase.jdbc.driver.ABPreparedStatement.<init>(ABPreparedStatement.java:62) ~[Altibase.jar:na]
    at Altibase.jdbc.driver.ABConnection.prepareStatement(ABConnection.java:1060) ~[Altibase.jar:na]
    at Altibase.jdbc.driver.ABConnection.prepareStatement(ABConnection.java:1055) ~[Altibase.jar:na]
    at Altibase.jdbc.driver.ABConnection.prepareStatement(ABConnection.java:1033) ~[Altibase.jar:na]
    at net.herit.ini.dbpool.PooledConnection.prepareStatement(PooledConnection.java:138) ~[slee.jar:na]

この問題を解決するにはどうすればよいですか? または違いは何ですか?&-|

どうも。

4

0 に答える 0