The default configuration for the jms flow use UDP multicast.
Maybe you have a firewall which does not allow UDP packets.

On 11/12/06, Christian Schneider <[EMAIL PROTECTED]> wrote:
I have set up a small example of a sender and a receiver in two
different servicemix containers using a jms flow.

When I run the two on the same machine the sender can communicate with
the receiver. But when I run them on two different machines in the same
subnet I get an error message:

01:46:04,578 WARN  [NetworkConnector] Could not start network bridge
between: vm://peer-wschris-2808-1163292341312-0-0?network=true and:
tcp://notebook:1849 due to: java.net.ConnectException: Connection timed
out: connect
01:46:04,578 DEBUG [NetworkConnector] Start failure exception:
java.net.ConnectException: Connection timed out: connect
java.net.ConnectException: Connection timed out: connect

Any idea what I am doing wrong?

Many thanks in advance

Christian

Attached you will find the code for my sender and receiver:
---
The sender testcase. It sends an InOnly and an InOut message. In the
case of the InOut message it prints the out message

import java.util.EventListener;

import javax.jbi.messaging.InOnly;
import javax.jbi.messaging.InOut;
import javax.naming.InitialContext;
import javax.xml.namespace.QName;

import junit.framework.TestCase;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.servicemix.client.DefaultServiceMixClient;
import org.apache.servicemix.client.ServiceMixClient;
import org.apache.servicemix.jbi.container.JBIContainer;
import org.apache.servicemix.jbi.jaxp.SourceTransformer;
import org.apache.servicemix.jbi.jaxp.StringSource;
import org.apache.servicemix.jbi.view.DotViewEndpointListener;
import org.apache.servicemix.jbi.view.DotViewFlowListener;

public class ClusterSender extends TestCase {

    private static Log logger =  LogFactory.getLog(ClusterSender.class);
    protected JBIContainer container;

    protected void setUp() throws Exception {
        BasicConfigurator.configure(new ConsoleAppender());
        Logger.getRootLogger().setLevel(Level.DEBUG);
        container = new JBIContainer();
        container.setName("SenderContainer");
        container.setUseMBeanServer(false);
        container.setCreateMBeanServer(false);
        container.setMonitorInstallationDirectory(false);
        container.setNamingContext(new InitialContext());
        container.setEmbedded(true);
        container.setFlowName("jms");
        container.setListeners(new EventListener[]{new
DotViewFlowListener(), new DotViewEndpointListener()});
        container.init();
    }

    protected void tearDown() throws Exception {
        if (container != null) {
            container.shutDown();
        }
    }

    public void testSend() throws Exception {
        container.start();
        QName receiverService = new QName("http://my";, "Receiver");
        ServiceMixClient client = new DefaultServiceMixClient(container);
        InOnly me = client.createInOnlyExchange();
        //me.setInterfaceName(receiverService);
        me.setService(receiverService);
        me.getInMessage().setContent(new StringSource("<oneWay
xmlns='http://jsr181.servicemix.apache.org'><in0>world</in0></oneWay>"));
        client.sendSync(me);

        InOut me2 = client.createInOutExchange();
        me2.setService(receiverService);
        me2.getInMessage().setContent(new StringSource("<oneWay
xmlns='http://jsr181.servicemix.apache.org'><in0>world</in0></oneWay>"));
        client.sendSync(me2);
        SourceTransformer transformer = new SourceTransformer();
        String st = transformer.toString(me2.getOutMessage().getContent());
        System.out.println(st);
      }
}
---
The receiver testcase. It activates the receiver component and waits


import java.util.EventListener;

import javax.naming.InitialContext;
import javax.xml.namespace.QName;

import junit.framework.TestCase;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.servicemix.jbi.container.ActivationSpec;
import org.apache.servicemix.jbi.container.JBIContainer;
import org.apache.servicemix.jbi.view.DotViewEndpointListener;
import org.apache.servicemix.jbi.view.DotViewFlowListener;


public class ClusterReceiver extends TestCase {

    private static Log logger =  LogFactory.getLog(ClusterReceiver.class);
    protected JBIContainer container;

    protected void setUp() throws Exception {
        BasicConfigurator.configure(new ConsoleAppender());
        Logger.getRootLogger().setLevel(Level.DEBUG);
        logger.info("Start");
        System.out.println("start");
        container = new JBIContainer();
        container.setName("ReceiverContainer");
        container.setUseMBeanServer(false);
        container.setCreateMBeanServer(false);
        container.setMonitorInstallationDirectory(false);
        container.setNamingContext(new InitialContext());
        container.setEmbedded(true);
        container.setFlowName("jms");
        container.setRmiPort(1001);
        container.setListeners(new EventListener[]{new
DotViewFlowListener(), new DotViewEndpointListener()});
        container.init();
    }

    protected void tearDown() throws Exception {
        if (container != null) {
            container.shutDown();
        }
    }

    public void testSend() throws Exception {
        container.start();

        QName receiverService = new QName("http://my";, "Receiver");

        Receiver receiver = new Receiver();
        receiver.setService(receiverService);
        ActivationSpec spec = new ActivationSpec(receiver);
        //spec.setInterfaceName(receiverService);
        spec.setService(receiverService);
        container.activateComponent(spec);

        System.in.read();
    }
}
---
The receiver component

import javax.jbi.messaging.MessageExchange;
import javax.jbi.messaging.NormalizedMessage;

import org.apache.servicemix.components.util.OutBinding;
import org.apache.servicemix.jbi.jaxp.SourceTransformer;
import org.apache.servicemix.jbi.jaxp.StringSource;
import org.apache.servicemix.jbi.messaging.NormalizedMessageImpl;


public class Receiver extends OutBinding {

    @Override
    protected void process(MessageExchange messageExchange,
NormalizedMessage message) throws Exception {
        SourceTransformer transformer = new SourceTransformer();
        System.out.println(transformer.toString(message.getContent()));
        System.out.println(messageExchange);
        NormalizedMessage out = new NormalizedMessageImpl();
        try  {
            out.setContent(new StringSource("<oneWay
xmlns='http://jsr181.servicemix.apache.org'><in0>Processed</in0></oneWay>"));
            messageExchange.setMessage(out, "out");
        } catch (Exception e) {
            e.printStackTrace();
        }
        done(messageExchange);
    }

}
---
Here is the full log for the sender in debug level:

01:45:40,312 INFO  [JBIContainer] ServiceMix 3.0.1-incubating JBI
Container (SenderContainer) is starting
01:45:40,312 INFO  [JBIContainer] For help or more informations please
see: http://incubator.apache.org/servicemix/
log4j:ERROR No output stream or file set for the appender named [null].
01:45:40,703 DEBUG [JmxUtils] Found MBeanServer:
[EMAIL PROTECTED]
01:45:40,890 INFO  [ConnectorServerFactoryBean] JMX connector server
started: [EMAIL PROTECTED]
01:45:40,890 INFO  [ConnectorServerFactoryBean] JMX connector available
at: service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
01:45:40,984 DEBUG [ManagementContext] Registering system service:
org.apache.servicemix:ContainerName=SenderContainer,Type=SystemService,Name=ManagementContext
01:45:40,984 DEBUG [ManagementContext] Registering system service:
org.apache.servicemix:ContainerName=SenderContainer,Type=SystemService,Name=EnvironmentContext
01:45:40,984 DEBUG [ManagementContext] Registering system service:
org.apache.servicemix:ContainerName=SenderContainer,Type=SystemService,Name=ClientFactory
01:45:41,000 DEBUG [ManagementContext] Registering system service:
org.apache.servicemix:ContainerName=SenderContainer,Type=SystemService,Name=Registry
01:45:41,000 DEBUG [ManagementContext] Registering system service:
org.apache.servicemix:ContainerName=SenderContainer,Type=SystemService,Name=DefaultBroker
01:45:41,062 DEBUG [JMSFlow] SenderContainer: Initializing jms flow
01:45:41,515 INFO  [BrokerService] ActiveMQ 4.0.2 JMS Message Broker
(peer-wschris-2808-1163292341312-0-0) is starting
01:45:41,515 INFO  [BrokerService] For help or more information please
see: http://incubator.apache.org/activemq/
01:45:41,875 INFO  [TransportServerThreadSupport] Listening for
connections at: tcp://wschris:2809
01:45:41,875 WARN  [MulticastDiscoveryAgent] brokerName not set
01:45:41,968 INFO  [TransportConnector] Connector tcp://wschris:2809 Started
01:45:42,218 INFO  [NetworkConnector] Network Connector bridge Started
01:45:42,218 INFO  [BrokerService] ActiveMQ JMS Message Broker
(peer-wschris-2808-1163292341312-0-0, ID:wschris-2808-1163292341312-1:0)
started
01:45:42,218 DEBUG [VMTransportFactory] binding to broker:
peer-wschris-2808-1163292341312-0-0
01:45:42,390 DEBUG [WireFormatNegotiator] Sending: WireFormatInfo {
version=1, properties={TightEncodingEnabled=true,
TcpNoDelayEnabled=true, SizePrefixDisabled=false,
StackTraceEnabled=true, MaxInactivityDuration=30000, CacheEnabled=true},
magic=[A,c,t,i,v,e,M,Q]}
01:45:42,390 DEBUG [TcpTransport] TCP consumer thread starting
01:45:42,437 INFO  [TransportConnector] Connector
vm://peer-wschris-2808-1163292341312-0-0 Started
01:45:42,578 DEBUG [WireFormatNegotiator] Received WireFormat:
WireFormatInfo { version=1, properties={StackTraceEnabled=true,
TightEncodingEnabled=true, TcpNoDelayEnabled=true,
SizePrefixDisabled=false, MaxInactivityDuration=30000,
CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
01:45:42,578 DEBUG [WireFormatNegotiator] tcp:///10.0.0.100:1976 before
negotiation: OpenWireFormat{version=1, cacheEnabled=false,
stackTraceEnabled=false, tightEncodingEnabled=false,
sizePrefixDisabled=false}
01:45:42,593 DEBUG [WireFormatNegotiator] tcp:///10.0.0.100:1976 after
negotiation: OpenWireFormat{version=1, cacheEnabled=true,
stackTraceEnabled=true, tightEncodingEnabled=true, sizePrefixDisabled=false}
01:45:42,640 INFO  [NetworkConnector] Establishing network connection
between from vm://peer-wschris-2808-1163292341312-0-0?network=true to
tcp://notebook:1849
01:45:42,750 DEBUG [AbstractRegion] Adding destination:
topic://ActiveMQ.Advisory.Connection
01:45:42,812 DEBUG [AbstractRegion] Adding destination:
topic://ActiveMQ.Advisory.Topic
01:45:43,109 DEBUG [AbstractRegion] Adding destination:
topic://ActiveMQ.Advisory.Consumer.Queue.org.apache.servicemix.jms.SenderContainer
01:45:43,140 DEBUG [AbstractRegion] Adding destination:
topic://ActiveMQ.Advisory.Producer.Topic.org.apache.servicemix.JMSFlow
01:45:43,343 INFO  [JBIContainer] Activating component for:
[container=SenderContainer,name=#SubscriptionManager#] with service:
null component: [EMAIL PROTECTED]
01:45:43,500 INFO  [ComponentMBeanImpl] Initializing component:
#SubscriptionManager#
01:45:43,531 DEBUG [ManagementContext] Registering system service:
org.apache.servicemix:ContainerName=SenderContainer,Type=SystemService,Name=InstallationService
01:45:43,531 DEBUG [ManagementContext] Registering system service:
org.apache.servicemix:ContainerName=SenderContainer,Type=SystemService,Name=DeploymentService
01:45:43,531 INFO  [DeploymentService] Restoring service assemblies
01:45:43,531 DEBUG [ManagementContext] Registering system service:
org.apache.servicemix:ContainerName=SenderContainer,Type=SystemService,Name=AutoDeploymentService
01:45:43,546 DEBUG [ManagementContext] Registering system service:
org.apache.servicemix:ContainerName=SenderContainer,Type=SystemService,Name=AdminCommandsService
01:45:43,546 WARN  [ClientFactory] Cound not start ClientFactory:
javax.naming.NoInitialContextException: Need to specify class name in
environment or system property, or as an applet parameter, or in an
application resource file:  java.naming.factory.initial
01:45:43,546 DEBUG [ClientFactory] Could not start ClientFactory
javax.naming.NoInitialContextException: Need to specify class name in
environment or system property, or as an applet parameter, or in an
application resource file:  java.naming.factory.initial
    at
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
    at
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
    at
javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
    at javax.naming.InitialContext.bind(InitialContext.java:359)
    at
org.apache.servicemix.jbi.framework.ClientFactory.start(ClientFactory.java:82)
    at
org.apache.servicemix.jbi.container.JBIContainer.start(JBIContainer.java:591)
    at ClusterSender.testOrder(ClusterSender.java:67)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at junit.framework.TestCase.runTest(TestCase.java:154)
    at junit.framework.TestCase.runBare(TestCase.java:127)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:118)
    at junit.framework.TestSuite.runTest(TestSuite.java:208)
    at junit.framework.TestSuite.run(TestSuite.java:203)
    at
org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
    at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
01:45:43,593 DEBUG [JMSFlow] SenderContainer: Starting jms flow
01:45:43,593 DEBUG [AbstractRegion] Adding destination:
topic://ActiveMQ.Advisory.Consumer.Topic.org.apache.servicemix.JMSFlow
01:45:43,625 DEBUG [AbstractRegion] Adding destination:
topic://ActiveMQ.Advisory.Consumer.Queue.org.apache.servicemix.jms.#SubscriptionManager#
01:45:43,656 INFO  [JBIContainer] ServiceMix JBI Container
(SenderContainer) started
01:45:43,687 INFO  [JBIContainer] Activating component for:
[container=SenderContainer,name=ID:wschris-2803-1163292339953-0:0] with
service: null component:
[EMAIL PROTECTED]
01:45:43,687 INFO  [ComponentMBeanImpl] Initializing component:
ID:wschris-2803-1163292339953-0:0
01:45:43,687 INFO  [ComponentMBeanImpl] Starting component:
ID:wschris-2803-1163292339953-0:0
01:45:43,687 DEBUG [AbstractRegion] Adding destination:
topic://ActiveMQ.Advisory.Consumer.Queue.org.apache.servicemix.jms.ID:wschris-2803-1163292339953-0:0
01:45:43,703 DEBUG [AbstractRegion] Adding destination:
topic://org.apache.servicemix.JMSFlow
01:45:43,750 DEBUG [JMSFlow] SenderContainer: adding remote endpoint:
ServiceEndpoint[service={http://my}Receiver,endpoint=ID:notebook-1843-1163288108953-0:0]
01:45:43,750 DEBUG [DotViewEndpointListener] Creating DOT file at:
ServiceMixComponents.dot
01:45:43,781 DEBUG [DotViewEndpointListener] Creating DOT file at:
ServiceMixFlow.dot
01:45:43,937 DEBUG [DeliveryChannelImpl] SendSync
ID:wschris-2808-1163292341312-8:0 in
DeliveryChannel{ID:wschris-2803-1163292339953-0:0}
01:45:44,796 DEBUG [DeliveryChannelImpl] Sent: InOnly[
  id: ID:wschris-2808-1163292341312-8:0
  status: Active
  role: consumer
  service: {http://my}Receiver
  in: <?xml version="1.0" encoding="UTF-8"?><oneWay
xmlns="http://jsr181.servicemix.apache.org";><in0>world</in0></oneWay>
]
01:45:44,796 DEBUG [DefaultBroker] Routing exchange InOnly[
  id: ID:wschris-2808-1163292341312-8:0
  status: Active
  role: provider
  service: {http://my}Receiver
  endpoint: ID:notebook-1843-1163288108953-0:0
  in: <?xml version="1.0" encoding="UTF-8"?><oneWay
xmlns="http://jsr181.servicemix.apache.org";><in0>world</in0></oneWay>
] to:
ServiceEndpoint[service={http://my}Receiver,endpoint=ID:notebook-1843-1163288108953-0:0]
01:45:44,796 DEBUG [JMSFlow] Called Flow send
01:45:44,890 DEBUG [ActiveMQSession] Sending message:
ActiveMQObjectMessage {commandId = 0, responseRequired = false,
messageId = ID:wschris-2808-1163292341312-4:0:1:1:1, originalDestination
= null, originalTransactionId = null, producerId =
ID:wschris-2808-1163292341312-4:0:1:1, destination =
queue://org.apache.servicemix.jms.{http://my}Receiver:ID:notebook-1843-1163288108953-0:0,
transactionId = null, expiration = 0, timestamp = 1163292344875, arrival
= 0, correlationId = null, replyTo = null, persistent = true, type =
null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId
= null, compressed = false, userID = null, content =
[EMAIL PROTECTED], marshalledProperties =
null, dataStructure = null, redeliveryCounter = 0, size = 0, properties
= null, readOnlyProperties = true, readOnlyBody = true}
01:45:44,890 DEBUG [AbstractRegion] Adding destination:
queue://org.apache.servicemix.jms.{http://my}Receiver:ID:notebook-1843-1163288108953-0:0
01:45:44,906 DEBUG [AbstractRegion] Adding destination:
topic://ActiveMQ.Advisory.Queue
01:45:44,937 DEBUG
[{http://my}Receiver:ID:notebook-1843-1163288108953-0:0] No
subscriptions registered, will not dispatch message at this time.
01:45:44,937 DEBUG [DeliveryChannelImpl] Waiting for exchange
ID:wschris-2808-1163292341312-8:0 (67ec28) to be answered in
DeliveryChannel{ID:wschris-2803-1163292339953-0:0} from sendSync
01:45:57,453 DEBUG [InactivityMonitor] Message sent since last write
check, resetting flag
01:46:04,578 WARN  [NetworkConnector] Could not start network bridge
between: vm://peer-wschris-2808-1163292341312-0-0?network=true and:
tcp://notebook:1849 due to: java.net.ConnectException: Connection timed
out: connect
01:46:04,578 DEBUG [NetworkConnector] Start failure exception:
java.net.ConnectException: Connection timed out: connect
java.net.ConnectException: Connection timed out: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:516)
    at
org.apache.activemq.transport.tcp.TcpTransport.doStart(TcpTransport.java:272)
    at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:48)
    at
org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:52)
    at
org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:52)
    at
org.apache.activemq.transport.WireFormatNegotiator.start(WireFormatNegotiator.java:59)
    at
org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:52)
    at
org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:52)
    at
org.apache.activemq.network.DemandForwardingBridgeSupport.start(DemandForwardingBridgeSupport.java:176)
    at
org.apache.activemq.network.DiscoveryNetworkConnector.onServiceAdd(DiscoveryNetworkConnector.java:121)
    at
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$2.run(MulticastDiscoveryAgent.java:341)
    at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
    at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
    at java.lang.Thread.run(Thread.java:595)
01:46:04,578 DEBUG [DemandForwardingBridge]  stopping
peer-wschris-2808-1163292341312-0-0 bridge to Unknown is disposed
already ? false
01:46:04,609 DEBUG [DemandForwardingBridge] Caught exception stopping
java.io.IOException: Transport disposed.
    at
org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:69)
    at
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:44)
    at
org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:58)
    at
org.apache.activemq.network.DemandForwardingBridgeSupport.stop(DemandForwardingBridgeSupport.java:291)
    at
org.apache.activemq.util.ServiceSupport.dispose(ServiceSupport.java:39)
    at
org.apache.activemq.network.DiscoveryNetworkConnector.onServiceRemove(DiscoveryNetworkConnector.java:154)
    at
org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$3.run(MulticastDiscoveryAgent.java:370)
    at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
    at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
    at java.lang.Thread.run(Thread.java:595)
01:46:04,609 DEBUG [DemandForwardingBridge]
peer-wschris-2808-1163292341312-0-0 bridge to Unknown stopped

--

Christian Schneider
---
http://www.liquid-reality.de




--
Cheers,
Guillaume Nodet

Reply via email to