【问题标题】:How to identify remote Type 4 JDBC workload on IBM Mainframe zos DB2如何识别 IBM Mainframe zos DB2 上的远程 Type 4 JDBC 工作负载
【发布时间】:2015-12-10 15:01:01
【问题描述】:

我需要能够识别 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

我的问题是:-

我)。可以在我的 java 客户端 jdbc 代码中设置“可能的候选人”吗?

ii)。如何设置这些“可能的候选人”?

如果我不能使用这些字段中的任何一个,那么我已经设法修改了与我的 JDBC 连接关联的clientInfo,如 jdbc 跟踪的这个 sn-p 所示

[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

在这种情况下,我修改了ClientInfo 中的ApplicationName,我想要的是自定义的初始值,例如初始值 WAS'NT "db2jcc_application" 但 "开始为 "xxxxxx_application",这可能吗?

【问题讨论】:

    标签: java jdbc db2


    【解决方案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所述:

    客户程序名称

    指定在客户端物理连接期间固定的应用程序 ID。此属性的值成为 DB2 for z/OS 服务器上的相关 ID。数据库管理员可以使用此属性将 DB2 for z/OS 服务器上的工作与客户端应用程序相关联。该属性的数据类型是字符串。最大长度为 12 个字节。如果此值为 null,则 IBM DB2 Driver for JDBC and SQLJ 提供一个值 db2jccthread-name。

    【讨论】:

    • 干得好,工作愉快....如何在 DB2 for z/OS 服务器上仔细检查相关 ID 是否已设置????
    • 啊,对不起。但也许这会有所帮助:blog.joachim-selke.de/2010/01/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    相关资源
    最近更新 更多