Java Management Extensions(JMX)에 wsadmin 스크립트 사용
JMX(Java™ Management Extensions)는 Java 자원(예: 애플리케이션 서버)을 노출하는 표준 방식을 시스템 관리 인프라에 제공하는 프레임워크입니다. JMX 프레임워크를 사용하여 제공자는 구성 설정 나열과 같은 기능을 구현하고 설정을 편집할 수 있습니다. 이 프레임워크는 관리 애플리케이션이 애플리케이션 서버 시작과 같은 이벤트를 모니터하기 위해 사용할 수 있는 알림 계층도 포함합니다.
JMX 키 기능
JMX의 WebSphere® Application Server 구현에 대한 주요 기능은 다음과 같습니다.
- JMX 에이전트를 실행하는 모든 프로세스.
- JMX 조작을 통해 수행되는 모든 런타임 관리.
- JMX 에이전트를 원격 JMX 가능 관리 애플리케이션에 연결하는 데 사용되는 커넥터.
다음과 같은 커넥터가 지원됩니다.
- SOAP JMX 커넥터
- JMX 원격 API(Application Programming Interface)(JSR 160) RMI-IIOP(Remote Method Invocation over the Internet Inter-ORB Protocol) JMX 커넥터, (JSR160RMI 커넥터)
- RMI-IIOP(Remote Method Invocation over the Internet Inter-ORB Protocol) JMX 커넥터
- 프로세스 간 통신(IPC)
- 제공된 프로토콜을 통해 JMX 에이전트의 관리 보기를 제공하는 프로토콜 어댑터. 프로토콜 어댑터에 연결하는 관리 애플리케이션은 보통 제공된 프로토콜에 고유합니다.
- 런타임 오브젝트의 구성 설정을 조회 및 업데이트할 수 있는 능력
- 런타임 중 애플리케이션 컴포넌트 및 자원을 로드, 초기화, 변경 및 모니터할 수 있는 능력
JMX 아키텍처
JMX 아키텍처는 세 개의 계층으로 구조화됩니다.
- 인스트루멘테이션 계층 - 관리 Bean(MBean)이라고 하는 특수 Java Bean 내에서 자원을 랩핑할 수 있는 방법을 지시합니다.
- 에이전트 계층 - 관리 인프라 구조를 제공하는 에이전트 및 MBean 서버로 구성됩니다. 구현된 서비스는 다음과 같습니다.
- 모니터링
- 이벤트 알림
- 타이머
- 관리 계층 - 외부 관리 애플리케이션이 프로토콜, API 등의 관점에서 기본적인 계층과 상호작용할 수 있는 방법을 정의합니다. 이 계층은 J2EE(Java 2 Platform, Enterprise Edition) 스펙의 일부인 분산 서비스 스펙(JSR-077)의 구현을 사용합니다.
JMX의 계층 아키텍처가 다음 그림에 요약되어 있습니다.

JMX 분산 관리
다음 그림에서는 JMX 아키텍처가 WebSphere Application Server, Network Deployment 환경의 전체 분산 관리 토폴로지에 어떻게 맞춰지는지를 보여줍니다.

이 분산 관리 아키텍처의 중요한 점은 다음과 같습니다.
- 내부 MBean은 로컬 MBean 서버를 가진 JVM(Java virtual machine) 레지스터에 대한 로컬입니다.
- 외부 MBean은 MBean 서버에 대한 로컬 프록시를 가지고 있습니다. 프록시는
로컬 MBean 서버에서 등록합니다. MBean 프록시를 사용하여 로컬 MBean 서버는 메시지를 다음 위치에 있는 외부 MBean 서버에 전달할 수 있습니다.
- 노드 에이전트에는 자체 노드에 모든 서버에 대한 MBean 프록시가 있습니다. 다른 노드에 대한 MBean 프록시는 사용되지 않습니다.
- 배치 관리자는 셀에 있는 모든 노드 에이전트에 대해 MBean 프록시를 가지고 있습니다.
JMX Mbeans
이 제품은 여러 MBean을 제공하며, 이들 각각에는 사용 가능한 서로 다른 기능과 조작이 있습니다. 예를 들어, 애플리케이션 서버 MBean은 시작 및 중지와 같은 조작을 노출할 수 있습니다. 애플리케이션 MBean은 설치 및 설치 제거와 같은 조작을 노출할 수 있습니다. 사용자가 보게 될 일부 JMX 사용법 시나리오에는 다음이 포함됩니다.
- 프로그램 방식으로 JMX API에 액세스하여 WebSphere Application Server, Network Deployment 런타임 및 해당 WebSphere 자원을 제어하기 위해 작성된 외부 프로그램.
- 애플리케이션 컴포넌트와 자원의 JMX API 관리를 지원하는 관리 코드의 일부로 사용자 정의 JMX MBean을 포함하는 써드파티 애플리케이션.
다음 예제는 특정 MBean의 이름을 확보하는 방법을 보여줍니다.
Jacl 사용:
set am [$AdminControl queryNames type=ApplicationManager,process=server1,*]
Jython 사용:
am = AdminControl.queryNames('type=ApplicationManager,process=server1,*')
각 WebSphere Application Server 런타임 MBean에는 속성, 조작 및 알림이 있을 수 있습니다. 제품에 제공되는 각 MBean에 대한 전체 문서는 이 Information Center( )에서 사용할 수 있습니다.
JMX 이점
WebSphere Application Server에서 관리 기능에 JMX를 사용하면 다음과 같은 이점이 제공됩니다.
- 중요한 투자없이 Java 애플리케이션의 관리를 사용 가능하게 합니다.
- 관리 에이전트로 작동하는 코어 관리 대상 오브젝트 서버에 의존합니다.
- Java 애플리케이션은 관리 대상 오브젝트 서버를 임베드하고 그 기능의 일부를 오브젝트 서버에서 등록한 몇몇 또는 하나의 MBean으로 사용 가능하도록 만들 수 있습니다.
- 확장 가능한 관리 아키텍처를 제공합니다.
- 모든 JMX 에이전트 서비스는 관리 에이전트에 플러그인할 수 있는 독립적 모듈입니다.
- API는 확장 가능하므로, 새 WebSphere Application Server 및 사용자 정의 애플리케이션 기능을 이 관리 인터페이스를 통해 쉽게 추가하여 노출할 수 있습니다.
- 기존의 관리 솔루션을 통합합니다.
- 각 프로세스는 해당 자원을 관리할 경우 자체적으로 충분합니다. 집중되는 제어 위치가 없습니다. 원칙적으로는 JMX 가능 관리 클라이언트는 어떤 관리 대상 프로세스에도 연결할 수 없으며 그 프로세스에서 호스트하는 MBean과 상호작용할 수 없었습니다.
- JMX에서는 시스템 관리에 대해 단 하나의 균일한 도메인 범위 접근을 제공합니다. 개별 프로세스는 MBean 프록시를 통해 상호작용하므로 단일 관리 클라이언트는 관리 대상 프로세스 네트워크를 통해 연속으로 탐색할 수 있습니다.
- 관리에 필요한 인터페이스만 정의합니다.
- 애플리케이션 및 관리 자원을 관리 풀에 노출하기 위한 표준 API를 제공합니다.