ESB 2.1 : Dynamically setting up the EndPointInfo for WCF Sqlbinding in Business Rules Engine (BRE)


In this blog I'll be showing how to setup the end point configuration for an incoming message in  the Business Rules Composer using  the vocabulary facts exposed by ESB 2.1.

So here goes the scneario - We have an incoming message which needs to be routed to an end point depending on the content of the message.

Please keep the following points in mind for this scenario

  1. Since we are going to dynamically resolve the Itinerary using the message context, select the "ItinerarySelectReceiveXml" pipeline which comes "Out Of Box" with ESB Toolkit.
  2. Inside the developer environment - itinerary Designer , select the Extender Component under which you have configured the BRE Resolver and set the property "UseMsg" as True - If it reamins at it's default value i.e False , at run time the message conent would not be sent to the Business Rules Engine and content based routing would not be possible.- Remember this is required only for the Content based routing scenarios and not needed if you are making decisons insdie your rule based on the the system promoted context properties.

Now assuming you have created your Business Rule IF condition based on the content of the message ( for e.g xpath of a given node) , this is how you need to set up the THEN condition and this applies specifically for the WCF based transport end points . Here I would be showing for WCF Sql Port



Remember that the

-  Properties that have been set in the actions inside the THEN pane are being exposed by the Out of Box vocabulary set that comes with the ESB Toolkit as shown below in the snapshot.

- The values that have been set for those proeprties need to be as it is there in the snap shot above and can be found in the Bindings fille that comes along when we Consume the Adapter Metadata at design time for importing the schema using the wizard. (Just remember that the WCF Action property value needs to be in {})

- In case you are doing content based routing using Business Rules Engine ( busienss condition is being evaulated using the content of the message ) ,  then you must ensure that you change the 'Document Type'   property is set to 'Microsoft.Practices.ESB.ResolveProviderMessage' while you are defining the vocabulary.