hi

i was studying the SI manual, but got no right answer to may questions. may you can give me a hint.

let's assume i have a jms channel-adapter with ServiceActivator1 that is listening and processing messages. after this ServiceActivator1, it goes to channel1 and then to ServiceActivator2 then to a channel2 and than to ServiceActivator3. ServiceActivator3 writes the the data to the database.

<int:channel id="channel1" >
<int:queue capacity="10"/>
</int:channel>

<int:chain id="foobar" input-channel="jms" output-channel="channel1" >
<int:filter ref="foobarFilter" method="accept" />
<int:service-activator ref="acknowledge" method="acknowledge" />
</int:chain>
......

question 1:
when is the transaction of the incoming jms finish? after ServiceActivator1 has send the message to the internal channel1? or when it is written to the database.

Question 2:
are these (internal) channels transactional. i mean, do i loose the message when the system crash? if yes, i guess i can avoid it buy using everywhere eg JMS channelAdapters. its this right?

Question 3:
just being curious, how is this done internally, this "in-memory" channel?

thanks :-)