[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