MIDDLEWARE 在传输大量数据时,经常会发生堵塞,如果有一条错误的数据整个队列将无法处理
我們希望能在數據出錯時,將錯誤的數據放到隊列的末尾,這樣能保證數據能一直處理下去,而不會發生堵塞?
以CRM inbound processing為例,數據從ERP到了CRM后,
Middleware framework會call application 自己的邏輯,如果application inbound里發生了異常,而沒有在application里處理,則該異常就拋到了framework layer,導致隊列里剩下的item沒機會得到處理,BDOC亮紅燈。
我當時的思路就是,把standard 不支持,但是客戶又確實用到的scenario抽象成一個exception,當application檢測到這種情況后,application 拋exception,然后在最外面,就是application的入口處catch住該exception,輸入error message,然后繼續隊列里下一個item的處理。
但是這個思路是將這個issue當做標準產品的一個bug處理的,即需要修改application的代碼。如果partner consultant想通過不改標準代碼,僅僅寫一些BAdI是沒法完成的。
另外如果把adapter對應的block size改成1的話,即每個隊列的size就為1,這樣比如有N個material從ERP到CRM,則會在CRM生成N個隊列,每個隊列size為1,這樣就使得每個隊列里唯一的material的inbound處理獨立開來,但是inbound 處理不再是mass handling的,我們沒有測試過block size =1 對性能影響究竟有多大。
總結
以上是生活随笔為你收集整理的MIDDLEWARE 在传输大量数据时,经常会发生堵塞,如果有一条错误的数据整个队列将无法处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: open external url vi
- 下一篇: FLASH如何制作逐一出现的生日快乐动画