Sun Java System Application Server 9.1 고가용성 관리 설명서

Application Server에서 MQ 클러스터 사용

MQ Enterprise Edition은 브로커 클러스터로 알려져 있는 상호 연결된 여러 브로커 인스턴스를 지원합니다. 브로커 클러스터를 사용하면 클라이언트 연결이 클러스터에 있는 모든 브로커 간에 분산됩니다. 클러스터링은 수평적 확장을 제공하며 가용성을 향상시킵니다.

이 절에서는 고가용성 Sun Java System Message Queue 클러스터를 사용하도록 Application Server를 구성하는 방법을 설명합니다. 또한 Message Queue 클러스터를 시작하고 구성하는 방법을 설명합니다.

Application Server 토폴로지 및 MQ 배포에 대한 자세한 내용은 Sun Java System Application Server 9.1 배포 계획 설명서Planning Message Queue Broker Deployment를 참조하십시오.

고가용성 MQ 클러스터

Sun Java System Message Queue 4.1에서는 새 "고가용성" 클러스터 유형을 통해 고가용성 메시징 서비스를 제공합니다. 이 유형의 MQ 클러스터에서는 모든 브로커 인스턴스가 피어 대 피어 관계를 공유하며 해당 클러스터에 속한 모든 브로커 인스턴스가 공통 지속성 데이터 저장소를 공유함으로써 '데이터 가용성'을 제공합니다.인스턴스는 인스턴스 실패를 자동으로 감지하고 실패한 브로커의 지속성 메시지를 동적 인계 선출을 통해 인계합니다. 따라서 Application Server에 배포된 응용 프로그램 구성 요소는 이러한 가용성 기능을 이용할 수 있습니다.

이 클러스터 유형을 사용하면 대기열 또는 영구 항목 가입에 대한 트랜잭션된 지속성 메시지가 손실되지 않습니다. 비지속성 메시지 또는 비영구 가입자에 대한 지속성 메시지는 클라이언트 런타임이 연결된 브로커를 사용할 수 없을 경우 손실될 수 있습니다.

LOCAL 모드에서 고가용성 브로커 클러스터 구성

  1. HADB를 시작합니다.

  2. Application Server 도메인을 만들고 시작합니다. 도메인을 만들고 시작하려면 asadmin 명령 create-domainstart-domain을 각각 사용합니다. 이 명령에 대한 자세한 내용은 create-domain(1)start-domain(1)을 참조하십시오.

  3. 노드 에이전트를 만들고 시작합니다. 노드 에이전트를 만들고 시작하려면 asadmin 명령 create-node-agentstart-node-agent를 각각 사용합니다. 이 명령에 대한 자세한 내용은 create-node-agent(1)start-node-agent(1)를 참조하십시오.

  4. 클러스터를 만듭니다. asadmin 명령 create-cluster를 사용하거나 관리 콘솔을 사용하여 클러스터를 만들 수 있습니다. create-cluster 명령에 대한 자세한 내용은 create-cluster(1)를 참조하십시오. 관리 콘솔을 사용하여 클러스터를 만드는 방법에 대한 자세한 내용은 관리 콘솔 온라인 도움말을 참조하십시오.

  5. 클러스터에서 인스턴스를 만듭니다. 인스턴스를 만드는 과정에서 원격 브로커에서 사용하는 JMS 공급자 포트 번호를 지정합니다. 지정하지 않으면 기본 JMS 공급자 포트 번호가 사용됩니다. 관리 콘솔 또는 asadmin 명령 create-instance를 사용하여 인스턴스를 만들 수 있습니다. 관리 콘솔을 사용하여 인스턴스를 만드는 방법에 대한 자세한 내용은 관리 콘솔 온라인 도움말을 참조하십시오. create-instance 명령에 대한 자세한 내용은 create-instance(1)를 참조하십시오.

  6. 클러스터를 시작합니다. 관리 콘솔 또는 asadmin 명령 start-cluster를 사용하여 시작할 수 있습니다. 관리 콘솔을 사용하여 클러스터를 시작하는 방법에 대한 자세한 내용은 관리 콘솔 온라인 도움말을 참조하십시오. start-cluster 명령에 대한 자세한 내용은 start-cluster(1)를 참조하십시오.

  7. asadmin 명령 configure-ha-cluster를 사용하여 HA 클러스터를 구성합니다. 명령에 대한 자세한 내용은 configure-ha-cluster(1)를 참조하십시오.

REMOTE 모드에서 고가용성 브로커 클러스터 구성

  1. HADB를 시작합니다.

  2. 데이터베이스 테이블을 만듭니다.

  3. 고가용성 브로커 클러스터를 만드는 경우 HA 드라이버를 복사합니다.

    cp $AS_HOME/hadb/4.4.3-6/lib/hadbjdbc4.jar $S1AS_HOME/imq/lib/ext
  4. 도메인을 만들고 시작합니다. 이 작업을 수행하려면 asadmin 명령 create-domainstart-domain을 사용합니다. 이 명령에 대한 자세한 내용은 create-domain(1)start-domain(1)을 참조하십시오.

  5. 노드 에이전트를 만들고 시작합니다. 이 작업을 수행하려면 asadmin 명령 create-domainstart-node-agent를 사용합니다. 이 명령에 대한 자세한 내용은 create-node-agent(1)start-node-agent(1)를 참조하십시오.

  6. 클러스터를 만듭니다. asadmin 명령 create-cluster를 사용하거나 관리 콘솔을 사용하여 클러스터를 만들 수 있습니다. 자세한 내용은 create-cluster(1)를 참조하십시오. 관리 콘솔을 사용하여 클러스터를 만드는 방법에 대한 자세한 내용은 관리 콘솔 온라인 도움말을 참조하십시오.

  7. 클러스터에서 인스턴스를 만듭니다. 인스턴스를 만드는 과정에서 원격 브로커에서 사용하는 JMS 공급자 포트 번호를 지정합니다. 지정하지 않으면 기본 JMS 공급자 포트 번호가 사용됩니다.

  8. 기본 JMS 호스트를 삭제하고 인스턴스에서 연결할 수 있는 JMS 호스트를 만듭니다. 각 브로커를 별도의 JMS 호스트로 추가해야 합니다. JMS 호스트에 대한 자세한 내용은 JMS 호스트 목록을 참조하십시오.

  9. JMS 유형을 REMOTE로 설정합니다. asadmin 명령 set을 사용하거나 관리 콘솔의 JMS 서비스 페이지에서 설정할 수 있습니다.

  10. 고가용성 브로커를 구성하는 경우에는 JMS 가용성을 true로 설정합니다. asadmin 명령 set을 사용하거나 관리 콘솔의 JMS 가용성 페이지에서 설정할 수 있습니다.

  11. 브로커 인스턴스를 시작합니다.

  12. 클러스터를 시작합니다. 자세한 내용은 start-cluster(1)를 참조하십시오.

비 HA 클러스터를 위한 자동 클러스터링

지금까지 관리자는 이 절 뒤에 나오는 절차에 설명된 것처럼 '비 고가용성' MQ 클러스터(마스터 브로커가 있는 MQ 클러스터)를 별도로 설정해야 했습니다. 이 릴리스에서 Application Server는 MQ 클러스터의 수동 설정 프로세스(REMOTE 유형)와 함께 '자동 클러스터링' 기능을 제공합니다. 따라서 Application Server 클러스터를 만들 때 같은 위치에 비 HA 클러스터(LOCAL 유형)가 자동으로 생성됩니다. 이는 MQ 클러스터를 만드는 기본 모드입니다. 예를 들어 관리자가 세 개의 Application Server 인스턴스로 Application Server 클러스터를 만들면 각 Application Server 인스턴스는 같은 위치에 있는 브로커와 함께 작동하도록 구성되며, 그 결과 세 개의 MQ 브로커 인스턴스가 투명하게 MQ 클러스터를 형성하게 됩니다. 첫 번째 Application Server 인스턴스의 MQ 브로커는 마스터 브로커로 설정됩니다. 하지만 자동 클러스터링에는 단점도 있습니다. 관리자가 클러스터에 인스턴스를 추가하면 자동으로 생성된 MQ 브로커 인스턴스는 클러스터에 참가할 수 없습니다. 클러스터에서 인스턴스가 제거된 경우에도 이 동작이 적용됩니다.

ProcedureApplication Server 클러스터가 있는 MQ 클러스터 활성화

시작하기 전에

클러스터가 REMOTE 유형인 경우 다음 절차를 수행합니다. 클러스터가 LOCAL 유형인 경우에는 단계 1~4가 적용되지 않습니다.

  1. Application Server 클러스터가 아직 없으면 만듭니다.

    클러스터를 만드는 방법에 대한 자세한 내용은 클러스터 만들기를 참조하십시오.

  2. MQ 브로커 클러스터를 만듭니다.

    먼저 Domain Administration Server에 의해 시작된 브로커를 참조하는 기본 JMS 호스트를 삭제한 후 MQ 브로커 클러스터에 포함될 세 개의 외부 브로커(JMS 호스트)를 만듭니다.

    관리 콘솔이나 asadmin 명령줄 유틸리티에서 JMS 호스트를 만듭니다.

    asadmin을 사용하려면 다음과 같이 명령을 지정합니다.


    asadmin delete-jms-host --target cluster1 default_JMS_host
    asadmin create-jms-host --target cluster1
         --mqhost myhost1 --mqport 6769
         --mquser admin --mqpassword admin broker1
    asadmin create-jms-host --target cluster1
         --mqhost myhost2 --mqport 6770
         --mquser admin --mqpassword admin broker2
    asadmin create-jms-host --target cluster1
         --mqhost myhost3 --mqport 6771
         --mquser admin --mqpassword admin broker3

    관리 콘솔을 사용하여 호스트 만들기

    1. JMS 호스트 노드(구성 > config-name > Java Message Service > JMS 호스트)로 이동합니다.

    2. 기본 브로커(default_JMS_host)를 삭제합니다.

      해당 브로커 옆의 확인란을 선택한 후 삭제를 누릅니다.

    3. 새로 만들기를 눌러 각 JMS 호스트를 만들고 해당 등록 정보 값을 입력합니다.

      호스트 이름, DNS 이름 또는 IP 주소, 포트 번호, 관리 사용자 이름 및 비밀번호 값을 채웁니다.

  3. 마스터 MQ 브로커 및 기타 MQ 브로커를 시작합니다.

    JMS 호스트 시스템에서 세 개의 외부 브로커를 시작하고 임의의 시스템에서 하나의 마스터 브로커를 시작합니다. 이 마스터 브로커는 브로커 클러스터에 속할 필요가 없습니다. 예를 들면 다음과 같습니다.


    /usr/bin/imqbrokerd -tty -name brokerm -port 6772
     -cluster myhost1:6769,myhost2:6770,myhost2:6772,myhost3:6771
     -D"imq.cluster.masterbroker=myhost2:6772"
  4. 클러스터의 Application Server 인스턴스를 시작합니다.

  5. 클러스터에 JMS 자원을 만듭니다.

    1. JMS 물리적 대상을 만듭니다.

      예를 들어, asadmin을 사용하여 다음과 같이 지정합니다.


      asadmin create-jmsdest --desttype queue --target cluster1 MyQueue
      asadmin create-jmsdest --desttype queue --target cluster1 MyQueue1

      관리 콘솔을 사용하려면

      1. JMS 호스트 페이지(구성 > config-name > Java Message Service > 물리적 대상)로 이동합니다.

      2. 새로 만들기를 눌러 각 JMS 물리적 대상을 만듭니다.

      3. 각 대상에 대해 이름 및 유형(queue)을 입력합니다.

    2. JMS 연결 팩토리를 만듭니다.

      예를 들어, asadmin을 사용하려면 다음과 같이 지정합니다.


      asadmin create-jms-resource --target cluster1
      --restype javax.jms.QueueConnectionFactory jms/MyQcf
      asadmin create-jms-resource --target cluster1
      --restype javax.jms.QueueConnectionFactory jms/MyQcf1

      관리 콘솔을 사용하려면

      1. JMS 연결 팩토리 페이지(자원 > JMS 자원 > 연결 팩토리)로 이동합니다.

      2. 각 연결 팩토리를 만들려면 새로 만들기를 누릅니다.

        JMS 연결 팩토리 만들기 페이지가 열립니다.

      3. 각 연결 팩토리에 대해 JNDI 이름(예: jms/MyQcf) 및 유형 javax.jms.QueueConnectionFactory를 입력합니다.

      4. 페이지 맨 아래에 나오는 사용 가능한 대상 목록에서 클러스터를 선택하고 추가를 누릅니다.

      5. 확인을 눌러 연결 팩토리를 만듭니다.

    3. JMS 대상 자원을 만듭니다.

      예를 들어, asadmin을 사용하려면 다음과 같이 지정합니다.


      asadmin create-jms-resource --target cluster1
           --restype javax.jms.Queue
           --property imqDestinationName=MyQueue jms/MyQueue
      asadmin create-jms-resource --target cluster1
           --restype javax.jms.Queue
           --property imqDestinationName=MyQueue1 jms/MyQueue1

      관리 콘솔을 사용하려면

      1. JMS 대상 자원 페이지(자원 > JMS 자원 > 연결 팩토리)로 이동합니다.

      2. 각 대상 자원을 만들려면 새로 만들기를 누릅니다.

        JMS 대상 자원 만들기 페이지가 열립니다.

      3. 각 대상 자원에 대해 JNDI 이름(예: jms/MyQueue) 및 유형 javax.jms.Queue를 입력합니다.

      4. 페이지 맨 아래에 나오는 사용 가능한 대상 목록에서 클러스터를 선택하고 추가를 누릅니다.

      5. 확인을 눌러 대상 자원을 만듭니다.

  6. 응용 프로그램 클라이언트에 대해 – retrieve 옵션을 지정하여 응용 프로그램을 배포합니다. 예를 들면 다음과 같습니다.


    asadmin deploy --target cluster1 
    --retrieve /opt/work/MQapp/mdb-simple3.ear
  7. 응용 프로그램에 액세스한 후 예상대로 동작하는지 테스트합니다.

  8. Application Server를 기본 JMS 구성으로 되돌리려면 만든 JMS 호스트를 삭제하고 기본 JMS 호스트를 다시 만듭니다. 예를 들면 다음과 같습니다.


    asadmin delete-jms-host --target cluster1 broker1
    asadmin delete-jms-host --target cluster1 broker2
    asadmin delete-jms-host --target cluster1 broker3
    asadmin create-jms-host --target cluster1
     --mqhost myhost1 --mqport 7676
     --mquser admin --mqpassword admin
     default_JMS_host

    관리 콘솔에서도 동일한 작업을 수행할 수 있습니다.

일반 오류

문제가 발생하면 다음을 참조하십시오.