代码之家  ›  专栏  ›  技术社区  ›  Peter Schuetze

如何跟踪特定连接到db2的sql命令?

  •  0
  • Peter Schuetze  · 技术社区  · 14 年前

    我正在设置中央生成服务器。服务器负责生成将部署到所有环境中的正式构建构件。对于其中一个应用程序,存在写入数据库的生成步骤。在部署时,我们需要将这个构建步骤运行到适当的环境中。由于很难/昂贵地在以后可靠地复制这个构建步骤,因此这个想法诞生了,以便在以后部署时只捕获sql运行sql脚本。

    我无法控制生成sql的源代码。它是一个使用Hibernate的Java程序。我还没有找到在哪里放置log4j.properties/log4j.xml来使用hibernate跟踪功能。准备好的语句显示“?”可能有问题。而不是实际值。

    有没有人有使用DB2的活动监视器以及如何使用它的经验?或者还有其他(更简单的)选项,比如在hibernate配置中替换db2驱动程序?不过,我还是想使用db2dialect驱动程序。

    编辑: 我无法控制数据库结构。数据库结构可能会更新,或者进程可能会在将来写入不同的表。这不应该影响我现在设置的解决方案。

    2 回复  |  直到 14 年前
        1
  •  0
  •   Thorbjørn Ravn Andersen    14 年前

    看看P6Spy:

    P6Spy是一个开源框架 支持拦截的应用程序 并可以选择修改数据库 声明。P6Spy发行版 包括以下模块:

    P6Log.p6log拦截并记录 任何应用程序的数据库语句 使用JDBC的。此应用程序是 对于开发人员来说特别有用 监视由 ejb服务器,使开发人员能够 编写达到最大值的代码 服务器的效率。P6SPIE是 可在几分钟内安装 不需要更改代码。

    http://www.p6spy.com/

        2
  •  0
  •   rsp    14 年前

    如果表在id填充之前不存在/为空,则还可以导出结果表(包括记录)并在部署时将其导入生产数据库。

    正如您已经说过的,使用执行的操作日志可能无法确定表的内容。记录准备好的语句将不包含绑定数据,如果执行的插入不止是简单的插入,则可能会强制实现sql的一部分以重现所记录的内容。