Я отлаживал проблему памяти в экземплярах Hazelcast. Я использую Hazelcast для реализации моей службы-исполнителя. Я не нужны результаты назад от исполнителя, и я просто продолжать идти на представления рабочих мест черезИсполнитель, используя Hazelcast
executorService.executeOnMember(Runnable, member);
Она работает хорошо в течение некоторого времени и после того, что память заполнена.
Я инструмент нить свалка, и я мог видеть это
at com.hazelcast.executor.RunnableAdapter.call(RunnableAdapter.java:49)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at com.hazelcast.executor.DistributedExecutorService$CallableProcessor.run(DistributedExecutorService.java:187)
at com.hazelcast.util.executor.CachedExecutorServiceDelegate$Worker.run(CachedExecutorServiceDelegate.java:186)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
at com.hazelcast.util.executor.HazelcastManagedThread.executeRun(HazelcastManagedThread.java:76)
at com.hazelcast.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:92)
Первое, что поразило меня были представленные работы уничтожены после завершения или мне нужно вручную кода для этого. Это произошло, когда мы используем FutureTask, который используется во время возвращения объекта.