用于将文件加载到MQ队列的实用程序

时间:2012-10-16 04:05:34

标签: ibm-mq

我想将文件系统中的文件加载到WebSphere MQ Queue。有几个支持pac - Q ProgramMO03: WebSphere MQ Queue Load / Unload Utility

接近但他们要求文件采用特定格式。我有消息是XML文件,并希望快速将它们加载到队列中。文件数量达到几百个,因此需要一个实用程序来完成这项工作,而不必编写应用程序来实现这一目标。

我无法找到一些通用的应用程序来实现这一目标。所以在这里寻求帮助

由于

2 个答案:

答案 0 :(得分:6)

为什么您认为Q程序需要特定的文件格式?根据{{​​1}}文件,可以使用以下选项:

README.TXT

因此,如果您指定-f<filename> Input file. Each line of the file will be put to output queue as a different message. See "Z/OS FILE NAME FORMAT EXAMPLES" for specific z/OS details. -F[+]<filename> Input/output file. Entire file will be put to the output queue as a single message. If '+' is specified the dataset attributes will be retained if the output dataset exists - z/OS only. See "Z/OS FILE NAME FORMAT EXAMPLES" for specific z/OS details. (不包含-F),则XML文件中的所有行都会加载到单个消息中。您还可以使用+参数指定消息选项:

-a

虽然Q程序默认会解释文件,但请注意上面的-a<Opts> Sets message attributes when put to the output queue n - forces non-persistence p - forces persistence q - uses queue default persistence d - put a datagram message type r - put a reply message type R - put a request message type t - put a report message type x - don't treat lines starting with '#' as special 选项告诉它忽略-ax的行,它通常会将其解释为命令。这允许您使用注释甚至二进制文件(如PDF或JPG)加载XML文件或源代码。

Q中是否存在您无法使用的特定限制?如果是这样,知道那是什么会有所帮助,所以我们可能会指出一些更符合你目的的东西。

<强>更新

回应Spyro的评论,Q 限制为1000个字符。这是一个示例,其中Q分发的README文件被写入单个消息并回读。

#

请注意打印邮件的标题行。 D:\WMQ\MA01>q -m JMSDEMO -OSYSTEM.DEFAULT.LOCAL.QUEUE -FREADME MQSeries Q Program by Paul Clarke [ V6.0.0 Build:May 1 2012 ] Connecting ...connected to 'JMSDEMO'. D:\WMQ\MA01>echo dis q(SYSTEM.DEFAULT.LOCAL.QUEUE) curdepth | runmqsc JMSDEMO 5724-H72 (C) Copyright IBM Corp. 1994, 2011. ALL RIGHTS RESERVED. Starting MQSC for queue manager JMSDEMO. 1 : dis q(SYSTEM.DEFAULT.LOCAL.QUEUE) curdepth AMQ8409: Display Queue details. QUEUE(SYSTEM.DEFAULT.LOCAL.QUEUE) TYPE(QLOCAL) CURDEPTH(1) One MQSC command read. No commands have a syntax error. All valid MQSC commands were processed. D:\WMQ\MA01>q -m JMSDEMO -dl -iSYSTEM.DEFAULT.LOCAL.QUEUE MQSeries Q Program by Paul Clarke [ V6.0.0 Build:May 1 2012 ] Connecting ...connected to 'JMSDEMO'. MQGET 24309 bytes ============================================================================ Message Descriptor (MQMD) Report :00000000 Message Type :8 (Datagram) Format :'MQSTR ' Priority :0 Persistence :0 (Not Persistent) Message Id :A M Q J M S D E M O . . . R . * . 414D51204A4D5344454D4F20202020201DDEA052200B2A02 'AMQ JMSDEMO ...R .*.' ReplyToQ :' ' ReplyToQMgr :'JMSDEMO ' ---------------------------------------------------------------------- | | | | | DESCRIPTIVE NAME WebSphere MQ Q Program | | | ------- 8><------------------------------------------------------------- REMAINDER OF MSG OUTPUT OMITTED FOR BREVITY. PRINT-OUT RESUMES... ------- 8><------------------------------------------------------------- No more messages. D:\WMQ\MA01> 选项告诉Q打印消息长度,在本例中为24309字节。我下载了当前版本以执行此测试,因此截至2013年12月7日这是准确的。

答案 1 :(得分:1)

如果您正在寻找将文件加载到队列中..它很容易使用RFHUtil s / w或应用程序。

在RFHUtil中,您可以轻松地将文件加载到MQ并清除队列,清除等...

提供了更多选项。