메시지 카탈로그 작성

로컬 오류 로그에 조정된 입력 항목을 쓰려면 사용자 자신의 메시지 카탈로그를 작성하십시오.

태스크 정보

일부 오류 및 기타 상황에서는 메시지 플로우에서 발생하고 있는 것을 추적할 수 있도록 오류 로그에 정보를 쓸 것을 선택할 수 있습니다. ThrowTrace 내장 노드를 사용하여 로그에 항목을 생성하거나 사용자 고유의 노드 및 사용자 엑시트를 작성하고 사용자 정의 확장에서 로그에 항목을 쓸 수 있습니다.

다음 메시지 세트 중 하나 또는 둘 다를 쓸 수 있습니다.
  • 제품 메시지 카탈로그에서 제공되는 고정된 메시지 세트. 이 세트는 Throw 노드의 숫자 범위 (BIP3001 - BIP3049) 및 Trace 노드의 두 번째 범위 (BIP3051 - BIP3099) 를 제공합니다. 세 번째 범위(BIP2951 - BIP2999)는 ESQL문 LOG 및 THROW를 위해 제공됩니다.

    이들 메시지를 사용할 때 메시지 텍스트에 표시되는 추가 텍스트를 제공할 수도 있습니다.

  • 사용자 자신의 메시지 카탈로그에서 작성되는 사용자 고유의 메시지. 이 추가 카탈로그를 사용하여 특수한 메시지 컨텐츠를 정의할 수 있으며, 메시지를 생성하는 코드에 의해 판별되는 변수나 삽입을 포함할 수 있습니다. IBM® App Connect Enterprise 와 연동되지 않은 다른 애플리케이션과도 사용자만의 메시지 카탈로그를 공유할 수 있습니다.

THROW문을 사용하여 ESQL의 예외를 처리할 때, ESQL 코드는 현재 컴포넌트의 이름을 포함하는 추가 선행 삽입을 추가합니다. ESQL 스크립트가 제공하는 나머지 삽입이 이 선행 삽입을 뒤따릅니다. 그러므로 사용자 자신의 메시지 카탈로그를 쓸 때 이 삽입을 고려해야 합니다.

이 주제의 지시사항은 C 프로그램을 위한 메시지 카탈로그를 작성하는 방법을 설명합니다. Java™ 자원 번들을 작성하려면 Java 2플랫폼, Standard Edition에 대한 문서를 참조하십시오.

통합 노드 운영 체제에 적합한 절을 읽으십시오.

Windows 메시지 소스 빌드 및 설치

태스크 정보

Windows에서 추가 메시지 카탈로그를 DLL 파일로 작성해야 합니다. DLL 파일에는 이벤트 메시지의 정의가 들어 있으며, 이벤트 뷰어가 사용자 애플리케이션이 작성한 이벤트 메시지를 기반으로 읽을 수 있는 형식으로 이벤트 메시지를 표시할 수 있습니다. 메시지 카탈로그를 컴파일할 때 사용자가 작성한 각 이벤트 메시지 번호에 대한 기호 값을 정의하는 헤더 파일이 작성됩니다. 헤더 파일을 애플리케이션에 포함해야 합니다.

Windows 이벤트 로그 서비스에 대한 이벤트 소스를 작성하려면 다음을 수행하십시오.

프로시저

  1. 이벤트 메시지의 소스를 사용하여 메시지 컴파일러 입력 (.mc) 파일을 작성하십시오.
    Microsoft Developer Network 웹 사이트를 참조하고 .mc file 에서 이 입력 파일의 형식에 대한 세부사항을 검색하십시오.
  2. 메시지 파일을 컴파일하여 자원 컴파일러 입력 파일을 작성하십시오.
    mc -v -w -s -h c:\mymessages -r c:\mymessages mymsg.mc

    여기서 c:\mymessages는 출력 파일의 위치이며 mymsg.mc는 입력 파일의 이름입니다.

    메시지 컴파일러가 입력 .mc 파일에서 코드화되는 각 메시지 번호에 맵핑하는 기호 #defines을 포함하는 출력 헤더(.h) 파일을 생성합니다. 유틸리티 함수(예: CciLog)를 사용하는 사용자 정의 확장 소스 파일을 컴파일할 때 이 헤더 파일을 포함하여 사용자가 정의한 이벤트 메시지를 작성하십시오. 유틸리티 함수에 대한 messageNumber 인수는 출력 헤더 파일에서 해시 정의되는 적절한 값을 사용해야 합니다.

  3. 메시지 컴파일러에서 출력 파일 (.rc) 을 컴파일하여 자원 파일 (.res) 을 작성하십시오.
    RC /v output_file.rc
  4. .res 파일에서 자원 DLL 파일을 작성하십시오.
    LINK /DLL /NOENTRY resource_file.res
  5. 자원 DLL 파일의 위치를 MQSI_CONSOLE_NLSPATH 환경 변수에 추가하십시오. 예:
    set MQSI_CONSOLE_NLSPATH=%MQSI_CONSOLE_NLSPATH%;c:\messages
    작업 디렉토리에서 사용자 정의 환경 스크립트를 작성하여 이를 수행할 수 있습니다. 기본 위치는 C:\ProgramData\IBM\MQSI\Common\profiles입니다.
  6. Windows 이벤트 로그 서비스에 이벤트 소스를 설치하십시오.
    1. Windows 레지스트리 편집기를 시작하십시오.
      regedit
    2. 기존 구조 아래에 사용자 정의 확장에 대한 새 레지스트리 서브키를 작성하십시오.
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application

      애플리케이션 을 마우스 오른쪽 단추로 클릭하고 새로 작성 > 를 선택하십시오. 새 키는 Application 키 바로 아래에 생성됩니다( IBM App Connect Enterprise 키 아래가 아닙니다). 사용자 정의 확장의 유틸리티 함수에서 messageSource 에 대해 지정하는 이름 (예: CciLog) 또는 메시지 플로우에 포함한 내장 노드의 특성으로 키를 제공해야 합니다.

      이 입력 항목에 대한 다음 값을 작성하십시오.

      EventMessageFile
      사용자 메시지를 포함하기 위해 작성한 DLL 파일에 대한 완전한 경로를 포함할 이 문자열의 값을 설정하십시오. 이 입력 항목이 메시지 카탈로그를 나타냅니다.
      TypesSupported
      DWORD 값을 "7"로 설정하십시오.

Linux, UNIXz/OS 용 XPG/4 카탈로그 작성

태스크 정보

Linux®, UNIXz/OS® 시스템에서 SYSLOG 기능에 메시지가 기록됩니다. 사용자 자신의 메시지 카탈로그를 사용하려는 경우 XPG/4 메시지 카탈로그를 작성해야 합니다.

메시지 카탈로그(.cat 파일) 작성 프로세스는 사용자가 작성할 운영 체제에 따라 다릅니다. 사용자가 사용하는 명령은 대개 gencat(메시지 카탈로그 작성 또는 수정) 및 dspcat(메시지 카탈로그의 모두 또는 일부 표시)입니다. gencat 명령은 사용자의 메시지 텍스트를 포함하는 텍스트 파일을 병합하여 형식화된 카탈로그를 작성 또는 수정합니다. 텍스트 파일은 일반적으로 .msg의 파일 확장자를 갖습니다.

메시지 카탈로그의 위치를 MQSI_CONSOLE_NLSPATH 환경 변수에 추가해야 합니다. %L 및 %N을 사용하여 로케일 및 카탈로그 이름을 나타낼 수 있습니다. 예:
export MQSI_CONSOLE_NLSPATH=${MQSI_CONSOLE_NLSPATH}:${MY_INST_PATH}/messages/%L/%N:${MY_INST_PATH}/messages/En_US/%N
이 예에서, 영어 버전은 검색 경로에서 나중에 하드코드화되어 메시지가 .cat 파일이 존재하지 않는 로케일에서도 표시되도록 합니다.
.msg 파일에서 정의하는 메시지는 런타임 시에 대체되는 변수를 포함할 수 있습니다. 그런 변수는 {number} 형식이어야 하며, 여기서 {number}는 중괄호로 묶은 메시지 삽입 번호입니다. 첫 번째 메시지 삽입은 0으로 번호가 지정됩니다. 예를 들어,
1234 "MSG1234E: \ 
Syntax Error. \n 
The value '{0}' is not valid for property '{1}'.\n
Correct it and then reissue the command.\n"

한 운영 체제에서 메시지 카탈로그를 작성하는 경우, 카탈로그가 2진 인코딩되기 전에 다른 운영 체제로 이식할 수 없습니다. 그러나 동일한 .msg 파일을 다른 시스템의 gencat 명령에 대한 입력으로 사용할 수 있습니다.

운영 체제에 대한 문서에서 관련 정보를 참조하십시오. 예를 들어,

  • AIX 플랫폼 AIX®의 경우 제품 문서에서 명령 참조서 를 참조하십시오.
  • z/OS 플랫폼 z/OS의 경우, z/OS 제품 문서 온라인에서 UNIX System Services Command Reference 를 참조하십시오.

또한 미국 영어 이외의 로케일에서 메시지를 사용하려는 경우 추가 지원 로케일에 관한 정보도 검사해야 합니다.