單元: dsPATS
服務: mdcsd
註: [ ] 中表示 LOG 樣本
{啟動部份}
1. mdcsd 服務啟動
[S ---< Market Data Center Server (MDC Group) Version:1.6.0.8 running >---]
2. mdcsd 載入 dsPATS 並啟動
[S Data source 'dsPATS' initial.]
3. mdcsd 呼叫 dsPATS 啟動 (dsPATS 回報狀態)
[S DS State:CallStart ds_start call]
[S Data source 'dsPATS' started]
[S DS Initialised PATs API ok!]
4. dsPATS 載入 PATSAPI.dll
[S DS PATs API Library load success]
5. dsPATS 呼叫 PATSAPI 環境設定
ptEnable(Config DS.Enable)
ptSetHostHandShake(Config DS.HostHandShake_Interval, Config DS.HostHandShake_Timeout)
ptSetHostReconnect(Config DS.HostReconnect)
ptSetPriceAddress(Config DS.PriceIPAddress, Config DS.PriceIPSocket)
ptSetHostAddress(Config DS.HostIPAddress, Config DS.HostIPSocket)
ptSetPriceReconnect(Config DS.PriceReconnect)
ptSetInternetUser(Config DS.InternetUser)
ptNotifyAllMessages(Y)
ptReady()
ptSuperTASEnabled()
>>失敗(以上任一) 都將寫下 Error Log, 並中止流程
[S DS State:Stop PATs API Library start failed]
>>成功(全部), 進行至 [6.]
[S DS PATs API Library start success]
{Host連線部份}
6. PATSAPI 提供連線事件 cb_HostLinkStateChange
>>當出現 Connected 時, 進行至 [7.]
[S DS Host link state change prev=2(Connecting) now=3(Connected)]
>>其他, 進行至 [6.] 繼續等待
[S DS Host link state change prev=#($desc) now=#($desc)]
7. dsPATS 回報狀態改變為 Connected
[S DS State:Connected PATs Host link ready]
{登入部份}
8. dsPATS 呼叫登入 PATSAPI.ptLogOn
[S DS Try to logon uid:PAZAPIGF]
>>失敗, 休息2秒, 進行至 [8.] 上限次數3次, 達上次數, 中止流程
[S DS ptLogOn result=##, retry after 2 sec.]
>>成功, 正常流程, 不寫任何 LOG
9. PATSAPI 提供登入事件 cb_LogonStatus
呼叫 ptGetLogonStatus 取得登入狀態
>>失敗, 中止流程
[S DS Logon status change #($desc)]
>>成功, 進行至 [10.]
[S DS Logon status change 1()]
10. dsPATS 寫下登入資訊, 以及取出某些系統狀態
[S DS State:LoginOk Logon account=PAZAPIGF success, default=PAZ8000]
[S DS EnabledFunctionality Function:2E1 Software:0]
{商品資訊部份}
xx. PATSAPI 提供下載商品事件 cb_DataDLComplete
[S DS Data download complete]
{Price連線部份}
11. PATSAPI 提供行情連線事件 cb_PriceLinkStateChange
>>當出現 Connected 時, 進行至 [12.]
[S DS Price link state change prev=2(Connecting) now=3(Connected)]
>>其他, 進行至 [11.] 繼續等待
[S DS Price link state change prev=#($desc) now=#(#desc)]
{行情處理部份}
12. dsPATS 開始列舉商品並訂閱
依 ptCountContracts 數量, 叫用 ptGetExtendedContract 取出合約資訊
再依 Config MDCS.Exch + mdcmd CommodityRoot + mdcmd SourceDetail 條件判斷是否要訂閱處理行情
{無限等待事件化處理}
xx. PATSAPI Host連線變化 cb_HostLinkStateChange
進行至 [6.]
xx. PATSAPI Price連線變化 cb_PriceLinkStateChange
進行至 [11.]
xx. PATSAPI 更新報價 cb_PriceUpdate
呼叫 ptGetPriceForContract 取出行情, 推入 mdcsd 處理
xx. PATSAPI 更新DOM cb_DOMUpdate
呼叫 ptGetPriceForContract 取出行情, 推入 mdcsd 處理
xx. mdcsd 呼叫中斷服務
[S DS State:CallStop Call stop]
[S DS Call PATs API ptLogOff!]
[S DS State:Stop Stop]
[S Data source 'dsPATS' stoped]
[S Data source 'dsPATS' free.]
中止服務