[omniORB] Clients don't reply ??
Miguel
mmiguel@arrakis.es
Mon, 21 May 2001 21:03:33 +0200
Hello to everybody!!
I have a strange (at least for me :-D) problem with an application I'm
implementing in Linux. In order to show you what's the
problem, I'll try to explain this application. I've something like:
server1
{
orb->init
register in Naming Service
orb->run...
}
server2
{
orb->init
register in Naming Service
contact with server1 and get its reference
orb->run // Many methods of this server contact with client1 and client2
}
client1
{
main()
{
orb->init
get reference to server2
create thread
orb->run // This client is a server for another clients...
}
thread()
{
contact with server2
contact server1 (through a reference passed by server2)
contact with client2 (through a reference passed by server2)
}
}
client2
{
main()
{
orb->init
create thread
orb->run // This client is a server for another clients, too
}
thread
{
contact with server2
contact server1 (through a reference passed by server2)
contact with client2 (through a reference passed by server2)
}
}
(client1 and client2 are almost the same and the objects they register in
the ORB are of the same type...)
If any client tries to communicate with any server, it works perfectly. The
problem is when any object
(server1, server2, client1 or client2) tries to contact with any of the
clients. For example:
from server1: ref_client1->functionA() => server1 blocks and client1
doesn't execute 'functionA' !!!
or
from client1: ref_client2->functionZ() => client1 blocks here and no
excepcion or error message is sent... is like if
client2 isn't there, but the ORB doesn't "say" anything...
If I try to do something like:
from client1: ref_server1->functionB()
of
from client2: ref_server2->functionP()
it works perfectly!!
It's curious that the problem is in the processes that I have a thread for
the ORB (the 'main' function) and other one for the "application".
Perhaps I'm using the same port for receiving and sending messages? I must
say that for the threads I'm using
the omniORB thread implementation, and I think they work OK.
Ah!! Did I mention that this works ok in Windows?
I'm using omniORB 3.0.3 and Red Hat Linux 7.
Any idea/comment??
Thank you very much in advance...
Bye!!