场景:
代码段:
@MessageDriven(mappedName = JMSConstants.COMMAND_SPOOL_TOPIC_JNDI, activationConfig = {
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
@ActivationConfigProperty(propertyName = "subscriptionDurability", propertyValue = "Durable"),
@ActivationConfigProperty(propertyName = "clientId", propertyValue = "PrinterCommandSpoolMessageBean"),
@ActivationConfigProperty(propertyName = "subscriptionName", propertyValue = "PrinterCommandSpoolMessageBean"),
@ActivationConfigProperty(propertyName = "messageSelector", propertyValue = JMSSelector.PRINT_COMMAND_SELECTOR)
})
public class PrinterCommandSpoolMessageBean implements MessageListener {
private final static Logger LOGGER = Logger.getLogger(PrinterCommandSpoolMessageBean.class.getName());
@EJB
private CoreServiceRemote coreService;
@Override
public void onMessage(Message message) {
LOGGER.info("********************* message arrived ********************");
if (message instanceof MapMessage) {
CommandSpool cs = null;
try {
MapMessage mapMessage = (MapMessage) message;
//missing code
if (actualCopies >= copies) {
coreService.updateCommandSpool(cs.getId(), CommandSpoolStatus.EXECUTED);
coreService.setSensorIssued(ps.getSensorUUID());
} else {
coreService.updateCommandSpool(cs.getId(), CommandSpoolStatus.NOT_EXECUTED);
}
} catch (Exception ex) {
LOGGER.log(Level.WARNING, "Exception", ex);
if (cs != null) {
coreService.resetCommandSpool(cs.getId());
}
}
}
}
您确定coreservice.resetCommandSpool(cs.getID())没有引发另一个异常吗?
既然捕获了所有异常,那么是否希望MDB是事务性的?您总是可以在ejb方法上启动一个新事务。
问题内容: 我正在使用.NET Web窗体和数据库作为数据源来构建一个简单的站点。 问题是:我有一个正常工作的后台槽,可以创建,修改和删除新页面。 虽然我可以创建和删除,但是编辑功能不起作用。 我意识到问题可能出在查询中,因为代码对于其他功能运行正常。 这是查询: 我不太喜欢SQL,我做错什么了吗? 先感谢您 编辑N掳2。目前,该查询无法正常工作,基本上,某些内容和标题中带有撇号,并且当我更新该特
我正在读一条来自Solace的信息。我能够成功地阅读信息。假设我正在阅读一条消息,在侦听器线程上读取/处理消息时,应用程序崩溃。那我怎么能在那上面再读一遍那条信息呢。使用下面的代码,我无法再次阅读该消息。下面是我的配置
前言 在封装创建request的时候会调用handleProduceResponse(),这个里面会调用 有异常并且可以重试,执行第一个分支,会调用 有异常但是不可以重试,执行第二个分支,会调用
问题内容: 这是我正在尝试做的事情, 并且大多数时候我都成功了:基本上,我在网站上登录,然后等待一个类出现在源代码中,然后处理源代码。 我得到的例外: 这是代码: 我也尝试过这个: 我得到同样的例外。 我目前正在尝试: 我还没到失败的地步,我还在测试它。 抱歉,这很长。但是我想为这些随机超时找到一个pythonic干净的解决方案。 另一个可能也有帮助的信息:登录过程有时会很长,但是即使等待几分钟,
是否可以在MDB(消息驱动Bean)中为“目的地”动态分配运行时值? 我还尝试了ejb-jar.xml方法,但是“activation-config-property-name”=“destination”的值被理解为队列的文字物理名称。因此我无法对资源进行JNDI查找。 从属性读取和分配目标或使用-d参数传递值的正确方法是什么?
我们有一个camel路由,在这里我们从输入队列读取消息,处理它,设置一些JMS头(使用exchange.getin().setheader(...)),然后将消息路由到某个输出队列。在MQ故障转移方案期间,将重新传递消息。但是,当重新传递消息时,我前面放置的JMS头丢失了。是否有任何方法可以在重新交付后保留JMS头?