gpt4 book ai didi

java - 使用 JdbcPooledConnectionSource 时检查连接的成本

转载 作者:行者123 更新时间:2023-12-02 06:19:51 25 4
gpt4 key购买 nike

当使用 JdbcPooledConnectionSource 时,可以让 Ormlite 在将连接移交给用户之前检查连接,如下所示:

JdbcPooledConnectionSource connectionSource =
new JdbcPooledConnectionSource("jdbc:h2:mem:account");
connectionSource.setTestBeforeGet(true);

让 Ormlite 进行检查的性能成本是多少?为什么我不让 Ormlite 检查连接?

最佳答案

What is the performance cost to let Ormlite do the checking?

您可以查看JdbcPooledConnectionSource的源代码。在 testConnection(...) 方法中,它实际上执行以下操作:

connMetaData.connection.queryForLong(`SELECT 1`);

至于性能如何,这取决于许多因素。这是与数据库服务器进行 RPC,但不应访问服务器上的任何磁盘。因此,在现代系统上,我们可能谈论的是 10 毫秒 – 也许更少。

我认为评估其成本的最佳方法是将其打开并测试您的应用程序,然后将其关闭并查看是否注意到差异。

Why would I not let the Ormlite check the connection?

进行此设置的原因是为了防止池连接在您使用它时失败。我想说使用它是保守的。

JdbcPooledConnectionSource 为您提供了其他方法来验证连接,而不是每次您获取池连接时都进行验证。例如,如果您对某个非 0 值调用 setCheckConnectionsEveryMillis(...),它将 fork 一个线程来每隔一段时间测试连接。 60000 将使线程在后台执行 SELECT 1,这不会减慢您的应用程序的速度。

关于java - 使用 JdbcPooledConnectionSource 时检查连接的成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21111123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com