Capital Markets Adapters 10.15 | Apama Capital Markets Adapters Documentation 10.15 | BM+F FIX Adapter | Session configuration
 
Session configuration
com.apama.fix.SessionConfiguration event might have following fields:
SecurityList.CreateSecurityList = true sets this parameter parameter will requests for the SecurityList and cache all the securities and their corresponding data for each security available in exchange.
SubscriptionManager.RepeatingGroupTags = [146 55 48 22 207]
SubscriptionManager.UseDefaultDepthEntryTypes = false
SubscriptionManager.AdditionalMDEntryTypes = "e f" (for BMF Book Aggregation)
SubscriptionManager.AdditionalMDEntryTypes = "Z X" (for Top of Book entries)"e f" (for BMF Book Aggregation)
SecurityList.RequestKeyID = BMF_TRANSPORT or some unqiue key
SubscriptionManager.SubscriptionKeyTags = "22 207" . It is the Key for SecurityId requests from user sessions. If user creating separate Market data session and Order manager session then both sessions can use the same store to get the SecurityId definitions instead of both populating and caching the security IDs.
Note:
SecurityId requests are listened on key supplied in this parameter "SecurityList.RequestKeyID". So user must set this field to some unique keyID (preferably MarketId of the Market data session).
SubscriptionManager.SecDefRequestTags = 48
OrderManager.SecDefRequestTags = 48
SubscriptionManager.MDupdateInPlace = true to enable in place update of Market data processing. Position based updates are applied in place.
SubscriptionManager.MaxHardDepthLevel = 0 to disable restriction of max number of book entries (default)
SubscriptionManager.MaxHardDepthLevel = 0 if MarketDepth(264) is available in MarketDataSnapshot message, the max number of book entries it set to it. Else, the number of book entries is set to the value specified here.
Note:
This parameter is used to support Price-depth Bottom Row Handling in BMF. This has been deprecated. Use SubscriptionManager.UseBMFBottomRowHandling instead.
SubscriptionManager.UseBMFBottomRowHandling = false to disable restriction of max number of book entries (default)
SubscriptionManager.UseBMFBottomRowHandling= true if MarketDepth(264) is available in MarketDataSnapshot message, the max number of book entries it set to it.
For example,

com.apama.fix.SessionConfiguration("BMF_TRANSPORT",
{"FixChannel":"BMF_FIX","SecurityList.CreateSecurityList":"true" ,
"SecurityList.RequestKeyID":"BMF_TRANSPORT",
"SubscriptionManager.RepeatingGroupTags":"[146 55 48 22 207]",
"SubscriptionManager.SecDefRequestTags":"48",
"OrderManager.SecDefRequestTags":"48",
"SubscriptionManager.MDupdateInPlace":"true",
"SubscriptionManager.SubscriptionKeyTags":"22 207"})
or with Aggregation

com.apama.fix.SessionConfiguration("BMF_TRANSPORT",{"FixChannel":"BMF_FIX",
"SecurityList.CreateSecurityList":"true",
"SecurityList.RequestKeyID":"BMF_TRANSPORT",
"SubscriptionManager.RepeatingGroupTags":"[146 55 48 22 207]",
"SubscriptionManager.SecDefRequestTags":"48",
"OrderManager.SecDefRequestTags":"48",
"SubscriptionManager.MDupdateInPlace":"true",
"SubscriptionManager.UseDefaultDepthEntryTypes":"false",
"SubscriptionManager.AdditionalMDEntryTypes":"ef",
"SubscriptionManager.SubscriptionKeyTags":"22 207"})
In case of different market names for MD and OMS:
# MarketData Session with BMF Book Aggregation
com.apama.fix.SessionConfiguration("BmfFixTransportMD",
{
"FixChannel":"BmfFixChannel",
"SecurityList.CreateSecurityList":"true",
"SecurityList.RequestKeyID":"BmfSecurityListRequestKeyID",
"SubscriptionManager.RepeatingGroupTags":"[146 55 48 22 207]",
"SubscriptionManager.SecDefRequestTags":"48",
"SubscriptionManager.MDupdateInPlace":"true",
"SubscriptionManager.UseDefaultDepthEntryTypes":"false",
"SubscriptionManager.AdditionalMDEntryTypes":"e f"
})
# MarketData Session without BMF Book Aggregation
com.apama.fix.SessionConfiguration("BmfFixTransportMD",
{
"FixChannel":"BmfFixChannel",
"SecurityList.CreateSecurityList":"true",
"SecurityList.RequestKeyID":"BmfSecurityListRequestKeyID",
"SubscriptionManager.RepeatingGroupTags":"[146 55 48 22 207]",
"SubscriptionManager.SecDefRequestTags":"48",
"SubscriptionManager.MDupdateInPlace":"true"
})
# OMS Session
com.apama.fix.SessionConfiguration("BmfFixTransportOMS",
{
"FixChannel":"BmfFixChannel",
"SecurityList.RequestKeyID":"BmfSecurityListRequestKeyID",
"OrderManager.IgnoreStatusOnOrderCancelReject":"true",
"OrderManager.SecDefRequestTags":"48",
"OrderManager.GenerateNewStyleOrderIds":"true",
"OrderManager.KillOrdersOnSessionDown":"false"
})
In the case of different market names for MD and OMS the SessionConfiguration for for MD must be sent before the SessionConfiguration of OMS. This is done so that the SecurityListManager of MD replies to GetFIXSecurityID requests before OM session. Since "SecurityList.CreateSecurityList":"true" is being used in MD session parameter, the Security info is stored by it, so it has to reply to all the queries.