MQ队列消息长度数据长度问题,急急急。。。

在数据交换时,MQ队列堵塞,浏览消息发现消息浏览器中的消息长度只有1000,导致数据过长堵塞。但是在做其他服务器上的队列消息长度有10000,请问大神这队列消息长度是在哪儿设置的呢?为什么有的是10000有的又是1000呢?...显示全部
在数据交换时,MQ队列堵塞,浏览消息发现消息浏览器中的消息长度只有1000,导致数据过长堵塞。但是在做其他服务器上的队列消息长度有10000,请问大神这队列消息长度是在哪儿设置的呢?为什么有的是10000有的又是1000呢?收起
参与12

查看其它 10 个回答deaglepolo的回答

deaglepolodeaglepolo软件开发工程师LKJH
CREATE COMPUTE MODULE BUSINESS_DC_DETAILS_FS_计算
        CREATE FUNCTION Main() RETURNS BOOLEAN
       
        BEGIN
                -- CALL CopyMessageHeaders();
                -- CALL CopyEntireMessage();

                DECLARE s INTEGER 0;
                SET InputLocalEnvironment.Variables.temp[] =
                SELECT E.EVENT_ID,E.OBJECT_KEY,E.OBJECT_VERB FROM Database.db2admin.BUSINESS_DC_DETAILS_EVENTS AS E;
               
                --根据事件DATA_ID操作获取数据
                CALL GetMessage();

                RETURN TRUE;
        END;

        CREATE PROCEDURE GetMessage() BEGIN
                DECLARE I INTEGER 1;
                DECLARE J INTEGER;
                SET J = CARDINALITY(InputLocalEnvironment.Variables.temp[]);
                X:WHILE I < J+1 DO
--                        --SET InputLocalEnvironment.Variables.HD[I] = THE(SELECT * FROM Database.admin.HD AS H where H.HDID = InputLocalEnvironment.Variables.temp[I].DATA_ID);
--                        --SET OutputRoot.XMLNSC.Data.HD[I] = InputLocalEnvironment.Variables.HD[1];
                        SET OutputRoot.XMLNSC.Data.BUSINESS_DC_DETAILS[I] = THE(SELECT * FROM Database.db2admin.BUSINESS_DC_DETAILS AS H where H.MXDM = InputLocalEnvironment.Variables.temp[I].OBJECT_KEY);
                        SET OutputRoot.XMLNSC.Data.BUSINESS_DC_DETAILS[I].OBJECT_VERB = InputLocalEnvironment.Variables.temp[I].OBJECT_VERB;
--                        --删除事件数据
                        DELETE FROM Database.db2admin.BUSINESS_DC_DETAILS_EVENTS AS E WHERE E.EVENT_ID = InputLocalEnvironment.Variables.temp[I].EVENT_ID;
                        SET I = I + 1;
                        IF I = 5 THEN
                                LEAVE X;
                        END IF;
                END WHILE;
        END;

        CREATE PROCEDURE CopyEntireMessage() BEGIN
                SET OutputRoot = InputRoot;
        END;
END MODULE;
这个是我发送方的ESQL代码,在这里只是用跳出循环做了控制一次性从事件表读取的记录条数
               IF I = 5 THEN
                                LEAVE X;
                        END IF;
                END WHILE;
发过去的应该仍然是完整的消息,并没有对消息做切割处理。我发过去的数据长度应该是图片中的总长度,也就是2000多。队列消息长度最高应该不是只有1000的,以前碰到其他队列堵塞原因的时候队列消息长度有10000的。
软件开发 · 2013-12-21
浏览1648

回答者

deaglepolo
软件开发工程师LKJH

deaglepolo 最近回答过的问题

回答状态

  • 发布时间:2013-12-21
  • 关注会员:1 人
  • 回答浏览:1648
  • X社区推广