1

私は現在、もともと高負荷向けに構築されていなかったプロジェクトに取り組んでいます。

私の問題は、ストレス テスト (30 ユーザー) 中のある時点で、アプリケーションが「動かなくなった」ように見え、リリース時に多くの例外を吐き出すことです。Unable to get managed connection for [MY_DS]

1 人のユーザーのみを実行すると、魅力的に機能するので、同時実行性と関係があります。また、1 回の実行の最後にクローズされていない DB 接続があるかどうかも確認しましたが、何もなかったので、通常の使用では接続リークはありません。

私の疑いは、open メソッドと close メソッドに向けられています (これらは静的であるため)。メソッドは次のとおりです。

public static Connection getConnection() {
    if (logger.isDebugEnabled()) logger.debugLog("getConnection()");
    try {
        return DSUtils.getDefaultDataSource().getConnection();
    } catch (SQLException se) {
        logger.errorLog("SQLException", se);
        throw new ApplicationRuntimeException(MessageCodesConstants.ERROR_SQL_EXCEPTION, se);
    }
}

public static void closeConnection(Connection con) {
    if (logger.isDebugEnabled()) logger.debugLog("closeConnection");
    try {
        if (con != null) {
            con.close();
        }
    } catch (SQLException se) {
        logger.warnLog("SQLException while closing connection");
    }
}

これは、SQL Server 2008 によってバックアップされた JBoss EAP 6.2.0 で実行される EE アプリケーションです。

誰かが私を正しい方向に向けて、解決策を見つけることができる場所を見つけることができますか?

4

0 に答える 0