Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 空闲服务器上的管道中断异常_Mysql_Sockets_Tcp_Connection Pooling_Dropwizard - Fatal编程技术网

Mysql 空闲服务器上的管道中断异常

Mysql 空闲服务器上的管道中断异常,mysql,sockets,tcp,connection-pooling,dropwizard,Mysql,Sockets,Tcp,Connection Pooling,Dropwizard,我正在使用dropwizard服务器来服务http请求。此dropwizard应用程序以my mysql服务器作为数据存储的备份。但当闲置(过夜)时,会出现“断管异常” 我做了一些我认为可能有用的事情。我将yaml文件中的jdbc url设置为“autoConnect=true”。我还添加了一个“checkOnBorrow”属性。我增加了jvm以使用4gb 这些修复方案都不起作用。 mysql服务器的等待超时和“交互超时”也设置为8小时。 这需要更多/更少吗 还有一个配置属性可以在dropwiz

我正在使用dropwizard服务器来服务http请求。此dropwizard应用程序以my mysql服务器作为数据存储的备份。但当闲置(过夜)时,会出现“断管异常” 我做了一些我认为可能有用的事情。我将yaml文件中的jdbc url设置为“autoConnect=true”。我还添加了一个“checkOnBorrow”属性。我增加了jvm以使用4gb 这些修复方案都不起作用。 mysql服务器的等待超时和“交互超时”也设置为8小时。 这需要更多/更少吗

还有一个配置属性可以在dropwizard yaml文件中设置吗?或者换句话说,dropwizard中如何管理连接池?

问题:

MySql服务器配置了一个超时,在此超时之后,它将终止连接池中的所有空闲连接。在我的情况下,这是默认值(8小时)。但是,数据库连接池不知道池中已终止的连接。因此,当一个新请求传入时,从连接池访问一个死连接,这将导致“断管”异常

解决方案: 所以要解决这个问题,我们需要消除死连接,并让池知道它试图借用的连接是否是死连接。这可以通过在.yml配置中设置以下内容来实现

checkOnReturn:true

对勾:对

checkOnBorrow:true

问题:

MySql服务器配置了一个超时,在此超时之后,它将终止连接池中的所有空闲连接。在我的情况下,这是默认值(8小时)。但是,数据库连接池不知道池中已终止的连接。因此,当一个新请求传入时,从连接池访问一个死连接,这将导致“断管”异常

解决方案: 所以要解决这个问题,我们需要消除死连接,并让池知道它试图借用的连接是否是死连接。这可以通过在.yml配置中设置以下内容来实现

checkOnReturn:true

对勾:对


真的

谢谢,对我来说很好!但是参数是checkconnectionnReturn、checkConnectionWhileIdle和checkConnectionOnBorrow(Dropwizard 0.9.2)谢谢,对我来说效果很好!但是参数是CheckConnectionnReturn、checkConnectionWhileIdle和CheckConnectionOnOnBorrow(Dropwizard 0.9.2)