Archived

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

IceBox service names

Hi! There is a rather confusing problem with multiple services in one IceBox.
One service registers a servant with his adapter, and the second tries to use it. The problem occurs when the connection is to be established, either by a cecked_cast or when a method should be invoked.

This is the config file:


IceBox.ServiceManager.Endpoints=tcp -p 9998 -p 9999
IceBox.Service.Server=Server:create
IceBox.Service.Bla=Client:create

Process.Proxy=hallo:tcp -p 10000:udp -p 10000 -p 10001
Server.Endpoints=tcp -p 10000:udp -p 10000 -p 10001

Ice.Warn.Connections=1


The error message looks like this:


$ icebox --Ice.Config=config
icebox: error: ServiceManager: exception while starting service Bla:
Network.cpp:447: Ice::ConnectFailedException:
connect failed: Connection refused


When changing the 3rd line of the config file to
IceBox.Service.bla=Client:create
it works.

We also tried different names for Bla/bla, and it does not seem like it is only the capitalization.
Are there any conventions in the naming of service that we have overlooked?

Christiane

Comments

  • mes
    mes California
    Hi,

    The IceBox server currently makes no guarantees about the order that services will be initialized. In reality, it is currently determined by the order in which the Ice::Properties implementation returns the IceBox.Service.* properties.

    As you've seen, you can influence the order of initialization by modifying the service names. If your services have dependencies, your only options at present are to a) select service names that produce the desired order, or b) delay the interdependent actions of your services until a later time.

    Option b may not be easy to do, or even possible in some applications. We will consider adding a way for users to specify the initialization order for cases such as yours.

    Take care,
    - Mark