`
C_LIFE
  • 浏览: 37789 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

WLS_042:常见故障之十:JMS Queue中的消息被“重复消费”问题

 
阅读更多
声明:该博文转自http://maping930883.blogspot.com,热爱java,热爱生活

正常情况下,Sender把消息发送到Queue以后,Receiver成功读取之后,Queue中的消息应该不存在了。
但有时,我们会发现消息依然在Queue中存在,这是怎么回事呢?
既然Sender已经把消息发送到Queue中了,表明事务已经成功完成了。因此,问题应该出现在Receiver代码中。
在Receiver代码中,我们重点看init()和onMessage()方法:

1.init()
public void init(Context ctx, String queueName)
throws NamingException, JMSException
{
qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
qcon = qconFactory.createQueueConnection();
qsession = qcon.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE);
queue = (Queue) ctx.lookup(queueName);
qreceiver = qsession.createReceiver(queue);
qreceiver.setMessageListener(this);
qcon.start();
}

注意创建Session时使用的参数是Session.CLIENT_ACKNOWLEDGE,这说明需要明确告诉JMS消息是否接收成功,否则Queue中的消息将一直存在。

2.onMessage()
成功获取消息后,增加语句msg.acknowledge();,表明消息是否接收成功,事务成功完成。

public void onMessage(Message msg)
{
try {
String msgText;
if (msg instanceof TextMessage) {
msgText = ((TextMessage)msg).getText();
} else {
msgText = msg.toString();
}

msg.acknowledge();

} catch (JMSException jmse) {
jmse.printStackTrace();
}
}

3. 如果创建Session时使用的参数是Session.AUTO_ACKNOWLEDGE
该参数的意义是只要onMessage方法成功返回(没有抛出异常),就认为消息成功收到了。此时,不需要在onMessage方法中增加语句msg.acknowledge();。
分享到:
评论

相关推荐

    ansible_wls_patch:使用Ansible修补Weblogic

    对于Live,请从以下区分大小写的选项中进行选择:ALL =域中的所有JVM NODE_ALL =每台计算机上的域中的所有JVM L1 =每台计算机上的域中的Lane 1 JVMS L2 =每台计算机上的域中的Lane 2 JVMS 指定sudo用户和组。 前...

    bea_wls_internal.war

    此包是本人在修补weblogic漏洞时,http://sn.cloud.ccb.com/bea_wls_internal/classes/META-INF/MANIFEST.MF漏洞实在没办法,试遍网上所有方法,在被逼无奈之下,花了两周研究出来的,就不要想在其他地方找到了,...

    fmw_12.2.1.4.0_wls_lite_Disk1_1of1.zip

    标题中的"fmw_12.2.1.4.0_wls_lite_Disk1_1of1.zip"指示了我们正在讨论的是Oracle Fusion Middleware(FMW)的一个组件——WebLogic Server 12.2.1.4.0的轻量级版本的第一个磁盘映像。"Disk1_1of1"表示这是完整...

    fmw_12.2.1.4.0_wls_quick_Disk1_1of1.zip

    该压缩包"fmw_12.2.1.4.0_wls_quick_Disk1_1of1.zip"中的"fmw_12214_readme.html"文件,通常包含了详细的安装指南和注意事项,包括系统需求、安装步骤、常见问题解答等内容,是安装过程中的重要参考文档。...

    weblogic fmw_12.2.1.4.0_wls_Disk1_1of1.zip.txt

    fmw_12.2.1.4.0_wls_Disk1_1of1.zip,百度网盘下载地址在TXT文件内

    weblogic fmw_14.1.1.0.0_wls_lite_generic.jar.txt

    fmw_14.1.1.0.0_wls_lite_generic.jar 百度网盘下载地址在TXT文件内

    WLS_MM.zip_wls_wls matlab_最小二乘法

    最小二乘法(Least Squares Method)是一种在数学优化和统计学中广泛应用的求解问题的方法,主要用于拟合数据模型。在本资料包"WLS_MM.zip"中,包含了一个名为"WLS_MM"的文件,这可能是一个MATLAB程序,用于实现加权...

    weblogic12c 安装包 fmw_12.2.1.2.0_wls_Disk1_1of1.zip

    它提供了丰富的功能,包括事务处理、集群、安全性、JMS消息队列、JDBC数据源以及对Java EE标准的支持。本安装包`fmw_12.2.1.2.0_wls_Disk1_1of1.zip`包含了WebLogic Server的基础组件和相关工具。 首先,让我们深入...

    fmw_14.1.1.0.0_wls_lite_quick_generic.jar

    mac版本weblogic安装包

    fmw_14.1.1.0.0_wls_lite_Disk1_1of1.zip

    WebLogic是美商Oracle的主要产品之一,是并购BEA得来。是商业市场上主要的Java(J2EE)应用服务器软件(application server)之一,是世界上第一个成功商业化的J2EE应用服务器, 已推出到12c(12.2.1.4) 版。而此产品...

    wls1036_generic.jar

    【标题】"wls1036_generic.jar" 是Oracle WebLogic Server 10.3.6的一个核心组件,这个JAR文件包含了WebLogic Server的基础功能和管理工具。WebLogic Server是一个广泛应用的Java EE应用服务器,它为企业级应用程序...

    WLS.rar_WLS matlab_WLS 定位_WLS定位_program wls_无线 定位

    在无线定位中,WLS算法通常用于处理多路径传播、信号衰落等复杂环境下的定位问题,通过考虑不同信号路径的权重,提高定位精度。 在室内无线定位系统中,常见的信号源可以是Wi-Fi接入点、蓝牙设备或是专门的射频标签...

    WLS_Filter

    Edge-Preserving Decompositions for Multi-Scale Tone and Detail Manipulation,wls filter,WLS filter code

    wls基本管理.rar_WLS PDF_wls

    1. "wls基本管理.ppt" - 这个PPT文件是我们的主要学习资源,可能会包括幻灯片介绍WLS的安装步骤,创建和配置域,管理数据源,设置JMS(Java消息服务),处理安全管理,以及如何进行日志管理和故障排查等基础操作。...

    Weblogic10.3.6(wls1036_generic.jar)安装包linux,windows,mac操作系统通用百度网盘下载

    ### Weblogic 10.3.6 (wls1036_generic.jar) 安装包概述 #### 一、Weblogic 10.3.6版本简介 Oracle WebLogic Server 是一款应用服务器,适用于开发、部署并管理企业级应用程序。它支持多种协议和服务,并且与Java ...

    weblogic各个版本安装包

    fmw_12.1.3.0.0_wls.jar fmw_12.2.1.2.0_wls.jar fmw_12.2.1.3.0_wls.jar fmw_12.2.1.4.0_wls_lite_generic.jar fmw_14.1.1.0.0_wls.jar wls_121200.jar wls1036_generic.jar wls1032_linux32.bin

    Weblogic Server 11gR1 ,wls1036_generic.jar

    Weblogic Server 11gR1,版本号是...在命令行,进入安装文件wls1036_generic.jar所在文件夹 然后输入命令: Java -jar wls1036_generic.jar ,点击回车后程序会启动weblogic安装文件的图形安装界面,若有问题请留言

    基于WLS滤波的HDR显示_HDR_WLS_最小二乘滤波

    **基于WLS滤波的HDR显示 - HDR_WLS_最小二乘滤波** 高动态范围(HDR)图像技术是现代数字图像处理中的一个重要领域,它能够捕捉并显示比普通低动态范围(LDR)图像更广泛的亮度范围。HDR图像通常包含比人眼所能感知的更...

    wls_10.3.2_for_linux_32_for_oracle_ocm_11g

    它基于Java EE标准,并提供了丰富的功能和服务,包括但不限于EJB容器、JMS消息服务、Web容器等。WebLogic Server广泛应用于构建企业级应用系统,是许多大型组织和企业的首选平台之一。 #### 二、WebLogic Server ...

    wls1213_dev.zip

    【标题】"wls1213_dev.zip" 指的是一个名为 "wls1213_dev" 的压缩文件,很可能包含了WebLogic Server 12.1.3版本的相关开发工具和资源。WebLogic Server是Oracle公司的一款企业级应用服务器,用于部署和管理Java EE...

Global site tag (gtag.js) - Google Analytics