Compartir a través de


Navegar por la jerarquía de colecciones COM+

Algunas colecciones se pueden recuperar fácilmente mediante el método GetCollection en el objeto COMAdminCatalog . Este método recupera una colección de "nivel superior"; es decir, una colección como Applications, que es independiente y que es única y no subsumida lógicamente en otra colección.

Sin embargo, muchas colecciones se suman lógicamente en otra colección porque contienen elementos que forman parte de una estructura más grande. Por ejemplo, la colección Components está subsumada o relacionada con la colección Applications porque contiene los componentes instalados en una aplicación COM+ determinada, que corresponde a un elemento de la colección Applications . Las colecciones relacionadas como esta no son únicas; hay una colección Components para cada aplicación distinta.

Por lo tanto, las colecciones se organizan en una estructura jerárquica que corresponde naturalmente a las relaciones lógicas entre los elementos que contienen. Puede encontrar un diagrama de la jerarquía de colecciones en Colecciones de administración de COM+. Para muchos de los elementos que desea configurar mediante los objetos COMAdmin, debe navegar por alguna parte de la jerarquía de colecciones para recuperar el elemento adecuado.

Lo que esto significa en la práctica es que, si desea obtener un elemento de una colección relacionada, primero debe recorrer todas las colecciones de subsuming necesarias de nivel superior. Y para recuperar una colección relacionada, debe recuperar el elemento específico de la colección primaria a la que está relacionada la colección secundaria. Por ejemplo, si desea configurar un elemento correspondiente a un componente en una aplicación COM+ determinada, debe realizar los pasos siguientes:

  1. Obtenga la colección Applications y rellénela.
  2. Enumere el contenido de la colección Applications hasta que llegue al elemento correspondiente a la aplicación COM+ correcta.
  3. Obtenga y rellene la colección Components para esa aplicación COM+ concreta.
  4. Enumere el contenido de la colección Components hasta que llegue al elemento correspondiente al componente correcto.

En el siguiente ejemplo de Microsoft Visual Basic se muestra cómo realizar los pasos anteriores:

On Error GoTo My_Error_Handler

Dim Catalog As COMAdminCatalog 
Set Catalog = CreateObject("COMAdmin.COMAdminCatalog")

' Get the Applications collection and populate it.
Dim Applications As COMAdminCatalogCollection 
Set Applications = Catalog.GetCollection("Applications") 
Applications.Populate

' Get the correct application, "My Application".
Dim AppObject As COMAdminCatalogObject 
For Each AppObject in Applications 
    If AppObject.Name = "My Application" Then 
        Exit For 
    End If
Next 

' Get and populate the Components collection for "My Application".
Dim Components As COMAdminCatalogCollection 
Set Components = Applications.GetCollection("Components", AppObject.Key) 
Components.Populate

' Get the correct component, "My Component".
Dim CompObject As COMAdminCatalogObject 
For Each CompObject in Components 
    If CompObject.Name = "My Component" Then 
        Exit For 
    End If
Next 

En el ejemplo anterior se usan dos métodos GetCollection distintos. El primero lo expone COMAdminCatalog y se usa para obtener una colección de nivel superior, en este caso, "Aplicaciones". El segundo lo expone COMAdminCatalogCollection y se usa para obtener una colección relacionada con la colección actual; indica exactamente qué colección desea pasando el nombre "Components" y el valor de la propiedad Key del objeto primario. El valor de la propiedad Key suele ser un nombre o un GUID que identifica de forma única el objeto; este valor se identifica en la documentación de cada colección.

En el caso más general, debe obtener colecciones relacionadas de forma iterativa hacia abajo en la jerarquía de colecciones hasta que recupere la colección que desee. Los pasos que seguiríamos con el mismo modelo general, repetitivamente. Para obtener una lista completa de las colecciones, consulte Colecciones de administración de COM+.

En algunos casos, es posible que quiera usar un método abreviado la segunda vez que siga una ruta de acceso a través de la jerarquía de colecciones. Puede usar este método solo después de que ya haya almacenado en caché todos los valores clave intermedios. Para obtener más información, consulte ICOMAdminCatalog::GetCollectionByQuery.

Rellenar colecciones COM+

Consulta de colecciones relacionadas disponibles

Recuperación de colecciones en el catálogo COM+