JMS エンドポイントを備えた SprintIntegration システムがあります。メッセージのサイズ制限は 4 MB です。それよりも大きな結果が得られました。SI にそれを複数のメッセージに分割させるにはどうすればよいですか?
/A
JMS エンドポイントを備えた SprintIntegration システムがあります。メッセージのサイズ制限は 4 MB です。それよりも大きな結果が得られました。SI にそれを複数のメッセージに分割させるにはどうすればよいですか?
/A
Spring Integration では、Splitterを使用してメッセージを分割し、たとえば 4MB を超えないようにすることができます。
<int:splitter id="splitter"
ref="splitterBean"
method="split"
input-channel="inputChannel"
output-channel="outputChannel" />
<beans:bean id="splitterBean" class="your.MessageSplitter"/>
または@Splitter
注釈を使用して。
メッセージがスプリッターに到着すると、内部で分割ロジックを適用し、次your.MessageSplitter
を返しますList<YourMessage>
。
public class MessageSplitter {
public List<YourMessage> split( HugeMessage hugeMessage ) {
List nicelySizedMessages = new ArrayList<YourMessage>();
// splitting logic... that would parse "hugeMessage" and split it to
// nicelySizedMessages.add( ... ) "YourMessage"s
return nicelySizedMessages;
}
}
Spring Integration はこのリストを取得YourMessage
し、リストから s を 1 つずつ転送します。