이전 목차 색인 다음 |
Sun Java System Message Queue 3.5 SP1 관리 설명서

> ## 7장
> 관리 대상 객체 관리

> 관리 대상 객체를 사용하면 다른 JMS 공급자에 이식할 수 있는 클라이언트 응용 프로그램을 개발할 수 있습니다. 관리 대상 객체는 공급자별 구성 및 이름 지정 정보를 캡슐화하는 객체입니다. 이 객체는 보통 Message Queue 관리자가 만들며, 클라이언트 응용 프로그램에서 브로커에 연결을 설정하고 이어서 물리적 대상과 메시지를 주고 받을 때 사용합니다.

> 관리 대상 객체에 대한 개요는 "Message Queue 관리 대상 객체"를 참조하십시오.

> Message Queue에는 관리 대상 객체를 만들고 관리할 때 사용되는 두 개의 관리 도구가 있습니다. 하나는 명령줄 객체 관리자 유틸리티(imqobjmgr)이고 다른 하나는 GUI 관리 콘솔입니다. 이 도구를 사용하면 다음을 수행할 수 있습니다.

> - 객체 저장소에서 관리 대상 객체를 추가 또는 삭제합니다.
> - 기존 관리 대상 객체를 나열합니다.
> - 관리 객체 관련 정보를 쿼리 및 표시합니다.
> - 객체 저장소에 있는 기존 관리 대상 객체를 수정합니다.

> 이 장에서는 객체 관리자 유틸리티(imqobjmgr)를 사용해서 이런 작업을 수행하는 방법을 설명합니다. 이 작업을 수행하려면 사용할 객체 저장소와 만들 관리 대상 객체의 속성을 이해하고 있어야 하므로 이 장에서 imqobjmgr을 사용하여 관리 대상 객체를 관리하는 방법을 설명하기 전에 이 두 항목에 대한 배경 정보를 제공합니다.

> 관리 콘솔 사용에 대한 자세한 내용은 4장, "관리 콘솔 자습서"를 참조하십시오.

> ##

> 객체 저장소 정보

> 관리 대상 객체는 클라이언트 응용 프로그램에서 JNDI 조회를 통해 액세스할 수 있도록 미리 만들어진 객체 저장소에 있습니다. 사용할 수 있는 객체 저장소의 유형에는 표준 LDAP 디렉토리 서버 또는 파일 시스템 객체 저장소의 두 가지가 있습니다.

> ### LDAP 서버 객체 저장소

> LDAP 서버는 작업 메시징 시스템에 권장되는 객체 저장소입니다. LDAP 구현은 여러 공급업체에서 제공하며 분산 시스템에서 사용할 수 있도록 디자인되어 있습니다. LDAP 서버는 작업 환경에 유용한 보안 기능도 제공합니다.

> Message Queue 관리 도구는 LDAP 서버의 객체 저장소를 관리할 수 있습니다. 그러나 먼저 LDAP 서버 설명서에 나와 있는 대로 java 객체를 저장하고 JNDI 조회를 수행하도록 LDAP 서버를 구성해야 합니다.

> LDAP 서버를 객체 저장소로 사용하는 경우 표 7-1에 나와 있는 속성들을 지정해야 합니다. 이 속성들은 다음 범주로 구분됩니다.

> - 초기 컨텍스트: LDAP 서버 객체 저장소의 이 속성은 고정되어 있습니다.
> - 위치: LDAP 서버에 설정된 대로 관리 대상 객체를 저장할 URL 및 디렉토리 경로를 지정합니다. 특히 지정된 경로가 존재하는지 확인해야 합니다.
> - 보안 정보: LDAP 공급자에 따라 다릅니다. 보안 정보가 모든 작업에서 필요한지 아니면 저장된 데이터를 변경하는 작업에서만 필요한지 확인하려면 LDAP 구현에 제공된 설명서를 참조하십시오.

> 표 7-1 LDAP 객체 저장소 속성

> 속성 | 설명
> --- | ---
> java.naming.factory. initial | LDAP 서버에서 JNDI 조회의 초기 컨텍스트. com.sun.jndi.ldap.LdapCtxFactory
> java.naming.provider.url | LDAP 서버 URL 및 디렉토리 경로 정보. 예를 들면 다음과 같습니다. ldap://mydomain.com:389/ou=mqobjs, o=myapp 여기서 관리 대상 객체는 /myapp/mqobjs 디렉토리에 저장됩니다.
> java.naming.security. principal | LDAP 서버에 대해 호출자를 인증할 때 사용하는 principal의 아이디. 그 형식은 인증 방법에 따라 달라지며, 예를 들면 다음과 같습니다. uid=fooUser, ou=People, o=mq 이 등록 정보를 지정하지 않으면 LDAP 서비스 공급자가 동작을 결정합니다.
> java.naming.security. credentials | LDAP 서버에 대해 호출자를 인증할 때 사용하는 principal의 자격 증명. 이 등록 정보 값은 인증 방법에 따라 다르며 해시 비밀번호, 단순 텍스트 비밀번호, 키, 인증서 등이 될 수 있습니다. 예를 들면 다음과 같습니다. fooPasswd 이 등록 정보를 지정하지 않으면 LDAP 서비스 공급자가 동작을 결정합니다.
> java.naming.security. authentication | 사용할 보안 수준입니다. 값은 none, simple, strong의 세 키워드 중 하나입니다. 예를 들어, simple을 지정하면 누락된 principal 또는 자격 증명 값을 묻는 프롬프트가 나타납니다. 그러면 아이디 정보를 좀더 안전하게 제공할 수 있습니다. 이 등록 정보를 지정하지 않으면 LDAP 서비스 공급자가 동작을 결정합니다.

> ### 파일 시스템 객체 저장소

> Message Queue에서는 파일 시스템 객체 저장소 구현도 지원합니다. 파일 시스템 객체 저장소는 완전히 테스트되지 않았기 때문에 작업 시스템에는 권장되지 않지만, 개발 환경에서는 매우 사용하기가 쉽다는 장점이 있습니다. LDAP 서버를 설정할 필요 없이 로컬 파일 시스템에 디렉토리를 만들기만 하면 됩니다.

> 그러나 클라이언트가 여러 컴퓨터 노드에 배포된 경우 이 클라이언트들이 객체 저장소가 위치한 디렉토리에 액세스할 수 없으면 파일 시스템 저장소를 중앙 집중식 객체 저장소로 사용할 수 없습니다. 또한 해당 디렉토리에 액세스할 수 있는 모든 사용자는 Message Queue 관리 도구를 사용하여 관리 대상 객체를 만들고 관리할 수 있습니다.

> 파일 시스템 객체 저장소를 사용하는 경우 표 7-2에 나와 있는 속성들을 지정해야 합니다. 이 속성들은 다음 범주로 구분됩니다.

> - 초기 컨텍스트: 파일 시스템 객체 저장소의 이 속성 값은 고정되어 있습니다.
> - 위치: 이 속성 값은 관리 대상 객체를 저장할 디렉토리 경로를 지정합니다. 해당 디렉토리가 존재해야 하며 Message Queue 관리 도구 사용자와 이 저장소에 액세스할 클라이언트 응용 프로그램 사용자에게 적절한 액세스 권한이 있어야 합니다.

> 표 7-2 파일 시스템 객체 저장소 속성

> 속성 | 설명
> --- | ---
> java.naming.factory. initial | 파일 시스템 객체 저장소에서 JNDI 조회의 초기 컨텍스트: com.sun.jndi.fscontext. RefFSContextFactory
> java.naming.provider.url | 디렉토리 경로 정보. 예를 들면 다음과 같습니다. file:///C:/myapp/mqobjs

> ##

> 관리 대상 객체

> 관리 객체에 대한 개요는 "Message Queue 관리 대상 객체"를 참조하십시오.

> Message Queue 관리 대상 객체에는 기본적으로 연결 팩토리와 대상의 두 가지 종류가 있습니다. 연결 팩토리 관리 대상 객체는 클라이언트 응용 프로그램에서 브로커에 대한 연결을 만들 때 사용됩니다. 대상 관리 대상 객체는 클라이언트 응용 프로그램에서 생성자가 메시지를 보내거나 사용자가 메시지를 받는 대상을 나타낼 때 사용됩니다. (SOAP 메시징에서는 특수한 SOAP 종점 관리 대상 객체를 사용합니다. 자세한 내용은 Message Queue Java Client Developer's Guide를 참조하십시오.)

> 메시지 전달 모델(지점간 또는 게시/가입)에 따라 특정 유형의 연결 팩토리 및 대상을 사용할 수 있습니다. 예를 들어, 지점간 프로그래밍에서는 대기열 연결 팩토리와 대기열 대상을 사용할 수 있습니다. 마찬가지로 게시 및 가입 프로그래밍에서는 주제 연결 팩토리와 주제 대상을 사용할 수 있습니다. 불특정 연결 팩토리와 대상 관리 대상 객체 유형도 사용할 수 있으며, 분산 트랜잭션을 지원하는 연결 팩토리 유형도 마찬가지입니다(지원되는 모든 유형은 표 1-1 참조).

> 관리 대상 객체의 속성은 속성-값 쌍을 사용해서 지정합니다. 다음 절에서는 이런 속성에 대해 설명합니다.

> ### 연결 팩토리 관리 대상 객체 속성

> 연결 팩토리(및 XA 연결 팩토리) 관리 대상 객체에는 표 7-3에 나열된 것과 같은 속성이 있습니다. 여기에서 주로 고려할 속성은 클라이언트가 연결을 설정할 브로커를 지정할 때 사용하는 imqAddressList입니다. "연결 팩토리 추가" 절에서는 객체 저장소에 연결 팩토리 관리 대상 객체를 추가할 때 속성을 지정하는 방법을 설명합니다.

> 연결 팩토리 속성과 그 사용 방법에 대한 자세한 설명은 Message Queue Java Client Developer's Guide와 JavaDoc API 설명서에서 Message Queue 클래스 com.sun.messaging.ConnectionConfiguration 부분을 참조하십시오.

> 표 7-3 연결 팩토리 관리 대상 객체 속성

> 속성/등록 정보 이름 | 유형 | 기본값
> --- | --- | ---
> imqAckOnAcknowledge | 문자열 | 없음
> imqAckOnProduce | 문자열 | 없음
> imqAckTimeout | 문자열 | 0밀리초
> imqAddressList | 문자열 | 없음
> imqAddressListIterations | 정수 | 1
> imqAddressListBehavior | 문자열 | PRIORITY
> imqBrokerHostName (Message Queue 3.0) | 문자열 | localhost
> imqBrokerHostPort (Message Queue 3.0) | 정수 | 7676
> imqBrokerServicePort (Message Queue 3.0) | 정수 | 0
> imqConfiguredClientID | 문자열 | 없음
> imqConnectionFlowCount | 정수 | 100
> imqConnectionFlowLimit | 정수 | 1000
> imqConnectionFlowLimitEnabled | 부울 | false
> imqConnectionType (Message Queue 3.0) | 문자열 | TCP
> imqConnectionURL (Message Queue 3.0) | 문자열 | http://localhost/imq/ tunnel
> imqConsumerFlowLimit | 정수 | 1000
> imqConsumerFlowThreshold | 정수 | 50
> imqDefaultPassword | 문자열 | guest
> imqDefaultUsername | 문자열 | guest
> imqDisableSetClientID | 부울 | false
> imqJMSDeliveryMode | 정수 | 2 (지속성)
> imqJMSExpiration | Long | 0 (만료되지 않음)
> imqJMSPriority | 정수 | 4 (일반)
> imqLoadMaxToServerSession | 부울 | true
> imqOverrideJMSDeliveryMode | 부울 | false
> imqOverrideJMSExpiration | 부울 | false
> imqOverrideJMSHeadersTo TemporaryDestinations | 부울 | false
> imqOverrideJMSPriority | 부울 | false
> imqQueueBrowserMaxMessages PerRetrieve | 정수 | 1000
> imqQueueBrowserRetrieveTimeout | Long | 60,000 (밀리초)
> imqReconnectAttempts | 정수 | 0
> imqReconnectEnabled | 부울 | false
> imqReconnectInterval | Long | 3000 (밀리초)
> imqSetJMSXAppID | 부울 | false
> imqSetJMSXConsumerTXID | 부울 | false
> imqSetJMSXProducerTXID | 부울 | false
> imqSetJMSXRcvTimestamp | 부울 | false
> imqSetJMSXUserID | 부울 | false
> imqSSLIsHostTrusted (Message Queue 3.0) | 부울 | true

> ### 대상 관리 대상 객체 속성

> 물리적 주제 또는 대기열 대상을 나타내는 대상 관리 대상 객체는 표 7-4에 나열된 것과 같은 속성을 갖습니다. "주제 또는 대기열 추가" 절에서는 객체 저장소에 대상 관리 대상 객체를 추가할 때 이런 속성을 지정하는 방법을 설명합니다.

> 여기에서 주로 고려해야 할 속성은 imqDestinationName입니다. 이 속성은 주제 또는 대기열 관리 대상 객체에 해당하는 물리적 대상에 지정하는 이름입니다. 대상에 설명을 입력해 두면 여러 응용 프로그램을 지원하기 위해 만드는 다른 대상과 구분하기가 쉽습니다.

> 자세한 내용은 JavaDoc API 설명서에서 Message Queue 클래스 com.sun.messaging.DestinationConfiguration 부분을 참조하십시오.

> 표 7-4 대상 관리 대상 객체 속성

> 속성/등록 정보 이름 | 유형 | 기본값
> --- | --- | ---
> imqDestinationDescription | 문자열 | 대상 객체의 설명
> imqDestinationName | 문자열1 | Untitled_Destination_Object

> 1대상 이름은 영문자와 숫자만 포함할 수 있으며(공백 없음) 영문자 또는 "_" 문자나 "$" 문자로 시작해야 합니다.

> ##

> 객체 관리자 유틸리티(imqobjmgr)

> 객체 관리자 유틸리티를 사용하면 Message Queue 관리 대상 객체를 만들고 관리할 수 있습니다. 이 절에서는 기본 imqobjmgr 명령 구문을 설명하고, 하위 명령 목록을 제공하고, imqobjmgr 명령 옵션을 요약합니다. 다음 절에서는 imqobjmgr 하위 명령을 사용하여 특정 작업을 수행하는 방법에 대해 설명합니다.

> ### imqobjmgr 명령 구문

> imqdbmgr 명령의 일반 구문은 다음과 같습니다.

> imqobjmgr subcommand [options]
> imqobjmgr -h|H
> imqobjmgr -v

> -v, -h 또는 -H 옵션을 지정하는 경우 명령줄에 지정된 하위 명령이 실행되지 않습니다. 예를 들어, 다음 명령을 입력하면 버전 정보는 표시되지만 list 하위 명령은 실행되지 않습니다.

> imqobjmgr list -v

> ### imqobjmgr 하위 명령

> 객체 관리자 유틸리티(imqobjmgr)에는 표 7-5에 나열된 하위 명령이 포함되어 있습니다.

> 표 7-5 imqobjmgr 하위 명령

> 하위 명령 | 설명
> --- | ---
> add | 객체 저장소에 관리 대상 객체를 추가합니다.
> delete | 객체 저장소에서 관리 대상 객체를 삭제합니다.
> list | 객체 저장소에 있는 관리 대상 객체를 나열합니다.
> query | 지정한 관리 대상 객체에 대한 정보를 표시합니다.
> update | 객체 저장소에 있는 기존 관리 대상 객체를 수정합니다.

> ### imqobjmgr 명령 옵션 요약

> 표 7-6에는 imqobjmgr 명령의 옵션이 나열되어 있습니다. 사용 설명은 다음에서 해당 작업 기반 절을 참조하십시오.

> 표 7-6 imqobjmgr 옵션

> 옵션 | 설명
> --- | ---
> -f | 사용자의 확인 없이 작업을 수행합니다.
> -h | 사용 도움말을 표시합니다. 명령줄에 있는 명령은 실행되지 않습니다.
> -H | 사용 도움말, 속성 목록 및 예를 표시합니다. 명령줄에 있는 명령은 실행되지 않습니다.
> -i fileName | 하위 명령 절의 일부 또는 전부를 포함하는 명령 파일 이름을 지정하며, 객체 유형, 조회 이름, 객체 속성, 객체 저장소 속성 또는 기타 옵션을 지정합니다. 보통은 객체 저장소 속성과 같은 반복 정보에 사용됩니다.
> -j attribute=value | JNDI 객체 저장소를 확인하고 액세스할 때 필요한 속성을 지정합니다. "LDAP 서버 객체 저장소" 및 "파일 시스템 객체 저장소"를 참조하십시오.
> -javahome path | Java 2와 호환할 수 있는 대체 런타임을 지정하여 사용합니다(기본값은 시스템의 런타임이나 Message Queue와 함께 제공되는 런타임 사용).
> -l lookupName | 관리 객체의 JNDI 조회 이름을 지정합니다. 이 이름은 관리 대상 객체 저장소의 컨텍스트에서 고유해야 합니다.
> -o attribute=value | 관리 객체의 속성을 지정합니다. "연결 팩토리 관리 대상 객체 속성" 및 "대상 관리 대상 객체 속성"을 참조하십시오.
> -pre | 미리 보기 모드입니다. 명령을 수행하지 않고 수행 결과를 확인합니다.
> -r read-only_state | 관리 대상 객체가 읽기 전용인지 여부를 지정합니다. true 값은 관리 대상 객체가 읽기 전용임을 나타냅니다. 클라이언트는 읽기 전용 관리 대상객체의 속성을 수정할 수 없습니다. 읽기 전용 상태는 기본적으로 false로 설정됩니다.
> -s | 비대화형 모드입니다. 출력이 표시되지 않습니다.
> -t objectType | Message Queue 관리 대상 객체의 유형을 지정합니다. q = 대기열 t = 주제 cf = 연결 팩토리 qf = 대기열 연결 팩토리 tf = 주제 연결 팩토리 xcf = XA 연결 팩토리(분산 트랜잭션) xqf = XA 대기열 연결 팩토리(분산 트랜잭션) xtf = XA 주제 연결 팩토리(분산 트랜잭션) e = SOAP 종점1
> -v | 버전 정보를 표시합니다. 명령줄에 있는 명령은 실행되지 않습니다.

> 1이 관리 대상 객체 유형은 SOAP 메시지 지원에 사용됩니다(Message Queue Java Client Developer's Guide 참조).

> 다음 절에서는 imqobjmgr 하위 명령을 사용해서 작업할 때 제공해야 하는 정보에 대해 설명합니다.

> ### 필요한 정보

> 관리 대상 객체와 관련된 대부분의 작업을 수행할 때 imqobjmgr 하위 명령의 옵션으로 다음 정보를 지정해야 합니다.

> - 관리 대상 객체 유형:

> 허용되는 유형은 표 7-6에 나와 있습니다.

> - 관리 대상 객체의 JNDI 조회 이름:

> 클라이언트 코드에서 객체 저장소에 있는 관리 대상 객체를 참조할 때(JNDI 사용) 사용되는 논리적 이름입니다.

> - 관리 대상 객체 속성(특히 add 및 update 하위 명령에서 필요):
> - 대상의 경우: 브로커에 있는 물리적 대상의 이름. imqcmd create dst 하위 명령의 -n 옵션으로 지정했던 이름입니다. 이름을 지정하지 않으면 기본 이름인 Untitled_Destination_Object가 사용됩니다.
> - 연결 팩토리의 경우: 가장 많이 사용하는 속성은 클라이언트가 연결을 시도할 하나 이상의 메시지 서버 주소를 지정하는 주소 목록(imqAddressList). 이 정보를 지정하지 않으면 로컬 호스트와 기본 포트 번호(7676)를 사용합니다. 즉 클라이언트는 로컬 호스트의 포트 7676에 있는 브로커에 연결을 시도합니다. "연결 팩토리 추가" 절에서는 객체 속성을 지정하는 방법에 대해 설명합니다.

> 추가 속성에 대한 내용은 "연결 팩토리 관리 대상 객체 속성"을 참조하십시오.

> - 객체 저장소 속성:

> 이 정보는 파일 시스템 저장소 또는 LDAP 서버 중 어느 것을 사용하는지에 따라 달라지지만 다음 속성을 포함해야 합니다.

> - JNDI 구현 유형(initial context 속성). 예를 들어, 파일 시스템 또는 LDAP입니다.
> - 객체 저장소의 관리 대상 객체 위치(공급자 URL 속성), 즉 "폴더"
> - 객체 저장소 액세스에 필요한 사용자 아이디, 비밀번호, 권한 부여 유형(있는 경우)

> 객체 저장소 속성에 대한 자세한 내용은 "LDAP 서버 객체 저장소" 및 "파일 시스템 객체 저장소"를 참조하십시오.

> ### 명령 파일 사용

> imqobjmgr 명령을 사용하면 imqobjmgr 하위 명령 절의 일부 또는 전부에 Java 등록 정보 파일 구문을 사용하는 명령 파일의 이름을 지정할 수 있습니다.

> 객체 관리자 유틸리티(imqobjmgr)에 명령 파일을 사용하면 여러 imqobjmgr 실행에서 동일하게 사용되면서 입력할 내용이 많은 객체 저장소 속성을 지정할 때 유용합니다. 명령 파일을 사용하면 명령줄에 허용된 최대 문자 수를 초과하는 상황을 방지할 수도 있습니다.

> imqobjmgr 명령 파일의 일반 구문은 다음과 같습니다(버전 등록 정보는 Message Queue 제품이 아니라 명령 파일의 버전을 나타내며(명령줄 옵션이 아님), 그 값을 2.0으로 설정해야 함).

> version=2.0
> cmdtype=[ add | delete | list | query | update ]
> obj.type=[ q | t | qf | tf | cf | xqf | xtf | xcf | e ]
> obj.lookupName=lookup Name
> obj.attrs.objAttrName1=value1
> obj.attrs.objAttrName2=value2
> obj.attrs.objAttrNameN=valueN
> ...
> objstore.attrs.objStoreAttrName1=value1
> objstore.attrs.objStoreAttrName2=value2
> objstore.attrs.objStoreAttrNameN=valueN
> ...

> 아래에서는 imqobjmgr 명령을 예로 들어 명령 파일의 사용 방법을 설명합니다.

> imqobjmgr add
> -t qf
> -l "cn=myQCF"
> -o "imqAddressList=mq://foo:777/jms"
> -j "java.naming.factory.initial=
> com.sun.jndi.ldap.LdapCtxFactory"
> -j "java.naming.provider.url=
> ldap://mydomain.com:389/o=imq"
> -j "java.naming.security.principal=
> uid=fooUser, ou=People, o=imq"
> -j "java.naming.security.credentials=fooPasswd"
> -j "java.naming.security.authentication=simple"

> 이 명령은 다음과 같은 내용을 가진 MyCmdFile과 같은 파일에 캡슐화할 수 있습니다.

> version=2.0
> cmdtype=add
> obj.type=qf
> obj.lookupName=cn=myQCF
> obj.attrs.imqAddressList=mq://foo:777/jms
> objstore.attrs.java.naming.factory.initial=\
> com.sun.jndi.ldap.LdapCtxFactory
> objstore.attrs.java.naming.provider.url=\
> ldap://mydomain.com:389/o=imq
> objstore.attrs.java.naming.security.principal=\
> uid=fooUser, ou=People, o=imq
> objstore.attrs.java.naming.security.credentials=fooPasswd
> objstore.attrs.java.naming.security.authentication=simple

> 그리고 -i 옵션을 사용하면 이 파일을 객체 관리자 유틸리티(imqobjmgr)로 전달할 수 있습니다.

> imqobjmgr -i MyCmdFile

> 명령 파일에 몇 가지 옵션을 지정하고 명령줄을 사용해서 또 다른 옵션을 지정할 수도 있습니다. 이 경우 하위 명령 절 중 유틸리티가 실행될 때마다 동일하게 유지되는 부분을 지정하는 데 명령 파일을 사용할 수 있습니다. 예를 들어, 다음 명령은 관리 대상 객체의 저장 위치를 제외하고 연결 팩토리 관리 대상 객체를 추가할 때 필요한 모든 옵션을 지정합니다.

> imqobjmgr add
> -t qf
> -l "cn=myQCF"
> -o "imqAddressList=mq://foo:777/jms"
> -i MyCmdFile

> 이 경우 MyCmdFile 파일에는 다음과 같은 정의가 포함됩니다.

> version=2.0
> objstore.attrs.java.naming.factory.initial=\
> com.sun.jndi.ldap.LdapCtxFactory
> objstore.attrs.java.naming.provider.url=\
> ldap://mydomain.com:389/o=imq
> objstore.attrs.java.naming.security.principal=\
> uid=fooUser, ou=People, o=imq
> objstore.attrs.java.naming.security.credentials=fooPasswd
> objstore.attrs.java.naming.security.authentication=simple

> 다음 위치에서 명령 파일의 예를 추가로 확인할 수 있습니다.

> IMQ_HOME/demo/imqobjmgr

> ##

> 관리 대상 객체 추가 및 삭제

> 이 절에서는 연결 팩토리 및 주제 또는 대기열 대상의 관리 대상 객체를 객체 저장소에 추가하는 방법을 설명합니다.

> 주 | 객체 관리자 유틸리티(imqobjmgr)는 Message Queue 관리 대상 객체만을 나열하고 표시합니다. 객체 저장소에 추가할 관리 대상 객체와 동일한 조회 이름을 가진 비 Message Queue 객체를 포함해야 하는 경우에 이 객체를 추가하려고 하면 오류 메시지가 표시됩니다.

> ### 연결 팩토리 추가

> 클라이언트 응용 프로그램에서 브로커에 대한 연결을 설정할 수 있게 하려면 클라이언트 응용 프로그램에서 원하는 연결 유형(주제 연결 팩토리 또는 대기열 연결 팩토리)을 나타내는 관리 대상 객체를 추가합니다.

> 대기열 연결 팩토리를 추가하려면 다음과 같은 명령을 사용합니다.

> imqobjmgr add
> -t qf
> -l "cn=myQCF"
> -o "imqAddressList=mq://myHost:7272/jms"
> -j "java.naming.factoryinitial=
> com.sun.jndi.ldap.LdapCtxFactory"
> -j "java.naming.provider.url=ldap://mydomain.com:389/o=imq"
> -j "java.naming.security.principal=
> uid=fooUser, ou=People, o=imq"
> -j "java.naming.security.credentials=fooPasswd"
> -j "java.naming.security.authentication=simple"

> 앞의 명령은 조회 이름이 cn=myQCF이고, myHost에서 실행되며 포트 7272를 수신하는 브로커에 연결되는 관리 대상 객체를 만듭니다. 관리 대상 객체는 LDAP 서버에 저장됩니다. imqobjmgr 명령의 인수로 명령 파일을 지정해도 같은 결과를 얻을 수 있습니다. 자세한 내용은 "명령 파일 사용"을 참조하십시오.

> 주 | 이름 지정 규약: LDAP 서버를 사용하여 관리 대상 객체를 저장할 경우 위 예에서처럼 접두어 "cn="이 있는 조회 이름을 지정해야 합니다(cn=myQCF). -l 옵션을 사용하여 조회 이름을 지정합니다. 파일 시스템 객체 저장소를 사용하는 경우 cn 접두어를 사용할 필요가 없습니다. 그러나 "/"가 포함된 조회 이름은 사용하지 마십시오. 표 7-7을 참조하십시오.

> 표 7-7 이름 지정 규약 예

> 객체 저장소 유형 | 올바른 이름 | 잘못된 이름
> --- | --- | ---
> LDAP 서버 | cn=myQCF | myQCF
> 파일 시스템 | myTopic | myObjects/myTopic

> ### 주제 또는 대기열 추가

> 클라이언트 응용 프로그램에서 브로커의 물리적 대상에 액세스할 수 있게 하려면 이 대상에 해당하는 관리 대상객체를 객체 저장소에 추가합니다.

> 객체 저장소에 해당 관리 대상 객체를 추가하기 전에 물리적 대상을 먼저 만드는 것이 좋습니다. 명령 유틸리티(imqcmd)를 사용하여 브로커에 객체 저장소의 대상 관리 대상 객체에 해당하는 물리적 위치를 만듭니다. 물리적 대상을 만드는 자세한 내용은 "연결 정보 얻기"를 참조하십시오.

> 다음 명령은 조회 이름이 myTopic이고 물리적 대상 이름이 TestTopic인 주제 대상에 해당하는 관리 대상 객체를 추가합니다. 관리 객체는 LDAP 서버에 저장됩니다.

> imqobjmgr add
> -t t
> -l "cn=myTopic"
> -o "imqDestinationName=TestTopic"
> -j "java.naming.factory.initial=
> com.sun.jndi.ldap.LdapCtxFactory"
> -j "java.naming.provider.url=
> ldap://mydomain.com:389/o=imq"
> -j "java.naming.security.principal=
> uid=fooUser, ou=People, o=imq"
> -j "java.naming.security.credentials=fooPasswd"
> -j "java.naming.security.authentication=simple"

> 같은 명령이지만 관리 대상 객체만 Solaris 파일 시스템에 저장됩니다.

> imqobjmgr add
> -t t
> -l "cn=myTopic"
> -o "imqDestinationName=TestTopic"
> -j "java.naming.factory.initial=
> com.sun.jndi.fscontext.RefFSContextFactory"
> -j "java.naming.provider.url=
> file:///home/foo/imq_admin_objects"

> 예를 들어, LDAP 서버 사례에서 명령 파일 MyCmdFile을 사용하여 하위 명령 절을 지정할 수 있습니다. 파일에는 다음과 같은 텍스트가 포함됩니다.

> version=2.0
> cmdtype=add
> obj.type=t
> obj.lookupName=cn=myTopic
> obj.attrs.imqDestinationName=TestTopic
> objstore.attrs.java.naming.factory.initial=
> com.sun.jndi.fscontext.RefFSContextFactory
> objstore.attrs.java.naming.provider.url=
> file:///home/foo/imq_admin_objects
> objstore.attrs.java.naming.security.principal=
> uid=fooUser, ou=People, o=imq
> objstore.attrs.java.naming.security.credentials=fooPasswd
> objstore.attrs.java.naming.security.authentication=simple

> -i 옵션을 사용해서 해당 파일을 imqobjmgr 명령에 전달합니다.

> imqobjmgr -i MyCmdFile

> 주 | LDAP 서버를 사용하여 관리 대상 객체를 저장할 경우 위 예에서처럼 접두어 "cn="이 있는 조회 이름을 지정해야 합니다. -l 옵션을 사용하여 조회 이름을 지정합니다. 파일 시스템 객체 저장소를 사용하는 경우 이 접두어를 사용하지 않아도 됩니다.

> -t 옵션에 q를 지정한다는 점만 제외하면 대기열 객체를 추가하는 것도 이와 같습니다.

> ### 관리 대상 객체 삭제

> 관리 대상 객체를 삭제하려면 delete 하위 명령을 사용합니다. 객체의 조회 이름과 유형, 위치를 지정해야 합니다.

> 다음 명령은 조회 이름이 cn=myTopic이고 LDAP 서버에 저장되는 주제의 관리 대상 객체를 삭제합니다.

> imqobjmgr delete
> -t t
> -l "cn=myTopic"
> -j "java.naming.factory.initial=
> com.sun.jndi.ldap.LdapCtxFactory"
> -j "java.naming.provider.url=
> ldap://mydomain.com:389/o=imq"
> -j "java.naming.security.principal=
> uid=fooUser, ou=People, o=imq"
> -j "java.naming.security.credentials=fooPasswd"
> -j "java.naming.security.authentication=simple"

> ##

> 정보 얻기

> 객체 저장소에 있는 관리 대상 객체를 나열하고 개별 객체에 대한 정보를 표시하려면 list와 query 하위 명령을 사용합니다.

> ### 관리 대상 객체 나열

> 모든 관리 대상 객체의 목록을 보거나 특정 유형에 해당하는 모든 관리 대상 객체의 목록을 보려면 list 하위 명령을 사용합니다. 다음 샘플 코드에서는 관리 객체가 LDAP 서버에 저장되어 있다고 가정합니다.

> 다음 명령은 모든 객체를 나열합니다.

> imqobjmgr list
> -j "java.naming.factory.initial=
> com.sun.jndi.ldap.LdapCtxFactory"
> -j "java.naming.provider.url=
> ldap://mydomain.com:389/o=imq"
> -j "java.naming.security.principal=
> uid=fooUser, ou=People, o=imq"
> -j "java.naming.security.credentials=fooPasswd"
> -j "java.naming.security.authentication=simple"

> 다음 명령은 queue 유형의 모든 객체를 나열합니다.

> imqobjmgr list
> -t q
> -j "java.naming.factory.initial=
> com.sun.jndi.ldap.LdapCtxFactory"
> -j "java.naming.provider.url=
> ldap://mydomain.com:389/o=imq"
> -j "java.naming.security.principal=
> uid=fooUser, ou=People, o=imq"
> -j "java.naming.security.credentials=fooPasswd"
> -j "java.naming.security.authentication=simple"

> ### 단일 객체 관련 정보

> 특정 관리 대상 객체에 대한 정보를 얻으려면 query 하위 명령을 사용합니다. 객체의 조회 이름과 관리 대상 객체를 포함하는 객체 저장소의 속성(초기 컨텍스트, 위치 등)을 지정해야 합니다.

> 다음 예에서는 query 하위 명령을 사용하여 조회 이름이 cn=myTopic인 객체에 관련된 정보를 표시합니다.

> imqobjmgr query
> -l "cn=myTopic"
> -j "java.naming.factory.initial=
> com.sun.jndi.ldap.LdapCtxFactory"
> -j "java.naming.provider.url=
> ldap://mydomain.com:389/o=imq"
> -j "java.naming.security.principal=
> uid=fooUser, ou=People, o=imq"
> -j "java.naming.security.credentials=fooPasswd"
> -j "java.naming.security.authentication=simple"

> ##

> 관리 대상 객체 업데이트

> 관리 대상 객체의 속성을 수정하려면 update 명령을 사용합니다. 조회 이름과 객체 위치를 지정해야 합니다. 속성 값을 수정하려면 -o 옵션을 사용합니다.

> 이 명령은 주제 연결 팩토리를 나타내는 관리 대상 객체의 속성을 변경합니다.

> imqobjmgr update
> -t tf
> -l "cn=MyTCF"
> -o imqReconnectAttempts=3
> -j "java.naming.factory.initial=
> com.sun.jndi.ldap.LdapCtxFactory"
> -j "java.naming.provider.url=
> ldap://mydomain.com:389/o=imq"
> -j "java.naming.security.principal=
> uid=fooUser, ou=People, o=imq"
> -j "java.naming.security.credentials=fooPasswd"
> -j "java.naming.security.authentication=simple"

> 이전 목차 색인 다음

> Copyright 2004 Sun Microsystems, Inc. 모든 권리는 저작권자의 소유입니다.