Anne, I guess you're not really experiencing problems with this, you're just wondering about why things happen, right?
You currently have two ServiceMix containers running, each with an embedded ActiveMQ broker. When you configure the ActiveMQ instances to connect to each other, every instance becomes a 'client' of the other instance. E.g. the nataku:35486 - kakyou:61616 connection is where nataku connected to the ActiveMQ broker on kakyou. The source port will be automatically assigned, but it's the target port (61616) that really tells you what kind of connection you're looking at. Now, the exchange we're looking at is a JBI InOut that is sent between nataku and kakyou. If you look at the diagram under Invocation Example on [1], you'll notice that this involves: - sending an Active exchange (with only the in message) from the consumer to the provider - sending an Active exchange (with both the in and out message) from the provider back to the consumer - sending a Done exchange from the consumer to the provider to finish the exchange So, in order to send the first Active exchange from nataku to kakyou, you'll see the connection from nataku to kakyou being used. Sending the second Active exchange goes the other way around, so it uses the client connection from kakyou to nataku, etc... Does this make any more sense now? Gert Vanthienen ------------------------ Open Source SOA: http://fusesource.com Blog: http://gertvanthienen.blogspot.com/ [1] http://servicemix.apache.org/5-jbi.html#5.JBI-Invocationexample 2009/4/7 Diefenbach Anne <[email protected]>: > Hello, > > I have a question regarding the traffic flow between two clustered SMX > instances. I have the following setup: > > kakyou ------------------- nataku ---------------- kanoe > SMX with CXF SE SMX with CXF BC CXF consumer > > I have monitored the traffic between Kakyou and Nataku with tcpdump, and I > found the results rather surprising, which is why I want to make sure it is > the expected behaviour, and if not, get some tips as to what I did wrong. > > First surprise was that there are two TCP connections between the SMX > instances: one which goes from kakyou:35518 to nataku:61617 and one from > nataku:35486 to kakyou:61616. I would have expected one connection from > nataku:61617 to kakyou:61616. Second surprise was that messages from > operations following a request-response pattern are transmitted over both > connections: It seems that with every message, the one received before is > "quoted", so to speak. To be precise, for a request from Kanoe the following > happens: > 1) The CXF request is transmitted from Kanoe to Nataku. > 2) The normalized request is transmitted over the nataku:35486 - kakyou:61616 > connection. > 3) Request and response are transmitted over the kakyou:35518 - nataku:61617 > connection. > 4) Request and response are transmitted over the nataku:35486 - kakyou:61616 > connection. > 5) CXF response is transmitted from Nataku to Kanoe. > > Is this what is supposed to be happening? (I wouldn't be surprised if it > wasn't; I was trying to find out what I was actually configuring, but all the > relevant entries over at the ActiveMQ site were marked TODO.) > > Kakyou's ActiveMQ configuration is the following: > > ----------------------------------------------------------------- > <beans xmlns:amq="http://activemq.org/config/1.0"> > > <amq:broker id="broker" depends-on="jmxServer" useShutdownHook="false"> > > <amq:managementContext> > <bean class="org.apache.activemq.broker.jmx.ManagementContext"> > <property name="createConnector" value="false" /> > </bean> > </amq:managementContext> > > <amq:persistenceAdapter> > <amq:journaledJDBC journalLogFiles="5" > dataDirectory="/opt/iona/fuse-esb-3.3.1.9/data/amq"/> > </amq:persistenceAdapter> > > <amq:transportConnectors> > <amq:transportConnector uri="tcp://localhost:61616"/> > </amq:transportConnectors> > > <amq:networkConnectors> > <amq:networkConnector uri="static://(tcp://nataku:61617)" /> > </amq:networkConnectors> > > </amq:broker> > </beans> > ----------------------------------------------------------------- > > Nataku's is: > > ----------------------------------------------------------------- > <beans xmlns:amq="http://activemq.org/config/1.0"> > > <amq:broker id="broker" depends-on="jmxServer" useShutdownHook="false"> > > <amq:managementContext> > <bean class="org.apache.activemq.broker.jmx.ManagementContext"> > <property name="createConnector" value="false" /> > </bean> > </amq:managementContext> > > <amq:persistenceAdapter> > <amq:journaledJDBC journalLogFiles="5" > dataDirectory="/opt/iona/fuse-esb-3.3.1.9/data/amq"/> > </amq:persistenceAdapter> > > <amq:transportConnectors> > <amq:transportConnector uri="tcp://localhost:61617"/> > </amq:transportConnectors> > > <amq:networkConnectors> > <amq:networkConnector uri="static://(tcp://kakyou:61616)" /> > </amq:networkConnectors> > > </amq:broker></beans> > ----------------------------------------------------------------- > > I would appreciate your input. > > Regards, > > Anne Diefenbach > - FKIE-KOM - > ************************************************* > Forschungsgesellschaft für > Angewandte Naturwissenschaften e. V. (FGAN) > E-Mail: [email protected] > Web: www.fgan.de > ************************************************ > >
