如何通过TCL脚本将大型消息放入webspheremq队列?

如何通过TCL脚本将大型消息放入webspheremq队列?,tcl,ibm-mq,Tcl,Ibm Mq,我试图通过TCL脚本将一个大文件放到WebSphereMQ队列中。以下是我目前的情况: exec sh -c "echo $msg | qmqsput targetQueue queueManager 但是,我遇到了以下错误: Couldn't execute "sh": argument list too long 无法执行“sh”:参数列表太长 我的消息非常大,并且大于最大参数长度。如何解决此问题?您可以先将消息写入文件 set fn tmsg[pid].txt set fh [open

我试图通过TCL脚本将一个大文件放到WebSphereMQ队列中。以下是我目前的情况:

exec sh -c "echo $msg | qmqsput targetQueue queueManager
但是,我遇到了以下错误:

Couldn't execute "sh": argument list too long 无法执行“sh”:参数列表太长
我的消息非常大,并且大于最大参数长度。如何解决此问题?

您可以先将消息写入文件

set fn tmsg[pid].txt
set fh [open $fn w]
puts $fh $msg
close $fh
exec sh -c "cat $fn | qmqsput ..."
catch { file delete $fn }

您可以先将消息写入文件

set fn tmsg[pid].txt
set fh [open $fn w]
puts $fh $msg
close $fh
exec sh -c "cat $fn | qmqsput ..."
catch { file delete $fn }

没有必要通过sh,所以请尝试以下方法:

exec qmqsput targetQueue queueManager << $msg

exec qmqsput targetQueue queueManager无需通过sh,因此只需尝试以下操作:

exec qmqsput targetQueue queueManager << $msg

exec qmqsput targetQueue queueManager肯定是这里的最佳选项。如果这解决了您的问题,请接受答案。肯定是这里的最佳选项。如果这解决了您的问题,请接受答案。