Discussion:
[omniORB] Big string transfer gives COMM_FAILURE from C++ client
Fernando.Matomira at thomson.com ()
2006-06-02 19:52:13 UTC
Permalink
Hello,



I am trying to send a big string (5 MB) as a parameter from a C++
client implemented using

omniORB to a Java service (the ORB is omniORB). This fails with a
COMM_FAILURE exception with only

about 500K read always (but not the same number).

This does not happen when the client is in Java. omniORB is configured
to do transfers of upto 100MB.

All the machines are at the same site and the error happens every time
for the C++ client.

Any ideas?

Thanks



WARNING: "IOP00410215: (COMM_FAILURE) Read of full message failed :
bytes requested = 5,033,716 bytes read = 540,372 max wait time = 3,000
total time spent waiting = 3,190"

org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 215 completed: No

at
com.sun.corba.se.impl.logging.ORBUtilSystemException.transportReadTimeou
tExceeded(ORBUtilSystemException.java:2572)

at
com.sun.corba.se.impl.logging.ORBUtilSystemException.transportReadTimeou
tExceeded(ORBUtilSystemException.java:2598)

at
com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.readFully(
SocketOrChannelConnectionImpl.java:628)

at
com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.read(Socke
tOrChannelConnectionImpl.java:559)

at
com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.readGIOPBody(M
essageBase.java:413)

at
com.sun.corba.se.impl.transport.CorbaContactInfoBase.finishCreatingMessa
geMediator(CorbaContactInfoBase.java:183)

at
com.sun.corba.se.impl.transport.SocketOrChannelAcceptorImpl.finishCreati
ngMessageMediator(SocketOrChannelAcceptorImpl.java:518)

at
com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.finishRead
ingBits(SocketOrChannelConnectionImpl.java:383)

at
com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.doWork(Soc
ketOrChannelConnectionImpl.java:1182)

at
com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run
(ThreadPoolImpl.java:417)



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20060602/71f64f7e/attachment.htm
Renzo Tomaselli
2006-06-05 13:34:54 UTC
Permalink
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20060605/3a8fd25c/attachment.htm
Duncan Grisby
2006-06-05 17:43:14 UTC
Permalink
Post by Fernando.Matomira at thomson.com ()
I am trying to send a big string (5 MB) as a parameter from a C++
client implemented using
omniORB to a Java service (the ORB is omniORB). This fails with a
COMM_FAILURE exception with only
about 500K read always (but not the same number).
This does not happen when the client is in Java. omniORB is configured
to do transfers of upto 100MB.
I assume you mean that you have upped the default giopMaxMsgSize
parameter.

What version of omniORB, and what platform? If you're not running 4.0.7
(or 4.1.0 beta 2), please upgrade.

The latest releases have configuration parameters named maxSocketSend
and maxSocketRecv that may help you.

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Fernando.Matomira at thomson.com ()
2006-06-06 13:28:54 UTC
Permalink
We are running 4.0.7 on Solaris 9

Thanks

-----Original Message-----
From: Duncan Grisby [mailto:***@grisby.org]
Sent: Monday, June 05, 2006 1:43 PM
To: Mato Mira, Fernando (DIA CHE)
Cc: omniorb-***@omniorb-support.com
Subject: Re: [omniORB] Big string transfer gives COMM_FAILURE from C++
client
Post by Fernando.Matomira at thomson.com ()
I am trying to send a big string (5 MB) as a parameter from a C++
client implemented using
omniORB to a Java service (the ORB is omniORB). This fails with a
COMM_FAILURE exception with only
about 500K read always (but not the same number).
This does not happen when the client is in Java. omniORB is configured
to do transfers of upto 100MB.
I assume you mean that you have upped the default giopMaxMsgSize
parameter.

What version of omniORB, and what platform? If you're not running 4.0.7
(or 4.1.0 beta 2), please upgrade.

The latest releases have configuration parameters named maxSocketSend
and maxSocketRecv that may help you.

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Stefan Näwe
2006-06-06 13:36:42 UTC
Permalink
Post by Fernando.Matomira at thomson.com ()
Hello,
I am trying to send a big string (5 MB) as a parameter from a C++
client implemented using
omniORB to a Java service (the ORB is omniORB). This fails with a
COMM_FAILURE exception with only
about 500K read always (but not the same number).
This does not happen when the client is in Java. omniORB is configured
to do transfers of upto 100MB.
All the machines are at the same site and the error happens every time
for the C++ client.
Any ideas?
Thanks
bytes requested = 5,033,716 bytes read = 540,372 max wait time = 3,000
total time spent waiting = 3,190"
Doesn't this mean there's a wait timout of 3000 (time units...) and
3190 (time units...) have already been spent waiting for the message
to be read ?
So it's simply a timeout ?


Just guessing...

Stefan
--
Duncan Grisby
2006-06-07 19:14:57 UTC
Permalink
Post by Fernando.Matomira at thomson.com ()
We are running 4.0.7 on Solaris 9
You could try setting the maxSocketSend parameter to something like
65536 to see if that helps, but I think it sounds like it could well
just be a timeout on the read, as Stefan suggested.

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Loading...