Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为多个同时的SOAP请求配置Tomcat_Java_Tomcat_Soap - Fatal编程技术网

Java 为多个同时的SOAP请求配置Tomcat

Java 为多个同时的SOAP请求配置Tomcat,java,tomcat,soap,Java,Tomcat,Soap,我是一个Tomcat新手,所以我猜答案很简单,但谷歌今天对我并不友好 我在ApacheTomcat上安装了一个Java web应用程序。虽然应用程序有一个头版(用于诊断目的),但应用程序实际上是关于SOAP接口的。任何客户端都不需要查找服务器的网页。客户端向服务器发送SOAP请求,服务器解析请求,然后在数据库中查找结果。然后,再次通过SOAP将结果传递回客户端 在默认配置中,Tomcat似乎将请求排队。我的实验包括将客户端安装在两台不同的机器上,指向同一台服务器,并在完全相同的时间运行搜索(一台

我是一个Tomcat新手,所以我猜答案很简单,但谷歌今天对我并不友好

我在ApacheTomcat上安装了一个Java web应用程序。虽然应用程序有一个头版(用于诊断目的),但应用程序实际上是关于SOAP接口的。任何客户端都不需要查找服务器的网页。客户端向服务器发送SOAP请求,服务器解析请求,然后在数据库中查找结果。然后,再次通过SOAP将结果传递回客户端

在默认配置中,Tomcat似乎将请求排队。我的实验包括将客户端安装在两台不同的机器上,指向同一台服务器,并在完全相同的时间运行搜索(一台是0.11秒,另一台是0.11秒,但你得到了图片)

如何配置并发请求线程的数量? 我的理想配置是有X个请求线程,每个线程每Y分钟或在Z个请求之后(以较早者为准)循环自身(即调用析构函数和构造函数并循环其内存分配)。我听说可以配置IIS来实现这一点(虽然我也没有IIS方面的经验),但是您如何使用Tomcat来实现这一点呢

我希望能够回收线程,因为Tomcat似乎在请求进入时获取内存,而不是释放它,这意味着当我们接近内存限制(我已经在2GB服务器上配置为1GB)时,偶尔会出现Java堆空间错误(但不一致)。我不能100%确定这是因为我的应用程序内存泄漏,还是因为我使用的工具占用了大量内存

任何建议都将不胜感激

谢谢,
Rik

默认情况下,Tomcat最多可以处理150个并发HTTP请求-这是完全可配置的,并且显然根据您的服务器规范和应用程序而有所不同

然而,如果你的应用程序必须处理“突发”连接,我建议你查看Tomcat的最小和最大“空闲”线程。这些线程正在积极等待连接。如果没有足够的等待线程,Tomcat必须分配更多的线程(这会产生轻微的开销),因此您可能会看到延迟

另外,请看我对这个问题的回答,其中包括如何配置连接器:


另外,看看基本的JVM调优——特别是堆分配开销和GC暂停时间。

太奇怪了。。。SOAP请求最终是HTTP请求,Tomcat——作为任何web容器——能够支持并发请求(无需排队)。您的SOAP引擎是什么(Axis,JAX-WS)?我相信JAX-WS。总是有可能我错了,它没有排队,但即使是这样,我仍然希望能够配置它/了解配置是什么。Tomcat默认情况下会执行并发请求(没有它就没用了!)。请发布您用于实现服务的WS-framework。您是否查看了数据库配置?可能数据源仅配置为接受单线程请求(库存设置中非常常见)?