3

我们不时得到其中的一些:

Caused by: javax.ejb.EJBException: org.jclouds.http.HttpResponseException: 
command: PUT {{PUT_URL}} 
HTTP/1.1 failed with response: HTTP/1.1 408 Request Timeout; 
content: [<html><h1>Request Timeout</h1><p>The server has waited too long for the request to be sent by the client.</p></html>]

稍后重试通常有效。是什么导致了这个异常?有没有办法快速增加超时时间?

4

2 回答 2

1

您的问题没有详细的正确信息。

如果您是开发人员,则可以使用以下内容:

import static org.jclouds.Constants.*;


  Properties overrides = new Properties();
  overrides.setProperty(PROPERTY_MAX_CONNECTIONS_PER_CONTEXT, 20 + "");
  overrides.setProperty(PROPERTY_MAX_CONNECTIONS_PER_HOST, 0 + "");
  overrides.setProperty(PROPERTY_CONNECTION_TIMEOUT, 5000 + "");
  overrides.setProperty(PROPERTY_SO_TIMEOUT, 5000 + "");
  overrides.setProperty(PROPERTY_IO_WORKER_THREADS, 20 + "");
  // unlimited user threads
  overrides.setProperty(PROPERTY_USER_THREADS, 0 + "");


  Set<Module> wiring =  ImmutableSet.of(new EnterpriseConfigurationModule(), new Log4JLoggingModule());

  // same properties and wiring can be used for many services, although the limits are per context
  blobStoreContext = ContextBuilder.newBuilder("s3")
                      .credentials(account, key)
                      .modules(wiring)
                      .overrides(overrides)
                      .buildView(BlobStoreContext.class);
  computeContext = ContextBuilder.newBuilder("ec2")
                      .credentials(account, key)
                      .modules(wiring)
                      .overrides(overrides)
                      .buildView(ComputeServiceContext.class);

以下是来自JClouds 配置文档的引用:

Timeout:聚合命令将根据需要完成,由 FutureIterables.awaitCompletion 控制。如果您需要增加或减少此值,则需要调整属性 jclouds.request-timeout 或 Constants.PROPERTY_REQUEST_TIMEOUT。这在“高级配置”部分中进行了描述。

如果您正在处理自己的集群,那么您可以使用 swift proxy-server-configuration中存在的一些可能的配置选项。

于 2013-12-04T12:45:48.000 回答
1

jclouds 1.7.2 包含对此问题的修复:

https://issues.apache.org/jira/browse/JCLOUDS-342

于 2014-02-25T18:47:32.133 回答