2013-05-10 3 views
2

조사 할 수 있는지 알아보고 가능한지 알아 내려고합니다. 나는 리눅스 머신과 두 종류의 애플리케이션 서버 인 geronimo와 websphere를 가지고있다. geronimo 또는 websphere 연결을 db2 에이전트와 연관시킬 수 있는지 여부를 알고 싶습니다. 즉, 웹 응용 프로그램의 어느 사용자가 주어진 순간에 데이터베이스에서 어떤 쿼리를 실행하는지 알고 싶습니다. 미리 감사드립니다.데이터베이스 응용 프로그램 서버 연결 연결

+0

JDBC 것은, setClientInfo를 사용하는 것이 가능할 수를(). 나는 당신의 서버가 무엇을 지원하는지 알지 못하지만, 이것은 연구 할만한 것일 수있다 : http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm. db2.luw.apdv.java.doc % 2Fsrc % 2Ftpc % 2Fimjcc_t0052428.html –

+0

또한 SQL 참조 서에서 "CURRENT CLIENT ..."를 찾으십시오. –

답변

0

Geronimo 용과 Websphere 용으로 두 그룹의 사용자를 생성 할 수 있습니다. 그룹에 권한을 부여하면 두 사용자 모두 동일한 권한을가집니다.

그러면 'list applications'을 발행하면 Geronimo와 Websphere의 연결을 구별 할 수 있습니다.

응용 프로그램 이름을 변경하려면 Java 연결에 따라 두 가지 방법이 있습니다.

Class.forName을

Class.forName("com.ibm.db2.jcc.DB2Driver"); 
Properties props = new Properties(); 
props.put("user", "scott"); 
props.put("password", "tiger"); 
props.put("clientProgramName", "My Program 1"); 
Connection conn = DriverManager.getConnection(
"jdbc:db2://localhost:50000/sample", props); 

데이터 소스

Connection conn = null; 
DB2SimpleDataSource ds = new com.ibm.db2.jcc.DB2SimpleDataSource(); 
ds.setDriverType(4); 
ds.setServerName("localhost"); 
ds.setPortNumber(50000); 
ds.setDatabaseName("sample"); 
ds.setUser("scott"); 
ds.setPassword("tiger"); 
ds.setClientProgramName("My Application 2"); 
conn = ds.getConnection(); 

당신은 응용 프로그램 서버 이름을 검색하여 동적으로 conneciont 이름을 지정할 수 있습니다.

내가 그것에 대해 블로그에 썼다 : http://angocadb2.blogspot.fr/2012/12/nombre-de-la-conexion-java-en-db2-java.html

+0

어떤 문제점이 어떤 서버에서 오는 것인지 구별하지 못합니다. DB2 에이전트가 조회를 수행하는 데 사용하는 동일한 서 v의 클라이언트를 찾고자합니다. – airmil

+0

내 문제는 어떤 서버에서 어떤 연결이 나오는 지 구분하지 않습니다. DB2 에이전트가 조회를 수행하는 데 사용하는 동일한 서 v의 클라이언트를 찾고자합니다. 독립형에서 이것은 언급 한 것처럼 쉽습니다. Application Server 환경에서는 상황이 더욱 복잡해집니다. – airmil

+0

서버의 각 클라이언트를 어떻게 차별화합니까? 그렇게 할 수 있다면 연결 이름을 해당 값으로 변경하면 서버와 데이터베이스의 각 클라이언트를 구별 할 수 있습니다. – AngocA

관련 문제