如何使用CMP查看EJB 2.1中的sql语句



我有一个使用DB2作为数据库的旧EJB 2.1项目。
我想查看程序发送到数据库的sql查询。我怎么能那样做。我正在使用DB2。持久性是容器管理的持久性。(CMP

在Hibernate中有类似<property name="hibernate.show_sql" value="true"/>的东西,我想有同样的效果。:-)

如果您没有找到从持久层捕获SQL的合适选项,DB2会在驱动程序级别和数据库服务器上提供一些强大的跟踪选项。每种方法都有其优点和缺点。

由于您已经将EJB项目描述为旧的,所以您的持久层可能使用IBM的JDBC Type2驱动程序,它本质上是DB2的调用级接口的包装器,在这种情况下,您将考虑通过db2cli.ini文件启用跟踪选项。

更新和更流行的驱动程序是JDBC类型4"通用驱动程序"db2jcc.jar,它通过可以附加到连接字符串和/或由应用程序在运行时设置的属性来处理跟踪。

由于我更多地使用数据库而不是应用程序服务器,因此我个人对捕获SQL的偏好是定义一个语句事件监视器,它将SQL语句和详细统计信息捕获到一个平面文件或一组专用表中。事件监视器提供了各种筛选机制,使您可以仅为总工作负载的一小部分收集详细的跟踪记录。事件监视器的另一个吸引人的方面是,DBA可以在不中断应用程序服务器的情况下启动或停止它们。由于事件监视器可以快速收集大量数据,我更喜欢使用表作为事件监视器目标,因为我可以通过一些SQL查询轻松地分析结果。

相关内容

  • 没有找到相关文章