Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jms 为什么要将邮件重新传递到MDB_Jms_Ejb 3.0_Message Driven Bean_Weblogic12c - Fatal编程技术网

Jms 为什么要将邮件重新传递到MDB

Jms 为什么要将邮件重新传递到MDB,jms,ejb-3.0,message-driven-bean,weblogic12c,Jms,Ejb 3.0,Message Driven Bean,Weblogic12c,我们有一个运行在WebLogic12c上的MDB,其定义如下 @TransactionManagement(TransactionManagementType.BEAN) @MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue") }) public class NonPersistentSale

我们有一个运行在WebLogic12c上的MDB,其定义如下

@TransactionManagement(TransactionManagementType.BEAN)
@MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue") })
public class NonPersistentSalesMessageBean implements MessageListener
{
}
此bean的功能是

  • 收到消息
  • 对所有业务逻辑使用会话bean(会话bean反过来使用实体bean(JPA2.0))
  • 将响应消息回复回目标队列
  • bean经常接收重复消息。如前所述,在插入数据库时,在实体bean级别存在一些异常,但这与回复消息无关。MDB正在成功地将响应发回目标队列,但在6秒或7秒后,我看到相同的消息再次发送

    当应用程序成功地将响应发送回目标队列时,为什么会重新传递消息

    有人能告诉我重新发送邮件的情况吗

    我可以使用message.getJMSREDERFERED()进行检查,但我想了解为什么会重新传递此消息?如有任何帮助或答复,我们将不胜感激。请

    请注意,这是一个在weblogic 10上运行良好的MDB,当我们开始出现此问题时,我们升级到12c。所以我们回到weblogic 10,现在它又恢复正常工作了


    谢谢…Venkat

    正在使用的确认模式是什么?queueConnection=queueConnectionFactory.createQueueConnection();queueSession=queueConnection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);queueSender=queueSession.CreateSsender(队列);TextMessage jmssg=queueSession.createTextMessage();setStringProperty(“JMS_IBM_Character_Set”,“”+37);setStringProperty(“JMS_IBM_格式”,默认的_MQ_MSG_格式);自动确认它是。您确定MessageListener中没有抛出异常吗?谢谢您的回复。我对所有的例外都有一个尝试/捕捉。MDB正在调用无状态会话bean(SSB),而SSB又在调用实体bean。我在实体bean中得到了一些异常,但这是在SSB本身中处理的。只有当MessageListener中出现异常时,才会重新传递消息。即使存在异常及其处理,也会重新传递消息。