Sun Java System Message Queue 3.7 UR1 관리 설명서

3장 브로커 및 클라이언트 시작

Sun Java SystemTM Message QueueTM를 설치하고 몇 가지 준비 단계를 수행한 후에는 브로커와 클라이언트를 시작할 수 있습니다. 브로커의 구성은 일련의 구성 파일에 따라 결정되며, 브로커 유틸리티(imqbrokerd)로 전달되는 명령줄 옵션으로 대체될 수 있습니다. 자세한 내용은 4 장, 브로커 구성을 참조하십시오.

이 장은 다음 내용으로 구성되어 있습니다.

시스템 자원 준비

브로커를 시작하기 전에 시스템 클럭을 동기화하고 파일 설명자 제한을 설정(Solaris 또는 Linux)하는 두 가지 예비 시스템 수준 작업을 수행해야 합니다. 다음 절에서는 이러한 작업에 대해 설명합니다.

시스템 클럭 동기화

브로커 또는 클라이언트를 시작하기 전에 Message Queue 시스템과 상호 작용하는 모든 호스트에서 클럭을 동기화해야 합니다. 동기화는 메시지 만료(수명)를 사용할 경우에 특히 중요합니다. 동기화되지 않은 클럭의 타임스탬프는 메시지 만료가 예상한 대로 작동하지 않게 하여 메시지 전달을 막을 수 있습니다. 브로커 클러스터에도 동기화가 중요합니다.

SNTP(Simple Network Time Protocol)와 같은 시간 동기화 프로토콜을 실행하도록 시스템을 구성합니다. 시간 동기화는 일반적으로 xntpd 데몬(Solaris 및 Linux)과 W32Time 서비스(Windows)에 의해 지원됩니다. 이러한 서비스 구성에 대한 자세한 내용은 운영 체제 설명서를 참조하십시오. 브로커가 실행된 이후에는 시스템 클럭을 역방향으로 설정하지 마십시오.

파일 설명자 제한 설정

Solaris와 Linux 플랫폼에서는 클라이언트 또는 브로커가 실행 중인 쉘에 프로세스가 사용할 수 있는 파일 설명자 수에 대한 소프트 제한이 있습니다. Message Queue에서는 클라이언트가 만들거나 브로커가 받아들이는 각 연결에 이러한 파일 설명자 중 하나를 사용합니다. 지속성 메시지를 갖는 각 물리적 대상 역시 파일 설명자를 사용합니다.

따라서 파일 설명자 제한은 브로커 또는 클라이언트가 가질 수 있는 연결 수를 제한합니다. 기본적으로 최대 연결 수는 Solaris의 경우 256이며 Linux의 경우에는 1024입니다. (지속성을 위해 파일 설명자를 사용하기 때문에 연결 제한은 실제로 더 낮음). 이 보다 더 많은 연결이 필요하면 클라이언트나 브로커가 실행될 각 쉘의 파일 설명자 제한을 늘려야 합니다. 파일 설명자 제한을 늘리는 방법에 대한 자세한 내용은 ulimit 설명서 페이지를 참조하십시오.

브로커 시작

Message Queue 명령줄 유틸리티나 Windows 시작 메뉴를 시용하여 브로커를 대화식으로 시작하거나 시스템 시작 시 자동으로 시작하도록 정렬할 수 있습니다. 다음 절에서는 브로커 시작 방법에 대해 설명합니다.

대화식으로 브로커 시작

브로커 유틸리티(imqbrokerd)를 사용하여 명령줄에서 브로커를 대화식으로 시작할 수 있습니다. (Windows에서는 시작 메뉴에서 브로커를 시작할 수도 있습니다.)관리 콘솔(imqadmin) 또는 명령 유틸리티(imqcmd)를 사용하여 브로커를 시작할 수는 없습니다. 이러한 도구를 사용하려면 브로커가 이미 실행되고 있어야 합니다.

Solaris 및 Linux 플랫폼의 경우 브로커 인스턴스는 처음에 시작한 사용자가 항상 시작해야 합니다. 각 브로커 인스턴스는 자체 구성 등록 정보 및 파일 기반 메시지 저장소를 가지고 있습니다. 브로커 인스턴스가 처음 시작되면 Message Queue에서는 해당 사용자의 파일 작성 모드 마스크(umask )를 사용하여 해당 브로커 인스턴스의 구성 정보와 영구 데이터가 들어 있는 디렉토리에 대한 권한을 설정합니다.

브로커 인스턴스는 기본적으로 인스턴스 이름이 imqbroker입니다. 이 이름과 기본 구성을 사용하여 명령줄에서 브로커를 시작하려면 다음 명령을 사용하기만 하면 됩니다.

imqbrokerd

그러면 기본 포트 7676에 포트 매퍼가 있는 로컬 시스템에서 imqbroker라는 브로커 인스턴스가 시작됩니다( 포트 매퍼 참조).

기본값이 아닌 인스턴스 이름을 지정하려면 - name 옵션을 imqbrokerd 명령에 사용합니다. 다음 명령은 인스턴스 이름이 myBroker인 브로커를 시작합니다.

imqbrokerd -name myBroker

imqbrokerd 명령줄에서 다른 옵션을 사용하여 다양한 브로커 작업을 제어할 수 있습니다. 다음 예에서는 - tty 옵션을 사용하여 명령 창에 오류 및 경고를 보냅니다(표준 출력).

imqbrokerd -name myBroker -tty

명령줄에서 -D 옵션을 사용하여 브로커의 인스턴스 구성 파일(config.properties)에 지정된 등록 정보 값을 무시할 수도 있습니다. 이 예에서는 imq.jms.max_threads 등록 정보를 설정하여 jms 연결 서비스에 사용할 수 있는 최대 스레드 수를 2000으로 늘립니다.

imqbrokerd -name myBroker -Dimq.jms.max_threads=2000

imqbrokerd 명령의 구문, 하위 명령 및 옵션에 대한 자세한 내용은 브로커 유틸리티를 참조하십시오. 이 정보에 대한 빠른 요약을 보려면 다음을 입력합니다.

imqbrokerd -help

주 –

Sun Java System Message Queue 플랫폼판 사용권이 있는 경우 imqbrokerd 명령의- license 옵션을 사용하여 시험 플랫폼판 사용권을 활성화하여 플랫폼판 기능을 90일 동안 사용할 수 있습니다. 다음과 같이 try를 사용권 이름으로 지정합니다.

imqbrokerd -license try

이 옵션은 브로커를 시작할 때마다 사용해야 하며 그렇지 않으면 브로커의 기본값이 표준 플랫폼판 사용권이 됩니다.


자동으로 브로커 시작

브로커를 명령줄에서 명시적으로 시작하는 대신 시스템을 시작할 때 자동으로 시작하도록 설정할 수 있습니다. 이 방법은 브로커를 실행 중인 플랫폼(Solaris, Linux 또는 Windows)에 따라 다릅니다.

자동 시작(Solaris 및 Linux)

Solaris 및 Linux 시스템에서는 자동 시작을 활성화하는 스크립트가 Message Queue 설치 중에 /etc/rc* 디렉토리 트리에 저장됩니다. 이러한 스크립트를 사용하려면 구성 파일 /etc/imq/imqbrokerd.conf(Solaris) 또는 /etc/opt/sun/mq/imqbrokerd.conf(Linux)를 다음과 같이 편집해야 합니다.

자동 시작(Windows)

Windows 시스템을 시작할 때 브로커가 자동으로 시작되게 하려면 브로커를 Windows 서비스로 정의해야 합니다. 그리고 나면 브로커가 시스템이 시작될 때 시작되어 시스템이 종료될 때까지 백그라운드에서 실행됩니다. 따라서 추가 인스턴스를 시작하는 경우가 아니면 imqbrokerd 명령을 사용해서 브로커를 시작하지 마십시오.

시스템에는 Windows 서비스로 실행 중인 브로커가 하나 뿐일 수 있습니다. 작업 관리자는 이러한 브로커를 두 개의 실행 가능한 프로세스로 나열합니다.

Message Queue를 Windows 시스템에 설치할 때 브로커를 서비스로 설치할 수 있습니다. 설치 이후에 서비스 관리자 유틸리티(imqsvcadmin)를 사용하여 다음 작업을 수행할 수 있습니다.

브로커에 시작 옵션을 전달하려면 -args 인수를 imqsvcadmin 명령에 사용합니다. 브로커 시작에서 설명한 대로 이 옵션은 imqbrokerd 명령의 -D 옵션과 동일하게 작동합니다. 명령 유틸리티(imqcmd)를 사용하여 보통의 경우와 같이 브로커 작업을 제어합니다.

imqsvcadmin 명령의 구문, 하위 명령 및 옵션에 대한 자세한 내용은 서비스 관리자 유틸리티를 참조하십시오.

브로커 서비스 재구성

설치된 브로커를 Windows 서비스로 재구성하는 절차는 다음과 같습니다.

Procedure실행 중인 브로커를 Windows 서비스로 재구성하는 방법

  1. 서비스를 정지합니다.

    1. Windows 시작 메뉴의 설정 하위 메뉴에서 제어판을 선택합니다.

    2. 관리 도구 제어판을 엽니다.

    3. 아이콘을 선택한 후 파일 메뉴 또는 팝업 컨텍스트 메뉴에서 열기를 선택하거나 아이콘을 두 번 눌러 서비스 도구를 실행합니다.

    4. 서비스(로컬)에서 Message Queue 브로커 서비스를 선택한 후 작업 메뉴에서 등록 정보를 선택합니다.

      또는, Message Queue 브로커를 마우스 오른쪽 버튼으로 누른 다음 팝업 컨텍스트 메뉴에서 등록 정보를 선택하거나 Message Queue 브로커를 두 번 누릅니다. 두 경우 모두 Message Queue 브로커 등록 정보 대화 상자가 나타납니다.

    5. 등록 정보 대화 상자의 일반 탭에서 브로커 서비스를 중지하려면 중지를 누릅니다.

  2. 서비스를 제거합니다.

    명령줄에서 다음 명령을 입력합니다.


    imqsvcadmin remove
  3. -args 옵션으로 다른 브로커 시작 옵션을 지정하거나 -vmargs 옵션으로 다른 Java 버전 인수를 지정하여 서비스를 다시 설치합니다.

    예를 들어, 서비스의 호스트 이름 및 포트 번호를 broker17878로 변경하려면 다음 명령을 사용합니다.


    imqsvcadmin install -args "-name broker1 -port 7878"

대체 Java Runtime 사용

imqsvcadmin 명령의 -javahome 또는 -jrehome 옵션을 사용하여 대체 Java Runtime의 위치를 지정할 수 있습니다. 또한 서비스의 등록 정보 대화 창에 있는 일반 탭의 시작 매개 변수 필드에서 해당 옵션을 지정할 수도 있습니다.


주 –

시작 매개 변수 필드에서는 백슬래시 문자(\\)가 제어 문자로 간주되기 때문에 백슬래시를 경로 구분자로 사용할 경우 두 번 입력해야 합니다. 예를 들면, 다음과 같습니다.

-javahome c:\\\\j2sdk1.4.0

브로커 서비스 시작 옵션 표시

브로커 서비스의 시작 옵션을 결정하려면 예 3–1에 표시된 대로 imqsvcadmin 명령에 query 옵션을 사용합니다.


예 3–1 브로커 서비스 시작 옵션 표시


imqsvcadmin query

Service Message Queue Broker is installed.
Display Name: Message Queue Broker
Start Type: Automatic
Binary location: C:\\Sun\\MessageQueue\\bin\\imqbrokersvc.exe
JavaHome: c:\\j2sdk1.4.0
Broker Args: -name broker1 -port 7878


서비스 시작 문제 해결

브로커를 Windows 서비스로 시작할 때 오류가 발생하는 경우 기록된 오류 이벤트를 볼 수 있습니다.

Procedure기록된 서비스 오류 이벤트를 보는 방법

  1. Windows 관리 도구 제어판을 엽니다.

  2. 이벤트 뷰어 도구를 시작합니다.

  3. 응용 프로그램 이벤트 로그를 선택합니다.

  4. 작업 메뉴에서 갱신을 선택하여 오류 이벤트를 표시합니다.

브로커 제거

브로커를 다시 제거하는 절차는 다음 절에 설명된 대로 플랫폼마다 다릅니다.

Solaris 또는 Linux에서 브로커 제거

Solaris 또는 Linux 플랫폼에서 브로커 인스턴스를 제거하려면 imqbrokerd 명령에 -remove 옵션을 사용합니다. 명령 형식은 다음과 같습니다.

imqbrokerd [options…] -remove instance

예를 들어, 브로커 이름이 myBroker인 경우 명령은 다음과 같습니다.

imqbrokerd -name myBroker -remove instance

이 명령은 지정된 브로커에 대해 전체 인스턴스 디렉토리를 삭제합니다.

시스템을 시작할 때 브로커가 자동으로 시작되도록 설정한 경우에는 구성 파일 /etc/imq/imqbrokerd.conf(Solaris) 또는 /etc/opt/sun/mq/imqbrokerd.conf(Linux)를 편집하고 AUTOSTART 등록 정보를 NO로 설정합니다.

imqbrokerd 명령의 구문, 하위 명령 및 옵션에 대한 자세한 내용은 브로커 유틸리티를 참조하십시오. 이 정보에 대한 빠른 요약을 보려면 다음을 입력합니다.

Windows 브로커 서비스 제거

Windows 서비스로 실행 중인 브로커를 제거하려면 다음 명령을 사용하여

imqcmd shutdown bkr

브로커를 종료한 후, 다음 명령을 사용하여

imqsvcadmin remove

서비스를 제거합니다.

또는 관리 도구 제어판의 Windows 서비스 도구를 사용하여 브로커 서비스를 중지하고 제거할 수도 있습니다.

브로커 서비스를 제거한 후에는 컴퓨터를 다시 시작합니다.

클라이언트 시작

클라이언트 응용 프로그램을 시작하기 전에 응용 프로그램 개발자로부터 시스템 설정 방법에 대한 정보를 얻습니다. Java 클라이언트 응용 프로그램을 시작할 경우 CLASSPATH 변수를 적절하게 설정하고 올바른 .jar 파일이 설치되었는지 확인해야 합니다. Java 클라이언트용 Message Queue 개발 안내서에 시스템 설정 관련 일반 단계에 대한 자세한 정보가 있으며 개발자에게는 추가 정보가 있을 수도 있습니다.

Java 클라이언트 응용 프로그램을 시작하려면 다음 명령줄 형식을 사용합니다.

java clientAppName

C 클라이언트 응용 프로그램을 시작하려면 응용 프로그램 개발자가 제공한 형식을 사용합니다.

응용 프로그램 설명서는 응용 프로그램에서 설정하는 속성 값에 대한 정보를 제공해야 하며, 명령줄에서 이러한 속성 값 중 일부를 대체해야 하는 경우도 있습니다. Java 클라이언트의 명령줄에서 JNDI(Java Naming and Directory Interface) 조회를 사용하여 연결 팩토리를 찾는 속성을 지정할 수도 있습니다. 조회에서 응용 프로그램보다 더 오래된 연결 팩토리를 반환할 경우 해당 연결 팩토리는 최신 속성을 지원하지 못할 수 있습니다. 그럴 경우 Message Queue는 해당 속성을 기본값으로 설정합니다. 필요한 경우, 명령줄을 사용하여 해당 기본값을 대체할 수도 있습니다.

명령줄에서 Java 응용 프로그램에 대한 속성 값을 지정하려면 다음 구문을 사용합니다.

java [[-Dattribute=value]
] clientAppName

16 장, 관리 객체 속성 참조에 표시된 대로 attribute 값은 연결 팩토리 관리 대상 객체 속성이어야 합니다. 값에 공백이 있는 경우 명령줄의 attribute= value 부분을 따옴표로 묶어야 합니다.

다음 예에서는 7677 포트에서 OtherHost 호스트의 브로커에 연결하는 MyMQClient라는 클라이언트 응용 프로그램을 시작합니다.

java -DimqAddressList=mq://OtherHost:7677/jms MyMQClient

명령줄에서 지정한 호스트 이름 및 포트는 응용 프로그램 자체에서 설정된 호스트 이름 및 포트를 대체합니다.

명령줄을 사용하여 속성 값을 지정할 수 없는 경우도 있습니다. 관리자가 읽기 전용 액세스만 허용하도록 관리 객체를 설정하거나 응용 프로그램 개발자가 읽기 전용 액세스만 허용하도록 클라이언트 응용 프로그램을 코딩할 수 있습니다. 클라이언트 프로그램을 시작하는 가장 좋은 방법을 알아보려면 응용 프로그램 개발자와 대화해야 합니다.