为什么在Mule ESB中将数据库响应(resultSets)分为两个部分 [英] Why DB response ( resultSets) are being divided in two splits in Mule ESB

查看:220
本文介绍了为什么在Mule ESB中将数据库响应(resultSets)分为两个部分的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在查询数据库以通过Mule获得响应.正在填充响应,但不确定为什么要在resultSet1中对其进行划分(如果较大).

I'm querying DB to get the response through Mule. Response are being populated, but not sure why it is being divided inside resultSet1 (if it is larger).

在记录器中可以看到,ResultSet1结束标记为</custo(未完全完成为),使用相同的Key(XML_F5RYI-11YTR)对其进行了扩展,并在其中完成了mers>.

Could see here in logger, ResultSet1 end tag is </custo ( not completly finished as ), it is being extended with same Key(XML_F5RYI-11YTR) and there it is finished mers>.

  1. 我是否需要在Mule DB级别中进行任​​何配置设置来传播同一级别中的所有resultSet1?
  2. 实际上,我的最终目标是提取ResultSet1,而第二个记录器MEL正在提取它,但它不是完整的ResultSet.请您建议一个MEL动态地提取ResultSet1完整有效负载.

否则,我建议我如何实现这种情况.

Else suggest me how can I achieve the scenario.

请找到记录在记录器中的消息

Please find the message printed in logger

 DB Actual response:{updateCount1=4,resultSet1=[{XML_F5RYI-11YTR=<Customers><Customer1>John<Customer1>( removed multiple customers tags)<Customer6>Ganesh<Customer6></Custo},{XML_F5RYI-11YTR=mers>}],resultSet2[{SequenceNumber=94}],updateCount2=1, updateCount3=4}

请找到配置xml

<poll doc:name="Poll">
        <fixed-frequency-scheduler frequency="10" timeUnit="SECONDS"/>
        <db:stored-procedure config-ref="SCC_DB" doc:name="Database">
            <db:parameterized-query><![CDATA[{call [Database Query here](1)}]]></db:parameterized-query>
        </db:stored-procedure>
    </poll>
    <logger message="DB Actual response:#[payload]" level="INFO" doc:name="Logger"/>
    <logger message="Extracted ResultSet1 Response:************#[payload.resultSet1[0]['XML_F5RYI-11YTR']]********" level="INFO" doc:name="Logger"/>

M子版本:3.5.1

Mule Version : 3.5.1

请提出我错了的地方.感谢您的提前帮助.

Please suggest where I'm wrong. Thanks for your help in advance.

我已启用Streaming ='true',并且使抓取计数='10'.如果启用了流式传输,响应将在数据库之后传播,如下所示:

I have enabled Streaming = 'true' and Made Fetch Count = '10'. If I enabled Streaming, response propagated after DB as below

****  DB response:org.mule.module.db.internal.result.statement.CloseableMap@558351f4*****

在添加了Transformer字节数组到字符串"之后,响应如下

After adding Transformer 'Byte Array to string', response as below

  **After Transformer:{updateCount1=0, resultSet1=org.mule.module.db.internal.result.resultset.ResultSetIterator@64df82c7, resultSet2=org.mule.module.db.internal.result.resultset.ResultSetIterator@e030a8e}**********

即使我无法提供转换器以查看确切的响应,我也尝试在集合有效负载中分离#[payload.resultSet1].您能否建议转换器查看resultSet1的响应.

I have tried separating #[payload.resultSet1] in set Payload, even after I'm not able to provide the transformer to see the exact response. Could you please suggest the transformer to see the response of resultSet1.

推荐答案

您是否尝试过将dom添加到xml中,并且可以使用集合聚合器来加入拆分

Have you tried adding an dom to xml and you can use a collection aggregator to join the splits

这篇关于为什么在Mule ESB中将数据库响应(resultSets)分为两个部分的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆