|Summary:||SlowQueryReport failed query logging|
|Product:||Tomcat Modules||Reporter:||Keith Williams <kwill806>|
|Component:||jdbc-pool||Assignee:||Tomcat Developers Mailing List <dev>|
Description Keith Williams 2015-06-16 15:02:45 UTC
The SlowQueryReport JDBC interceptor catches Exceptions, by default logs them, and rethrows them. There is an option with the latest version not to write the message to the log, but it still sends it to JMX. It is very common in enterprise frameworks (such as Spring JDBC) to call a method, catch any exception thrown and handle the exception. All of this is normal activity. It should not be logged, it should not be sent to JMX. So first I would argue that SlowQueryReport SHOULD NOT log failed SQL statements at all. It is not documented as such, and it is a pain in the ??? that it does. :-) Second, it you will not remove the functionality, please understand that JMX and logging should "log" the same actions. So the setting should effect both. But again, if you want to make it hard to configure, by all means create yet another setting to control sending failed SQL to JMX. Finally, if you will not remove the functionality, please change the default to NOT log failed SQL. Minimal configuration is best. :-)
Comment 1 Mark Thomas 2015-06-16 15:49:36 UTC
Comment 2 Keiichi Fujino 2015-06-29 09:35:36 UTC
Thanks for the report. I fixed to use the LogSlow attribute and the logFailed attribute as a condition to send JMX notifications.(r1688164) As for default value of the logFailed attribute, I will change to false against trunk and tc8.0 unless there is no objections.