0
@JmsListenerによって1つのメソッドのデフォルト同時実行性を変更するにはどうすればよいですか? @JmsListenerに(以下のように)同時実行性を追加しましたが、「JBoss管理コンソールの実行時JMSキューメトリック」では何も変更されていません。 私はJBoss 6.4、Spring JMSバージョン4.3.1.RELEASEを持っています。Spring JMS @JmsListener別のメソッドの同時実行性
マイリスナー:
@JmsListener(containerFactory = "myJmsQueueListenerContainerFactory", destination = "some.destination", concurrency = "3-10")
@SendTo("some.place")
public TransactionBookingStatus bookTransaction(Message message) throws JMSException {
//my implementation
}
マイデフォルトの設定:
@Bean
public JndiObjectFactoryBean jmsConnectionFactoryFactoryBean() {
JndiObjectFactoryBean factory = new JndiObjectFactoryBean();
factory.setJndiName("java:/ConnectionFactory");
return factory;
}
public ConnectionFactory jmsConnectionFactory() {
return (ConnectionFactory) jmsConnectionFactoryFactoryBean().getObject();
}
@Bean
public JmsTemplate testMessageTemplate() {
JmsTemplate tmpl = new JmsTemplate();
tmpl.setConnectionFactory(jmsConnectionFactory());
return tmpl;
}
@Bean
public DefaultJmsListenerContainerFactory myJmsQueueListenerContainerFactory() {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(jmsConnectionFactory());
factory.setConcurrency("3-40");
factory.setErrorHandler(new TrnJmsErrorHandler());
return factory;
}
私はあなたのアドバイスに応じて、いくつかのテストを行い、@JmsListenerからの同時実行がうまくいかなかったように、残念ながらそれが見えます。 1つのメソッドに対してのみ並行性を設定する別の方法はありますか? – Kryniek
「動作しませんでした」を定義します。私はちょうどクイックテストアプリを書いた、それは期待どおりに正確に働いた - 私の編集を参照してください。 –