Discussion:
[omniORB] omniORBpy connectivity questions
Alvin Delagon
2008-04-01 13:31:37 UTC
Permalink
Hello,

This is my first post in this mailing list. I've been playing around with
omniORBpy and was able to make all the examples work in the tutorial page.
The samples shown were using stringified objects and nameservice to resolve
the objects. Now I'm tasked to connect to a remote Cobra server given the
parameters: IP, ContextID, Context, ObjectID, and Object. Anyone can explain
to me how can I use these parameters to interconnect with the server? I
can't find the documentations on how to use these parameters in omniORBpy.
Thank you in advance.

---
Alvin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20080401/fd117d99/attachment.htm
Duncan Grisby
2008-04-02 23:28:49 UTC
Permalink
Post by Alvin Delagon
This is my first post in this mailing list. I've been playing around with
omniORBpy and was able to make all the examples work in the tutorial page.
The samples shown were using stringified objects and nameservice to resolve
the objects. Now I'm tasked to connect to a remote Cobra server given the
parameters: IP, ContextID, Context, ObjectID, and Object. Anyone can explain
to me how can I use these parameters to interconnect with the server? I
can't find the documentations on how to use these parameters in omniORBpy.
What do those parameters look like? The only standard ways to specify a
CORBA object reference are with a stringified IOR or with a corbaloc or
corbaname URI. There is nothing in the standard about creating an object
reference using the values you name. Do you have any example code using
those parameters with some other CORBA implementation?

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Serguei Kolos
2008-04-04 03:30:34 UTC
Permalink
Hello

I have noticed a weired behavior of timeouts for one-way calls - it
seems that they depend on the
amount of data which is being sent. The one-way function takes sequence
of bytes as its argument
and if the server application hangs by some reason then I get the
following behavior on the client
side:
1. If the sequence is shorter then 4KB then the client gets the
TRANSIENT exception with the Timeout minor
code right after 10 seconds which is the timeout that I'm using
2. If the sequence size is more then 5KB then the client application
hangs forever. One interesting point is
that if I stop the hanging client with Ctrl-Z and then bring it back
with the 'fg' command then the one-way
function immediately throws the TRANSIENT Timeout exception.
I'm using omniORB 4.0.7 on SLC4 Linux with gcc 3.4

Does anybody have an idea why I got this behavior and how this could be
improved ?

Cheers,
Sergei
Serguei Kolos
2008-04-04 13:36:01 UTC
Permalink
Hello

Sorry, there was a mistake in my original e-mail - in reality the timeouts
stop arriving if the sequence size exceeds 75 KB (not 5).

Cheers,
Sergei
Post by Serguei Kolos
Hello
I have noticed a weired behavior of timeouts for one-way calls - it
seems that they depend on the
amount of data which is being sent. The one-way function takes
sequence of bytes as its argument
and if the server application hangs by some reason then I get the
following behavior on the client
1. If the sequence is shorter then 4KB then the client gets the
TRANSIENT exception with the Timeout minor
code right after 10 seconds which is the timeout that I'm using
2. If the sequence size is more then 5KB then the client application
hangs forever. One interesting point is
that if I stop the hanging client with Ctrl-Z and then bring it
back with the 'fg' command then the one-way
function immediately throws the TRANSIENT Timeout exception.
I'm using omniORB 4.0.7 on SLC4 Linux with gcc 3.4
Does anybody have an idea why I got this behavior and how this could
be improved ?
Cheers,
Sergei
_______________________________________________
omniORB-list mailing list
http://www.omniorb-support.com/mailman/listinfo/omniorb-list
Serguei Kolos
2008-04-04 15:00:19 UTC
Permalink
Hello

Doing some further investigation I have realized that the same applies
to a normal two-way calls
as well. The problem is that it is possible that tcpConnection::Send
function blocks forever on the
::send call (tcpConnection.cc:205) if the message is large enough and
the server is hanging. This
happens because the tcp sockets are used in the blocking mode
(O_NONBLOCK is not set).
I understand that using non-blocking mode for sockets is more
problematic since EAGAIN error
requires a non-trivial handling but on the other hand this is a serious
issue in my case.

I have a reliable client which is sending data and non-reliable servers
which are written by different
users and may die (easy case) or hang. In the latter case my client also
hangs forever which is
unacceptable.
I'll be glad to hear any ideas on how to handle this issue.

Cheers,
Sergei
Post by Serguei Kolos
Hello
I have noticed a weired behavior of timeouts for one-way calls - it
seems that they depend on the
amount of data which is being sent. The one-way function takes
sequence of bytes as its argument
and if the server application hangs by some reason then I get the
following behavior on the client
1. If the sequence is shorter then 4KB then the client gets the
TRANSIENT exception with the Timeout minor
code right after 10 seconds which is the timeout that I'm using
2. If the sequence size is more then 5KB then the client application
hangs forever. One interesting point is
that if I stop the hanging client with Ctrl-Z and then bring it
back with the 'fg' command then the one-way
function immediately throws the TRANSIENT Timeout exception.
I'm using omniORB 4.0.7 on SLC4 Linux with gcc 3.4
Does anybody have an idea why I got this behavior and how this could
be improved ?
Cheers,
Sergei
_______________________________________________
omniORB-list mailing list
http://www.omniorb-support.com/mailman/listinfo/omniorb-list
Loading...