Oracle AQ Leave Dead Subscribers in the Queue
We are using Oracle AQ(Advanced Queue) in our project. We see messages keep accumulating in our AQ Queue table if subscription is not closed (close method not called) due to developer mistake or due to unexpected shutdown/crash, when un-subscription could not be done.
As a workaround we ran below cleanup script to remove all the subscribers from the JMS broker. We were expecting when we remove active subscription it will throw exception in OnError method of ExceptionListener and we will re-establish the connection here as Our Subscribers are implementing ExceptionListener. But the behaviour we observed is- it does not throw any exception nor it is delivering any new messages. Looks like full subscriber instance is removed along with the Connection object?