捕获 JAX-WS Web 服务的 JAXB 计时



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

我尝试使用:

  1. JAXB 元帅/解编组侦听器使用此链接的帮助参考文献 1

我对这种方法的问题是:所有这些示例都有自己的JAXBContext..但是在我的情况下,每个服务器容器都创建了自己的JAXBContext,我找不到将我的侦听器注入应用程序服务器的JAXB上下文的方法。

-- 你能帮我这个吗?

  1. SOAP 处理程序,如以下链接中所述:参考文献 2

此方法的问题:如何确定时序是否包括 JAXB 封送处理?另外,如何将这些计时与 SOAP 处理程序将捕获的内容分开?哪一个首先由应用程序服务器执行 - SOAP 处理程序或 JAXB 封送处理?

请让我知道是否有任何有效的方法可以从应用程序服务器捕获 JAXB 计时。另外,如果我误解了上述方法,请告诉我。谢谢。

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

我们还提供一项名为"共享您的 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

安 迪

最新更新