[omniORB] OmniEvents

Storm,Ole OLS ols@kmd.dk
Mon, 24 Jan 2000 15:46:18 +0100


Hello omniORBers,

We have been using the omniEvents 1.0.3 service for some months now and =
are
quite happy with it.=20

We have, however, a small problem explained here:

The setup is as follows. The system has one supplier (S) and n =
consumers
(C_i), that communicates through one common event channel (EC). The =
event
channel is owned and constructed by an EventChannelFactory (ECF). The
supplier, all consumers and the EventChannelFactory are separate =
processes.
The supplier and consumers are of following kind:

S: PushSupplier,
C_i: PullConsumer, using try_pull() to poll for events

When a consumer is started, it connects to the event channel, listens =
for
events, and disconnects from the channel when terminated. However, if a
client goes down, i.e. is not terminated 'nicely', it never gets
disconnected from the eventchannel! Since event channels queue all =
events
recieved until they are 'delivered' to consumers, the queue associated =
with
the consumer that died, will start to grow in size continously. As a
consequence, the EventChannelFactory-process will start to garbage =
whenever
a client has a sudden death.

Is there a way I can handle this problem within omniEvents 1.0.3???

I have seen, that with omniEvents 2.0 it is now possible to set how =
many
events are buffered by each ProxySupplier. I think, however, that this =
is
only half a solution to this problem, since the EventChannelFactory =
process
will garbage the size of the buffer for every consumer that dies.=20
Am I right, or have I misunderstood something here?

Best regards,

	Ole.

> Ole Storm, ols@kmd.dk
> Udvikler, PUI
> KMD A/S
> Niels Bohrs Alle 185
> 5220 Odense S=D8
> Tlf  44 60 52 83
>=20
>=20
>=20