【发布时间】:2018-09-29 22:38:22
【问题描述】:
我在以standalone-full-ha.xml 开头的独立模式下使用2 个Wildfly 11 服务器实例。
现在我想通过实现使用相同主题的 Sender 和 Receiver 在这两者之间发送 JMS 消息,如下所示:
接收者:
@Named
@MessageDriven(
name="TaskJmsMsgReceiver",
activationConfig={
@javax.ejb.ActivationConfigProperty(propertyName="destinationLookup", propertyValue="topic/Blubb"),
@javax.ejb.ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Topic"),
@javax.ejb.ActivationConfigProperty(propertyName="acknowledgeMode", propertyValue="Auto-acknowledge")
})
public class TaskJmsMsgReceiver implements MessageListener {
@Inject
private TaskWebSocketChannel webSocketChannel;
@Override
public void onMessage(Message rcvMessage) {
TextMessage msg = null;
try {
if (rcvMessage instanceof TextMessage) {
msg = (TextMessage) rcvMessage;
String jmsMessageText = msg.getText();
log.info("Received JMS Message: " + jmsMessageText);
String socketChannelEmpfaenger = jmsMessageText;
webSocketChannel.send(socketChannelEmpfaenger);
}
} catch (JMSException e) {
...
}
}
}
发件人:
@JMSDestinationDefinitions({
@javax.jms.JMSDestinationDefinition(
name = "java:/jms/topic/Blubb",
interfaceName = "javax.jms.Topic",
destinationName = "Blubb")
})
@Stateless
@Dependent
public class TaskJmsMsgSender {
@Resource(lookup = "java:/jms/topic/Blubb")
private Topic topic;
@Inject
private JMSContext context;
public void send(String text) {
log.info("Send JMS Message: " + text);
context.createProducer().send(topic, text);
}
}
现在,显然我需要配置 Wildfly 实例以与同一个 JMS 主题一起工作。
有人可以指出正确的方向如何配置它吗?
非常感谢。
【问题讨论】:
-
现在我明白我需要更多地了解 JGroups 以及 WildFly 用于发现和连接集群的各种网络协议。看来我那里有问题。