Iso8583 ingress connector

ISO8583 Ingress Connector

Version: 17.07

Supported Since: 17.07

What is ISO8583 Ingress Connector?

ISO8583 Ingress Connector can be used as a server which accept ISO8583 messages over TCP. This connector converts accepted ISO8583 messages to a platform specific format, which later can be manipulated using ISO8583 processors.

In order to use the ISO8583 Ingress 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 ingress port

Out Ports

Processor

The message will be emitted from this out port after an ISO8583 message has been received. The payload of the message will not be binary & it will be a platform specific message format for ISO8583.

On Exception

The message will be emitted from this out port if the processing element fails to parse the received ISO8583 message

Input

The message sent to this out port will be sent as the response to the TCP Client which initiated the request

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.

Local Bind Address

Basic

The local bind address. If not specified, binds on all interfaces by default

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

Response Timeout

Advanced

Time in milliseconds after which the request timeouts

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

Send 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 messages 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 String. When a message is received as the response, it expects the bitmap to be binary and the 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