FIXICC User Guide


1. Overview

FIX Integrated Control Center is an application providing out-of-the-box monitoring and administration capabilities for FIX Edge and any applications embedding FIX Antenna C++, FIX Antenna Java, FIX Antenna .NET. FIXICC is a Java-based standalone application that runs on any platform.

2. Requirements

Hardware


CPU

Minimum

1.0 GHz

Recommended

2.6 GHz

Memory

Disk Space

512 Mb

50 Mb

2 Gb

200 Mb


Software

  • One of the supported Operating Systems:
    • Microsoft Windows XP Professional SP3
    • Microsoft Windows Vista
    • Microsoft Windows 7
    • Microsoft Windows 10
    • Ubuntu 9.04
    • Solaris OS version 10 (SPARC)
    • Solaris OS version 10 (x86/x64 Platform Edition)
    • Macintosh OS X 10.5 Intel
    • Macintosh OS X 10.5 PPC

3. Installation

FIXICC and FIXICC Agent are standalone applications, which can be installed along with FIXEdge or separately.For more details on how to install these applications without FIXEdge refer to 'Manual Installation' section 

3.1. Manual installation

FIXICC installation

Installation from zip archive

  1. Unzip fixicc-x.y.z.zip file into any folder on machine.

  2. (Skip this step if you install FIXICC v. 2.9.16 or higher)
    Place license file (fixaj2-license) into FIXICC root directory (for examle, C:\Users\User\FIXICC).

  3. Start FIXICC via 'fixicc.exe' file from FIXICC 'bin' directory.

Installation from the Setup Wizard

FIXICC can also be installed using Setup Wizard:

  1. Run fixicc.x.y.z-setup.exe
  2. Read and agree with license agreement.
  3. Choose folder to install FIXICC to.
  4. (Skip this step if you install FIXICC v. 2.9.16 or higher)
    Specify path to license file (fixaj2-license). This is an optional step. If skipped, license file may be deployed later using Help → Import License menu option.
  5. Specify if the following should be created: folder in Start menu, icons on a desktop and/or on Quick Launch panel.
  6. Press Install button and install FIXICC.

FIXICC Agent installation

Installation from zip archive

  1. Unzip fixicc-agent-x.y.z.zip file into any folder on machine where FIX Edge is installed.
  2. (Skip this step if you install FIXICC Agent v. 2.9.16 or higher)
    Place license file (fixaj2-license) into FIXICC Agent 'license' folder.
  3. Install FIXICC Agent via 'fixicc-agent.bat' located in FIXICC Agent's 'bat' folder. Use this command: fixicc-agent.bat install. This will install it as a service.
  4. Run FIXICC Agent using "fixicc-agent.bat start" command.

Installation from the Setup Wizard

FIXICC Agent can also be installed using Setup Wizard:

  1. Run fixicc-agent.x.y.z-setup.exe.
  2. Read and agree with license agreement.
  3. Choose the folder to install FIXICC Agent to. Note, it should be installed on the same machine where FIX Edge.
  4. (Skip this step if you install FIXICC Agent v. 2.9.16 or higher)
    Point to license file (fixaj2-license). This is an optional step. If skipped, add license later to the agent’s license folder.
  5. Specify the path to FIX Edge location, its essentials (server’s start, stop and process id file) and configuration files (engine.properties, FIXEdge.properties and business rules configuration – BL_Config.xml).

  6. Specify FIXICC Agent connection parameters:
    FIXICC Agent port – port accepting connections from FIXICC. NOTE, if you use several instances of FIX Edge on same machine, then each FIXICC Agent instance should use different AgentServerPort which should not be equal to FIXEdge ListenPort;
    FIXICC Agent Service name – service name to be displayed in Local Services;
    Admin Session SenderCompID – set ID to be used as SenderCompID of administration session between FIXICC Agent and FIX Edge (tag 49). NOTE, the value of this parameter may be arbitrary, but if several FIXEdge instances and several FIXICC Agent instances run on the same server, then this parameter should be different across all instances;
    Admin Session Username – username to be used in Logon message submitted via administration session between FIXICC Agent and FIX Edge (tag 553), the value of this parameter should match the value of Admin session username, specified for FIXEdge during its installation;
    Admin Session Password – password to be used in Logon message submitted via administration session between FIXICC Agent and FIX Edge (tag 554), the value of this parameter should match the value of Admin session password, specified for FIXEdge during its installation.


  7. Specify if the following should be created: folder in Start menu, icons on a desktop and/or on Quick Launch panel.
  8. Press 'Install' button and install FIXICC Agent.

4. Configuration

FIXEdge C++ is supplied with already pre-configured administrative sessions (for more details on accomplished configuration refer to 3.1).

4.1. Configure FIX Administrative interface in FIX Antenna C++ based products 

If FIXICC and FIXICC agents are installed separately from FIX Edge or any other server, the administrative session connection parameters should be configured manually.

The steps below demonstrate how to configure administrative session 

  1. Enable monitoring feature in the engine.properties file

    engine.properties
    Monitoring.Enable = true
    
  2. Specify the monitoring port for administrative sessions. This step is optional

    engine.properties
    Monitoring.ListenPort = 8909
    

    If the monitoring port is not configured Administrative session can connect to the ListenPort.

  3. Specify administrative session parameters and add the session to the list of administrative sessions in engine.properties.

    engine.properties
    # The list of administrative sessions separated by comma.
    Monitoring.AdminSessionNames = AdminClient
    
    Monitoring.AdminSession.AdminClient.TargetCompId = AdminClient
    Monitoring.AdminSession.AdminClient.Version = FIX44
    Monitoring.AdminSession.AdminClient.Username = user
    Monitoring.AdminSession.AdminClient.Password = pass
    Monitoring.AdminSession.AdminClient.IntradayLogoutToleranceMode = true
    Monitoring.AdminSession.AdminClient.IgnoreSeqNumTooLowAtLogon = true
    

    FIX engine will accept the FIX Session with SenderCompId=FIXADMIN

    But if the AdminClient session is connected FIX Engine will not accept other administrative sessions. For multiple administrative sessions, the user should specify all required sessions in session Monitoring.AdminSessionNames list with own sets of parameters.
  4. Optionally, if it is required to restrict connections for administrative sessions from unexpected hosts the user can set the permitted address:

    engine.properties
    Monitoring.AdminSession.AdminClient.SourceIPaddress = 127.0.0.1
    

    FIX Engine will accept the administrative connections only from a localhost

For the configuration above the administration session above will be configured as:

 

4.1.1 Administrative sessions functionality

Direct Connections may have not some functions that the FIXICC agent provides, please find below the list of the functions that may appear as gray in FIXICC.

The functions that are not showed in below, are available for Direct Connections.

To see the full list of functions go to Functionality

Additional GUI functionality that available only with connection to the FIXICC agent

Server level 
  • Start Server
  • Stop Server
  • Load Engine Configuration
  • Deploy Server Configuration
  • Latency
  • Load FIXEdge Configuration
  • Load BL Configuration
  • Clean Logs
Session level 
  • Edit Session
Session Log browsing

FIXEye must be installed.

  • Open Incoming Message Log
  • Open Outgoing Message Log
  • Open All Message Logs
  • Search In All Message Logs
Schedules level
  • Schedule details
  • Edit schedule
  • Remove schedule

4.2. FIXICC Agent Configuration

In order to adjust the FIXICC Agent configuration, refer to the 'conf' folder.

  1. Check the values of the parameters in 'agent.properties' file

  2. Verify the correctness of the administrative session parameters in 'fixengine.properties'.

    # Name of the custom package. This property is using for the extending the count of admin-commands.
    autostart.acceptor.targetIds=
    
    # Storage directory, could be either absolute path (like /tmp/logs or c:\fixengine\logs)
    storageDirectory=logs
    
    # provide fast in-memory storage, but during session restart all messages will be lost
    storageFactory=com.epam.fixengine.storage.InMemoryStorageFactory
    
    #Sets queue mode. This property makes sense only if FilesystemStorageFactory is set.
    #Set to "false" for persistent queue (slower but no messages will be lost), "true" for in-memory queue (faster #but less safe, some messages may be lost).
    inMemoryQueue=true
    
    # Maximum message size supported by this FIX engine instance. The parameter must be integer and not #negative. Should be set to a greater than expected maximum message by approximately 1-5%.
    maxMessageSize=1024000
    
    # Toggle on/off the validation of incoming messages according to the base of custom dictionaries.
    validation=false
    
    # This parameter allow to automatically resolve sequence gap problem (for example, when there is every #day #sequence reset). Supported values:
    #Recommended value - Always - session will send logon with 34= 1 and 141=Y every times (during #connection and reconnection).
    #OneTime - session will send logon with 34= 1 and 141=Y only one time (during connection).
    #Never - this means that user can sets the 34= 1 and 141=Y from session parameters by hand.forceSeqNumReset=Always
  3. If necessary, adjust FIXICC Agent logging configuration in 'log4j.properties' file. For more details refer to http://logging.apache.org/log4j/1.2/index.html .

  4. Number of agent folder copies should be equal to number of FIXICC Agent instances you are going to use on this machine. Multiple FIXICC Agent instances can be used on single machine, for example to monitor several FIXEdge instances installed on this machine.
    In such case, change the following properties in  'wrapper.conf' file: wrapper.console.title, wrapper.ntservice.name and wrapper.ntservice.displayname (Note, their values should be unique across all FIXICC Agent instances).
    I.e., 3 FIXICC Agent instances residing on the same machine can be called: "FIXICC - Agent Server #1", "FIXICC - Agent Server #2" and "FIXICC - Agent Server #3".
    Where instance #1 will have the following properties in 'wrapper.conf' file:

    wrapper.console.title=FIXICC - Agent Server #1
    wrapper.ntservice.name=FIXICC - Agent Server #1
    wrapper.ntservice.displayname=FIXICC - Agent Server #1


    Important: "fixicc-agent.bat install" command can be run only after these changes are made and absence of duplicated service names is verified.

    Please note: 'agent.properties' should also be changed according to new servers parameters.

5. Connect To Server

5.1. Run FIXICC using executable file

In order to run FIXICC installed as a standalone application use executable file (fixicc.exe) located in FIXICC 'bin' directory. Servers configured during FIX Edge installation will be displayed under 'Servers' on the left hand side of FIXICC GUI.

5.2. Add server

If FIXEdge, FIXICC and FIXICC agent were installed all together, FIXICC is already pre-configured to monitor relevant FIXEdge (this was accomplished during installation process, see  3.1 for more details).
In this case, installed server will be displayed under 'Servers' on the left hand side of FIXICC GUI.

If FIXICC and FIXICC Agent were installed separately from FIX Edge or any other server, FIXICC should be configured manually. See below for more details.

Please note:

FIXICC offers two methods of connecting to the server: direct access and access via FIXICC agent. Differences in server configuration for both methods will be described in this section.


  1. Start FIXICC.
  2. Click Add Server icon or choose the same command in the context menu.
  3. Set the following mandatory parameters:
    - Server name – any value describing the server being added;
    - Type - B2BITS FIXEdge (if monitored server is FIXEdge) or Generic FIX Server – otherwise;
    - Host:
    1) specify host where server is installed (for direct access mode);
    2) specify host where FIXICC Agent is installed (for FIXICC + FIXICC Agent mode).
    - Port:
    1) specify server listening port (for direct access mode);
    2) specify FIXICC Agent listening port – AgentServerPort (for FIXICC + FIXICC Agent mode).
    - Username – specify admin session username:
    1) Monitoring.AdminSession.AdminClient.Username (for direct access mode);
    2) EngineConnectionDetails.AdminSession.Username (for FIXICC + FIXICC Agent mode).


  4. Set the following extended parameters: (optional step)
    - SenderCompID - ID that to be used as SenderCompID in administration session between:
    1) FIXICC and FIXEdge (tag 49) (for direct access mode). This ID should be equal to Monitoring.AdminSession.AdminClient.TargetCompId from FIXEdge 'engine.properties' file.
    2) FIXICC and FIXICC Agent (for FIXICC + Agent mode) – arbitrary name can be used. Value should be unique for each FIXICC Agent instance.

    - TargetCompID - ID to be used as TargetCompID in administration session between:
    1) FIXICC and FIXEdge (tag 56) (for direct access mode). NOTE, for FIXEdge, FIXAntenna C++ and FIXAntenna .NET this ID should always be set to "FIXADMIN". For FIX Antenna Java ID is a configurable parameter and should be equal to autostart.acceptor.targetIds=admin from FIX Antenna Java 'fixengine.properties' file.

    See below administration session parameters used in FIX Antenna Java (see 'fixengine.properties' file):

    autostart.acceptor.targetIds=admin

    autostart.acceptor.admin.login=admin

    autostart.acceptor.admin.password=admin

    autostart.acceptor.admin.ip=*

    autostart.acceptor.admin.fixServerListener=com.epam.admintool.AdminTool


    2) FIXICC and FIXICC Agent (for FIXICC +  FIXICC Agent mode) – any value an be used (should be unique for each FIXICC Agent instance).


  5. Click Finish. Now new server is added to the list of 'Servers'.

5.3. Connect To the Server

Select required server from the 'Servers' list and depending on preferred connection type:

•     click “Connect”  button or go to “Server → Connect” context menu option to establish a direct connection to the server.

or

•   connect via FIXICC agent. The algorithm remains the same, but FIXICC Agent should be started before clicking the “Connect” button.

You need specify admin session password:
1) Monitoring.AdminSession.AdminClient.Password (for direct access mode);
2) EngineConnectionDetails.AdminSession.Password (for FIXICC + FIXICC Agent mode).



Please note, the following operations are supported only via the FIXICC Agent:

•        Managing engine configuration

•        Managing session

•        Administrating server


6. Functionality

6.1. Server level

Start Server

Once you have successfully connected to the server, it can be started by clicking “Start Server” button or navigating to “Server → Start Server” submenu.

You can also do right mouse click on required server and select “Start Server” from popped up context menu.


Server details

All servers added to FIXICC are listed on the right side of the window in a table view.

The following health statuses are indicated for each monitored server in the 'Status' column and next to the server in the 'Servers' list:

 

Double click on a server from the 'Servers' list expands list of pre-configured sessions and add-on components (for FIXEdge only; add-on components include Transport Adaptors, Handlers, etc).


Edit Server Details

You can edit details of any added server using right‐click menu for relevant server and selecting “Edit Server”.


All changes will be applied only after you reconnect to modified server.


Edit Server Configuration

FIXICC allows direct (right from the application) configuration of server you are connected to via FIXICC Agent. The following settings can be accessed:

  • Engine configuration (for both FIXEdge, FIX Antenna C++/.NET/Java or another generic FIX server)
  • FIX Server configuration including its Business Layer (for FIXEdge only).

Each set of configuration parameters can be loaded for selected server via corresponding 'Server' submenu option or via right-mouse-click menu.

Or use the following toolbar buttons:

The file will be opened in the right panel as a plain editable text document.

When you finish editing the configuration click the “Deploy Server Configuration” button or select the corresponding option from the 'Server' submenu.
Relevant configuration file will be overwritten and the previous version backed‐up as engine_YYYYMMDD‐HHmmss.properties where YYYYMMDD‐HHmmss is a time stamp of file modification.
In addition to the automatic back‐up, it is highly recommend to update revision number to avoid possible difficulties in tracking the change history.

Important: all changes will be made for selected Server.

Stop Server

In order to stop the server, select it from 'Servers' list and and click "Stop Server” button or go to “Server → Stop Server” context menu.

You can also do right mouse click the required server and select “Stop Server” from the context menu.

After 'Stop server' command was given to the server, it will gracefully close all open FIX session, stop all running Transport Adaptor(s) and Handler(s), disconnect from any middle-ware (the last two are FIXEdge specific) and then stop the process.


Disconnect From Server

In order to disconnect from the server, select it from 'Servers' list and and click "Disconnect” button or go to “Server → Disconnect” context menu.
 

You can also do right mouse click the required server and select “Disconnect” from the context menu.

Disconnection from the server will not affect its operation. If server was up and running before disconnection attempt was performed, it will continue running. If it was stopped, will remain stopped.


Remove Server

Select the required server from the list and click the “Remove Server”  button or go to “Server → Remove Server” to remove it from the list.

You can also right click the required server and select “Remove Server” from the context menu.

You should disconnect from the server before removing it from the list of servers.

Server removal will not affect its operation. If server was up and running before it was removed from the list of monitored servers, it will continue running. If it was stopped, will remain stopped.


Import / Export Server Configuration

You can import and/or export server configuration from/to a file. This can be handy when backing‐up your configuration or sharing it with someone else. You can either go to “File” submenu or do right mouse click on a selected server to select the required option.

Clean Logs

You can clean the server’s logs (the files are located in folder log of server) if FIXICC is connected to server via FIXICC Agent. Select the required server from the list and click the “Clean Logs” button or go to “Server → Clean Logs”.



6.2. Session level

Once server is added, you will be able to view, configure and manage FIX sessions. This section describes what can be done to a FIX session.
All possible actions are available in the 'Session' submenu and 'Session Administration' toolbar. 
Note, “View → Toolbars” context menu item can be used to hide/unhide this toolbar. 

Add Session

In order to add new FIX session, select necessary server and click “Add Session” button or go to “Session → Add session to server” context menu item.
The same can also be achieved via right mouse click on selected server and referring to 'Add Session to the Server' menu item. 

By default, only mandatory fields should be specified:

  • Session Type 
  • FIX Version 
  • Remote Host and Port 
  • Sender and Target CompIDs 
  • SSL connection

Any session configuration can be saved as default by clicking “Save as default” button to create new session with pre-defined custom parameters.

Full list of settings is available by clicking on the “Advanced >>” button.


New sessions can be added so:

  • For FIX Antenna: only once it is started.
  • For FIX Edge: at any time. If server is stopped, new session will be recorded in the configurations file.


Session Qualifier

To establish several sessions with the same SenderCompId and TargetCompId, both Initiator and Acceptor should create several session objects which differ from each other by SessionQualifier property. SessionQualifier property on the Initiator side must be the same as SessionQualifier property of the corresponding session on acceptor side. When Initiator connects to Acceptor, it sends SessionQualifier along with SenderCompId and TargetCompId in logon message. The SessionQualifier tag in the Logon message is optional and can be configured in the engine.properties file. When Acceptor receives logon message with the SessionQualifier it searches for a registered session with SessionId corresponding to received TargetCompId, SenderCompId, and SessionQualifier. If the session is found it is associated with the incoming connection, otherwise, the connection is rejected.
If the user creates a session by passing only SenderCompId and TargetCompId parameters (without SessionQualifier), the SessionId structure is created and stored internally with empty qualifier_ property. If Acceptor registers a session without session qualifier it won't accept any incoming connection with session qualifier defined in logon message. And vice versa, if Acceptor has registered a session or several sessions with qualifiers, it won't accept connections from Initiators without SessionQualifier.

Also SessionQualifierTag is available for defining a tag containing SessionQualifier name (LogonMessageSessionQualifierTag parameter in FIXEdge.properties).

Refer to: How to use SessionQualifier

Extended Settings tab


The following optional parameters can be set:

  • FIX Engine Session ID
  • Sender/Target SubIDs and Location IDs
  • Storage type: 'Persistent' to temporarily store messages on a hard drive (recommended to be able to restore in case of a failure) or 'Transient' storing messages in memory to increase throughput and decrease latency. Note, if 'Transient' mode is selected all  information will be lost in case of failure
  • Engine behavior when session is not available: store messages for later delivery (default one) or reject them.
  • Socket operation priority to control threads allocation, the following options are available: 
    • Even (default), i.e. threads are allocated 
    • or Aggressive Send, Aggressive Receive or Aggressive Send & Receive corresponding to separate threads for sending, receiving and both sending and receiving respectively. All these settings will improve latency but affect throughput.
  • Forced Reconnect: parameter to specify whether all non‐gracefully terminated sessions will try to reconnect.
  • Disable TCP Buffer: another configuration option to lower latency, but affecting throughput as messages will be sent independently, not in packages.
Sequence Numbers tab

This tab allows you to manage sequence numbers by doing the following:

  • Set/change In/Out session sequence numbers
  • Accept/reject all incoming connections ignoring too low sequence numbers at Logon via 'Ignore Sequence Number Too Low At Logon'
  • Enable/disable continuing sequence numbers after logout and further create session wit the same ID via 'Intraday Logout Tolerance mode
  • Control sequence numbers reset policy via 'Force SeqNum Reset Mode'. The following setting are available:
    • always
    • never
    • only in initial state
    • according to server defaults
Security tab

This tab allows specifying properties for user authentication at logon as well as data encryption settings.

  • Parameters for user authentication: username and password 
  • Encryption type: PKCS, DES, PKCS_DES, PGP_DES, PGP_DES_MD5 or PEM_DES_MD5. Make sure that counterparty is aware of your security settings.
Backup Connection tab

Allows specifying backup connection to assure the uninterrupted information exchange. Check the corresponding box and specify the following:

  • Backup host and port
  • Auto Switch: is recommended to avoid manual switch each time the connection becomes unstable
  • Enable Cyclic Switch: for automatic switching back to primary connection in case the backup one is unstable or lost.
  • Active Connection to specify which connection is used: "primary" or "backup". The "restore" value means that previous connection (primary or backup) is used to establish connection.

Note: if the primary connection is a SSL connection, then backup connection will use the same SSL parameters (certificate, protocols) as the primary connection (specified in the SSL tab).

Custom Logon tab

Custom FIX Logon (MsgType = 'A') message can be specified in this tab.

Scheduler tab

Old-style Scheduler tab

New-style Scheduler tab was introduced in FIXICC 2.10.1 with FIXEdge 6.0.

Since FIXEdge 6.0 if you want to keep Old-style Scheduler tab in FIXICC, you should not specify FIXICC.Schedules property equal to true in the FIXEdge.properties configuration file.


This tab allows specifying scheduled tasks for FIX sessions (functionality is available for FIX Edge only)
It is possible to switch between custom and default scheduler. In order to do so, switch between "Session starts/stops with the server (according to default scheduler)" and "Session starts/stops according to scheduler”.
For custom scheduler you can configure:

  • Start/Connect/Disconnect/Terminate time (in local FIX Server time)
  • Immediate session start (upon its creation) by checking the "Start Session Right Now" option. In this case, its further operation will be determined by schedule, if it is specified
  • Whether session should be recreated on Logout. Initiator-session will be recreated after receiving Logout and Acceptor-session will wait for incoming connection.
  • Whether session should be terminated on Logout. Initiator-session will terminate after receiving Logout.

New-style Scheduler tab

New-style Scheduler tab was introduced in FIXICC 2.10.1 with FIXEdge 6.0.

Since FIXEdge 6.0 to activate New-style Scheduler tab functionality in FIXICC you should specify FIXICC.Schedules property equal to true in the FIXEdge.properties configuration file.


This tab allows to define the schedule for the FIX session in a new, more flexible format (functionality is available for FIXEdge only).

All the date/time properties of schedule are defined in CRON format. CRON expressions have the following syntax:

┌──────────── second (0 - 59)
│ ┌───────────── minute (0 - 59)
| │ ┌───────────── hour (0 - 23)
| │ │ ┌───────────── day of month (1 - 31)
| │ │ │ ┌───────────── month (1 - 12)
| │ │ │ │ ┌───────────── day of week (1 - 7: Sunday to Saturday)
| │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
* * * * * *


Support of the CRON expressions is limited by quartz. In particular, specifying both a day-of-week and a day-of-month values is prohibited (you'll need to use the '*' character in one of these fields).

The only note here is that '*' character is used instead of '?' character in compare with quartz.

It is possible to switch between existing schedules, define custom session schedule or choose default settings:

When choose <Inherit from default>, no schedule is specified and default properties will be appliedIf default properties are not specified in FIXEdge.properties, FIX Session will be started/stoped with the server.

When choose <Custom Settings>, you can configure Start/Connect/Disconnect/Terminate timeAll the properties from this section can be defined in both CRON format and standard HH:MM format.

Start time, connect time, disconnect time, terminate time and days off fields should be defined as CRON expressions.

Several CRON expressions can be assigned for Start/Connect/Disconnect/Terminate time and Days off, they should be delimited by semicolon.

At least one of the properties StartTime/ConnectTime/DisconnectTime/TerminateTime must be specified.

The options below can be specified for all the schedules:

  • Whether session should be recreated on LogoutInitiator-session will be recreated after receiving Logout and Acceptor-session will wait for incoming connection.
  • Whether session should be terminated on LogoutInitiator-session will terminate after receiving Logout.

After the option is chosen, it will be immediately applied either for new created session or edited existing non-active session.

SSL tab

SSL can be enabled for both Acceptor and Initiator FIX Sessions, however 

  • Advanced SSL options are available for Initiator session type only
  • Acceptor's options are configured for all acceptors and not available for editing.


You can enable SSL by checking 'SSL' checkbox in the main parameters.

When SSL checkbox is checked you can choose

  • SSL protocols (defaultTLS 1.0, TLS 1.1, TLS 1.2)
  • Configure use of certificate (default settings allows not to use it)
  • Point to private key parameters (default settings allows not to use separate key file)

Configuring SSL certificate

  • Use of separate certificate can be configured via "Upload certificate to server" radio button and further browsing and pointing to certificate file location.
  • If you want to use certificate of existent session you have to select "Use configured certificate from server" radio button and choose necessary certificate from the drop-down list of available installed certificates.
  • If you want to use certificate, which already installed on the FIX Edge server but is not used for any session so far (i.e. is not available in the drop-down list) you have to select "Use certificate from server" radio button and specify path to the certificate file.

Verification of SSL private key

Match between private key and server certificate will be checked if "Check private key" option is selected.

  •  Use of separate key can be configured via "Upload key to server" radio button and further browsing and pointing to certificate file location.
  • If you want to use key of existent session you have to select "Use configured key from server" radio button and choose necessary key from the drop-down list of available installed keys.
  • If you want to use key, which already installed on the FIX Edge server but is not used for any session so far (i.e. is not available in the drop-down list) you have to select "Use key from server" radio button and specify path to the key file.

Start Session

In order to start certain FIX session, select it and click the “Start Session” button or go to “Session → Start Session” menu to start it.

The same can be done via right mouse click on selected session and selection of “Start Session” option from the context menu.

Session details

In order to access all sessions configured for particular server, navigate to the left side of FIXICC GUI and double click on necessary server in the "Servers" list. This will expand list of all configured FIX sessions for the server and display their summary on the right side of the window. 

The following real-time session statuses are displayed next to each session under 'FIX' umbrella of monitored FIX server and in the “Status” table column of FIX session details and/or FIX sessions summary tab(s):

StatusIconTooltipDescription
Green

Session is establishedSession is up and running
Blue
Session is established to backup hostSession is connected to backup host/port
Yellow

ConnectingSession is connecting/waiting for incoming connection
Black
Session is plannedStart Time of the session hasn't come yet
Red

Session is not activeSession is not running


To drill down to session details double click on FIX Session of your interest either in the table or in the list of sessions. Detailed view of selected FIX session will be displayed in the new tab on the right side of the FIXICC GUI.


Session updates

Session updates are sent automatically. In order to set updates frequency and response waiting time, go to “Edit → Options” and select the FIXICC tab.

  • "Updating Period" parameter sets updates frequency;
  • "Wait For Answer" parameter is responsible for response waiting time.

"F5" hot key can be used at any time to request latest FIX session statuses update.

Edit Session

Right‐click the required session on the list and select “Edit Session” from the context menu to edit session details.



Ability to edit sessions is supported by FIX Edge only and requires session being not started. Otherwise, session restart is required to apply the changes.


Restart Session

In order to restart certain session, select it and and click the “Restart Session” button in "Sessions" toolbar or go to “Session → Restart Session” menu option.
The same can be done via right mouse click on necessary session followed by selection of “Restart Session” item from the context menu. 

After session restart, sequence numbers will be treated according to the 'Force SeqNum Reset Mode' defined in the 'Sequence Numbers' tab of 'Session' details.

Stop Session

Selected FIX session ca be stopped using “Stop Session” button in 'Sessions' toolbar or via “Session → Stop Session” menu option.
The same can be done via right mouse click on necessary FIX session followed by selection of “Stop Session” item from the context menu. 
 

 


FIX Antenna does not support offline work with sessions, so it will be deleted from the list once is stopped.

Remove Session

Selected FIX session ca be removed from the server using “Remove Session” button in 'Sessions' toolbar or via “Session → Remove Session” menu option.
The same can be done via right mouse click on necessary FIX session followed by selection of “Remove Session” item from the context menu. 

In case of FIXEdge, such action removes selected session from the 'FIXEdge.properties' file too.



Similar actions can be used to remove multiple sessions. In order to do so, select necessary sessions holding 'Ctrl' button and use the most convenient way to remove these sessions.

Remove All Sessions

To remove all configured FIX sessions from the server, click the “Remove All Sessions” button in 'Sessions' toolbar  or go to “Session → Remove All Sessions” menu option.

In case of FIXEdge, such action removes all FIX sessions from the 'FIXEdge.properties' file too.

6.3. Extended Session Level

Extended session functionality can be accessed via 'Session' sub-menu and/or 'Session Administration Extension' toolbar.
Note, “View → Toolbars” context menu item can be used to hide/unhide this toolbar. 

Switch The Connection

This feature is available only if backup connection settings are specified via 'Advanced Settings' for the FIX session.

  • To switch to backup connection, click “To Backup” button in the toolbar or select “Session → To Backup” from the menu.
  • To switch to back to primary connection, click “To Primary" button in the toolbar or select “Session → To Primary” from the menu.

Manage Sequence Numbers

It is possible to change and/or reset sequence numbers for any FIX Session configured at the server.

Change Sequence Numbers

In order to do so, select required session, click the “Set Sequence Numbers” button in the toolbar or go to “Session → Set Sequence Numbers” menu item and then adjust sequence numbers by checking relevant check box and entering a new value.
Note: It is possible to change both Incoming and Outgoing Sequence Numbers at once or just one of them.

Reset Sequence Numbers 

To reset sequence numbers for selected session, click the “Reset Sequence Numbers”  button in the toolbar or go to “Session → Reset Sequence Numbers” menu item.

Both features are also accessible via right mouse click on selected FIX session.


Send Message

FIXICC allows specifying any FIX message(s) to be sent by server via selected  FIX session. 
This can be achieved so. Click “Send Message” button in the toolbar or go to “Session → Send Message” menu item to open a 'Send message' form, enter FIX message and click 'OK'. 'Cancel' button discards attempt to sent the message and closes the window.
FIX message can be entered either:

  • as raw FIX message (using the “SOH” button to insert delimiters) 
  • or as predefined FIX message, clicking “Load message” button to load necessary message.

Besides that, it is possible to send preset session level messages:

  • Test Request
  • HeatBeat

via corresponding 'Send Test Request' and 'Send Heartbeat' buttons in the toolbar or 'Session → Test Request' and 'Session → Heartbeat' menu items.

The same can be also done using right mouse click for selected FIX session.


6.4. Session Log browsing

Session Log browsing functionality  is available in the 'Session' menu and 'Session Administration Extension' toolbar. 
Note, “View → Toolbars” context menu item can be used to hide/unhide this toolbar. 

To use this feature you have to have FIX Log Analyzer – FIXEye installed. Make sure this component is installed before proceeding.


Open log-files

It is possible to open all log files at once or only incoming or outgoing ones.

  • To open all logs, select required session and click “Open All Message Logs” button or go to “Session → Open All Message Logs" menu option
    First messages to be shown are from incoming messages log-file, then from outgoing messages log-file.
  • To open incoming logs only, click “Open Incoming message log” button or go to “Session → Open Incoming message log”menu option
  • To open outgoing logs only, click “Open Outgoing message log” button or go to “Session → Open Out going message log”menu option.

Once necessary action is chosen, FIX Log Analyzer – FIXEye will launch.

The same can be also done using right mouse click for selected FIX session and choosing necessary option in 'View Session Logs' context sub-menu


Search in log-files

FIXICC also allows fast data search in FIX log files. In order to do so, select a required session and then

  • type your search query in the search box and click the “Search In All Message Logs” button on the toolbar 
  • or go to “Session → Search In All Message Logs” menu option. 

First messages from incoming log-file, then from outgoing log-file will be shown.

6.5. Schedules level


Schedules level was introduced in FIXICC 2.10.1 with FIXEdge 6.0.

Since FIXEdge 6.0 to activate Schedules functionality in FIXICC you should specify FIXICC.Schedules property equal to true in the FIXEdge.properties configuration file.

Once server is added, you will be able to view, configure and manage Schedules. This section describes what can be done to a Schedule.


Schedules which are assigned to at least one session are colored. In opposite, schedules which are not assigned to any session are not colored.

All the date/time properties of schedule are defined in CRON format. CRON expressions have the following syntax:

┌──────────── second (0 - 59)
│ ┌───────────── minute (0 - 59)
| │ ┌───────────── hour (0 - 23)
| │ │ ┌───────────── day of month (1 - 31)
| │ │ │ ┌───────────── month (1 - 12)
| │ │ │ │ ┌───────────── day of week (1 - 7: Sunday to Saturday)
| │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
* * * * * *


Support of the CRON expressions is limited by quartz. In particular, specifying both a day-of-week and a day-of-month values is prohibited (you'll need to use the '*' character in one of these fields).

The only note here is that '*' character is used instead of '?' character in compare with quartz.


Add new schedule

"Add a new schedule" can be chosen from the context menu of the Schedules item:


After clicking on this option, form for adding new schedule will appear:


Schedule can be assigned to the specific session using New-style Scheduler tab.

Name of the schedule should be unique. One schedule can be assign to several sesions. If time zone is not specified explicitly, local time will be applied.

Start time, connect time, disconnect time, terminate time and days off fields should be defined as CRON expressions.

Several CRON expressions can be assigned for Start/Connect/Disconnect/Terminate time and Days off, they should be delimited by semicolon.

At least one of the properties StartTime/ConnectTime/DisconnectTime/TerminateTime must be specified.


Schedule details

Schedule details can be opened by double clicking on the specific schedule from the Schedules list:


Edit schedule

Schedule editing can be chosen in the schedule's context menu:


After clicking on this option, editing form will appear:

Schedule name can't be edited once created.

Start time, connect time, disconnect time, terminate time and days off fields should be defined as CRON expressions.

Several CRON expressions can be assigned for Start/Connect/Disconnect/Terminate time and Days off, they should be delimited by semicolon.

At least one of the properties StartTime/ConnectTime/DisconnectTime/TerminateTime must be specified.


Remove schedule

Schedule removal can be chosen in schedule's context menu:


After clicking on this option, confirmation dialog will appear. After confirmation the corresponding schedule will be removed.

You can remove only the schedule which is not assigned to any of the sessions. Otherwise you will get the following error:



7. Permissions

Permission management is available only if B2BITS Security Service is installed and is running. It is available for user with administration rights only. Users with guest-type will not have access to these settings.

7.1. Users management

User’s permission management functionality is available in the “Edit → Permissions…” submenu.


Add User

To add new user, click the “Add User” button, fill out the form with relevant data and click 'OK'. Clicking 'Cancel' will discard entered settings


User Modification

The following can be done to already defined FIXICC user:

  • Remove: via “Remove User” button.
  • Modify username and/or password: via “Modify User” button 
  • Edit permissions: via “Edit permissions” button (see details in the next 7.2 section)

7.2. Permissions management

Select user from the list and click the “Edit Permissions” button to open permissions management window.

Server Permissions

To assign user with necessary permissions, go to 'Server Permissions' tab, select necessary Server and set new permissions to be granted. The same approach can be used to limit user permissions. Full access to the server can be granted selecting “All” option.

Note: Context menu (right mouse click on the servers list) contains Remove/Add item elements.

Session Permissions

In addition to server-wide, user can be granted session-level permissions. In order to do so, go to 'Server Permissions' tab, select Server and necessary Session and then set necessary permissions to be granted. 
The same approach can be used to limit user permissions. Full access to the FIX sessions at the server can be granted selecting “All” option.

Note: Context menu (right mouse click on the servers list) contains Remove/Add item elements.

Session Group Permissions

In order to set permissions to manage group of FIX sessions, go to 'Group Permissions' tab, select necessary group and set permissions to be granted to this group. 
The same approach can be used to limit group permissions. Full access to the FIX sessions at the server can be granted selecting “All” option.

Note: Context menu (right mouse click on the servers list) contains Remove/Add item elements to Remove/Add group.

Note, FIX session can be added to necessary security group via “Security Groups” field on 'Security' tab.

Troubleshooting

FIXICC can't start because it can't use the directory with metadata

FIXICC keeps the user-specific metadata in the directory specified with parameter default_userdir from fixicc.conf

By default it is the directory in the user's home in the application data folder:

fixicc.conf
default_userdir="${HOME}/.${APPNAME}/dev"

The default directory is inaccessible or default_userdir can be specified to the NetBeans home directory. In this case, FIXICC will fail with the next error on the startup

Your user directory (D:\FIXEdge\fixicc\dev) cannot reside inside your NetBeans installation directory (D:\FIXEdge\fixicc).

Solution

Update default_userdir with the different directory outside of FIXEdge installation dir:

fixicc.conf
default_userdir="D:/dev"