데이터베이스에 클라이언트 정보 전달
WebSphere® Application Server API 또는 추적 함수를 사용하여 동일한 데이터 소스에서 기인된 모든 연결에 대한 고유 클라이언트 정보를 전달할 수 있습니다.
이 태스크 정보
DB2®와 같은
일부 데이터베이스는 WebSphere Application
Server 연결에서 클라이언트 정보를 추출하기 위해 데이터베이스 서버를 트리거하는
데이터 소스 사용자 정의 특성을 지원합니다. (제품이 이 기능을
지원하는지 여부 및 제품에 필요한 특성을 확인하려면 데이터베이스 문서를
참조하십시오.) 하지만 이 특성은
Application Server에 제한된 기능을 가져옴에 유의하십시오. 결과적으로
Application Server 연결 관리자는 데이터베이스에 잘못된
클라이언트 정보를 전송할 수 있는 다음과 같은 위험한 동작을 초래합니다.
- 연결 관리자는 데이터 소스에 대한 클라이언트 정보나 이 데이터 소스에서 얻은 연결을 동적으로 변경할 수 없습니다.
- 연결 관리자는 이 데이터 소스에서 얻은 모든 연결에 대한 동일한 클라이언트 정보를 설정해야 합니다. 예를 들어, ApplicationName을 데이터 소스 clientInformation 특성의 일부로 설정할 경우 이 데이터 소스의 모든 연결은 애플리케이션 이름이 동일합니다.
Application Server는 필요한 연결 관리 유연성을 제공하며, 클라이언트 정보를 전달할 두 가지 방법을 제공합니다. 두 방법 모두 동일한 데이터 소스의 상이한 데이터베이스 연결에 대한 다른 클라이언트 정보를 설정하고, 기타 연결이 아닌 일부 연결에 대한 클라이언트 정보를 설정하는 데 사용됩니다.
프로시저
예: setClientInformation(Properties) API를 사용하여 클라이언트 정보 설정
WebSphere Application Server 클라이언트 정보를 연결에 설정해서 이 API로 데이터베이스에 정보를 전달할 수 있습니다.
다음 예제 코드는 com.ibm.websphere.rsadapter.WSConnection 오브젝트에 setClientInformation(Properties)를 호출합니다.
import com.ibm.websphere.rsadapter.WSConnection;
.....
try {
InitialContext ctx = new InitialContext();
//Perform a naming service lookup to get the DataSource object.
DataSource ds = (javax.sql.DataSource)ctx.lookup("java:comp/jdbc/myDS");
}catch (Exception e) {System.out.println("got an exception during lookup: " + e);}
WSConnection conn = (WSConnection) ds.getConnection();
Properties props = new properties();
props.setProperty(WSConnection.CLIENT_ID, "user123");
props.setProperty(WSConnection.CLIENT_LOCATION, "127.0.0.1");
props.setProperty(WSConnection.CLIENT_ACCOUNTING_INFO, "accounting");
props.setProperty(WSConnection.CLIENT_APPLICATION_NAME, "appname");
props.setProperty(WSConnection.CLIENT_OTHER_INFO, "cool stuff");
conn.setClientInformation(props);
conn.close()
매개변수
props는 전달할 클라이언트 정보를
포함합니다. 가능한 값은 다음과 같습니다.
- WSConnection.CLIENT_ACCOUNTING_INFO
- WSConnection.CLIENT_LOCATION
- WSConnection.CLIENT_ID
- WSConnection.CLIENT_APPLICATION_NAME
- WSConnection.CLIENT_OTHER_INFO
- WSConnection.OTHER_CLIENT_TYPE
예외
이 API는 데이터를 설정할 때 데이터베이스가 예외를 발행하는 경우 SQL 예외를 작성합니다.