Servlet context listeners unconditionally create a timer during contextInitialized? If so, this explains the problem, since the servlet context listener will run in each JVM. You need to somehow check if the first timer has already been created. Either use getTimers, or check / insert a row into your own database table.
source share