Skip to content

TCP

TCP

The TCP Transport is based on the WCF NetTcp binding and is often used by the Parties hosted in Client Connectors and Service Connectors. It offers ordering, session reliability, batching and large message optimization as options. It is not a durable transport so message loss can occur if no subscribers are online when a message is published.

Parties communicate over TCP configured Topics by establishing a connection to a Service Port. Topics then communicate back to Parties through a Client Port. The Service Port and range of Client Ports to be used for all Party communication can be manually configured with additional TCP specific properties.

Using the TCP Transport has the following system requirements:

  • No additional requirements

Transactional considerations:

  • TCP Transport does not support transactions

Firewall considerations:

  • Ports must be open for the Client Port Range and the Service Port configured in the TCP Transport Property Page
Security

The TCP Transport provides an extra level of security represented by the Secure property. If Secure is set to True, Windows Message level security will be applied to all communication flowing over the Topic. This is a highly secure form of communication that uses Windows credentials to encrypt and sign each individual message that is published to a Topic.

Configuration Constraints
  • Kerberos must be properly configured in the Active Directory domain.
  • Large Message Optimization must be set to False.
  • Performance will be significantly impacted.
Running Neuron ESB Service using domain level account
  • The account must be trusted for delegation.
  • Publishers and Subscribers can successfully connect locally (on the same machine that the Neuron ESB service is running on) or from remote machines
  • A UPN is used by the Publishers and Subscribers to connect to a secure Topic.
  • The esbServiceIdentity attribute in the client configuration file MUST be set to use the UPN of the account that the Neuron ESB Service is running under.  For example, if the Neuron ESB Service was running under the context of the “CORP\DomainUser” account, then the esbServiceIdentity attribute must be set as follows:
    <?xmlversion="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
        <add key="esbZone" value="Enterprise"/>
        <add key="esbServiceAddress" value="net.tcp://localhost:50000/ESBBootstrapService/"/>
        <add key="esbServiceIdentity" value="
    upn:CORP\DomainUser"/>
      </appSettings>
    </configuration>
Running Neuron ESB Service using Local System account
  • The HOST SPNs must be properly set. If necessary use setSPN to either reset the HOST SPNs or add a new one (https://technet.microsoft.com/en-us/library/cc773257(WS.10).aspx ).
  • Publishers and Subscribers can ONLY connect locally (on the same machine that the Neuron ESB service is running on). Remote connections are not supported.
  • A SPN is used by the Publishers and Subscribers to connect to a secure Topic.
  • The esbServiceIdentity attribute in the client configuration file does not need to be set. A Publisher and Subscriber will use the following default SPN to connect to the Topic

    Spn:host/machinename

    Where machinename is the name of the local server that the Neuron ESB Party is hosted on.  the esbServiceIdenity attribute can be overridden by setting its value in the client configuration file. For example, if the Neuron ESB Service was running under the context of the “Local System” account and the local machine name was “Machine1”, then the esbServiceIdentity attribute can be set as follows:

    <?xmlversion="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
        <add key="esbZone" value="Enterprise"/>
        <add key="esbServiceAddress" value="net.tcp://localhost:50000/ESBBootstrapService/"/>
        <add key="esbServiceIdentity" value="
    spn:host/Machine1"/>
     </appSettings>
    </configuration>

All configurable properties for the TCP Transport are located on the Transport Property page of the Details Pane.

TCP Transport Property Table
Property NameRequiredDescription
Allow Output Batching                                     YesDefault is False.  Uses WCF output batching. If configuring a Topic for request/response traffic, this should be set to False to reduce latency.
Client Base PortYesDefaults to 61007. This is the beginning port for the port range that the Neuron ESB Service uses to communicate with connected Parties.
Client Port RangeYesDefaults to 1000. This is the range of client ports, starting from the Client Base Port, that can are assigned to connected Parties by the Neuron ESB Service. Each Party is assigned one client port dynamically. This port is used by the Neuron ESB publishing service to communicate to the Party.
Large Message OptimizationYesDefault is False. If True, enables streaming on the internal NetTcp binding.
OrderedYesDefault is False.  Provides Ordered delivery of messages when used with Reliable property. Must be set to False if Secure is set to True
ReliableYesDefault is False.  Provides WCF Reliable Sessions
SecureYesDefault is False. Provides Message level encryption and signing using Windows security. This requires Kerberos to be setup appropriately for Neuron ESB Service in the environment.
Service PortYesDefault is 500XX. This is the port that Parties use to communicate with the Neuron ESB publishing service. This must be unique for each Topic. When a new Topic is created, the port selected will fall within the range specified by the TCP Service property, located on the Ports tab of the Zone’s Detail Pane.
Was this article helpful?
Dislike 0
Previous: Peer
Next: MSMQ