Можно ли остановить сборщик мусора Apache jackrabbit?

#java #garbage-collection #jackrabbit

Вопрос:

Мы используем Apache jackrabbit v.2.19.3 (не oak), и у нас возникли проблемы со сбором мусора. На нашем довольно значительном репозитории маркировка gc занимает слишком много времени. Фрагмент выглядит следующим образом:

 ... final String nodesCount = session.getRepository().getDescriptor("jcr.repository.stats.nodes.count"); org.apache.jackrabbit.core.gc.GarbageCollector gc;  final org.apache.jackrabbit.jca.JCASessionHandle jcaSessionHandle = (org.apache.jackrabbit.jca.JCASessionHandle) session; final org.apache.jackrabbit.core.XASessionImpl xaSession = (org.apache.jackrabbit.core.XASessionImpl) jcaSessionHandle.getManagedConnection().getSession(jcaSessionHandle); gc = xaSession.createDataStoreGarbageCollector(); gc.setMarkEventListener(new DMSDataStoreGCListener(nodesCount)); gc.mark(); gc.stopScan(); gc.sweep(); ...  

Правильно ли это использование API? Есть ли способ настроить максимально возможное время для сбора мусора? Или разделите его, чтобы он не работал по всему хранилищу… все, что позволит нам выполнить сборку мусора в рамках временного окна, предоставленного нам нашим клиентом.

Любая помощь будет признательна…