178.3.5. JMX 서비스 URL
기본 JMX 서비스 URL의 형식은 다음과 같습니다.
service:jmx:rmi:///jndi/rmi://localhost:<registryPort>/<serviceUrlPath>
registryPort 는 RMI 레지스트리 포트이고 기본값은 1099 입니다.
시스템 속성별로 authconfig 레지스트리 포트를 설정할 수 있습니다.
-Dorg.apache.camel.jmx.rmiConnector.registryPort=<port number>
또는 Spring 구성에서 camelContext 요소 내에 jmxAgent 요소를 추가하여 다음을 수행합니다.
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<jmxAgent id="agent" createConnector="true" registryPort="port number"/>
...
</camelContext>
serviceUrlPath 는 URL의 경로 이름이며 기본값은 /jmxrmi/camel 입니다.
시스템 속성으로 서비스 URL 경로를 설정할 수 있습니다.
-Dorg.apache.camel.jmx.serviceUrlPath=<path>
Java에서 ManagementAgent 설정
Camel 2.4 이후에서는 ManagementAgent 에서 다양한 옵션을 설정할 수도 있습니다.
context.getManagementStrategy().getManagementAgent().setServiceUrlPath("/foo/bar");
context.getManagementStrategy().getManagementAgent().setRegistryPort(2113);
context.getManagementStrategy().getManagementAgent().setCreateConnector(true);
또는 Spring 구성에서 camelContext 요소 내에 jmxAgent 요소를 추가하여 다음을 수행합니다.
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<jmxAgent id="agent" createConnector="true" serviceUrlPath="path"/>
...
</camelContext>
기본적으로 RMI 서버 개체는 동적으로 생성된 포트에서 수신 대기하므로 방화벽을 통해 설정된 연결에 문제가 될 수 있습니다. 이러한 상황에서는 system 속성에서 RMI 연결 포트를 명시적으로 설정할 수 있습니다.
-Dorg.apache.camel.jmx.rmiConnector.connectorPort=<port number>
또는 Spring 구성에서 camelContext 요소 내에 jmxAgent 요소를 추가하여 다음을 수행합니다.
<camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring">
<jmxAgent id="agent" createConnector="true" connectorPort="port number"/>
...
</camelContext>
커넥터 포트 옵션을 설정하면 JMX 서비스 URL이 됩니다.
service:jmx:rmi://localhost:<connectorPort>/jndi/rmi://localhost:<registryPort>/<serviceUrlPath>