Я работаю с кластеризованной средой WebLogic 10.3.5. Мое приложение включает в себя таймер EJB, для которого я реализовал поддержку, как в следующем example. Таймер создается для одного кадра с определенным таймаутом, затем создается снова, когда он закончил свою работу. Другими словами:Повторяющиеся записи таймера в WEBLOGIC_TIMERS
- создать таймер с (скажем) 5 минут тайм-аут
- пожаров таймер и начинает свою работу
- работа заканчивается, и новый таймер создается с тем же периодом
Насколько я знаю, таймеры с одним выстрелом автоматически отменяются сервером приложений при их запуске.
Я имею дело с очень серьезной проблемой, потому что теперь у меня есть огромное количество экземпляров таймера. В таблице WEBLOGIC_TIMERS я нахожу много записей вместо одного. Все они имеют другое значение START_TIME и INTERVAL = -1.
Это производственная среда, поэтому у меня мало или вообще нет доступа к ней. Узлы Weblogic были перезапущены, но ничего не изменилось.
Как я могу это решить? Могу ли я просто удалить строки из WEBLOGIC_TIMERS?
Дополнительная информация об этом странном поведении. Попросив экземпляр таймера о его следующем тайм-ауте и оставшемся времени (методы getNextTimeout() и getTimeRemaining() в javax.ejb.Timer), я получаю соответственно дату в прошлом и около 24 часов. СУБД находится на другом сервере, чем кластер Weblogic, поэтому я попросил кого-то проверить различия в системных датах. Сервер Oracle на несколько минут раньше, чем серверы weblogic. Может ли это объяснить? И как ? – prepetti