通过JAVA从MQ读取消息的时候报错及解决

JAVA从MQ读取消息的时候报错及解决 网上有一个例子 ,是JAVA将消息写入到MQ,再通过JAVA去读取消息,采用MQMessage读消息的方法readUTF()去读取的时候,如下 package com.base;import java.io.IOException;   import com.ibm.mq.MQC;   import com.ibm.mq.MQEnvironment;   import com.ibm.mq 阅读详情

如果是通过JAVA将消息写入到MQ,再通过JAVA去读取消息,采用MQMessage读消息的方法readUTF()去读取的时候,就不会报错,可以正常读出来。如果采用在MQ资源管理器中插入测试消息或者是通过另外一台MQ服务器往当前MQ服务器通过远程队例写消息过来,通过JAVA读取出会错,我这里疑点有两个:

1、通过MQ资源管理器放入的消息的编码是什么?是否在读消息的时候需要指定读消息的编码?我通过JAVA进入的编码为1381,读的时候也是1381

2、我现在JAVA这边的MQ LIB是从WEBSPHERE6中取出来的,因为MQ7中带的JAR包老是报一些类不存在,现在的MQ服务是V7,不知道是否与这个有关。

个人感觉第一种原因的可能性最大,但不知道MQ的默认字体是什么?

 

通过命令DISPLAY QMGR可以查看到当前MQ使用的默认字符集为1381,其它的地方也说MQ在WINDOWS上安装的时候默认字符集为1381,可是我通过JAVA程序去读的时候,设置的CCSID也为1381,也是读的时候老是报如下错误:

java.io.EOFException
 at java.io.DataInputStream.readFully(Unknown Source)
 at java.io.DataInputStream.readUTF(Unknown Source)
 at java.io.DataInputStream.readUTF(Unknown Source)
 at com.ibm.mq.MQMessage.readUTF(MQMessage.java:1229)
 at test.MessageByMQ.getMessage(MessageByMQ.java:123)
 at test.MessageByMQ.main(MessageByMQ.java:146)

我通过JAVA往里面放消息设置的CCSID也为1381却可以正确读出来,但这里就搞不懂为什么读不出来了,

难道是上面提到的第三个原因,我的JAR包是V6的,MQ是V7的?

 

基本解决:
原来读消息的方法为:readUTF()
但是这种方式在其它的应用程序采用writeUTF写入消息的时候不会报错,就是我上面提到的当前的JAVA程序可以读出该程序中写入的消息,
但是通过MQ资源管理器放入的测试消息就不是UTF这样的格式的,所以会报错,这说面从MQ中读消息的时候读取的格式必须与放入消息的格式相兼容,否则读取消息的时候会报错。
后来尝试采用readLine的方式去读取,可以正常读出来,但是如果写入的是XML这样的消息,采用readLine就不行了,后面尝试readStringOfCharLength方法,可以正常读出客户端应用程序通过writeBytes方法写入的消息,也可以正常读出通过MQ客户端放入的测试报文,
这个问题搞了我一整天,终于可以暂时放一下了。

 读的代码如下:

...

MQMessage retrieve = new MQMessage();
String message=retrieve.readStringOfCharLength(32000).trim();

...

本文出自:冯立彬的博客



华为 MetaERP 通过元数据驱动的多组织架构 + 内部交易协同 + 自动对账引擎 + 合并规则引擎,实现多组织内部往来与合并报表的全流程自动抵消,核心是源头标准化、过程自动化、结果可追溯 摘要: 华为MetaERP通过元数据驱动的多组织架构与主数据标准化,实现内部往来与合并报表全流程自动化。其核心包括:统一组织模型与主数据(确保数据口径一致)、内部交易协同(自动生成对称凭证)、智能对账引擎(多维度自动匹配差异)、合并规则引擎(配置化抵消模板)。依托GaussDB高性能数据库与流批一体架构,华为全球88家子公司合并报表效率提升400%,关账时间缩短至2小时,支持多准则、多币种自动抵消,审计全程可追溯。相比传统ERP,MetaERP在协同性、自动化与扩展性上优势显著,为跨国集团提供高效、准确的合 阅读详情

相关推荐

时序定江山,功耗写风骨——解读时序库lib文件的奥义【芯片设计 lib文件】

lib库,全称liberty library format file:它是Liberty时序文件的简称,使用 Liberty 语法来编写。它可以通过library compiler/dc转换成.db文件(database),供synopsis家的DC和PT使用,也可以通过spyglass的library compiler来生成sglib文件,供spyglass使用。他们是等价的,但db文件是二进制格式,人类不可读。

LogicYarn的博客 2601

获取IBM MQ队列消息失败 JMSWMQ2002 2080

1) 获取IBM MQ队列消息失败,报错 JMSWMQ2002, 错误码2080 2) 问题原因 队列里消息过大,超过了服务器连接通道定义的MAXMSGL属性长度,导致JMS客户端或amqsget命令获取消息失败。 3)解决方案 A.查询确认服务器连接通道的MAXMSGL属性,调整至大于消息长度。 B.执行命令查询服务器连接通道的MAXMSGL属性配置: dis chl(SYSTEM.DEF.SVRCONN) C.执行命令...

wangxinzhen的专栏 2441

Spirent TestCenter 3.90吞吐测试全流程详解(附RFC 2544配置避坑指南)

本文详细解析了使用Spirent TestCenter 3.90进行网络吞吐测试的全流程,并提供了符合RFC 2544标准的配置指南与避坑要点。内容涵盖测试环境搭建、核心概念澄清、STC软件配置步骤、结果深度解读以及自动化脚本入门,旨在帮助网络测试工程师精准评估设备性能,规避常见配置陷阱。

weixin_42602368的博客 369

java使用readUTF()读取中文抛出EOFException异常的处理方法

从文本文件读取时,类DataInputStream是错误的。正如文档所述,类DataInputStream用于从底层输入流中读取原始Java数据类型,而readUTF()使用某种修改的UTF-8格式(不是标准的UTF-8格式)。要从文本文件中读取,您应该使用Reader。java.io中存在的各种Reader类(例如BufferedReader,InputStreamReader,FileRea...

weixin_30835923的博客 989

kettle连接达梦资源库数据库插件

kettle自定义插件plugin database plugin 达梦插件 dm插件

weixin_42122126的博客 2169

在Keil uv5里面添加STC元器件库,不影响其他元件

先到网上下载stc.CBD(宏晶网站的地址实效了)还有STC新系列单片机的头文件,宏晶的网站就有1、在Keil/C51/INC下新建目录"STC"文件夹, 把所有STC新系列单片机的头文件拷贝到"STC"目录下。2、下载的用于keil下的STC器件数据库更名为STC.CDB并拷贝到Keil/UV4目录下。3、打开Keil文件夹下的TOOLS.ini文件。4、在[UV2]下键入CDB0="UV2\S

技术联盟 1万+

java 读取ibm mq消息_java – 使用IBM MQ类从队列中浏览,读取和删除消息

我正在使用Eclipse的Java类编写一个简单的Java应用程序.现在,我可以在不删除存储的消息的情况下浏览远程队列.这是阅读周期的代码:MQQueueManager QMgr = new MQQueueManager(qManager); //int openOptions = MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_INPUT_SHARED | MQC.M...

weixin_39649478的博客 1791

SolidWorks_模具设计5_分型线生成

分型线是模具设计的核心要素,直接影响产品质量、脱模可行性和制造成本。本文系统介绍了分型线生成技术,包括三种核心算法:基于凸包的方法适用于简单几何,可见性分析处理复杂曲面,曲率特征优化则能找到自然分界。文章提供了完整的Python实现示例,涵盖点云投影、网格处理和分型线评估等关键技术。通过理解这些原理和方法,工程师可以更高效地设计出满足外观要求、易于加工的分型线方案,显著提升模具设计质量和效率。

H17853509096的博客 178

java 读取mq_通过JAVA从MQ读取消息的时候报错及解决

如果是通过JAVA将消息写入到MQ,再通过JAVA去读取消息,采用MQMessage读消息的方法readUTF()去读取的时候,就不会报错,可以正常读出来。如果采用在MQ资源管理器中插入测试消息或者是通过另外一台MQ服务器往当前MQ服务器通过远程队例写消息过来,通过JAVA读取出会错,我这里疑点有两个:1、通过MQ资源管理器放入的消息的编码是什么?是否在读消息的时候需要指定读消息的编码?我通过JA...

weixin_29098391的博客 893

UE5实现建筑剖切效果

UE5实现建筑剖切效果

专注GIS开发 8460

YOLO26改进策略【Neck】| arXiv 2025 分层多头注意力HMHA 子空间拆分提多样 + 通道重排降冗余,强化目标检测精度

HMHA(Hierarchical Multi-Head Attention,分层多头注意力)旨在解决传统多头注意力(MHA)在图像恢复任务中的核心缺陷——特征冗余。传统MHA将通道均匀拆分给各个头,导致不同头学习的子空间信息相似,进而出现多头关注同一区域、忽略退化区域修复的问题,限制了模型的特征表达能力。HMHA通过“分层子空间拆分+通道重排序”策略,让每个头学习差异化、互补的上下文特征,从根源上缓解冗余,提升图像恢复任务中对复杂退化场景的特征捕捉能力。

Limiiiing的博客 209

Java 实现秒杀-mq消息队列

Java 实现秒杀-mq消息队列

叼着烟吻着你的香 1041

论文翻译:2024 High-Confidence Computing A survey on large language model (LLM) security and privacy: The

大型语言模型(LLMs),如ChatGPT和Bard,已经彻底改变了自然语言理解和生成。它们具有深度语言理解能力、类似人类的文本生成能力、上下文意识和强大的问题解决技能,使它们在各个领域(例如搜索引擎、客户支持、翻译)中变得不可或缺。同时,LLMs也在安全领域获得了关注,揭示了安全漏洞并展示了它们在安全相关任务中的潜力。本文探讨了LLMs与安全性和隐私的交集。具体来说,我们研究了LLMs如何积极影响安全性和隐私,与它们使用相关的潜在风险和威胁,以及LLMs内部的固有漏洞。

CSPhD-winston的博客 1722

IBM MQ 的JAVA使用案例

ibmmq

学长抄作业(codeying)博客codeying.top 4060

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

ibm linux mq 发送消息_IBM MQ 发送 和 接收

package com.xiuye.mq;import java.io.IOException;import java.util.List;import org.apache.log4j.Logger;import com.ibm.mq.MQC;import com.ibm.mq.MQEnvironment;import com.ibm.mq.MQException;import com.ibm....

weixin_29149341的博客 594

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

消息中间件MQ的使用

MQ的简介MQ的使用结合JMS进行了解FAQ

wuzhixiu007的博客 819

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

MQ如何保证消息的可靠性传输(绝对通俗易懂)

转载自: https://github.com/doocs/advanced-java/blob/master/docs/high-concurrency/how-to-ensure-the-reliable-transmission-of-messages.md 面试题 如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题? 面试官心理分析 这个是肯定的,用 MQ 有个基本原则,就...

WhereIsMyChair的博客 1万+

rabbitmq unacked消息如何处理_消息中间件 MQ 如何处理消费失败的消息?

(给ImportNew加星标,提高Java技能)转自:狸猫技术窝1、消息中间件在生产系统中的使用下图是一个非常典型的生产环境的问题,很多公司都会在生产系统里使用MQ,即消息队列。也就是说,一个系统跟另外一个系统之间进行通信的时候,假如系统A希望发送一个消息给系统B,让他去处理。但是系统A不关注系统B到底怎么处理或者有没有处理好,所以系统A把消息发送给MQ,然后就不管这条消息的“死活”了...

weixin_39832643的博客 2657

WebSphere MQ java开发遇到的问题及解决办法

        最近公司需要消息组件,采用的是IBM的mq,由于网上资料相对来说比较少,遇到了不少问题,每次到网上去搜索也挺费劲,下面列出我遇到部分问题及解决办法。 问题一:2033错误         出现该错误的原因可能是队列中数据为空,取不到值引起的。   问题二:2085错误         可能原因是配置的MQ名称大小写或者队列名字不对引起的。   问题三:2058错误...

wjxbj的博客 4437

IBM MQ 发送 和 接收

package com.xiuye.mq; import java.io.IOException; import java.util.List; import org.apache.log4j.Logger; import com.ibm.mq.MQC; import com.ibm.mq.MQEnvironment; import com.ibm.mq.MQException; impor

修也 1万+

关于MQ面试的几件小事 | 如何保证消息不丢失

导读:【关于MQ面试的几件小事】是一系列的关于Mq的面试题,已经更新:《关于MQ面试的几件小事 | 消息队列的用途、优缺点、技术选型》 《关于MQ面试的几件小...

微信搜:import_bigdata,大数据领域硬核原创作者 512

Java春招面试题解答系列:MQ的数据去哪了?如何保证消息的可靠性传输?

1 面试题 如何保证消息的可靠性传输(如何处理消息丢失的问题)? 2 考点分析 这个是肯定的,用mq有个基本原则,就是数据不能多一条,也不能少一条,不能多,就是刚才说的重复消费和幂等性问题。不能少,就是说这数据别搞丢了。那这个问题你必须得考虑一下。 如果说你这个是用mq来传递非常核心的消息,比如说计费,扣费的一些消息,因为我以前设计和研发过一个公司非常核心的广告平台,计费系统,计费系统是很重的一个业务,操作是很耗时的。所以说广告系统整体的架构里面,实际上是将计费做成异步化的,然后中间就是加了一个MQ。 我们

Viper的程序员修炼手册 1783

java-MQ+Kafka

java八股文-RabbitMQ+kafka

cand_y的博客 1105
上一篇: 与MQ通讯的完整JAVA程序
下一篇: MQSeries通过MQ资源管理器建立的如队列、通道不可以在MQSC中进行管理?
冯立彬
冯立彬 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域
博客等级 码龄21年 5458粉丝 593原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值