修正: 有可用的更新,將 ClearRfcContext 的繫結屬性加入至 WCF 架構的 SAP 介面卡上從 BizTalk 配接器套件 2.0 或 BizTalk 配接器的封包 2010年

適用於: BizTalk Adapters

適用於

本文適用於下列:
  • Microsoft BizTalk 配接器套件 2.0
  • Microsoft BizTalk 配接器套件 2010

簡介


這篇文章說明從 Microsoft BizTalk 配接器套件,將ClearRfcContext繫結內容新增至 Microsoft Windows 通訊基礎 WCF 架構的 SAP 介面卡的累積更新所隨附的更新。

徵狀


請試想下列案例:
  • 您有正在執行 Microsoft BizTalk Server 2006 R2、 Microsoft BizTalk Server 2009年或 Microsoft BizTalk 伺服器 2010年的電腦。
  • 您可以使用 WCF 架構的 SAP 介面卡連線到 SAP R/3 伺服器。注意: WCF 為基礎的 SAP 配接器會包含在 Microsoft BizTalk 配接器套件 2.0 或 Microsoft BizTalk 配接器的封包 2010年。
  • 您建立一個使用 SAP 配接器來呼叫遠端函式呼叫 (Rfc) 使用 SAP 全域變數在 SAP R/3 伺服器的 BizTalk 應用程式。
  • 您可以設定 [ EnableConnectionPooling ] 繫結屬性為True
在這個案例中,您會發現由 Rfc 所傳回的資料是不是您所預期。 此外,所傳回的資料看起來可能造成影響到相同的 RFCs.The ClearRfcContext繫結屬性的上一個呼叫可以避免類似這種情況中發生的問題。

原因


因為執行 SAP R/3 伺服器上的 RFC 呼叫之後,啟用連接共用時,要將對應的 SAP 連接傳回到連接集區,就會發生這個問題。 下一步的 RFC 呼叫到達時,相同的 SAP 連線就會從連接集區中,擷取,而且用於執行呼叫。如果 RFC 使用一些通用的變數,而且它們不適當清除,RFC 的下一個呼叫會使用儲存在全域變數,從先前的呼叫中的值。 這種情況下,可能會導致無法預期的結果。注意: 只有當 RFC 使用全域變數,和全域變數尚未清除適當的 RFC,就會發生這個問題。

解決方案


若要解決這個問題,請套用此更新程式。 然後,將ClearRfcContext繫結屬性為True

累積更新資訊

BizTalk 配接器套件 2010

Hotfix 可解決這個問題納入 BizTalk 配接器的封包 2010年累積的更新 1。  如需有關如何取得累積更新套件的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文: BizTalk 配接器的封包 2010年, 2539794累積更新套件 1

BizTalk 配接器套件 2.0

第一次此修正程式已於累積更新套件 2 上發行,BizTalk 配接器套件 2.0。 如需有關如何取得此累積更新套件的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2531605 BizTalk 配接器套件 2.0 的累積更新套件 2

其他相關資訊


有關此更新的備忘稿

  • 只有EnableConnectionPooling繫結屬性設定為True時, ClearRfcContext的繫結屬性才能適用。
  • 沒有此更新中,WCF 架構的 SAP 配接器並不會清除 SAP R/3 內容。 因此,行為是相同的ClearRfcContext繫結屬性設定為False時,所發生的情況。 預設值為False
  • 當連接共用已啟用, ClearRfcContext的繫結屬性設定為True,配接器就會排清 SAP R/3 工作階段,並清除 SAP 伺服器端上的所有全域變數。 因此,在相同的 SAP 連線上的下一通電話不受目前呼叫即可取得任何狀態。
  • 當連接共用已啟用, ClearRfcContext的繫結屬性設為False,配接器並不會清除 SAP R/3 工作階段。 在此情況下,如果 RFC 使用某些全域變數,變數未適當地清除,RFC 的下一個呼叫可能會使用儲存在全域變數,從目前的呼叫中的值。 這種情況下,可以授與未預期的結果。
  • 因為ClearRfcContext的繫結屬性需要額外的往返至 SAP R/3 伺服器,您可能會看到效能稍微減少您設定 [ ClearRfcContext ] 繫結屬性為True。 我們建議只當 RFC 使用全域變數,而 RFC 不適當地清除全域變數上時,才ClearRfcContext繫結屬性設定為True
  • 當您使用的介面卡在 proxy 的情況下例如從.NET 程式碼時,您可能要清除 SAP R/3 工作階段,在相同的 proxy/通道執行個體上的 RFC 呼叫之間。 此更新,新的作業,名為RfcClearContext時使用的RFC ] 節點,配接器加入服務參考精靈的下選取 [ SapBinding ] 選項。 RfcClearContext作業嘗試清除 SAP R/3 內容,並傳回下列其中一項:
    • ,則為 true – SAP R/3 內容的清理已順利完成。 您可以在 proxy/通道上進行額外的呼叫。
    • False -連線關閉,或開發作業嘗試清除 SAP R/3 內容時的錯誤。 您應該捨棄目前的 proxy/通道,因為任何進一步的呼叫可能會導致通訊錯誤。

參考


如需有關如何連接到 SAP 系統的詳細資訊,請造訪下列 Microsoft 開發人員網路 (MSDN) 網站:如需有關 BizTalk Server hotfix 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2003907 BizTalk Server hotfix 的相關資訊