sql >> データベース >  >> RDS >> Mysql

JDBC4Connectionのメモリリーク

    Duffymoはほぼ間違いなく正しいです。過去にメモリリークが発生したときは、実質的に常にMySQLJDBCドライバーです。どこかで1つの小さなResultSetまたはConnectionまたはStatementを閉じるのを忘れているだけです。コードベースを使用して問題を見つけ、問題が解決されたことを確認するたびに、コードベース全体を監査することになりました。

    HashMapに関しては、私もそれを見ました。ソースを見ていませんが、MySQLドライバーが行(少なくとも行の値)をHashMapsに内部的に格納しているように感じました。

    ResultSetsのリークは悲しいことに簡単です。 JDK 7または8で、これ自体を処理するクローズ可能なリソースのアイデアは、この理由で私にとって本当に魅力的です。

    どこかにshimクラスを挿入して(たとえばConnectionの場合)、開いた/閉じた各リソースをログに記録して、すべてのソースを直接読み取ることなく、リークがどこにあるかを把握できるかどうかを確認できます。



    1. MySQLの日付と時刻の関数は存在しません

    2. 無効なPathExpression。 StateFieldPathExpressionである必要があります

    3. oracle11gとHibernateSpringとjsfの統合

    4. oraclesqlで週末と祝日を除く日付差のカスタム関数を作成します