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)メソッド
追加クラス
◆org.compiere.util.CacheReset_PostgreSQL
PosgreSQLのSQLのキャッシュリセットを実行するプロセス