私はこのような流れを持っています
(5 分ごとに) mySQL Database-Server にポーリングし、select-query によって結果セットを取得する「データベース インバウンド エンドポイント」 (自動的にこれが現在のペイロード、つまり #[message.payload] になります)
#[message.payload] として式を使用する「For each」コンポーネントとその中の「Logger」コンポーネント
現在、フローには、別の選択クエリを実行して結果セットを取得する「Database-out-bound-endpoint」コンポーネントがもう 1 つあります。
#[message.payload] として式を使用して、 「Logger」コンポーネントを含む「For each」コンポーネント
注: ロガーでは、最初の DB の結果セットが印刷されます。2番目のロガーも最初のクエリ自体の結果セットを表示していることを意味します。結果セットがペイロードとして保存されているためです
だから、私の質問は
上記のシナリオで 2 番目のデータベース クエリの結果セットを読み取る MEL は何ですか。
フローで結果セットを読み取る別の方法はありますか
これが構成XMLです
<jdbc-ee:connector name="oracle_database" dataSource-ref="Oracle_Data_Source" validateConnections="true" queryTimeout="-1" pollingFrequency="0" doc:name="Database"/>
<flow name="testFileSaveFlow3" doc:name="testFileSaveFlow3">
<poll frequency="1000" doc:name="Poll">
<jdbc-ee:outbound-endpoint exchange-pattern="one-way" queryKey="selectTable1" queryTimeout="-1" connector-ref="oracle_database" doc:name="get data from table 1">
<jdbc-ee:query key="selectTable1" value="SELECT * FROM TABLE1"/>
</jdbc-ee:outbound-endpoint>
</poll>
<foreach doc:name="For Each">
<logger message="#[message.payload]" level="INFO" doc:name="prints result-set of table1"/>
</foreach>
<jdbc-ee:outbound-endpoint exchange-pattern="one-way" queryKey="selectTable2" queryTimeout="-1" connector-ref="oracle_database" doc:name="get data from table 2">
<jdbc-ee:query key="selectTable2" value="SELECT * FROM TABLE2"/>
</jdbc-ee:outbound-endpoint>
<foreach doc:name="For Each">
<logger message="#[message.payload]" level="INFO" doc:name="prints result-set of table2"/>
</foreach>
</flow>
前もって感謝します。