与数据库的连接限制和应用程序中的java线程数

与数据库的连接限制和应用程序中的java线程数,java,Java,我正在开发一个JMS应用程序(独立多线程java应用程序),它一次可以接收100条消息,需要对它们进行处理,并且需要调用数据库过程来插入/更新数据。程序非常繁重,因为验证也在其中执行。每个过程执行大约需要30到50秒的时间,并且它们能够并发运行。 我关心的是对所有100条消息执行100个过程,并通过jms应用程序在90秒内发送回复。 无需使用应用服务器(要求),数据库为Teradata(RDBMS) 我在java代码中使用连接池和线程池,并用90个连接测试代码。 问题是: (1) 一次与数据库连

我正在开发一个JMS应用程序(独立多线程java应用程序),它一次可以接收100条消息,需要对它们进行处理,并且需要调用数据库过程来插入/更新数据。程序非常繁重,因为验证也在其中执行。每个过程执行大约需要30到50秒的时间,并且它们能够并发运行。 我关心的是对所有100条消息执行100个过程,并通过jms应用程序在90秒内发送回复。 无需使用应用服务器(要求),数据库为Teradata(RDBMS)

我在java代码中使用连接池和线程池,并用90个连接测试代码。 问题是:

(1) 一次与数据库连接的数量限制应该是多少? (2) 一次推荐多少线程

谢谢,
Jyoti似乎很多。我的建议是以此为基准。您的标准是uniques,您需要确保获得最大吞吐量。 我将使代码可配置为使用多少并发连接,并用10。。。100个连接一次增加10个。这不会花很长时间。当你开始减速时,你就知道你已经超出了同时运行的好处。

多次这样做,以确保您的结果是可预测的。

另一个问题是您关于“程序运行大约需要30到50秒”的陈述。有多少时间是通过Java处理的,有多少时间是等待数据库处理SQL语句的?是否应该同时添加这两个时间来确定所需的最大连接数?

一般来说,您应该获得一个连接,使用它,如果可能的话,在处理java逻辑后尽快关闭它。如果可能的话,您应该避免获得连接,进行大量java端处理,调用数据库,进行更多java处理,然后关闭连接。可能不需要将连接保持打开那么长时间。在使用这种方法时,需要考虑的一点是,在单个事务中需要保留哪些处理(包括数据库访问)。

例如,如果要运行50秒,只需要1秒的数据库访问时间,那么您可能不需要如此高的最大连接数