jdbc和z / os db2

时间:2012-08-02 11:22:18

标签: java jdbc db2

有人可以解释为什么我从Java JDBC访问z / os DB2

中看到这种行为

我有一个z / os db2 v10表,有三列,两列包含uniue索引,第三列是pureXML列,它包含一个长度为1KByte的xml文档。

该表有100万行。每行都有相同的xml文档用于测试目的。

当我运行一个循环,对表进行10,000次随机读取时,每次读取总会找到一行,我的jdbc跟踪文件中显示的db2服务器时间在2ms到62,000ms之间变化

什么会导致如此广泛的响应时间?

为什么我的jdbc跟踪有核心和网络的负时间?


[jcc][SystemMonitor:start] 
[jcc][Time:2012-08-02-11:43:48.188][Thread:main][PreparedStatement@10b4b2f] executeQuery () called
[jcc][Time:2012-08-02-11:43:48.219][Thread:main][PreparedStatement@10b4b2f] executeQuery () returned com.ibm.db2.jcc.t4.j@812862
[jcc][SystemMonitor:stop] core: 22.185222ms | network: 21.831545ms | server: 2.956ms


[jcc][Time:2012-08-02-11:44:23.251][Thread:main][PreparedStatement@10b4b2f] executeQuery () called
[jcc][Time:2012-08-02-11:45:25.251][Thread:main][PreparedStatement@10b4b2f] executeQuery () returned com.ibm.db2.jcc.t4.j@68ef48
[jcc][SystemMonitor:stop] core: -3615.90705ms | network: -3616.401806ms | server: 61978.244ms

这是java / jdbc环境的详细信息


[jcc] Driver: IBM Data Server Driver for JDBC and SQLJ 4.12.79
[jcc] Compatible JRE versions: { 1.6 }
[jcc] Target server licensing restrictions: { z/OS: enabled; SQLDS: enabled; iSeries: enabled; DB2 for Unix/Windows: enabled; Cloudscape: enabled; Informix: enabled }
[jcc] Range checking enabled: true
[jcc] Bug check level: 0xff
[jcc] Default fetch size: 64
[jcc] Default isolation: 2
[jcc] Collect performance statistics: false
[jcc] No security manager detected.
[jcc] Access to package sun.io is permitted by security manager.
[jcc] JDBC 1 system property jdbc.drivers = null
[jcc] Java Runtime Environment version 1.6.0_21
[jcc] Java Runtime Environment vendor = Sun Microsystems Inc.
[jcc] Java vendor URL = http://java.sun.com/
[jcc] Java installation directory = C:\Program Files\Java\jre6
[jcc] Java Virtual Machine specification version = 1.0
[jcc] Java Virtual Machine specification vendor = Sun Microsystems Inc.
[jcc] Java Virtual Machine specification name = Java Virtual Machine Specification
[jcc] Java Virtual Machine implementation version = 17.0-b17
[jcc] Java Virtual Machine implementation vendor = Sun Microsystems Inc.
[jcc] Java Virtual Machine implementation name = Java HotSpot(TM) Client VM
[jcc] Java Runtime Environment specification version = 1.6
[jcc] Java Runtime Environment specification vendor = Sun Microsystems Inc.
[jcc] Java Runtime Environment specification name = Java Platform API Specification
[jcc] Java class format version number = 50.0
[jcc] Operating system name = Windows XP
[jcc] Operating system architecture = x86
[jcc] Operating system version = 5.1
[jcc] File separator ("/" on UNIX) = \
[jcc] Path separator (":" on UNIX) = ;
[jcc] Dumping all file properties: {  }
[jcc] pureQuery present = false

Database product name: DB2 Database product version: DSN10015 Driver name: IBM Data Server Driver for JDBC and SQLJ Driver version: 4.12.79

2 个答案:

答案 0 :(得分:2)

z / OS拥有世界上最先进的调度员,可以对资源的分配方式进行各种控制......这是硬件成本高昂时期的遗留问题,企业希望控制那些稀缺的地方资源去了。

一个例子是表现时期。这是一种可以为短期运行程序提供极好响应时间的方法,同时防止更长时间的进程占用资源。在繁忙的系统上,琐碎的工作会立即运行,但是繁重的资源用户会变慢。这很容易成为您所看到的一部分。

仍有许多变量...想到所涉及的所有组件:客户端程序,网络,LPAR管理程序,z / OS TCP / IP堆栈,DB2 - 然后是所有物理内容,如磁盘场,内存等。任何这些都会引起响应时间的变化。

来自IBM,CA和其他公司的非常复杂的性能监控产品将为您提供比您想要的更多详细信息。如果您的组织拥有这些工具中的任何一种,那么只需要一些训练有素的人来告诉您发生了什么。

答案 1 :(得分:0)

略高于一分钟的等待闻起来像某个地方的超时设定。是不是你的应用程序无法分配足够的线程来发出请求(异步)?或者在服务器中类似的超时 - 10000个顺序或并行请求对于任何数据库都是非常重的负载。