诊断 DB2 Java 应用程序的性能问题 (2)
2008-09-16 16:29:15 来源:WEB开发网诊断认证问题
当用户连接到一个数据库或 DB2 实例时,DB2 外的安全设施要执行认证。这种安全设施通常由 DB2 所在的操作系统提供。根据配置情况,认证可以在服务器上进行,也可以在客户机上进行。DB2 支持多种不同的认证方法。
与数据库在同一个系统上的用户可以使用不需要用户 id 和密码的隐式连接,或者也可以使用需要用户 id 和密码的显式连接。到远程数据库的连接通常需要显式连接,除非服务器上专门为客户机认证作了配置。当排除认证问题时,不要使用隐式连接,因为这样会绕过任何认证机制。
排除认证问题应该在 Java 应用程序之外,通过 DB2 CLP 进行。假设已经配置为在服务器上进行认证。如果隐式连接执行得很快,而显式连接比较慢,那么很可能是认证存在性能问题。存在认证性能问题的另一个症状是一开始建立连接需要较长的时间,但是随后的查询的响应速度并不慢。
清单 32. 显式认证与隐式认证
$ db2 "connect to sample user db2inst1 using mypassword"
Database Connection Information
Database server = DB2/AIX64 8.2.7
SQL authorization ID = DB2INST1
Local database alias = SAMPLE
$ db2 "connect to sample"
Database Connection Information
Database server = DB2/AIX64 8.2.7
SQL authorization ID = DB2INST1
Local database alias = SAMPLE
在 AIX 平台上,DB2 使用操作系统 API getpwnam_r 来获得用户属性。AIX 操作系统 API getpwnam_r 是 getpwnam 的一个线程安全的版本。下面的示例 C 程序演示了 getpwnam_r 和 getpwnam 调用。
更多精彩
赞助商链接