Assembly no soportado: Microsoft.BizTalk.Databases.dll

Microsoft.BizTalk.Databases.dll es un assembly no soportado por Microsoft en el framework de BizTalk Sever que provee funcionalidad para consultar los servidores existentes en la red y las bases de datos existentes en estos. Para ello este assembly provee 5 clases: BizTalkDatabaseInfo, Database, DatabaseCollection, Server, y ServerCollection.

Por ejemplo, para consultar los servidores de SQL Server existentes se puede utilizar las clases ServerCollection y Server.

foreach

(string name in Microsoft.BizTalk.Databases.ServerCollection.GetSqlServerNames())
{
Microsoft.BizTalk.Databases.Server server = new Microsoft.BizTalk.Databases.Server(name);
System.Console.WriteLine("Server name: " + server.Name);
System.Console.WriteLine("Platform Identifier: " + server.PlatformIdentifier.ToString());
System.Console.WriteLine("Type: " + server.Type.ToString());
System.Console.WriteLine("Version: " + server.Version.ToString());
}

Y para consultar las bases de datos de cada servidor basta con utilizar el siguiente código, así mismo por cada base de datos es puede consultar si pertenece o no a BizTalk Server:

Microsoft.BizTalk.Databases.Server server = new Microsoft.BizTalk.Databases.Server("server_name");
bool isBtsDb = true;
foreach (Microsoft.BizTalk.Databases.Database database in server.GetDatabaseCollection())
{
System.Console.WriteLine("Database: " + database.Name);
   try
   {
      isBtsDb = database.IsBizTalkDatabase;
if ( isBtsDb )
System.Console.WriteLine("///// Begin - BizTalk Database ");
   }
   catch
   {
isBtsDb = false;
   }
System.Console.WriteLine("Is BizTalk database: " + isBtsDb.ToString());
if (isBtsDb)
   {
System.Console.WriteLine("BizTalk Db name: " + database.BizTalkDatabaseInfo.Name);
System.Console.WriteLine("BizTalk Db version: " + database.BizTalkDatabaseInfo.Version.ToString());
System.Console.WriteLine("BizTalk Db description: " + database.BizTalkDatabaseInfo.Description);
System.Console.WriteLine("///// End - BizTalk Database ");
   }
}

Nota: aunque se puede consultar si una base de datos pertenece o no a BizTalk Server, esta funcionalidad no es valida y solo se presenta en el código a nivel de ejemplo. Lo anterior se da por que al consultar la información de la base de datos solo revisa la ManagementBizTalkDb y no otras como BizTalkMsgbDb.

Autor: Carlos Medina

Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho