Home Help Center

Problem using icepatch2 and icessl

joseangeljoseangel Member jose angelOrganization: PersonalProject: massive execution
Hi all,

I am new to zeroc ice and after reading documentation and searching the web I am unable to distribute an application using icepatch2 and icessl.

I have written a little python distributed application, a hello world (to start learning zeroc ice). After checking that the application works I have decided to reconfigure zeroc ice to use ssl (one virtual machine for the registry and where the client is executed, and two nodes for server execution). Registry and nodes are working well using SSL (I am able to connect to the java GUI and see both nodes) but when I try to deploy an application using icepatch2 and error arises:

[[email protected] helloworld]# icegridadmin --Ice.Config=client.cfg -u grid -p xxx -e 'application add app-ssl.xml'
-! 01/12/16 16:31:24.785 warning: Ice.ThreadPool.Client.SizeWarn < Ice.ThreadPool.Client.Size; adjusted SizeWarn to Size (100)
-- 01/12/16 16:31:24.785 ThreadPool: creating Ice.ThreadPool.Client: Size = 100, SizeMax = 150, SizeWarn = 100
-- 01/12/16 16:31:24.810 Security: SSL summary for outgoing connection
cipher = DHE-RSA-AES256-GCM-SHA384
bits = 256
protocol = TLSv1.2
local address =
remote address =
warning: the patch failed on some nodes:
- patch on node `slave1' failed:
Reference.cpp:1663: Ice::NoEndpointException:
no suitable endpoint available for proxy `SyncGridReplyApp.IcePatch2/server -t -e 1.1'
- patch on node `slave2' failed:
Reference.cpp:1663: Ice::NoEndpointException:
no suitable endpoint available for proxy `SyncGridReplyApp.IcePatch2/server -t -e 1.1'
-! 01/12/16 16:31:24.975 warning: thread pool `Ice.ThreadPool.Client' is running low on threads
Size=100, SizeMax=150, SizeWarn=100
[[email protected] helloworld]#

I have tried changing endpoints from tcp to ssl in xml file but it did not work.

The xml configuration file:

<application name="SyncGridReplyApp" import-default-templates="true">
<replica-group id="grid-reply">
<load-balancing type="round-robin" />
<object identity="SyncGridReplyObj"/>
<server-template id="SyncGridReplyInstance">
<parameter name="ncpus" />
<server id="SyncGridReplyServer-${node}" exe="python" activation="on-demand" pwd="${server.distrib}">
<!-- Directive distrib to enable icepatch2 distribution in nodes -->
<property name="LogLevel" value="DEBUG" />
<adapter name="SyncGridReplyAdp" register-process="true" endpoints="ssl" replica-group="grid-reply" />
<node name="slave1">
<!-- set IcePatch2Server port for use with icepatch2client for testing, and listen on all interfaces -->
<server-instance template="IcePatch2" endpoints="ssl -p 10004" directory="/opt/distrib/helloworld"/>
<server-instance template="SyncGridReplyInstance" ncpus="2"/>
<node name="slave2">
<server-instance template="SyncGridReplyInstance" ncpus="2"/>

Any ideas?? I think that it could be because icepatch2 does not load icessl pluging but I am stucked here and I do not know how to solve.

Thanks in advance,


  • benoitbenoit Rennes, FranceAdministrators, ZeroC Staff Benoit FoucherOrganization: ZeroC, Inc.Project: Ice ZeroC Staff

    Yes, it's quite possible that the IcePatch2 server fails to load because the IceSSL plugin isn't configured. You can add the SSL configuration under the server-instance element for the IcePatch2 server, for example:
    <server-instance template="IcePatch2" endpoints="ssl -p 10004" directory="/opt/distrib/helloworld">
            <property name="Ice.Plugin.IceSSL" value="IceSSL:createIceSSL"/>
            <property name="IceSSL.DefaultDir" value="/opt/distrib/certs"/>
            <property name="IceSSL.CertFile" value="server.p12"/>

    You can also add tracing to the IceGrid node to check for the server activation failure with IceGrid.Node.Trace.Activator=2.

  • joseangeljoseangel Member jose angelOrganization: PersonalProject: massive execution

    Now the application distribution is working but the application is not working:

    2016-01-13 10:30:01.134379 SyncGridReplyServer-slave1: error: Traceback (most recent call last):
    File "/usr/lib64/python2.6/site-packages/Ice/Ice.py", line 1113, in main
    Application._communicator = initialize(args, initData)
    File "/usr/lib64/python2.6/site-packages/Ice/Ice.py", line 647, in initialize
    communicator = IcePy.Communicator(args, data)
    EndpointParseException: exception ::Ice::EndpointParseException
    str = invalid endpoint `ssl -h registry.jadbp.lab -p 4062' in `HelloWorld/Locator:ssl -h registry.jadbp.lab -p 4062'

    Brownsing the IcePy.Communicator code it seems that SSL support for IcePy.Communicator was added in 3.6 version and I am using 3.5.1 version so I will upgrade to 3.6. Am I right?

    Thanks in advance,
Sign In or Register to comment.