Накопление сообщений для темы JMS указывает на наличие по крайней мере одной неактивной постоянной подписки или, возможно, медленных потребителей подписки. В общем, вы можете предотвратить это, удалив неактивные долгосрочные подписки, ускорив медленных потребителей подписок, замедлив производство сообщений, чтобы потребители могли не отставать, и т. Д.
Если вы не хотите хранить сообщения старше 30 дней, вы можете попробовать использовать функцию «Время жизни сообщения», определенную спецификацией JMS. В разделе 4.8 спецификации JMS 1.1 говорится:
Клиент может указать значение времени жизни в миллисекундах для каждого отправляемого сообщения. Это значение определяет время истечения срока действия сообщения, которое является суммой времени жизни сообщения и времени его отправки по Гринвичу (для транзакционных отправок это время отправки сообщения клиентом, а не время фиксации транзакции).
Провайдер JMS должен делать все возможное, чтобы срок действия сообщений истекал точно; однако JMS не определяет предоставляемую точность. Недопустимо просто игнорировать время жизни.
Для получения дополнительной информации об истечении срока действия сообщения см. Раздел 3.4.9 «JMSExpiration».
Время жизни сообщения можно установить, когда сообщение отправлено с помощью _ 1_ или один из перегруженных send()
методов. Это, конечно, потребует изменения кода отправляющего приложения.
Многие брокеры поддерживают установку времени жизни или истечения срока действия сообщения на брокере, поэтому модификации клиента не являются строго необходимыми. Я недостаточно знаком с Weblogic, чтобы знать, поддерживает ли он эту функцию или нет, но стоит изучить вопрос, хотите ли вы использовать это решение и не хотите изменять своих клиентов.
person
Justin Bertram
schedule
29.07.2019