我想将文件系统中的文件加载到WebSphere MQ Queue。有几个支持pac - Q Program和MO03: WebSphere MQ Queue Load / Unload Utility
接近但他们要求文件采用特定格式。我有消息是XML文件,并希望快速将它们加载到队列中。文件数量达到几百个,因此需要一个实用程序来完成这项工作,而不必编写应用程序来实现这一目标。
我无法找到一些通用的应用程序来实现这一目标。所以在这里寻求帮助
由于
答案 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并清除队列,清除等...
提供了更多选项。