I'm using RedHat
Advanced Server 4.0, and I'm trying to implement an ORBit2 server that only
accepts and processes requests without return values. In other words, I
want to enforce one-way communication. I wanted to use "oneway void" to
accomplish this. However, I have found that there is a point at which the
server starts to loose packets (requests) if I increase the procedure call rate.
This doesn't happen if I have procedure calls that return a long or some other
data type. My interface looks like this:
interface
EHcontrolEvents
{
oneway void ctrl_event ( in long seq, in long prio, in long type, in long
len, in string msg);
};
And the client is
calling this procedure like this:
for( seq
= 0; seq < 1000 ; seq++ )
{
prio = 0;
type = 1;
len = strlen(ctrlMsg);
rv = EHcontrolEvents_ctrl_event(service, seq, prio, type, len, ctrlMsg, ev);
fprintf(stderr, "%d\n", rv);
if (etk_raised_exception (ev))
{
fprintf(stderr, "Exception Raised!!\n");
return;
}
else
{
printf("%d, %d, %d, %d, %s\n",
seq, prio, type, len, ctrlMsg);
printf("RETURN: %d\n", rv);
fflush(stdout);
}
}
}
{
prio = 0;
type = 1;
len = strlen(ctrlMsg);
rv = EHcontrolEvents_ctrl_event(service, seq, prio, type, len, ctrlMsg, ev);
fprintf(stderr, "%d\n", rv);
if (etk_raised_exception (ev))
{
fprintf(stderr, "Exception Raised!!\n");
return;
}
else
{
printf("%d, %d, %d, %d, %s\n",
seq, prio, type, len, ctrlMsg);
printf("RETURN: %d\n", rv);
fflush(stdout);
}
}
}
Is this a UNIX
socket buffer problem, or should I change something in my IDL? Thanks in
advance.
---
Best Regards,
Brendan Jacobs
_______________________________________________ orbit-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/orbit-list
