Mule
  1. Mule
  2. MULE-5499

Issues with TCP transport packet size and communication reliability

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Won't Fix or Usage Issue
    • Affects Version/s: 3.1.1
    • Fix Version/s: None
    • Component/s: Core: (other)
    • Labels:
    • Environment:

      Test

    • User impact:
      Low
    • Effort points:
      5
    • Configuration:
      Hide

      <?xml version="1.0" encoding="UTF-8"?>
      <mule xmlns="http://www.mulesoft.org/schema/mule/core"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:tcp="http://www.mulesoft.org/schema/mule/tcp"
      xsi:schemaLocation="
      http://www.mulesoft.org/schema/mule/core
      http://www.mulesoft.org/schema/mule/core/3.0/mule.xsd
      http://www.mulesoft.org/schema/mule/tcp
      http://www.mulesoft.org/schema/mule/tcp/3.0/mule-tcp.xsd">

      <configuration>
      <default-dispatcher-threading-profile maxThreadsIdle="161" threadTTL="10000" poolExhaustedAction="RUN" threadWaitTimeout="10000" doThreading="true" maxBufferSize="9839" maxThreadsActive="161" />
      <default-receiver-threading-profile maxThreadsIdle="161" threadTTL="10000" poolExhaustedAction="RUN" threadWaitTimeout="10000" doThreading="true" maxBufferSize="9839" maxThreadsActive="161" />
      </configuration>

      <tcp:connector name="tcpConnectorOUT" validateConnections="false" socketSoLinger="10000" keepSendSocketOpen="false" clientSoTimeout="10000" serverSoTimeout="10000" >
      <tcp:direct-protocol payloadOnly="true" />
      </tcp:connector>

      <tcp:connector name="tcpConnectorIN" validateConnections="false" keepAlive="true" socketSoLinger="10000" keepSendSocketOpen="false" clientSoTimeout="10000" serverSoTimeout="10000" >
      <tcp:direct-protocol payloadOnly="true" />
      </tcp:connector>

      <tcp:endpoint name="TcpClientEndpoint" host="10.150.191.122" port="11222" connector-ref="tcpConnectorOUT" />
      <tcp:endpoint name="TcpServerEndpoint" host="10.150.133.36" port="11221" connector-ref="tcpConnectorIN"/>

      <flow name="main-flow">
      <tcp:inbound-endpoint ref="TcpClientEndpoint" exchange-pattern="request-response"/>
      <tcp:outbound-endpoint ref="TcpServerEndpoint" exchange-pattern="request-response"/>
      </flow>
      </mule>

      Show
      <?xml version="1.0" encoding="UTF-8"?> <mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tcp="http://www.mulesoft.org/schema/mule/tcp" xsi:schemaLocation=" http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/3.0/mule.xsd http://www.mulesoft.org/schema/mule/tcp http://www.mulesoft.org/schema/mule/tcp/3.0/mule-tcp.xsd "> <configuration> <default-dispatcher-threading-profile maxThreadsIdle="161" threadTTL="10000" poolExhaustedAction="RUN" threadWaitTimeout="10000" doThreading="true" maxBufferSize="9839" maxThreadsActive="161" /> <default-receiver-threading-profile maxThreadsIdle="161" threadTTL="10000" poolExhaustedAction="RUN" threadWaitTimeout="10000" doThreading="true" maxBufferSize="9839" maxThreadsActive="161" /> </configuration> <tcp:connector name="tcpConnectorOUT" validateConnections="false" socketSoLinger="10000" keepSendSocketOpen="false" clientSoTimeout="10000" serverSoTimeout="10000" > <tcp:direct-protocol payloadOnly="true" /> </tcp:connector> <tcp:connector name="tcpConnectorIN" validateConnections="false" keepAlive="true" socketSoLinger="10000" keepSendSocketOpen="false" clientSoTimeout="10000" serverSoTimeout="10000" > <tcp:direct-protocol payloadOnly="true" /> </tcp:connector> <tcp:endpoint name="TcpClientEndpoint" host="10.150.191.122" port="11222" connector-ref="tcpConnectorOUT" /> <tcp:endpoint name="TcpServerEndpoint" host="10.150.133.36" port="11221" connector-ref="tcpConnectorIN"/> <flow name="main-flow"> <tcp:inbound-endpoint ref="TcpClientEndpoint" exchange-pattern="request-response"/> <tcp:outbound-endpoint ref="TcpServerEndpoint" exchange-pattern="request-response"/> </flow> </mule>
    • Migration Impact:
      Can not move ahead with the implementation due to critical TCP transport issues
    • Similar Issues:
      MULE-940TCP dispatcher sometimes truncates outgoing packets consumed by an external application
      MULE-1490Mina based TCP transport
      MULE-1610Issue sending message to File Directory using Mule 1.3.3
      MULE-1985Make TCP protocol more user-friendly
      MULE-1718Fix the TCP MuleMessageProtocolChunkingTestCase
      MULE-103Tcp provider not handling large messages
      MULE-3943TCP Transport sends message properties as well as payload
      MULE-2092TCP Documentation
      MULE-2153Verify correct use of TCP_NODELAY in tcp/http transports
      MULE-4863Implement inbound client connections for TCP transport

      Description

      TCP transport will transfer at most 2896 bytes per conversation.
      Using the supplied configuration...

      Used the test harness to transfer over direct, streaming, and length protocols

      Failure occurs with length protocol – exceptions from MULE
      Failure occurs with streaming protocol – result is mule NullException
      Failure occurs with direct protocol – limited-size or NullException during transfer of payload

      Changed kernel parameters and increased NIC buffer settings
      Set Java to 3 GB of available memory

        Activity

        Hide
        Ramiro Rinaudo added a comment -

        If this is still a problem, please attach the configuration and expected behaviour and reopen the issue.

        Show
        Ramiro Rinaudo added a comment - If this is still a problem, please attach the configuration and expected behaviour and reopen the issue.

          People

          • Assignee:
            Unassigned
            Reporter:
            Zon Behrbaum
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development