Java VPN上的连接超时
我有一个用mssql jdbc驱动程序连接SQL Server的Java程序。但是一些用户通过VPN使用这个程序,在过去的几天里,我们遇到了导致速度缓慢的VPN问题。当我ping时,具有SQL实例的机器返回1800ms ping。上周这个ping是400~600ms。 当ping超过800ms时,Java向我返回一个超时,因此使用VPN的用户无法连接 我曾尝试在Java连接字符串中将登录超时设置为10分钟以进行测试,但即使这样,连接也总是返回超时。这只发生在ping超过800毫秒时,所以我不认为问题可能是端口、防火墙或类似的东西Java VPN上的连接超时,java,sql-server,jdbc,mssql-jdbc,Java,Sql Server,Jdbc,Mssql Jdbc,我有一个用mssql jdbc驱动程序连接SQL Server的Java程序。但是一些用户通过VPN使用这个程序,在过去的几天里,我们遇到了导致速度缓慢的VPN问题。当我ping时,具有SQL实例的机器返回1800ms ping。上周这个ping是400~600ms。 当ping超过800ms时,Java向我返回一个超时,因此使用VPN的用户无法连接 我曾尝试在Java连接字符串中将登录超时设置为10分钟以进行测试,但即使这样,连接也总是返回超时。这只发生在ping超过800毫秒时,所以我不认为
//我的连接代码
DriverManager.setLoginTimeout(60)//将超时设置为60秒
私有静态最终字符串CONNSTRING=“jdbc:sqlserver://server-name\\SQLEXPRESS;databaseName=db_name;“//我的连接字符串
conn=DriverManager.getConnection(CONNSTRING,USER,PASS);
也许我可以在连接字符串中添加另一个属性来解决这个问题?或者我可以在SQL Server中设置一些东西,以便在VPN速度较慢时允许此连接
谢谢你的帮助。你试过
了吗;连接字符串本身中的loginTimeout=60
?这只会影响登录过程中的超时。还有其他与连接相关的超时,例如socketTimeout。IDbCommand具有CommandTimeout属性,在JDBC中通过PreparedStatement.setQueryTimeout()设置该属性。超时是否在连接期间发生?如果没有,则loginTimeout
将无法解决您的问题。当超时发生时,发布异常stacktrace可能对我们也有帮助。@MarkrotVeel这个周末我们的VPN是稳定的,所以我无法获取堆栈跟踪。但是10分钟前我们又超时了。Stacktrace:@AlwaysLearning我今天也尝试了这个,我得到了同样的错误,你需要将它添加到你的问题中(内联,而不是链接)。你尝试过;连接字符串本身中的loginTimeout=60
?这只会影响登录过程中的超时。还有其他与连接相关的超时,例如socketTimeout。IDbCommand具有CommandTimeout属性,在JDBC中通过PreparedStatement.setQueryTimeout()设置该属性。超时是否在连接期间发生?如果没有,则loginTimeout
将无法解决您的问题。当超时发生时,发布异常stacktrace可能对我们也有帮助。@MarkrotVeel这个周末我们的VPN是稳定的,所以我无法获取堆栈跟踪。但是10分钟前我们又超时了。Stacktrace:@AlwaysLearning我今天也尝试了这个,我得到了同样的错误,你需要将它添加到你的问题中(内联,而不是链接)。