0
Java 응용 프로그램의 핵심 부분 (Glassfish v3.1.2 JSF2 응용 프로그램)을 모니터링하려고합니다. 특정 함수 호출을 새 트랜잭션으로 추적하려고합니다. 이 메소드는 "/ Faces Servlet"또는 다른 JAX-RS 트랜잭션 내에서 호출 할 수 있습니다.NewRelic Java API 및 트랜잭션 경계
@Trace 주석은 필자의 경우 완벽하다고 생각되지만 REQUIRES_NEW J2EE 트랜잭션 의미와 같이 중첩 트랜잭션을 지원하는지 명확하지 않습니다.
@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 트랜잭션을 추적해야합니다 : 여기
내가@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 추적 할 방법? 에 대한 JAX-RS 호출의 경우 wsquery이고 의 경우 2는입니다.감사합니다.
감사합니다. 예기치 않은 것은 사실입니다. 사실 NewRelic Agent는 트랜잭션 중첩을 지원하지 않습니다. 트랜잭션이 존재하면 이름이 바뀝니다. 쿼리를 여러 번 호출하면 마지막 호출에서 트랜잭션 매개 변수를 덮어 씁니다. – nomoa
"nesting"은 동일한 프로세스 또는 스레드를 사용하여 다른 트랜잭션이 호출하는 새로운 트랜잭션입니까? 그렇지 않다면, 우리가 "흔적의 향기를 잃어서"말할 수 있고 에이전트가보고하지 못하게 할 가능성이 있습니다. 의미가 있습니까? 감사합니다. Jeanie – Jeanie