Я не смог выяснить это только с помощью Google. Я подключаюсь к теме краткосрочного EMS, в которой публикуются обновления набора данных. Если я пропущу несколько обновлений, это не имеет значения, так как следующее обновление все равно перезапишет его.
Количество сообщений, публикуемых по теме EMS, довольно велико, и иногда по какой-либо причине потребитель отстает. Есть ли способ на стороне подключения клиента определить «время жизни» для сообщений? Я знаю, что есть на других брокерах, но конкретно на Tibco я не смог понять, возможно ли это или нет, только то, что этот параметр определенно можно установить на стороне сервера для всех клиентов (это не вариант для меня).
Я создаю свою фабрику соединений, а затем создаю конечную точку Apache Camel jms со следующим кодом:
TibjmsConnectionFactory connectionFactory = new TibjmsConnectionFactory();
connectionFactory.setServerUrl(properties.getProperty(endpoints.getServerUrl()));
connectionFactory.setUserName(properties.getProperty(endpoints.getUsername()));
connectionFactory.setUserPassword(properties.getProperty(endpoints.getPassword()));
JmsComponent emsComponent = JmsComponent.jmsComponent(connectionFactory);
emsComponent.setAsyncConsumer(true);
emsComponent.setConcurrentConsumers(Integer.parseInt(properties.getProperty("jms.concurrent.consumers")));
emsComponent.setDeliveryPersistent(false);
emsComponent.setClientId("MyClient." + ManagementFactory.getRuntimeMXBean().getName() + "." + emsConnectionNumber.getAndIncrement());
return emsComponent;
Я использую tibjms-6.0.1, tibjmsufo-6.0.1 и другие различные tib *** - 6.0.1.