[omniORB] CORBA::COMM_FAILURE with out structures.
Peter.Ronnquist@nokia.com
Peter.Ronnquist@nokia.com
Fri, 15 Sep 2000 11:49:11 +0300
Hi,
We are having troubles with omniOrb 2.8.0 (also gives same error on =
omniOrb
3.0) regarding a method that takes a struct as out parameter.
The sympom is that the client gets a CORBA::COMM_FAILURE exception when =
the
method is called. The server side is called and it executes all its =
function
body but the client side of the method never returns (only gives the
COMM_FAILIURE).
The fun part is that when the test fields are removed then the method =
call
succeds. We have also experimented with other combinations of fields in =
the
struct and arguments to the method and it works in some cases. It is =
like it
depends on how much data that is sent.=20
Have anyone else had similar problems?=20
Details:
--------------
idlfile:
struct TInfo {=20
unsigned long test;
unsigned long signalStrength;
unsigned long BER;
unsigned long SNR;
unsigned long frequency;
}
unsigned long getInfo(out TInfo info);
client:
struct TInfo info;
...
try {
res =3D (u_int32) tuner->GetInfo(info);
}
...
server:
CORBA::ULONG GetInfo(TInfo& _info) {
_info.test=3D0;
_info.signalStrength=3D0;
_info.BER=3D0;
_info.SNR=3D0;
_info.frequency=3D0;
=09
return (CORBA::ULong)1;
}
I am using Linux Redhat 6.0 with gcc 2.95.2, the 2.8.0 version is built =
from
sources on the target machine on which both the client and server =
resides
(and the orb also).
I also tried with the omniOrb 3.0 (the redhat rpm from the omniOrb =
site).
Peter R=F6nnquist
Software engineer
Nokia Link=F6ping
Sweden