Archived

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

I have several problems of ice invoking

Hi.

my development environment:
- ubuntu 10.04
- ice 3.4.1
- language: c++

my processes are all same which is ice server and client.
In other words, all processes have a server adapter,
and each process can invoke ice function as client at the same time.

And all processes are running at the same time in the local network (tcp).
In this case, I have several problems.

1) processes(as client) can't invoke function of server.
::Ice:: DispatchStatus::...::__dispatch(::IceInternal::Incoming& in, const ::Ice::Current& current)
::...::IceProxy::__function()
::...::IceDelegateM::function()
==> bool __ok = __og.invoke() : NOT RUN!!!

2) same function in running server is not dispatched at the multi-thread environment.
I changed the function to AMD, but I got same result.


pls help me...

Comments

  • benoit
    benoit Rennes, France
    Hi,

    It very much sounds like you are running into a deadlocks because of thread starvation. By default, the Ice communicator has only 1 thread in its client and server thread pools. You need to configure more threads if your servers are doing nested invocations and if you need methods to be concurrently dispatched. You can configure more threads with the following properties:
    Ice.ThreadPool.Server.Size=10
    Ice.ThreadPool.Server.SizeMax=100
    

    I recommend reading the Ice Threading Model chapter in the Ice manual for more information.

    Cheers,
    Benoit.
  • Thank you, benoit

    Thank you, benoit

    My problems were solved!!!! :)