Biztalk design solution proposed

Hi Friends,

I have BizTalk solution is running the 3 different sites, say a,b and c sql instance.

Each instance running the their own app setting properties.in APP.CONFIG files.

Code is running the same all the 3 sites,only difference is app config properties.

Now I have requirement to use single server(means I can run any message from any server)

I need to merge the config properties for 3 difference sites.So I can run any file any service instance and app settings properties should be mergered.3 sites has 3 difference plants based on plant type message I need to apply app settings and perform actions.

Can anyone propose the solutions in biztalk

Thanks for

April 30th, 2015 7:06am

So, not really sure what you're asking.  What exactly do you mean by "merge the config properties"?

If the app is coded to retrieve site specific values that are essentially global, you have a problem because the app is not what would be called 'multi-tenant'.

You will likely have to refactor the entire 'config' system to accommodate n-number of sites.

However, there really shouldn't bee app.config files in BizTalk.  Where exactly do you see those?

Free Windows Admin Tool Kit Click here and download it now
April 30th, 2015 7:45am

Hi,

I have a BizTalk solution that has a similar requirement. It contains some application services and each service requires its own configuration settings.

Instead of having a unique configuration file with all the settings merged, I prefer having a different config file for each service.

With this requirement, I have opted for loading the configuration file dinamically. For this task I've used the Microsoft Enterprise Library. In addition to App settings, I'm loading dinamically Logging, Exception handling, etc...

If you can load the correct file based on the Plant Type, you can use the same configuration properties but with different values depending the config file used.

Regards

April 30th, 2015 7:46am

Your solution should utilize BizTalk Parties and Role Links. So

  1. In your existing Receive Port, create Receive Locations pertaining to EACH SITE
  2. Create a Pipeline Component which will use the BTS.InboundTransportLocation Property and Identify a BizTalk Party on the basis.
  3. in BizTalk create a BizTalk Party for each Site.
  4. Assign the site specific send port to each site.
  5. In your orchestration use role links for receive and transmit.
  6. Use the party identified on Receive to establish the transmit Party.
  7. You can use the same party as the mechanism to store specific configuration settings

Refer https://msdn.microsoft.com/en-us/library/aa547316.aspx to understand BizTalk Roles Links and parties.

Regards.

Free Windows Admin Tool Kit Click here and download it now
April 30th, 2015 8:02am

HI Osman,

Thanks for reply.Can you share code snippets for you project.

Thanks

April 30th, 2015 9:12am

Yes, of course.

  • First you have to create a configuration source loading the specified configuration file: 
IConfigurationSource configurationSource = new FileConfigurationSource(configFilePath);

Where the configFile parameter is the full path of the config file you want to load.

  • Next, you have to load the appSetting section is you want to retrieve settings from the file:
System.Configuration.AppSettingsSection appSettingsSection = this.ConfigurationSource.GetSection("appSettings") as AppSettingsSection;
  • Once you have loaded the section, you can get any parameter configuration:
var configProperty = appSettingsSection.Settings[configurationProperty].Value

Where configurationProperty is the name of the property to get from the configuration section.

I've upload a simple class that get configuration, exception handling and logging: https://onedrive.live.com/redir?resid=4176a95ad936e072!1049&authkey=!ABG9mCOywRfzhTw&ithint=file%2ccs

Regards.

Free Windows Admin Tool Kit Click here and download it now
April 30th, 2015 12:05pm

Yes, of course.

  • First you have to create a configuration source loading the specified configuration file: 
IConfigurationSource configurationSource = new FileConfigurationSource(configFilePath);

Where the configFile parameter is the full path of the config file you want to load.

  • Next, you have to load the appSetting section is you want to retrieve settings from the file:
System.Configuration.AppSettingsSection appSettingsSection = this.ConfigurationSource.GetSection("appSettings") as AppSettingsSection;
  • Once you have loaded the section, you can get any parameter configuration:
var configProperty = appSettingsSection.Settings[configurationProperty].Value

Where configurationProperty is the name of the property to get from the configuration section.

I've upload a simple class that get configuration, exception handling and logging: https://onedrive.live.com/redir?resid=4176a95ad936e072!1049&authkey=!ABG9mCOywRfzhTw&ithint=file%2ccs

Regards.

April 30th, 2015 4:01pm

Yes, of course.

  • First you have to create a configuration source loading the specified configuration file: 
IConfigurationSource configurationSource = new FileConfigurationSource(configFilePath);

Where the configFile parameter is the full path of the config file you want to load.

  • Next, you have to load the appSetting section is you want to retrieve settings from the file:
System.Configuration.AppSettingsSection appSettingsSection = this.ConfigurationSource.GetSection("appSettings") as AppSettingsSection;
  • Once you have loaded the section, you can get any parameter configuration:
var configProperty = appSettingsSection.Settings[configurationProperty].Value

Where configurationProperty is the name of the property to get from the configuration section.

I've upload a simple class that get configuration, exception handling and logging: https://onedrive.live.com/redir?resid=4176a95ad936e072!1049&authkey=!ABG9mCOywRfzhTw&ithint=file%2ccs

Regards.

Free Windows Admin Tool Kit Click here and download it now
April 30th, 2015 4:01pm

Yes, of course.

  • First you have to create a configuration source loading the specified configuration file: 
IConfigurationSource configurationSource = new FileConfigurationSource(configFilePath);

Where the configFile parameter is the full path of the config file you want to load.

  • Next, you have to load the appSetting section is you want to retrieve settings from the file:
System.Configuration.AppSettingsSection appSettingsSection = this.ConfigurationSource.GetSection("appSettings") as AppSettingsSection;
  • Once you have loaded the section, you can get any parameter configuration:
var configProperty = appSettingsSection.Settings[configurationProperty].Value

Where configurationProperty is the name of the property to get from the configuration section.

I've upload a simple class that get configuration, exception handling and logging: https://onedrive.live.com/redir?resid=4176a95ad936e072!1049&authkey=!ABG9mCOywRfzhTw&ithint=file%2ccs

Regards.

April 30th, 2015 4:01pm

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics