3

When publishing content to a HTTP Deployer in AWS China we always get a transport failed error.

The logs show:

2015-10-04 16:51:02,481 ERROR HTTPSTransportConnector - Unable to execute HTTP POST
java.net.SocketException: Connection reset by peer: socket write error
    at java.net.SocketOutputStream.socketWrite0(Native Method) ~[na:1.7.0_45]
    at java.net.SocketOutputStream.socketWrite(Unknown Source) ~[na:1.7.0_45]
    at java.net.SocketOutputStream.write(Unknown Source) ~[na:1.7.0_45]
    at org.apache.http.impl.io.AbstractSessionOutputBuffer.write(AbstractSessionOutputBuffer.java:153) ~[httpcore.jar:4.1.4]
    at org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:114) ~[httpcore.jar:4.1.4]
    at org.apache.http.entity.mime.content.FileBody.writeTo(FileBody.java:105) ~[httpmime.jar:4.1.3]
    at org.apache.http.entity.mime.HttpMultipart.doWriteTo(HttpMultipart.java:206) ~[httpmime.jar:4.1.3]
    at org.apache.http.entity.mime.HttpMultipart.writeTo(HttpMultipart.java:224) ~[httpmime.jar:4.1.3]
    at org.apache.http.entity.mime.MultipartEntity.writeTo(MultipartEntity.java:183) ~[httpmime.jar:4.1.3]
    at org.apache.http.entity.HttpEntityWrapper.writeTo(HttpEntityWrapper.java:96) ~[httpcore.jar:4.1.4]
    at org.apache.http.impl.client.EntityEnclosingRequestWrapper$EntityWrapper.writeTo(EntityEnclosingRequestWrapper.java:108) ~[httpclient.jar:4.1.3]
    at org.apache.http.impl.entity.EntitySerializer.serialize(EntitySerializer.java:120) ~[httpcore.jar:4.1.4]
    at org.apache.http.impl.AbstractHttpClientConnection.sendRequestEntity(AbstractHttpClientConnection.java:264) ~[httpcore.jar:4.1.4]
    at org.apache.http.impl.conn.AbstractClientConnAdapter.sendRequestEntity(AbstractClientConnAdapter.java:224) ~[httpclient.jar:4.1.3]
    at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:255) ~[httpcore.jar:4.1.4]
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123) ~[httpcore.jar:4.1.4]
    at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:647) ~[httpclient.jar:4.1.3]
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:464) ~[httpclient.jar:4.1.3]
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820) ~[httpclient.jar:4.1.3]
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754) ~[httpclient.jar:4.1.3]
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732) ~[httpclient.jar:4.1.3]
    at com.tridion.transport.connection.connectors.HTTPSTransportConnector.send(HTTPSTransportConnector.java:384) ~[cd_transport.jar:na]
    at com.tridion.transport.connection.connectors.TransportPoolConnector.send(TransportPoolConnector.java:92) [cd_transport.jar:na]
    at com.tridion.transport.workers.TransportSender.call(TransportSender.java:78) [cd_transport.jar:na]
    at com.tridion.transport.workers.TransportSender.call(TransportSender.java:27) [cd_transport.jar:na]
    at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.7.0_45]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.7.0_45]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.7.0_45]
    at java.lang.Thread.run(Unknown Source) [na:1.7.0_45]

It appears to be connected to the size of the package, but not with regards to to HTTP Deployer itself, as this has generous httpRuntime and requestLimits in web.config.

<?xml version="1.0"?>
<configuration>         
    <system.web>
        <httpRuntime executionTimeout="1800" maxRequestLength="2048000" />
    </system.web>   
    <system.webServer>
        <security>
        <requestFiltering>                                                              
            <requestLimits maxAllowedContentLength="2097152000" />                                              
        </requestFiltering>
        </security>     
    </system.webServer>    
</configuration>

If I publish a small category this succeeds, but just the homepage produces a 25MB package and this always fails.

I've already increased the SendTimeout in cd_transport_conf.xml.

What is actually resetting the connection - IIS, Windows?

I see from other posts, other people have moved to a FTP deployer - is this the accepted solution?

2
  • can you share the configuration in the web.config? Commented Oct 5, 2015 at 7:50
  • Bart - updated with Deployer web.config
    – Neil
    Commented Oct 5, 2015 at 8:33

1 Answer 1

4

This might have something to do with the default connection timeout limit in IIS. You could to increase that if posting data takes longer than 2 minutes. Next, also set the executionTimeout attribute, to ensure there's enough time to upload.

You could move to use FTP as transport protocol, but the same configuration will apply.

1
  • Thanks Raimond - Ill check the default connection timeout, I've already set the executionTimeout,
    – Neil
    Commented Oct 5, 2015 at 9:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.