FIXEdge C++: FIX Session Configuration

FIX Session Configuration

FIX session attributes can be divided into three groups:

  • Static configuration
  • Dynamic state
  • Dynamic attributes

To create a new Session configuration, define the static attributes such as:

  • Identification parameters
  • Specific parameters of the initiator and acceptor sessions
  • Others

The parameters of static configuration define the initial parameters for the dynamic parameters. The static configuration can be changed when the current FIX Session is not connected. The parameters of the static configuration can be modified at any time. If the Session is connected, the changes are stored in the database and only the latest changes are applied when the Session becomes disconnected.

A dynamic state exists only when the Session is connected. FIXICC H2 handles the events which are happened during the endpoint's life cycle. These events come from the FIXEdge Server. For the dynamic state, the sequence of events is important for tracking.

Dynamic attributes also exist only when the Session is connected. FIXICC H2 checks the state of these attributes in a configured time interval. The set of metrics depends on the type of FIXEdge Server. For the dynamic attributes, the snapshot at the moment is important.

Static FIX Session Configuration

  1. Select a Server to add a new Session configuration to.

    Figure. Selecting the Server from the list.

  2. Go from the Servers page to the Server Sessions page by:
    • Clicking FIX in the View drop-down menu on the Servers page (item 1).
    • Clicking the Server Name in the navigation menu and FIX under the Server Name (items 2 and 3).
    • Double-clicking the selected Server configuration.

  3. Then the FIXICC H2 opens the page with the sessions list configured for the selected Server.

    Figure. The Server FIX sessions list.

Adding a new FIX session configuration from scratch

To add a new Session from scratch:

  1. Press Add.

    Figure. The Server Sessions page.

  2. Choose the new session role from the Add drop-down menu:
    • The Initiator is responsible for establishing the connection (TCP/IP) and sending the first Logon message to the Acceptor. There is a set of parameters for Initiator Sessions.
    • The Acceptor performs authentication and replies with the confirming Logon message to the Initiator as a declaration that the FIX Session has been established. In case of a connection failure, the Acceptor waits until the Initiator initiates reconnection. There is a set of parameters for Acceptor Sessions.

You can also create a new session configuration by:

  1. Clicking Create Acceptor Session or Create Initiator Session in the context menu.
  2. When you select a new session role, FIXICC H2 opens the New Session page.

Create an Acceptor Session

To create a new Acceptor Session:

  1. Select Acceptor from:
    • The Add drop-down button.
      OR
    • The context menu.


Figure. The Add Acceptor Session option.

       2.  FIXICC H2 opens the New Session page for a new Acceptor Session.

Figure. The New Session page for Acceptor Session.

Create an Initiator Session

To create a new Initiator Session:

  1. Select Initiator from:
    • The Add drop-down button.
      OR
    • The context menu.

Figure. The Add Initiator Session option.

       2. The FIXICC H2 then opens the New Session page for a new Initiator Session.

The Initiator Session has a specific, mandatory set of parameters to establish a connection:

  • Host - Defines the network IP address of the computer to which the connection is established
  • Port - Defines the port network number on the computer to which the connection is established
  • HeartbeatInterval - Defines the heartbeat interval (seconds) – a time interval between Heartbeat messages. The recommended value is 10 seconds for dedicated connections or private networks. Trading connections via the Internet requires calibration. '0' means that no Heartbeat messages will be sent.

You can see the parameters in the figure below:

Figure. The New Session page for Acceptor Session.

Complete Adding a New Session Configuration

After you've defined the mandatory connection parameters (Host, Heartbeat Interval, and Port), define the mandatory identification parameters that are highlighted in red in the figure above:

  • Name - unique session identifier.
  • SenderCompID - the key parameter for purposes of session identification.  Sets the value of the SenderCompID (49) tag in outgoing FIX messages.
  • TargetCompID - the key parameter for purposes of session identification. Sets the value of the TargetCompID (56) tag in outgoing FIX messages.
  • FIX Version - identifies the session-level FIX protocol version of a message. Sets the value of the BeginString (8) tag in outgoing FIX messages.

You can find the full list of session parameters and descriptions on the Configuring FIX sessions page.

Since the FIXICC H2 23Q1 release the LogDirectory property may be configured for each session specifically.

After specifying all the details, you have the following options:

  • Save the new session configuration by clicking OK.
  • If all mandatory parameters are specified and the Name, SenderCompID, and TargetCompID values are unique, then a new Initiator Session is added to the selected Server and FIXICC H2 displays the sessions table including the new Session configuration.

    If the Session Name is not unique, FIXICC H2 displays the error form with the message 'Session <session-name> already exists'.

    If the session SenderCompID and TargetCompID are not unique, FIXICC H2 displays the error form with the message 'Session with <SenderCompID> and <TargetCompID> already exists'.

    When you click the X button, FIXICC H2 displays the New Session page again to change the duplicated parameters.

    If mandatory parameters aren't specified, FIXICC H2 displays the alert form:

    After the alert form is hidden, FIXICC H2 displays the New Session page again to fill in the mandatory parameters.

  • Cancel the operation by clicking Cancel. Then the FIXICC H2 displays the sessions table without changes
  • Leave the page. If you edited the Session parameters, the FIXICC H2 displays the following warning form:

The FIXICC H2 offers the following options:

  • Save the entered values as a new Session configuration.
    Then a new Session is added to the selected Server and FIXICC H2 displays the sessions table, including the new Session configuration.
  • Skip the changes by clicking Don't save.
    The new Session configuration won't be added. FIXICC H2 displays the sessions table without changes.
  • Stay on the New Session page by clicking Cancel.
    FIXICC H2 displays the New Session page to continue editing.

Cloning an Existing FIX Session Configuration

You have the ability to create a new Session by cloning an existing one and changing the unique parameters.

  1. To clone a Session, select the Session from the session list and click Clone.

    Figure. Clone Session.

OR

  1. Go to the Session Dynamic State page.
  2. Click the Clone item from the additional menu on the Session page of the particular Session.

    Figure. The Clone item from the additional menu.

FIXICC H2 copies the selected Session parameters to a new session and displays the New Session page with the fields filled with the values from the selected Session.

Figure. Cloned Session.

A cloned Session is added with the same identification parameters as the original Session.

You have the same options as you'd see when a new Session is created from scratch:

  • Save a new Session configuration by clicking OK.
  • If all mandatory parameters are specified and the Name, SenderCompID, and TargetCompID are unique, then a new Session is added to the selected Server and FIXICC H2 displays the sessions table including the new Session configuration.

If the Session Name is not unique, FIXICC H2 displays the error form with the message 'Session <session-name> already exists'.

If the session SenderCompID and TargetCompID are not unique, FIXICC H2 displays the error form with the message 'Session with <SenderCompID> and <TargetCompID> already exists'.

When you click the X button, FIXICC H2 displays the New Session page again to change the duplicated parameters.

If mandatory parameters aren't specified, FIXICC H2 displays the alert form:

After the alert form is hidden, FIXICC H2 displays the New Session page again to fill in the mandatory parameters.

  • Cancel the operation by clicking Cancel. Then the FIXICC H2 displays the sessions table without changes.
  • Leave the page. If you edited the Session parameters, the FIXICC H2 displays the following warning form:

The FIXICC H2 offers the following options:

  • Save the entered values as a new Session configuration.
    Then a new Session is added to the selected Server and FIXICC H2 displays the sessions table, including the new Session configuration.
  • Skip the changes by clicking Don't save.
    The new Session configuration won't be added. FIXICC H2 displays the sessions table without changes.
  • Stay on the New Session page by clicking Cancel.
    FIXICC H2 displays the New Session page to continue editing.

Modifying an Existing FIX Session Configuration

You have the ability to edit an existing Session configuration.

  1. Select the Session from the sessions list configured for the Server.

    Figure. Edit Session.
  2. Select one of the following options to edit the Session:
    • Select one of the following options to edit the Session:
      • Click Edit on the top panel.
        OR
      • Select Edit in the context menu.
    • Start editing the Session by pressing Ctrl+E on your keyboard.

OR

  1. Go to the Session Dynamic State page.
  2. Click the Edit item from the additional menu.

    Figure. The Edit item from the additional menu.
  3. The FIXICC H2 displays the Modify Session page. You can change selected Session static parameters.

    Figure. Modify Session.
  4. After you finished the changes, follow the same flow as when a new Session is created:
    • To save the changed Session configuration, click OK.

    • If all mandatory parameters are specified and the SenderCompID and TargetCompID are unique, then the Session is modified and FIXICC H2 displays the sessions table including the modified Session configuration. 

      If the Session SenderCompID and TargetCompID are not unique, FIXICC H2 displays the error form with the message 'Session with <SenderCompID> and <TargetCompID> already exists'.

      When you click the X button, FIXICC H2 displays the Modify Session page again to change the duplicated parameters.

      If mandatory parameters aren't specified, FIXICC H2 displays the alert form:

      After the alert form is hidden, FIXICC H2 displays the Modify Session page again to fill in the mandatory parameters.

      Cancel the operation by clicking Cancel. Then FIXICC H2 displays the sessions table without changes. The selected Session configuration is not updated. 

    • Leave the page. If you edited the Session parameters, FIXICC H2 displays the following warning form:


FIXICC H2 offers the following options:

  • Save the changes by clicking Save.
    FIXICC H2 displays the sessions table. The selected Session is modified.
  • Skip the changes by clicking Don't save.
    FIXICC H2 displays the sessions table. The selected Session is not modified.
  • Stay on the Modify Session page by clicking Cancel.
    FIXICC H2 displays the Modify Session page to continue the editing.

Copy Session to Another Server

To copy a selected Session's configuration to the target Server configuration:

  1. Select the Session you want to copy.
  2. Choose Copy to Server on:
    • The top panel of the Server Sessions page.
      OR
    • The additional menu on the Session Dynamic State page.


Figure. Copy the Session to the Server.

    3. FIXICC H2 shows a list of configured Servers, where you can choose the target Server configuration:

Figure. The Select Server form.

The schedule configuration bond with the copied Session won't be copied to the target Server. The Session configuration on the target Server starts and stops with the Server. You can bind a copied Session with a new schedule if it is needed.

You can:

  • Select a Ыerver from the list and click Select.
  • Then FIXICC H2 copies the Session configuration to the selected Server and opens the Session Dynamic State page for a new Session.
  • Click Cancel to cancel the operation.

If the Session Name is not unique, FIXICC H2 displays the error form with the message 'Session <session-name> already exists'.

If the session SenderCompID and TargetCompID are not unique, FIXICC H2 displays the error form with the message 'Session with <SenderCompID> and <TargetCompID> already exists'.

If FIXICC H2 can't complete this operation, the error form will be displayed. 

In this case, the Session configuration won't be copied to the selected Server.

Removing an Existing FIX Session Configuration

You have the ability to remove an existing Session configuration.

Figure. Remove Session.

To remove a Session:

  1. Choose one of the following options:
    • Click Remove in the top panel.
    • Select Remove in the context menu.
    • Press Ctrl+Backspace on your keyboard.

OR

  1. Go to the Session Dynamic State page.
  2. Click the Remove item from the additional menu:

 
Figure. The Remove item from the additional menu.

    3. The FIXICC H2 displays the following confirmation window:
        

You have two options:

  • Confirm the removal by clicking YesFIXICC H2 will display the Server Details page with the Session configuration removed from the page. 

    A running Session is disconnected and stopped first and then removed and unbound from the schedule.

  • Cancel removing the Session configuration by clicking NoFIXICC H2 will display the sessions list without changes.

Session and Schedule Binding

A Session can be started and stopped with the Server or according to a custom schedule.

You can choose a schedule when you add a new Session configuration on the New Session page.

Figure. The default Scheduler section.

OR while editing the Session on the Modify Session page.

Figure. The Scheduler section.

You can configure all Sessions to start and stop with the Server.

You should comment the FixLayer.FixEngine.Sessions.DefaultStartTime and FixLayer.FixEngine.Sessions.DefaultTerminateTime properties in the FIXEdge.properties file.

When no custom schedule is configured for the Session then this Session starts right after editing is finished.

In the Scheduler section, you have the ability to:

  • Select a schedule name from the drop-down list by clicking the symbol  (item 1). When you click the schedule name, the Schedule Name, Start Time, Terminate Time, and Time Zone fields are filled with the schedule parameters.
  • Clear the Schedule Name, Start Time, Terminate Time, and Time Zone fields by clicking the symbol  (item 3).
  • Open the Server Schedules page in the popup window by clicking the symbol  (item 2).
    • When you select the schedule name and click Select (item 1 in the figure below) in the Server Schedules, the Server Schedules page close, and the Schedule Name, Start Time, Terminate Time, and Time Zone fields are filled with the schedule parameters.
    • When you click Cancel, the Server Schedules page is closed and the initial page is shown without changes.


Figure. The Server Schedules popup window.

You can also Add (item 3), Edit (item 4), and Remove (item 5) the schedule configuration in the Server Schedules popup window.

The schedules list can be filtered by using the Default Filter.

 Default Filter description (item 6 in the figure above)

The Default Filter depends on the type of objects that are shown on the current page.

To use the Default Filter, type or select a value in the Default Filter fields.
To start a search, move the focus from the completed field or press Enter.
To reset the search results:

  • Click Clear (item 1 in the figure below)

    Figure. Default Filter.

  • Or click Clear in the context menu (as shown below)

    Figure. The Clear context menu item.

Then you can see a full list of rows.

You can also use the Extended Filter for searching Server information.

 Extended Filter description (item 7 in the figure above)

The Extended Filter allows adding custom search conditions.

To add a new search condition:

  1. Click Add search condition (item 1 in the figure below)

    Figure. The Extended Filter.

  2. To specify the parameter you want to search for in the "Add condition" form, either:
    • Select it from the list
      or
    • Type the parameter name in the Filter field

      Figure. The "Add condition" form.
  3. To confirm your choice, click Select or to cancel the operation, click Cancel
  4. Select an operation type from the drop-down list according to the parameter type 

    Figure. The operations list.

To start a search:

Click Refresh (item 1 in the figure below)

Figure. The Refresh button.

To remove a filter condition:

Click to see the full list of objects

Figure. The removing condition symbol.

To reset search results:

  • Select the <Reset Filter> from the drop-down menu in the Refresh button

    Figure. Reset Filter operation.

  • Or click Clear in the context menu 

    Figure. The Clear context menu item.

To save a filter:

  1. When you add a list of conditions, click the   button and select the save option
  2. Add the mandatory information to save the filter
  3. Click OK to confirm the changes or click Cancel to cancel the operation

To finish the binding, click OK. The FIXICC H2 binds the current Session with the selected schedule if one was specified.

To cancel all changes, click Cancel. If the binding operation failed, an error form and the following notification are shown.

Dynamic FIX Session Configuration

Server Sessions

You can monitor the dynamic state of the configured Sessions for a given Server.

Figure. The Servers page.

Go from the Servers page to the Server you choose by using one of the following options:

  • Click FIX in the View drop-down menu on the top panel (item 1).
  • Click a Server name in the left-side menu > FIX (items 2 and 3).
  • Double-click the selected Server configuration.

Now you can see the Session monitoring layout.

In the table, you can see the actual set of Sessions received from the FIXEdge C++.

Figure. The Server Sessions page.

The first column of the table contains the Session status indicator. This parameter shows the dynamic status of each Session configured for the selected Server.

You can easily detect the session status according to the following list:

IndicatorStatusSession status

InitialThe Session has been added to the FIXICC H2 database but is absent in the FIXEdge configuration.

Connecting/ Reconnecting/ListeningThe Initiator Session is connecting or the Acceptor Session is waiting for the Logon message.

RunningThe Session is running (Initiator and Acceptor Sessions are connected).

RunningThe Initiator Session is running (Initiator Session is connected to the backup Acceptor Session).

DisconnectedThe Session is disconnected.

You can also see the Status column so you can filter the displaying list of the Sessions by dynamic status.

You can monitor the changing of the Session metrics and Session state just by staying at the layout.

The dynamic Session parameters are changed as a response to the Session events during the connection.

The frequency with which the metrics values are updated can be configured. The default value is 1 second.

If the Session name starts with the * symbol, this Session configuration is added on the FIXEdge side and is absent in the FIXICC H2 database. This Session configuration can't be edited, cloned, or removed.

If the Session state is Initial, this Session configuration is absent in the FIXEdge configuration, so the Start, Stop, Restart, Reset/Change Seq Num, and Send arbitrary message operations are not applicable. 

Filtering

You have the ability to filter the sessions list by using the Default Filter.

You can filter sessions by Status, Name, SenderCompID, TargetCompID, or a combination of them.

 Default Filter description

The Default Filter depends on the type of objects that are shown on the current page.

To use the Default Filter, type or select a value in the Default Filter fields.
To start a search, move the focus from the completed field or press Enter.
To reset the search results:

  • Click Clear (item 1 in the figure below)

    Figure. Default Filter.

  • Or click Clear in the context menu (as shown below)

    Figure. The Clear context menu item.

Then you can see a full list of rows.

You can also use the Extended Filter for searching Session information.

 Extended Filter description

The Extended Filter allows adding custom search conditions.

To add a new search condition:

  1. Click Add search condition (item 1 in the figure below)

    Figure. The Extended Filter.

  2. To specify the parameter you want to search for in the "Add condition" form, either:
    • Select it from the list
      or
    • Type the parameter name in the Filter field

      Figure. The "Add condition" form.
  3. To confirm your choice, click Select or to cancel the operation, click Cancel
  4. Select an operation type from the drop-down list according to the parameter type 

    Figure. The operations list.

To start a search:

Click Refresh (item 1 in the figure below)

Figure. The Refresh button.

To remove a filter condition:

Click to see the full list of objects

Figure. The removing condition symbol.

To reset search results:

  • Select the <Reset Filter> from the drop-down menu in the Refresh button

    Figure. Reset Filter operation.

  • Or click Clear in the context menu 

    Figure. The Clear context menu item.

To save a filter:

  1. When you add a list of conditions, click the   button and select the save option
  2. Add the mandatory information to save the filter
  3. Click OK to confirm the changes or click Cancel to cancel the operation

Session Dynamic State

To see the dynamic state and metrics of the selected Session, click on the selected Session on the Server Sessions page in the sessions table in the Table view layout part.

FIXICC H2 displays the Session Dynamic State page in the Object info layout part.

You can also open the Session Dynamic State page in a new tab:

  • By clicking View.
  • By clicking View in the tab in the Object info layout part.
  • By clicking View (Enter) context menu item.
  • By double-clicking on the selected Session.
  • Or by pressing Enter on your keyboard.

Figure. The Server Sessions page.

Or you can go to the Session Dynamic State page from the Notifications page by clicking the name of the selected Session.

Figure. The Notifications page with the name of the selected Session.

Or you can go to the Session Dynamic State from the Notification Details page by clicking the Event Source the notification refers to.

Figure. The Notification Details page.

FIXICC H2 opens the Session Dynamic State page in a new tab.

Figure. Session Dynamic State.

The Session Dynamic State page contains:

  • The Session dynamic parameters.
  • Parameters of static configuration.
  • Schedule (when the Session starts/stops with the Server, the Schedule Name field is specified with the Server line, and schedule parameters are hidden except Reset Sequence Numbers on start).
  • Metrics.
  • Drop-down menus with operations.

All information is updated in real-time.

Detailed information about the menus with session operations is on the Sessions operations page.