OBP 操作流程與維運手動執行方式.md
71 additions, 5 deletions
| ... | ... | @@ -1,12 +1,78 @@ |
| 1 | -# 日常維運檢查項目 | |
| 2 | -table schema: | |
| 3 | -MFT_MASTER_LOG - mft主檔 : 紀錄整體告警狀態與執行狀態 | |
| 4 | - MFT__LOG - mft子檔 : 記錄各檔案送出obp狀態 | |
| 1 | + # 流程說明: | |
| 2 | +😀 Step1. 從sgs產生每天要送的報表json檔後, 上傳到mft server上 | |
| 5 | - 1. 檢查以下sql : MFT_MASTER_LOG這個status = success or retry_success就是整批成功囉 | |
| 3 | + 主要為以下SGS上五個api 從每天am1:00-1:40開始產生檔案 | |
| 4 | +1. generateBonusItemInfoByPageManual 產生T_BAS_BONUS_ITEM_INFO json並上傳 | |
| 5 | +2. generateBasExchangeVoucherByPageManual 產生T_BAS_EXCHANGE_VOUCHER json並上傳 | |
| 6 | +3. generateBasExchangePointByPageManual 產生T_BAS_EXCHANGE_POINT json並上傳 | |
| 7 | +4. generateBasExchangeMasterByPageManual 產生T_BAS_EXCHANGE_MASTER json並上傳 | |
| 8 | +5. generateBasBrandInfoByPageManual 產生T_BAS_BRAND_INFO json並上傳 | |
| 9 | +_且產生完成後會 insert MFT_SGS_LOG 作為哪些檔案的依據_ | |
| 10 | +😀 Step2. 從mft server透過windows工作排程上傳檔案到神坊obp server上 | |
| 11 | +會產生檔案到\\88.8.232.164\ebtlxmyr01_app\DATA\OBP\上 | |
| 12 | +且log會寫入到OBP\jar\logs\下 | |
| 13 | + | |
| 14 | +> 最有可能發生的問題: | |
| 15 | +`issue1`: connection refuse, 導致整個檔案沒做 | |
| 16 | +com.jcraft.jsch.JSchException: connection is closed by foreign host | |
| 17 | +`issue2:` 整台mft server的工作排程沒跑(LOG打開是空的) | |
| 18 | + | |
| 19 | +😀 Step3. 從sgs之 ObpLogRawFileParser 下載該mft 上的log檔案後, 進行log parse來判斷該天檔案是否正常上傳正確 | |
| 20 | + | |
| 21 | +```coffeescript | |
| 22 | +MFT上面的obp.log會下載到:80 server上的 /MMO/logs/obp/, 且該LOG 可以在KIBANA 上看到喔 | |
| 23 | +``` | |
| 24 | + | |
| 25 | +流程解釋: | |
| 26 | +1. 先下載mft 上的obp.log | |
| 27 | +2. MFT_SGS_LOG 作為第一步產生哪些檔案的依據, 可用以下sql查詢當日產生的檔案有哪些 | |
| 28 | + | |
| 29 | +select * from MFT_SGS_LOG where JOBTYPE = :jobType and CREATE_TIME >= :startDate AND CREATE_TIME < :endDate order by CREATE_TIME desc | |
| 30 | +``` | |
| 31 | + | |
| 32 | +3. 之後以 MFT_SGS_LOG 查詢到的結果 與obp.log parser作為比較 | |
| 33 | +看有沒有缺少的檔案作為紀錄 | |
| 34 | +結論: | |
| 35 | +1. 全產檔成功:mft_master_log.status = success 且 mft_log.status=success 且每種檔案都有產生 | |
| 36 | +2. 若該天obp.log沒有內容, 則 mft_master_log.status = failed 且 errormsg=WINDOWS JOB IS NOT WORKING!, mft_log.status=success 且每種檔案都有產生 且status = failed | |
| 37 | +3. 若該天sgs沒有執行, 則 mft_master_log.status = failed 且 mft_log 為空 | |
| 38 | + | |
| 39 | +附註: | |
| 40 | +**1. GET**[/sgs/obp/getMftFileStatus](http://88.249.29.34:10051/swagger-ui/index.html#/obp-controller/getMftFileStatus) 查看mft table狀態 : 這個可以打了查看table | |
| 41 | +2. **GET**[/sgs/obp/downloadOBPLogFromMft](http://88.249.29.34:10051/swagger-ui/index.html#/obp-controller/downloadOBPLogFromMft) 重新下載mft上的obp.log: 這個可以重新下載obp.log | |
| 42 | + | |
| 43 | +😀 Step4. **GET**[/sgs/obp/retry](http://88.249.29.34:10051/swagger-ui/index.html#/obp-controller/retryOBPfile) 重新產生&上傳失敗的OBP報表, 若sgs第一次都沒有跑檔成功, 可以使用此api重新產生所有檔案, 若遇到該天所有檔案都沒有執行的話, 就會全部重新產出喔 | |
| 44 | + | |
| 45 | +😀 Step5. 從mft server透過windows工作排程上傳檔案到神坊obp server上 | |
| 46 | +會產生檔案到\\88.8.232.164\ebtlxmyr01_app\DATA\OBP\retry上 | |
| 47 | +且log會寫入到OBP\jar\logs\下 | |
| 48 | + | |
| 49 | +😀 Step6. 從sgs之 ObpLogRetryFileParser 下載該mft 上的log檔案後, 進行log parse來判斷該天retry檔案是否正常上傳正確 | |
| 50 | + | |
| 51 | +流程解釋: | |
| 52 | +1. 先下載mft 上的obp.log | |
| 53 | +2. 查詢MFT_SGS_LOG 可用以下sql查詢當日產生的檔案有哪些作為依據 | |
| 54 | + | |
| 55 | +```sql | |
| 56 | +select * from MFT_SGS_LOG where JOBTYPE = :jobType and CREATE_TIME >= :startDate AND CREATE_TIME < :endDate order by CREATE_TIME desc | |
| 57 | +``` | |
| 58 | + | |
| 59 | +3. 之後以MFT_SGS_LOG查詢到的結果與obp.log parser作為比較. 來更新之前的狀態與寄送告警 | |
| 60 | + | |
| 61 | +```sql | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | +[object Object] | |
| 67 | +table schema: | |
| 68 | +MFT_MASTER_LOG - mft主檔 : 紀錄整體告警狀態與執行狀態 | |
| 69 | +MFT__LOG - mft子檔 : 記錄各檔案送出obp狀態 | |
| 70 | + | |
| 71 | +檢查以下sql : MFT_MASTER_LOG這個status = success or retry_success就是整批成功囉 |