179.4.3. Java VM에서 MBean 서버 검색

각 CamelContext는 InstrumentationLifecycleStrategy 내부에 InstrumentationAgent 의 인스턴스를 래핑할 수 있습니다. InstrumentationAgent는 Camel MBean을 등록/등록하기 위한 MBeanServer 와 상호 작용하는 오브젝트입니다. 여러 CamelContexts / InstrumentationAgents는 MBeanServer 를 공유할 수 있습니다. 기본적으로 Camel 런타임은 org.apache.camel 의 기본 도메인 이름과 일치하는 MBeanServer.findMBeanServer 메서드 에서 반환된 첫 번째 MBeanServer를 선택합니다.

애플리케이션에서 이미 사용 중인 MBeanServer 인스턴스와 일치하도록 기본 도메인 이름을 변경할 수 있습니다. 특히 MBeanServer 가 JMX 커넥터 서버에 연결된 경우 Camel에 커넥터 서버를 만들 필요가 없습니다.

시스템 속성을 통해 일치하는 기본 도메인 이름을 구성할 수 있습니다.

-Dorg.apache.camel.jmx.mbeanServerDefaultDomain=<your.domain.name>

또는 Spring 구성에서 camelContext 요소 내에 jmxAgent 요소를 추가하여 다음을 수행합니다.

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
  <jmxAgent id="agent" mbeanServerDefaultDomain="your.domain.name"/>
    ...
</camelContext>

일치하는 MBeanServer 를 찾을 수 없는 경우 새 'MBeanServer'의 기본 도메인 이름이 위에서 언급한 대로 기본 및 구성에 따라 설정됩니다.

시스템 속성을 설정하여 JVM MBean을 관리하는 것이 바람직한 경우 PlatformMBeanServer 를 사용할 수도 있습니다. MBeanServer 기본 도메인 이름 구성은 적용되지 않으므로 무시됩니다.

경고

다음 릴리스 (1.5)부터 usePlatformMBeanServer 의 기본값은 true 로 변경됩니다. 플랫폼 MBeanServer 를 사용하여 비활성화하려면 속성을 false 로 설정할 수 있습니다.

-Dorg.apache.camel.jmx.usePlatformMBeanServer=True

또는 Spring 구성에서 camelContext 요소 내에 jmxAgent 요소를 추가하여 다음을 수행합니다.

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
  <jmxAgent id="agent" usePlatformMBeanServer="true"/>
    ...
</camelContext>