快速业务通道

使用pureQuery优化现有的JDBC应用程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
Run...,将应用程序的运 行配置修改为执行代码路径 1 和 2。

选择 Arguments tab,删除最后一个程序参数(1)。

图 39. 修改运行配置执行两个代码路径

使用pureQuery优化现有的JDBC应用程序 - 编程入门网

单击 Run。

使用pureQuery优化现有的JDBC应用程序(17)

时间:2011-05-20 IBM Patrick Titzler

应用程序应该会顺利执行,不会出现警告或错误。注意,应用程序已经成功地 处理了之前由于当驱动程序处于捕捉模式时从未运行代码路径 2 而未被捕捉的 SQL 语句。

驱动程序如何处理 SQL 语句:PureQuery for JDBC applications 允许应用 程序开发人员或 DBA 在部署时才决定以动态模式(例如在开发时)、混合模式( 在测试时)还是静态模式(在生产时)运行应用程序的 SQL:

如果 executionMode 属性被设置为 DYNAMIC,则无论之前是否已被捕捉,所 有 SQL 语句都将动态地执行。

如果 executionMode 属性被设置为 STATIC,前面被捕捉、配置和绑定的 SQL 将静态地执行。但是,如果 allowDynamicSQL 属性被设置为 TRUE(默认设置) ,那么其他 SQL 语句将以 DYNAMIC 模式执行。如果该属性被设置为 FALSE,那 么这些语句将得不到处理,并抛出一个 SQLException。

修改驱动程序的 SQL 执行模式,并重新运行示例应用程序的代码路径 1 和 2 ,以便当一条 SQL 语句因缺少元数据信息而不能静态地执行时,抛出一个异常。

打开驱动程序配置文件 DB2JccConfiguration.properties。

利用内容辅助(<CTRL> <SPACE>),添加属性 allowDynamicSQL 并赋以值 FALSE,如 图 39 所示。

图 40. 防止 SQL 动态执行

使用pureQuery优化现有的JDBC应用程序 - 编程入门网

保存这个配置文件(<CTRL> <S>),但不要关闭编辑器。一会儿 您还要修改它。

在 Package Explorer 中找到 BasicJDBCApp.java,右键单击它,并从上下文 菜单中选择 Run As>Java Application,重新运行示例应用程序。

应用程序应该终止,并收到一个错误,表明一个 SQL 异常(见图 41)被抛出 。

图 41. 由于缺少元数据,SQL 不能静态地执行

使用pureQuery优化现有的JDBC应用程序 - 编程入门网

使用pureQuery优化现有的JDBC应用程序(18)

时间:2011-05-20 IBM Patrick Titzler

捕捉剩下的 SQL

增量式地捕捉 SQL

在驱动程序配置为仅以静态模式执行 SQL 语句时,有些 SQL 语句没有被捕捉 ,要解决处理这些 SQL 语句的问题,必须再完成一次为 JDBC 应用程序启用 pureQuery 的迭代过程:

通过运行前面没有运行过的用例,增量式地捕捉缺少的 SQL 语句。

配置新捕捉到的元数据。

重新绑定数据库包,增加新的 SQL 语句。

重新运行应用程序,验证它在静态执行模式下是否有正确的行为。

为了解决防止示例应用程序静态地执行所有 SQL 语句的问题,必须遵循以下 步骤:

捕捉执行代码路径 2 时发出的 SQL 语句。

在驱动程序配置文件 DB2JccConfiguration.properties 中修改 executionMode 和 captureMode 属性,以便捕捉并动态地执行 SQL 语句,如图 42 所示。

图 42. 允许捕捉 SQL

使用pureQuery优化现有的JDBC应用程序 - 编程入门网

注意,还可以使用一个稍微不同的驱动程序配置,该配置将导致以下运行时行 为,但产生的结果是一样的:

如果前面已捕捉、配置和绑定 SQL,它则静态执行

如果前面没有捕捉、配置和绑定 SQL,它则动态执行

如果 SQL 动态执行,则捕捉它

db2.jcc.pdqProperties=captureMode(ON),            executionMode(STATIC),allowDynamicSQL (TRUE),            pureQueryXml(pureQueryFolder/capture.pdqxml)

(以上例子中使用了换行,这仅仅是为布局考虑)。

在运行配置中使用以下程序参数之一(用有效的数据库名、用户 ID 和密码替 换参数值),重新运行示例应用程序,并执行代码路径 2(或执行全部 2 条代码 路径),捕捉缺少的 SQL 语句。

jdbc:db2://localhost:50000/GS_DB db2admin mypwd 2 jdbc:db2:/

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号