Share via


Install the ESB Guidance from the Solution Project

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

This section describes the process for installing the Microsoft ESB Guidance core assemblies, pipeline components, and helper classes using the solution project provided with the Microsoft ESB Guidance source code.

Note

The Exception Management Framework, which installs as part of the Microsoft ESB Guidance core installation, uses the ESB Dispatcher pipeline component to translate outbound fault messages into a format suitable for insertion into the SQL Server Exception Management Database named EsbExceptionDb. Therefore, you must create and configure the exception database as shown in the following procedure. The Exception Management send port named All.Exceptions uses the SQL Adapter to populate the database with exception information.

To install the Microsoft ESB Guidance from the Microsoft.Practices.ESB.sln solution

  1. Load the solution Microsoft.Practices.ESB.sln from the \Source folder where you installed the distribution files into Visual Studio 2005.

  2. Open the Property Pages dialog box for each of the following projects, select the Deployment entry in the Configuration Settings section of the tree in the right-side pane, and then click All Configurations in the drop-down list at the top of the dialog. Ensure that the Server and Configuration Database settings point to the appropriate SQL Server and BizTalkMgmtDb database:

    • ESB.Agents in the Core\Orchestrations folder
    • ESB.Itinerary.Pipelines in the Core\Pipelines folder
    • ESB.Itinerary.Schemas in the Core\Schemas folder
    • ESB.Resolver.Schemas in the Core\Schemas folder
    • ESB.ExceptionHandling.Maps in the Exception Handling\Maps folder
    • ESB.ExceptionHandling.Pipelines in the Exception Handling\Pipelines folder
    • ESB.ExceptionHandling.Schemas.Faults in the Exception Handling\Schemas folder
    • ESB.ExceptionHandling.Schemas.Reporting in the Exception Handling\Schemas folder
  3. Save and close the solution.

  4. Open SQL Server Management Studio (or an equivalent SQL Server management tool) and connect to the SQL Server that will host the exception database. Load the SQL script EsbExceptionDb_CREATE.sql** from the \Source\Exception Handling\SQL\ESB.ExceptionHandling.Database\Create Scripts folder **into a new Query window and execute it to create the EsbExceptionDb database. This will also create following two security roles within the database:

    • ESBPortal
    • ESBPortalAdmin
  5. Select the BizTalk Application Users group (the default is [domain]\BizTalk Application Users) in the Security\Logins section and open the properties dialog box. Select User Mapping and map this login to the EsbExceptionDb database and to the ESBPortal database role. This grants the account execution rights for all the stored procedures within the database. Repeat this step with the [domain]\BizTalk Server Administrators group, mapping it to the ESBPortalAdmin role.

  6. Open the \Source\Core\Install\Scripts folder in Windows Explorer and open the script file named PreProcessingCORE.vbs in a text editor. Edit the variables declared at the start of this file, such as the user name and password, as required before you execute the script. The topic Settings in the PreProcessingCORE Script shows these variables and their default values. Then double-click the script to execute it. The script performs the following tasks:

    • Create a new user account for the BizTalk Isolated Host Users group.

    • Add the user account to the following local and domain-level groups:

      Local and domain groups

      [local machine]/IIS_WPG

      [local machine]/STS_WPG

      [domain]/BizTalk Isolated Host Users

    • Grant permission for the new user account and the BizTalk Application Users group to the following folders:

      Folder

      Windows Temp folder

      ESB Guidance installation folder

    • Create three new IIS Application Pools with the following names:

      New IIS Application Pools

      ESBAppPool

      ESBWcfAppPool

      ESBNetworkAppPool

      Note

      The ESBAppPool and ESBWcfAppPool application pools use the new account as their identity. The ESBNetworkAppPool application pool should use the NETWORK SERVICE account as its identity.

    • Create IIS virtual directories for the following Web service folders, and then configure them all to run under one of the new application pools:

      New Application Pools

      \Services\ESB.ExceptionHandlingServices (ESBAppPool)

      \Services\ESB.ExceptionHandlingServices.WCF (ESBWcfAppPool)

      \Services\ESB.ItineraryServices (ESBAppPool)

      \Services\ESB.ItineraryServices.WCF (ESBWcfAppPool)

      \Services\ESB.ItineraryServices.Response (ESBAppPool)

      \Services\ESB.ItineraryServices.Response.WCF (ESBWcfAppPool)

      \Services\ESB.ResolverServices (ESBNetworkAppPool)

      \Services\ESB.ResolverServices.WCF (ESBNetworkAppPool)

      \Services\ESB.TransformServices (ESBAppPool)

      \Services\ESB.TransformServices.WCF (ESBWcfAppPool)

      \Services\ESB.BizTalkOperationsService (ESBNetworkAppPool)

      \Services\ESB.UDDIService (ESBNetworkAppPool)

      Note

      If you are installing the Microsoft ESB Guidance into a BizTalk Server group, exceptions may occur when the script attempts to set permissions. You must set these permissions and manually assign the user account to the BizTalk Isolated Host Users domain group after the script completes.
      In addition, if you are installing the Microsoft ESB Guidance into a BizTalk Server group installed on the local machine, and the local machine is part of a domain, exceptions may occur when the script attempts to set permissions. In this case, edit the PreProcessingCORE.vbs script as follows. Change the line strUserDomain=objNetwork.UserDomain to strUserDomain=objNetwork.ComputerName then run the script again.

  7. Open the \Source\Core\Install\Scripts folder in Windows Explorer and double-click the script file named 1.Install_Prerequisites.cmd** **to build the three projects in the Scripts folder (the UDDI Publisher utility, Rules Deployment utility, and Event Source utility). This installs the required UDDI entries, copies the Rules Deployment utility to the appropriate folders, and installs the event source (Microsoft.Practices.ESB.EventSource.dll). The script performs the following tasks:

    • Create the following entries within the local UDDI server (if installed) for the sample projects:
    • Categorization schema name microsoft-com:esb:runtimeresolution containing the following keys:

      Keys

      TransportType

      JaxRpcResponse

      TransportLocation

      EndPointConfig

      MessageExchangePattern

      Action

      CacheTimeOut

      TransformType

      BizTalkApplication

      TargetNamespace

      PortName

    • Business provider Microsoft.Practices.ESB:

      Service name

      Category Key

      Service name = OrderFileService:

      Category Key = TransportType ; Value = FILE

       

      Category Key = TransportLocation ; Value = C:\Projects\Microsoft.Practices.ESB\Source\Samples\DynamicResolution\Test\Filedrop\OUt\%MessageID%.xml

       

      Category Key = MessageExchangePattern; Value = One-Way

       

      Category Key = CacheTimeOut; Value = -1

      Service name = OrderFileServiceWBindings:

      TransportType://FILE

       

      TransportLocation://C:\Projects\Microsoft.Practices.ESB\Source\Samples\DynamicResolution\Test\Filedrop\OUt\%MessageID%.xml

       

      MessageExchangePattern://One-Way

       

      CacheTimeOut://-1

      TransportType://FILE

      TransportLocation://C:\Projects\Microsoft.Practices.ESB\Source\Samples\DynamicResolution\Test\Filedrop\OUt\%MessageID%.xml

       

      MessageExchangePattern://One-Way

       

      CacheTimeOut://-1

      Service name = OrdeMQSService

      Category Key = TransportType ; Value = MQS

       

      Category Key = TransportLocation ; Value = MQS://localhost/ESB.DEP.Sample.QueueManager/TEST.OUT/%MessageID%.xml

       

      Category Key = MessageExchangePattern; Value = One-Way

       

      Category Key = CacheTimeOut; Value = -1

      Service name = OrderMQSServiceWBindings

      TransportType://MQS

       

      TransportLocation://MQS://localhost/ESB.DEP.Sample.QueueManager/TEST.OUT/%MessageID%.xml

       

      MessageExchangePattern://One-Way

       

      CacheTimeOut://-1

      Service name = OrderFTPService

      Category Key = TransportType ; Value = FTP

       

      Category Key = TransportLocation ; Value = FTP://localhost/out/%MessageID%.xml

       

      Category Key = MessageExchangePattern; Value = One-Way

       

      Category Key = CacheTimeOut; Value = -1

      Service name = OrderFTPServiceWBindings

      TransportType://FTP

       

      TransportLocation://FTP://localhost/out/%MessageID%.xml

       

      MessageExchangePattern://One-Way

       

      CacheTimeOut://-1

      Service name = PurchaseOrderSubmitOrderService

      Category Key = TransportType ; Value = WCF-BasicHttp

       

      Category Key = TransportLocation ; Value = https://localhost/ESB.CanadianServices/SubmitPOService.asmx

       

      Category Key = TargetNamespace; Value = http://globalbank.esb.dynamicresolution.com/canadianservices

       

      Category Key = MessageExchangePattern; Value = Two-Way

       

      Category Key = JaxRpcResponse; Value =false

       

      Category Key = Action; Value = submitOrder

       

      Category Key = CacheTimeOut; Value = -1

      Service name = PurchaseOrderSubmitOrderServiceWBindings

      TransportType://WCF-BasicHttp


       

      TransportLocation://https://localhost/ESB.CanadianServices/SubmitPOService.asmx

       

      TargetNamespace:// http://globalbank.esb.dynamicresolution.com/canadianservices

       

      MessageExchangePattern://Two-Way

       

      JaxRpcResponse://false

       

      Action://submitOrder

       

      CacheTimeOut://-1

      Service name = PurchaseOrderService

      Category Key = TransportLocation ; Value = https://localhost/ESB.CanadianServices/SubmitPOService.asmx

       

      Category Key = TargetNamespace; Value = http://globalbank.esb.dynamicresolution.com/canadianservices

  8. Open the \Source\Core\Install\Scripts folder in Windows Explorer and double-click the script file named 1.CORE_CreateBizTalkApplication.cmd** **to create a new application within BizTalk and deploy the core assemblies. The script performs the following tasks:

    • Rebuild the Microsoft.Practices.ESB.sln solution from the \Source folder where you installed the distribution files.
    • Execute the GACUTIL utility to add the Microsoft ESB Guidance core assemblies to the global assembly cache.
    • Copy all the Microsoft ESB Guidance pipeline components to the default BizTalk pipeline component directory (%Program Files%\Microsoft BizTalk Server 2006\Pipeline Components).
    • Deploy the Microsoft.Practices.ESB.sln from the \Source folder where you installed the distribution files, which creates the Microsoft.Practices.ESB application in BizTalk.
    • Import the BizTalk binding file Microsoft.Practices.ESB.CORE_Bindings.xml.
    • Deploy Business Rule Engine Vocabularies.
    • Deploy the BAM observation models.
  9. Change the SQL Target setting for the SQL Adapter associated with the send port named All.Exceptions, which supports the Exception Management Framework, to point to the EsbExceptionDb database you created in step 4.

  10. To confirm successful installation of the Microsoft ESB Guidance core solution, or if you are encountering issues when you run applications, you can use the list provided in the topic Assemblies and Artifacts Installed by the ESB Core to check for the presence of the required assemblies and other artifacts.

Now continue to the next task: Configure BizTalk and Machine.config Files.