Вы можете вместо этого использовать memcached. Я не знаю, есть ли модуль оболочки Tomcat / JBoss для этой программы или нет. Это позволит вам кэшировать практически любые данные, которые вы можете сериализовать, и создать значение строкового ключа.
Вы должны написать аксессор для того, что вам нужно, который пытается извлечь что-то из процесса memcached и / или вызывает функцию генератора при пропадании кэша (а также кеширует результат генератора). В этом методе доступа вы можете регистрировать попадания и пропуски кэша.
Демон memcached написан, конечно, на C, поэтому он не будет "метиться и сметаться" до смерти, удерживая данные, в отличие от java (или большинства других "современных" сред выполнения языков).
С другой стороны, возможно, у mod_cache есть несколько ловушек для регистрации. Может быть, вам стоит заняться этим, поскольку это уменьшит нагрузку на ваш Java-процесс.
Это близко к тому, что вы ищете?