Archived

This forum has been archived. Please start a new discussion on GitHub.

throughput demo (java client) failing to connect to throughput demo (C++ server)

That' about it. I am able to use the throughput demo in the following combinations (on the same machine, no config files were changed):
Java Server - Java Client
C++ Server - C++ Client
Java Server - C++ Client

but when i load the C++ server and execute the Java client (java Client)
the following error appear
Client: Ice.ConnectionRefusedException
    error = 0
Ice.ConnectionRefusedException
    error = 0
        at IceInternal.Network.doConnect(Network.java:284)
        at IceInternal.TcpConnector.connect(TcpConnector.java:25)
        at IceInternal.OutgoingConnectionFactory.create(OutgoingConnectionFactory.java:308)
        at IceInternal.RoutableReference.createConnection(RoutableReference.java:379)
        at IceInternal.DirectReference.getConnection(DirectReference.java:192)
        at Ice._ObjectDelM.setup(_ObjectDelM.java:258)
        at Ice.ObjectPrxHelperBase.__getDelegate(ObjectPrxHelperBase.java:905)
        at Ice.ObjectPrxHelperBase.ice_isA(ObjectPrxHelperBase.java:73)
        at Ice.ObjectPrxHelperBase.ice_isA(ObjectPrxHelperBase.java:61)
        at Demo.ThroughputPrxHelper.checkedCast(ThroughputPrxHelper.java:418)
        at Client.run(Client.java:51)
        at Ice.Application.main(Application.java:114)
        at Ice.Application.main(Application.java:57)
        at Client.main(Client.java:412)
Caused by: java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:521)
        at IceInternal.Network.doConnect(Network.java:259)
        ... 13 more


Which is the same error i get if i don't execute the server at all. I don't know what is needed to allow this object to work that way, (i guessed it was the same object, and the thing that's failing is the connection.
Maybe the config files are the problem. I haven't changed anything in those files. Any idea of what could it be?

btw: Ice 3.1.1 (both java and C) under ubuntu

Comments

  • The Throughput proxy in the Ice for Java demo's config.client file is missing the host specification. Change it to:

    Throughput.Throughput=throughput:default -h 127.0.0.1 -p 10000

    and it should work okay for you.

    Cheers,

    Brent
  • It worked but...

    Thanks mr. beagles, that worked fine. But now, i found myself with another problem.
    When i moved my tests to different hosts
    i can't get the c++ server to work
    i could get the following combinations right:
    Java Server - Java Client
    Java Server - C++ Client

    but when i run the C++ server (in CAOS_NOTEBOOK machine)
    and use the c++ client in another machine with the following config.client
    Throughput.Throughput=throughput:tcp -h CAOS_NOTEBOOK -p 10000
    
    #
    # SSL Configuration
    #
    Ice.Plugin.IceSSL=IceSSL:createIceSSL
    IceSSL.DefaultDir=../../../certs
    IceSSL.CertAuthFile=cacert.pem
    IceSSL.CertFile=c_rsa1024_pub.pem
    IceSSL.KeyFile=c_rsa1024_priv.pem
    
    #
    # Disable ACM
    #
    Ice.ACM.Client=0
    

    I get the following message
    ./client: Network.cpp:669: Ice::ConnectionRefusedException:
    connection refused: Connection refused
    

    And when i use the java client with the following config.client
    Throughput.Throughput=throughput:tcp -h CAOS_NOTEBOOK -p 10000
    Throughput.Endpoints=tcp -h CAOS_NOTEBOOK -p 10000
    
    Ice.ACM.Client=0
    Ice.ACM.Server=0
    

    I get the following error
    [ Network: trying to establish tcp connection to 192.168.1.101:10000 ]
    [ Network: trying to establish tcp connection to 192.168.1.101:10000 ]
    Client: Ice.ConnectionRefusedException
        error = 0
    Ice.ConnectionRefusedException
        error = 0
            at IceInternal.Network.doConnect(Network.java:284)
            at IceInternal.TcpConnector.connect(TcpConnector.java:25)
            at IceInternal.OutgoingConnectionFactory.create(OutgoingConnectionFactory.java:308)
            at IceInternal.RoutableReference.createConnection(RoutableReference.java:379)
            at IceInternal.DirectReference.getConnection(DirectReference.java:192)
            at Ice._ObjectDelM.setup(_ObjectDelM.java:258)
            at Ice.ObjectPrxHelperBase.__getDelegate(ObjectPrxHelperBase.java:905)
            at Ice.ObjectPrxHelperBase.ice_isA(ObjectPrxHelperBase.java:73)
            at Ice.ObjectPrxHelperBase.ice_isA(ObjectPrxHelperBase.java:61)
            at Demo.ThroughputPrxHelper.checkedCast(ThroughputPrxHelper.java:418)
            at Client.run(Client.java:51)
            at Ice.Application.main(Application.java:114)
            at Ice.Application.main(Application.java:57)
            at Client.main(Client.java:412)
    Caused by: java.net.ConnectException: Connection refused
            at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
            at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:521)
            at IceInternal.Network.doConnect(Network.java:259)
    

    what could it be?
    I ping CAOS_NOTEBOOK without problems, and it worked in the previously mentioned combinations, so it can't be a port blocking problem.

    Thanks again, and sorry for so many newbie questions.
  • If you get a ConnectionRefusedException, that means that no process is listening at the port the client connects to. Your trace shows that the client tries to connect to 192.168.1.101:10000. Are you certain that your server is actually running on that host and port?

    What happens if you start the server and then do:

    telnet 192.168.1.101 10000

    You should be able to connect with telnet. If not, the server is defintely not running where the client things its running.

    You can run the server with --Ice.Trace.Network=2 to see what endpoints the server listens at.

    Cheers,

    Michi.