查看上一个主题 :: 查看下一个主题
|
作者 |
信息 |
Thamilselvi
新的用户

已加入:2012年6月22日 职位:57 地点:钦奈
|
|
|
|
你好
我已经编写了一个cobol cics程序来浏览大型机MQ中的消息。我的程序在从MQ浏览消息时得到了一些垃圾字符。
计算MQGMO-OPTIONS = MQGMO -NO-WAIT +
MQGMO -接受-截断-MSG +
MQGMO 转换+
MQGMO -FAIL-IF-QUIESCING。
将MQMI-NONE移动到MQMD-MSGID
将MQFMT_NONE移动到MQMD-FORMAT
将MQCI-NONE移动到MQMD-CORRELID
将MQENC-NATIVE移至MQMD编码
将MQCCSI-Q-MGR移动到MQMD-CODEDCHARSETID
使用W03-HCONN调用“ MQGET”
W03-HOBJ
MQMD
MQGMO
W00-MSGLENGTH
W00-MSGBUFFER
W00-数据长度
W03-COMPCODE
W03原因
请帮助我如何从MQ获得主机支持的格式的消息。 |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
|
|
引用: |
我的程序在从MQ浏览消息时得到了一些垃圾字符。 |
取决于参与的合作伙伴<message exchange>您所看到的垃圾很容易就是二进制数据(例如COBOL COMP的东西)
MQ只是一个载体,其任务是交付<message> data,
消息内容由应用程序约定建立。 |
|
回到顶部 |
|
 |
Thamilselvi
新的用户

已加入:2012年6月22日 职位:57 地点:钦奈
|
|
|
|
对不起,我听不懂你在说什么? |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
|
|
好吧,我以为我给出了一个非常简单的解释...
如果您听不懂,我们都在浪费时间
我看不出有任何更简单的解释方式。 |
|
回到顶部 |
|
 |
潘多拉魔盒
主持人
.jpg)
已加入:2006年9月7日 职位:1565 地点:仙女座星系
|
|
|
|
尝试浏览输入队列,并尝试了解源应用程序用于将消息放入队列的格式
可能是MQMD-FORMAT |
|
回到顶部 |
|
 |
Thamilselvi
新的用户

已加入:2012年6月22日 职位:57 地点:钦奈
|
|
|
|
(Java ) Source application put the 信息 in windows format. |
|
回到顶部 |
|
 |
潘多拉魔盒
主持人
.jpg)
已加入:2006年9月7日 职位:1565 地点:仙女座星系
|
|
回到顶部 |
|
 |
Thamilselvi
新的用户

已加入:2012年6月22日 职位:57 地点:钦奈
|
|
|
|
是的,只一样。
我也尝试过UTF8。同样的问题 |
|
回到顶部 |
|
 |
罗伯特·桑普
全球主持人

已加入:2008年6月6日 帖子:8569 地点:美国爱荷华州迪比克
|
|
|
|
Thamilselvi,没有“垃圾值”之类的东西-请在白板上写1000遍(如果需要,则写10000遍),直到您理解为止。
PC以ASCII工作。大型机在EBCDIC中工作。除非将字符从ASCII转换为EBCDIC,否则发送到大型机的PC消息将无法读取,并且在整个过程中将具有奇怪的字符。关于您所看到的内容的最简单,最有可能的解释是,该数据未转换为EBCDIC。而且,顺便说一句,UTF-8是ASCII的一个版本,因此将显示完全相同的问题。在这种情况下,您必须在应用程序中找到一种进行翻译的方法,否则您将继续遇到问题。很多时候,这种转换是由传输软件完成的(例如,使用FTP将文本文件从PC发送到大型机,例如,在FTP期间将ASCII转换为EBCDIC)。
还有其他可能性-例如,数据可能是所有数字数据,并且大型机存储格式对您来说是如此陌生,以致您无法识别数据。除非您以十六进制形式发布示例数据(最好使用“代码”按钮保留间距),否则我们将无法为您提供更多帮助。 |
|
回到顶部 |
|
 |
Thamilselvi
新的用户

已加入:2012年6月22日 职位:57 地点:钦奈
|
|
|
|
你好
我已经将ASCII数据转换为EBCDIC格式。但是,未使用的空间显示如下。我已经初始化了所有使用的变量。尽管如此,我正在获得如下的MQ消息(conversion之后)。谁能帮助我寻求这一点。
<CUSTOMER-DETAILS><CUSTOMER-NAME><FIRSTNAME>THAMILSELVI</FIRSTNAME><LASTNAME>SUR
埃库玛</LASTNAME></CUSTOMER-NAME><ADDRESS-DETAILS><CITY>CHENNAI</CITY><STATE>T
阿米那杜</STATE></ADDRESS-DETAILS></CUSTOMER-DETAILS>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
|
回到顶部 |
|
 |
加里·卡罗尔
高级会员
加入时间:2006年5月8日 职位:1100 所在地:爱尔兰都柏林
|
|
|
|
如果消息的来源是Java应用程序,则很可能会看到JMS标头。它包含在MQ RFH2(iirc)中,您需要在Cobol程序中允许这样做。或者,Java端可以指定不存在RFH2。
加油 |
|
回到顶部 |
|
 |
彼得·科博斯科兰
活跃用户
已加入:2012年2月6日 帖子:104 地点:瑞典
|
|
|
|
码: |
<CUSTOMER-DETAILS>
<CUSTOMER-NAME>
<FIRSTNAME>THAMILSELVI
</FIRSTNAME>
<LASTNAME>SURESHKUMAR
</LASTNAME>
</CUSTOMER-NAME>
<ADDRESS-DETAILS>
<CITY>CHENNAI
</CITY>
<STATE>TAMILNADU
</STATE>
</ADDRESS-DETAILS>
</CUSTOMER-DETAILS> |
您还期望什么?
如果您知道缺少什么,则调试起来会容易得多。
在我看来,它看起来像是一个完美的XML结构,带有一些额外的垃圾。 |
|
回到顶部 |
|
 |
dbzTHEdinosauer
全球主持人

已加入:2006年10月20日 帖子:6967 位置:瓷宝座
|
|
|
|
mq消息都是可变长度的-它们都带有在获取时填充的消息长度属性。
这意味着不考虑超出“长度”的任何数据。
您有一个缓冲区长度,即您在get(或put)上提供mqs的地址的区域长度
在“缓冲区”中的是消息,对于放置权,缓冲区中消息的长度必须由发送应用程序计算。
相反,获取将收到一条消息到“缓冲区”,而消息长度将由“获取”提供。
这是一个从未尝试了解或了解MQ的人的典型问题。
实际上,该线程将完全浪费时间,
除了偶尔,我们需要提醒一下
我们专业中不懂的人。 |
|
回到顶部 |
|
 |
马索
REXX主持人

已加入:2006年3月13日 帖子:1348 地点:以色列
|
|
|
|
Thamilselvi写道: |
我已经将ASCII数据转换为EBCDIC格式。但是,未使用的空间显示如下。我已经初始化了所有使用的变量。尽管如此,我正在获得如下的MQ消息(conversion之后)。谁能帮助我寻求这一点。
<CUSTOMER-DETAILS><CUSTOMER-NAME><FIRSTNAME>THAMILSELVI</FIRSTNAME><LASTNAME>SUR
埃库玛</LASTNAME></CUSTOMER-NAME><ADDRESS-DETAILS><CITY>CHENNAI</CITY><STATE>T
阿米那杜</STATE></ADDRESS-DETAILS></CUSTOMER-DETAILS>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
我不明白您是如何“将ASCII数据转换为EBCDIC格式”的
调用MQGET时,收到的参数之一是实际消息长度。
您检查此值吗? |
|
回到顶部 |
|
 |
dbzTHEdinosauer
全球主持人

已加入:2006年10月20日 帖子:6967 位置:瓷宝座
|
|
|
|
@被转换为ebcidc空间到ascii空间。
缓冲区的未使用区域(在程序中)
and by unused i mean that area beyond the 信息 length
实际上不受mq的影响,这就是存储的方式
在你的程序中
已初始化。 |
|
回到顶部 |
|
 |
Thamilselvi
新的用户

已加入:2012年6月22日 职位:57 地点:钦奈
|
|
|
|
你好
感谢你的帮助。我是Websphere MQ的初学者。以上信息对我有很大帮助。  |
|
回到顶部 |
|
 |
Thamilselvi
新的用户

已加入:2012年6月22日 职位:57 地点:钦奈
|
|
|
|
大家好,
感谢您的所有努力/帮助。以上信息有助于我了解如何从MQ获得消息。 Bcoz,大家,只有我按时完成了我的课程。 |
|
回到顶部 |
|
 |
|