我们正在使用 / api / replication / execute (https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-Pull/PushReplication)上的REST API触发2个Artifactory实例之间的本地存储库复制。服务器之间有相当大的距离;来源是欧洲,目的地是澳大利亚。
在源服务器上,我们看到如下异常:
2018-11-08 19:22:39,242 [art-exec-23] [ERROR] (o.a.a.c.BasicStatusHolder:214) - Error occurred while performing folder replication for 'somerepo-local:': Read timed out
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:139)
at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:155)
at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:284)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:261)
at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:165)
at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:167)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:272)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:124)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:71)
at org.jfrog.client.http.CloseableHttpClientDecorator.doExecute(CloseableHttpClientDecorator.java:104)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
at org.artifactory.addon.replication.core.context.RemoteRequestExecutor.executeMethod(RemoteRequestExecutor.java:32)
at org.artifactory.addon.replication.core.BaseReplicationProducer.fullTree(BaseReplicationProducer.java:155)
at org.artifactory.addon.replication.core.BaseReplicationProducer.produce(BaseReplicationProducer.java:146)
at org.artifactory.addon.replication.core.BaseReplicationProducer.run(BaseReplicationProducer.java:71)
at org.artifactory.addon.replication.core.push.full.PushReplicationProducer.execute(PushReplicationProducer.java:81)
at org.artifactory.addon.replication.core.push.full.FullReplicationStrategySelector$FullReplication.execute(FullReplicationStrategySelector.java:156)
at org.artifactory.addon.replication.core.push.full.PushReplicator.replicate(PushReplicator.java:52)
at org.artifactory.addon.replication.core.push.full.PushReplicator.replicate(PushReplicator.java:26)
at org.artifactory.addon.replication.core.ReplicationAddonImpl.performLocalReplication(ReplicationAddonImpl.java:102)
at org.artifactory.repo.replication.PushReplicationJob.handleReplication(PushReplicationJob.java:154)
at org.artifactory.repo.replication.PushReplicationJob.onExecute(PushReplicationJob.java:81)
at org.artifactory.schedule.quartz.QuartzCommand.execute(QuartzCommand.java:48)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.artifactory.concurrent.ArtifactoryRunnable.run(ArtifactoryRunnable.java:30)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
我知道从UI配置复制时可以配置套接字超时。但是,有人知道是否可以通过这种方式触发“临时”复制的超时设置吗?
请注意,这不是我们从UI配置复制的选项,因为我们需要复制到多个目标,并且我们的许可证不支持“多次推送”