我使用SymmetricDS在服务器(Windows 10机器(和客户端(Ubuntu机器-谷歌计算引擎(数据库之间同步数据。这需要我在两个系统之间建立一个连接。
我在Windows机器上使用PuTTY创建了一个到客户端的SSH隧道,所有这些都运行良好。
当然,当连接不明确/意外关闭时,与客户端机器的SSH连接会终止,需要手动重新启动。因此,我正在尝试PuTTY的叉子,它被称为KiTTY。Kitty可以选择自动重新启动SSH连接。
我的目标是让SymmetricDS在KiTTY恢复ssh连接后恢复同步。
我面临的问题:
我在两台机器上都启动了SymmetricDS,并在服务器上启动了ssh连接。(一切都很完美(。然后我有目的地断开以太网电缆。然后我等待30秒左右,然后恢复互联网连接。然后KiTTY会自动重新启动ssh连接。但是,SymmetricDS不会恢复同步。它在客户端抛出以下错误:
DataLoaderService - Failed to process batch java.net.SocketTimeoutException: Read timed out
at java.base/java.net.SocketInputStream.socketRead0(Native Method)
at java.base/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)
at java.base/java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140)
etc
在断开互联网连接之前,我检查了正在使用的端口:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1382/sshd
tcp 0 0 0.0.0.0:31415 0.0.0.0:* LISTEN 2110/java
tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 1972/sshd: gce_uname@p
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1364/mysqld
在互联网连接被断开并恢复后,我再次进行了同样的检查:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1382/sshd
tcp 0 0 0.0.0.0:31415 0.0.0.0:* LISTEN 2110/java
tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 1972/sshd: gce_uname@p
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1364/mysqld
这表明没有变化。
然后我停止SymmetricDS,它释放了端口31415(它使用的(:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1382/sshd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1364/mysqld
当我再次启动symmetricDS时,它再次开始在端口31415上侦听:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1382/sshd
tcp 0 0 0.0.0.0:31415 0.0.0.0:* LISTEN 2110/java
tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 1972/sshd: gce_uname@p
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1364/mysqld
但再次抛出错误:
Could not communicate with omni:000:000 at http://localhost:9090/sync/omni-000 because: java.net.ConnectException: Connection refused (Connection refused)
我已经测试了好几次了,但还是不断地抛出同样的错误。
有什么想法吗?
SymmetricDS与使用网络的任何其他Java应用程序一样。尝试通过访问测试连接http://localhost:9090/sync/omni-000/ping。如果使用其他应用程序再次出现此问题,则很可能是您的网络出现问题。