リモート Consumer インスタンスに Glassfish と OpenMQ を使用して、メッセージ Producer のキューを検索し、要求を同期的に処理しています。
Synchronous Consumer with JMS Queueに関する McIntosh の回答によると、同期メッセージの受信はスケジューリングによって処理できます。これを行う予定ですが、以下に示すように、非同期メッセージ駆動型 Bean (MDB) を介してメッセージ キューに接続する例しか見たことがありません。
import javax.jms.MessageListener;
import javax.annotation.Resource;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.ejb.MessageDrivenContext;
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "addressList", propertyValue = "mq://localhost:54020/"), //found in Producer server's domain.xml as JMS_PROVIDER_PORT
@ActivationConfigProperty(propertyName = "destinationLookup", propertyValue = "jms/ProducerRequestMessageQueue"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")})
public class ConsumerNode extends Node implements MessageListener {
@Resource
private MessageDrivenContext _mdc;
public ConsumerNode() {
super();
}
@Override
public void onMessage(Message message) {
//process message...
}
}
MessageListener
メッセージ駆動型 Bean として実装および設定せずにリモート プロデューサー キューに接続するにはどうすればよいですか?