As already mentioned, you are responsible for releasing your DatabaseChangeNotification by canceling them when you connect. In my case, for some reason, I do this when the application server starts on tomcat. First I release old registrations, and then create new ones. I think I can reuse the old registration, but in any case I do not.
I am doing something like this:
This query returns existing registrations. You must log in as the same user who registered the notification.
SELECT REGID, CALLBACK FROM USER_CHANGE_NOTIFICATION_REGS
then a code like this pseudo code unregisters the notification.
connection.unregisterDatabaseChangeNotification (REGID, CALLBACK) is called for each row returned by the request.
Something else that I discovered is that when I update a row using PL / SQL Developer using the included editor, I get several notifications for the same update. When using sql to update a row, I get one notification as expected. I do not know why this is happening, but it is happening.
source share