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

객체 관리자 유틸리티 사용

Message Queue 객체 관리자 유틸리티(imqobjmgr)를 사용하면 관리 대상 객체를 만들고 관리할 수 있습니다. imqobjmgr 명령은 관리 대상 객체에 대한 다양한 작업을 수행하기 위해 다음과 같은 하위 명령을 제공합니다.

add

관리 대상 객체를 객체 저장소에 추가

delete

객체 저장소에서 관리 대상 객체 삭제

list

객체 저장소에 기존 관리 대상 객체 나열

query

관리 대상 객체에 대한 정보 표시

update

관리 대상 객체의 속성 수정

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

대부분의 객체 관리자 작업의 경우 imqobjmgr 명령 옵션으로 다음 정보를 지정해야 합니다.

관리 객체 추가

imqobjmgr 명령의 add 하위 명령은 연결 팩토리의 관리 대상 객체나 주제 또는 대기열 대상을 객체 저장소에 추가합니다. LDAP 객체 저장소에 저장된 관리 대상 객체에는 cn=; 접두사로 시작하는 조회 이름이 지정되어야 하며, 파일 시스템 객체 저장소의 조회 이름은 특정 접두사로 시작할 필요는 없지만 슬래시 문자(/)를 포함할 수 없습니다.


주 –

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


연결 팩토리 추가

클라이언트 응용 프로그램에서 브로커 연결을 생성할 수 있도록 하려면 생성할 연결 유형(대기열 연결 팩토리 또는 주제 연결 팩토리)에 대해 연결 팩토리 관리 대상 객체를 추가합니다. 예 8–1은 대기열 연결 팩토리(관리 대상 객체 유형 qf)를 LDAP 객체 저장소에 추가하는 명령을 보여줍니다. 객체에는 조회 이름 cn=myQCF가 지정되며 jms 연결 서비스를 사용하여 7272 포트 번호를 통해 myHost 호스트에서 실행 중인 브로커에 연결합니다.


예 8–1 연결 팩토리 추가


imqobjmgr add
   -l "cn=myQCF"
   -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=homerSimpson,ou=People,o=imq"
   -j "java.naming.security.credentials=doh"
   -j "java.naming.security.authentication=simple"
   -t qf
   -o "imqAddressList=mq://myHost:7272/jms"

대상 추가

대상을 나타내는 관리 객체를 만드는 경우 관리 객체를 객체 저장소에 추가하기 전에 먼저 물리적 대상을 만드는 것이 좋습니다. 물리적 대상 만들기에 설명한 대로 명령 유틸리티(imqcmd )를 사용하여 물리적 대상을 만듭니다.

예 8–2에 나와 있는 명령은 조회 이름 myTopic을 사용하여 주제 대상을 나타내는 LDAP 객체 저장소에 관리 대상 객체를 추가하며, 물리적 대상 이름은 physTopic입니다. 대기열 대상을 추가하는 명령도 이와 비슷하며, 관리 대상 객체 유형(-t 옵션)으로 t("주제 대상") 대신에 q("대기열 대상")를 사용하는 것이 다릅니다.


예 8–2 LDAP 객체 저장소에 대상 추가


imqobjmgr add
   -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=homerSimpson,ou=People,o=imq"
   -j "java.naming.security.credentials=doh"
   -j "java.naming.security.authentication=simple"
   -t t
   -o "imqDestinationName=physTopic"

예 8–3은 LDAP 서버 대신에 Solaris 파일 시스템에 저장된 관리 대상 객체를 사용하는 동일한 명령을 보여줍니다.


예 8–3 파일 시스템 객체 저장소에 대상 추가


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

관리 객체 삭제

객체 저장소에서 관리 대상 객체를 삭제하려면 imqobjmgr 명령의 delete 하위 명령을 사용하고 삭제할 객체의 조회 이름, 유형 및 위치를 지정합니다. 예 8–4에 표시된 명령은 위 대상 추가에서 추가된 객체를 삭제합니다.


예 8–4 관리 객체 삭제


imqobjmgr delete
   -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=homerSimpson,ou=People,o=imq"
   -j "java.naming.security.credentials=doh"
   -j "java.naming.security.authentication=simple"
   -t t

관리 객체 나열

객체 관리자의 list 하위 명령을 사용하면 객체 저장소의 모든 관리 대상 객체 또는 특정 유형의 관리 대상 객체 목록을 가져올 수 있습니다. 예 8–5는 LDAP 서버의 모든 관리 대상 객체를 나열하는 방법을 보여줍니다.


예 8–5 모든 관리 객체 나열


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=homerSimpson,ou=People,o=imq"
   -j "java.naming.security.credentials=doh"
   -j "java.naming.security.authentication=simple"

예 8–6은 모든 대기열 대상(유형 q)을 나열합니다.


예 8–6 특정 유형의 관리 객체 나열


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=homerSimpson,ou=People,o=imq"
   -j "java.naming.security.credentials=doh"
   -j "java.naming.security.authentication=simple"
   -t q

관리 객체 정보 보기

query 하위 명령은 객체의 조회 이름과 객체를 포함하는 객체 저장소의 속성을 통해 식별되는 지정된 관리 대상 객체에 대한 정보를 표시합니다. 예 8–7은 조회 이름이 cn=myTopic인 객체에 대한 정보를 표시합니다.


예 8–7 관리 객체 정보 보기


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=homerSimpson,ou=People,o=imq"
   -j "java.naming.security.credentials=doh"
   -j "java.naming.security.authentication=simple"

관리 객체 속성 수정

관리 대상 객체의 속성을 수정하려면 imqobjmgr update 하위 명령을 사용합니다. 객체의 조회 이름 및 위치를 입력하고 -o 옵션을 사용하여 새 속성 값을 지정합니다.

관리 객체 속성 수정에서는 예 8–8에서 객체 저장소에 추가된 대기열 연결 팩토리에 대한 imqReconnectAttempts 속성 값을 변경합니다.


예 8–8 관리 대상 객체 속성 수정


imqobjmgr update
   -l "cn=myQCF"
   -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=homerSimpson,ou=People,o=imq"
   -j "java.naming.security.credentials=doh"
   -j "java.naming.security.authentication=simple"
   -t qf
   -o "imqReconnectAttempts=3"

명령 파일 사용

imqobjmgr 명령에 대한 -i 옵션을 사용하면 하위 명령 절의 전체 또는 일부를 나타내기 위해 Java 등록 정보 파일 구문을 사용하는 명령 파일의 이름을 지정할 수 있습니다. 이 기능은 일반적으로 입력을 많이 해야 하거나 imqobjmgr의 여러 호출에서 동일한 내용을 입력해야 하는 객체 저장소 속성을 지정하는 데 특히 유용합니다. 명령 파일을 사용하면 명령줄에 허용되는 최대 문자 수를 초과하는 일을 방지할 수도 있습니다.

예 8–9는 객체 관리자 명령 파일의 일반 구문을 보여줍니다. version 속성은 명령줄 옵션이 아닙니다. 이 속성은 Message Queue 제품 버전이 아니라 명령 파일 자체의 버전을 참조하므로 값을 2.0으로 설정해야 합니다.


예 8–9 객체 관리자 명령 파일 구문


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

예를 들어, 대기열 연결 팩토리를 LDAP 객체 저장소에 추가한 이전의 예 8–1에서 객체 관리자 명령을 살펴보겠습니다. 이 명령을 예 8–10에 표시된 대로 명령 파일에 캡슐화할 수 있습니다. 명령 파일의 이름이 MyCmdFile이면 명령줄에서 다음 명령을 실행할 수 있습니다.

imqobjmgr -i MyCmdFile

예 8–10 명령 파일 예


version=2.0
cmdtype=add
obj.lookupName=cn=myQCF
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=homerSimpson,ou=People,o=imq
objstore.attrs.java.naming.security.credentials=doh
objstore.attrs.java.naming.security.authentication=simple
obj.type=qf
obj.attrs.imqAddressList=mq://myHost:7272/jms

명령 파일을 사용하면 나머지 부분을 명령줄에 명시적으로 제공하면서 imqobjmgr 하위 명령 절의 일부만 지정할 수도 있습니다. 예를 들어, 예 8–11에 표시된 명령 파일은 LDAP 객체 저장소의 속성 값만 지정합니다.


예 8–11 부분 명령 파일


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=homerSimpson,ou=People,o=imq
objstore.attrs.java.naming.security.credentials=doh
objstore.attrs.java.naming.security.authentication=simple

그리고 나면 이 명령 파일을 사용하여 예 8–12에 표시된 대로 나머지 옵션을 명시적으로 제공하면서 imqobjmgr 명령에 객체 저장소를 지정할 수 있습니다.


예 8–12 부분 명령 파일 사용


imqobjmgr add
   -l "cn=myQCF"
   -i MyCmdFile
   -t qf
   -o "imqAddressList=mq://myHost:7272/jms"

사용자의 플랫폼에 따라 다음 위치에서 명령 파일의 예를 추가로 확인할 수 있습니다.

Solaris:/usr/demo/imq/imqobjmgr Linux:/opt/sun/mq/examples/imqobjmgr Windows:IMQ_HOME/demo/imqobjmgr