Configuring the TCPIPServerOutput node

Use the TCPIPServerOutput node to create a server connection to a raw TCP/IP socket, and to send data over the connection to an external application.

About this task

When you have put an instance of the TCPIPServerOutput node into a message flow, you can configure it (for more information, see Configuring a message flow node). The properties of the node are displayed in the Properties view. All mandatory properties for which you must enter a value (those that do not have a default value defined) are marked with an asterisk in that view.

To configure the TCPIPServerOutput node, set the following properties.

Procedure

  1. Optional: On the Description tab, enter a short description, a long description, or both. You can also rename the node on this tab.
  2. On the Basic tab, set the properties that determine how the TCP/IP connection is controlled.
    • Use the Connection details property to specify the port number to be used, or the name of a configurable service. This property is mandatory. The following formats are supported:
      • Configurable service name. This value is used to look up the port number in configurable services; for example, TCPIPProfile1.
      • <Port>. This value is the port number; for example, 1111
      • <Port>. This value is the port number. In this case the host name is assumed to be localhost.
    • Use the Timeout sending a data record (seconds) property to specify how long the node waits when trying to send data. You can specify any length of time in seconds. When the specified time has been exceeded, all available data is sent to the Failure terminal. The default is 60 seconds.
  3. On the Advanced tab, set the properties that determine how the data stream is controlled.
    • Use the Send to property to specify whether the data is to be sent to one connection or to all available connections.
      • Select One connection to send the message to only one connection, as specified by the node properties and message overrides. This value is the default.
      • Select All available connections to send the data to all available connections.
    • Use the Close connection property to specify when and how to close the connection.
      • Select No to leave the connection open. This value is the default.
      • Select After timeout to close the connection when a timeout occurs.
      • Select After data has been sent to close the connection when the end of the record has been sent.
    • Select Close output stream after a record has been sent to close the output stream as soon as the data has been sent. By default, this property is not selected.
    • Use the Output Stream Modification property to specify whether to reserve or release the output stream. These options are available only if you have not selected the Close output stream after a record has been sent property.
      • Select Leave unchanged to leave the output stream as it was when it entered the node. This value is selected by default.
      • Select Release output stream to specify that this output stream is returned to the pool and is available for use by any output node.
      • Select Reserve output stream (for use by future TCPIP output nodes) to specify that this output stream can be used only by this node and by other output nodes that request it by specifying the connection ID. When the connection input stream is reserved, no other nodes can use it without specifying the correct connection ID.
      • Select Reserve output stream (for use by future TCPIP output nodes) then release after propagate to specify that this output stream can be used only by this node and output nodes that request it by specifying the correct connection ID. After the message has been propagated, this output stream is returned to the pool and becomes available for use by any output node.
    • Use the Input Stream Modification property to reserve the input stream for use only by input and receive nodes that specify the connection ID, or to release the input stream at the end of the message flow.
      • Select Leave unchanged to leave the input stream as it was when it entered the node. This value is selected by default.
      • Select Release input stream to specify that this input stream is returned to the pool and is available for use by any input or receive node.
      • Select Reserve input stream (for use by future TCPIP input and receive nodes) to specify that this input stream can be used only by this node and by other input or receive nodes that request it by specifying the connection ID. When the connection input stream is reserved, no other nodes can use it without specifying the correct connection ID.
      • Select Reserve input stream (for use by future TCPIP input and receive nodes) then release after propagate to specify that this input stream can be used only by this node and receive nodes that request it by specifying the correct connection ID. After the message has been propagated, this input stream is returned to the pool and becomes available for use by any input or receive node.
  4. On the Request tab, specify the location of the data to be written. You can specify the properties on this tab as XPath or ESQL expressions. Content Assist is available in the Properties view and also in the XPath Expression Builder, which you can call by using the Edit button to the right of each property.
    1. In Data location, specify the input data location, which is the location in the input message tree that contains the record to be written. The default value is $Body, which is the entire message body ($InputRoot.Body).
      When you specify this property, if the data in the message tree that it identifies is owned by a model-driven parser (such as the MRM parser or XMLNSC parser,) be aware of the following considerations:
      • If you are using MRM CWF format, ensure that the identified message tree exists as a message definition. If this message tree is defined as a global element only, exceptions BIP5180 and BIP5167 are generated.
      • If you are using MRM TDS format, the serialization of the identified message is successful if the element is defined as a global element or message. However, if the identified field is not found as a global element or message, note that:
        • If this field is a leaf field in the message tree, the field is written as self-defining. No validation occurs even if validation is enabled.
        • If this field is a complex element, an internal exception is generated, BIP5522, indicating that the logical type cannot be converted to a string.
      • If you are using MRM XML, the events are similar to the MRM TDS format except that, if the field is a complex element, it is written as self-defining.
      • If you use the XMLNSC parser, no validation occurs, even if validation is enabled.
    2. In Port location, specify the location of the value to override the Port that is set in the Connection details property of the Basic tab. If you do not specify a location, the default value is $LocalEnvironment/Destination/TCPIP/Output/Port.
    3. In ID location, specify the location of the Id of the socket being used. This internal identifier is used by IBM® Integration Bus to uniquely identify a connection. If you do not specify a location, the default value is $LocalEnvironment/Destination/TCPIP/Output/Id.
    4. In Reply ID location, specify the location of the Reply ID that is stored on the connection that is being used. The Reply ID can be used when data is returned in an input node. If you do not specify a location, the default value is $LocalEnvironment/Destination/TCPIP/Output/ReplyId.
  5. Use the Records and Elements tab to specify how the TCPIPServerOutput node writes the record that is derived from the message.
    • In Record definition, choose from the following values:
      • Record is Unmodified Data specifies that records are left unchanged. This value is the default.
      • Record is Fixed Length Data specifies that records are padded to a specified length if necessary. You specify this length in the Length property. If the record is longer than the value specified in Length, the node generates an exception. Use the Padding byte property to specify the byte to be used for padding the message to the required length.
      • Record is Delimited Data specifies that records are separated by a delimiter and accumulated by concatenation. The delimiter is specified by the Delimiter, Custom delimiter, and Delimiter type properties. The file is finished only when a message is received on the Finish File terminal.
    • In Length, specify the length (in bytes) of records when Record definition is set to Record is Fixed Length Data. Records longer than this value cause an exception to be thrown. This value must be in the range 1 byte through 100 MB. The default is 80 bytes.
    • When Record definition is set to Record is Fixed Length Data, use Padding byte to specify the byte to be used when padding records to the specified length if they are shorter than this length. Specify this value as two hexadecimal digits. The default value is X'20'.
    • In Delimiter, specify the delimiter to be used if you set Record definition to Record is Delimited Data. Choose from:
      • Broker System Line End specifies that a line end sequence of bytes is used as the delimiter as appropriate for the file system on which the integration node is running. This value is the default. For example, on Windows systems, this line end is a 'carriage-return, line-feed' pair (X'0D0A'); on UNIX systems, it is a single 'line-feed' byte (X'0A'); on z/OS® systems, it is a 'newline' byte (X'15').
      • Custom Delimiter specifies that the explicit delimiter sequence defined in the Custom delimiter property is to be used to delimit records.
    • In Custom delimiter, specify the delimiter sequence of bytes to be used to delimit records when Delimiter is set to Custom Delimiter. Specify this value as an even-numbered string of hexadecimal digits. The default is X'0A' and the maximum length of the string is 16 bytes.
    • If you set Record definition to Record is Delimited Data, use Delimiter type to specify how the delimiter is to separate records. Choose from the following values:
      • Postfix specifies that the delimiter is added after each record that is written. This value is the default.
      • Infix specifies that the delimiter is inserted between any two adjacent records only.
  6. On the Validation tab, specify the parser validation properties of the node. For more information about validation, see Validating messages. For information about how to provide validation for this tab, see Validation tab properties.