Gateway幾個問題

張貼日期:Dec 19, 2010 1:40:49 PM

問題

目前Gateway大致上運作順暢...

有幾個問題想請教...

Gateway上為啥要用 MAP 8801=6600來對應呢???這是比較想不懂的

另外...Server上 O X F 這三個按鈕是做什麼的???我好像按了之後單子就送不出去了...

最後一個...單子送到Gateway之後...訊息也送回來告訴我說單子在Gateway已收到了...

但這時的Server是掛掉的...也就是說單子在Gateway上...但沒有Server可以幫他把單子轉送出去...

要是我把Server重開...那這張單會在連接上的時候立刻轉送出去嗎???

1.

Gateway上用 MAP 8801=6600 只是示範,可以依自己的概念作設計

6600是代表一個主機HOST可以是Trader Server或GateWay,

於你所看到的設定中,是於MAP之前透過 ADD 6600=127.0.0.1:22820 作編號給予代碼6600表示主機 127.0.0.1:22820

而8801是指一個Channel的交易通路, MAP 8801=6600 代表所有下單到通路 8801 Channel 的單會被送往 127.0.0.1:22820

GateWay上可以設定多台下單Server主機HOST(或GateWay),可以一一透過 ADD 給一個編號作代碼

而各通路Channel實際路由主機或GateWay則透過MAP給予指示

例如

ADD 6600=127.0.0.1:22820

ADD 6601=test1.trader.com.tw:33388

ADD 4567=test2.trader.com.tw:33388

ADD 8801=test3.trader.com.tw:33388

MAP 8801=6600

MAP 8802=6600

MAP 8803=6600

MAP 6601=6601

MAP 6602=4567

MAP 6603=8801

以上代表

通路Channel 8801,8802,8803的單皆會被下至 127.0.0.1:22820

通路Channel 6601 的單會被下至 test1.trader.com.tw:33388

通路Channel 6602 的單會被下至 test2.trader.com.tw:33388

通路Channel 6603 的單會被下至 test3.trader.com.tw:33388

MAP時的Channel編號與ADD時的主機編號是兩回事,

上面故意作有重複的示範供參考思考

而如果某個HOST例如 test2.trader.com.tw:33388 其實又是個GateWay

則再依該GateWay上設定之原則作通路轉送

2.

Server上的 O X F 基本上是不需要用的,也不會造成單子送不出去(請再確認)

O 可以讓視窗立即更新(原本每秒自動會刷新)

F 是字體環境切換,原本會顯示簡體字,按了變成繁體環境則會看到亂碼,再按就又恢復簡體

X 完全沒用

3.

所有單下出去只要沒收到Inser成功就是失敗

Status=0只是在告知通路的運作情形

Status=1才是告知下單是否成功

所有通路正常下一定會收到Status=1的結果

而如果通路中間有某個GateWay或最末端的Trader Server是掛掉的

會於Status=0的狀態下即會告知失敗

不會有任何單是卡在GateWay或TraderServer上的而是直接回覆失敗!!

(訊息也如之前所提, Result=0: faild! , 1: success , 2: Disabled{目前無法交易} , 3: UnMapping{系統未配置的頻道} )

你說Server掛掉,應該會收到Status=0,Result=2

請麻煩再確認一下,可以的話把逐筆接收到之訊息Log附上

(以上,代表不會有卡單問題,也沒有系統重開重送單的問題,只有AP收到失敗的處理方式而已)

問題

非常清楚...感謝...

那問題來了...

當我下命令 Console 8801 330001 "IF1012|B3700" 時

Console.exe 這個檔怎麼知道要去哪邊找Gateway的service呢...

也就是說...Console怎麼知道要把單子送到哪台電腦的Gateway去???

因為我看Console那邊只有一個dll檔...所以是不是被你包在裡面了呢...

如果是的話那就這樣...也無所謂...我只是確定以後這隻程式需不需要自己maintain而已...

Console只是一個使用dll的範例程式

http://site.edu.wwx.tw/ftw/Home/pei-zi-jiao-yi-tong-lu-xi-tong/atsc-api

透過API可以指定直接連結ATS或連ATG

此Console範例是

if (fnATSCdll_Start("localhost:22821"))

所以是連 127.0.0.1 的GateWay

因此同一機器上所跑的GateWay怎麼設就怎麼送

實際上AP設計就是透過API來操作

(Console只是示範API的用法而已)

當然也可以把GateWay的設定改成放在ini檔中便於改設定, 程式則改由ini檔讀入,

如果有需要也可增加命令列參數是可以指定GateWay的格式方式...

也就是參考這隻Console程式可以自行開發任意需求的應用程式,不限開發工具,

未必要以命令列方式來應用, 也是能設計成有GUI介面操作的視窗軟體(例如像是IB提供的測試工具)

PS: 參考於Python上使用DLL裡的API呼叫範例, 只要有好用的dll, 外行人也都能輕鬆開發自己合用的專屬應用程式