0

全部。

我英语说得不好。。对不起。

我在 java 程序中遇到了 DB Connection 的问题。

第一个代码是为每个查询获取每个连接。

第二个代码只是为每个查询使用一个连接。

这是示例代码。

示例 #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