블로그 이미지
윤영식
Full Stacker, Application Architecter, KnowHow Dispenser and Bike Rider

Publication

Category

Recent Post

2012. 9. 3. 18:06 Middleware, Cloud/WAS

JBoss의 사용하는 port를 변경하거나, 서비스 추가/삭제 및 환경설정에 대한 관리를 알아보자. 이런 관리를 위해서는 먼저 JBoss의 아키텍쳐를 아는 것이 중요하다. 

  • 4.0.3 이전 JMX를 이용하여 service 추가/삭제
  • 4.0.3 이후 microcontainer 상에서 service를 POJO(Plain Old Java Objects) 로 만들어 추가/삭제 가능
  • 5.x 버전부터 JBoss는 microcontainer-based 아키텍쳐를 사용하고 있다. 

▶ microcontainer란 무엇인가?
  • Spring framework와 유사하게 dependency injection framework 이다 
  • DI에는 다음과 같은 설정을 한다
    • instantiated할 오브젝트 설정
    • 인스턴스 오브젝트의 constructor 파라미터 제공
    • set 프로퍼티에 값 설정
    • 오브젝트끼리 의존관계 설정
  • microcontainer는 이전의 JMX kernel 아키텍쳐보다  훨씬 가볍다, 환경설정이 적다, 서비스들을 standalone올 디플로이 할 수 있다. 
  • microcontainer위에 모든 서비스가 올라간다 (단, v5.0에는 JMX kernel위에 JMX, JNDI등이 올라가지만 이후는 microcontainer위에 전분 올라가도록 변경됨)
  • 환경파일의 이해
    • server/xxx/conf/bootstrap.xml : primary beans configuration 파일이다 

▶ JMX  이해하기 
  • Client는 JMX Server를 통해서 xxxMBean 인터페이스를 상속받은 MBean 클래스의 내역을 서비스 받는다
  • JMX Server가 xxxMBean을 lookup해서 찾고 client는 바로 xxxMBean을 접근할 수 없다. 
  • jboss-service.xml 파일 설정을 기반으로 service deployer가 MBean을 인스턴스화 한다. 또한 *-service.xml 설정도 같이 엮어서 인스터스화 한다.
  • jboss-service.xml 파일이 MBean 설정을 위한 primary descriptor 파일이다. 주 설정내역은 다음과 같다.
    • logging service 
    • thread pool : 다양한 서비스의 thread pool을 제공한다
    • JNDI
    • MBean 관리를 위한 security 
    • MBean과 관련된 JMX 서비스들
    • MBean과 관련된 remoting 서비스

▶ MBean 명칭 이해하기
  • MBean 명칭안는 여러부분이 내포된다.
  • domain : 자바의 패키지 명칭
  • key-value : 콤마로 구분

예) jboss.jca:service=ManagedConnectionPool,name=DefaultDS

  • jboss.jca = domain 이고 콜론앞의 값
  • service=ManagedConnectionPool,name=DefaultDS = key properties들이고 콤마로 구분된다. (순서완 상관없음)

▶ Application Server 환경설정하기
server/xxx/conf/ 디렉토리 밑에 있는 config 파일들을 알아보자 
  • bootstrap.xml : POJO를 초기화 하기위하여 microcontainer가 사용함
  • jax-ws-catalog.xml : JAX-WS를 위한 맵핑에 사용함
  • jbossjta-properties.xml : Java Transaction API (JTA) 서비스에서 사용함
  • jboss-log4j.xml : 로깅 설정
  • jboss-service.xml : JMX kernel에서 사용
  • jndi.properties : JNDI 서비스에서 사용하는 디폴트 설정값
  • login-config.xml : security 서비스에서 사용
  • standardjboss.xml : EJB 서비스에서 사용
  • standardjbosscmp-jdbc.cmp : Container Managed Persistence(CMP) EJB를 위한 다양한 DB 설정에 사용 
  • 다른 환경 파일들 설명



posted by 윤영식