简体   繁体   English

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

[英]Capture JAXB Timings for JAX-WS Webservices

Background: I have an enterprise application with hundreds of JAXB classes. 背景:我有一个带有数百个JAXB类的企业应用程序。 These classes are used in serving 50+ JAX-WS web-services. 这些类用于服务50多个JAX-WS Web服务。 While troubleshooting performance (source: dynatrace), we realized that lot of time is being spent on the server runtime (container) before request reaches to model objects. 在对性能进行故障诊断(来源:dynatrace)时,我们意识到在请求到达模型对象之前,服务器运行时(容器)上花费了大量时间。 I added Servlet filters to capture overall time spent to service the request but I am trying to capture the time spent by JAX-WS to marshal/unmarshal SOAP requests. 我添加了Servlet过滤器来捕获为请求服务所花费的总时间,但是我试图捕获JAX-WS来编组/解组SOAP请求所花费的时间。

I have tried using : 我尝试使用:

  1. JAXB Marshal/Unmarshal listeners using the help from this link Reference 1 使用此链接的帮助的JAXB编组/解组侦听器参考1

My problem with this approach is: All of these examples have their own JAXBContext.. but in my case every server container created its own JAXBContext and I couldn't find way to inject my listeners into app server's JAXBcontext.. 我的方法的问题是:所有这些示例都有自己的JAXBContext ..但是,在我的情况下,每个服务器容器都创建了自己的JAXBContext,而我找不到方法将侦听器注入到应用程序服务器的JAXBcontext中。

-- Can you please help me with this ? -你能帮我吗?

  1. SOAP Handlers as described on this link: Reference 2 如此链接上所述的SOAP处理程序: 参考2

Problem with this approach: How do I find out if timings include JAXB marshaling ? 这种方法的问题:如何确定计时是否包括JAXB封送处理? Also, how to separate the these timings from what SOAP handlers would capture ? 此外,如何将这些计时与SOAP处理程序将捕获的分开? Which one gets executed first by the app server - SOAP handler or JAXB marshaling ? 哪一个首先由应用服务器执行-SOAP处理程序或JAXB封送处理?

Please let me know if there is any effective way to capture JAXB timings from App server. 请让我知道是否有任何有效的方法可以从App服务器捕获JAXB计时。 Also, please let me know if I misunderstanding above approaches. 另外,如果我误解了上述方法,请告诉我。 Thank you. 谢谢。

If you want to get faster feedback on dynatrace related questions I suggest you post them on our own disucssion forum: https://community.compuwareapm.com/community/display/DTFORUM/dynaTrace+Forums+Home 如果您想获得有关dynatrace相关问题的更快反馈,我建议您将其发布在我们自己的讨论论坛上: https ://community.compuwareapm.com/community/display/DTFORUM/dynaTrace+Forums+Home

We also provide a service called "Share Your PurePath" - http://bit.ly/sharepurepath - where we take a look at your captured dynatrace PurePath data and give you recommendations. 我们还提供了一个名为“分享你的PurePath”服务- http://bit.ly/sharepurepath -在这里我们来看看你捕捉的dynaTrace的PurePath数据,并给您提出建议。 I see your described scenario quite often. 我经常看到您描述的情况。 It typically is related with exhausted thread pools when handing a request from one runtime/engine to the next, eg: from the Web Server to the AppServer you have different worker threads that handle these requests being connected with some type Connection Mechanism. 当将请求从一个运行时/引擎传递到下一个运行时/引擎时,它通常与耗尽的线程池有关,例如:从Web服务器到AppServer,您有不同的工作线程来处理通过某种类型的连接机制连接的这些请求。 I wrote several blog articles on this already. 我已经写了好几篇博客文章。 Please check these two links that explain how to watch out for this particular problem pattern: * 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 请检查以下两个链接,这些链接解释了如何注意这种特殊的问题模式:* http://apmblog.dynatrace.com/2015/01/22/key-performance-metrics-load-tests-beyond-response-time-部分/ * https://community.compuwareapm.com/community/display/PUB/How+to+explain+growing+Worker+Threads+under+Load

Andi 和我

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM