2013-05-10 2 views
2

У меня есть следующая идея, чтобы исследовать и выяснить, возможно ли работать. У меня есть сервер db2 в Linux-машине и два типа серверов приложений, geronimo и websphere. Я хотел бы знать, можно ли связать соединение geronimo или websphere с агентом db2. Другими словами, я хотел бы знать, какой пользователь веб-приложения запускает запрос в базе данных в любой момент. Заранее спасибо,Связь с базой данных Application Server

+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 Reference найдите «CURRENT CLIENT ...» –

ответ

0

Вы можете создать двух пользователей, один для Geronimo, и один для Websphere, оба пользователя из одной группы. Вы предоставляете привилегии группе, и оба пользователя будут иметь те же привилегии.

Затем, когда вы выдаете «список приложений», вы можете различать соединения для 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); 

Datasource

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 использует для выполнения своих запросов. – airmil

+0

Моя проблема заключается не в том, какое соединение происходит с какого сервера. Я хочу узнать, клиенты на том же сервере, который агент db2 использует для выполнения своих запросов. В одиночку это легко, как вы упоминаете. В среде Application Server все усложняется. – airmil

+0

Как вы различаете каждого клиента на сервере? Если вы можете это сделать, вы измените имя подключения на это значение, а затем вы можете различать каждый клиент на сервере и в базе данных. – AngocA

Смежные вопросы