Click here to Skip to main content
15,896,606 members
Articles / Productivity Apps and Services / Biztalk

Implementation of a Message Broker on BizTalk

Rate me:
Please Sign up or sign in to vote.
0.00/5 (No votes)
13 Jun 2011CPOL8 min read 26.7K   356   3  
This article describes an implementation on BizTalk 2006/R2/BizTalk 2009 where a received message is split and sent to many different destinations.
  • MessageBroker.zip
    • Stm.MessageBroker
      • Stm.MessageBroker.Mappings
        • AssemblyInfo.cs
        • bin
          • Development
            • Stm.MessageBroker.Mappings.dll
            • Stm.MessageBroker.Schemas.dll
        • MainRequest_To_RecipientRequest.btm
        • obj
          • Development
            • Stm.MessageBroker.Mappings.dll
            • temp
        • Request_To_ResponseError.btm
        • Stm.MessageBroker.Mappings.btproj
        • Stm.MessageBroker.Mappings.btproj.user
        • Stm.MessageBroker.Mappings.snk
      • Stm.MessageBroker.Orchestrations
        • AssemblyInfo.cs
        • bin
          • Development
            • Microsoft.BizTalk.Deployment.EdiDeployment.dll
            • Microsoft.BizTalk.Edi.BaseArtifacts.dll
            • Microsoft.BizTalk.Edi.EnterpriseLibrary.Common.dll
            • Microsoft.BizTalk.Edi.EnterpriseLibrary.Data.dll
            • Microsoft.BizTalk.Edi.EnterpriseLibrary.ObjectBuilder.dll
            • Microsoft.BizTalk.Edi.MessageCore.dll
            • Microsoft.BizTalk.Edi.PartnerAgreementManager.dll
            • Microsoft.BizTalk.Edi.PipelineComponents.dll
            • Microsoft.BizTalk.Edi.Reporting.Common.dll
            • Microsoft.BizTalk.Edi.Reporting.dll
            • Microsoft.BizTalk.Edi.Shared.dll
            • Microsoft.BizTalk.EdiInt.Reporting.dll
            • Microsoft.BizTalk.Interop.Agent.dll
            • Microsoft.BizTalk.Messaging.dll
            • Microsoft.BizTalk.Pipeline.dll
            • Microsoft.XLANGs.BaseTypes.dll
            • Microsoft.XLANGs.Engine.dll
            • Microsoft.XLANGs.Pipeline.dll
            • Microsoft.XLANGs.RuntimeTypes.dll
            • Stm.MessageBroker.Mappings.dll
            • Stm.MessageBroker.Orchestrations.dll
            • Stm.MessageBroker.PartnerHelper.dll
            • Stm.MessageBroker.Pipelines.dll
            • Stm.MessageBroker.Schemas.dll
        • ChildOrch.odx
        • ChildOrch.odx.cs
        • MainBroker.odx
        • MainBroker.odx.cs
        • obj
          • Development
            • temp
        • Stm.MessageBroker.Orchestrations.btproj
        • Stm.MessageBroker.Orchestrations.btproj.user
        • Stm.MessageBroker.Orchestrations.snk
        • TransformRecipientRequest.btm
      • Stm.MessageBroker.PartnerHelper
      • Stm.MessageBroker.Pipelines
        • AssemblyInfo.cs
        • bin
          • Development
            • Microsoft.BizTalk.Deployment.EdiDeployment.dll
            • Microsoft.BizTalk.Edi.BaseArtifacts.dll
            • Microsoft.BizTalk.Edi.EnterpriseLibrary.Common.dll
            • Microsoft.BizTalk.Edi.EnterpriseLibrary.Data.dll
            • Microsoft.BizTalk.Edi.EnterpriseLibrary.ObjectBuilder.dll
            • Microsoft.BizTalk.Edi.MessageCore.dll
            • Microsoft.BizTalk.Edi.PartnerAgreementManager.dll
            • Microsoft.BizTalk.Edi.PipelineComponents.dll
            • Microsoft.BizTalk.Edi.Reporting.Common.dll
            • Microsoft.BizTalk.Edi.Reporting.dll
            • Microsoft.BizTalk.Edi.Shared.dll
            • Microsoft.BizTalk.EdiInt.Reporting.dll
            • Microsoft.BizTalk.Pipeline.dll
            • Microsoft.XLANGs.BaseTypes.dll
            • Microsoft.XLANGs.RuntimeTypes.dll
            • Stm.MessageBroker.Pipelines.dll
            • Stm.MessageBroker.Schemas.dll
        • obj
          • Development
            • temp
        • Stm.MessageBroker.Pipelines.btproj
        • Stm.MessageBroker.Pipelines.btproj.user
        • Stm.MessageBroker.Pipelines.snk
        • XMLAggregate.btp
      • Stm.MessageBroker.Schemas
      • Stm.MessageBroker.sln
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="PartnersDataSet" targetNamespace="http://tempuri.org/PartnersDataSet.xsd" xmlns:mstns="http://tempuri.org/PartnersDataSet.xsd" xmlns="http://tempuri.org/PartnersDataSet.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" attributeFormDefault="qualified" elementFormDefault="qualified">
  <xs:annotation>
    <xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
      <DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
        <Connections>
          <Connection AppSettingsObjectName="Settings" AppSettingsPropertyName="BizTalkPartnersConnectionString" ConnectionStringObject="" IsAppSettingsProperty="True" Modifier="Assembly" Name="BizTalkPartnersConnectionString (Settings)" ParameterPrefix="@" PropertyReference="ApplicationSettings.Stm.MessageBroker.PartnerHelper.Properties.Settings.GlobalReference.Default.BizTalkPartnersConnectionString" Provider="System.Data.SqlClient">
          </Connection>
        </Connections>
        <Tables>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="PartnersTableAdapter" GeneratorDataComponentClassName="PartnersTableAdapter" Name="Partners" UserDataComponentName="PartnersTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="BizTalkPartnersConnectionString (Settings)" DbObjectName="BizTalkPartners.dbo.Partners" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="True" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="True" UserGetMethodName="GetData" UserSourceName="Fill">
                <DeleteCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="False">
                    <CommandText>DELETE FROM [dbo].[Partners] WHERE (([PartnerId] = @Original_PartnerId) AND ((@IsNull_TransportType = 1 AND [TransportType] IS NULL) OR ([TransportType] = @Original_TransportType)))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="False" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_PartnerId" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="PartnerId" SourceColumnNullMapping="False" SourceVersion="Original">
                      </Parameter>
                      <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_TransportType" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="TransportType" SourceColumnNullMapping="True" SourceVersion="Original">
                      </Parameter>
                      <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_TransportType" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="TransportType" SourceColumnNullMapping="False" SourceVersion="Original">
                      </Parameter>
                    </Parameters>
                  </DbCommand>
                </DeleteCommand>
                <InsertCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="False">
                    <CommandText>INSERT INTO [dbo].[Partners] ([PartnerId], [PartnerName], [TransportType]) VALUES (@PartnerId, @PartnerName, @TransportType);
SELECT PartnerId, PartnerName, TransportType FROM Partners WHERE (PartnerId = @PartnerId)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="False" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@PartnerId" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="PartnerId" SourceColumnNullMapping="False" SourceVersion="Current">
                      </Parameter>
                      <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@PartnerName" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="PartnerName" SourceColumnNullMapping="False" SourceVersion="Current">
                      </Parameter>
                      <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@TransportType" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="TransportType" SourceColumnNullMapping="False" SourceVersion="Current">
                      </Parameter>
                    </Parameters>
                  </DbCommand>
                </InsertCommand>
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="False">
                    <CommandText>SELECT PartnerId, PartnerName, TransportType FROM dbo.Partners</CommandText>
                    <Parameters>
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
                <UpdateCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="False">
                    <CommandText>UPDATE [dbo].[Partners] SET [PartnerId] = @PartnerId, [PartnerName] = @PartnerName, [TransportType] = @TransportType WHERE (([PartnerId] = @Original_PartnerId) AND ((@IsNull_TransportType = 1 AND [TransportType] IS NULL) OR ([TransportType] = @Original_TransportType)));
SELECT PartnerId, PartnerName, TransportType FROM Partners WHERE (PartnerId = @PartnerId)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="False" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@PartnerId" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="PartnerId" SourceColumnNullMapping="False" SourceVersion="Current">
                      </Parameter>
                      <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@PartnerName" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="PartnerName" SourceColumnNullMapping="False" SourceVersion="Current">
                      </Parameter>
                      <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@TransportType" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="TransportType" SourceColumnNullMapping="False" SourceVersion="Current">
                      </Parameter>
                      <Parameter AllowDbNull="False" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_PartnerId" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="PartnerId" SourceColumnNullMapping="False" SourceVersion="Original">
                      </Parameter>
                      <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_TransportType" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="TransportType" SourceColumnNullMapping="True" SourceVersion="Original">
                      </Parameter>
                      <Parameter AllowDbNull="True" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_TransportType" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="TransportType" SourceColumnNullMapping="False" SourceVersion="Original">
                      </Parameter>
                    </Parameters>
                  </DbCommand>
                </UpdateCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="PartnerId" DataSetColumn="PartnerId" />
              <Mapping SourceColumn="PartnerName" DataSetColumn="PartnerName" />
              <Mapping SourceColumn="TransportType" DataSetColumn="TransportType" />
            </Mappings>
            <Sources>
              <DbSource ConnectionRef="BizTalkPartnersConnectionString (Settings)" DbObjectName="BizTalkPartners.dbo.Partners" DbObjectType="Table" GenerateMethods="Get" GenerateShortCommands="True" GeneratorGetMethodName="GetDataByPartnerId" GeneratorSourceName="FillBy" GetMethodModifier="Public" GetMethodName="GetDataByPartnerId" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="True" UserGetMethodName="GetDataByPartnerId" UserSourceName="FillBy">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="True">
                    <CommandText>SELECT     PartnerId, PartnerName, TransportType
FROM         Partners
WHERE     (PartnerId = @PartnerId)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="False" AutogeneratedName="PartnerId" ColumnName="PartnerId" DataSourceName="BizTalkPartners.dbo.Partners" DataTypeServer="varchar(50)" DbType="AnsiString" Direction="Input" ParameterName="@PartnerId" Precision="0" ProviderType="VarChar" Scale="0" Size="50" SourceColumn="PartnerId" SourceColumnNullMapping="False" SourceVersion="Current">
                      </Parameter>
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </Sources>
          </TableAdapter>
        </Tables>
        <Sources>
        </Sources>
      </DataSource>
    </xs:appinfo>
  </xs:annotation>
  <xs:element name="PartnersDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:Generator_UserDSName="PartnersDataSet" msprop:Generator_DataSetName="PartnersDataSet">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Partners" msprop:Generator_UserTableName="Partners" msprop:Generator_RowDeletedName="PartnersRowDeleted" msprop:Generator_TableClassName="PartnersDataTable" msprop:Generator_RowChangedName="PartnersRowChanged" msprop:Generator_RowClassName="PartnersRow" msprop:Generator_RowChangingName="PartnersRowChanging" msprop:Generator_RowEvArgName="PartnersRowChangeEvent" msprop:Generator_RowEvHandlerName="PartnersRowChangeEventHandler" msprop:Generator_TablePropName="Partners" msprop:Generator_TableVarName="tablePartners" msprop:Generator_RowDeletingName="PartnersRowDeleting">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PartnerId" msprop:Generator_UserColumnName="PartnerId" msprop:Generator_ColumnPropNameInRow="PartnerId" msprop:Generator_ColumnVarNameInTable="columnPartnerId" msprop:Generator_ColumnPropNameInTable="PartnerIdColumn">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="50" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="PartnerName" msprop:Generator_UserColumnName="PartnerName" msprop:Generator_ColumnPropNameInRow="PartnerName" msprop:Generator_ColumnVarNameInTable="columnPartnerName" msprop:Generator_ColumnPropNameInTable="PartnerNameColumn" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="TransportType" msprop:Generator_UserColumnName="TransportType" msprop:Generator_ColumnPropNameInRow="TransportType" msprop:Generator_ColumnVarNameInTable="columnTransportType" msprop:Generator_ColumnPropNameInTable="TransportTypeColumn" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="50" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
    <xs:unique name="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:Partners" />
      <xs:field xpath="mstns:PartnerId" />
    </xs:unique>
  </xs:element>
</xs:schema>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Norway Norway
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions