当前位置: 首页 > 知识库问答 >
问题:

如何保持与Spring Boot,Hibernate和WebSphere应用服务器的连接

温星华
2023-03-14

我的应用程序使用以下框架和应用程序服务器:

>

WebSphere Application Server Liberty for BluemixJava

应用程序工作正常,但在运行数小时后连接超时。请参见以下例外情况:

2017-09-01T11:40:40.57+0900 [APP/PROC/WEB/0] OUT 2017-09-01 02:40:40,563 [http-nio-8080-exec-2] [5baba2cb-5bfd-4846-b8e0-8782aa729639] [] WARN  o.h.e.jdbc.spi.SqlExceptionHelper [SqlExceptionHelper.java:127] - SQL Error: -4499, SQLState: 08001 
2017-09-01T11:40:40.58+0900 [APP/PROC/WEB/0] OUT or socket output stream.  Error location: Reply.fill() - socketInputStream.read (-1).  Message: Connection timed out (Write failed). ERRORCODE=-4499, SQLSTATE=08001 

我知道Spring Boot需要在application.properties.中设置配置属性

spring.datasource.testOnBorrow=true
spring.datasource.testWhileIdle=true
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.numTestsPerEvictionRun=3
spring.datasource.minEvictableIdleTimeMillis=600000
spring.datasource.validationQuery=SELECT 1

然而,我发现在Spring boot 1.3中,我们必须使用它们各自的前缀(Spring.datasource.tomcat.,Spring.datasource.hikari.,和Spring.datasource.dbcp2.*)使用特定于实现的设置,并且(显然)不支持Websphere Application Server Liberty概要文件。

我的问题是,我应该如何配置以保持连接活动(或更新它们)?

提前谢谢你!

共有1个答案

杜诚
2023-03-14

您使用的是什么数据源?在本例中,我们使用的是tomcat,这是默认选项。所以我们有

# DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource.tomcat.test-on-borrow=true
spring.datasource.tomcat.test-while-idle=true
spring.datasource.tomcat.time-between-eviction-runs-millis=300000
spring.datasource.tomcat.validation-query=SELECT 1
 类似资料:
  • 当应用程序完全关闭时,Whatsapp如何保持与套接字的连接。 它要求APNS推送首先唤醒应用程序,然后重新建立连接。但是WhatsApp怎么样?似乎是Appstore的合规问题?但是AppStore允许许多应用程序在后台运行,但它是否允许Pubnub或有连接的应用程序在后台保持活力?

  • 问题内容: 我正在使用redis在nodejs应用程序中提供会话支持。我已经安装了redis服务器,当我运行redis- server时,它可以工作,但是当我关闭终端redis时,它停止工作,并且不起作用。关闭终端后如何保持Redis服务器运行? 问题答案: 将Redis作为守护程序启动的最简单方法是编辑配置文件并更改以下行: 启动配置文件时,请确保在redis-server命令行上提供该配置文件

  • 我已经在IBM WebSphere8.5上部署了Ear文件。当我使用我的应用程序时,它给了我一个ClassNotFoundException,但是它给出异常的类在jar文件中,而这个文件已经在ear文件中了。那么,你能告诉我这个问题的原因是什么吗?我们是否需要在websphere中配置一些东西,以便它将这些JAR添加到类路径中?

  • 我试图将我的小应用程序从Tomcat迁移到WebSphere。为了做到这一点,我从头开始重新构建它,分别处理主要组件。我正在纠结webSphere Liberty上的数据访问/ JNDI。我明白了 javax.naming.NameNotFoundException:javax.naming.NameNotFoundException: java: comp/env/jdbc/test SERVE

  • 我目前正在开发一个支持保活连接的多线程代理服务器。在处理来自火狐浏览器的请求时,我看到了一些奇怪的问题。我使用localhost:10001/http://url连接到我的本地代理,我可以访问这个主机上的所有链接。过程如下。1.创建一个套接字,将其绑定到端口10001 2.接受连接,如果客户端连接了fork()3.继续将客户端请求处理为持久连接。 现在的问题是,当我在Firefox中打开一个新选项

  • 问题内容: 我想在我们的其中一台Web服务器上进行一些性能测试,以了解服务器如何处理大量持久连接。不幸的是,我对HTTP和Web测试不是很熟悉。这是到目前为止我已经获得的Python代码: 我的主要问题是: 如何保持这些连接的生命? 我设置了很长的超时时间,但这是一种非常粗糙的方法,我甚至不确定它是否会影响连接。是否只是偶尔偶尔请求一两个字节? (此外,与我代码末尾的丑陋块相比,还有一个更好的过程