- 浏览: 37784 次
- 性别:
- 来自: 北京
-
最新评论
声明:该博文转自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();。
正常情况下,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();。
发表评论
-
WLS_046:常见故障之十四:Proxy Plug-in 问题
2013-02-25 14:00 820声明:该博文转自http://maping930883.blo ... -
WLS_040:常见故障之八:JDBC Connection Pools
2013-02-25 13:56 1358声明:该博文转自http://maping930883.blo ... -
WLS_038:常见故障之六:Too many open files
2013-02-25 13:53 1155声明:该博文转自http://maping930883.blo ... -
常见故障之五:Out of Memory
2013-02-22 16:19 792声明:该博文转自http://maping930883.blo ... -
WLS_036:常见故障之四:Stack Overflow Error
2013-02-22 16:16 1126声明:该博文转自http://maping930883.blo ... -
WLS_035:常见故障之三:Server Hang
2013-02-22 16:14 875声明:该博文转自http:// ... -
WLS_034:常见故障之二:Server Crash后找不到Core Dump文件
2013-02-22 16:11 1075声明:该博文转自http://maping930883.blo ... -
WLS_033:常见故障之一:Server Crash
2013-02-22 16:10 935声明:该博文转自http:// ... -
WebLogic Server高级管理之五:集群下的Data Source配置
2012-07-31 21:59 1202声明:该博文转自http:// ... -
WebLogic Server高级管理之四:为集群配置Apache代理
2012-07-31 21:55 1010. 声明:该博文转自http://maping930883.b ... -
WebLogic Server高级管理之三:集群下的HTTP Session管理
2012-07-31 21:52 1569声明:该博文转自http:// ... -
WebLogic Server高级管理之二:为集群配置ProxyServer
2012-07-31 21:47 1541声明:该博文转自http://maping930883.blo ... -
WebLogic Server高级管理之二:为集群配置ProxyServer
2012-07-22 21:04 0声明:该博文转自热爱生活,热爱JAVA。原文地址为http:/ ... -
WebLogic Server高级管理之一:配置集群
2012-07-22 21:01 1092首先声明:该博文转自 ... -
WebLogic Server高级管理之六:集群下的JMS配置
2012-07-22 20:57 1264首先声明,该博文转自热爱生活,热爱JAVA,原文地址为http ... -
WebLogic Server高级管理之八:JMS 存储与转发
2012-07-22 20:37 1137提醒:weblogic系列博客均转载自千红一酷的博客,原地址为 ... -
WebLogic Server高级管理之七:JMS Topic 持久化订阅
2012-07-22 20:04 1083运行环境:WebLogic Server 12.1.1 开发版 ...
相关推荐
对于Live,请从以下区分大小写的选项中进行选择:ALL =域中的所有JVM NODE_ALL =每台计算机上的域中的所有JVM L1 =每台计算机上的域中的Lane 1 JVMS L2 =每台计算机上的域中的Lane 2 JVMS 指定sudo用户和组。 前...
此包是本人在修补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"指示了我们正在讨论的是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_12214_readme.html"文件,通常包含了详细的安装指南和注意事项,包括系统需求、安装步骤、常见问题解答等内容,是安装过程中的重要参考文档。...
fmw_12.2.1.4.0_wls_Disk1_1of1.zip,百度网盘下载地址在TXT文件内
fmw_14.1.1.0.0_wls_lite_generic.jar 百度网盘下载地址在TXT文件内
最小二乘法(Least Squares Method)是一种在数学优化和统计学中广泛应用的求解问题的方法,主要用于拟合数据模型。在本资料包"WLS_MM.zip"中,包含了一个名为"WLS_MM"的文件,这可能是一个MATLAB程序,用于实现加权...
它提供了丰富的功能,包括事务处理、集群、安全性、JMS消息队列、JDBC数据源以及对Java EE标准的支持。本安装包`fmw_12.2.1.2.0_wls_Disk1_1of1.zip`包含了WebLogic Server的基础组件和相关工具。 首先,让我们深入...
mac版本weblogic安装包
WebLogic是美商Oracle的主要产品之一,是并购BEA得来。是商业市场上主要的Java(J2EE)应用服务器软件(application server)之一,是世界上第一个成功商业化的J2EE应用服务器, 已推出到12c(12.2.1.4) 版。而此产品...
【标题】"wls1036_generic.jar" 是Oracle WebLogic Server 10.3.6的一个核心组件,这个JAR文件包含了WebLogic Server的基础功能和管理工具。WebLogic Server是一个广泛应用的Java EE应用服务器,它为企业级应用程序...
在无线定位中,WLS算法通常用于处理多路径传播、信号衰落等复杂环境下的定位问题,通过考虑不同信号路径的权重,提高定位精度。 在室内无线定位系统中,常见的信号源可以是Wi-Fi接入点、蓝牙设备或是专门的射频标签...
Edge-Preserving Decompositions for Multi-Scale Tone and Detail Manipulation,wls filter,WLS filter code
1. "wls基本管理.ppt" - 这个PPT文件是我们的主要学习资源,可能会包括幻灯片介绍WLS的安装步骤,创建和配置域,管理数据源,设置JMS(Java消息服务),处理安全管理,以及如何进行日志管理和故障排查等基础操作。...
### Weblogic 10.3.6 (wls1036_generic.jar) 安装包概述 #### 一、Weblogic 10.3.6版本简介 Oracle WebLogic Server 是一款应用服务器,适用于开发、部署并管理企业级应用程序。它支持多种协议和服务,并且与Java ...
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所在文件夹 然后输入命令: Java -jar wls1036_generic.jar ,点击回车后程序会启动weblogic安装文件的图形安装界面,若有问题请留言
**基于WLS滤波的HDR显示 - HDR_WLS_最小二乘滤波** 高动态范围(HDR)图像技术是现代数字图像处理中的一个重要领域,它能够捕捉并显示比普通低动态范围(LDR)图像更广泛的亮度范围。HDR图像通常包含比人眼所能感知的更...
它基于Java EE标准,并提供了丰富的功能和服务,包括但不限于EJB容器、JMS消息服务、Web容器等。WebLogic Server广泛应用于构建企业级应用系统,是许多大型组织和企业的首选平台之一。 #### 二、WebLogic Server ...
【标题】"wls1213_dev.zip" 指的是一个名为 "wls1213_dev" 的压缩文件,很可能包含了WebLogic Server 12.1.3版本的相关开发工具和资源。WebLogic Server是Oracle公司的一款企业级应用服务器,用于部署和管理Java EE...