2017-07-28 49 views
0

我正在運行BizTalk的重複問題。我有一個AS2接收位置,他的唯一工作就是接受一個XML文件,因此BizTalk發送端口可以將其接收並將其傳遞給將其讀入我們的數據庫的存儲過程。發送端口有一個單一的過濾器:BTS.ReceivePortName == "ReceivePortName",所以應該傳遞給它的唯一文件是來自單個接收端口的文件。BizTalk接收端口產生額外的空文件

但是,對於我們的客戶端發送的每個文件,首先處理該文件時沒有錯誤,隨後立即發送第二個空文件,並且沒有內容也被傳遞到接收端口。顯然,當存儲過程運行時會引發數據庫錯誤,導致發送端口掛起。

因此,對於我們獲得的每個文件,我還會得到一個必須來自接收端口的「幻像」文件,因爲發送端口只能從該端口接收。但是,該端口只應該從客戶端接收,而客戶端堅持不發送第二個文件。因此,我陷入了試圖追蹤它來自哪裏的心理循環。

關於我如何跟蹤此問題的任何想法?有沒有人遇到過這個?

回答

1

這是正常的,空消息由BizTalk創建 - 我假設 - 在內部觸發MDN。

使用一個額外的過濾器:IsAS2PayloadMessage = True

參見MSDN:AS2 Context properties

+0

謝謝!它完全按照你的說法工作。我對BizTalk仍然陌生,並沒有意識到這個功能。 – HeightEnvy

1

你們看到的是的BizTalk和AS2處理的正常和期望的行爲。

有兩種可能性:

  1. 第二個信息是您正在生成這是應該,因爲他們要求它返回給調用者異步的MDN。

  2. 調用者正在爲發送給他們的消息同時向您返回MDN。

最有可能的,它是#1。 Walkthrough (AS2): Receiving EDI over AS2 with an Asynchronous MDN描述瞭如何處理異步MDN。

請注意,您不能忽略它們。調用者正在請求他們,並可能要求MDN完成他們的過程。