【问题标题】:How websphere manages connection pool through datasource for multiple requestswebsphere如何通过数据源为多个请求管理连接池
【发布时间】:2016-09-28 07:22:59
【问题描述】:

我有一个托管在 websphere 应用程序服务器 8.5 上的 spring rest api。它使用数据源连接到数据库并存储值 该 api 处理大约 10000 个并发请求。 我真正想知道的是最大连接数是否设置为 10。连接池如何连接到数据库以及它真正创建了多少会话来实现高达 10000 个并发请求的负载。

【问题讨论】:

  • 阅读对象池。
  • @Kayaman 我想知道将创建多少个数据库会话。一个链接会比downvoting更受欢迎。我要去这个链接ibm.com/developerworks/websphere/techjournal/0909_blythe/…
  • 我不知道你的“数据库会话”是什么,但如果你有一个池大小10,那么你有 10 个用户共享的连接。如果你找不到关于连接池的解释,那么你的谷歌搜索不够努力。

标签: java websphere connection-pooling websphere-8 spring-restcontroller


【解决方案1】:

连接池中的连接由 WebContainer 线程共享。连接池最大大小限制将打开到数据库的连接数。通常,当线程完成时,连接会返回到池中。如果在应用程序中将连接设置为非共享,则可以更快地返回连接池(但是,有一些事务原因不这样做,因此您必须使用设置 true 和 false 来测试应用程序,请参阅https://www.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/cdat_conshrnon.html )。

应用程序服务器可以处理的并发请求数取决于 (a) WebContainer 线程池的大小和 (b) 连接池中可用连接的数量和 (c) 运行应用程序的 JVM 数量和(d) 数据库需要多长时间来处理请求以及 (e) 应用程序代码还可以做什么。

没有适用于每个应用程序的单一数字,但一般的经验法则是拥有比连接池更大的 WebContainer 线程池。如果请求处理得很快,则可以处理更多的并发请求。同样,如果请求处理速度很慢,那么并发请求的数量就会下降。见https://publib.boulder.ibm.com/httpserv/cookbook/WebSphere_Application_Server-WAS_Traditional-Thread_Pools.htmlhttps://publib.boulder.ibm.com/httpserv/cookbook/WebSphere_Application_Server-WAS_Traditional-Java_Database_Connectivity_JDBC.html

您可以使用https://www.ibm.com/developerworks/websphere/library/techarticles/0304_polozoff/polozoff.html 和此处https://www-01.ibm.com/software/webservers/appserv/was/performance.html 中概述的技术监控 JVM

我喜欢做的是调整单个 JVM 的大小以获得最佳性能(即,任何应用程序都会遇到瓶颈,限制单个 JVM 可以处理多少并发请求)然后水平扩展(用于故障转移),然后垂直扩展,直到我达到并发请求数量的服务水平协议 (SLA)。您可能还需要查看应用程序中的非功能性需求 (NFR) 以解决任何性能方面的问题。

如果您有任何后续问题,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多