我在Weblogic服务器上有MQ作为外部JMS服务器。问题是,我需要回滚消息并重试,直到达到回退阈值。然后我需要将消息移动到回退队列。
@MessageDriven( name="MQListener", mappedName = "jms.mq.SOME.QUEUE.NAME",
activationConfig =
{
@ActivationConfigProperty(propertyName = "destinationType",propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "jms.mq.SOME.QUEUE.NAME"),
@ActivationConfigProperty(propertyName = "connectionFactoryJndiName", propertyValue = "jms.mq.MQ"),
@ActivationConfigProperty(propertyName = "useJNDI", propertyValue = "true")
})
public class MQListener implements MessageListener {
@Resource
private MessageDrivenContext context;
@Override
public void onMessage(Message message) {
String messageContent="";
try {
messageId = message.getJMSMessageID();
if (message != null) {
messageContent = ((TextMessage)message).getText();
if(!doSomething(messageContent)){
// doSomething fails, I need to rollback the message and try again:
context.setRollbackOnly();
}
}
} catch (Exception e) {
throw new RuntimeException();
}
}
private boolean doSomething(String messageContent){
// ...
}
}
我是EJB中的泰罗。但是从代码片段中可以看到,我认为您缺少MessageDrivenContext
的初始化。我想你必须做任何一件事
context = getMessageDrivenContext();
context.setRollbackOnly();
或
getMessageDrivenContext().setRollbackOnly();
我试图将一些消息从JMS代码放到本地队列管理器中定义的本地队列中。我在WebSphere MQ中定义了一个本地队列,并使用JMS代码放置消息。我在这里做得对吗。我没有看到WebSphere队列中的消息。 以下是代码:
JMS队列有2个消费者,同步和异步Java应用程序进程等待响应。1)同步应用程序发送请求,并根据JMS相关ID等待响应60秒。2)异步线程将不断侦听同一队列。
接口说明 退出当前所在团队 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /permissions/api/team/user/v1.0.0/quitTeam 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN teamId string fo
接口说明 退出当前所在团队 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 POST /permissions/api/team/user/v1.0
目前我有一个Weblogic 10R3开发的Java EE应用程序主机,我有兴趣测试1个消息驱动Bean。问题是我无法访问Bean正在侦听的外部JMS服务器,以下是MDB代码: 我的计划是,Bean将通过JNDI查找队列,并且我确实可以访问Weblogic托管服务器。因此,我可以删除外部JMS服务器,然后添加一个本地JMS队列和包含确切JNDI名称的connectionFactory。因此,隔离外
问题内容: 在这里,我可能正在做一些基本的错误,总的来说,我已经实现了这样的代码: 一切都很好,但是只有第一次,如果我想第二次“使用”查询,我会收到他的错误: 退出后无法排队握手 我还没有尝试到.END()连接,但它并不能帮助 在此先感谢 拉德克 问题答案: 如果使用node- mysql模块,则只需删除.connect和.end。自己解决问题。显然,他们在上次迭代中输入了不必要的代码,该代码也有