이 주제는 다음 절을 포함합니다.
JMS 목적지에서 메시지를 수신하려면 JMSInput 노드를 사용하십시오. JMS 목적지에는 JMS 제공자와의 연결을 통해 액세스합니다. JMSInput 노드는 JMS 메시지 이용자 역할을 하며 JMS(Java Message Service) 스펙, 버전 1.1에 정의된 6개의 메시지 유형 모두를 수신할 수 있습니다. 메시지는 JMS 스펙에 설명된 메소드 호출을 사용하여 수신합니다.
JMSInput 노드는 Workbench에서 다음 아이콘으로 표시됩니다.
연결에서 JMS 제공자까지 수신되는 메시지를 핸들링하는 메시지 플로우는 항상 JMSInput 노드에서 시작해야 합니다. JMSInput 노드로 시작하는 메시지 플로우에 출력 노드를 포함시킬 경우, (사용자 정의 출력 노드를 비롯하여) 지원되는 모든 출력 노드를 사용할 수 있습니다. JMSOutput 노드는 포함할 필요가 없습니다. 그러나 JMSOutput 노드를 포함시키지 않으면 JMSMQTransform 노드를 포함시켜서 출력 노드가 예상하는 형식으로 메시지를 변환해야 합니다.
JMS 메시지를 전달하고 서브플로우로 사용할 메시지 플로우를 작성하는 경우, 표준 입력 노드를 사용할 수 없기 때문에 서브플로우에 대한 In 터미널을 작성하기 위해 첫 번째 노드로서 JMSInput 노드 인스턴스를 사용해야 합니다.
분산 플랫폼의 경우, JMS 제공자 클라이언트의 모든 고유 라이브러리와 java .jar 파일을 브로커 공유 클래스 디렉토리로 복사하십시오. 예를 들어, Windows의 경우 C:\Documents and Settings\All Users\Application Data\IBM\MQSI\shared-classes. 이로서 JMS 노드의 Java 클래스 경로가 올바르게 설정됩니다.
z/OS의 경우에는 공유 클래스 디렉토리가 없습니다. 대신 브로커 PDS(Partitioned Data Set)에 있는 BIPPROF 구성원의 클래스 경로에 각 JMS 제공자 java .jar 파일을 지정해야 합니다. 그런 다음 LIBPATH를 모든 고유 라이브러리로 갱신하고 BIPGEN JCL 작업을 브로커 ENVFILE로 전송하십시오.
JMSInput 노드 인스턴스를 메시지 플로우에 넣었으면 이 노드를 구성할 수 있습니다. 편집기 보기에서 이 노드를 마우스 오른쪽 단추로 누른 후 등록 정보를 누르십시오. 등록 정보 대화 상자에 노드의 기본 등록 정보가 표시됩니다.
정의된 디폴트 값이 없는 모든 필수 등록 정보는 등록 정보 대화 상자에서 별표(*)로 표시됩니다.
다음과 같이 JMSInput 노드를 구성하십시오.
com.sun.jndi.fscontext.RefFSContextFactory. 이 값은 WebSphere MQ JMS 제공자의 파일 기반 초기 컨텍스트 팩토리를 정의합니다.
JMS 제공자의 초기 컨텍스트 팩토리 이름을 식별하려면 JMS 제공자 문서를 참조하십시오.
위치 JNDI 바인딩 값을 입력할 때 다음 지시사항을 준수하는지 확인하십시오.
JNDI 관리 오브젝트 바인딩 파일 구성에 대한 정보는 JMS 제공자와 함께 제공된 문서를 참조하십시오.
XML, XMLNS, JMS, 및 BLOB 구문 분석기에 대해서는 메시지 세트를 공백으로 남겨 두십시오.
XML, XMLNS, JMS, , BLOB 및 구문 분석기에 대해서는 메시지 유형을 공백으로 남겨 두십시오.
XML, XMLNS, JMSMap, JMSStream, 및 BLOB 구문 분석기에 대해서는 메시지 형식을 공백으로 남겨 두십시오.
입력 노드가 응용프로그램 등록 정보를 기초로 선택하지 않도록 하려면 이 등록 정보를 공백으로 남겨 두십시오. 메시지 선택자를 구성하는 방법에 대한 설명은 JMS 메시지 선택자를 참조하십시오.
입력 노드가 JMSTimeStamp를 기초로 선택하지 않도록 하려면 이 등록 정보를 공백으로 남겨 두십시오.
입력 노드가 JMSDeliveryMode를 기초로 선택하지 않도록 하려면 이 등록 정보를 공백으로 남겨 두십시오.
메시지 우선순위의 올바른 값은 0(가장 낮음) - 9(가장 높음)입니다. 예를 들어, 5를 입력하여 우선순위가 5인 메시지를 수신할 수 있습니다. 또한 선택자를 규정할 수도 있습니다. 예를 들어, 우선순위가 4보다 큰 우선순위 메시지를 수신하려면 > 4를, 또는 우선순위 범위 4와 8사이의 우선순위 메시지를 수신하려면 BETWEEN 4 AND 8을 입력하십시오.
입력 노드가 JMSPriority를 기초로 선택하지 않도록 하려면 이 등록 정보를 공백으로 남겨 두십시오.
특정 메시지 ID를 입력하거나 조건부 선택자를 입력하십시오. 예를 들어, 메시지 ID가 WMBRK123456보다 큰 메시지를 리턴하려면 > WMBRK123456을 입력하십시오.
입력 노드가 JMSMessageID를 기초로 선택하지 않도록 하려면 이 등록 정보를 공백으로 남겨 두십시오.
JMS 제공자가 다시 전달하지 않은 메시지만 입력 노드가 승인할 경우 FALSE를 입력하십시오.
JMS 제공자가 다시 전달한 메시지만 입력 노드가 승인할 경우 TRUE를 입력하십시오.
입력 노드가 JMSRedelivered를 기초로 선택하지 않도록 하려면 이 등록 정보를 공백으로 남겨 두십시오.
특정 상관 ID를 입력하거나 조건부 문자열을 입력하십시오. 예를 들어, WMBRKABCDEFG는 상관 ID가 이 값과 일치하는 메시지를 리턴합니다.
입력 노드가 JMSCorrelationID를 기초로 선택하지 않도록 하려면 이 등록 정보를 공백으로 남겨 두십시오.
XMLNS 도메인에 대해 XMLNSC 압축 구문 분석기 사용하려면 선택란을 선택하십시오.
혼합 컨텐츠 보유 모드, 주석 보유 모드 및 처리 지시사항 보유 모드의 경우 드롭다운 상자에서 다음 선택사항을 제공합니다.
대화 상자를 닫고 등록 정보에서 작성한 모든 변경을 제거하려면 취소를 누르십시오.
수신되는 메시지마다 JMSInput 노드는 메시지를 Out 터미널로 라우트합니다. 검색에 실패하면 메시지를 재시도합니다. 재시도 임계값(노드의 BackoutThreshold 속성에 정의됨)에 도달하면 메시지가 failure 터미널로 라우트됩니다.
failure 터미널에 노드를 연결하여 이 조건을 핸들링할 수 있습니다. failure 터미널에 노드가 연결되어 있지 않으면 백아웃 목적지에 메시지가 기록됩니다. 백아웃 목적지를 제공하지 않았으면 오류 메시지가 발행되고 노드는 추가 입력 처리를 정지합니다. 오류 메시지는 bip4669입니다.
메시지 플로우에서 예외가 전달된 후 JMSInput 노드에서 메시지를 포착하면, 메시지는 catch 터미널로 라우트됩니다. catch 터미널에 노드가 연결되어 있지 않으면, 노드는 문제점이 해결되거나 백아웃 임계값에 도달할 때까지 다시 전달하기 위해 메시지를 백아웃합니다.
백아웃 목적지를 정의해야 합니다. 백아웃 목적지를 정의하지 않으면, 노드에서 bip4669 오류 메시지가 발생되고 추가 입력 처리가 정지됩니다.
메시지 플로우에 JMSInput 노드가 포함되어 있는 경우, 트랜잭션 모드에 대해 설정한 값이 메시지가 동기점 아래에 수신되는지 여부를 정의합니다.
JMS 제공자는 트랜잭션 지원을 위해 필요한 추가 jar 파일을 제공할 수 있습니다. JMS 제공자 문서를 참조하십시오. 예를 들어, 분배된(z/OS 이외) 플랫폼에서 WebSphere MQ JMS 제공자는 추가 jar 파일 com.ibm,mqetclient.jar을 제공합니다. 이 jar도 브로커 shared_classes 디렉토리에 추가해야 합니다. 이 주제에서 JMS 노드에 JMS 제공자 클라이언트 사용 가능을 참조하십시오.
<Broker Installation Path>/bin/ JMSSwitch.dll XAOpenString=<Initial Context >,<location JNDI>, <Optional> ThreadOfControl=THREAD
XAResourceManager: Name=<Jms_Provider_Name> SwitchFile=/<Broker Installation Path>/bin/ JMSSwitch.so XAOpenString=<Initial Context >,<location JNDI>, <Optional> ThreadOfControl=THREAD여기서
name은 JMS 제공자 자원 관리자를 식별하는 설치 시 정의된 이름입니다.
SwitchFile은 브로커의 bin 디렉토리에 제공되는 JMSSwitch 라이브러리의 파일 시스템 경로입니다.
선택 매개변수는 쉼표로 분리되며 위치가 지정되어 있습니다. 따라서 누락된 모든 매개변수는 쉼표로 표시해야 합니다.
<Broker Installation Path>/classes/xarecovery.jar
<Broker Installation Path>/bin
XA는 WebSphere MQ 버전 5.3, CSD12 및 WebSphere MQ 버전 6 Fix Pack 1 이전에는 브로커와 제공자 둘 다에 대해 동일한 큐 관리자를 사용할 수 없습니다.
JMS 제공자에 대한 동기점 제어는 브로커 큐 관리자의 RRS 동기점 통합으로 관리됩니다. .ini 파일을 수정할 필요는 없습니다.
다음 표에는 JMSInput 노드 터미널이 설명되어 있습니다.
터미널 | 설명 |
---|---|
Failure | 오류가 발생할 경우 메시지가 라우트될 출력 터미널. 유효성 검증 등록 정보가 설정되어 있어도 이 터미널로 전달된 메시지는 유효성이 검증되지 않습니다. |
Out | WebSphere MQ 큐에서 검색이 완료되었을 경우 메시지가 라우트될 출력 터미널. |
Catch | 예외에서 다운스트림이 전달되어 이 노드에서 포착되었을 경우 메시지가 라우트될 출력 터미널. |
다음 표에는 노드 등록 정보가 설명되어 있습니다. 앞에 M이 표시된 열은 등록 정보가 필수임을 나타내며(디폴트가 정의되지 않았을 때 값을 입력해야 하는 경우 등록 정보 대화 상자에 별표(*)로 표시됨) 앞에 C가 표시된 열은 등록 정보가 구성 가능함을 나타냅니다(메시지 플로우를 Bar 파일에 추가하여 전개할 때 값을 변경할 수 있음).
다음 표에는 JMSInput 노드의 기본 등록 정보가 설명되어 있습니다.
등록 정보 | M | C | 디폴트 | 설명 |
---|---|---|---|---|
초기 컨텍스트 팩토리 | 예 | com.sun.jndi.fscontext.RefFSContextFactory | JNDI 네임스페이스의 시작 지점입니다. JMS 응용프로그램은
JMS 제공자에 대한 연결 팩토리 및 큐 또는 토픽 오브젝트를 확보하고 찾기 위해
초기 컨텍스트를 사용합니다. 디폴트 값은 WebSphere MQ Java가 JMS 제공자로 사용될 경우 사용되는 값입니다 |
|
위치 JNDI 바인딩 | 아니오 | 바인딩 파일에 대한 시스템 경로 또는 LDAP 위치. | ||
연결 팩토리 이름 | 아니오 | JMSInput 노드가 JMS 제공자와의 연결을 작성하기 위해 사용하는 연결 팩토리의 이름. | ||
백아웃 목적지 | 아니오 | 메시지의 오류로 인해 메시지 플로우에서 메시지를 처리할 수 없을 때 JMSInput 노드에서 사용되는 목적지. | ||
백아웃 임계값 | 아니오 | 0 | 다시 전달된 입력 메시지를 백아웃 목적지에 넣는 시점을 제어하는 값. |
다음 표에는 JMSInput 노드의 고급 등록 정보가 설명되어 있습니다.
등록 정보 | M | C | 디폴트 | 설명 |
---|---|---|---|---|
트랜잭션 모드 | 예 | 아니오 | 없음 | 이 등록 정보는 들어오는 메시지가 외부 동기점이나 로컬 동기점 하에 수신되는지, 아니면 동기점 외부에서 수신되는지 여부를 판별하는 데 사용됩니다. 올바른 값은 없음, 로컬 및 전역입니다. |
다음 표에는 JMSInput 노드의 설명 등록 정보가 설명되어 있습니다.
등록 정보 | M | C | 디폴트 | 설명 |
---|---|---|---|---|
간단한 설명 | 아니오 | 아니오 | 노드에 대한 간략한 설명. | |
자세한 설명 | 아니오 | 아니오 | 메시지 플로우에서 노드의 목적을 설명하는 텍스트. |