Iso8583 egress connector

ISO8583 Egress Connector

Version: 17.07

Supported Since: 17.07

What is ISO8583 Egress Connector?

ISO8583 Egress Connector can be used as a client which can be used to send ISO8583 messages to a remote server over TCP. This connector converts a platform specific message format to a sendable ISO8583 message which can be transmitted over a TCP connection.

In order to use the ISO8583 Egress Connector, you must first select the ISO8583 Connector dependency from the connector list when you are creating an empty Ultra project. If you have already created a project, you can add the ISO8583 Connector dependency via Component Registry. From Tools menu, select Ultra Studio → Component Registry and from the Connectors list, select the ISO8583 Connector dependency.
iso8583 egress port

Out Ports

On Exception

The message will be emitted from this out port if the processing element fails to prepare a transmittable TCP message from the received payload

Response Processor

The response message received will be emitted to this port. You can use this port to connect with any processing element or connector that is supposed to process/consume the response.

Parameters

* marked fields are mandatory

ISO8583 Configuration File *

Basic

ISO8583 Configuration file which defines types of data expected in the ISO8583 message. A sample configuration file is given below.

<j8583-config>

    <parse type="0800" extends="0810">

        <field num="3" type="NUMERIC" length="6"/>

        <field num="7" type="DATE10" length="10"/>

        <field num="11" type="NUMERIC" length="6"/>

        <field num="24" type="NUMERIC" length="3"/>

        <field num="30" type="NUMERIC" length="8"/>

        <field num="31" type="NUMERIC" length="8"/>

        <field num="41" type="ALPHA" length="8"/>

        <field num="42" type="ALPHA" length="15"/>

        <field num="70" type="ALPHA" length="3"/>

    </parse>

</j8583-config>

TCP Port *

Basic

Port to listen on

Header Size *

Basic

Header size of ISO8583 message. This should be the number of characters if the message is to be encoded as a String or the number of bits if the message is to be parsed as a binary.

Remote TCP host

Basic

The remote host to send messages to

Message ending character

Basic

TCP listener will stop reading from the channel and inject the message to the engine, once it meets this character. Character should be specified in it’s hexadecimal representation.

Use binary bitmap

Basic

If this option is checked, bitmap of the message will be parsed as binary

Use binary message

Basic

If this option is checked, message will be parsed as binary

Destination Address type

Basic

There are two possible values for destination type,

  • DEFAULT

  • SPECIFIED

If DEFAULT is selected, egress connector will deliver the message into the target destination defined in the message. If SPECIFIED is selected, egress connector will deliver the message into the specified destination host and destination port. Default value is DEFAULT

Egress Timeout

Advanced

Time in milliseconds after which the egress message timeouts

Weight

Advanced

Weight of the Egress endpoint when used with a Load Balancer

Pool sender connections

Transport Configuration

Determines whether sender connections need to be pooled or not. Connection pooling is disabled by default

Session Validation Period

Transport Configuration

Determines the time interval in milliseconds at which the I/O reactor wakes up to check for timed out sessions and session requests. (Default value is equal to 1000 milliseconds)

Shutdown Grace Period

Transport Configuration

Grace period in milliseconds, the IO reactors are expected to block waiting for individual worker threads to terminate cleanly. Default value is equal to 1000 milliseconds

Interest Ops Queued

Transport Configuration

Determines whether NIO interest ops need to be queued or not. This should be false for Sun/Oracle JDKs and true for IBM JDK. Default value will be assigned appropriately

IO thread count

Transport Configuration

Number of IO Threads to be assigned to accept requests

Socket Timeout

Transport Configuration

Timeout for waiting for data in milliseconds

Reuse Address

Transport Configuration

Allows to bind with a recently closed socket

Socket Linger

Transport Configuration

Specifies a linger on close timeout. Default value is equal to -1 and it will not set a timeout

Socket Keep Alive

Transport Configuration

Determines whether to keep the connection alive when not in use. Default value is true

TCP No Delay Mode

Transport Configuration

Determines whether Nagle’s algorithm to be used (Uses when not selected)

Connect Timeout

Transport Configuration

Determines the default connect timeout value for non-blocking connection requests

Received Buffer Size

Transport Configuration

Size of the internal socket buffer used to buffer data while sending. Default value is equal to 8*1024

Receive Buffer Size

Transport Configuration

Size of the internal socket buffer used to buffer data while receiving. Default value is equal to 8*1024

Back Log Size

Transport Configuration

Determines the default backlog size value for server socket binds. Default value is equal to 0

Continue on runtime exceptions

Transport Configuration

Whether the engine should continue the execution during an occurrence of a runtime exception. If set to false, engine will shutdown and restart on such a situation

Continue on checked exceptions

Transport Configuration

Whether the engine should continue the execution during an occurrence of a checked exception. If set to false, engine will shutdown and restart on such a situation

Auto Restart Attempts

Transport Configuration

Number of attempts the IO reactors should try to restart. Default value is 3

Time to Wait Before Restart

Transport Configuration

Time to wait in between IO reactor restart attempts. Default value is equal to 1000 milliseconds.

Sample Use Case

iso8583 flow
Figure 1. Complete flow of the sample use case

In this case, the flow is accepting an ISO8583 message from a client and extracts out a field out of that message before sending it to the intended destination. When it receives the response from the ISO8583 server, this flow will attach a new field to the outgoing message and send it as the response for the original client.

iso8583 flow ingress config
Figure 2. Configuring ISO8583 ingress connector to accept messages over port 9000

Here Local Bind Address is kept blank, so the connector will bind to all interfaces in the system.

Use binary bitmap has been checked and Use binary message has been unchecked. Therefore the connector will consider the header as binary when parsing the message inorder to convert it to a platform specific message format.

iso8583 flow extract config
Figure 3. Configuring ISO8583 Field Extractor to extract field 7.

ISO8583 Field extractor has been configured to extract field 7 from the incoming message and persist that value as a context variable with the key DATE.

iso8583 flow log config
Figure 4. Configuring Logger to log extracted field to the console.

Logger processing element has been configured to log the extracted field as an INFO log to the console.

iso8583 flow egress config
Figure 5. Configuring ISO8583 egress connector to send message to a remote server

ISO8583 Egress Connector has been configured to forward original message to port 8500 of iso.bank-x.com. Other configurations behave similar to the ingress connector and they are applied to both outgoing and incoming response message through the egress connector.

As an example, when converting a platform specific message format to a ISO8583 TCP message, only the bitmap will be kept as binary while other parts will be encoded to a String. When a message is received as the response, it expects bitmap to be binary and rest to be encoded as a String.

iso8583 flow setter config
Figure 6. Configuring ISO8583 field setter to set a custom value to outgoing message

As the final step of the flow, a custom field is attached to the outgoing message using ISO8583 Field Setter processing element.

In this topic
In this topic
Contact Us