使用 IBM DB2 跟踪和 Eclipse Modeling Framework 检测资源泄漏
2010-02-04 00:00:00 来源:WEB开发网[Connection@<Connection ID>] prepareStatement
结果集详细信息列出在包含以下内容的行中:
[ResultSet@<ResultSet ID>]
为了检测哪些资源已被关闭,解析器应该在 DB2 跟踪文件中查找包含以下内容的行:
[<Resource ID>] close () called
其中,<Resource ID> 表示以下项目之一:
Statement
PreparedStatement
ResultSet
创建自定义 EMF 资源工厂
使用之前介绍的 DB2 跟踪文件元素来设计在 ANTLR 中使用的语法,或者编写自定义解析器(用于读取 DB2 跟踪文件的内容以及创建 EMF 建模类的实例)。这些类是由 EMF 框架生成的。它们所在的 EMF 插件包含 EMF 模型,并且扩展了 org.eclipse.emf.ecore.EObject 基类。以下行将创建一个 PreparedStatement 建模类实例,并修改其属性:
PreparedStatement pStmt = traceFactory.createPreparedStatement();
pStmt.setID(statementID);
pStmt.setQuery(queryString);
实现解析器并创建有效的 EMF 模型实例之后,必须将它绑定到 EMF 资源工厂中。
使用 org.eclipse.emf.ecore.resource.Resource.Factory.Registry 类的默认实例注册自定义 EMF 资源工厂实现,如下所示:
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap()
.put(resourceURI.fileExtension(), new MyCustomDB2TraceResourceFactoryImpl());
注意,上面显示的代码实际上只有一行。为正常显示,本文将它分开了。
实现以上行之后,所有的资源将被自定义资源类处理。这意味着您可以使用自己的 EMF 插件集来打开和分析任何 DB2 跟踪文件。
更多精彩
赞助商链接