NewRelic Java API和事务边界

时间:2014-03-05 11:44:33

标签: java api newrelic

我想监视Java应用程序(Glassfish v3.1.2 JSF2应用程序)的关键部分。 我想跟踪特定的函数调用作为新事务。可以在“/ Faces Servlet”或任何其他JAX-RS事务中调用此方法。

@Trace注释似乎对我的情况来说是完美的,但是阅读文档并不清楚它是否支持嵌套事务(如REQUIRES_NEW J2EE事务语义)。

以下是我要跟踪的方法

@Trace(dispatcher=true, matricName="Internal/Query")
public void query(Query q) {
       long st = -System.currentTimeMillis();
       // do my stuff
       st += System.currentTimeMillis();
       NewRelic.addCustomParameter("Client", q.getClient());
       // Add useful parameters
       NewRelic.recordResponseTimeMetric("Internal/Query/queryTime", st); // Is this needed?
}

例如像这样的JAX-RS WS:

@GET
public Response wsquery(...) { // <- Start NewRelic Transaction T1
       myBean.query(q1); // <- Start nested Transaction T1.1
       myBean.query(q2); // <- Start nested Transaction T1.2
}

我是否会跟踪3笔交易? 一个用于JAX-RS调用 wsquery ,两个用于内部/查询

感谢。

1 个答案:

答案 0 :(得分:0)

根据提供的信息,我不确定您将获得什么。我建议给它一个测试。您还可以将日志记录级别提升到“最佳”级别,并查看正在检测的内容。如果您遇到以外的问题,请致电http://support.newrelic.com

与我们联系