Update: Ein Update ist verfügbar, die Bindungseigenschaft ClearRfcContext SAP WCF-basierten Adapter von BizTalk Adapter Pack 2.0 oder BizTalk Adapter Pack 2010 hinzugefügt

Gilt für: BizTalk Adapters

Die Informationen in diesem Artikel beziehen sich auf

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft BizTalk Adapter Pack 2.0
  • Microsoft BizTalk Adapter Pack 2010

Einführung


Dieser Artikel beschreibt ein Update, das in einem kumulativen Update hinzuzufügende Bindungseigenschaft ClearRfcContext SAP Microsoft Windows Communication Foundation WCF-basierten Adapter von Microsoft BizTalk Adapter enthalten.

Problembeschreibung


Stellen Sie sich folgendes Szenario vor:
  • Sie haben einen Computer mit Microsoft BizTalk Server 2006 R2, Microsoft BizTalk Server 2009 oder Microsoft BizTalk Server 2010.
  • SAP WCF-basierten Adapter verwenden Verbindung zu SAP r/3-Server.Hinweis SAP WCF-basierten Adapter ist in Microsoft BizTalk Adapter Pack 2.0 oder Microsoft BizTalk Adapter Pack 2010 enthalten.
  • Erstellen Sie eine BizTalk-Anwendung den SAP Adapter verwendet remote Funktionsaufrufe (RFCs) aufrufen, die SAP globale Variablen auf dem SAP r/3-Server verwenden.
  • Sie können die Binding-Eigenschaft EnableConnectionPooling auf Truefestlegen.
In diesem Szenario stellen Sie fest, dass die Daten, die den RFCs zurückgegeben wird nicht erwartet. Außerdem scheint die zurückgegebenen Daten von einem vorherigen Aufruf betroffen, die auf dieselbe Eigenschaft RFCs.The ClearRfcContext Bindung wurde ähnliche Probleme verhindern können, in diesem Szenario auftreten.

Ursache


Dieses Problem tritt auf, weil das Verbindungspooling aktiviert ist, die entsprechende SAP-Verbindung an den Verbindungspool zurückgegeben, wenn nach einer RFC an den SAP r/3-Server ausgeführt wird. Kommt der nächste Aufruf der RFC dieselbe SAP-Verbindung aus dem Verbindungspool abgerufen und den Aufruf ausgeführt wird. RFC einige globale Variablen verwendet und wenn sie nicht entsprechend bereinigt werden, wird der nächste Aufruf von RFC in den globalen Variablen vom vorherigen Aufruf gespeicherten Werte verwendet. Dies kann zu unerwarteten Ergebnissen führen.Hinweis Dieses Problem tritt nur, wenn die RFC globale Variablen verwendet und globalen Variablen nicht ordnungsgemäß von der RFC bereinigt werden.

Lösung


Installieren Sie dieses Update, um dieses Problem zu beheben. Legen Sie die Binding-Eigenschaft ClearRfcContext auf True.

Informationen zum kumulativen Update

BizTalk Adapter Pack 2010

Der Hotfix, der dieses Problem behebt ist im kumulativen Update 1 für BizTalk Adapter Pack 2010 enthalten.  Weitere Informationen dazu, wie Sie das kumulative Updatepaket zu erhalten klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base: 2539794 Kumulatives Updatepaket 1 für BizTalk Adapter Pack 2010

BizTalk Adapter Pack 2.0

Dieses Update wurde zuerst im kumulierte Updatepaket 2 für BizTalk Adapter Pack 2.0 veröffentlicht. Weitere Informationen dazu, wie Sie dieses kumulative Updatepaket beziehen, finden im folgenden Artikel der Microsoft Knowledge Base:
2531605 Kumulierte Updatepaket 2 für BizTalk Adapter Pack 2.0

Weitere Informationen


Notizen zu diesem update

  • Die Binding-Eigenschaft ClearRfcContext gilt nur, wenn die Binding-Eigenschaft EnableConnectionPooling auf Truefestgelegt ist.
  • Ohne dieses Update deaktivieren SAP WCF-basierten Adapter nicht SAP r/3-Kontext. Daher ist das Verhalten identisch, was geschieht, wenn die Binding-Eigenschaft ClearRfcContext auf Falsefestgelegt ist. Der Standardwert ist False.
  • Wenn Verbindungspooling aktiviert ist und die Binding-Eigenschaft ClearRfcContext auf Truefestgelegt ist, wird der Adapter leert die SAP r/3-Sitzung und löscht alle globale Variablen auf der Serverseite SAP. Daher ist der nächste Aufruf derselben SAP-Verbindung nicht beliebig betroffen, die vom aktuellen Aufruf abgerufen wurde.
  • Wenn Verbindungspooling aktiviert ist und die Binding-Eigenschaft ClearRfcContext auf Falsefestgelegt ist, wird der Adapter nicht SAP r/3-Sitzung gelöscht. In diesem Fall möglicherweise RFC verwendet einige globalen Variablen und Variablen werden nicht bereinigt entsprechend der nächste Aufruf von RFC Werte verwenden, die in den globalen Variablen des aktuellen Aufrufs gespeichert sind. Dies kann zu unerwarteten Ergebnissen führen.
  • Da die Bindungseigenschaft ClearRfcContext weiteren Schleifen auf SAP r/3-Server erfordert, sehen Sie einen kleinen Rückgang der Leistung bei ClearRfcContext Binding-Eigenschaft auf Truefestgelegt. Wir empfehlen, nur wenn globale Variablen, die RFC verwendet und RFC nicht globalen Variablen entsprechend bereinigen ist ClearRfcContext Binding-Eigenschaft auf True festgelegt.
  • Wenn Sie den Adapter in einem Szenario mit Proxy wie aus verwenden, möchten Sie die SAP r/3-Sitzung zwischen RFC auf demselben Proxy-Kanal löschen. Mit diesem Update wird eine neue Operation mit dem Namen RfcClearContext unter RFC Knoten des Assistenten Adapter Dienstverweis hinzufügen die Option SapBinding ausgewählt ist. RfcClearContext Operation versucht, den SAP r/3-Kontext bereinigen und gibt einen der folgenden:
    • True – die Reinigung des SAP r/3-Kontexts war erfolgreich. Sie können zusätzliche Proxy/Kanal aufrufen.
    • False - die Verbindung geschlossen oder Fehler entwickelt, als der Vorgang den SAP r/3-Kontext bereinigen. Sie sollten den aktuellen Proxy/Channel verwerfen, da weiterer Anruf zu einem Kommunikationsfehler führen.

Informationsquellen


Weitere Informationen dazu, wie Sie eine Verbindung zu SAP-System finden Sie auf der folgenden Microsoft Developer Network (MSDN) Website:Weitere Informationen zu BizTalk Server Updates klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
2003907 Informationen zu BizTalk Server-Updates