Java 当WebContainer线程池(WebSphere)被完全使用并且收到新请求时会发生什么?

Java 当WebContainer线程池(WebSphere)被完全使用并且收到新请求时会发生什么?,java,web-applications,websphere,threadpool,web-container,Java,Web Applications,Websphere,Threadpool,Web Container,有关于WebSphere的问题,在文档中找不到任何内容 当WebContainer线程池被完全使用并且收到新请求时会发生什么?我所说的情况是,当所有线程都被使用时,我们达到了最大线程池大小,这意味着可能不会创建新的线程池来处理请求 请求将: -立即失败,响应将包含某种错误? -当一个线程回到池中时,是否会以某种方式“排队”给定时间段的请求并对其进行处理?如果等待时间过长,仍可能发生某种错误/超时? -是否会无限期地“排队”请求,并且超时可能只发生在用户端(web浏览器/应用程序) 确切的行为可能

有关于WebSphere的问题,在文档中找不到任何内容

当WebContainer线程池被完全使用并且收到新请求时会发生什么?我所说的情况是,当所有线程都被使用时,我们达到了最大线程池大小,这意味着可能不会创建新的线程池来处理请求

请求将: -立即失败,响应将包含某种错误? -当一个线程回到池中时,是否会以某种方式“排队”给定时间段的请求并对其进行处理?如果等待时间过长,仍可能发生某种错误/超时?
-是否会无限期地“排队”请求,并且超时可能只发生在用户端(web浏览器/应用程序)

确切的行为可能没有文档记录,因此可以在不同版本之间更改详细信息以改进行为。您可以通过查看JavaCore或从各种文档中收集信息来推断行为,例如本文档的BoundedBuffer部分:

线程池请求缓冲区本质上是一个位于 线程池。如果线程池处于其最大大小,并且 线程被调度,然后工作将在requestBuffer中排队。 requestBuffer的最大大小等于线程池 最大尺寸;但是,如果工作单元是在线程上执行的 当\u队列\u已满\u错误\u处于\u限制时,使用“扩展\u”阻塞模式的池 或者,当_QUEUE_为_FULL_WAIT_处于_LIMIT时展开_,则最大大小为 ThreadPoolMaxSize*10。当requestBuffer填满时,则 WSVR0629I已发布(尽管这只是每个JVM第一次出现) 按线程池运行)。当requestBuffer已满时,work将 等待或抛出ThreadPoolQueueIsFullException,具体取决于 执行工作单元


实际上,这意味着在maxThreads线程忙于执行工作后,额外的maxThreads请求将在一个有界缓冲区中排队,当缓冲区已满时,套接字线程将阻塞,直到它可以对工作排队,这意味着进一步的传入请求将被阻止,直到线程可用并在有界缓冲区中留出空间。

有意义-谢谢。我不知道为什么找不到您引用的文本。我在WAS线程池组件上工作了几年,所以我知道该行为是什么,所以我知道要搜索什么。我提供的链接甚至不在WAS知识中心,所以看起来信息很难找到…我很惊讶它没有文档记录。了解请求是否排队或被错误丢弃似乎是非常重要的。谢谢你的帮助:-)