16장
관리 객체 속성 참조
이 장에서는 관리 객체의 속성에 대한 참조 정보를 제공합니다. 이 장은 다음 내용으로 구성되어 있습니다.
연결 팩토리 속성
연결 팩토리 객체의 속성은 다음 절에 설명된 범주로 분류됩니다.
연결 처리
표 16-1에는 연결 처리에 사용되는 연결 팩토리 속성이 나열되어 있습니다.
표 16-1 연결 처리에 대한 연결 팩토리 속성
|
속성
|
유형
|
기본값
|
설명
|
|
imqAddressList
|
문자열
|
기존 Message Queue 3.0 주소(있는 경우). 없는 경우에는 표 16-2의 첫 번째 항목
|
브로커 주소 목록
이 목록은 쉼표로 구분된 하나 이상의 메시지 서버 주소로 구성됩니다. 각 주소는 클라이언트가 연결할 수 있는 브로커 인스턴스의 호스트 이름, 포트 번호 및 연결 서비스를 지정하거나 나타냅니다. 주소 구문은 연결 서비스 및 포트 할당 방법에 따라 다릅니다. 자세한 내용은 아래를 참조하십시오.
|
|
imqAddressListBehavior
|
문자열
|
PRIORITY
|
서버 주소에 연결을 시도하는 순서:
PRIORITY 주소 목록에 지정된 순서
RANDOM 임의의 순서
주: 여러 클라이언트가 동일한 연결 팩토리를 공유하는 경우 임의의 연결 순서를 지정하여 모든 클라이언트가 같은 주소로 연결하는 것을 막을 수 있습니다.
|
|
imqAddressListIterations
|
정수
|
5
|
연결 설정 또는 재설정을 시도하며 주소 목록을 반복하는 횟수
값 -1은 무제한 반복을 의미합니다.
|
|
imqPingInterval
|
정수
|
30
|
클라이언트와 브로커 간 연결을 테스트하는 간격(초)
값 0 또는 -1을 설정하면 연결 테스트를 주기적으로 실행할 수 없습니다.
|
|
imqReconnectEnabled
|
부울
|
false
|
끊어진 연결을 다시 설정하시겠습니까?
|
|
imqReconnectAttempts
|
정수
|
0
|
다음 주소로 이동하기 전에 주소 목록의 각 주소에 연결 또는 재연결을 시도하는 횟수
값 -1은 무제한 연결 시도 횟수를 의미하며 연결될 때까지 첫 번째 주소에 연결하기 위해 반복 시도합니다.
|
|
imqReconnectInterval
|
긴 정수
|
3000
|
재연결 시도 간격(밀리초)
이 값은 지정된 주소에 대한 연속적인 시도와 목록의 연속적인 주소에 대해 모두 적용됩니다.
주: 값이 너무 작으면 브로커를 복구하는 시간이 충분하지 못할 수도 있습니다. 값이 너무 크면 연결 시 너무 오래 지연될 수 있습니다.
|
|
imqSSLIsHostTrusted
|
부울
|
true
|
브로커의 자체 서명한 인증서를 사용하시겠습니까?
주: 인증 기관의 서명된 인증서를 사용하려면 이 속성을 false로 설정합니다.
|
imqAddressList 속성 값은 연결할 하나 이상의 메시지 서버 주소를 지정하는 쉼표로 구분된 문자열입니다. 각 주소의 일반 구문은 다음과 같습니다.
scheme://address
여기서 scheme은 표 16-2의 첫 번째 열에 표시되는 주소 지정 체계 중 하나를 식별하며 address는 서버 주소 자체를 나타냅니다. 표의 마지막 열에 표시된 대로, 주소를 지정하는 정확한 구문은 주소 지정 체계에 따라 다릅니다.
표 16-2 메시지 서버 주소 지정 체계
|
체계
|
서비스
|
구문
|
설명
|
|
mq
|
jms 또는 ssljms
|
[hostName][:portNumber][/serviceName]
|
jms 또는 ssljms 연결 서비스에 대해 동적으로 포트를 할당합니다.
주소 목록 항목은 Message Queue 포트 매퍼의 호스트 이름 및 포트 번호를 지정합니다. 포트 매퍼 자체는 연결에 사용할 포트를 동적으로 할당합니다.
기본값:
hostName = localhost portNumber = 7676 serviceName = jms
ssljms 연결 서비스의 경우, 모든 변수를 명시적으로 지정해야 합니다.
|
|
mqtcp
|
jms
|
hostName:portNumber/jms
|
jms 연결 서비스를 사용하여 지정된 포트에 연결합니다.
포트 매퍼를 우회하고 지정된 호스트 이름 및 포트 번호로 TCP 연결을 직접 설정합니다.
|
|
mqssl
|
ssljms
|
hostName:portNumber/ssljms
|
ssljms 연결 서비스를 사용하여 지정된 포트에 연결합니다.
포트 매퍼를 우회하고 지정된 호스트 이름 및 포트 번호로 보안 SSL 연결을 직접 설정합니다.
|
|
http
|
httpjms
|
http://hostName:portNumber/contextRoot/tunnel
여러 브로커 인스턴스가 동일한 터널 서블릿을 사용하는 경우 다음 구문을 사용하여 임의로 선택된 인스턴스가 아니라 특정 브로커 인스턴스에 연결합니다.
http://hostName:portNumber/contextRoot/tunnel? ServerName=hostName:instanceName
|
httpjms 연결 서비스를 사용하여 지정된 포트에 연결합니다.
지정된 URL의 Message Queue 터널 서블릿에 HTTP 연결을 설정합니다. 브로커가 HTTP 터널 서블릿에 액세스하도록 구성해야 합니다.
|
|
https
|
httpsjms
|
https://hostName:portNumber/contextRoot/tunnel
여러 브로커 인스턴스가 동일한 터널 서블릿을 사용하는 경우 다음 구문을 사용하여 임의로 선택된 인스턴스가 아니라 특정 브로커 인스턴스에 연결합니다.
https://hostName:portNumber/contextRoot/tunnel? ServerName=hostName:instanceName
|
httpsjms 연결 서비스를 사용하여 지정된 포트에 연결합니다.
지정된 URL의 Message Queue 터널 서블릿에 보안 HTTP 연결을 설정합니다. 브로커가 HTTPS 터널 서블릿에 액세스하도록 구성해야 합니다.
|
표 16-3에서는 다양한 주소 형식의 예를 보여줍니다.
표 16-3 메시지 서버 주소 예
|
서비스
|
브로커 호스트
|
포트
|
주소 예
|
|
지정하지 않음
|
지정하지 않음
|
지정하지 않음
|
주소 없음 (mq://localHost:7676/jms)
|
|
지정하지 않음
|
지정된 호스트
|
지정하지 않음
|
myBkrHost (mq://myBkrHost:7676/jms)
|
|
지정하지 않음
|
지정하지 않음
|
지정된 포트 매퍼 포트
|
1012 (mq://localHost:1012/jms)
|
|
ssljms
|
로컬 호스트
|
표준 포트 매퍼 포트
|
mq://localHost:7676/ssljms
|
|
ssljms
|
지정된 호스트
|
표준 포트 매퍼 포트
|
mq://myBkrHost:7676/ssljms
|
|
ssljms
|
지정된 호스트
|
지정된 포트 매퍼 포트
|
mq://myBkrHost:1012/ssljms
|
|
jms
|
로컬 호스트
|
지정된 서비스 포트
|
mqtcp://localhost:1032/jms
|
|
ssljms
|
지정된 호스트
|
지정된 서비스 포트
|
mqssl://myBkrHost:1034/ssljms
|
|
httpjms
|
적용할 수 없음
|
적용할 수 없음
|
http://websrvr1:8085/imq/tunnel
|
|
httpsjms
|
적용할 수 없음
|
적용할 수 없음
|
https://websrvr2:8090/imq/tunnel
|
클라이언트 아이디
표 16-4에는 클라이언트 아이디에 대한 연결 팩토리 속성이 나열되어 있습니다.
표 16-4 클라이언트 식별에 대한 연결 팩토리 속성
|
속성
|
유형
|
기본값
|
설명
|
|
imqDefaultUsername
|
문자열
|
guest
|
브로커 인증 관련 기본 사용자 이름
|
|
imqDefaultPassword
|
문자열
|
guest
|
브로커 인증 관련 기본 비밀번호
|
|
imqConfiguredClientID
|
문자열
|
null
|
관리상 구성된 클라이언트 식별자
|
|
imqDisableSetClientID
|
부울
|
false
|
setClientID 메소드를 사용하여 클라이언트가 클라이언트 식별자를 변경하지 못하도록 방지하시겠습니까?
|
안정성 및 흐름 제어
표 16-5에는 안정성 및 흐름 제어에 사용되는 연결 팩토리 속성이 나열되어 있습니다.
표 16-5 안정성 및 흐름 제어에 대한 연결 팩토리 속성
|
속성
|
유형
|
기본값
|
설명
|
|
imqAckTimeout
|
문자열
|
0
|
예외 발생 전 브로커 확인 대기 최대 시간(밀리초)
값 0은 시간 제한이 없음(무기한 대기)을 의미합니다.
주: 경우에 따라서는 값이 너무 낮을 경우 조기 시간 초과가 발생할 수 있습니다. 예를 들어, 보안(SSL) 연결을 사용하는 LDAP 사용자 저장소에 대한 사용자의 초기 인증에는 30초 이상이 소요될 수 있습니다.
|
|
imqConnectionFlowCount
|
정수
|
100
|
측정된 일괄 처리의 페이로드 메시지 수
페이로드 메시지를 클라이언트로 전달하는 작업이 이 메시지 수 이후에 일시적으로 중단되므로 누적된 제어 메시지를 전달할 수 있습니다. 클라이언트 런타임의 알림 메시지가 도착하면 페이로드 메시지 전달이 다시 시작되어 지정된 수에 이를 때까지 계속됩니다.
값 0은 메시지 전달 측정을 사용하지 않도록 설정하므로 페이로드 메시지 트래픽이 많을 경우 Message Queue 제어 메시지가 차단될 수 있습니다.
|
|
imqConnectionFlowLimitEnabled
|
부울
|
false
|
연결 수준에서 메시지 흐름을 제한합니까?
|
|
imqConnectionFlowLimit
|
정수
|
1000
|
사용을 위해 전달 및 버퍼링할 연결당 최대 메시지 수
보류 중인 사용하지 않은 페이로드 메시지 수(imqConnectionFlowCount에서 제어하는 흐름 측정에 따름)가 이 제한을 초과하면 연결 시 메시지 전달이 중지됩니다. 보류 중인 메시지 수가 제한보다 적을 때에만 전달이 다시 시작됩니다. 따라서 보류 중인 메시지가 너무 많아서 메모리 부족이 발생하는 것을 방지할 수 있습니다.
이 속성은 imqConnectionFlowLimitEnabled가 false인 경우 무시됩니다.
|
|
imqConsumerFlowLimit
|
정수
|
100
|
사용을 위해 전달 및 버퍼링할 사용자당 최대 메시지 수
보류 중인 사용하지 않은 페이로드 메시지 수가 해당 사용자에 대해 이 제한을 초과하면 지정된 사용자로의 메시지 전달이 중지됩니다. 사용자에 대한 보류 중인 메시지 수가 imqConsumerFlowThreshold에 지정된 비율보다 낮을 때에만 전달이 다시 시작됩니다. 따라서 여러 사용자가 동일한 연결에 집중되지 않도록 함으로써 각 사용자 간에 로드 균형 조정을 향상시킬 수 있습니다.
대기열 고유의 consumerFlowLimit 속성에 대해 더 낮은 값을 설정하면 이 제한을 대체할 수 있습니다(15장, "물리적 대상 등록 정보 참조" 참조). 한 연결을 통한 모든 사용자로의 메시지 전달은 imqConnectionFlowLimit에 지정된 전체 제한에 따라 달라질 수 있습니다.
|
|
imqConsumerFlowThreshold
|
정수
|
50
|
메시지 전달을 다시 시작하려면 클라이언트 런타임에 버퍼링된 사용자당 메시지 수를 imqConsumerFlowLimit 비율보다 낮게 지정해야 합니다.
|
대기열 브라우저 및 서버 세션
표 16-6에는 대기열 찾아보기와 서버 세션에 사용되는 연결 팩토리 속성이 나열되어 있습니다.
표 16-6 대기열 브라우저 및 서버 세션에 대한 연결 팩토리 속성
|
속성
|
유형
|
기본값
|
설명
|
|
imqQueueBrowserMaxMessagesPerRetrieve
|
정수
|
1000
|
대기열 대상의 내용을 찾아볼 때 한 번에 검색할 최대 메시지 수
|
|
imqQueueBrowserRetrieveTimeout
|
Long 정수
|
60000
|
대기열 대상의 내용을 찾아볼 때 예외 발생 전 메시지 검색 대기 최대 시간(밀리초)
|
|
imqLoadMaxToServerSession
|
부울
|
true
|
최대 메시지 수를 서버 세션으로 로드합니까?
값이 false이면 클라이언트는 한 번에 하나의 메시지만 로드합니다.
이 속성은 JMS 응용 프로그램 서버 기능에만 적용됩니다.
|
표준 메시지 등록 정보 설정
표 16-7에 나열된 연결 팩토리 속성은 Message Queue 클라이언트 런타임에서 JMS(Java Message Service) 사양에 정의된 특정 표준 메시지 등록 정보를 설정할지 여부를 제어합니다.
표 16-7 표준 메시지 등록 정보에 대한 연결 팩토리 속성
|
등록 정보
|
유형
|
기본값
|
설명
|
|
imqSetJMSXUserID
|
부울
|
false
|
생성된 메시지에 대해 JMSXUserID 등록 정보(사용자가 전송하는 메시지의 아이디)를 설정합니까?
|
|
imqSetJMSXAppID
|
부울
|
false
|
생성된 메시지에 대해 JMSXAppID 등록 정보(응용 프로그램에서 전송하는 메시지의 아이디)를 설정합니까?
|
|
imqSetJMSXProducerTXID
|
부울
|
false
|
생성된 메시지에 대해 JMSXProducerTXID 등록 정보(메시지가 생성된 트랜잭션의 트랜잭션 아이디)를 설정합니까?
|
|
imqSetJMSXConsumerTXID
|
부울
|
false
|
사용한 메시지에 대해 JMSXConsumerTXID 등록 정보(메시지가 사용된 트랜잭션의 트랜잭션 아이디)를 설정합니까?
|
|
imqSetJMSXRcvTimestamp
|
부울
|
false
|
사용된 메시지에 대해 JMSXRcvTimestamp 등록 정보(메시지가 사용자에게 전달된 시간)를 설정합니까?
|
메시지 헤더 대체
표 16-8에는 JMS 메시지 헤더 필드 대체에 사용되는 연결 팩토리 속성이 나열되어 있습니다.
표 16-8 메시지 헤더 대체에 대한 연결 팩토리 속성
|
속성
|
유형
|
기본값
|
설명
|
|
imqOverrideJMSDeliveryMode
|
부울
|
false
|
클라이언트에서 설정한 전달 모드를 대체하시겠습니까?
|
|
imqJMSDeliveryMode
|
정수
|
2
|
전달 모드 대체 값:
1 비지속성
2 지속성
|
|
imqOverrideJMSExpiration
|
부울
|
false
|
클라이언트에서 설정한 만료 시간을 대체하시겠습니까?
|
|
imqJMSExpiration
|
긴 정수
|
0
|
만료 시간 대체 값(밀리초)
값 0은 무제한 만료 시간(메시지 만료 없음)을 의미합니다.
|
|
imqOverrideJMSPriority
|
부울
|
false
|
클라이언트에서 설정한 우선 순위 수준을 대체하시겠습니까?
|
|
imqJMSPriority
|
정수
|
4 (일반)
|
우선 순위 수준 대체 값 (0 ~ 9)
|
|
imqOverrideJMSHeadersToTemporaryDestinations
|
부울
|
false
|
임시 대상에 대체를 적용합니까?
|
대상 속성
표 16-9에는 대상 관리 객체에 대해 설정할 수 있는 속성이 나열되어 있습니다.
표 16-9 대상 속성
|
속성
|
유형
|
기본값
|
설명
|
|
imqDestinationName
|
문자열
|
Untitled_Destination_Object
|
물리적 대상 이름
대상 이름에는 영숫자 문자(공백 없음)만 사용할 수 있으며 영문자, 밑줄(_) 또는 달러 기호($) 문자로 시작해야 합니다. 대상 이름은 문자 mq로 시작할 수 없습니다.
|
|
imqDestinationDescription
|
문자열
|
없음
|
대상을 설명하는 문자열
|
SOAP 종점 속성
표 16-10에는 SOAP(Simple Object Access Protocol)를 사용하는 응용 프로그램의 종점 URL 구성에 사용되는 URL이 나열되어 있습니다. 자세한 내용은 Java 클라이언트용 Message Queue 개발 안내서를 참조하십시오.
표 16-10 SOAP 종점 속성
|
속성
|
유형
|
기본값
|
설명
|
|
imqSOAPEndpointList
|
문자열
|
없음
|
공백으로 구분된 메시지를 보낼 SOAP 종점을 나타내는 하나 이상의 URL 목록
각 URL은 서블릿에 연결되어 있어야 SOAP 메시지를 받아서 처리할 수 있습니다.
예를 들면 다음과 같습니다.
http://www.serv1/ http://www.serv2/
목록에서 두 개 이상의 URL을 지정하는 경우 메시지가 모든 URL로 브로드캐스트됩니다.
|
|
imqEndpointName
|
문자열
|
Untitled_Endpoint_Object
|
SOAP 종점 이름
|
|
imqEndpointDescription
|
문자열
|
없음
|
SOAP 종점을 설명하는 문자열
예를 들면 다음과 같습니다.
My endpoints for broadcast
|