Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

localhost + OmniORB = bad?

59 views
Skip to first unread message

Ares

unread,
May 20, 2003, 3:25:50 PM5/20/03
to
I have endless errors ("omniORB: An exception has occured and was caught by
tcpSocketMT Worker thread", SystemException, memory problems) with using
OmniORB (3.0.5 and 4.0.1) on localhost (both client and server on the same
machine, a Windows 2000 IBM laptop).

These errors are non-existent when the server (unmodified) is on another
machine (a Windows NT 4 machine).

Some of the problems:

* Creating and activating more than one server through ServantActivator
* Passing of a string sequence as function parameter, f.example:

From the client:

bool
OmniORBArxDbReactorBean::onObjModified(const char* teststr1, const char*
teststr2, const char* teststr3 )
{
RcsxDbBean::Seq_string params;
params.length(3);
params[0] = teststr1;
params[1] = teststr2;
params[1] = teststr3;

for (CORBA::ULong i=0; i< params.length(); i++)
{
printf("%s\n", params[i]);
} // This prints correctly here

_server->updateRow(params); // CORBA server called here

return false;
}

And the server:

void
HBMN_Door_i::updateRow(const RcsxDbBean::Seq_string& params)
{
for (CORBA::ULong i=0; i< params.length(); i++)
{
printf("%s\n", params[i]);
}// This prints three times ^@
// Why isn't the parameters printed correctly???????????
}

and I get an "omniORB: An exception has occured and was caught by
tcpSocketMT Worker thread" exception.

Any comments greatly appreciated!

Ares

Ares

unread,
May 20, 2003, 6:33:28 PM5/20/03
to
The loop:

for (CORBA::ULong i=0; i< params.length(); i++)
{
printf("%s\n", params[i]);
}

also worked fine for the client like this:


for (CORBA::ULong i=0; i< params.length(); i++)
{

_CORBA_String_element tmp = params[i];
printf("%s\n", tmp._retn());
}

BUT this loop hanged the server, and returned an exception (unknown) to the
client.

Ares


Gary D. Duzan

unread,
May 21, 2003, 12:43:52 PM5/21/03
to
In article <q3yya.14062$8g5.2...@news2.e.nsc.no>,

Try something like:

printf("%s\n", (const char *) params[i]);

for starters.

Gary Duzan
BBN Technologies
A Verizon Company


RCS

unread,
May 21, 2003, 1:03:52 PM5/21/03
to
I have experimented a bit, and I finally have found the culprit: Visual
Studio 7.0!

I compiled the Echo example, and even this simple example had errors after
three-four client invocations, while the same example compiled with Visual
Studio 6, worked fine (as usual).

Blast!

Autodesk claims one needs VS 7 in order to compile Objectarx applications
for Autocad 2004, and since we use Omniorb a lot with Autocad, this was bad
news!

I will see if Autocad 2004 after all handles VS 6, and we will be up and
running as before.

Or even compiling the server with VS 6, and the Autocad clients with 7 might
do it.

Thanks for answering!

Ares

"Gary D. Duzan" <gdu...@bbn.com> skrev i melding
news:c1Oya.5$n4....@paloalto-snr1.gtei.net...

Duncan Grisby

unread,
May 22, 2003, 9:37:56 AM5/22/03
to
In article <tjOya.14270$8g5.2...@news2.e.nsc.no>,
RCS <rcs...@online.no> wrote:

>I have experimented a bit, and I finally have found the culprit: Visual
>Studio 7.0!

If you compile omniORB itself with VC 7, it should work fine. VC 7.1
has a bug in using friend operators that requires you to use the
latest CVS version of omniORB.

Cheers,

Duncan.

--
-- Duncan Grisby --
-- dun...@grisby.org --
-- http://www.grisby.org --

RCS

unread,
May 22, 2003, 10:45:39 AM5/22/03
to
Thanks for the info!

To get around the problem for now I compiled the server with VC 6, and the
Autocad client with VC 7 (which is required by Autocad 2004), and it works
with the present libraries.

But in the long run of course, I will compile the source with VC 7.

Regards,
RCS

"Duncan Grisby" <dunca...@grisby.org> skrev i melding
news:Uo4za.9863$sJ4....@newsfep4-winn.server.ntli.net...

0 new messages