Компонент Camel JMS не кэширует соединениеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Компонент Camel JMS не кэширует соединение

Сообщение Anonymous »

В настоящее время мы используем Apache Camel для создания маршрутов между брокером IBM MQ и некоторыми другими (в основном: мост обмена сообщениями) < /p>
В качестве входного компонента мы используем JMS One. < /p>
Это работает .... довольно хорошо, но мы заметили некоторые повторяющиеся контакты времени. Недостаток этого - это ужасная скорость передачи сообщений (2/s, по сравнению с 100+/с с другими компонентами).
Другие - то, что существует 60+ «призрачных» соединений в стороне от установленных, которые запускают некоторые тревоги на стороне продюсера, поскольку он выглядит подозрительно со стороны. и что каждый «вызов избирательного участка» вместо этого запустит новое соединение. Но это привело к следующей ошибке: < /p>

class jdk.proxy2. $ Proxy87 не может быть поднят в класс com.ibm.mq.jakarta.jms.mqsession (jdk.proxy2. $ Proxy87 находится в модуле jdk.proxy2 of approxy2. /> comm.ibm.mq.jakarta.jms.mqsession находится в неназванном модуле загрузчика 'app') < /p>
< /blockquote>
Мы также пытались использовать TransactionManager (пробуя как потребитель, так и сессионный конец), но это не изменило проблему с множественным временем. Надлежащий путь, с (например, (например,) ConnectionPool или любым видом кэшированного соединения, которое позволило бы нам
Здесь ниже, как мы делаем (это является неудачным экземой с cachingconnectionFactory )
JmsConfiguration jmsConfiguration = new JmsConfiguration();
jmsConfiguration.setConnectionFactory(createMqConnectionFactory(mq));
jmsConfiguration.setDestinationResolver(new WMQDestinationResolver(mq.getTargetClient()));
jmsConfiguration.setTransacted(true);
jmsConfiguration.setExceptionListener(jmsExceptionListener);
jmsConfiguration.setCacheLevelName("CACHE_CONSUMER");
jmsConfiguration.setAllowAdditionalHeaders("JMS_IBM_MQMD_.*");

JmsComponent component = new JmsComponent();
component.setConfiguration(jmsConfiguration);

private CachingConnectionFactory createMqConnectionFactory(Mq mq) {
MQQueueConnectionFactory connectionFactory = new MQQueueConnectionFactory();

connectionFactory.setHostName(mq.getHosts());
connectionFactory.setPort(mq.getPort());
connectionFactory.setQueueManager(mq.getQm());
connectionFactory.setChannel(mq.getChannel());
connectionFactory.setTransportType(WMQConstants.WMQ_CM_CLIENT );
connectionFactory.setCCSID(mq.getCcsid());

UserCredentialsConnectionFactoryAdapter userCredentialsAdapter = new UserCredentialsConnectionFactoryAdapter(); // for user/password managment

CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory(connectionFactory);

return cachingConnectionFactory;

}

class jdk.proxy2.$Proxy87 cannot be cast to class com.ibm.mq.jakarta.jms.MQSession (jdk.proxy2.$Proxy87 is in module jdk.proxy2 of loader 'app'; com.ibm.mq.jakarta.jms.MQSession is in unnamed module of loader 'app')


Подробнее здесь: https://stackoverflow.com/questions/797 ... connection
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»