FDOAGENT日誌分析

mi_zy發表於2021-03-29

一、 SITA-PLN報文處理

fdoagent日誌分析:

    對於PLN報的處理:在有起降機場的前提下,判斷條件:日期+航班號+起飛機場+落地機場;假如沒有的話,就是日期+航班號。如果有預計起飛時間,還要判斷資料庫中計劃的預計起飛時間和報文的不能超過一定值,可配置。透過PLN報能取消計劃,增加計劃,修改計劃! PLN不會刪除計劃,新增只限本場,修改只改機號和預計起飛時間。且有改變後沒有提示!,

    可在db.ini中配置航空公司的pln本場的是否可以新建計劃。


fdoagent程式收到fdptel發來的報文GRD3444

[N][FDOAGENT::HST][03-28 07:03:22]>>>Receive NetObj FDPTEL_AFTNMESSAGE FinID = 202103280713444GRD

將報文寫入資料庫表TEL_RCV 

[N][FDOAGENT::HST][03-28 07:03:22]>>>SQL:insert into TEL_RCV (ID, TELCSN, TELTYPE, SUBTYPE, GRADE,SNDADDR, RCVADDR, ERROR, TEXT, INDATE, ERRORREASON, ACTIVEID, ACID, ADEP, ADES, MESSAGE, SITAINFO) values ('202103280713444GRD', '3444', 'SITA','PLN', 'QU', 'CTUXXEU', 'TYNZPCA

', 0, 'ZCZC  GRD3444 280703 

識別報文為SITA型別PLN報( 系統透過報文第二行的第一個大寫字母  “Q” ,識別SITA 格式 透過 報文中...PLN 28APR...中 關鍵字識別為 PLN

[N][FDOAGENT::HST][03-28 07:03:22]>>>[OnSITA2UpdatePlan]:: header.typestr=PLN!

使用正規表示式解析SITA報:UEA2216, etd = 1225, depad = ZBYN, arrad = ZSDY   (W/Z 29MAR EU2216 B620D CAT1 (8) TYN 0425 0620DOY)

[N][FDOAGENT::HST][03-28 07:03:22]>>>RegularExpesstionID = 30, Modify regnum = B620D : acid = UEA2216, executedate = 20210329, etd = 1225, depad = ZBYN, arrad = ZSDY

在資料庫PLAN_ACTIVE表中匹配計劃:條件包含航班號,起降機場和VALID = 1,時間條件(db.ini:VALID_FPL_ETD_RANGE=21600--6小時):etd=1225,前後6小時得到時間範圍 '202103290625'<= ETD <='202103291825'

[N][FDOAGENT::HST][03-28 07:03:22]>>>PLN SQL:select * from PLAN_ACTIVE where ETD >= '202103290625' and ETD <= '202103291825' and DEPAD = 'ZBYN' and ARRAD = 'ZSDY' and CALLSIGN = 'UEA2216' and VALID = 1

select未找到計劃PLAN_ACTIVE表中新增一條:insert,問題MID [20210329 1225UEA2216ZBYNZSDY]應該使用世界時,即 [20210329 0425UEA2216ZBYNZSDY]

[N][FDOAGENT::HST][03-28 07:03:22]>>>[UpdatePlan]: planmid=[202103291225UEA2216ZBYNZSDY], strSQL = [insert into PLAN_ACTIVE (ID, EXECUTEDATE, CALLSIGN, DEPAD, ETD, ARRAD, REGNUM, CPLSRC) values ('202103291225UEA2216ZBYNZSDY', '2021-03-29', 'UEA2216', 'ZBYN', '202103291225', 'ZSDY','B620D','PLN')]!

[N][FDOAGENT::HST][03-28 07:03:22]>>>SQL:insert into PLAN_ACTIVE (ID, EXECUTEDATE, CALLSIGN, DEPAD, ETD, ARRAD, REGNUM, CPLSRC) values ('202103291225UEA2216ZBYNZSDY', '2021-03-29', 'UEA2216', 'ZBYN', '202103291225', 'ZSDY','B620D','PLN')

同步到FDO

[N][FDOAGENT::HST][03-28 07:03:22]>>>SndFDOudp:$#NOTICE$#FAG$#PLAN_ACTIVE$#I$#202103291225UEA2216ZBYNZSDY$#


二、 FPL報文處理 fdp程式收到提前12小時以上發的  fpl報)預起時間和RPL中的一樣, PLAN_ACTIVE只有一條記錄。

FDO上來源是RPL的計劃關聯到FPL報,SDD上該計劃來源是FPL(兩者這裡資訊不一致,原因——>),說明FDP程式 建立(>12小時)新動態(SDD上顯示來源是FPL的動態),通知FDOAGENT後,因為MID一樣,fdoagent 查詢 修改資料庫中MID一樣的來源是RPL的計劃。

fdp程式日誌,顯示建立計劃[202103301910CPA278LFPGVHHH],:

Info>: 20210330065429 [FPL]: Receive a FPL Tele For Plan:[CPA278]-[LFPG]-[VHHH]

<Info>: 20210330065429 [FPL] Create a Plan:[CPA278]  ——>SDD可見,但是寫入資料庫MID應該衝突,所以是update。

<Info>: 20210330065429 the ACKAFTNGROUP mid is [202103301910CPA278LFPGVHHH],finid is [202103300600002ATC]

fdoagent程式日誌:

[N][FDOAGENT::HST][03-30 06:54:29]>>>[UpdatePlanState]::strmsg = ZCZC ATC0002 300654

FF ZBYNZZZZ ZBYNZBZC

300654 ZBYNZPZX

(FPL-CPA278-IS

-A333/J-SW/N

-LFPG1910

-K0800S1020 NIXAL B208 SQ W45 MI

-VHHH0205 ZBYN

-0)

NNNN, vecBody.size()=1.

[N][FDOAGENT::HST][03-30 06:54:29]>>>[UpdatePlanState]::strbody = (FPL-CPA278-IS  -A333/J-SW/N  -LFPG1910  -K0800S1020 NIXAL B208 SQ W45 MI  -VHHH0205 ZBYN  -0)

[N][FDOAGENT::HST][03-30 06:54:29]>>>[UpdatePlanState]::vecStr[0] = (FPL

查詢計劃轉換為北京時1910+0800=次日03:10: 前後6小時 db.ini:VALID_FPL_ETD_RANGE=21600--6小時)得到時間範圍 STD >= '202103302110' and STD <= '202103310910',select看看資料庫中有沒有對應記錄

[N][FDOAGENT::HST][03-30 06:54:29]>>>[UpdatePlanState()] strSQLcmdSelect is :[ select * from PLAN_ACTIVE where STD >= '202103302110' and STD <= '202103310910' and DEPAD = 'LFPG' and ARRAD = 'VHHH' and CALLSIGN = 'CPA278' and VALID = 1].

找見一條 vecResult.size=[1],MID=[202103301910CPA278LFPGVHHH],來源是RPL。

[N][FDOAGENT::HST][03-30 06:54:29]>>>vecResult.size=[1], MID=[202103301910CPA278LFPGVHHH]

修改找到計劃的狀態 FISTATE < 1    ——> FISTATE = 1

[N][FDOAGENT::HST][03-30 06:54:29]>>>SQL:update PLAN_ACTIVE set FISTATE = 1, MODIFIER = 'FAG' where ID = '202103301910CPA278LFPGVHHH' and VALID = 1 and FISTATE < 1

同步UDP通知FDO

[N][FDOAGENT::HST][03-30 06:54:29]>>>SndFDOudp:$#NOTICE$#FAG$#PLAN_ACTIVE$#U$#202103301910CPA278LFPGVHHH$#

將報文寫入資料庫表TEL_SND

[N][FDOAGENT::HST][03-30 06:54:29]>>>SQL:insert into TEL_SND (ID, TELCSN, TELTYPE, SUBTYPE,GRADE, SNDADDR, RCVADDR, TEXT, INDATE, ACTIVEID, ACID, ADEP, ADES) values ('202103300600002ATC', '0002', 'AFTN', 'FPL', 'FF', 'ZBYNZPZX', 'ZBYNZZZZ ZBYNZBZC

', 'ZCZC ATC0002 300654

FF ZBYNZZZZ ZBYNZBZC

300654 ZBYNZPZX

(FPL-CPA278-IS

-A333/J-SW/N

-LFPG1910

-K0800S1020 NIXAL B208 SQ W45 MI

-VHHH0205 ZBYN

-0)

NNNN', sysdate, '202103301910CPA278LFPGVHHH', 'CPA278', 'LFPG', 'VHHH')

記錄主機168.192.11.24使用者ZD傳送FPL報

[N][FDOAGENT::HST][03-30 06:54:27]>>>SndFDOudp:$#RESPOND$#FAG$#FDO$#MESS_CHECK$#168.192.11.24$#MNO=6&RESULT=OK$#

[N][FDOAGENT::HST][03-30 06:54:29]>>>UDP:$#REQUEST$#FDO$#FAG$#MESS_SEND$#168.192.11.24$#TELCSN=0000&SNDUSER=ZD&TEXT=ZCZC AAA0000 300654

按唯一索引MID, where ID = '202103301910CPA278LFPGVHHH' update 修改計劃

[N][FDOAGENT::HST][03-30 06:54:29]>>>[Bupdate]: p->m_strMID=[202103301910CPA278LFPGVHHH], strsql=[STA = '202103310515', ATN = '202103310338', ATX = '202103310410', FDPSTATE = '1', CPLTYPE = 10, FLYRULE = 'I', ACFTNUM = '1', ACTYPE = 'A333', ACFTCLASS = '0', TURBO = 'J', WIRELESSEP = 'SW', SURVEILEP = 'N', ALTN1 = 'ZBYN', EET = '0205', TAS = 'K0800', RFL = 'S1020', ROUTE = 'NIXAL B208 SQ W45 MI', BPN = 'TODAM', BPX = '354733N1130849E', ISCOUPLED = '0', RVSM = '0', OTHERSTATUS = '1', PRL = 'S0000', CFL = 'S0000', XFL = 'S0000', DECODEROUTE = 'ATPOK TODAM P461 EKETA TYN EXORI ANPIG EGEBI SQ',]!

[N][FDOAGENT::HST][03-30 06:54:29]>>>[WritePlan2DB]: planmid=[202103301910CPA278LFPGVHHH], strSQL = [ update PLAN_ACTIVE set STA = '202103310515', ...... where ID = '202103291910CPA278LFPGVHHH' ]!

[N][FDOAGENT::HST][03-30 06:54:29]>>>SQL:update PLAN_ACTIVE set......


三、FPL報文處理fdp程式收到提前12小時以上發的  fpl報)預起時間和RPL的 不一樣(差了1分鐘 1910--> 1911

PLAN_ACTIVE有MID不同的2條記錄(來源分別是RPL- 管制狀態FUTR/FPL-管制狀態NACT),SDD和FDO一樣。

fdp程式日誌,顯示建立計劃[202103301911CPA256EGLLVHHH]: 來源FPL

<Info>: 20210330065116 [FPL]: Receive a FPL Tele For Plan:[CPA256]-[EGLL]-[VHHH]

<Info>: 20210330065116 [FPL] Create a Plan:[CPA256]

<Info>: 20210330065116 the ACKAFTNGROUP mid is [202103301911CPA256EGLLVHHH],finid is [202103300600001ATC]

fdp程式收到: fdoagent提前12小時該航班的RPL計劃發給fdp程式轉為動態

<Warn>: 20210330071004 主機編號為[14]的席位增加計劃: [CPA256].——> 伺服器的主機號從11開始,14是FDP2

<Warn>: 20210330071004FDO&FDD Failure to Add a Plan:[CPA256],Same Plan Already Exist(這個是 最佳化fdoagent轉動態時發兩遍在FDP引起的提示)


fdoagent程式日誌:

新建 insert 一條計劃: 202103301911CPA256EGLLVHHH

[N][FDOAGENT::HST][03-30 06:51:16]>>>Deal with:MID=202103301911CPA256EGLLVHHH, ACID=CPA256, CPLDATE=20210330, DOF=210330, HandCommSec=, CommSec=!!

[N][FDOAGENT::HST][03-30 06:51:16]>>>[WritePlan2DB]: planmid=[202103301911CPA256EGLLVHHH], strSQL = [insert into PLAN_ACTIVE (ID, EXECUTEDATE, FDPSTATE, CPLSRC, CPLTYPE, CALLSIGN, SSR, FLYRULE, FLYCLASS, ACTYPE, ACFTNUM, ACFTCLASS, TURBO, REGNUM, SEL, WIRELESSEP, SURVEILEP, SUP, OTHER, OPDATA, GLOBALINFO, DEPAD, ETD, STD, ATD, BPN, ATN, EET, ARRAD, ALTN1, ALTN2, ETA, STA, ATA, ROUTE, RFL, TAS, BPX, ATX, GATE, ARWY, DRWY, SID, STAR, ISCOUPLED, VIP, RVSM, OTHERSTATUS, PRL, CFL, XFL, DECODEROUTE, AIDCSTATUS, CTRLSEC, ISFOREIGN, CURSEC, ACPSEC, NEXTSEC, PBN, MODIFIER) values ('202103301911CPA256EGLLVHHH', '2021-03-31', '1', 'FPL', 10, 'CPA256', '', 'I', 'S', 'A333', 1, 0, 'J', '', '', 'SW', 'N', '', '', '', '', 'EGLL', '202103310311', '202103310311', '', 'TODAM', '202103310339', '0205', 'VHHH', 'ZBYN', '', '202103310516', '202103310516', '', 'NIXAL B208 SQ W45 ML', 'S1020', 'K0800', 'UBDUN', '202103310413', '', '', '', '', '', 0, '', 0, 65, 'S0000', 'S0000', 'S0000', 'ATPOK TODAM P461 EKETA TYN EXORI ANPIG EGEBI SQ URBIL UBDUN NUNGA', '', '', '0', '', '', '', '', 'FAG')]!

 06:51:17]>>>SndFDOudp:$#NOTICE$#FAG$#PLAN_ACTIVE$#I$#202103301911CPA256EGLLVHHH$#

[N][FDOAGENT::HST][03-30 06:51:17]>>>[UpdatePlanState]::strbody = (FPL-CPA256-IS  -A333/J-SW/N  -EGLL1911  -K0800S1020 NIXAL B208 SQ W45 ML  -VHHH0205 ZBYN  -0)

[N][FDOAGENT::HST][03-30 06:51:17]>>>[UpdatePlanState]::vecStr[0] = (FPL

查詢資料庫中符合條件的計劃 vecResult.size=[2],有兩條包含 20210330 1910CPA256EGLLVHHH?但是時間更接近的是 [20210330 1911 CPA256EGLLVHHH]

[N][FDOAGENT::HST][03-30 06:51:17]>>>[UpdatePlanState()] strSQLcmd Select is :[select * from PLAN_ACTIVE where STD >= '202103302111' and STD <= '202103310911' and DEPAD = 'EGLL' and ARRAD = 'VHHH' and CALLSIGN = 'CPA256' and VALID = 1].

[N][FDOAGENT::HST][03-30 06:51:17]>>>vecResult. size=[2], MID=[20210330 1911CPA256EGLLVHHH]

fdoagent提前12小時該航班的RPL計劃 [202103301910CPA256EGLLVHHH]發給fdp程式轉為動態(管制狀態:FUTR);此時在SDD計劃列表有來源分別是RPL/FPL的2條動態。

[N][FDOAGENT::HST][03-30 07:10:04]>>>Deal with:MID= 202103301910CPA256EGLLVHHH, ACID=CPA256, CPLDATE=20210330, DOF=210330, HandCommSec=, CommSec=!!

[N][FDOAGENT::HST][03-30 07:10:04]>>>202103301910CPA256EGLLVHHH Add successful!!

[N][FDOAGENT::HST][03-30 07:10:04]>>>[Bupdate]: p->m_strMID=[202103301910CPA256EGLLVHHH], strsql=[FDPSTATE = '0', CPLTYPE = 10, FLYRULE = ' ', ACFTNUM = '0', ACFTCLASS = '3', EET = '1205', TAS = 'K0800', RFL = 'S0102', ISCOUPLED = '0', RVSM = '0', PRL = 'S0000', CFL = 'S0000', XFL = 'S0000',]!

[N][FDOAGENT::HST][03-30 07:10:04]>>>[WritePlan2DB]: planmid=[202103301910CPA256EGLLVHHH], strSQL = [update PLAN_ACTIVE set FDPSTATE = '0', CPLTYPE = 10, FLYRULE = ' ', ACFTNUM = '0', ACFTCLASS = '3', EET = '1205', TAS = 'K0800', RFL = 'S0102', ISCOUPLED = '0', RVSM = '0', PRL = 'S0000', CFL = 'S0000', XFL = 'S0000', MODIFIER = 'FAG' where ID = '202103301910CPA256EGLLVHHH' ]!

[N][FDOAGENT::HST][03-30 07:10:04]>>>SQL:update PLAN_ACTIVE set FDPSTATE = '0', CPLTYPE = 10, FLYRULE = ' ', ACFTNUM = '0', ACFTCLASS = '3', EET = '1205', TAS = 'K0800', RFL = 'S0102', ISCOUPLED = '0', RVSM = '0', PRL = 'S0000', CFL = 'S0000', XFL = 'S0000', MODIFIER = 'FAG' where ID = '202103301910CPA256EGLLVHHH' 

[N][FDOAGENT::HST][03-30 07:10:04]>>>SndFDOudp:$#NOTICE$#FAG$#PLAN_ACTIVE$#U$#202103301910CPA256EGLLVHHH$#



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7970627/viewspace-2765585/,如需轉載,請註明出處,否則將追究法律責任。