捕获JAXB时序以获取JAX-WS Web服务

时间:2015-01-20 19:18:36

标签: java xml soap jaxb jax-ws

背景 我有一个包含数百个JAXB类的企业应用程序。这些类用于提供50多个JAX-WS Web服务。在排除性能故障时(源:dynatrace),我们意识到在请求到达模型对象之前,很多时间都花在服务器运行时(容器)上。我添加了Servlet过滤器以捕获为请求提供服务所花费的总时间,但我正在尝试捕获JAX-WS用于编组/解组SOAP请求所花费的时间。

我尝试过使用:

  1. JAXB Marshal / Unmarshal听众使用此链接的帮助 Reference 1
  2. 我对这种方法的问题是:所有这些示例都有自己的JAXBContext ..但在我的情况下,每个服务器容器都创建了自己的JAXBContext,我找不到将我的监听器注入app服务器的JAXBcontext的方法..

    - 你可以帮我解决这个问题吗?

    1. 此链接中描述的SOAP处理程序: Reference 2
    2. 此方法存在问题:如何确定时序是否包含JAXB编组?另外,如何将这些时序与SOAP处理程序捕获的时间分开?应用服务器首先执行哪一个 - SOAP处理程序或JAXB编组?

      如果有任何有效的方法从App服务器捕获JAXB时序,请告诉我。另外,如果我误解了上述方法,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:0)

如果您希望获得有关dynatrace相关问题的更快反馈,我建议您将它们发布在我们自己的讨论论坛上:https://community.compuwareapm.com/community/display/DTFORUM/dynaTrace+Forums+Home

我们还提供名为" Share Your PurePath" - http://bit.ly/sharepurepath - 我们在那里查看您捕获的dynatrace PurePath数据并为您提供建议。 我经常看到你描述的场景。当将请求从一个运行时/引擎传递到下一个时,它通常与耗尽的线程池相关,例如:从Web服务器到AppServer,您有不同的工作线程处理与某些类型的连接机制连接的这些请求。我已经写了几篇博客文章。请检查这两个链接,解释如何注意这个特定的问题模式: * http://apmblog.dynatrace.com/2015/01/22/key-performance-metrics-load-tests-beyond-response-time-part/ * https://community.compuwareapm.com/community/display/PUB/How+to+explain+growing+Worker+Threads+under+Load

岸堤