source : http://www.opennaru.com/jboss/jboss-core-services-collection/
JBCS ( JBoss Core Services Collection )는 엔터프라이즈 애플리케이션에서 필요한 일반적이고 기본적인 빌딩블록을 제공합니다.
여기에는 Red Hat SSO (Single SIgn On) 과 웹서버 그리고 관리와 모니터링을 위한 JON 등이 포함됩니다.
다음과 같은 컴포넌트가 포함됩니다.
JON : 레드햇 미들웨어에 대한 모니터링과 관리 서버
Apache HTTP 서버 : 웹서버
Red Hat SSO : 오픈소스인 Keycloak 프로젝트를 기반으로 SSO를 구현하며, Open ID Connection, SAML 그리고 OAth2와 같은 개방형 표준 인증 방법을 지원.
Apache Commons Jsvc : 유닉스 및 유닉스 기반 플랫폼 (Linux)에서 자바 애플리케이션을 데몬화할 수 있도록하는 유틸리티
Microsoft의 “IIS”와 Oracle의 “Oracle iPlanet Web Server” 웹 서버에 대한 커넥터
“Core Services Collection”의 사용권은 JBoss EAP 서브스크립션에 무료로 포함되며, 해당 제품들에 대한 온라인 지원, 전화 지원, 업데이트, 패치 및 보안 문제 해결 등의 기술지원이 포함됩니다
리눅스 pacemaker 기반의 High Availaiblity 구성방법에 대해 설명합니다. pacemaker를 사용하는 다른 리눅스 기반도 구성이 가능합니다.
Pacemaker 기반 Linux High Availability 입문용으로는 적합하지 않을 수 있습니다. Pacemaker 기반 Linux High Availability를 한 번도 설치 및 구성을 하지 않은 리눅스 관리자라면 설치 문서를 먼저 참고하십시오.
RHEL7 및 CentOS 7을 중심으로 레드햇 계열의 리눅스에 적합한 내용으로 작성되었습니다.
How to tune IBMs Garbage Collector (GC), particularly for Generational GC.
This was presented at the WebShphere User Group, UK in February 2011.
You can read the article here:
http://www.ibm.com/developerworks/websphere/techjournal/1106_bailey/1106_bailey.html
source : http://www.opennaru.com/redhat/jboss/
세계 최고의 오픈소스 미들웨어 JBoss EAP
JBoss EAP ( JBoss® Enterprise Application Platform )는 클라우드와 컨테이너를 포함한 모든 IT 환경에서 엔터프라이즈급의 보안, 성능, 확장성을 제공합니다.
Java EE 표준을 지원하는 세계에서 가장 많이 사용되는 오픈 소스 웹 어플리케이션 서버 입니다.
오픈 소스 소프트웨어이기 때문에 도입 비용이 저렴할 뿐만 아니라, 레드햇의 높은 기술력으로 기업용 미들웨어에 적합한 품질과 기술지원을 제공합니다.
라이선스 형태는 GNU Lesser General Public License (LGPL) 한가지 이지만, 배포 버전은 커뮤니티 버전(WIldfly)와 엔터프라이즈 버전(JBoss EAP) 두가지 입니다.
엔터프라이즈 버전인 JBoss EAP는 레드햇과 유료 서브스크립션 계약을 맺음으로써 사전에 인증된 JBoss 소프트웨어 최신 패치 파일과 업그레이드을 할 수있습니다.
source : http://www.opennaru.com/jboss/jboss-core-services-collection/
JBCS ( JBoss Core Services Collection )는 엔터프라이즈 애플리케이션에서 필요한 일반적이고 기본적인 빌딩블록을 제공합니다.
여기에는 Red Hat SSO (Single SIgn On) 과 웹서버 그리고 관리와 모니터링을 위한 JON 등이 포함됩니다.
다음과 같은 컴포넌트가 포함됩니다.
JON : 레드햇 미들웨어에 대한 모니터링과 관리 서버
Apache HTTP 서버 : 웹서버
Red Hat SSO : 오픈소스인 Keycloak 프로젝트를 기반으로 SSO를 구현하며, Open ID Connection, SAML 그리고 OAth2와 같은 개방형 표준 인증 방법을 지원.
Apache Commons Jsvc : 유닉스 및 유닉스 기반 플랫폼 (Linux)에서 자바 애플리케이션을 데몬화할 수 있도록하는 유틸리티
Microsoft의 “IIS”와 Oracle의 “Oracle iPlanet Web Server” 웹 서버에 대한 커넥터
“Core Services Collection”의 사용권은 JBoss EAP 서브스크립션에 무료로 포함되며, 해당 제품들에 대한 온라인 지원, 전화 지원, 업데이트, 패치 및 보안 문제 해결 등의 기술지원이 포함됩니다
리눅스 pacemaker 기반의 High Availaiblity 구성방법에 대해 설명합니다. pacemaker를 사용하는 다른 리눅스 기반도 구성이 가능합니다.
Pacemaker 기반 Linux High Availability 입문용으로는 적합하지 않을 수 있습니다. Pacemaker 기반 Linux High Availability를 한 번도 설치 및 구성을 하지 않은 리눅스 관리자라면 설치 문서를 먼저 참고하십시오.
RHEL7 및 CentOS 7을 중심으로 레드햇 계열의 리눅스에 적합한 내용으로 작성되었습니다.
How to tune IBMs Garbage Collector (GC), particularly for Generational GC.
This was presented at the WebShphere User Group, UK in February 2011.
You can read the article here:
http://www.ibm.com/developerworks/websphere/techjournal/1106_bailey/1106_bailey.html
source : http://www.opennaru.com/redhat/jboss/
세계 최고의 오픈소스 미들웨어 JBoss EAP
JBoss EAP ( JBoss® Enterprise Application Platform )는 클라우드와 컨테이너를 포함한 모든 IT 환경에서 엔터프라이즈급의 보안, 성능, 확장성을 제공합니다.
Java EE 표준을 지원하는 세계에서 가장 많이 사용되는 오픈 소스 웹 어플리케이션 서버 입니다.
오픈 소스 소프트웨어이기 때문에 도입 비용이 저렴할 뿐만 아니라, 레드햇의 높은 기술력으로 기업용 미들웨어에 적합한 품질과 기술지원을 제공합니다.
라이선스 형태는 GNU Lesser General Public License (LGPL) 한가지 이지만, 배포 버전은 커뮤니티 버전(WIldfly)와 엔터프라이즈 버전(JBoss EAP) 두가지 입니다.
엔터프라이즈 버전인 JBoss EAP는 레드햇과 유료 서브스크립션 계약을 맺음으로써 사전에 인증된 JBoss 소프트웨어 최신 패치 파일과 업그레이드을 할 수있습니다.
ProxySQL - High Performance and HA Proxy for MySQLRené Cannaò
High Availability proxy designed to solve real issues of MySQL setups from small to very large production environments.
Presentation at Percona Live Amsterdam 2015
MySQL Administrator
Basic course
- MySQL 개요
- MySQL 설치 / 설정
- MySQL 아키텍처 - MySQL 스토리지 엔진
- MySQL 관리
- MySQL 백업 / 복구
- MySQL 모니터링
Advanced course
- MySQL Optimization
- MariaDB / Percona
- MySQL HA (High Availability)
- MySQL troubleshooting
네오클로바
http://neoclova.co.kr/
24시간 365일 서비스를 위한 MySQL DB 이중화.
MySQL 이중화 방안들에 대해 알아보고 운영하면서 겪은 고민들을 이야기해 봅니다.
목차
1. DB 이중화 필요성
2. 이중화 방안
- HW 이중화
- MySQL Replication 이중화
3. 이중화 운영 장애
4. DNS와 VIP
5. MySQL 이중화 솔루션 비교
대상
- MySQL을 서비스하고 있는 인프라 담당자
- MySQL 이중화에 관심 있는 개발자
Since 5.7.2, MySQL implements parallel replication in the same schema, also known as LOGICAL_CLOCK (DATABASE based parallel replication is also implemented in 5.6 but this is not covered in this talk). In early 5.7 versions, parallel replication was based on group commit (like MariaDB) and 5.7.6 changed that to intervals.
Intervals are more complicated but they are also more powerful. In this talk, I will explain in detail how they work and why intervals are better than group commit. I will also cover how to optimize parallel replication in MySQL 5.7 and what improvements are coming in MySQL 8.0.
데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
본 자료는 WildFly, JBoss AS7, JBoss EAP6에 대한 교육 자료입니다. 처음 접하시는 분들이나 세팅이 필요한 분들은 본 자료를 활용하시면 됩니다.
교육이 필요하시면 오픈소스컨설팅 페이스북에 글을 남겨주세요.
https://www.facebook.com/osckorea?ref=hl
ProxySQL - High Performance and HA Proxy for MySQLRené Cannaò
High Availability proxy designed to solve real issues of MySQL setups from small to very large production environments.
Presentation at Percona Live Amsterdam 2015
MySQL Administrator
Basic course
- MySQL 개요
- MySQL 설치 / 설정
- MySQL 아키텍처 - MySQL 스토리지 엔진
- MySQL 관리
- MySQL 백업 / 복구
- MySQL 모니터링
Advanced course
- MySQL Optimization
- MariaDB / Percona
- MySQL HA (High Availability)
- MySQL troubleshooting
네오클로바
http://neoclova.co.kr/
24시간 365일 서비스를 위한 MySQL DB 이중화.
MySQL 이중화 방안들에 대해 알아보고 운영하면서 겪은 고민들을 이야기해 봅니다.
목차
1. DB 이중화 필요성
2. 이중화 방안
- HW 이중화
- MySQL Replication 이중화
3. 이중화 운영 장애
4. DNS와 VIP
5. MySQL 이중화 솔루션 비교
대상
- MySQL을 서비스하고 있는 인프라 담당자
- MySQL 이중화에 관심 있는 개발자
Since 5.7.2, MySQL implements parallel replication in the same schema, also known as LOGICAL_CLOCK (DATABASE based parallel replication is also implemented in 5.6 but this is not covered in this talk). In early 5.7 versions, parallel replication was based on group commit (like MariaDB) and 5.7.6 changed that to intervals.
Intervals are more complicated but they are also more powerful. In this talk, I will explain in detail how they work and why intervals are better than group commit. I will also cover how to optimize parallel replication in MySQL 5.7 and what improvements are coming in MySQL 8.0.
데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
본 자료는 WildFly, JBoss AS7, JBoss EAP6에 대한 교육 자료입니다. 처음 접하시는 분들이나 세팅이 필요한 분들은 본 자료를 활용하시면 됩니다.
교육이 필요하시면 오픈소스컨설팅 페이스북에 글을 남겨주세요.
https://www.facebook.com/osckorea?ref=hl
In 2009, when worked for the Region of Peel government, Canada, we successfully used patent mapping to identify 20 US patent intensive companies as the potential employers for highly educated immigrants. Following this initiative, we have created and been maintaining a Canadian patent competitive intelligence (CI) database to track the latest patent competence of over 3600 Canadian entities on a weekly basis. Through our work with Region of Peel from 2010 to 2012, this database shows that it can provide no-older-than-7-day intelligence for long-term strategic research/planning and short-term tactics. This is also the first attempt in Canada to use patent landscape as a regional economic strength indicator, a baseline for policy harmonization and policy performance evaluation.
This is a directory of Canadian US patents holders. It has the latest information about who has US patents in Canada, where the US patent holders are, what they patented in the US market and the trends of their US patents.
In 2009, when I was working for the Region of Peel government, Canada, I successfully used patent mapping to identify 20 US patent intensive companies as the potential employers for highly educated immigrants. Following this initiative, I created a Canadian patent competitive intelligence (CI) database to track the latest patent competence of over 5000 Canadian entities, in all sector throughout Canada, on a weekly basis. My work with Region of Peel from 2010 to 2012 showed that this database can provide the "no-older-than-7-day" intelligence for long-term strategic research/planning and short-term tactics. This is also the first attempt in Canada to use patent landscape as a regional economic strength indicator and a baseline for policy harmonization and policy performance evaluation.
This is a directory of Canadian US patents holders. It has the latest information about who has US patents in Canada, where the US patent holders are, what they patented in the US market and the trends of their US patents.
In 2009, when I was working for the Region of Peel government, Canada, I successfully used patent mapping to identify 20 US patent intensive companies as the potential employers for highly educated immigrants. Following this initiative, I created a Canadian patent competitive intelligence (CI) database to track the latest patent competence of over 4500 Canadian entities, in all sector throughout Canada, on a weekly basis. My work with Region of Peel from 2010 to 2012 showed that this database can provide the "no-older-than-7-day" intelligence for long-term strategic research/planning and short-term tactics. This is also the first attempt in Canada to use patent landscape as a regional economic strength indicator and a baseline for policy harmonization and policy performance evaluation.
This is a directory of Canadian US patents holders. It has the latest information about who has US patents in Canada, where the US patent holders are, what they patented in the US market and the trends of their US patents.
In 2009, when I was working for the Region of Peel government, Canada, I successfully used patent mapping to identify 20 US patent intensive companies as the potential employers for highly educated immigrants. Following this initiative, I created a Canadian patent competitive intelligence (CI) database to track the latest patent competence of over 4500 Canadian entities, in all sector throughout Canada, on a weekly basis. My work with Region of Peel from 2010 to 2012 showed that this database can provide the "no-older-than-7-day" intelligence for long-term strategic research/planning and short-term tactics. This is also the first attempt in Canada to use patent landscape as a regional economic strength indicator and a baseline for policy harmonization and policy performance evaluation.
This is a directory of Canadian US patents holders. It has the latest information about who has US patents in Canada, where the US patent holders are, what they patented in the US market and the trends of their US patents.
In 2009, when I was working for the Region of Peel government, Canada, I successfully used patent mapping to identify 20 US patent intensive companies as the potential employers for highly educated immigrants. Following this initiative, I created a Canadian patent competitive intelligence (CI) database to track the latest patent competence of over 5000 Canadian entities, in all sector throughout Canada, on a weekly basis. My work with Region of Peel from 2010 to 2012 showed that this database can provide the "no-older-than-7-day" intelligence for long-term strategic research/planning and short-term tactics. This is also the first attempt in Canada to use patent landscape as a regional economic strength indicator and a baseline for policy harmonization and policy performance evaluation.
In 2009, when I was working for the Region of Peel government, Canada, I successfully used patent mapping to identify 20 US patent intensive companies as the potential employers for highly educated immigrants. Following this initiative, I created a Canadian patent competitive intelligence (CI) database to track the latest patent competence of over 4000 Canadian entities, in all sector and from coast to coast in Canada, on a weekly basis. My work with Region of Peel from 2010 to 2012 showed that this database can provide the "no-older-than-7-day" intelligence for long-term strategic research/planning and short-term tactics. This is also the first attempt in Canada to use patent landscape as a regional economic strength indicator and a baseline for policy harmonization and policy performance evaluation.
In 2009, when worked for the Region of Peel government, Canada, we successfully used patent mapping to identify US patent intensive companies as the potential employers for highly educated immigrants. Following this initiative, we have created and been maintaining a Canadian patent competitive intelligence (CI) database to track the latest patent competence of over 3000 Canadian entities on a weekly basis. This database provides intelligence for long-term strategic research planning and short-term tactics.
This is a due diligence directory of Canadian US patents holders. It has the latest information about who has US patents in Canada, where the US patent holders are, what they patented in the US market and the trends of their US patents.
In 2009, when I was working for the Region of Peel government, Canada, I successfully used patent mapping to identify 20 US patent intensive companies as the potential employers for highly educated immigrants. Following this initiative, I created a Canadian patent competitive intelligence (CI) database to track the latest patent competence of Canadian entities, in all sector throughout Canada, on a weekly basis. There has been the information of 6,000+ Canadian companies in this information repository now. My work with Region of Peel from 2010 to 2012 showed that this database can provide the "no-older-than-7-day" intelligence for long-term strategic research/planning and short-term tactics. This is also the first attempt in Canada to use patent landscape as a regional economic strength indicator and a baseline for policy harmonization and policy performance evaluation.
In 2009, when worked for the Region of Peel government, Canada, we successfully used patent mapping to identify 20 US patent intensive companies as the potential employers for highly educated immigrants. Following this initiative, we have created and been maintaining a Canadian patent competitive intelligence (CI) database to track the latest patent competence of over 3000 Canadian entities on a weekly basis. This database provides intelligence for long-term strategic research planning and short-term tactics.
Cooperation and win-win is the essential part of intellectual property right (IPR), the core competitive advantage, creation during the competition of the knowledge economy era. The philosophy of Confucius, which has existed and evolved over two thousand years in China, provides a good foundation for such a cooperative and harmonic human relationship for win-win cooperation. By using examples happened in the modern world, we compared the Chinese traditional mindset of IPR with the present IPR infrastructure, and found the value of Chinese Confucius' philosophy in the modern knowledge-based global market competition.
知识经济时代的市场竞争本质是以创造知识产权为主的合作双赢. 中国传统儒家哲学的忠恕之道为合作双赢提供了非常好的人際關係相處基础. 我们从实际的例子比较中国传统的知识和知识产权价值观与西方现行知识产权架构的差异, 并进而论证中国儒家思想在知识经济时代的价值.
2021년 12월 08일(수)
l 14:00 ~ 14:20 개발 & 인프라 소개
l 14:20 ~ 14:35 개발과 형상관리 (Github Action)
l 14:35 ~ 15:00 사용 인프라 (AZURE APP Service)
l 15:00 ~ 15:20 서비스 런칭 (Deploy & Service)
l 15:20 ~ 15:30 DevOps /Closing
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Nanha Park
# Part 1
개발자의 주위환경에 대해 살펴보고 Cloud Foundry overview, Cloud Foundry 를 구성하는 components 마지막으로 Deploy 환경에 대해 알아보겠습니다.
# Part 2
설치부터 코드까지, 데모찍은 동영상은 추후 제공예정
부족한 부분은 nanhap@gmail.com 으로 문의메일 주시면 성심성의껏 답변 드리겠습니다. 감사합니다.
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트Ji-Woong Choi
Docker를 활용하여 Gitlab CI/CD 설치 구성 및 샘플 테스트를 위한 가이드 문서이며, Docker 및 Gitlab에 대한 개요 및 사용법에 대해서는 다루지 않습니다. Docker image를 이용 Gitlab 및 Gitlab CI/CD 설치 및 구성 후 Sample Spring boot web application을 이용하여 소스 변경에 따른 commit이 발생 했을 때 Gitlab CI/CD 기능을 통해 application 테스트, 빌드, 배포까지의 일련의 과정이 자동으로 진행되는지를 테스트 하는 내용입니다.
Similar to [오픈소스컨설팅]JBoss EAP 6 Deep Dive(Compare with WebLogic) (20)
기존에 저희 회사에서 사용하던 모니터링은 Zabbix 였습니다.
컨테이너 모니터링 부분으로 옮겨가면서 변화가 필요하였고, 이에 대해서 프로메테우스를 활용한 모니터링 방법을 자연스럽게 고민하게 되었습니다.
이에 이영주님께서 테크세션을 진행하였고, 이에 발표자료를 올립니다.
5개의 부분으로 구성되어 있으며, 세팅 방법에 대한 내용까지 포함합니다.
01. Prometheus?
02. Usage
03. Alertmanager
04. Cluster
05. Performance
2018년도 Amazon AWS re:Invent Machine Learning 부분에 대한 요약을 오픈소스컨설팅 서경빈(AWS SA)님이 해주셨습니다.
사내 발표 때 아주 쉽게 설명해주셔서 좋았는데, 해당 내용은 Tech Blog에서도 확인이 가능합니다.
https://tech.osci.kr/2018/12/06/50693623/
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항Ji-Woong Choi
Cloud 기반으로 U2C(Unix to Cloud),U2L(Unix to Linux) 마이그레이션에 대한 가이드 라인과 사이징 관련 고려 사항에 대해 설명한 자료입니다.
많은 전환 프로젝트에서 추출된 경험치가 들어가 있으며, 전환별 난이도 및 고려사항이 들어가 있습니다.
장소 : 미국 보스턴 Hynes Convention Center
일시 : 2017년 5월 6일 ~ 11일 (미국 동부 시각)
참가 인원 : 5000명 이상
참가 업체 : 1014개
참가국 : 63개국
세션 수 : 750여 개(이전 Summit 대비 약 250여 개 증가)
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick GuideJi-Woong Choi
본 문서는 RHEL에 내장된 재해복구솔루션 ReaR (Relax and Recover)를 이용하여 OS 영역의 데이터를 백업하고 복구하는 방법을 다루고 있습니다. ReaR는 iso를 비롯한 다양한 백업 데이터 포맷을 지원하나, 이 문서에서는 CD/DVD 미디어 반입/보관이 보안상 대부분 허용되지 않는 기업 환경에서도 원활히 사용할 수 있는 PXE boot를 지원하는 포맷으로 ReaR 백업 데이터를 생성하고 복구하는 방법만을 자세히 설명합니다.
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-RegionJi-Woong Choi
OpenStack Ceph & Neutron에 대한 설명을 담고 있습니다.
1. OpenStack
2. How to create instance
3. Ceph
- Ceph
- OpenStack with Ceph
4. Neutron
- Neutron
- How neutron works
5. OpenStack HA- controller- l3 agent
6. OpenStack multi-region
아틀라시안 JIRA를 사용할 때 가장 핵심적으로 해야 할 내용들만 추려서 가이드 문서를 작성하였습니다.
그러한 작업들로는 프로젝트, 스킴(Scheme), 이메일 세팅, 권한 관리, 백업/복구 등이 있습니다.
관리자가 이런 일을 잘 할 수 있도록 핵심적인 내용만으로 구성한 문서를 공유합니다.
레드햇 엔터프라이즈 리눅스 7 기반에 대한 운영자 가이드 기초편을 공유합니다.
부트로더 관리, 패키지, 네트워크, 스토리지 및 크래쉬 덤프 발생에 대한 관리까지 기초 운영 지식에 대한 부분을 본 문서를 통해 얻으실 수 있습니다.
오픈소스컨설팅의 문경윤차장께서 공유해주신 내용입니다.
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning Ji-Woong Choi
TTA에 KVM 기반 프로비저닝 기술에 대한 데모 세션을 포함하는 세미나 관련 자료입니다. 클라우드환경으로 가고자 해서 Paas를 어떤 플랫폼위에 올린다면 그리고 가상화 환경이나 클라우드 환경으로 올린다면 어떤 환경으로 올릴것인가를 고민하여야 합니다.
그리고 이 hypervisor중에 cloud 환경에서 가장 주목받는 kvm을 기반으로 하는 두가지 가상화 클라우드 솔루션인 rhev와 openstack을 잠시 살펴볼 것입니다.
그리고 이러한 가상화 클라우드 환경에서 자동화 하는 솔류션을 어떻게 고려해야 하는가를 살펴보고, 그런 솔류션중에 하나인 아테나 피콕에 대해 살펴보겠습니다.
그리고 오픈스택환경하에서 구축해서 사용했던 사용기와 이를 자동화하기위해 개발자들이 사용했던 간단한 ansible provisioning 모습을 시연합니다.
4. JBoss 제품화 과정
Productization Team
Delivery Phase
1
JBoss.org 프로젝트
2
3
4
제품 요구 사항 정의
플랫폼 컴포넌트
구성 및 통합
플랫폼 테스팅, 인증, 문
서화
플랫폼 발표
(General Availability)
Platform
Candidate
Release(s)
Quality
Assurance
JBoss
Enterprise
Platform
제품 관리
JBoss
제품화 담당 엔지니어
4
- Internal Use Only -
JBoss QA, 문서화팀,
인증된 파트너
5
JBoss Release
Engineering
5. JBoss 참고 자료
제품 문서
http://docs.redhat.com
5
- Internal Use Only -
6. JBoss 설치
Red Hat 고객 포탈을 통한 다운로드
레드햇 서브스크립션을 구매한 고객을 위한 다운로드 사이트이며, 발급된 계정으로 로그인을 수행하
면 다운로드 받을 수 있습니다.
다운로드 URL: http://access.redhat.com
6
- Internal Use Only -
7. JBoss 설치
JBoss 설치 형태
community : zip 압축 파일로 제공
EAP
: zip, jar, platform binary, linux rpm 형태로 제공
Extracting the ZIP Download
Binary File을 받아서 원하는 경로에 압축을 해제하는 설치 방법입니다.
# unzip jboss-eap-6.1.1.zip
RPM 설치
RHEL 6.x Plaform을 이용하여 설치이며 서브스크립트이 필요한 설치 방법입니다.
# yum groupinstall jboss-eap6
GUI Installer
Linux GUI 환경에서 설치하는 방법이며 설치 중 원하는 구성을 손쉽게 설정할 수 있는 설치 방법입니다.
# java -jar jboss-eap-6.1.1-installer.jar
Console Installation
Linux GUI 환경이 안 되는 상황에서 터미널창을 이용하여 Text 방식으로 설치할 수 있는 설치 방법입니다.
# java -jar jboss-eap-6.1.1-installer.jar –console
7
- Internal Use Only -
8. JBoss 설치
JBoss unzip
/opt/was/ 폴더로 해당 파일을 업로드 한 후 압축 해제
[jboss@server /opt/was] unzip jboss-eap-6.1.1.zip
[jboss@server /opt/was] rm -f jboss-eap-6.1.1.zip
ls –al 명령어를 통해 압축 해제 내용을 확인
[jboss@server /opt/was]# ls -al
total 52
drwxr-xr-x. 13 jboss jboss 4096 Oct 24 07:54 .
dr-xr-xr-x. 27 jboss jboss 4096 Jun 12 02:00 ..
lrwxrwxrwx 1 jboss jboss 19 Oct 24 07:54 jboss-eap-6.1
8
- Internal Use Only -
9. 지원 애플리케이션
지원되는 애플리케이션
웹 애플리케이션(.war)
EJB 애플리케이션(.jar)
Enterprise 애플리케이션(.ear)
Resource Adapter (.rar)
웹서비스애플리케이션(.wsr)
JBoss 서비스(.sar)
9
- Internal Use Only -
10. 애플리케이션 디플로이 설정
애플리케이션 디플로이 수행 방법
애플리케이션 copy 후 파일 생성을 통한 디플로이
deployments 폴더에 a.war 라는 애플리케이션이 있을 경우 a.war.dodeploy 라는
파일을 생성하여 deploy 하는 방법
관리자 콘솔을 통한 디플로이
Web Console
CLI Tool을 이용한 디플로이
CLI Tool
10
- Internal Use Only -
11. 디플로이 스캐너
애플리케이션 copy 후 파일 생성을 통한 디플로이
subsystem deployments-scanner service
특정 디렉토리에 애플리케이션패키지 및 deploy 지시 관련 파일을 참조하여
디플로이를 수행시켜주는 jboss subsystem ( 서버 default 옵션 )
설정 파일 : $SERVER_HOME/configuration/standalone.xml
<subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1">
<deployment-scanner path="deployments"
relative-to="jboss.server.base.dir"
scan-interval="5000"/>
</subsystem>
검색 위치 : $SERVER_HOME/deployments
11
- Internal Use Only -
12. 디플로이 상태
애플리케이션 copy 후 파일 생성을 통한 디플로이 (계속)
디플로이 요청 지시어
설정
dodeploy
설명
deploy scanner에게 deploy를 하게 요청하게 하는 지시어
디플로이 상태 확인
설정
설명
isdeploying
서버에 애플리케이션을 배포하는 상태
deployed
정상적으로 서버에 애플리케이션이 배포 완료
isundeploying
서버에서 애플리케이션 배포를 취소(삭제) 하고 있는 상태
undeployed
정상적으로 서버에서 애플리케이션 배포 취소(삭제) 완료
failed
서버에 애플리케이션 배포작업 중 에러가 발생한 상태
pending
서버에 애플리케이션 배포작업이 지연중인 상태
12
- Internal Use Only -
13. WAR 디플로이
애플리케이션 copy 후 파일 생성을 통한 디플로이 (계속)
첨부된 test.war 파일을 standalone 서버의 deployments 폴더에 upload 시킵니다.
[jboss@host1 /opt/was/servers/standalone_ha_11/deployments] ls –al
total 20
-rw-r--r-- 1 jboss jboss 8870 Nov 1 10:15 README.txt
-rw-r--r-- 4 jboss jboss 4096 Nov 2 12:39 test.war
touch 명령을 통해 test.war.dodeploy 라는 이름의 파일을 생성합니다.
[jboss@host1 /opt/was/servers/standalone_ha_11/deployments] touch test.war.dodeploy
total 20
-rw-r--r-- 1 jboss jboss 8870 Nov 1 10:15 README.txt
-rw-r--r-- 4 jboss jboss 4096 Nov 2 12:39 test.war
-rw-rw-r-- 1 jboss jboss 8 Nov 2 12:39 test.war.dodeploy
13
- Internal Use Only -
14. WAR 디플로이(계속)
애플리케이션 copy 후 파일 생성을 통한 디플로이 (계속)
잠시 후 test.war.dodeploy test.war.deployed 로 변경된 것을 확인
[jboss@host1 /opt/was/servers/standalone_ha_11/deployments] touch test.war.dodeploy
total 20
-rw-r--r-- 1 jboss jboss 8870 Nov 1 10:15 README.txt
-rw-r--r-- 4 jboss jboss 4096 Nov 2 12:39 test.war
-rw-rw-r-- 1 jboss jboss 8 Nov 2 12:39 test.war.deployed
서버 로그에서 애플리케이션 정상 디플로이 여부 확인
13:02:12,618 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 2) JBAS010281: Started
default-host/test cache from web container
13:02:12,619 INFO [org.jboss.web] (ServerService Thread Pool -- 2) JBAS018210: Register web context:
/test
13:02:12,719 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "test.war"
(runtime-name : "test.war")
14
- Internal Use Only -
15. 외부 디플로이 디렉토리
external directory 설정
external directory란
jboss deployments subsystem 에서 기본 scanner가 동작 폴더는 jboss.server.base.dir
하부의 deployments라는 폴더임
external directory 는 말 그대로 기본 deployments 디렉토리가 아닌 외부 확장 폴더를
scanner 영역에서 지정하여 애플리케이션 등록 여부를 확인 할 수 있게 지정하는 애플리
케이션 외부확장 검색 디렉토리
15
- Internal Use Only -
16. 외부 디플로이 디렉토리(계속)
external directory 설정
subsystem deployments-scanner service에 external directory 추가
설정 파일 : $SERVER_HOME/configuration/standalone.xml
<subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1">
<deployment-scanner path="deployments"
relative-to="jboss.server.base.dir"
scan-interval="5000"/>
<deployment-scanner name="externalDeploy" path="/opt/was/app" scan-interval="5000"/>
</subsystem>
검색 위치 : $SERVER_HOME/deployments
16
- Internal Use Only -
17. CLI 활용 디플로이
JBoss Command Line Interface를 이용한 Deploy
CLI 접속 가능 여부 확인
서버가 정상 기동시 아래와 같이 관리자 Port를 통해 CLI 관리자 Tool을 이용할 수 있다.
Command Line Interface Port : 10099
… 중략
16:23:12,284 INFO [org.jboss.as.remoting] (MSC service thread 1-1) JBAS017100: Listening on 192.168.0.172:10099
16:23:12,285 INFO [org.jboss.as.remoting] (MSC service thread 1-7) JBAS017100: Listening on 0.0.0.0:4547
16:23:12,572 INFO [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on
http://192.168.0.172:10090/management
16:23:12,572 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://192.168.0.172:10090
16:23:12,572 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss EAP 6.1.1.GA (AS 7.3.0.Final-redhat-8) started
in 2156ms - Started 168 of 284 services (115 services are passive or on-demand)
17
- Internal Use Only -
18. CLI 접속
CLI 접속 방법
CLI 접속을 하기 위해서는 다음의 명령어를 통해 접속
$JBOSS_HOME/bin/jboss-cli.sh --controller=$SERVER_IP:10099 --connect
[jboss@host1 /opt/was/servers/standalone_ha_11/bin]$ /opt/was/jboss-eap-6.1/bin/jboss-cli.sh --
controller=192.168.0.172:10099 --connect
[standalone@192.168.0.172:10099 /]
18
- Internal Use Only -
19. CLI 활용 디플로이
CLI을 통한 디플로이
CLI 접속이 완료가 된 이후에 Deploy 작업을 진행한다.
본 내용에서는 /opt/was/app/test.war 파일이 있는걸 가정하고 진행
[standalone@192.168.0.172:10099 /] deploy/was/app/test.war
[standalone@192.168.0.172:10099 /]
Deploy 요청이 정상적으로 수행이 되면 server 로그 부분에 결과가 표시
16:39:16,290 INFO [org.jboss.as.repository] (management-handler-thread - 5) JBAS014900: Content added at location
/opt/was/servers/standalone_ha_11/data/content/d9/0e2d6e3bad2a5cb22edc747e1774200eecd14e/content
16:39:16,292 INFO [org.jboss.as.server.deployment] (MSC service thread 1-6) JBAS015876: Starting deployment of “test.war"
(runtime-name: “test.war")
16:39:16,324 INFO [org.jboss.web] (ServerService Thread Pool -- 57) JBAS018210: Register web context:
16:39:16,432 INFO [org.jboss.as.server] (management-handler-thread - 5) JBAS018559: Deployed “test.war" (runtime-name :
“test.war")
19
- Internal Use Only -
20. 관리 콘솔 확인
CLI을 통한 deploy (계속)
관리자 콘솔에서 CLI를 통해 deploy 된 Content의 현 상태를 확인 가능
20
- Internal Use Only -
21. 애플리케이션 확인
CLI을 통한 deploy (계속)
실제 http service port 를 통해 deploy 된 Web application Content를 확인
21
- Internal Use Only -
23. Domain Structure
Server #1
Host
Controller
Server #2
…
Database
Host #2
Domain Controller
(Master Host Controllre)
Server #3
Host #1
Host
Controller
Sever #4
…
Host #3
Server #5
Host
Controller
Host #4
23
- Internal Use Only -
Database
24. JBoss 설치
JBoss의 주요 디렉토리 구조
Jboss-eap-6.x
bin
standalone.conf
Standalone mode JVM parameters
standalone.sh
Standalone mode
domain.sh
Domain mode
jboss-cli.sh
Command Line Interface
modules
Static JBoss Module Definitions
standalone
configuration
Standalone Configuration
deployments
File SystemDeployments
logs
Internal Data(includes Repository)
data
24
- Internal Use Only -
25. JBoss 설치
JBoss의 주요 디렉토리 구조
Jboss-eap-6.x
domain
configuration
domain.xml
Domain Wide Unified Configuration
host.xml
Host Controller Configuration
servers
Server “One” JVM Instance
server-one
logs
data
appclient
configuration
EE Application Client Configuration
appclient.xml
25
- Internal Use Only -
26. Management Interface
Tools
•
Command Line Interface
•
Web Console
•
Products - JBoss ON
Management APIs
• JMX – JSR-77/160
• Java(DMR)
• REST
26
- Internal Use Only -
27. Container Services Relationship
Everything is a Service
Services have start and stop task
customer.jar
Remoting
CustomerManagerEJB
Services have dependencies
service.jar
Module class loading
Similar to IDE projects or modules
Foo
DataSource
ServiceManagerEJB
JNDIName:
dsFoo
<module name=“com.lge”>
<main-class name=“com.lge.Main”/>
<resources>
<resource-root path=“mymain.jar”/>
</resources>
<dependencies>
<module name=“org.slf4j”/>
<module name=“javax.api”/>
<module name=“org.junit”/>
</dependencies>
</module>
Web Server
JNDIName:
customerM
JNDIName:
serviceM
manager.war
ManagerServlet
27
- Internal Use Only -
28. Modular EE Class Loading
Implicit dependency
WAR Deployment Module
javax.api
MANIFEST.MF
javaee.api
javax.servlet
…
Dependency: com.hana
Class-Path: /foo/bar.jar
Extension-List: myext
EJB Sibling Deployment
Module
Explicit dependency
com.hana
external./foo/bar.jar
extension.myext
28
- Internal Use Only -
30. Class Loader – WebLogic
각 애플리케이션의 클래스 로더를 통해 클래스 로딩
BootClassLoader(native)
ExtensionClassLoader
SystemClassLoader
J2EE Application Unit
J2EE Application Unit
Application Classloader
EJB1
Call-by-Reference
EJB2
Application Classloader
WebApp Classloader
EJB3
WebApp Classloader
Call-by-Reference
Call-by-Value
JSP1
JSP1
JSP2
30
- Internal Use Only -
JSP2
31. Class Loader – JBoss EAP5 vs EAP6
모듈형 클래스로더
계층형 클래스로더
모듈 하나에 대해서 하나의 클래스로더
애플리케이션 마다 클래스로더를 만들수 있고, 클래스
각 모듈은 런타임으로 필요로 하는 모듈의
재로드 가능
의존성을 정의
복잡/ 클래스 검색이 늦음
중복 배치에 의한 오류 발생
계층형이 아닌 그래프 구조
클래스 공유
「클래스 패스」 불필요
문제를 회피하기 위한 구조가 더 복잡도를 높여 악순환
단순하여 초고속
31
- Internal Use Only -
33. WLS vs JBoss 세션 복제의 차이
JBoss
WLS
- Internal Use Only -
34. 웹로직 클러스터링– 최초 연결
WLS Tracking Cookie Format: sessionid!primary_JVMID!secondary_JVMID
3
M1 인스턴스가 이 세션에
대한 primary로 지정.
복제관리자는 M2를
secondary로 지정하고 추
적 쿠키 정보를 갱신
M1
2
1
라운드 로빈 알고리즘
사용하여 live
인스턴스 찾음
클라이언트
요청 전송
A
M2
Client
A’
Proxy
M3
5
최종 추적 쿠키
Cookie(Primary=M1;Seco
ndary=M2)
M4
- Internal Use Only -
4
복제 관리자는 M2로 해당
세션을 복제
35. 웹로직 클러스터링 – Failover
3
연결 문제 발생
(연결에러, 타임아웃)
7
복제 관리자는 M1에 있는
세션을 제거하도록 통지
M1
2
1
클라이언트 요청
추적 쿠키:
Cookie(Primary=M1;Sec
ondary=M2)
A
인스턴스 M1 정상,
요청을 전달함
M2
Client
8
M2가 이 세션에 대한
primary로 전환. 복제관리
자는 M3를 secondary로
지정하고 추적 쿠키 정보
를 갱신
A’
Proxy
M3
4
최종 추적 쿠키
Cookie(Primary=M2;Seco
ndary=M3)
5
6
A’
Proxy는 장애를 감지하고,
secondary 인스턴스 M2
로 접속을 시도
복제 관리자는 해당 세션
을 M3로 복제시킴
M4
- Internal Use Only -
37. JBoss 클러스터링 – 최초 연결(All to All)
JBoss Tracking Cookie Format: jsessionid__JvmRoute1)
3
M1
M1 인스턴스가 이 세션을
저장
2
1
플러그인 알고리즘 사
용하여 live
인스턴스 찾음
클라이언트
요청 전송
A
M2
Client
웹 서버
플러그인
4
A’
Jgroups를 통해 세션이 모
든 서버에 복제
M3
5
A’
최종 추적 쿠키
Cookie(sessionid_M1)
M4
1) jvmRoute: 서버의 설정 값으로써 웹 서버 플러그인과 인스턴스를 맵핑시킴
A’
CAUTION: 서버당 100M 세션이 있을 경우 M1~M4서버 총 400M의 저장공간 필요!
- Internal Use Only -
38. JBoss 클러스터링 – Failover(All to All)
3
연결 문제 발생
(연결에러, 타임아웃)
M1
2
1
클라이언트
요청 전송
Cookie(sessionid_M1)
A
인스턴스 M1 에게
요청을 전달함
M2
웹 서버
플러그인
Client
5
A’
M3
5
최종 추적 쿠키
Cookie(sessionid_M2)
A’
4
플러그인는 장애를 감지
하고, 알고리즘에 의해
다른 서버 연결을 시도
M4
A’
- Internal Use Only -
M2의 jvmRoute값을 이용
하여 추적 쿠키의 값을
M2 인스턴스로 갱신
39. 웹 서버 커넥터(WEB/WAS 구간)
Apache Tomcat Connector
Tomcat, JBoss 와 연동을 하기 위한 웹 서버 플러그인 모듈 ( Apache 재단 )
지원 웹서버
Apache
IIS
Netscape/SunOne Web Server
AJPv13 프로토콜 사용
http://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html
다운로드
http://tomcat.apache.org/connectors-doc/
39
- Internal Use Only -
40. 웹 서버 커넥터(WEB/WAS 구간)
Apache Tomcat Connector : mod_jk, mod_proxy, mod_cluster
3가지 아파치 모듈 연결 방식
mod_jk – 가장 오래되고 안정적
mod_proxy – Apache 2.2 이상에서 가능
mod_proxy_ajp, mod_proxy_balancer등이 필요
mod_cluster – 새로운 형태의 모듈 multicast 방식으로 자동 발견 기능 제공
40
- Internal Use Only -
41. JBoss Database 연동 설정
JDBC 드라이버 등록 방법
JDBC 드라이버는 다음의 형태를 통해 사용할 수 있습니다.
설정
설명
modules
JDBC 드라이버를 jboss의 module.xml 형태의 모듈화하여 사용하는 방법
library
Jar 파일의 형식의 deploy를 통한 모듈 등록
41
- Internal Use Only -
42. JBoss Database 연동 설정
JDBC 드라이버 등록 설정
$JBOSS_HOME/modules.ext 디렉토리에 하위 디렉토리를 만들고 jar 파일을 복사한 후
module.xml 파일을 작성합니다.
42
- Internal Use Only -
43. JBoss Database 연동 설정
JDBC 드라이버 모듈화 설정 (계속)
module.xml
<module xmlns="urn:jboss:module:1.1" name="com.mysql">
<properties>
<property name="jboss.api" value="unsupported"/>
</properties>
<resources>
<resource-root path="mysql-connector-java-commercial-5.1.26-bin.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
43
- Internal Use Only -
44. JBoss Database 연동 설정
JBoss 인스턴스 설정 파일에 해당 JDBC 모듈 추가
JBoss Server 인스턴스의 설정 파일(standalone-ha.xml)에 jdbc 드라이버를 등록
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS"
pool-name="ExampleDS" enabled="true"
use-java-context="true">
…중략…
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="mysql" module="com.mysql">
<driver-class>com.mysql.jdbc.Driver</driver-class>
</driver>
</drivers>
</datasources>
module.xml 의 name 과 driver의 module 부분은 동일하여야 함. (module.xml)
<module xmlns="urn:jboss:module:1.1" name="com.mysql">
44
- Internal Use Only -
45. JBoss Database 연동 설정
Datasource 설정
standalone Instance 에서 사용되는 configuration 파일(standalone-ha.xml)에 Datasource 부분을
설정합니다.
<datasources>
<datasource
jndi-name="java:jboss/datasources/MysqlDS"
pool-name="MysqlDS" enabled="true"
use-java-context="true">
<connection-url>jdbc:mysql://localhost:3306/mydb</connection-url> <driver>com.mysql</driver>
<security>
<user-name>dbuser</user-name>
<password>dbpasswd</password>
</security>
<validation>
<valid-connection-checker classname="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker">
</valid-connection-checker>
</validation>
</datasource>
</datasources>
EAP 5.x 대의 *-ds.xml 파일은 가급적 사용을 하지 않도록 합니다. (Console, CLI 에서 접근 할 수 없음.)
45
- Internal Use Only -
46. 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 -
47. 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 -
48. 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
49. JBoss Netty – 고성능 네트워크 클라이언트/서버 프레임워크
이벤트 기반 비동기 네트워크 애플리케이션 프레임워크
Interceptor Chain 패턴
• 손쉽게 다단계 State machine 구현
• 암복호화 + 전문 해석 + 스레드 풀링 + 비즈니스 로직
• 조립 가능한 컴포넌트 다수 제공
과부하 및 DoS 방어 메커니즘
Old · New I/O 모두 지원
NIO 구현·벤더별 최적화
- Internal Use Only -
50. 부가 기능 및 성능
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 -
51. JMS Queue 생성
Naming이 java:jboss/exported/ 로 시작되지 않으면 글로벌 JNDI에 바인딩되지 않음
- Internal Use Only -
52. 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 -
54. 애플리케이션을 통한 테스트
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 -
55. 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 -
56. 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 -
57. 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 -
58. JMX Object Name 수집
C:Javajboss-eap-6.1bin> standalone.bat -c standalone-full
C:Javajboss-eap-6.1bin> jconsole.bat
- Internal Use Only -