Hi All,

I'm not sure if I'm missing something but given the following situation:

1) muse starts up
2) subscription is made -> persisted subscription manager instance and
subscription filter
3) muse shuts down (called with explicit IsolationLayer.shutdown())

muse will always delete both the subscription and the resource, even if
the subscriber hasn't wished to cancel their subscription.

I realise that removing unsubscribed resources is probably the right
thing to do in most cases (as muse has no way of knowing what should be
kept) but in the case of subscriptions this behaviour seems wrong.  The
next time muse starts up it should be able to notify the subscription of
events.

The way I have "solved" this is to add a shouldSave Set into the
Environment (as this is accessible in both the RouterPersistence and any
resource) and a isShuttingDown function (set true by the
IsolationLayer).  Then in the NotificationProducer resourceRemoved I
check if muse isShuttingDown, if true then call shouldSave on the EPR
and return.  In RouterPersistence destroyResourceFile I then check if
the EPR is in the shouldSave set from the Environment, if so I don't
delete it.

This "works" in my test cases but:

1) it seems a terrible hack
2) it only works because the RouterPersistence resourceRemoved is called
after the NotificationProducer's resourceRemoved.

Is there a simpler way?

cheers,
Chris


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to