0
我想监视我们的Java应用程序(GlassFish v3.1.2 JSF2应用程序)的关键部分。 我想跟踪一个特定的函数调用作为一个新的事务。该方法可以在“/ Faces Servlet”或任何其他JAX-RS事务中调用。NewRelic Java API和事务边界
@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和两个用于内部/查询。
谢谢。
谢谢,这不是我所期望的,实际上NewRelic Agent不支持嵌套事务。如果交易存在,它只会被重命名。如果我多次调用查询,我的事务参数将被最后一次调用覆盖。 – nomoa
“嵌套”是由另一个使用相同的进程或线程调用的新事务?如果没有,我们很可能“失去了追踪的味道”,这可能会阻止代理商进行报告。 这有道理吗? 谢谢, 珍妮 – Jeanie