Java 从网络上的远程数据库获取连接时,大约延迟12秒

Java 从网络上的远程数据库获取连接时,大约延迟12秒,java,database,jdbc,database-connection,derby,Java,Database,Jdbc,Database Connection,Derby,我有一个JavaSwing应用程序,可以访问本地网络上的远程数据库。 我使用的代码如下: Class.forName("org.apache.derby.jdbc.ClientDriver"); conn=java.sql.DriverManager.getConnection("jdbc:derby://10.137.242.182:1527/C:/Users/545404/.netbeans-derby/deviceapp"); return conn; 当我从运行Derby服务器的同一台

我有一个JavaSwing应用程序,可以访问本地网络上的远程数据库。 我使用的代码如下:

Class.forName("org.apache.derby.jdbc.ClientDriver");
conn=java.sql.DriverManager.getConnection("jdbc:derby://10.137.242.182:1527/C:/Users/545404/.netbeans-derby/deviceapp");
return conn;
当我从运行Derby服务器的同一台机器上访问DB时,它工作正常

但是当我从本地网络上的其他系统使用它时。 它有大约10-12秒的延迟来获得连接


请建议一种在本地网络上更快访问DB的正确方法。

我的Derby客户端只需几毫秒即可通过本地网络连接到我的服务器

一定是一些奇怪的网络问题导致了这种延迟。像这样长的几秒钟延迟通常是由DNS配置、防火墙等网络问题引起的


您是否采纳Jon Skeet的建议,使用WireShark检查您的网络活动?WireShark显示了网络访问的哪些信息?

重新启动客户端时是否会获得相同的延迟?(我想知道所讨论的服务器是否正在从磁盘或类似的东西分页回内存。)此外,如果您使用WireShark查看网络级别的情况,这可能会给出一些提示。重新启动客户端并不能解决问题。请回答这是否是通过网络访问DB的正确方式。我从未使用过Derby,但我建议了一种进一步诊断它的方法:查看网络上发生了什么。看起来很奇怪,您实际上是在传递一个文件名作为数据库名。也许这是“正确”的做法,但它确实看起来很奇怪。耶..我知道。。在derby中,有两种连接DB的方式。jdbc:derby://10.137.242.182:1527/deviceapp. 或jdbc:derby://10.137.242.182:1527/C:/Users/545404/.netbeans-derby/deviceapp第一个不起作用,因此我尝试了第二个。。