Db2 数据库应用程序服务器连接关联

Db2 数据库应用程序服务器连接关联,db2,websphere,application-server,geronimo,Db2,Websphere,Application Server,Geronimo,我有以下想法来调查,看看是否可行。我在linux机器中有一个db2服务器和两种应用服务器,geronimo和websphere。我想知道是否可以将geronimo或websphere连接与db2代理相关联。 换句话说,我想知道web应用程序的哪个用户在任何给定时刻都在数据库中运行哪个查询。 提前感谢您,您可以创建两个用户,一个用于Geronimo,一个用于Websphere,这两个用户都在同一个组中。您将权限授予该组,两个用户将拥有相同的权限 然后,当您发布“列表应用程序”时,您可以区分Gero

我有以下想法来调查,看看是否可行。我在linux机器中有一个db2服务器和两种应用服务器,geronimo和websphere。我想知道是否可以将geronimo或websphere连接与db2代理相关联。 换句话说,我想知道web应用程序的哪个用户在任何给定时刻都在数据库中运行哪个查询。
提前感谢您,

您可以创建两个用户,一个用于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);
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();
数据源

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名称


我为此写了一篇博客:

也许可以使用JDBC setClientInfo()。我不知道;我不知道您的服务器将支持什么,但这可能是需要研究的:另外,在您的SQL参考中,查找“当前客户端…”我的问题不是区分哪个连接来自哪个服务器。我想找出同一台服务器上的客户机使用哪个db2代理执行查询,我的问题不是区分哪个连接来自哪个服务器。我想找出同一服务器上的客户机,db2代理正在使用哪个客户机执行查询。在单机版中,正如您所提到的,这很容易。在应用服务器环境中,事情变得更加复杂。如何区分服务器上的每个客户端?如果可以这样做,请将连接名称更改为该值,然后可以区分服务器上和数据库中的每个客户端。最简单的设置方法是ip地址,因为每个服务器运行在不同的计算机上。通常情况下,我们的想法不是同时拥有两台服务器,而是两台服务器中的任何一台,我们想知道,在这两台服务器中,是否有一台更容易找到我要查找的内容。您可以通过“应用程序Id”列中的db2列表应用程序了解连接的来源,因此关联已经完成,您无需执行任何操作。有时IP地址是十六进制格式。