如何记录jdbc组件所用的时间

时间:2015-02-11 16:50:09

标签: spring-integration spring-jdbc

在我的spring集成应用程序中,我有几个存储过程出站网关,我会记录每次调用的时间,任何帮助将不胜感激。 理想情况下,我希望能够启用/禁用所用参数的记录,时间和检索的总行数(返回结果集)以进行监视和性能调整。

由于

1 个答案:

答案 0 :(得分:1)

您可以在请求通道中添加ChannelInterceptorChannelInterceptorAdapter的子类),它将为您提供原始时序(preSend / postSend),但时间将包括网关下游的任何处理(在直接渠道)。

由于您也想检查结果,您可以在请求通道上的拦截器(preSend)中启动计时器(例如Spring StopWatch),并在响应通道上的拦截器中停止计时器)。如果使用相同的拦截器bean,则可以将计时器存储在ThreadLocal

您可以使用拦截器上的布尔属性打开/关闭集合。

或者,您可以向网关添加custom advice

修改

建议可能是最好的方法,因为使用ThreadLocal,您需要将代码添加到第一个拦截器以处理故障和清理。使用around建议,计时器只是一个本地方法变量。