I have a situation were I need to reference a schema in two different BizTalk applications.
我有一种情况是我需要在两个不同的BizTalk应用程序中引用一个模式。
I could either:
我可以:
Put the schema in one application and make the other applications have a reference to it.
将模式放在一个应用程序中,并使其他应用程序具有对它的引用。
OR
Put the schema in a common application and all other applications have a reference to this common application.
将模式放在一个通用应用程序中,所有其他应用程序都引用此常见应用程序。
However, in both the above cases if there are any changes to the schema I end up having to rebuild/redeploy all the applications having a reference to the schemal. Is there a better way of organizing the applications?
但是,在上述两种情况下,如果模式有任何更改,我最终必须重新构建/重新部署所有引用了schemal的应用程序。有没有更好的组织应用程序的方法?
3 个解决方案
#1
From the Microsoft Biztalk Operations Guide:
来自Microsoft Biztalk操作指南:
Deploy shared artifacts in a separate application - If artifacts are going to be shared by two or more applications, deploy the shared artifacts into a separate application. For example, if two applications share a schema, place the schema in a separate application. We recommend this because only one artifact in a BizTalk group can have a single locally unique identifier (LUID). A LUID consists of the artifact name and optionally other attributes. If you include an artifact in one application, and then create a reference to it from another application, the referring application may not function correctly when you stop the application containing the artifact. This best practice applies to all artifact types except for files, such as Readme files and scripts, which are added to the application as a File type of artifact. This is because more than one file artifact with the same name can be deployed in a BizTalk group. Therefore, you can use a file having the same name in two or more applications. In this case, stopping one application will not impact the other application. For more information about adding file artifacts, see "How to Add a File to an Application" in BizTalk Server 2006 R2 Help at http://go.microsoft.com/fwlink/?LinkId=106818.
在单独的应用程序中部署共享工件 - 如果工件将由两个或多个应用程序共享,请将共享工件部署到单独的应用程序中。例如,如果两个应用程序共享架构,请将架构放在单独的应用程序中。我们建议这样做,因为BizTalk组中只有一个工件可以具有单个本地唯一标识符(LUID)。 LUID由工件名称和可选的其他属性组成。如果在一个应用程序中包含工件,然后从另一个应用程序创建对它的引用,则在停止包含工件的应用程序时,引用应用程序可能无法正常工作。此最佳实践适用于除文件之外的所有工件类型,例如自述文件和脚本,这些文件作为工件的文件类型添加到应用程序中。这是因为可以在BizTalk组中部署多个具有相同名称的文件工件。因此,您可以在两个或多个应用程序中使用具有相同名称的文件。在这种情况下,停止一个应用程序不会影响其他应用程序。有关添加文件工件的详细信息,请参阅“BizTalk Server 2006 R2帮助”中的“如何将文件添加到应用程序”,网址为http://go.microsoft.com/fwlink/?LinkId=106818。
The schemas going in the shared app really shouldn't change as they're shared and this is a major event. If you are adding schemas or modifying existing maps, there is no need to rebuild old apps. You may have to recycle dependent host instances to get them to refresh their in memory copies of the dll. Otherwise should be 95% hassle free.
进入共享应用程序的模式确实不应该随着它们的共享而改变,这是一个重大事件。如果要添加模式或修改现有映射,则无需重建旧应用程序。您可能必须回收依赖的主机实例,以使它们刷新它们在内存中的dll副本。否则应该95%无忧无虑。
#2
We put our common schemas and functionality into a separate application.
我们将常用模式和功能放入单独的应用程序中。
#3
I am not sure im understanding your question, so correct me if i am off base.
我不确定我是否理解你的问题,所以如果我不在基础,请纠正我。
You should organize your schemas as their own assembly that can be independently deployed to all the applications that need it. They can then be referenced by other projects during development. After deployment if changes are made to the schemas; the schema assembly just has to be updated on the server; the reference to the schema from the applications will be maintained.
您应该将模式组织为自己的程序集,可以将其独立部署到需要它的所有应用程序。然后,它们可以在开发期间被其他项目引用。部署后,如果对模式进行了更改;架构程序集只需要在服务器上更新;将保留对应用程序中模式的引用。
hope this helps.
希望这可以帮助。
#1
From the Microsoft Biztalk Operations Guide:
来自Microsoft Biztalk操作指南:
Deploy shared artifacts in a separate application - If artifacts are going to be shared by two or more applications, deploy the shared artifacts into a separate application. For example, if two applications share a schema, place the schema in a separate application. We recommend this because only one artifact in a BizTalk group can have a single locally unique identifier (LUID). A LUID consists of the artifact name and optionally other attributes. If you include an artifact in one application, and then create a reference to it from another application, the referring application may not function correctly when you stop the application containing the artifact. This best practice applies to all artifact types except for files, such as Readme files and scripts, which are added to the application as a File type of artifact. This is because more than one file artifact with the same name can be deployed in a BizTalk group. Therefore, you can use a file having the same name in two or more applications. In this case, stopping one application will not impact the other application. For more information about adding file artifacts, see "How to Add a File to an Application" in BizTalk Server 2006 R2 Help at http://go.microsoft.com/fwlink/?LinkId=106818.
在单独的应用程序中部署共享工件 - 如果工件将由两个或多个应用程序共享,请将共享工件部署到单独的应用程序中。例如,如果两个应用程序共享架构,请将架构放在单独的应用程序中。我们建议这样做,因为BizTalk组中只有一个工件可以具有单个本地唯一标识符(LUID)。 LUID由工件名称和可选的其他属性组成。如果在一个应用程序中包含工件,然后从另一个应用程序创建对它的引用,则在停止包含工件的应用程序时,引用应用程序可能无法正常工作。此最佳实践适用于除文件之外的所有工件类型,例如自述文件和脚本,这些文件作为工件的文件类型添加到应用程序中。这是因为可以在BizTalk组中部署多个具有相同名称的文件工件。因此,您可以在两个或多个应用程序中使用具有相同名称的文件。在这种情况下,停止一个应用程序不会影响其他应用程序。有关添加文件工件的详细信息,请参阅“BizTalk Server 2006 R2帮助”中的“如何将文件添加到应用程序”,网址为http://go.microsoft.com/fwlink/?LinkId=106818。
The schemas going in the shared app really shouldn't change as they're shared and this is a major event. If you are adding schemas or modifying existing maps, there is no need to rebuild old apps. You may have to recycle dependent host instances to get them to refresh their in memory copies of the dll. Otherwise should be 95% hassle free.
进入共享应用程序的模式确实不应该随着它们的共享而改变,这是一个重大事件。如果要添加模式或修改现有映射,则无需重建旧应用程序。您可能必须回收依赖的主机实例,以使它们刷新它们在内存中的dll副本。否则应该95%无忧无虑。
#2
We put our common schemas and functionality into a separate application.
我们将常用模式和功能放入单独的应用程序中。
#3
I am not sure im understanding your question, so correct me if i am off base.
我不确定我是否理解你的问题,所以如果我不在基础,请纠正我。
You should organize your schemas as their own assembly that can be independently deployed to all the applications that need it. They can then be referenced by other projects during development. After deployment if changes are made to the schemas; the schema assembly just has to be updated on the server; the reference to the schema from the applications will be maintained.
您应该将模式组织为自己的程序集,可以将其独立部署到需要它的所有应用程序。然后,它们可以在开发期间被其他项目引用。部署后,如果对模式进行了更改;架构程序集只需要在服务器上更新;将保留对应用程序中模式的引用。
hope this helps.
希望这可以帮助。