FIX: Er is een update beschikbaar waarmee de ClearRfcContext binding-eigenschap toegevoegd aan de adapter WCF gebaseerde SAP van BizTalk-Adapter Pack 2.0 of BizTalk-Adapter Pack 2010

Van toepassing: BizTalk Adapters

Van toepassing op

Dit artikel is van toepassing op het volgende:
  • Microsoft BizTalk-Adapter Pack 2.0
  • Microsoft BizTalk-Adapter Pack 2010

Inleiding


In dit artikel wordt een update die is opgenomen in een cumulatieve update van de eigenschap ClearRfcContext binding aan de adapter op basis van Microsoft Windows Communication Foundation WCF SAP toevoegen vanuit Microsoft BizTalk-Adapter Pack beschreven.

Symptomen


Neem het volgende scenario:
  • U hebt een computer met Microsoft BizTalk Server 2006 R2, Microsoft BizTalk Server 2009 of 2010 van Microsoft BizTalk Server.
  • Met de SAP WCF gebaseerde adapter kunt u verbinding maken met de server van de SAP-R/3.Opmerking De adapter SAP op basis van WCF is opgenomen in Microsoft BizTalk-Adapter Pack 2.0 of Microsoft BizTalk-Adapter Pack 2010.
  • U een BizTalk-toepassing maken die gebruikmaakt van de SAP-adapter aan te roepen van externe functieaanroepen (RFC's) die globale variabelen SAP op de R/3 van SAP-server gebruiken.
  • U kunt de binding-eigenschap EnableConnectionPooling ingesteld op True.
In dit scenario ziet u dat de gegevens die worden geretourneerd door de RFC's niet verwacht. Bovendien lijkt de gegevens die worden geretourneerd worden beïnvloed door een eerdere aanroep die is aangebracht in dezelfde RFCs.The ClearRfcContext bindingseigenschap problemen die zich in dit scenario voordoen vergelijkbaar kunt voorkomen.

Oorzaak


Dit probleem treedt op omdat bij het groeperen van verbindingen is ingeschakeld, de bijbehorende verbinding met SAP wordt teruggestuurd naar de verbindingsgroep nadat een RFC-aanroep op het R/3 van SAP-server wordt uitgevoerd. Wanneer de volgende RFC-oproep binnenkomt, wordt de SAP-verbinding wordt opgehaald uit de groep en wordt gebruikt voor het uitvoeren van de oproep. Als de RFC enkele globale variabelen worden gebruikt, en ze worden niet opgeschoond op de juiste manier, wordt de volgende oproep aan de RFC gebruikt de waarden die zijn opgeslagen in de globale variabelen uit de vorige aanroep. Deze situatie kan leiden tot onverwachte resultaten.Opmerking Dit probleem treedt alleen op als de RFC globale variabelen gebruikt en als de globale variabelen worden niet goed opgeschoond door de RFC.

Oplossing


U lost dit probleem, kunt u deze update toepast. Vervolgens stelt u de eigenschap ClearRfcContext binding op True.

Cumulatieve update informatie

BizTalk-Adapter Pack 2010

De hotfix om dit probleem is opgenomen in de cumulatieve Update 1 voor BizTalk-Adapter Pack 2010.  Voor meer informatie over het verkrijgen van het cumulatieve updatepakket klikt u op het volgende artikel in de Microsoft Knowledge Base: 2539794 cumulatieve updatepakket 1 voor de BizTalk-Adapter Pack 2010

BizTalk-Adapter Pack 2.0

Deze correctie is voor het eerst uitgebracht in cumulatieve updatepakket 2 voor BizTalk-Adapter Pack 2.0. Voor meer informatie over het verkrijgen van dit cumulatieve update-pakket, klikt u op het volgende artikel in de Microsoft Knowledge Base:
2531605 Cumulatieve updatepakket 2 voor de BizTalk-Adapter Pack 2.0

Meer informatie


Opmerkingen over deze update

  • De eigenschap ClearRfcContext binding is alleen toepasbaar wanneer de EnableConnectionPooling binding-eigenschap is ingesteld op True.
  • Zonder deze update wordt wist de adapter WCF gebaseerde SAP niet de R/3 van SAP-context. Daarom is het gedrag gelijk aan wat er gebeurt wanneer de ClearRfcContext binding-eigenschap is ingesteld op False. De standaardwaarde is False.
  • Bij het groeperen van verbindingen is ingeschakeld en de ClearRfcContext binding-eigenschap is ingesteld op True, wordt de adapter leegmaken van de SAP-R/3-sessie en wist alle globale variabelen aan de serverzijde SAP. De volgende aanroep op de verbinding die SAP is daarom geen last van een staat die is verkregen door het huidige gesprek.
  • Bij het groeperen van verbindingen is ingeschakeld en de ClearRfcContext binding-eigenschap is ingesteld op False, wordt de adapter de SAP-R/3-sessie niet gewist. Als de RFC enkele globale variabelen worden gebruikt en de variabelen niet op de juiste wijze worden opgeruimd, kan de volgende aanroep van de RFC in dit geval de waarden die zijn opgeslagen in de globale variabelen uit het huidige gesprek gebruiken. Deze situatie kan onverwachte resultaten geven.
  • Omdat de eigenschap ClearRfcContext binding een extra retour naar de R/3 van SAP-server vereist, ziet u een kleine daling van de prestaties wanneer u de binding-eigenschap ClearRfcContext ingesteld op True. Het is raadzaam dat u de binding-eigenschap ClearRfcContext ingesteld op True wanneer de RFC globale variabelen worden gebruikt en de RFC niet opgeruimd globale variabelen op de juiste manier.
  • Wanneer u de adapter in een scenario met proxyserver zoals van .NET-code, wilt u mogelijk de SAP-R/3-sessie tussen RFC aanroepen op dezelfde instantie proxy/kanaal uitschakelen. In deze update wordt is een nieuwe bewerking met de naam RfcClearContext beschikbaar onder het knooppunt RFC van de wizard Adapter Serviceverwijzing toevoegen wanneer u de optie SapBinding is geselecteerd. De bewerking RfcClearContext probeert te reinigen van de R/3 van SAP-context en geeft als resultaat een van de volgende:
    • Waar : het reinigen van de R/3 van SAP-context is geslaagd. U kunt extra aanroepen op de proxy/kanaal.
    • False - de verbinding is gesloten of een fout ontwikkeld wanneer de bewerking heeft geprobeerd te reinigen van de R/3 van SAP-context. U moet de huidige proxy/kanaal, verwijderen omdat er verdere gesprek kan leiden tot een communicatiefout opgetreden.

Verwijzingen


Ga naar de volgende website van Microsoft Developer Network (MSDN) voor meer informatie over het opzetten van een verbinding met het SAP-systeem:Voor meer informatie over hotfixes voor BizTalk Server klikt u op het volgende artikel in de Microsoft Knowledge Base:
2003907 Informatie over hotfixes voor BizTalk Server