Biztalk Sql Compensation Block

/ Comments off
Biztalk Sql Compensation Block Average ratng: 9,5/10 6462 reviews
  1. Biztalk Sql Compensation Block 2016
  2. Biztalk Sql Compensation Block 2017
  3. Biztalk Sql Compensation Block Download

The transaction type, Serializable, is the same for both the ACID scope and the.Net COM+ class. I have a compensation block in the orchestration, which I can see fires in the debugger but does not rollback the DB update. It is not a problem with the.Net ServicedComponent. Compensation (esempio di BizTalk Server) Compensation (BizTalk Server Sample); 8 minuti per la lettura. The compensation block is where the compensation action takes place. SQL script to create and populate the sample database. In the try block, there are two scopes named Update CRM and Update Mailing. Both of these scopes are atomic transactions. In the Update CRM scope, there is a try block and a compensation block. The try block updates the Northwind database through a method call to an external assembly. The compensation block is where the compensation action.

-->

L’exemple Compensation illustre comment utiliser le compenser forme dans une orchestration.The Compensation sample demonstrates how to use the Compensate shape in an orchestration.

Fonctions de l'exempleWhat This Sample Does

Cet exemple montre comment compenser la transaction déjà validée dans l'orchestration en procédant comme suit :This sample demonstrates how to compensate the transaction that has already been committed in the orchestration using the following sequence of steps:

  1. Entrez les données client dans le formulaire InfoPath et envoyez-les à une orchestration exposée comme service Web.Enter the customer data in the InfoPath form and submit the data to an orchestration that has been exposed as a Web service.

  2. L'orchestration effectue deux actions parallèles.The orchestration has two parallel actions.L'une d'elle renvoie un accusé de réception au formulaire InfoPath, tandis que l'autre met à jour les bases de données Northwind et BTSCompensationSampleMailingList.One returns an acknowledgment to the InfoPath form and the other updates the Northwind and BTSCompensationSampleMailingList databases.

  3. Dans la deuxième action, l’orchestration mappe le message entrant à un format de message des applications client relation management (CRM) et met à jour le clients table dans la base de données Northwind.In the second action, the orchestration maps the incoming message to a customer relationship management (CRM) application message format and then updates the Customers table in the Northwind database.La table Mailing List dans la base de données BTSCompensationSampleMailingList est ensuite mise à jour.After this, the Mailing List table in the BTSCompensationSampleMailingList database is updated.

  4. Si une des actions échoue, les modifications apportées à la base de données Northwind sont compensées via l'appel d'un assembly externe pour réécrire les données client d'origine dans la base de données.If either update fails, the changes made to the Northwind database are compensated by calling an external assembly to write the original customer data back to the database.

Cet exemple est conçu et finalité deHow This Sample is Designed and Why

Un étendue forme est principalement utilisée pour l’exécution transactionnelle et la gestion des exceptions, notamment la compensation.A Scope shape is primarily used for transactional execution and exception handling, including compensation.Une étendue est constituée de deux blocs.A scope consists of two blocks.Le premier est le bloc de contexte et le second peut être un ou plusieurs blocs de gestion des exceptions ou de compensationThe first block is the context block and the second block can be one or more exception-handling or compensation blocks.(équivalent à l'instruction try-catch dans le langage de programmation .NET).This is similar to the try-catch statement in the .NET programming language.L'orchestration UpdateContact.odx inclut deux actions parallèles.In the UpdateContact.odx orchestration, there are two parallel actions.Au niveau de la branche de droite, le bloc try est la étendue forme nommée Updated Backend Systems, qui a le type de transaction à Long terme et un identificateur de transaction Upd_Backend.At the right-side branch, the try block is the Scope shape named Updated Backend Systems, which has a Long-Running transaction type and an Upd_Backend transaction identifier.Plus bas dans le flux, un bloc catch intercepte l'exception générale et initie la compensation.Further down in the flow, there is a catch block that catches the general exception and initiates the compensation.

Pour plus d’informations sur la étendue mettre en forme, consultez étendues.For more information about the Scope shape, see Scopes.Consultez également comment configurer la forme étendue.Also see How to Configure the Scope Shape.

Notes

L’orchestration doit être une transaction à long terme vous permet de définir le type de transaction sur atomique ou à Long terme.The orchestration must itself be a long-running transaction for you to set the transaction type to Atomic or Long-Running.

Dans le bloc try, il existe deux étendues nommées Update CRM et Update Mailing.In the try block, there are two scopes named Update CRM and Update Mailing.Toutes deux sont des transactions atomiques.Both of these scopes are atomic transactions.L'étendue Update CRM inclut un bloc try et un bloc compensation.In the Update CRM scope, there is a try block and a compensation block.Le bloc try met à jour la base de données Northwind via un appel de méthode auprès d'un assembly externe.The try block updates the Northwind database through a method call to an external assembly.Le bloc compensation est l'emplacement dans lequel l'action de compensation intervient.The compensation block is where the compensation action takes place.Lorsqu'une exception survient dans l'étendue Update Backend Systems, le code dans la forme Undo CRM Expression met à jour l'enregistrement à son état d'origine.When an exception happens in the Update Backend Systems scope, the code in Undo CRM Expression Shape updates the record back to its original state.Cette action est déclenchée par le compenser forme dans le bloc intercepter l’Exception.This is triggered by the Compensate shape in the Catch Exception block.

Notes

Les transactions atomiques garantissent que les mises à jour partielles sont automatiquement annulées en cas d'échec lors de la mise à jour transactionnelle et que les effets de la transaction sont effacés (à l'exception des effets des appels .NET effectués dans la transaction).Atomic transactions guarantee that any partial updates are rolled back automatically in the event of a failure during the transactional update, and that the effects of the transaction are erased (except for the effects of any .NET calls that are made in the transaction).

Biztalk sql compensation block 2016

Notes

Une transaction à long terme est considérée comme validée une fois que sa dernière instruction a été exécutée.A long-running transaction is considered committed when the last statement in it has completed.Il n’existe aucune restauration automatique de l’état en cas d’abandon de la transaction.There is no automatic rollback of state in case of a transaction abort.Vous pouvez obtenir cette restauration par programme grâce aux gestionnaires d'exception et de compensation illustrés dans cet exemple.You can achieve this programmatically through the exception and compensation handlers demonstrated in this sample.

Dans le bloc catch, il en existe un délai forme définie sur dix secondes.In the catch block, there is one Delay shape set for ten seconds.Celle-ci retarde l'action de compensation.This delays the compensation action.Il existe également un compenser forme qui lance l’action de compensation dans la transaction Upd_Backend.There is also a Compensate shape that initiates the compensation action in the Upd_Backend transaction.

Les événements suivants se produisent une fois que l'orchestration a reçu le message d'entrée :The following happens after the orchestration receives the input message:

  1. L'assembly UpdateCrm met à jour une ligne dans la base de données Northwind.The UpdateCrm assembly updates a row in the Northwind database.

  2. L'assembly UpdateMailingList met à jour un enregistrement correspondant dans la base de données BTSCompensationSampleMailingList.The UpdateMailingList assembly updates a matching record in the BTSCompensationSampleMailingList database.

  3. En cas d'erreur lors de la mise à jour de la base de données Northwind, une exception est générée et l'orchestration quitte le processus.In the event of a failure while updating the Northwind database, an exception is raised and the orchestration exits the process.

  4. En cas d'erreur lors de la mise à jour de la base de données BTSCompensationSampleMailingList, une exception est générée et la réécriture des données client d'origine dans la base de données Northwind intervient après un délai de dix secondes.In the event of a failure while updating the BTSCompensationSampleMailingList database, an exception is raised and a ten-second delay takes place before rewriting the original customer data back to the Northwind database.

Accès à l'exempleWhere to Find This Sample

<Exemples de chemin d’accès>OrchestrationsCompensation<Samples Path>OrchestrationsCompensation

Le tableau suivant présente les fichiers de cet exemple et décrit leur fonction.The following table shows the files in this sample and describes their purpose.

Fichier(s)File(s)DescriptionDescription
Cleanup.batCleanup.batFichier de commandes utilisé pour désinstaller l'exemple.Batch file used to uninstall the sample.
CompensationOrchestration.btprojCompensationOrchestration.btprojProjet d'orchestration.Orchestration project.
CompensationSample.slnCompensationSample.slnExemple de solution.Sample solution.
CompensationSampleBinding.xmlCompensationSampleBinding.xmlDonnées de liaison pour l'orchestration (utilisées lors de l'installation).Binding data for the orchestration (used during installation).
ContactInfo.xsdContactInfo.xsdSchéma de message des coordonnées.Contact information message schema.
ContactInfo.xsxContactInfo.xsxFichier de disposition du concepteur d'orchestration.Orchestration Designer layout file.
CreateSQLDataStore.sqlCreateSQLDataStore.sqlScript SQL qui permet de créer et renseigner l'exemple de base de données.SQL script to create and populate the sample database.
CrmSchema.xsdCrmSchema.xsdSchéma de message de la mise à jour CRM.CRM update message schema.
MailingListSchema.xsdMailingListSchema.xsdSchéma de message de la mise à jour de la liste de distribution.Mailing list message update schema.
RemoveVirDir.vbsRemoveVirDir.vbsScript Microsoft Visual Basic Scripting Edition (VBScript) qui permet de supprimer les répertoires virtuels et physiques du service Web (utilisés lors de la désinstallation).Microsoft Visual Basic Scripting Edition (VBScript) script to remove Web service virtual and physical directories (used during uninstallation).
Request2Crm.btmRequest2Crm.btmMappage de message qui permet de convertir la demande (coordonnées) en message de mise à jour CRM.Message map to translate from request (contact info) to CRM update message.
Request2MailingList.btmRequest2MailingList.btmMappage de message qui permet de convertir la demande (coordonnées) en message de liste de distribution.Message map to translate from request (contact info) to mailing list message.
Setup.batSetup.batFichier de commandes qui permet d'installer l'exemple.Batch file to install this sample.
UpdateContact.odxUpdateContact.odxFichier d'orchestration.Orchestration file.
UpdateRequest2UpdateResponse.btmUpdateRequest2UpdateResponse.btmMappage de message qui permet de convertir la demande (coordonnées) en message de réponse.Message map to translate from request (contact info) to a response message.
UpdateResponse.xsdUpdateResponse.xsdSchéma de message de réponse.Response message schema.
InfoPathContact Info Update.xsnInfoPathContact Info Update.xsnFichier Microsoft InfoPath utilisé pour envoyer les formulaires au service Web d'orchestration.Microsoft InfoPath file used to submit forms to the orchestration Web service.
UpdateCrmAssemblyInfo.csUpdateCrmAssemblyInfo.csFichier de source d'informations de l'assembly UpdateCrm.Assembly information source file for the UpdateCrm assembly.(L'assembly UpdateCrm met à jour la base de données Northwind.)(The UpdateCrm assembly updates the Northwind database.)
UpdateCrmUpdateCrm.csUpdateCrmUpdateCrm.csCode source principal de l'assembly UpdateCrm.Main source code for the UpdateCrm assembly.
UpdateCrmUpdateCRM.csprojUpdateCrmUpdateCRM.csprojFichier de projet UpdateCrm.UpdateCrm project file.
UpdateMailingListAssemblyInfo.csUpdateMailingListAssemblyInfo.csFichier de source d'informations de l'assembly UpdateMailingList.Assembly information source file for the UpdateMailingList assembly.(L'assembly UpdateMailingList met à jour l'exemple de base de données.)(The UpdateMailingList assembly updates the sample database.)
UpdateMailingListUpdateMailingList.csUpdateMailingListUpdateMailingList.csCode source principal de l'assembly UpdateMailingList.Main source code for the UpdateMailingList assembly.
UpdateMailingListUpdateMailingList.csprojUpdateMailingListUpdateMailingList.csprojFichier de projet UpdateMailingList.UpdateMailingList project file.

Création et initialisation de cet exempleBuilding and Initializing This Sample

Pour créer et initialiser l'exemple CompensationTo build and initialize the Compensation sample

  1. Dans une fenêtre de commande Visual StudioVisual Studio, accédez au dossier suivant :In a Visual StudioVisual Studio command window, navigate to the following folder:

    <Exemples de chemin d’accès>OrchestrationsCompensation<Samples Path>OrchestrationsCompensation

  2. Exécutez le fichier Setup.bat, qui effectue les actions suivantes :Run Setup.bat, which performs the following actions:

    • création et déploiement de l'exemple d'assembly.Build and deploy the sample assembly.

    • Lors du lancement de l'Assistant Publication de services Web BizTalk, procédez manuellement comme suit :When the BizTalk Web Services Publishing Wizard launches, do the following manually:

    1. Sur le Bienvenue dans l’Assistant de publication des Services Web BizTalk , cliquez sur suivant.On the Welcome to the BizTalk Web Services Publishing Wizard page, click Next.

    2. Sur le créer un Service Web page, sélectionnez orchestration BizTalk publier en tant que services web, puis cliquez sur suivant.On the Create Web Service page, select Publish BizTalk orchestration as web services, and then click Next.

    3. Sur le BizTalk Assembly page, recherchez et sélectionnez < exemples de chemin>OrchestrationsCompensationbinReleaseCompensationOrchestration.dll, puis cliquez sur Suivant.On the BizTalk Assembly page, browse and select <Samples Path>OrchestrationsCompensationbinReleaseCompensationOrchestration.dll, and then click Next.

    4. Sur le Orchestrations et Ports , cliquez sur suivant.On the Orchestrations and Ports page, click Next.

    5. Sur le propriétés du Service Web page espace de noms cible du service web, type http://Microsoft.BizTalk.Samples.Compensation/, puis cliquez sur suivant.On the Web Service Properties page, in Target namespace of web service, type http://Microsoft.BizTalk.Samples.Compensation/, and then click Next.

    6. Sur le projet de Service Web page emplacement, type http://localhost/CompensationOrchestrationWebServiceProxy.On the Web Service Project page, in Location, type http://localhost/CompensationOrchestrationWebServiceProxy.

    7. Sélectionnez le autoriser l’accès anonyme au service web case à cocher.Select the Allow anonymous access to web service check box.

    8. Sélectionnez le emplacement de réception BizTalk créer dans l’application suivante case à cocher.Select the Create BizTalk receive location in the following application check box.

    9. Dans le emplacement de réception BizTalk créer dans l’application suivante menu déroulant, sélectionnez BizTalk Application 1 dans la liste déroulante, puis cliquez sur suivant.In the Create BizTalk receive location in the following application drop-down menu, select BizTalk Application 1 from the drop-down list, and then click Next.

    10. Sur le résumé du projet de Service Web , cliquez sur créer.On the Web Service Project Summary page, click Create.

    11. Sur le fin de l’Assistant de publication des Services Web BizTalk , cliquez sur Terminer.On the Completing the BizTalk Web Services Publishing Wizard page, click Finish.

  3. Le programme d'installation crée et lie les ports, crée la base de données principale pour l'exemple et ajoute les assemblys C# au GAC (Global Assembly Cache).Setup creates and binds ports, creates the back-end database for the sample, and adds C# assemblies to the global assembly cache.

    Notes

    Vous devez confirmer que BizTalk ServerBizTalk Server n'a pas signalé d'erreur pendant le processus de création et d'initialisation, avant d'essayer de faire fonctionner cet exemple.You should confirm that BizTalk ServerBizTalk Server did not report any errors during the build and initialization process before attempting to run this sample.

Cet exemple en cours d’exécutionRunning This Sample

Une fois l'exemple créé et initialisé, tenez compte des points suivants avant de l'exécuter :After you build and initialize this sample, consider the following before you run it:

Block
  • Si vous exécutez cet exemple sous Windows Server 2008 SP2Windows Server 2008 SP2 ou Windows Server 2008 R2Windows Server 2008 R2, vous devez créer un pool d'applications IIS et définir son identité sur un compte membre du groupe Windows Utilisateurs d'applications BizTalk.If you are running this sample on Windows Server 2008 SP2Windows Server 2008 SP2 or Windows Server 2008 R2Windows Server 2008 R2, you must create an IIS application pool and set its identity to an account that is a member of the BizTalk Application Users Windows group.Vous devez également mettre à jour le répertoire virtuel du service Web d'orchestration afin qu'il soit exécuté dans ce pool d'applications.You also need to update the orchestration Web service virtual directory to run within this application pool.

  • Ajoutez le compte ASPNET au groupe Utilisateurs d'hôtes BizTalk isolés.Add the ASPNET account to the BizTalk Isolated Host Users group.

  • Accorder l’autorisation de db_owner du groupe utilisateurs d’applications BizTalk de la BTSCompensationSampleMailingList et Northwind bases de données.Give the BizTalk Application Users group db_owner permission to the BTSCompensationSampleMailingList and Northwind databases.

  • Si BizTalk ServerBizTalk Server n’est pas installé dans l’emplacement par défaut (lecteur : Program FilesMicrosoft BizTalk Server <version>), vous devez publier le formulaire Contact Info Update.xsn avant de l’utiliser.If BizTalk ServerBizTalk Server is not installed in the default location (drive:Program FilesMicrosoft BizTalk Server <version>), you must publish the Contact Info Update.xsn form before using it.Pour ce faire, procédez comme suit.To do so, do the following.

    Pour publier le formulaire InfoPathTo publish the InfoPath form

    1. Dans Internet Explorer, sur le outils menu, cliquez sur Options Internet.In Internet Explorer, on the Tools menu, click Internet Options.

    2. Sur le sécurité , cliquez sur Internet, puis cliquez sur personnaliser le niveau.On the Security tab, click Internet, and then click Custom Level.

    3. Dans le divers section, vérifiez que le accéder aux sources de données sur plusieurs domaines paramètre est activé, puis cliquez sur OK.In the Miscellaneous section, ensure that the Access data sources across domains setting is enabled, and then click OK.Ce paramètre est requis pour le code de script de la solution d'interface utilisateur InfoPath à exécuter.This setting is required for the InfoPath user interface solution scripting code to run.

    4. Dans l’Explorateur Windows, accédez à < exemples de chemin>OrchestrationsCompensationInfoPath, avec le bouton droit Contact Info Update.xsn puis cliquez sur Conception.In Windows Explorer, navigate to <Samples Path>OrchestrationsCompensationInfoPath, right-click Contact Info Update.xsn and then click Design.

    5. La solution de mise à jour des coordonnées InfoPath (Contact Info Update) est ouverte en mode Création.The InfoPath Contact Info Update solution opens in design mode.

    6. Dans l’application de la mise à jour des informations de Contact InfoPath, sur le fichier menu, cliquez sur publier.In the InfoPath Contact Info Update application, on the File menu, click Publish.

    7. L'Assistant Publication s'affiche.The Publish Wizard appears.

    8. Sélectionnez dans un dossier partagé sur cet ordinateur ou sur un réseau et publiez la solution sur le chemin d’accès < exemples de chemin>OrchestrationsCompensationInfoPathContact Info Update.xsn.Select To a shared folder on this computer or on a network and publish the solution to the path <Samples Path>OrchestrationsCompensationInfoPathContact Info Update.xsn.

    9. Fermez InfoPath en mode Création.Close the design mode InfoPath.

  • Vous êtes prêt à exécuter cet exemple.You are ready to run this sample.

    Pour exécuter l'exemple CompensationTo run the Compensation sample

    1. Double-cliquez sur Contact Info Update.xsn pour l’ouvrir dans InfoPath.Double-click Contact Info Update.xsn to open it in InfoPath.

    2. Renseignez le formulaire pour un compte existant dans les deux bases de données.Fill out the form for an account that exists in both databases.Par exemple, utilisez l'ID de compte « ALFKI » de la table Customers dans la base de données Northwind.For example, use an existing account ID 'ALFKI' from the Northwind Customers table.

    3. Sur le fichier menu, sélectionnez envoyer, puis cliquez sur envoyer.On the File menu, select Submit, and click Submit.

    4. Le document de réponse doit apparaître dans le < exemples de chemin>OrchestrationsCompensationOut dossier et Northwind et les bases de données BTSCompensationSampleMailingList doivent être mises à jour avec les nouvelles données à partir du formulaire InfoPath.The response document should appear in the <Samples Path>OrchestrationsCompensationOut folder, and both the Northwind and the BTSCompensationSampleMailingList databases should be updated with the new data from the InfoPath form.

      Notes

      Vous pouvez détacher la base de données BTSCompensationSampleMailingList ou la mettre hors connexion pour tester l'action de compensation effectuée par l'orchestration.You can detach the BTSCompensationSampleMailingList database or take it offline to test the compensation action that the orchestration performs.Notez que l'enregistrement est d'abord mis à jour dans la base de données Northwind.Observe that the record is updated in the Northwind database first.Lorsque l'orchestration tente de mettre à jour la base de données BTSCompensationSampleMailingList par la suite, la mise à jour échoue car cette base de données est détachée.Then, when the orchestration tries to update the BTSCompensationSampleMailingList database, because that database is detached, the update fails.Une exception est donc générée et l'exécution de l'action de compensation en vue de la réécriture des données client d'origine dans la base de données Northwind intervient après un délai de dix secondes.Therefore, an exception is raised and there is a ten-second delay before the compensation action takes place to write the original customer data back to the Northwind database.

      Notes

      Vous risquez d'obtenir une erreur « Échec de la connexion pour l'utilisateur 'IIS APPPOOLDefaultAppPool ».You may get a 'Login failed for user 'IIS APPPOOLDefaultAppPool' error.Cela est peut-être dû à un échec de la validation de l'accès au serveur basé sur les jetons.It might be because of the token-based server access validation failure.Pour corriger cette erreur, créez un pool d'applications et utilisez le compte d'administrateur dans ce pool.To resolve this error, create a new application pool and use the administrator account in it.

Désinstallation de l'exempleUninstalling This Sample

Pour désinstaller l'exemple CompensationTo uninstall the Compensation sample

  1. Dans une fenêtre de commande Visual StudioVisual Studio, accédez au dossier suivant :In a Visual StudioVisual Studio command window, navigate to the following folder:

    <Exemples de chemin d’accès>OrchestrationsCompensation<Samples Path>OrchestrationsCompensation

  2. Exécutez Cleanup.bat.Run Cleanup.bat.

Voir aussiSee Also

I am trying to configure BTS 2016 3.12.774.0 against SQL Server v 17.9.1. They are running on separate servers running Windows server 2016 64 bit OS.

The Enterprise Single Sign On database (SSODB) and the Business Rules Engine DB (BizTalkRuleEngineDB) get created but only to BRE is configured when I go into Biztalk Config.

I have had the servers rebooted but no change.

The Ent SSO Service does not exist in Services

User doing the install is in groups Biztalk Server Admin, Application Users, Server Operators and SSO Admin, Affiliate Admin all at the domain level.

Names of both servers are 13 characters.

Not sure what to look for in the configuration logs. I have searched for the words Error, Fail, Exception but there are none.

A new attempt to configure gave the following error:

Microsoft BizTalk Server Configuration Wizard ------------------------------ Failed to create the SQL database 'SSODB' on SQL Server 'servername10' (with SSO Administrator account 'SSO Administrators'). (SSO) For help, click: go.microsoft.com/fwlink/… ------------------------------ ADDITIONAL INFORMATION: (0xC0002A21) An error occurred while attempting to access the SSO database. (SSO) For help, click: go.microsoft.com/fwlink/… ------------------------------ An error occurred while attempting to access the SSO database. See the event log (on computer 'servername10') for more details. (SSO)

Dijkgraaf
7,6299 gold badges27 silver badges47 bronze badges

Biztalk Sql Compensation Block 2016

L YoungL Young

1 Answer

There is no SQL Server v 17.9.1. That version number is one for SSMS.

BizTalk Server 2016 does not support SQL Server 2017. Hardware and Software Requirements for BizTalk Server 2016

Please post the error text, either from the little red X or the error log. There will always be an error. BT Config will never silently fail.

Johns-305Johns-305
Biztalk sql compensation block 2016

Biztalk Sql Compensation Block 2017

Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.

Biztalk Sql Compensation Block Download

Not the answer you're looking for? Browse other questions tagged configbiztalkbiztalk-2016 or ask your own question.