JRas 메시지 및 추적 이벤트 유형
기본 JRas 메시지 및 이벤트 유형이 WebSphere® Application Server가 기본적으로 인식하는 것과 동일하지 않으므로 JRas 유형이 런타임 환경에 기본인 유형에 맵핑됩니다. 사용자 정의 필터 및 메시지 제어를 사용하여 JRas 메시지 및 추적 이벤트가 처리되는 방식을 제어할 수 있습니다.
이벤트 유형
이 태스크 및 하위 태스크에서 설명한 JRas 프레임워크는 더 이상 사용되지 않습니다. 그러나 Java™ 로깅을 사용하여 유사한 결과를 얻을 수 있습니다.
독립형 JRas 로깅 툴킷에서 정의하는 기본 메시지 및 추적 이벤트 유형은 WebSphere Application Server 런타임이 인식하는 기본 유형과 동일하지 않습니다. 대신, 기본 JRas 유형은 기본 유형에 맵핑됩니다. 이 맵핑은 플랫폼 또는 버전에 따라 다를 수 있습니다. 맵핑은 다음 섹션에서 설명합니다.
플랫폼 메시지 이벤트 유형
WebSphere Application Server 기본 유형 | JRas RASIMessageEvent 유형 |
---|---|
감사 | TYPE_INFO, TYPE_INFORMATION |
경고 | TYPE_WARN, TYPE_WARNING |
오류 | TYPE_ERR, TYPE_ERROR |
애플리케이션 개발자는
JRas에서 JRas RASIMessageEvent 유형 TYPE_INFO 또는 TYPE_INFORMATION을
사용하여 WebSphere Application Server for z/OS® 감사 추적을 발행함으로써
MVS™ WTO(운영자에게 쓰기) 메시지를 발행할 수 있습니다. WebSphere Application Server for z/OS 감사 추적은
MVS 라우트 코드 11 WTO(하드카피 WTO)로 맵핑됩니다.
플랫폼 추적 이벤트 유형
- 단순 레벨 세트를 원하는 사용자의 경우 RASITraceEvent 인터페이스는 TYPE_LEVEL1, TYPE_LEVEL2 및 TYPE_LEVEL3을 제공합니다. 구현은 이 레벨 세트에 대한 지원을 제공합니다. 레벨은 레벨 2를 사용 가능하게 하면 레벨 1도 사용 가능하게 되고 레벨 3을 사용 가능하게 하면 레벨 1과 2도 사용 가능하게 되는 계층 구조입니다.
- 함께 논리합할 수 있는 보다 복잡한 값 세트를 원하는 사용자의 경우 RASITraceEvent 인터페이스는 TYPE_API, TYPE_CALLBACK, TYPE_ENTRY_EXIT, TYPE_ERROR_EXC, TYPE_MISC_DATA, TYPE_OBJ_CREATE, TYPE_OBJ_DELETE, TYPE_PRIVATE, TYPE_PUBLIC, TYPE_STATIC 및 TYPE_SVC를 제공합니다.
추적 이벤트 유형은 다음과 같이 기본 추적 유형에 맵핑됩니다.
WebSphere Application Server 기본 유형 | JRas RASITraceEvent 레벨 유형 |
---|---|
이벤트 | TYPE_LEVEL1 |
EntryExit | TYPE_LEVEL2 |
디버그 | TYPE_LEVEL3 |
WebSphere Application Server 기본 유형 | JRas RASITraceEvent 열거 유형 |
---|---|
이벤트 | TYPE_ERROR_EXC, TYPE_SVC, TYPE_OBJ_CREATE, TYPE_OBJ_DELETE |
EntryExit | TYPE_ENTRY_EXIT, TYPE_API, TYPE_CALLBACK, TYPE_PRIVATE, TYPE_PUBLIC, TYPE_STATIC |
디버그 | TYPE_MISC_DATA |
단순화를 위해 애플리케이션 전반을 통해 둘 중 하나의 추적 유형 방법을 일관성있게 사용하는 것이 좋습니다. 레벨이 없는 유형을 사용할 경우, 각 카테고리에서 하나의 유형을 선택하고 애플리케이션 전반을 통해 일관성있게 해당 유형을 사용하여 혼동을 피하십시오.
메시지 및 추적 매개변수
- 기본
- 기본(예: int 및 long)은 오브젝트 유형의 서브클래스로 인식되지 않으며 이러한 메소드 중 하나에 직접 전달될 수 없습니다. 기본 값은 매개변수로 전달하기 전에 적절한 오브젝트 유형(Integer, Long)으로 변환되어야 합니다.
- 오브젝트
- toString 메소드는 오브젝트에서 호출되며 결과 문자열이 표시됩니다. 메시지 로깅 또는 추적 메소드로 전달된 오브젝트에 대해 toString 메소드를 적절하게 구현하십시오. toString 메소드가 비밀번호와 같은 기밀 데이터를 일반 텍스트로 표시하지 않고 무한 순환이 발생하지 않게 보장하는 것은 호출자의 책임입니다.
- Object[]
- Object[] 유형은 둘 이상의 매개변수가 메시지 로깅 또는 추적 메소드로 전달되는 경우에 제공됩니다. toString 메소드는 배열의 각 오브젝트에서 호출됩니다. 중첩된 배열은 처리되지 않습니다. 즉, 오브젝트 배열의 어떤 요소도 배열에 속하지 않습니다.
- Throwable
- Throwable 유형의 스택 추적이 검색되고 표시됩니다.
- 기본 배열
- 기본 배열(예: byte[], int[])은 오브젝트로
인식되지만, Java 코드에 의해 느슨하게 연관되어 있습니다. 일반적으로, 가능하면 기본 배열은
사용하지 마십시오. 기본 배열이 전달되면 결과를 예측할 수 없으며
전달된 배열 유형, 배열을 전달하는 데 사용된 API 및 제품의 릴리스에
따라 결과가 달라질 수 있습니다. 일관성있는
결과를 위해 사용자 코드는 메소드에 전달하기 전에 기본 배열을 사전 처리하고
일부 유형의 문자열 형식으로 형식화해야 합니다. 이러한 사전 처리가
수행되지 않으면 다음과 같은 결과가 발생할 수 있습니다.
- [B@924586a0b - 이 메시지는 위치 X에 있는 바이트 배열에 의해 해독됩니다. 이 메시지는 일반적으로 배열이 Object[] 유형의 멤버로서 전달될 때 리턴되며 byte[] 유형에서 toString 메소드 호출의 결과입니다.
- 잘못된 추적 인수: long 배열. 이 응답은 일반적으로 기본 배열이 오브젝트를 사용하는 메소드로 전달될 때 리턴됩니다.
- 01040703: 바이트 배열의 16진 표시. 이 문제점은 일반적으로 바이트 배열이 단일 오브젝트를 사용하는 메소드에 전달될 때 발생할 수 있습니다. 이 작동은 변경되기 쉬우며 신뢰할 수 없습니다.
- "1" "2": 각 요소를 정수로 변환하고 정수에서 toString 메소드를 호출하여 형성된 int[] 유형 멤버의 문자열 표시. 이 작동은 변경되기 쉬우며 신뢰할 수 없습니다.
- [Ljava.lang.Object;@9136fa0b : 오브젝트 배열. 이 응답은 일반적으로 중첩된 배열을 포함하는 배열이 전달될 때 나타납니다.
메시지 로깅 제어
- 메시지 이벤트 유형은 RASIMessageEvent 인터페이스에 정의된 메시지 이벤트 유형 중 하나여야 합니다.
- 해당 메시지 이벤트 유형의 로깅은 메시지 로거 마스크의 상태에 따라 사용으로 설정되어야 합니다.
- 메시지 이벤트 유형은 WebSphere Application Server 런타임에서 설정된 필터링 기준을 통과해야 합니다.
WebSphere Application Server 로거가 관리자 클래스로부터 확보된 경우, 마스크의 초기 설정은 모든 기본 메시지 이벤트 유형을 WebSphere Application Server 핸들러로 전달합니다. 메시지 로거 마스크의 상태를 프로그램 방식으로 설정하여 로그되는 메시지를 제어할 수 있습니다.
일부 제품 버전은 서버 프로세스를 위해 사용자 지정된 메시지 필터 레벨을 지원합니다. 이러한 필터 레벨이 설정되면 지정된 심각도 레벨의 메시지만 WebSphere Application Server에 기록됩니다. 메시지 로거의 마스크 확인을 전달하는 메시지 유형을 WebSphere Application Server에서 필터링할 수 있습니다.
추적 제어
각 제품 에디션은 추적을 사용 가능하게 하거나 사용 불가능하게 할 수 있는 메커니즘을 제공합니다. 여러 에디션이 정적 추적 기능(서버가 시작되기 전에 추적 설정 값이 지정됨), 동적 추적 기능(실행 중인 서버 프로세스에 대한 추적 설정 값이 동적으로 수정될 수 있음) 또는 둘 다 지원할 수 있습니다.
- 추적 이벤트 유형은 RASITraceEvent 인터페이스에 정의된 추적 이벤트 유형 중 하나여야 합니다.
- 해당 추적 이벤트 유형의 로깅은 추적 로거 마스크의 상태에 따라 사용으로 설정되어야 합니다.
- 추적 이벤트 유형은 WebSphere Application Server 런타임에서 설정된 필터링 기준을 통과해야 합니다.
로거가 관리자 클래스로부터 확보된 경우, 마스크의 초기 설정은 모든 추적 유형을 억제하는 것입니다. 이 규칙에 대한 예외는 WebSphere Application Server 런타임이 정적 추적 기능을 지원하고 해당 추적 로거에 대해 기본값이 아닌 시작 추적 상태가 지정된 경우입니다. 메시지 로거와 달리 WebSphere Application Server는 추적 로거의 추적 마스크 상태를 동적으로 수정할 수 있습니다. WebSphere Application Server는 RASITraceEvent 인터페이스에 정의된 값에 해당하는 추적 로거 마스크의 부분만 수정합니다. WebSphere Application Server는 사용자 정의 유형에 사용될 수 있는 마스크의 정의되지 않은 비트를 수정하지 않습니다.
일부 플랫폼에서 제공되는 동적 추적 기능이 사용된 경우, 추적 상태 변경은 Application Server 런타임과 추적 로거의 추적 마스크에 모두 반영됩니다. 사용자 코드가 RASITraceEvent 인터페이스에 정의된 값에 해당하는 추적 마스크의 비트를 프로그램 방식으로 변경하는 경우, 추적 로거의 마스크 상태와 런타임 상태는 동기화되지 않으며 예기치 않은 결과가 발생합니다. 따라서 RASITraceEvent 인터페이스에 정의된 값에 해당하는 마스크의 비트를 프로그램 방식으로 변경하는 것은 지원되지 않습니다.