Search code examples
xpageslotus-domino

Domino ODA Override phaseListener


We would like to implement our own phaseListener to add additional info and a dynamically set database when logging to OpenLog.

We can addd a phaseListener in faces-config.xml and it gets called, but we would also like to use ODA and that adds an extra phaseListener in domino-faces-config.xml.

This results in 2 phaselisteners and double logging. Is there a way to disable just the phaseListener part of ODA?


Solution

  • THe ODA PhaseListener is implemented for OpenLog purposes, to allow caught and uncaught exceptions to be logged when they redirect to the custom error page. There's no facility to disable that, as far as I'm aware, it gets registered globally.

    If you want to dynamically set the database, at a level below XSP Properties, you'll need to override BaseOpenLogItem item and set logDbName. Depending on order of processing, if your PhaseListener gets triggered first, you'll be able to clear the sessionScope variable that contains errors, which will ensure ODA has nothing to log.