【问题标题】:InputRoot and InputBody are NULL for MQ ESQL ComputeNodeMQ ESQL ComputeNode 的 InputRoot 和 InputBody 为 NULL
【发布时间】:2015-11-11 20:41:49
【问题描述】:

我的任务是创建一个新流程,但由于某种原因,我无法访问来自“IN”队列的数据。我在 Windows 中使用 MessageBrokerToolkit 7.0.0.1。测试消息与生产中的相同。

CREATE COMPUTE MODULE FLOW_Compute
    CREATE FUNCTION Main() RETURNS BOOLEAN
    BEGIN
        DECLARE TMP ROW PASSTHRU('SELECT RAWTOHEX(UTL_RAW.CAST_TO_RAW(DBMS_OBFUSCATION_TOOLKIT.md5(INPUT_STRING => CURRENT_TIMESTAMP)))UNIQUE_ID FROM DUAL'); 
        DECLARE blobMSG BLOB InputRoot.BLOB.BLOB; 
        DECLARE MSG CHARACTER CAST(blobMSG AS CHARACTER CCSID InputRoot.MQMD.CodedCharSetId ENCODING InputRoot.MQMD.Encoding); 
        DECLARE TITLE CHAR InputRoot.XML.Request."MessageID";

        PASSTHRU(
            'INSERT INTO PA0101.DEBUG_TABLE VALUES(?,?,?)',
            TMP.UNIQUE_ID,
            TITLE,
            MSG,
        );
    RETURN TRUE;
END; 

DEBUG_TABLE 行的结果如下: (管道分隔)

F69A159|||              
11C7EBF|||              
1077ADD|||              

这是一个示例消息:

<Request>
 <MessageID>a1f5298a-e339-423b-ac9a-4654cb46e965</MessageID>
 <SendResponse>false</SendResponse>
 <BasicElements>
  <FeedType>Realtime</FeedType>
  <MsgDT>08/09/2015</MsgDt>
  <Category>Action</Category>
  <PriorityCd>1</PriorityCd>
  <SubjectTx>This is important</SubjectTx>
  <DetailTx>[lots of html]</DetailTx>
 </BasicElements>
</Request>

当我尝试在服务器上运行命令行实用程序时,我通常会得到:

<command>
ld.so.1: <command>: fatal: libjvm.so: open failed: No such file or directory
Killed

代码不会产生任何警告,并且 .bar 文件会构建 + 部署,所以我不知道可能出了什么问题。

【问题讨论】:

    标签: ibm-mq ibm-integration-bus extended-sql


    【解决方案1】:

    您很可能没有使用 ESQL 中输入节点上设置的消息域。

    您不能同时使用 XML 和 BLOB 域,输入消息将在输入节点(或流程中的 ResetContentDescriptor 节点)上配置的一个或另一个域中解析。 因此 InputRoot.BLOB 或 InputRoot.XML 都将为 NULL。而且我认为您实际上是在输入节点中使用 XMLNSC 域,并且可以在 InputRoot.XMLNSC 下访问在该域中解析的消息正文。

    如果您需要将消息体作为 BLOB 并在同一流中解析为 XML,则应在输入节点中将消息域设置为 BLOB,然后使用 ResetContentDescriptor 节点或使用ESQL 中 CREATE 的 PARSE 选项:

    http://www-01.ibm.com/support/knowledgecenter/api/content/nl/en-us/SSKM8N_8.0.0/com.ibm.etools.mft.doc/ak04950_.htm

    【讨论】:

    • 非常感谢您抽出宝贵时间提供帮助。显然我无法阅读文档;)。
    猜你喜欢
    • 1970-01-01
    • 2019-12-18
    • 2021-06-05
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 2021-10-26
    • 1970-01-01
    相关资源
    最近更新 更多