내재적으로 클라이언트 정보 설정

데이터베이스에서 클라이언트 정보를 추적하려면 데이터베이스 연결에서 WebSphere® Application Server 클라이언트 데이터를 전달하는 두 가지 방법 중 하나를 선택할 수 있습니다.

애플리케이션 코드 내의 com.ibm.websphere.rsadapter.WSConnection 오브젝트에서 IBM® 독점 API인 setClientInformation(Properties)를 호출하여 연결에 관한 정보를 명시적으로 전달할 것을 선택할 수 있습니다. com.ibm.websphere.rsadapter.WSConnection 오브젝트는 plugins_root/com.ibm.ws.runtime.jar 파일에 있습니다. 그러나 일부 경우에는 WebSphere Application Server가 데이터베이스 연결로 클라이언트 정보의 전달을 처리하길 원할 수 있습니다. 클라이언트 정보를 설정하는 이 메소드를 내재적이라고 합니다. 다음과 같은 이유로 내재적 메소드를 선택할 수 있습니다.
  • 사용자 애플리케이션을 독점 API로부터 자유롭게 유지하고자 합니다.
  • 애플리케이션이 CMP(Container-Managed Persistence)를 사용합니다. 이 경우에는 데이터베이스 연결에서 클라이언트 정보를 설정하기 위해 자체 API를 사용할 수 없습니다.

WebSphere Application Server 추적 기능은 내재적으로 클라이언트 정보를 설정하기 위하 기능을 제공합니다. WAS.clientinfo 추적 또는 WAS.clientinfopluslogging 추적의 두 특수 추적 그룹 중 하나를 지정하여 클라이언트 정보 전달을 사용 또는 사용 안함으로 설정할 수 있습니다.

가능한 런타임 시나리오

  • 연결 공유

    연결 공유의 경우 WebSphere Application Server는 첫 번째 확보된 연결 핸들에만 클라이언트 정보를 설정합니다. 연결 공유가 사용 가능하고 둘 이상의 getConnection 메소드가 호출되면(동일한 연결에 두 개의 핸들이 생김) 첫 번째 getConnection 호출만이 클라이언트 정보가 백엔드 데이터베이스에 전달되도록 합니다. 이 시나리오는 클라이언트 정보 전달의 명시적 프로세스에 적용되지 않습니다. 그 경우에는 모든 setClientInformation 메소드가 연결 공유와 무관하게 데이터베이스에 릴레이됩니다.

  • 내재적/명시적 공존
    클라이언트 정보 릴레이에 대한 명시적 및 내재적 프로시저를 모두 사용하는 경우 명시적으로 설정된 데이터 및 내재적으로 설정된 데이터의 일부 조합이 결합되지만 일반적으로 명시 설정이 우선합니다. 예를 들어, 애플리케이션이 클라이언트 계정 정보를 "myAccountingInfo"로 설정하는 경우 백엔드 데이터베이스로 전달되는 최종 accountingInfo 문자열은 다음 샘플 코드와 유사합니다.
    000325_WSRdbManagedConnectionImpl@1234_myAccountingInfo: 
    여기서 000325는 스레드 ID이고 WSRdbManagedConnectionImpl@1234는 WebSphere 연결 인스턴스입니다.
  • 클라이언트 정보 재설정

    클라이언트 정보를 전달하도록 애플리케이션 서버를 구성하면 연결이 풀에 리턴되지만 WAS.clientinfo 및 WAS.clientinfopluslogging 추적 메커니즘이 사용 불가능한 경우(WAS.clientinfo=all=disabled:WAS.clientinfopluslogging=all=disabled)에만 클라이언트 정보를 재설정합니다.

    그러나 명시적 경우에는 애플리케이션이 WSConnection 연결에 대해 setClientInformation(null)을 발행할 때만 재설정 조작이 수행됩니다.

WAS.clientinfo 추적

기본값으로 내재적 메커니즘이 사용 불가능합니다. WebSphere Application Server 추적 그룹 WAS.clientinfo=all=enabled를 설정하여 정적으로, 또는 애플리케이션 서버를 중지 및 시작하지 않고 동적으로 이 메커니즘을 켤 수 있습니다.

[AIX Solaris HP-UX Linux Windows][IBM i]데이터베이스 연결 시 내재적으로 수집 및 설정된 정보는 사용자 이름, 사용자 위치애플리케이션 이름으로 구성됩니다.

[z/OS]데이터베이스 연결에서 내재적으로 수집 및 설정된 정보는 스레드 ID, 사용자 이름, 사용자 위치 및 애플리케이션 이름으로 이루어져 있습니다.

중요사항: 사용자 이름과 사용자 위치는 Java™ 2 보안을 사용으로 설정하는 경우 데이터베이스 연결에서만 내재적으로 수집되고 설정될 수 있습니다.
[z/OS]스레드 ID
[z/OS]WebSphere Application Server 내에서 애플리케이션 요청의 처리를 제어하는 Java 스레드를 식별하는 8문자 16진 값입니다. 이 ID는 추적 헤더에 표시됩니다.
사용자 이름
애플리케이션 요청을 시작한 사용자의 이름입니다. 이 옵션은 수집되어 백엔드 데이터베이스(지원되는 경우)로 전달됩니다. 이 정보는 WSSecurityHelper.getFirstCaller 메소드를 호출하여 수집됩니다.
사용자 위치
셀:노드:서버 양식의 사용자 위치의 이름입니다. 이 옵션은 수집되어 백엔드 데이터베이스(해당되는 경우)로 전달됩니다. 이 정보는 WSSecurityHelper.getFirstServer 메소드를 호출하여 수집됩니다.
application name
실행 중인 애플리케이션의 이름입니다. 이 값은 Java EE Name 오브젝트로부터 getApplication 메소드의 출력입니다. 이 값은 글로벌 보안 설정에 관계 없이 수집됩니다.

WAS.clientinfopluslogging 추적

교착 상태와 같은 데이터베이스 문제점을 디버그할 때, 디버깅 노력에 도움이 될 수 있는 정보 세트가 있습니다. 이 정보는 일반적으로 WebSphere RRA(Relational Resource Adapter) 추적 및 EJB(Enterprise JavaBeans) 컨테이너 추적을 사용 가능하게 해서 확보합니다. 그러나 해당 문제점을 재생할 때 타이밍 문제가 발생하는 경우가 있습니다. 추적 정보가 너무 많으면 애플리케이션 작동이 변경되고(예: 타이밍 변경) 더 이상 문제가 발생하지 않을 수 있습니다.

이로 인해 최소한의 정보 세트만을 수집하는 새 추적 그룹이 제공됩니다. 이 추적 그룹이 WAS.clientinfopluslogging입니다. 이 기능은 WAS.clientinfo 추적처럼 연결에서 클라이언트 정보를 내재적으로 설정하고, 중요한 애플리케이션 활동을 로그 및 추적합니다. 이러한 활동은 다음과 같습니다.
  • 실행되는 SQL 문자열(예: select userId from tabl1 where id=? for update).
  • 트랜잭션의 시작, 커미트 및 롤백
  • EJB 호출(예: 작성, 제거, findByPrimaryKey).

주제 유형을 표시하는 아이콘 참조 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdat_impclientinfo
파일 이름:rdat_impclientinfo.html