Understanding RET adapter log files

This page looks at a typical all-adapter.log file for the RET Adapter Toolkit’s example calendar adapter (examples/CalendarAdapter in the RET Adapter Toolkit).

Start-up log messages

A typical start-up sequence begins with the following messages:

2015 Mar 19 11:40:20.200 +0000  -  [main] INFO  com.caplin.motif.fx.ret.calendar.CalendarAdapter - **********Starting Calendar Adapter.********
2015 Mar 19 11:40:20.203 +0000  -  [main] INFO  com.caplin.motif.fx.ret.calendar.CalendarAdapter - Version: null

The adapter loads application configuration properties from its adapter.properties file:

2015 Mar 19 11:40:20.213 +0000  -  [main] INFO  com.caplin.motif.fx.ret.calendar.config.CalendarAdapterInitialiser - Loading datasource configuration properties file <E:\Development\Stash\rettoolkit\clients\Example\CalendarAdapter\Blade\DataSource\..\overrides\CalendarAdapter\etc\adapter.properties>
2015 Mar 19 11:40:20.251 +0000  -  [main] INFO  com.caplin.motif.fx.ret.calendar.config.CalendarAdapterInitialiser -
[Datasource Properties]
2015 Mar 19 11:40:20.251 +0000  -  [main] INFO  com.caplin.motif.fx.ret.calendar.config.CalendarAdapterInitialiser - No adapter configuration listener registered. Not loading any custom configuration

The adapter loads TrAPI connection properties from its trapi-connection.properties file:

2015 Mar 19 11:40:20.276 +0000  -  [main] INFO  com.caplin.ret.trapi.configuration.TrAPIUnderlyingManager - Initialising connections
2015 Mar 19 11:40:20.314 +0000  -  [main] INFO  com.caplin.ret.trapi.configuration.TrAPIProperties -
[Common Properties]
USE_MOCKS = true, PORT = <SCS Relay port>, RECONNECTION_EXPONENTIAL_INITIAL_INTERVAL = 5, RET_LOG_ENABLED = true, HOST = <SCS Relay host>, RECONNECTION_EXPONENTIAL_MAX_INTERVAL = 600
[CalendarConnection]
USE_MOCKS=true, SIMULATE_LOMS_TIMEOUT_CURRENCY_PAIR=, MODIFY_STRATEGY_TIMEOUT=120000, SIMULATE_LOMS_ACTIVE_ORDER_CURRENCY_PAIR=, CAN_TRADE_ON_SETTLEMENT_CCY_HOLIDAYS=null, TRAPI_PROPERTIES=, STRATEGY_ACTIVATE_TRANSACTION_TIMEOUT=null, LBN_RECONNECTION_ATTEMPTS=0, CONNECTION_TYPE=direct_scs, ADD_USERSET_USERS=false, CONNECTION_POOL_KEY=default_connection_pool_key, RET_LOG_APPEND=true, LOAD_CURRENCY_PAIRS=false, SIMULATE_LOMS_DORMANT_ORDER_CURRENCY_PAIR=, ADD_USER_TO_OWN_USERSET=true, CUSTOM_TRANSITIONS=, RET_LOG_ENABLED=true, ORDER_MODIFY_TRANSACTION_TIMEOUT=null, HOST=<SCS Relay host>, RET_LOG_LOCATION=var, ORDER_TYPE=market, STRATEGY_SUBMIT_AND_ACTIVATE_TRANSACTION_TIMEOUT=null, LBN_LOG_LOCATION=var, CLIENT=null, RECONNECTION_INTERVAL=5, INSTRUMENTS=, SIMULATE_LOMS_REGISTER_FAIL_CURRENCY_PAIR=, ENCRYPTION_TYPE=none, LOAD_INVERSE_CURRENCY_PAIRS=false, SL_MARKUP_SOURCE=null, MARKET_ORDER_RESOURCE=GID.orders, USER_GROUPS_TO_LOAD=, PASSWORD=*****, LBN_MOCK_SERVER_HOST=<LBN Mock server host>, SIMULATE_LOMS_ACTIVATE_FAIL_CURRENCY_PAIR=, RECONNECTION_EXPONENTIAL_INITIAL_INTERVAL=5, LBN_MOCK_SERVER_PORT=<LBN Mock server port>, USE_CHECK_PRICE_TOLERANCE=false, TP_MARKUP_SOURCE=null, TIMEOUT_MULTIPLIER=0.990, STRATEGY_LOCK_TRANSACTION_TIMEOUT=null, LBN_LOG_NAME=LBN_@.log, TRADING_CONNECTION_STAGING_INTERVAL=5000, STRATEGY_SUBMIT_ONLY_TRANSACTION_TIMEOUT=null, TRANSFER_PROTOCOL=standard, SEND_PEER_INFO=false, RECONNECTION_ATTEMPTS=-1, USERSET_USERS=, LIMIT_ORDER_RESOURCE=BT.Server.LOMS, DEFAULT_TRANSACTION_TIMEOUT=15000, USERNAME=username, RATE_SUBSCRIPTION_THREAD_POOL_SIZE=12, CONF_DIRECTORY=etc, USE_AS_MONITOR=false, SIMULATE_LOMS_ORDER_FILL_CURRENCY_PAIR=, LBN_RESOURCE=GID.orders, LABEL=CalendarConnection, LAS_RESOURCE=GID.logs, LBN_HEARTBEAT=10, USE_COMPRESSION=false, CURRENCY_PAIRS_TO_LOAD=, URL_ENCODE_TAKER_ORDER_CUSTOM=false, HEARTBEAT=10, STRATEGY_DEACTIVATE_TRANSACTION_TIMEOUT=null, START_LBN_MOCK_SERVER=false, RFQ_CONCURRENCY_LIMIT=1000, LBN_LOG_APPEND=true, ORDER_ACCOUNT_TRANSACTION_TIMEOUT=null, PORT=<SCS Relay port>, USE_FOR_TRADING=false, STRATEGY_UNLOCK_TRANSACTION_TIMEOUT=null, ORDER_DELETE_TRANSACTION_TIMEOUT=null, CACHE_ORDER_HISTORIES=true, RECONNECTION_EXPONENTIAL_MAX_INTERVAL=600, ORDER_CANCEL_TRANSACTION_TIMEOUT=null, RET_LOG_NAME=ret.log, SIMULATE_SETTLEMENT_DATES_FOR_CURRENCY_PAIRS=
2015 Mar 19 11:40:20.314 +0000  -  [main] INFO  com.caplin.ret.trapi.configuration.TrAPIUnderlyingManager - Using default configuration loader.
One important property to check is USE_MOCKS, which indicates whether the adapter is running against mock data provided by the RET Adapter Toolkit.

The following messages describe TrAPI version numbers and licence information:

2015 Mar 19 11:40:20.343 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <** INFO ** Using System Properties>
2015 Mar 19 11:40:20.345 +0000  -  [main] WARN  com.caplin.motif.fx.ret.common.configurationproperties.ConfigurationLoaderImpl - The configuration file <trapi.lic> does not exist in configuration directories
2015 Mar 19 11:40:20.345 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <Using licence file:>
2015 Mar 19 11:40:20.347 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <>
2015 Mar 19 11:40:20.347 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <TrAPI - Trading Application Interface Library: TrAPI-3.5.126.BD>
2015 Mar 19 11:40:20.348 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <TrAPI   using JavaLib: 3.5.953 (Core: 3.5.21.4 r232610)>
2015 Mar 19 11:40:20.348 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <TrAPI   using PrAPI: 1.0.129>
2015 Mar 19 11:40:20.348 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <TrAPI   using native JCL comms: 3.5.21.4 r232610>
2015 Mar 19 11:40:20.350 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <TrAPI   using Licence Handler: 23>
2015 Mar 19 11:40:20.350 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <TrAPI   using API Common: 2.0.63>
2015 Mar 19 11:40:20.350 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <>

The messages below describe the creation of Refinitiv proxy user connections, based on the definitions in the trapi-configuration.properties file:

2015 Mar 19 11:40:20.350 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.DefaultConnectionManager - Connections created
2015 Mar 19 11:40:20.359 +0000  -  [main] INFO  com.caplin.ret.trapi.concurrent.ExecutorManager - Created scheduled single-threaded executor <com.caplin.ret.trapi.concurrent.executor.ScheduledSingleThreadExecutor@f7c31d>
2015 Mar 19 11:40:20.360 +0000  -  [main] INFO  com.caplin.ret.trapi.concurrent.ExecutorManager - Created scheduled single-threaded executor <com.caplin.ret.trapi.concurrent.executor.ScheduledSingleThreadExecutor@ff2413>
...

If the TrAPI connection property ret_log_enabled is set to true, the adapter logs the following messages:

2015 Mar 19 11:40:20.506 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <** INFO ** Using com.m_systems.trapi.log.enable:[true]>
2015 Mar 19 11:40:20.506 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <** INFO ** Using com.m_systems.trapi.log.location:[var]>
2015 Mar 19 11:40:20.506 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <** INFO ** Using com.m_systems.trapi.log.name:[ret.log]>
2015 Mar 19 11:40:20.506 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <** INFO ** Using com.m_systems.trapi.log.append:[true]>
2015 Mar 19 11:40:20.512 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <** INFO ** Using message log:[file:[E:\Development\Stash\rettoolkit\clients\Example\CalendarAdapter\Blade\DataSource\var\ret.log]]>
2015 Mar 19 11:40:20.718 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <** INFO ** Using com.m_systems.trapi.proxy_load_account_details:[true]>
2015 Mar 19 11:40:20.718 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <** INFO ** Using com.m_systems.trapi.callback_threads:[10]>

In this example, no TrAPI licence is available, and the adapter logs the following message:

2015 Mar 19 11:40:20.720 +0000  -  [main] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <** ERROR ** com.m_systems.utils.TrAPI_e$b: Unable to read the licence stream.>

Connections to TrAPI are initialised:

2015 Mar 19 11:40:20.722 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.ConnectionProperties - getMockCurrencyPairFormatsConfigurationFile() called on configuration loader
2015 Mar 19 11:40:20.722 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.ConnectionProperties - getMockCurrencyPairFormatsConfigurationFile() returning path <E:\Development\Stash\rettoolkit\clients\Example\CalendarAdapter\Blade\DataSource\etc\currency_pair_formats.csv>
2015 Mar 19 11:40:20.737 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.ConnectionProperties - GetMockCurrencySeedsConfigurationFile() called on configuration loader
2015 Mar 19 11:40:20.737 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.ConnectionProperties - GetMockCurrencySeedsConfigurationFile() returning path <E:\Development\Stash\rettoolkit\clients\Example\CalendarAdapter\Blade\DataSource\etc\currencyseeds.csv>
2015 Mar 19 11:40:20.761 +0000  -  [main] INFO  com.caplin.ret.trapi.rates.impl.TrAPIRatesProxy - TrAPIRatesProxy initialised for <username>
2015 Mar 19 11:40:20.764 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.ConnectionProperties - getMockCurrencyPairFormatsConfigurationFile() called on configuration loader
2015 Mar 19 11:40:20.765 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.ConnectionProperties - getMockCurrencyPairFormatsConfigurationFile() returning path <E:\Development\Stash\rettoolkit\clients\Example\CalendarAdapter\Blade\DataSource\etc\currency_pair_formats.csv>
2015 Mar 19 11:40:20.774 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.DefaultConnectionManager - Added connection for user <username> and label <CalendarConnection>
2015 Mar 19 11:40:20.775 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.DefaultConnectionManager - Connections created
2015 Mar 19 11:40:20.775 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.DefaultConnectionManager - Connections created
2015 Mar 19 11:40:20.775 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.DefaultConnectionManager - Connections created
2015 Mar 19 11:40:20.775 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.CompositeConnectionFactory - Composite Connection Manager initialised.
2015 Mar 19 11:40:21.168 +0000  -  [main] INFO  com.caplin.motif.fx.ret.common.adapterstatus.CompositeStatusManager - Adding composite status listener <com.caplin.motif.fx.ret.calendar.CalendarAdapterStatusListener@51ef4e>
2015 Mar 19 11:40:21.169 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.calendar.CalendarAdapterStatusListener - Received on status down.
2015 Mar 19 11:40:21.169 +0000  -  [main] INFO  com.caplin.motif.fx.ret.common.adapterstatus.CompositeStatusManager - Adding composite status listener <com.caplin.motif.fx.ret.common.adapterstatus.AdapterStatusPublisher@6db33c>
2015 Mar 19 11:40:21.170 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.common.adapterstatus.AdapterStatusPublisher - Setting DataSource status to <DOWN>
2015 Mar 19 11:40:21.170 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.common.adapterstatus.AdapterStatusPublisher - Adapter already <DOWN>, doing nothing
2015 Mar 19 11:40:21.181 +0000  -  [main] INFO  com.caplin.motif.fx.ret.common.adapterstatus.RETMarketOrderConnectionStatusListener - Created scheduled single-threaded executor <com.caplin.ret.trapi.concurrent.executor.ScheduledSingleThreadExecutor@c1186f>
2015 Mar 19 11:40:21.181 +0000  -  [main] INFO  com.caplin.motif.fx.ret.common.adapterstatus.RETMarketOrderConnectionStatusListener - Adding connection label <CalendarConnection>
2015 Mar 19 11:40:21.183 +0000  -  [main] INFO  com.caplin.motif.fx.ret.common.adapterstatus.CompositeStatusManager - Added RET Connection Status Listeners <[RETMarketOrderConnectionStatusListener{isUp=false, connectionLabels=[CalendarConnection], connections=[Connection with user name [username]]}]>
2015 Mar 19 11:40:21.183 +0000  -  [main] INFO  com.caplin.motif.fx.ret.calendar.config.CalendarAdapterInitialiser - TrAPI manager initialised.
2015 Mar 19 11:40:21.183 +0000  -  [main] INFO  com.caplin.motif.fx.ret.calendar.CalendarAdapter - Initiating connection to TrAPI
2015 Mar 19 11:40:21.183 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.common.adapterstatus.CompositeStatusManager - Attempting to set status <DOWN>, all connection status listeners <[RETMarketOrderConnectionStatusListener{isUp=false, connectionLabels=[CalendarConnection], connections=[Connection with user name [username]]}]>, down connection status listeners <[RETMarketOrderConnectionStatusListener{isUp=false, connectionLabels=[CalendarConnection], connections=[Connection with user name [username]]}]>

The messages below relate to the initalisation of a MarketOrderConnection:

2015 Mar 19 11:40:21.183 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.MarketOrderConnection - Connect called for user <username> from host <SCS Relay host> and port <SCS Relay port>
2015 Mar 19 11:40:21.184 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.MarketOrderConnection - Connect called for user <username>
2015 Mar 19 11:40:21.184 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.calendar.CalendarAdapterStatusListener - Received on status down.
2015 Mar 19 11:40:21.184 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.MarketOrderConnection - Calling PerformConnection for user: <username>,  Host: <SCS Relay host> Port: <SCS Relay port>
2015 Mar 19 11:40:21.184 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.MarketOrderConnection - Perform connection called for proxy user <username>, host<SCS Relay host>, port<SCS Relay port>, connection label <CalendarConnection> no client
2015 Mar 19 11:40:21.184 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.MarketOrderConnection - Connecting to RET for user <username>, host<SCS Relay host>, port<SCS Relay port> with connection label <CalendarConnection>
2015 Mar 19 11:40:21.184 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.MarketOrderConnection - Connection completed for user <username>, host<SCS Relay host>, port<SCS Relay port> with connection label <CalendarConnection>
2015 Mar 19 11:40:21.184 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.MarketOrderConnection - Connection successful for user <username>, host<SCS Relay host>, port<SCS Relay port> with connection label <CalendarConnection>

In the following messages, the status of the MarketOrderConnection is set to <UP>:

2015 Mar 19 11:40:21.184 +0000  -  [main] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderEventListenerProxy - Set performReconnection to <true> for user <username>
2015 Mar 19 11:40:21.185 +0000  -  [main] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderEventListenerProxy - onConnect call for user <username>
2015 Mar 19 11:40:21.185 +0000  -  [main] INFO  com.caplin.ret.trapi.connection.MarketOrderConnection - User <username>: Connected successfully to host <SCS Relay host> and port <SCS Relay port>
2015 Mar 19 11:40:21.185 +0000  -  [main] INFO  com.caplin.motif.fx.ret.calendar.CalendarAdapter - Finished initiating to TrAPI, waiting for connection up or connection down callback
2015 Mar 19 11:40:21.186 +0000  -  [caplin.DedicatedSerialExecutor-<thread:0>] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderEventListenerProxy - Sending onTradingUnavailable to Trading Connection Listener for id <com.caplin.motif.fx.ret.common.adapterstatus.RETMarketOrderConnectionStatusListener/com.caplin.ret.trapi.connection.MarketOrderConnection/03ed3749-0786-47da-8685-e39560597313> for connection name <username>, label <CalendarConnection>
2015 Mar 19 11:40:21.184 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.common.adapterstatus.AdapterStatusPublisher - Setting DataSource status to <DOWN>
2015 Mar 19 11:40:21.186 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.common.adapterstatus.AdapterStatusPublisher - Adapter already <DOWN>, doing nothing
2015 Mar 19 11:40:21.186 +0000  -  [caplin.DedicatedSerialExecutor-<thread:0>] INFO  com.caplin.motif.fx.ret.common.adapterstatus.RETMarketOrderConnectionStatusListener - Receiving onConnectionDown connection event for user <username> and connection label <CalendarConnection>.
2015 Mar 19 11:40:21.186 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.common.adapterstatus.CompositeStatusManager - After connection down called.
2015 Mar 19 11:40:21.186 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.common.adapterstatus.CompositeStatusManager - Set status to <DOWN>
2015 Mar 19 11:40:21.187 +0000  -  [caplin.DedicatedSerialExecutor-<thread:0>] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderEventListenerProxy - Sending onTradingAvailable to Trading Connection Listener for id <com.caplin.motif.fx.ret.common.adapterstatus.RETMarketOrderConnectionStatusListener/com.caplin.ret.trapi.connection.MarketOrderConnection/03ed3749-0786-47da-8685-e39560597313> for connection name <username>, label <CalendarConnection>
2015 Mar 19 11:40:21.187 +0000  -  [pool-22-thread-1] INFO  com.caplin.motif.fx.ret.common.adapterstatus.RETMarketOrderConnectionStatusListener - Connections in close of day awaiting reconnection <[]>
2015 Mar 19 11:40:21.187 +0000  -  [caplin.DedicatedSerialExecutor-<thread:0>] INFO  com.caplin.motif.fx.ret.common.adapterstatus.RETMarketOrderConnectionStatusListener - Receiving onConnectionUp connection event for user <username> and connection label <CalendarConnection>
2015 Mar 19 11:40:21.187 +0000  -  [pool-22-thread-1] INFO  com.caplin.motif.fx.ret.common.adapterstatus.RETMarketOrderConnectionStatusListener - Handling connection down for user <username> and connection label <CalendarConnection>.
2015 Mar 19 11:40:21.188 +0000  -  [pool-22-thread-1] INFO  com.caplin.motif.fx.ret.common.adapterstatus.RETMarketOrderConnectionStatusListener - Attempting to set listener <com.caplin.motif.fx.ret.common.adapterstatus.RETMarketOrderConnectionStatusListener/com.caplin.ret.trapi.connection.MarketOrderConnection/03ed3749-0786-47da-8685-e39560597313> status to <DOWN>
2015 Mar 19 11:40:21.188 +0000  -  [pool-22-thread-1] INFO  com.caplin.motif.fx.ret.common.adapterstatus.RETMarketOrderConnectionStatusListener - Setting listener <com.caplin.motif.fx.ret.common.adapterstatus.RETMarketOrderConnectionStatusListener/com.caplin.ret.trapi.connection.MarketOrderConnection/03ed3749-0786-47da-8685-e39560597313> status to DOWN
2015 Mar 19 11:40:21.188 +0000  -  [caplin.DedicatedSerialExecutor-<thread:0>] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderEventListenerProxy - Sending onTradingAvailable to Trading Connection Listener for id <com.caplin.ret.trapi.rates.impl.TrAPIRatesProxy:1426765220760> for connection name <username>, label <CalendarConnection>
2015 Mar 19 11:40:21.188 +0000  -  [pool-22-thread-1] INFO  com.caplin.motif.fx.ret.common.adapterstatus.CompositeStatusManager - On Connection status Listener DOWN received  from listener <RETMarketOrderConnectionStatusListener{isUp=false, connectionLabels=[CalendarConnection], connections=[Connection with user name [username]]}>

The messages below show the TrAPIRatesProxy that is used as a single entry point via the RET Integration API to receive all rate-related callbacks from the RET system:

2015 Mar 19 11:40:21.188 +0000  -  [caplin.DedicatedSerialExecutor-<thread:0>] INFO  com.caplin.ret.trapi.rates.impl.TrAPIRatesProxy - Received connection UP for user <username> and label <CalendarConnection>
2015 Mar 19 11:40:21.189 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.common.adapterstatus.CompositeStatusManager - Attempting to set status <DOWN>, all connection status listeners <[RETMarketOrderConnectionStatusListener{isUp=false, connectionLabels=[CalendarConnection], connections=[Connection with user name [username]]}]>, down connection status listeners <[RETMarketOrderConnectionStatusListener{isUp=false, connectionLabels=[CalendarConnection], connections=[Connection with user name [username]]}]>
2015 Mar 19 11:40:21.189 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.calendar.CalendarAdapterStatusListener - Received on status down.
2015 Mar 19 11:40:21.189 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.common.adapterstatus.AdapterStatusPublisher - Setting DataSource status to <DOWN>
2015 Mar 19 11:40:21.189 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.common.adapterstatus.AdapterStatusPublisher - Adapter already <DOWN>, doing nothing
2015 Mar 19 11:40:21.189 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.common.adapterstatus.CompositeStatusManager - After connection down called.
2015 Mar 19 11:40:21.189 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.common.adapterstatus.CompositeStatusManager - Set status to <DOWN>
2015 Mar 19 11:40:21.190 +0000  -  [pool-22-thread-1] INFO  com.caplin.motif.fx.ret.common.adapterstatus.RETMarketOrderConnectionStatusListener - Handling connection up for user <username> and connection label <CalendarConnection>
2015 Mar 19 11:40:21.190 +0000  -  [pool-22-thread-1] INFO  com.caplin.motif.fx.ret.common.adapterstatus.RETMarketOrderConnectionStatusListener - Attempting to set listener <com.caplin.motif.fx.ret.common.adapterstatus.RETMarketOrderConnectionStatusListener/com.caplin.ret.trapi.connection.MarketOrderConnection/03ed3749-0786-47da-8685-e39560597313> status to <UP>
2015 Mar 19 11:40:21.190 +0000  -  [pool-22-thread-1] INFO  com.caplin.motif.fx.ret.common.adapterstatus.RETMarketOrderConnectionStatusListener - Setting listener <com.caplin.motif.fx.ret.common.adapterstatus.RETMarketOrderConnectionStatusListener/com.caplin.ret.trapi.connection.MarketOrderConnection/03ed3749-0786-47da-8685-e39560597313> status to <UP>

The messages below show that when one connection is <UP>, the adapter’s DataSource status is also be set to <UP>:

2015 Mar 19 11:40:21.191 +0000  -  [pool-22-thread-1] INFO  com.caplin.motif.fx.ret.common.adapterstatus.CompositeStatusManager - On Connection status Listener UP received  from listener <RETMarketOrderConnectionStatusListener{isUp=true, connectionLabels=[CalendarConnection], connections=[Connection with user name [username]]}>
2015 Mar 19 11:40:21.191 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.common.adapterstatus.CompositeStatusManager - Attempting to set status <UP>, all connection status listeners <[RETMarketOrderConnectionStatusListener{isUp=true, connectionLabels=[CalendarConnection], connections=[Connection with user name [username]]}]>, down connection status listeners <[]>
2015 Mar 19 11:40:21.191 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.calendar.CalendarAdapterStatusListener - Received on status up. Clearing FXCalendarAdapter cache
2015 Mar 19 11:40:21.192 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.common.adapterstatus.AdapterStatusPublisher - Starting DataSource and setting status to <UP>

The message below message shows that the adapter’s status is now <UP>:

2015 Mar 19 11:40:21.193 +0000  -  [caplin.DedicatedSerialExecutor-<thread:2>] INFO  com.caplin.motif.fx.ret.common.adapterstatus.CompositeStatusManager - Set status to <UP>
From this point onwards, the adapter’s status would appear as Up on the Liberator status page.

The message below records a connection confirmation from Liberator:

2015 Mar 19 11:14:47.569 +0000  -  [datasource.peer(0)] INFO  com.caplin.motif.fx.ret.common.adapterstatus.AdapterStatusPublisher - Received connected message from peer <liberator1> with peer ID <0>

Request-handling log messages

This section looks at messages recording the receptions and serving of subscription requests.

On thread 5 of thread pool 18 a request is made to receive the tenor date CALENDAR/TENORDATES/EURUSD/user1@caplin.com:

2015 Mar 19 11:19:08.545 +0000  -  [pool-18-thread-5] INFO  com.caplin.motif.fx.ret.calendar.request.CalendarServiceRequestListener - Received Tenor Dates request <RETTenorDateSubjectInfo [username=user1@caplin.com, getSubject()=/CALENDAR/TENORDATES/EURUSD/user1@caplin.com, getCurrencyPair()=EURUSD]> with callback <com.caplin.motif.fx.calendar.TenorDateDataProvider$1$1@126ec30c>

On thread 6 of thread pool 18 a request is made to receive the settlement date /CALENDAR/SETTLEMENTDATE/EURUSD/2015/04/user1@caplin.com :

2015 Mar 19 11:19:08.579 +0000  -  [pool-18-thread-6] INFO  com.caplin.motif.fx.ret.calendar.request.CalendarServiceRequestListener - Received Settlement Dates request for <RETSettlementDateSubjectInfo [username=user1@caplin.com, getSubject()=/CALENDAR/SETTLEMENTDATE/EURUSD/2015/04/user1@caplin.com, getCurrencyPair()=EURUSD, getYear()=2015, getMonth()=04]> on callback <com.caplin.motif.fx.calendar.SettlementDateDataProvider$1$1@46ff33c6>

TrAPILogger implements RET ILogDevice to handle RET log messages. You will see a lot of the following log lines as RET attempts to log every incoming message regardless of length. In the case of a historical trade request, these lines can exceed two million characters, this then causes Log4J to throw an OutOfMemoryError. Therefore, it is necessary to truncate the log lines to 5000 characters to avoid running out of JVM heap space:

2015 Mar 19 11:19:09.197 +0000  -  [pool-18-thread-3] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <** DEBUG ** GID.DateServer connected>
2015 Mar 19 11:19:09.251 +0000  -  [WorkerThread 3] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <** DEBUG ** GID.DateServer disconnected>
2015 Mar 19 11:19:09.251 +0000  -  [WorkerThread 3] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <** DEBUG ** GID.DateServer completely disconnected>

The log messages below describe data retrieval from Refinitiv for settlement date requests:

2015 Mar 19 11:19:10.414 +0000  -  [pool-18-thread-6] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderCalendarService - GetValidSettlementDays called for year <2015> month <04> and currency pair <EURUSD>, instrument <FX.CROSS>
2015 Mar 19 11:19:10.416 +0000  -  [pool-18-thread-6] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderCalendarService - Date <20150403> for currency pair <EURUSD> is INVALID because it is a holiday other than a settlement currency holiday <[5]>
2015 Mar 19 11:19:10.416 +0000  -  [pool-18-thread-6] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderCalendarService - Date <20150404> for currency pair <EURUSD> is INVALID because it is a <rest day>
2015 Mar 19 11:19:10.417 +0000  -  [pool-18-thread-6] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderCalendarService - Date <20150405> for currency pair <EURUSD> is INVALID because it is a <rest day>
2015 Mar 19 11:19:10.418 +0000  -  [pool-18-thread-6] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderCalendarService - Date <20150406> for currency pair <EURUSD> is INVALID because it is a holiday other than a settlement currency holiday <[5]>
2015 Mar 19 11:19:10.420 +0000  -  [pool-18-thread-6] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderCalendarService - Date <20150411> for currency pair <EURUSD> is INVALID because it is a <rest day>
2015 Mar 19 11:19:10.421 +0000  -  [pool-18-thread-6] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderCalendarService - Date <20150412> for currency pair <EURUSD> is INVALID because it is a <rest day>
2015 Mar 19 11:19:10.428 +0000  -  [pool-18-thread-6] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderCalendarService - Date <20150418> for currency pair <EURUSD> is INVALID because it is a <rest day>
2015 Mar 19 11:19:10.429 +0000  -  [pool-18-thread-6] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderCalendarService - Date <20150419> for currency pair <EURUSD> is INVALID because it is a <rest day>
2015 Mar 19 11:19:10.431 +0000  -  [pool-18-thread-6] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderCalendarService - Date <20150425> for currency pair <EURUSD> is INVALID because it is a <rest day>
2015 Mar 19 11:19:10.432 +0000  -  [pool-18-thread-6] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderCalendarService - Date <20150426> for currency pair <EURUSD> is INVALID because it is a <rest day>
2015 Mar 19 11:19:10.434 +0000  -  [pool-18-thread-6] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderCalendarService - Returning <[20150401, 20150402, 20150407, 20150408, 20150409, 20150410, 20150413, 20150414, 20150415, 20150416, 20150417, 20150420, 20150421, 20150422, 20150423, 20150424, 20150427, 20150428, 20150429, 20150430]> for GetValidSettlementDays called for year <2015> month <04> and currency pair <EURUSD>, instrument <FX.CROSS>
2015 Mar 19 11:19:10.435 +0000  -  [pool-18-thread-6] INFO  com.caplin.motif.fx.ret.calendar.request.CalendarServiceRequestListener - Generated settlement Dates for <EURUSD>  <04/2015> is <[20150401, 20150402, 20150407, 20150408, 20150409, 20150410, 20150413, 20150414, 20150415, 20150416, 20150417, 20150420, 20150421, 20150422, 20150423, 20150424, 20150427, 20150428, 20150429, 20150430]>

The log messages below describe data retrieval from Refinitiv for tenor date requests:

2015 Mar 19 11:19:10.446 +0000  -  [pool-18-thread-5] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderCalendarService - Received GetTenorDates for currency pair <EURUSD> and instrument <FX.CROSS>
2015 Mar 19 11:19:10.446 +0000  -  [pool-18-thread-5] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderCalendarService - Retrieving Value dates for tenors <[ON, TODAY, TN, TOM, SPOT, 1D, SN, 1W, 2W, 3W, 1M, 2M, 3M, 4M, 5M, 6M, 7M, 8M, 9M, 10M, 11M, 1Y, 15M, 18M, 2Y, 3Y, 4Y, 5Y]> for requested currency pair <EURUSD> and instrument <FX.CROSS>

These log messages below describe data being published for a /CALENDAR/SETTLEMENTDATE/EURUSD/2015/04/user1@caplin.com request:

2015 Mar 19 11:19:10.447 +0000  -  [pool-18-thread-6] INFO  com.caplin.motif.fx.ret.calendar.request.CalendarServiceRequestListener - Published settlement Dates for <EURUSD>  <04/2015> is <[20150401, 20150402, 20150407, 20150408, 20150409, 20150410, 20150413, 20150414, 20150415, 20150416, 20150417, 20150420, 20150421, 20150422, 20150423, 20150424, 20150427, 20150428, 20150429, 20150430]>

As mentioned before, RET attempts to log every incoming message regardless of character length. In the case of a historical trade request, these lines can exceed two million characters, which can cause Log4J to throw an OutOfMemoryError. It is necessary to truncate these lines to a max length of 5000 characters to avoid running out of JVM heap space:

2015 Mar 19 11:19:10.482 +0000  -  [pool-18-thread-5] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <** DEBUG ** GID.DateServer connected>
2015 Mar 19 11:19:10.577 +0000  -  [pool-18-thread-5] INFO  com.caplin.ret.trapi.logging.TrAPILogger - TrAPI Log ==> <** DEBUG ** GID.DateServer connected>

The log messages below describe data retrieval from Refinitiv for tenor date requests:

2015 Mar 19 11:19:10.629 +0000  -  [pool-18-thread-5] INFO  com.caplin.ret.trapi.fx.execution.impl.TrAPIMarketOrderCalendarService - GetTenorDates for currency pair <EURUSD> and instrument <FX.CROSS>. Tenors received <[ON, TODAY, TN, TOM, SPOT, 1D, SN, 1W, 2W, 3W, 1M, 2M, 3M, 4M, 5M, 6M, 7M, 8M, 9M, 10M, 11M, 1Y, 15M, 18M, 2Y, 3Y, 4Y, 5Y]> and final result to be returned <{10M=20160125, 11M=20160223, 15M=20160623, 18M=20160923, 1D=20150324, 1M=20150423, 1W=20150330, 1Y=20160323, 2M=20150526, 2W=20150407, 2Y=20170323, 3M=20150623, 3W=20150413, 3Y=20180323, 4M=20150723, 4Y=20190325, 5M=20150824, 5Y=20200323, 6M=20150923, 7M=20151023, 8M=20151123, 9M=20151223, ON=20150319, SN=20150324, SPOT=20150323, TN=20150320, TODAY=20150319, TOM=20150320}>

The log messages below describe a tenor date request:

2015 Mar 19 11:19:10.634 +0000  -  [pool-18-thread-5] INFO  com.caplin.motif.fx.ret.calendar.request.CalendarServiceRequestListener - Generated Tenor Dates for currency pair <EURUSD> is <{10M=20160125, 11M=20160223, 15M=20160623, 18M=20160923, 1D=20150324, 1M=20150423, 1W=20150330, 1Y=20160323, 2M=20150526, 2W=20150407, 2Y=20170323, 3M=20150623, 3W=20150413, 3Y=20180323, 4M=20150723, 4Y=20190325, 5M=20150824, 5Y=20200323, 6M=20150923, 7M=20151023, 8M=20151123, 9M=20151223, ON=20150319, SN=20150324, SPOT=20150323, TN=20150320, TODAY=20150319, TOM=20150320}>
2015 Mar 19 11:19:10.657 +0000  -  [pool-18-thread-5] INFO  com.caplin.motif.fx.calendar.TenorDates - Publishing {10M=20160125, 11M=20160223, 15M=20160623, 18M=20160923, 1D=20150324, 1M=20150423, 1W=20150330, 1Y=20160323, 2M=20150526, 2W=20150407, 2Y=20170323, 3M=20150623, 3W=20150413, 3Y=20180323, 4M=20150723, 4Y=20190325, 5M=20150824, 5Y=20200323, 6M=20150923, 7M=20151023, 8M=20151123, 9M=20151223, ON=20150319, SN=20150324, SPOT=20150323, TN=20150320, TODAY=20150319, TOM=20150320} Tenor Dates for subject /CALENDAR/TENORDATES/EURUSD/user1@caplin.com

These logs describe data being published for a /CALENDAR/TENORDATES/EURUSD/user1@caplin.com request:

2015 Mar 19 11:19:10.665 +0000  -  [pool-18-thread-5] INFO  com.caplin.motif.fx.ret.calendar.request.CalendarServiceRequestListener - Published Tenor Dates for currency pair <EURUSD> is <{10M=20160125, 11M=20160223, 15M=20160623, 18M=20160923, 1D=20150324, 1M=20150423, 1W=20150330, 1Y=20160323, 2M=20150526, 2W=20150407, 2Y=20170323, 3M=20150623, 3W=20150413, 3Y=20180323, 4M=20150723, 4Y=20190325, 5M=20150824, 5Y=20200323, 6M=20150923, 7M=20151023, 8M=20151123, 9M=20151223, SPOT=20150323, TODAY=20150319, TOM=20150320}>