JMS 노드 문제점 해결

이 절에는 JMS 노드의 문제점을 해결하는 데 도움이 되는 정보가 있습니다.

오류가 발생하는 모든 경우에서, 근본적인 원인이 JMS 제공자가 전달한 JMSException인 경우, 브로커 bip 이벤트 메시지에는 진단을 돕기 위한 JMSException의 텍스트 메시지가 포함됩니다.

잘못 형식화된 메시지 관리

JMSInput 노드가 메시지를 처리할 수 없거나 전역 트랜잭션의 일부로 롤백되지 않은 경우, 메시지는 소스 목적지로 백아웃됩니다. 메시지는 JMSInput 노드로 다시 전달됩니다.

잘못 형성된 메시지로 인해 올바른 메시지 처리가 인터럽트되는 일이 없도록 하기 위해 다음과 같이 노드 등록 정보를 구성할 수 있습니다.

백아웃 목적지 JMS 메시지 등록 정보 JMSX_DeliveryCount(JMS 제공자가 설정한)가 백아웃 임계값을 초과할 경우 백아웃된 메시지를 라우트하는 JMS 목적지입니다.

JMS 목적지는 노드에 사용되는 메시지 모델에 적용 가능해야 합니다. 예를 들어, subscription 토픽을 노드에 구성한 경우에는 JMS 목적지도 토픽이어야 합니다.

백아웃 임계값 백아웃 목적지로 송신되는 메시지를 제어하는 정수값입니다. 임계값 3JMSX_DeliveryCount 등록 정보의 값이 3을 초과하는 메시지를 JMSInput 노드가 수신할 경우 메시지가 백아웃 목적지로 송신되고 소스 목적지에서는 제거됨을 의미합니다.

전체적으로 통합 트랜잭션을 사용할 경우의 문제점 진단

브로커 서비스 추적 외에, JMSInput 또는 JMSOutput 노드가 전역 메시지 플로우 트랜잭션에 참여할 때 발생할 수 있는 문제점을 진단할 수 있도록 또 다른 추적 로그가 제공됩니다. 즉, 메시지 플로우에 있는 하나 이상의 JMSInput 또는 JMSOutput 노드에 대해 트랜잭션 모드 등록 정보가 전역으로 설정되고 메시지 플로우 속성 통합 트랜잭션yes로 설정되어 있습니다.

추적 로그를 캡처하려면 다음 단계를 완료하십시오.
  1. 브로커 큐 관리자에 사용 가능한 XAJMS_TRACEFILE 환경 변수를 정의하십시오.
  2. 환경 변수의 값을 설정하십시오. 이 값은 추적 로그의 위치 및 파일 이름을 표시하는 문자열이어야 합니다. 예를 들어, windows에서 변수는 다음과 같이 구성할 수 있습니다.
    XAJMS_TRACEFILE = c:\JMSSwitchLog
  3. 브로커 큐 관리자가 시작될 때 브로커 큐 관리자는 복구 단계를 수행하여 JMS 제공자가 불확실하다고 간주하는 이전 브로커 트랜잭션을 해석합니다. 이 큐 관리자 프로세스는 이 단계에서 두 개의 추적 로그를 출력합니다. 두 개의 추적 로그는 다음과 같습니다.
    • <XAJMS_TRACEFILE value><PID>.txt. 여기서 PID는 큐 관리자 시작 프로세스의 프로세스 ID입니다. 이 파일은 브로커의 JMSSwitch 라이브러리에서 생성됩니다. 자세한 정보는 JMS 트랜잭션성을 참조하십시오.

      변수에 위의 예제 값을 사용하면 JMSSwitchLog2596.txt 파일이 생성됩니다. 큐 관리자 시작 프로세스 ID는 2596이었습니다.

    • JMS 제공자에 연결하는 브로커 복구 구성요소에 의해 생성되는 <XAJMS_TRACEFILE><XARecoveryTrace>.txt
  4. 브로커의 큐 관리자가 복구를 완료하고 나면, 브로커가 시작되어 <XAJMS_TRACEFILE value><PID>.txt라고 하는 파일을 작성합니다. 여기서 PID는 큐 관리자 시작 프로세스의 프로세스 ID입니다. 이 파일은 브로커의 JMSSwitch 라이브러리에서 생성됩니다. 자세한 정보는 JMS 트랜잭션성을 참조하십시오.
이 추적 파일들에 대해서는 임시 형식화가 필요하지 않습니다.

이는 Z/OS에 적용할 수 없습니다.

JNDI 관리 오브젝트 문제점

문제점 설명: JMSInput 또는 JMSOutput 노드는 연결 팩토리 또는 JMS 목적지와 같은 JNDI 관리 오브젝트나 초기 컨텍스트 팩토리를 확보할 수 없으므로 bip4640 메시지가 발행됩니다.

정정 조치
  1. JNDI 바인딩이 올바르게 빌드되었고 노드에 지정된 위치에 도달할 수 있는지 확인하십시오.
  2. 노드에서 초기 컨텍스트, 연결 팩토리 이름 및 소스 큐나 목적지 큐에 대해 지정한 값이 JNDI 바인딩에 존재하는지 점검하십시오.
  3. 바인딩 위치를 일치시키기 위해 올바른 키워드가 사용되는지 확인하십시오.
    • file:/ 관리 대상 오브젝트가 .bindings 파일에서 작성된 경우
    • ldap:/ 관리 대상 오브젝트가 LDAP 디렉토리에 존재할 경우
    • iiop:/ corba를 사용하여 관리 대상 오브젝트에 액세스할 경우
  4. 바인딩이 파일을 기초로 할 경우 노드 속성에서 .bindings 파일 이름을 지정하지 마십시오.
  5. 초기 컨텍스트 팩토리 이름에 파일 경로가 포함되지 않도록 하십시오.
  6. 노드 속성에 지정된 JMS 목적지(토픽이나 소스 큐 또는 목적지 큐)가 JNDI 관리 대상 오브젝트에 존재하는지 확인하십시오.
  7. JMS 제공자 Java .jar이 분산 플랫폼이나, 브로커 LIBPATH에 정의된 고유 라이브러리와 브로커 CLASSPATH에 대해 jar이 정의된 z/OS의 브로커 공유 클래스 디렉토리에 위치되었는지 확인하십시오.
JMS 노드는 계속해서 JNDI 관리 대상 오브젝트를 확보하려고 시도합니다. 문제점을 수정하고 바인딩을 다시 빌드하십시오. JMS 노드는 자동으로 변경사항을 감지하고 시작하려고 합니다.

문제점 설명: JMSInput 또는 JMSOutput 노드는 JMS 제공자에 대해 연결할 수 없어서 bip4648 메시지를 발행합니다.

정정 조치:
  1. JMS 제공자 서버가 실행 중인지 확인하십시오. 오프 라인일 경우 시작하십시오.
  2. JMS 제공자 서버가 브로커 환경에서 사용 가능한지 확인하십시오.
  3. JMS 제공자 Java .jar이 분산 플랫폼이나, 브로커 LIBPATH에 정의된 고유 라이브러리와 브로커 CLASSPATH에 대해 jar이 정의된 z/OS의 브로커 공유 클래스 디렉토리에 위치되었는지 확인하십시오.
JMS 노드는 계속해서 JMS 제공자에 연결하려고 시도합니다. 문제점을 정정하십시오. JMS 노드는 자동으로 변경사항을 감지하고 제공자에 연결하려고 합니다.

문제점 설명: JMSInput 또는 JMSOutput 노드는 JMS 목적지를 확보할 수 없어서 bip4642 메시지를 발행합니다.

정정 조치
  1. bip 이벤트 메시지에 포함될 수 있는 JMS 예외 메시지에 설명된 문제점의 원인을 조사하십시오.
  2. 노드 속성(토픽, 소스 큐 또는 목적지 큐)에 정의된 JMS 목적지 속성의 이름이 JNDI 관리 대상 오브젝트에 올바르게 정의되었는지 점검하십시오.
  3. JMS 목적지에 대해 JMS 제공자가 사용하는 근본적인 시스템 자원이 올바르게 구성되었는지 확인하십시오.
관련 개념
JMS 트랜잭션성
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ac24877_