The use of a proxy for JMX causes vastly increase stack depth.
Channel:
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:239)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.integration.monitor.DirectChannelMetrics.monitorSend(DirectChannelMetrics.java:114)
at org.springframework.integration.monitor.DirectChannelMetrics.doInvoke(DirectChannelMetrics.java:98)
at org.springframework.integration.monitor.DirectChannelMetrics.invoke(DirectChannelMetrics.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy17.send(Unknown Source)
at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:115)
Handler:
at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.integration.monitor.SimpleMessageHandlerMetrics.handleMessage(SimpleMessageHandlerMetrics.java:107)
at org.springframework.integration.monitor.SimpleMessageHandlerMetrics.invoke(SimpleMessageHandlerMetrics.java:87)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy18.handleMessage(Unknown Source)
at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:116)
Depending on the implementation, the 13/12 stack frames could be reduced to 0 or 1.
Also:
add a statsEnabled attribute to these MBeans so stats capture can be managed for individual components
add defaultStatsEnabled and/or statsEnabledPattern to the IMBE to set the initial value for all/matching component bean names
Gary Russell opened INT-3627 and commented
The use of a proxy for JMX causes vastly increase stack depth.
Channel:
Handler:
Depending on the implementation, the 13/12 stack frames could be reduced to 0 or 1.
Also:
statsEnabled
attribute to these MBeans so stats capture can be managed for individual componentsdefaultStatsEnabled
and/orstatsEnabledPattern
to theIMBE
to set the initial value for all/matching component bean namesReference URL: spring-projects/spring-boot#2441
Sub-tasks:
Consider how to get one MBean instead of two when an embedded component (handler, source) is a @ManagedResource [INT-3174] #7151 Consider how to get one MBean instead of two when an embedded component (handler, source) is a
@ManagedResource
Maintain channel statistics within the channel itself rather than the JMX bean [INT-3605] #7569 Maintain channel statistics within the channel itself rather than the JMX bean
JMX Improvements Phase I - Core Message Channels [INT-3636] #7598 JMX Improvements Phase I - Core Message Channels
JMX Improvements Phase II - Message Handlers [INT-3637] #7599 JMX Improvements Phase II - Message Handlers
JMX Improvements Phase III - Default Enable Option [INT-3638] #7600 JMX Improvements Phase III - Default Enable Option
JMX Improvements Phase IV - AMQP, JMS Channels [INT-3639] #7601 JMX Improvements Phase IV - AMQP, JMS Channels
JMX Improvements Phase V - Metrics Capture Performance [INT-3641] #7603 JMX Improvements Phase V - Metrics Capture Performance
Documentation for JMX Changes [INT-3651] #7611 Documentation for JMX Changes
Switch Default Metrics to Use System.nanoTime(); Make MessageChannelMetrics and MessageHandlerMetrics Pluggable [INT-3653] #7613 Switch Default Metrics to Use System.nanoTime(); Make MessageChannelMetrics and MessageHandlerMetrics Pluggable
The text was updated successfully, but these errors were encountered: