我需要能够在IBM大型机DB2 v10 zos数据库上识别Type 4 jdbc工作负载。
我们的大型机db2监视器可以过滤以下字段
SYSTEM ID
DB2 SUBSYSTEM ID
DATA SHARING GROUP
AUTHORIZATION ID
PLAN NAME
CONNECTION ID
OPERATOR ID
CORRELATION ID
DBRM/PACKAGE ID
BUFFER POOL ID
COLLECTION ID
LOCAL LOCATION
REQUESTING LOCATION
OTHER LOCATION
DATABASE.PAGESET
LOCK RESOURCE
我猜这些值很多都无法更改。
然而,这些项目似乎很可能是候选人
CONNECTION ID
CORRELATION ID
REQUESTING LOCATION
OTHER LOCATION
我的问题是: -
i)中。可以在我的java客户端jdbc代码中设置“可能的候选者”吗?
ⅱ)。我如何设置这些“可能的候选人”?
如果我不能使用这些字段中的任何一个,那么我设法修改了与我的JDBC连接相关联的clientInfo
,如jdbc trace的这个片段所示
[jcc][Time:2015-12-10-14:39:24.851][Thread:main][Connection@3b6eb2ec] getClientInfo () called
[jcc][Time:2015-12-10-14:39:24.851][Thread:main][Connection@3b6eb2ec] getClientInfo () returned {ClientUser=XXXXXX00, ApplicationName=db2jcc_application, ClientHostname=L0513039, ClientAccountingInformation=JCC04130L0513039 '}
[jcc][SystemMonitor:stop] core: 0.28737999999999997ms | network: 0.0ms | server: 0.0ms
[jcc][SystemMonitor:start]
[jcc][Time:2015-12-10-14:39:24.852][Thread:main][Connection@3b6eb2ec] setClientInfo ({ApplicationName=crsJCC_application}) called
[jcc][SystemMonitor:stop] core: 3.613203ms | network: 0.0ms | server: 0.0ms
[jcc][SystemMonitor:start]
[jcc][Time:2015-12-10-14:39:24.856][Thread:main][Connection@3b6eb2ec] getClientInfo () called
[jcc][Time:2015-12-10-14:39:24.856][Thread:main][Connection@3b6eb2ec] getClientInfo () returned {ClientUser=XXXXXX00, ApplicationName=xxxxxx_application, ClientHostname=L0513039, ClientAccountingInformation=JCC04130L0513039 '}
[jcc][SystemMonitor:stop] core: 0.24718099999999998ms | network: 0.0ms | server: 0.0ms
[jcc][Time:2015-12-10-14:39:24.857][Thread:main][Connection@3b6eb2ec] createStatement () called
[jcc][Time:2015-12-10-14:39:24.863][Thread:main][Connection@3b6eb2ec] createStatement () returned Statement@5ebec15
[jcc
在这种情况下,我修改了ApplicationName
中的ClientInfo
,我想要的是初始值是自定义的,例如初始值WAS'NT“db2jcc_application
”但“最初为”xxxxxx_application
“,这可能吗?
答案 0 :(得分:1)
使用DB2Driver,您应该可以像这样设置应用程序名称:
Properties p= new Properties();
p.put("user", "admin");
p.put("password", "secret");
p.put("clientProgramName", "xxxx_application");
Connection conn = DriverManager.getConnection(
"jdbc:db2://localhost:50000/yourdb", props);
如果您正在使用DB2DataSource,请查看this information from IBM:
com.ibm.db2.jcc.DB2DataSource ds =
new com.ibm.db2.jcc.DB2DataSource();
ds.setDriverType(4);
ds.setServerName("localhost");
ds.setPortNumber(50000);
ds.setDatabaseName("sample");
ds.setUser("username");
ds.setPassword("password");
ds.setClientProgramName("My application");
如上所述here:
clientProgramName
指定在客户端的物理连接期间固定的应用程序ID。此属性的值将成为DB2 for z / OS服务器上的关联ID 。数据库管理员可以使用此属性将DB2 for z / OS服务器上的工作与客户端应用程序相关联。此属性的数据类型是String。最大长度为12个字节。如果此值为null,则IBM DB2 Driver for JDBC和SQLJ将提供db2jccthread-name的值。