PostgreSQLで実行されるSQLは、iDempiere上でキャッシュされています。キャッシュしているSQLの中には、めったに使用しないようなSQLも多数あり、定期的にキャッシュをリセットしないと、無駄なキャッシュでメモリ(Javaのヒープメモリ)を浪費しています。
一方で、iDempiereの標準のキャッシュリセット処理は、テーブルごとに実施する事ができますが、SQLのキャッシュはテーブルではないため、個別にリセットする事ができまず、SQLのキャッシュをリセットするためには、すべてのキャッシュをリセットしなければいけません。
そのためJPiereでは、PostgreSQLで実行されるSQLを個別指定してキャッシュリセットできるようにカスタマイズしました。
java
キャッシュリセットの引数に"DB_PostgreSQL_Convert_Cache"を渡して下さい。。
CacheMgt.get().reset("DB_PostgreSQL_Convert_Cache");
カスタマイズ情報
モディフィケーションクラス
◆org.compiere.util.CacheMgt
protected int resetLocalCache (String tableName, int Record_ID)メソッド
2024年11月30日: CacheMgtクラスをモディフィケーションしないで済むようにリファクタリングしました。
追加クラス
◆org.compiere.util.CacheReset_PostgreSQL
PosgreSQLのSQLのキャッシュリセットを実行するプロセス
カスタマイズ履歴
2024年11月30日(v11): リファクタリング
CacheMgtクラスをモディフィケーションしなくても、PostgreSQLのキャッシュをクリアできるようにリファクタリングしました。