SlideShare a Scribd company logo
1 of 18
Download to read offline
JBoss AS7/EAP6
- JMS and JMX -

최지웅(놀새~) –컨설팅 코치
주식회사 오픈 소스 컨설팅
JMS Queue

Potential
Receiver 1
Sender

메시지 1

Potential
Receiver 2

메시지 2

Queue

메시지1
메시지2

- Point-to-Point 모델에서는 Sender에 의해 발생된 메시지가 Queue라는 채널에 전달되고, 이 메시지는
Queue에 의해 자동으로 Receiver에 전달

- Publisher/Subscriber 모델과 다른 점은 Queue에 전달된 하나의 메시지는 오직 하나의 Receiver에만 전달되
고 다수의 Receiver 에 전달되지 않음
- Sender에 의해 Queue에 전달된 메시지1은 Queue에 의해 Receiver1에 전달되고, Sender에 의해 전달된 메
시지2는 Queue에 의해 Receiver2에 전달
- Publisher/Subscriber 모델처럼 동일한 메시지가 서로 다른 Receiver에 전달되지 않음
- Internal Use Only -
JMS Topic

Subscriber
Publisher

메시지 1
메시지 2

Subscriber

메시지 1
메시지 2

Topic
메시지1
메시지2

- Publisher/Subscriber 모델에서는 Publisher가 하나의 메시지를 다수의 Subscriber(Consumer)에게
Topic 이라는 채널을 통하여 전달
- 모든 Subscriber는 Publisher가 Topic에 보낸 하나의 메시지의 사본을 전달 받게 되며, 이와 같은 메시
지 전달은 Topic에 의해 자동으로 Subscriber에 전달
- Publisher 에 의해 전달된 메시지1은 동시에 Subscriber1, Subscriber2 에 전달되며, Publisher에 의해
전달된 2번째 메시지인 메시지2 도 Subscriber1, Subscriber2에 전달

- Internal Use Only -
JBoss JMS 핵심 기능
JMS 1.1 스펙 준수 및 JBoss AS의 런타임 라이브러리로 사용.
성능, 신뢰성, 안정성 및 낮은 응답시간 등에 초점을 둠.
SOA의 초기 단계인 JBoss ESB의 핵심 모듈로서 사용
Netty 기반의 고성능 자바 엔진(LDAP, DNS, Keberos, etc)
Client-side Delegates
?
Connection
Sender
Session

JBoss
Netty

Core

Producer
Server-side
aspects
Consumer

Client-side aspects

Server-side
endpoints
- Internal Use Only -

Receiver
JBoss Netty – 고성능 네트워크 클라이언트/서버 프레임워크
이벤트 기반 비동기 네트워크 애플리케이션 프레임워크
Interceptor Chain 패턴
• 손쉽게 다단계 State machine 구현
• 암복호화 + 전문 해석 + 스레드 풀링 + 비즈니스 로직

• 조립 가능한 컴포넌트 다수 제공

과부하 및 DoS 방어 메커니즘
Old · New I/O 모두 지원
NIO 구현·벤더별 최적화

- Internal Use Only -
부가 기능 및 성능
SpecJMS2007 Bench Mark
- 초당 820만건 데이터 처리
HTTP를 이용한 단순한 RESTful
인터페이스 제공
AMQP – 향후 AMQP 프로토콜 지원
예정
STOMP(Streaming Text Oriented
Messaging Protocol)
STOMP 메시지 브로커를 통해 다양한
이기종 언어 간의 메시지 통신 기능
지원
XMPP : XML 기반 인터넷 통신을 위한
오픈 프로토콜
비동기 웹 지원 (Ajax/comet/bayeaux)

http://hornetq.blogspot.kr/2011/07/82-million-messages-second-with-specjms.html
- Internal Use Only -
JMS Queue 생성

Naming이 java:jboss/exported/ 로 시작되지 않으면 글로벌 JNDI에 바인딩되지 않음
- Internal Use Only -
JMS 사용자 생성
JMS 접근 사용자 생성
C:Javajboss-eap-6.1bin>add-user.bat
JAVA_HOME is not set. Unexpected results may occur.
Set JAVA_HOME to the directory of your local JDK to avoid this message.
What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a): b
Enter the details of the new user to add.
Realm (ApplicationRealm) :
Username (testuser) : ienvyou
Password : !test123
Re-enter Password : !test123
What roles do you want this user to belong to? (Please enter a comma separated list, or leave blank for
none)[ ]: testrole
About to add user 'ienvyou' for realm 'ApplicationRealm'
Is this correct yes/no? yes
Added user 'ienvyou' to file 'C:Javajboss-eap-6.1standaloneconfigurationapplication-users.properties'
Added user 'ienvyou' to file 'C:Javajboss-eap-6.1domainconfigurationapplication-users.properties'
Added user 'ienvyou' with roles testrole to file 'C:Javajboss-eap6.1standaloneconfigurationapplication-roles.properties'
Added user 'ienvyou' with roles testrole to file 'C:Javajboss-eap-6.1domainconfigurationapplicationroles.properties'
Is this new user going to be used for one AS process to connect to another AS process?
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server
EJB calls.
yes/no?

- Internal Use Only -
송수신 권한 설정
standalone-full.xml<before>
<security-settings>
<security-setting match="#">
<permission type="send" roles="guest"/>
<permission type="consume" roles="guest"/>
<permission type="createNonDurableQueue" roles="guest"/>
<permission type="deleteNonDurableQueue" roles="guest"/>
</security-setting>
</security-settings>

standalone-full.xml<after>
<security-settings>
<security-setting match="#">
<permission type="send" roles="guest testrole"/>
<permission type="consume" roles="guest testrole"/>
<permission type="createNonDurableQueue" roles="guest"/>
<permission type="deleteNonDurableQueue" roles="guest"/>
</security-setting>
</security-settings>

- Internal Use Only -
애플리케이션을 통한 테스트
try {
Hashtable<String, String> properties = new Hashtable<String, String>();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
properties.put(Context.PROVIDER_URL, "remote://localhost:4447");
properties.put(Context.SECURITY_PRINCIPAL, "admin");
properties.put(Context.SECURITY_CREDENTIALS, "!test123");
Context ctx = new InitialContext(properties);
ConnectionFactory cf = (ConnectionFactory) ic.lookup("jms/RemoteConnectionFactory");
Queue queue = (Queue) ic.lookup(destinationName);
System.out.println("Queue " + destinationName + " exists");

Connection connection = cf.createConnection("ienvyou", "!test123");
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer sender = session.createProducer(queue);
sender.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
TextMessage message = session.createTextMessage("Hello!");
sender.send(message);
System.out.println("The message was successfully sent to the " + queue.getQueueName() + " queue");

connection.start();
} catch(Exception e) {
}
closeConnection(connection);

- Internal Use Only -
Before JMX
Before JMX
벤더 고유의 관리 콘솔을 제공
일반적으로 웹 브라우저를 통하여 접근하도록 설계
API를 제공해주지 않을 경우 해당 관리 객체에 접근하기 어려움

Firewall hardware

Management console

Server

Management console

Web server software

Management console

Server Application

Management console

DB server software

Management console

- Internal Use Only -
With JMX(Java Management Extension)
JMX를 이용할 경우 소프트웨어 관리 포인트를 한 곳으로 집중할 수 있다는 장점이 발생.(JSR-255)
• 모든 리소스는 MBean을 사용하여 관리.
• JMX Agent (or group of agents)상의 모든 MBean은 하나의 관리 콘솔에서 모두 처리
Firewall hardware

Server

JMX Agent

Web server software
Server Application
DB server software

Adapter

Management console

= JMX MBean
http://www.jcp.org/en/jsr/detail?id=255
JSR 255: JavaTM Management Extensions (JMXTM) Specification, version 2.0
- Internal Use Only -
WebLogic JMX 적용 예
DomainRuntimeMBean을 통한 현재 JVM 및 JMS 상태 정보
JMS 관련 Queue 설정 정보 확인
-----------------------------------------------------------------------------------------------------------------com.bea:Name=DomainRuntimeService,Type=weblogic.management.mbeanservers.domainruntime.DomainRuntimeServiceMBean
ServerRuntimes
-----------------------------------------------------------------------------------------------------------------Server Name
Server State
Server JVMRuntime Name
Server JVMRuntime HeapSizeCurrent
Server JVMRuntime HeapFreeCurrent
Server JMSRuntime JMSServers Name
Server JMSRuntime JMSServers Destinations Name
Server JMSRuntime JMSServers Destinations ConsumersCurrentCount
Server JMSRuntime JMSServers Destinations ConsumersHighCount
Server JMSRuntime JMSServers Destinations ConsumersTotalCount
Server JMSRuntime JMSServers Destinations MessagesCurrentCount
Server JMSRuntime JMSServers Destinations MessagesHighCount
Server JMSRuntime JMSServers Destinations MessagesPendingCount
Server JMSRuntime JMSServers Destinations MessagesReceivedCount
-----------------------------------------------------------------------------------------------------------------com.bea:Name=DomainRuntimeService,Type=weblogic.management.mbeanservers.domainruntime.DomainRuntimeServiceMBean
DomainConfiguration
-----------------------------------------------------------------------------------------------------------------Domain JMSSystemResources JMSResource Name
Domain JMSSystemResources JMSResource Queues Name
Domain JMSSystemResources JMSResource Queues JNDIName
Domain JMSSystemResources JMSResource DistributedQueues Name
Domain JMSSystemResources JMSResource DistributedQueues JNDIName
Domain JMSSystemResources JMSResource DistributedQueues DistributedQueueMembers Name
- Internal Use Only -
JMX Object Name 수집
C:Javajboss-eap-6.1bin> standalone.bat -c standalone-full
C:Javajboss-eap-6.1bin> jconsole.bat

- Internal Use Only -
JVM Heap ObjectName

- Internal Use Only -
JMS ObjectName

- Internal Use Only -
JMX Code Example
import
import
import
import
import
import
import
import

java.util.HashMap;
javax.management.MBeanServerConnection;
javax.management.openmbean.CompositeDataSupport;
javax.management.openmbean.CompositeType;
javax.management.remote.JMXConnector;
javax.management.remote.JMXConnectorFactory;
javax.management.remote.JMXServiceURL;
javax.management.*;

public class HeapAccess {
public static void main(String[] args) throws Exception {
String host = "127.0.0.1"; // Your JBoss Bind Address default is localhost
int port = 9999; // JBoss remoting port
String urlString ="service:jmx:remoting-jmx://" + host + ":" + port;
System.out.println("
nnt**** urlString: "+urlString);
HashMap
environment = new HashMap();
String[] credentials = new String[] {"test", "!test123"};
environment.put (JMXConnector.CREDENTIALS, credentials);
JMXServiceURL serviceURL = new JMXServiceURL(urlString);
JMXConnector jmxConnector = JMXConnectorFactory.connect(serviceURL, environment);
MBeanServerConnection connection = jmxConnector.getMBeanServerConnection();
ObjectName objectName=new ObjectName("java.lang:type=Memory");
CompositeDataSupport heapMemoryUsage =(CompositeDataSupport)connection.getAttribute(objectName, "HeapMemoryUsage");
System.out.println("
System.out.println("
System.out.println("
System.out.println("

committed
init
max
used

=
=
=
=

"
"
"
"

+
+
+
+

jmxConnector.close();
}
}
- Internal Use Only -

heapMemoryUsage.get("committed"));
heapMemoryUsage.get("init"));
heapMemoryUsage.get("max"));
heapMemoryUsage.get("used"));
요약

OPEN
SHARE
CONTRIBUTE
ADOPT
REUSE
18
- Internal Use Only -

More Related Content

What's hot

[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3Ji-Woong Choi
 
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법Ji-Woong Choi
 
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration GuideJi-Woong Choi
 
[오픈소스컨설팅] RPM 만들기
[오픈소스컨설팅] RPM 만들기[오픈소스컨설팅] RPM 만들기
[오픈소스컨설팅] RPM 만들기Ji-Woong Choi
 
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211Ji-Woong Choi
 
[오픈소스컨설팅]MySQL Monitoring
[오픈소스컨설팅]MySQL Monitoring[오픈소스컨설팅]MySQL Monitoring
[오픈소스컨설팅]MySQL MonitoringJi-Woong Choi
 
[오픈소스컨설팅]초간단 Cubrid HA구성
[오픈소스컨설팅]초간단 Cubrid HA구성[오픈소스컨설팅]초간단 Cubrid HA구성
[오픈소스컨설팅]초간단 Cubrid HA구성Ji-Woong Choi
 
오픈소스 모니터링비교
오픈소스 모니터링비교오픈소스 모니터링비교
오픈소스 모니터링비교sprdd
 
JBoss EWS(Tomcat7) vs Jboss eap6
JBoss EWS(Tomcat7) vs Jboss eap6JBoss EWS(Tomcat7) vs Jboss eap6
JBoss EWS(Tomcat7) vs Jboss eap6양 희선
 
[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1Ji-Woong Choi
 
[오픈소스컨설팅]파일럿진행예제 on AWS
[오픈소스컨설팅]파일럿진행예제 on AWS[오픈소스컨설팅]파일럿진행예제 on AWS
[오픈소스컨설팅]파일럿진행예제 on AWSJi-Woong Choi
 
[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How ToJi-Woong Choi
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance TuningJi-Woong Choi
 
[오픈소스컨설팅]Performance Tuning How To
[오픈소스컨설팅]Performance Tuning How To[오픈소스컨설팅]Performance Tuning How To
[오픈소스컨설팅]Performance Tuning How ToJi-Woong Choi
 
톰캣 운영 노하우
톰캣 운영 노하우톰캣 운영 노하우
톰캣 운영 노하우jieunsys
 
JBoss EAP on Azure
JBoss EAP on Azure JBoss EAP on Azure
JBoss EAP on Azure rockplace
 
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1Ji-Woong Choi
 
[오픈소스컨설팅]스카우터엑스 소개
[오픈소스컨설팅]스카우터엑스 소개[오픈소스컨설팅]스카우터엑스 소개
[오픈소스컨설팅]스카우터엑스 소개Open Source Consulting
 
Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기GunHee Lee
 
Apache tomcat 로드밸런싱 김태호-20140808
Apache tomcat 로드밸런싱 김태호-20140808Apache tomcat 로드밸런싱 김태호-20140808
Apache tomcat 로드밸런싱 김태호-20140808Taeho Kim
 

What's hot (20)

[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
 
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
 
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
 
[오픈소스컨설팅] RPM 만들기
[오픈소스컨설팅] RPM 만들기[오픈소스컨설팅] RPM 만들기
[오픈소스컨설팅] RPM 만들기
 
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
 
[오픈소스컨설팅]MySQL Monitoring
[오픈소스컨설팅]MySQL Monitoring[오픈소스컨설팅]MySQL Monitoring
[오픈소스컨설팅]MySQL Monitoring
 
[오픈소스컨설팅]초간단 Cubrid HA구성
[오픈소스컨설팅]초간단 Cubrid HA구성[오픈소스컨설팅]초간단 Cubrid HA구성
[오픈소스컨설팅]초간단 Cubrid HA구성
 
오픈소스 모니터링비교
오픈소스 모니터링비교오픈소스 모니터링비교
오픈소스 모니터링비교
 
JBoss EWS(Tomcat7) vs Jboss eap6
JBoss EWS(Tomcat7) vs Jboss eap6JBoss EWS(Tomcat7) vs Jboss eap6
JBoss EWS(Tomcat7) vs Jboss eap6
 
[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1
 
[오픈소스컨설팅]파일럿진행예제 on AWS
[오픈소스컨설팅]파일럿진행예제 on AWS[오픈소스컨설팅]파일럿진행예제 on AWS
[오픈소스컨설팅]파일럿진행예제 on AWS
 
[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning
 
[오픈소스컨설팅]Performance Tuning How To
[오픈소스컨설팅]Performance Tuning How To[오픈소스컨설팅]Performance Tuning How To
[오픈소스컨설팅]Performance Tuning How To
 
톰캣 운영 노하우
톰캣 운영 노하우톰캣 운영 노하우
톰캣 운영 노하우
 
JBoss EAP on Azure
JBoss EAP on Azure JBoss EAP on Azure
JBoss EAP on Azure
 
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
 
[오픈소스컨설팅]스카우터엑스 소개
[오픈소스컨설팅]스카우터엑스 소개[오픈소스컨설팅]스카우터엑스 소개
[오픈소스컨설팅]스카우터엑스 소개
 
Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기
 
Apache tomcat 로드밸런싱 김태호-20140808
Apache tomcat 로드밸런싱 김태호-20140808Apache tomcat 로드밸런싱 김태호-20140808
Apache tomcat 로드밸런싱 김태호-20140808
 

Similar to [오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX

Mcollective orchestration tool 소개
Mcollective orchestration tool 소개Mcollective orchestration tool 소개
Mcollective orchestration tool 소개태준 문
 
Maxscale 소개 1.1.1
Maxscale 소개 1.1.1Maxscale 소개 1.1.1
Maxscale 소개 1.1.1NeoClova
 
개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty ServerJungWoon Lee
 
[오픈소스컨설팅]Session Clustering
[오픈소스컨설팅]Session Clustering[오픈소스컨설팅]Session Clustering
[오픈소스컨설팅]Session ClusteringJi-Woong Choi
 
IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교JungWoon Lee
 
[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략
[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략
[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략Cyworld AppStore (SK Communications)
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestI Goo Lee
 
Kafka monitoring using Prometheus and Grafana
Kafka monitoring using Prometheus and GrafanaKafka monitoring using Prometheus and Grafana
Kafka monitoring using Prometheus and Grafanawonyong hwang
 
1. 웹 어플리케이션 아키텍처
1. 웹 어플리케이션 아키텍처1. 웹 어플리케이션 아키텍처
1. 웹 어플리케이션 아키텍처JinKyoungHeo
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.xTerry Cho
 
IBM WAS ND v8.5.5 소개자료
IBM WAS ND v8.5.5 소개자료IBM WAS ND v8.5.5 소개자료
IBM WAS ND v8.5.5 소개자료JungWoon Lee
 
Node.js의 도입과 활용
Node.js의 도입과 활용Node.js의 도입과 활용
Node.js의 도입과 활용Jin wook
 
Varargs perf ibmwas_comp_v02
Varargs perf ibmwas_comp_v02Varargs perf ibmwas_comp_v02
Varargs perf ibmwas_comp_v02JungWoon Lee
 
요즘 웹 배포
요즘 웹 배포요즘 웹 배포
요즘 웹 배포명호 박
 

Similar to [오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX (20)

Mcollective orchestration tool 소개
Mcollective orchestration tool 소개Mcollective orchestration tool 소개
Mcollective orchestration tool 소개
 
Maxscale 소개 1.1.1
Maxscale 소개 1.1.1Maxscale 소개 1.1.1
Maxscale 소개 1.1.1
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server
 
[오픈소스컨설팅]Session Clustering
[오픈소스컨설팅]Session Clustering[오픈소스컨설팅]Session Clustering
[오픈소스컨설팅]Session Clustering
 
IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교
 
[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략
[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략
[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software Test
 
Kafka monitoring using Prometheus and Grafana
Kafka monitoring using Prometheus and GrafanaKafka monitoring using Prometheus and Grafana
Kafka monitoring using Prometheus and Grafana
 
1. 웹 어플리케이션 아키텍처
1. 웹 어플리케이션 아키텍처1. 웹 어플리케이션 아키텍처
1. 웹 어플리케이션 아키텍처
 
Active MQ
Active MQActive MQ
Active MQ
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x
 
Redis
RedisRedis
Redis
 
IBM WAS ND v8.5.5 소개자료
IBM WAS ND v8.5.5 소개자료IBM WAS ND v8.5.5 소개자료
IBM WAS ND v8.5.5 소개자료
 
Node.js의 도입과 활용
Node.js의 도입과 활용Node.js의 도입과 활용
Node.js의 도입과 활용
 
Varargs perf ibmwas_comp_v02
Varargs perf ibmwas_comp_v02Varargs perf ibmwas_comp_v02
Varargs perf ibmwas_comp_v02
 
L4교육자료
L4교육자료L4교육자료
L4교육자료
 
What's new in IE11
What's new in IE11What's new in IE11
What's new in IE11
 
2015 oce specification
2015 oce specification2015 oce specification
2015 oce specification
 
요즘 웹 배포
요즘 웹 배포요즘 웹 배포
요즘 웹 배포
 

More from Ji-Woong Choi

[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기Ji-Woong Choi
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기Ji-Woong Choi
 
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육Ji-Woong Choi
 
[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략Ji-Woong Choi
 
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기Ji-Woong Choi
 
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3Ji-Woong Choi
 
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12Ji-Woong Choi
 
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트Ji-Woong Choi
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항Ji-Woong Choi
 
OpenStack Summit 2017 참석후기
OpenStack Summit 2017 참석후기OpenStack Summit 2017 참석후기
OpenStack Summit 2017 참석후기Ji-Woong Choi
 
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick GuideJi-Woong Choi
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1Ji-Woong Choi
 
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-RegionJi-Woong Choi
 
Docker Setting for Static IP allocation
Docker Setting for Static IP allocationDocker Setting for Static IP allocation
Docker Setting for Static IP allocationJi-Woong Choi
 
Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Ji-Woong Choi
 
[오픈소스컨설팅]Atlassian JIRA Quick Guide
[오픈소스컨설팅]Atlassian JIRA Quick Guide[오픈소스컨설팅]Atlassian JIRA Quick Guide
[오픈소스컨설팅]Atlassian JIRA Quick GuideJi-Woong Choi
 
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편Ji-Woong Choi
 
[오픈소스컨설팅]systemd on RHEL7
[오픈소스컨설팅]systemd on RHEL7[오픈소스컨설팅]systemd on RHEL7
[오픈소스컨설팅]systemd on RHEL7Ji-Woong Choi
 
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning 클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning Ji-Woong Choi
 

More from Ji-Woong Choi (20)

[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
 
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육
 
[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략
 
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
 
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
 
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12
 
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
 
OpenStack Summit 2017 참석후기
OpenStack Summit 2017 참석후기OpenStack Summit 2017 참석후기
OpenStack Summit 2017 참석후기
 
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1
 
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
 
Docker Setting for Static IP allocation
Docker Setting for Static IP allocationDocker Setting for Static IP allocation
Docker Setting for Static IP allocation
 
Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드
 
[오픈소스컨설팅]Atlassian JIRA Quick Guide
[오픈소스컨설팅]Atlassian JIRA Quick Guide[오픈소스컨설팅]Atlassian JIRA Quick Guide
[오픈소스컨설팅]Atlassian JIRA Quick Guide
 
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
 
[오픈소스컨설팅]systemd on RHEL7
[오픈소스컨설팅]systemd on RHEL7[오픈소스컨설팅]systemd on RHEL7
[오픈소스컨설팅]systemd on RHEL7
 
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning 클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
 

[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX

  • 1. JBoss AS7/EAP6 - JMS and JMX - 최지웅(놀새~) –컨설팅 코치 주식회사 오픈 소스 컨설팅
  • 2. JMS Queue Potential Receiver 1 Sender 메시지 1 Potential Receiver 2 메시지 2 Queue 메시지1 메시지2 - Point-to-Point 모델에서는 Sender에 의해 발생된 메시지가 Queue라는 채널에 전달되고, 이 메시지는 Queue에 의해 자동으로 Receiver에 전달 - Publisher/Subscriber 모델과 다른 점은 Queue에 전달된 하나의 메시지는 오직 하나의 Receiver에만 전달되 고 다수의 Receiver 에 전달되지 않음 - Sender에 의해 Queue에 전달된 메시지1은 Queue에 의해 Receiver1에 전달되고, Sender에 의해 전달된 메 시지2는 Queue에 의해 Receiver2에 전달 - Publisher/Subscriber 모델처럼 동일한 메시지가 서로 다른 Receiver에 전달되지 않음 - Internal Use Only -
  • 3. JMS Topic Subscriber Publisher 메시지 1 메시지 2 Subscriber 메시지 1 메시지 2 Topic 메시지1 메시지2 - Publisher/Subscriber 모델에서는 Publisher가 하나의 메시지를 다수의 Subscriber(Consumer)에게 Topic 이라는 채널을 통하여 전달 - 모든 Subscriber는 Publisher가 Topic에 보낸 하나의 메시지의 사본을 전달 받게 되며, 이와 같은 메시 지 전달은 Topic에 의해 자동으로 Subscriber에 전달 - Publisher 에 의해 전달된 메시지1은 동시에 Subscriber1, Subscriber2 에 전달되며, Publisher에 의해 전달된 2번째 메시지인 메시지2 도 Subscriber1, Subscriber2에 전달 - Internal Use Only -
  • 4. JBoss JMS 핵심 기능 JMS 1.1 스펙 준수 및 JBoss AS의 런타임 라이브러리로 사용. 성능, 신뢰성, 안정성 및 낮은 응답시간 등에 초점을 둠. SOA의 초기 단계인 JBoss ESB의 핵심 모듈로서 사용 Netty 기반의 고성능 자바 엔진(LDAP, DNS, Keberos, etc) Client-side Delegates ? Connection Sender Session JBoss Netty Core Producer Server-side aspects Consumer Client-side aspects Server-side endpoints - Internal Use Only - Receiver
  • 5. JBoss Netty – 고성능 네트워크 클라이언트/서버 프레임워크 이벤트 기반 비동기 네트워크 애플리케이션 프레임워크 Interceptor Chain 패턴 • 손쉽게 다단계 State machine 구현 • 암복호화 + 전문 해석 + 스레드 풀링 + 비즈니스 로직 • 조립 가능한 컴포넌트 다수 제공 과부하 및 DoS 방어 메커니즘 Old · New I/O 모두 지원 NIO 구현·벤더별 최적화 - Internal Use Only -
  • 6. 부가 기능 및 성능 SpecJMS2007 Bench Mark - 초당 820만건 데이터 처리 HTTP를 이용한 단순한 RESTful 인터페이스 제공 AMQP – 향후 AMQP 프로토콜 지원 예정 STOMP(Streaming Text Oriented Messaging Protocol) STOMP 메시지 브로커를 통해 다양한 이기종 언어 간의 메시지 통신 기능 지원 XMPP : XML 기반 인터넷 통신을 위한 오픈 프로토콜 비동기 웹 지원 (Ajax/comet/bayeaux) http://hornetq.blogspot.kr/2011/07/82-million-messages-second-with-specjms.html - Internal Use Only -
  • 7. JMS Queue 생성 Naming이 java:jboss/exported/ 로 시작되지 않으면 글로벌 JNDI에 바인딩되지 않음 - Internal Use Only -
  • 8. JMS 사용자 생성 JMS 접근 사용자 생성 C:Javajboss-eap-6.1bin>add-user.bat JAVA_HOME is not set. Unexpected results may occur. Set JAVA_HOME to the directory of your local JDK to avoid this message. What type of user do you wish to add? a) Management User (mgmt-users.properties) b) Application User (application-users.properties) (a): b Enter the details of the new user to add. Realm (ApplicationRealm) : Username (testuser) : ienvyou Password : !test123 Re-enter Password : !test123 What roles do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[ ]: testrole About to add user 'ienvyou' for realm 'ApplicationRealm' Is this correct yes/no? yes Added user 'ienvyou' to file 'C:Javajboss-eap-6.1standaloneconfigurationapplication-users.properties' Added user 'ienvyou' to file 'C:Javajboss-eap-6.1domainconfigurationapplication-users.properties' Added user 'ienvyou' with roles testrole to file 'C:Javajboss-eap6.1standaloneconfigurationapplication-roles.properties' Added user 'ienvyou' with roles testrole to file 'C:Javajboss-eap-6.1domainconfigurationapplicationroles.properties' Is this new user going to be used for one AS process to connect to another AS process? e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls. yes/no? - Internal Use Only -
  • 9. 송수신 권한 설정 standalone-full.xml<before> <security-settings> <security-setting match="#"> <permission type="send" roles="guest"/> <permission type="consume" roles="guest"/> <permission type="createNonDurableQueue" roles="guest"/> <permission type="deleteNonDurableQueue" roles="guest"/> </security-setting> </security-settings> standalone-full.xml<after> <security-settings> <security-setting match="#"> <permission type="send" roles="guest testrole"/> <permission type="consume" roles="guest testrole"/> <permission type="createNonDurableQueue" roles="guest"/> <permission type="deleteNonDurableQueue" roles="guest"/> </security-setting> </security-settings> - Internal Use Only -
  • 10. 애플리케이션을 통한 테스트 try { Hashtable<String, String> properties = new Hashtable<String, String>(); properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory"); properties.put(Context.PROVIDER_URL, "remote://localhost:4447"); properties.put(Context.SECURITY_PRINCIPAL, "admin"); properties.put(Context.SECURITY_CREDENTIALS, "!test123"); Context ctx = new InitialContext(properties); ConnectionFactory cf = (ConnectionFactory) ic.lookup("jms/RemoteConnectionFactory"); Queue queue = (Queue) ic.lookup(destinationName); System.out.println("Queue " + destinationName + " exists"); Connection connection = cf.createConnection("ienvyou", "!test123"); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer sender = session.createProducer(queue); sender.setDeliveryMode(DeliveryMode.NON_PERSISTENT); TextMessage message = session.createTextMessage("Hello!"); sender.send(message); System.out.println("The message was successfully sent to the " + queue.getQueueName() + " queue"); connection.start(); } catch(Exception e) { } closeConnection(connection); - Internal Use Only -
  • 11. Before JMX Before JMX 벤더 고유의 관리 콘솔을 제공 일반적으로 웹 브라우저를 통하여 접근하도록 설계 API를 제공해주지 않을 경우 해당 관리 객체에 접근하기 어려움 Firewall hardware Management console Server Management console Web server software Management console Server Application Management console DB server software Management console - Internal Use Only -
  • 12. With JMX(Java Management Extension) JMX를 이용할 경우 소프트웨어 관리 포인트를 한 곳으로 집중할 수 있다는 장점이 발생.(JSR-255) • 모든 리소스는 MBean을 사용하여 관리. • JMX Agent (or group of agents)상의 모든 MBean은 하나의 관리 콘솔에서 모두 처리 Firewall hardware Server JMX Agent Web server software Server Application DB server software Adapter Management console = JMX MBean http://www.jcp.org/en/jsr/detail?id=255 JSR 255: JavaTM Management Extensions (JMXTM) Specification, version 2.0 - Internal Use Only -
  • 13. WebLogic JMX 적용 예 DomainRuntimeMBean을 통한 현재 JVM 및 JMS 상태 정보 JMS 관련 Queue 설정 정보 확인 -----------------------------------------------------------------------------------------------------------------com.bea:Name=DomainRuntimeService,Type=weblogic.management.mbeanservers.domainruntime.DomainRuntimeServiceMBean ServerRuntimes -----------------------------------------------------------------------------------------------------------------Server Name Server State Server JVMRuntime Name Server JVMRuntime HeapSizeCurrent Server JVMRuntime HeapFreeCurrent Server JMSRuntime JMSServers Name Server JMSRuntime JMSServers Destinations Name Server JMSRuntime JMSServers Destinations ConsumersCurrentCount Server JMSRuntime JMSServers Destinations ConsumersHighCount Server JMSRuntime JMSServers Destinations ConsumersTotalCount Server JMSRuntime JMSServers Destinations MessagesCurrentCount Server JMSRuntime JMSServers Destinations MessagesHighCount Server JMSRuntime JMSServers Destinations MessagesPendingCount Server JMSRuntime JMSServers Destinations MessagesReceivedCount -----------------------------------------------------------------------------------------------------------------com.bea:Name=DomainRuntimeService,Type=weblogic.management.mbeanservers.domainruntime.DomainRuntimeServiceMBean DomainConfiguration -----------------------------------------------------------------------------------------------------------------Domain JMSSystemResources JMSResource Name Domain JMSSystemResources JMSResource Queues Name Domain JMSSystemResources JMSResource Queues JNDIName Domain JMSSystemResources JMSResource DistributedQueues Name Domain JMSSystemResources JMSResource DistributedQueues JNDIName Domain JMSSystemResources JMSResource DistributedQueues DistributedQueueMembers Name - Internal Use Only -
  • 14. JMX Object Name 수집 C:Javajboss-eap-6.1bin> standalone.bat -c standalone-full C:Javajboss-eap-6.1bin> jconsole.bat - Internal Use Only -
  • 15. JVM Heap ObjectName - Internal Use Only -
  • 17. JMX Code Example import import import import import import import import java.util.HashMap; javax.management.MBeanServerConnection; javax.management.openmbean.CompositeDataSupport; javax.management.openmbean.CompositeType; javax.management.remote.JMXConnector; javax.management.remote.JMXConnectorFactory; javax.management.remote.JMXServiceURL; javax.management.*; public class HeapAccess { public static void main(String[] args) throws Exception { String host = "127.0.0.1"; // Your JBoss Bind Address default is localhost int port = 9999; // JBoss remoting port String urlString ="service:jmx:remoting-jmx://" + host + ":" + port; System.out.println(" nnt**** urlString: "+urlString); HashMap environment = new HashMap(); String[] credentials = new String[] {"test", "!test123"}; environment.put (JMXConnector.CREDENTIALS, credentials); JMXServiceURL serviceURL = new JMXServiceURL(urlString); JMXConnector jmxConnector = JMXConnectorFactory.connect(serviceURL, environment); MBeanServerConnection connection = jmxConnector.getMBeanServerConnection(); ObjectName objectName=new ObjectName("java.lang:type=Memory"); CompositeDataSupport heapMemoryUsage =(CompositeDataSupport)connection.getAttribute(objectName, "HeapMemoryUsage"); System.out.println(" System.out.println(" System.out.println(" System.out.println(" committed init max used = = = = " " " " + + + + jmxConnector.close(); } } - Internal Use Only - heapMemoryUsage.get("committed")); heapMemoryUsage.get("init")); heapMemoryUsage.get("max")); heapMemoryUsage.get("used"));