开发者社区> 问答> 正文

在某些数据库服务器上获取连接失败,数据库为SQL Server 2008R2

Could not open JDBC Connection for transaction; nested exception is com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 2010, active 0, maxActive 50

原提问者GitHub用户yuzun

展开
收起
山海行 2023-07-05 21:40:36 107 0
4 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    以下是一些可能导致连接失败的原因和相应的解决方法:

    账户权限不足:如果使用的账户没有足够的权限来访问数据库服务器,就会导致连接失败。解决方法是确保使用的账户具有足够的权限来访问数据库服务器。

    防火墙设置:如果数据库服务器所在的计算机上启用了防火墙,就可能会阻止与该计算机的连接。解决方法是在防火墙上打开相应的端口,以允许通过该端口与数据库服务器建立连接。

    连接字符串错误:如果连接字符串中包含错误的参数或值,就会导致连接失败。解决方法是检查连接字符串中的参数和值是否正确,并根据需要进行修改。

    数据库服务器故障:如果数据库服务器出现故障,例如停机或崩溃,就会导致连接失败。解决方法是等待数据库服务器恢复正常,并确保数据库服务器已经启动。

    连接池问题:如果应用程序使用连接池来管理连接,并且连接池中的连接已经用尽,就会导致获取连接失败。解决方法是增加连接池中的连接数量,或者使用更高效的连接池。

    2023-07-30 09:39:42
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    根据您提供的异常信息,看起来是无法获取到SQL Server 2008R2数据库的JDBC连接,导致连接超时的错误。这可能是由于以下几个原因引起的:

    1. 数据库服务器负载过高:如果数据库服务器的负载非常高,可能会导致连接请求被阻塞或超时。您可以尝试在非高峰时段重新尝试连接。

    2. 数据库连接池配置不当:连接池是管理数据库连接的重要组件,如果连接池的配置不正确,可能会导致连接超时。您可以检查连接池的最大活动连接数(maxActive)和最大等待时间(maxWait)是否适当,并尝试调整它们的值。

    3. 网络问题:连接超时还可能是由于网络问题导致的。请确保数据库服务器与应用程序服务器之间的网络连接稳定,没有任何防火墙或网络配置限制。

    以下是一些可能的解决方案:

    1. 检查数据库服务器的负载:确保数据库服务器的负载不过高,并在非高峰时段尝试重新连接。

    2. 调整连接池配置:根据您的具体需求和服务器资源,适当调整连接池的配置参数,如最大活动连接数(maxActive)和最大等待时间(maxWait)。您可以尝试增加maxActive的值,并适当增加maxWait的值来增加连接的可用性。

    3. 检查网络连接:确保数据库服务器和应用程序服务器之间的网络连接稳定,并且没有任何防火墙或网络配置限制。您可以尝试使用ping命令测试网络连接的可达性。

    4. 更新数据库驱动程序:尝试更新使用的SQL Server JDBC驱动程序版本,以确保使用的是最新的驱动程序版本,以解决一些已知的问题和错误。

    希望以上信息对您有帮助。如果您还有其他问题,请随时提问。

    2023-07-11 17:13:25
    赞同 展开评论 打赏
  • 可能是因为Druid连接池无法获取足够的连接池连接。
    具体来说,Druid连接池使用连接池连接来提供数据库连接池服务,如果连接池连接不足,Druid连接池就无法提供数据库连接池服务。

    2023-07-11 10:33:13
    赞同 展开评论 打赏
  • 连接不够用或者连接泄露了

    原回答者GitHub用户wenshao

    2023-07-06 12:16:40
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS计算与存储分离架构实践 立即下载