I am converting an existing threaded Java application to run in an EJB environment and have been stumped with one design issue. I use a cache object to store data that is expensive to retrieve and time the data out with a configurable TTL, after which, the data is refreshed. A typical TTL is 4 - 8 hours. I would like to keep this data in memory for speed since it is referred to often. In an EJB environment, I can no longer create threads to manage the cache nor can I ensure that the container will keep the data around unless it is wrapped in an entity bean, which I don't think I want to do. Has anyone else faced this problem? How did you solve it? Thanks in advance for the help.