Die API für Konfigurationsmanager-Proxy-Subskriptionen

Dies ist ein Teil der übergeordneten Task des Entwickelns von Konfigurationsmanager-Proxy-Anwendungen, und zwar handelt es sich hier um eine der erweiterten Funktionen des CMPs.

Mit Hilfe des CMPs können Sie eine Gruppe von aktiven Subskriptionen in der Domäne anzeigen und löschen. Im folgenden Beispiel werden Informationen zu allen Subskriptionen für Themen, deren Namen mit der Zeichenfolge "shares" beginnen, angezeigt.
import java.util.Enumeration;
import com.ibm.broker.config.proxy.*;

public class QuerySubscriptions {

  public static void main(String[] args) {

    ConfigManagerProxy cmp = null;
    try {
      ConfigManagerConnectionParameters cmcp =
         new MQConfigManagerConnectionParameters(
           "localhost",
           1414,
           "");
      cmp = ConfigManagerProxy.getInstance(cmcp);
    } catch (ConfigManagerProxyException cmpex) {
      System.out.println("Error connecting: "+cmpex);
    }
        
    if (cmp != null) {
      System.out.println("Connected to Config Manager!");
      querySubscriptionsByTopic(cmp, "shares%");
      cmp.disconnect();
    }
  }

  private static void querySubscriptionsByTopic(
    ConfigManagerProxy cmp,
    String topic)
  {
    try {
      SubscriptionsProxy matchingSubscriptions =
        cmp.getSubscriptions(topic, // nach Thema filtern
                             null, // nicht nach Broker filtern
                             null, // nicht nach Benutzername filtern
                             null, // nicht nach Subskriptionspunkt filtern
                             null, // kein Startdatum
                             null); // kein Enddatum
            
      Enumeration e = matchingSubscriptions.elements();
      int matches = matchingSubscriptions.getSize();
      System.out.println("Found "+matches+" matches:");

      while (e.hasMoreElements()) {
        Subscription thisSub = (Subscription)e.nextElement();
        System.out.println("-----");
        System.out.println("Broker="+thisSub.getBroker());
        System.out.println("Topic="+thisSub.getTopicName());
        System.out.println("Client="+thisSub.getClient());
        System.out.println("Filter="+thisSub.getFilter());
        System.out.println("Reg date="
          +thisSub.getRegistrationDate());
        System.out.println("User="+thisSub.getUser());
        System.out.println("Sub point="
          +thisSub.getSubscriptionPoint());
      }
    } catch (ConfigManagerProxyException e) {
      e.printStackTrace();
    }
  }
}

Die Methode zum Abfragen der Gruppe der aktiven Subskriptionen ist ConfigManagerProxy.getSubscriptions(). Diese Methode definiert die Abfrage, die zum Filtern der Subskriptionen verwendet wird. Die Parameter Thema, Broker, Benutzer-ID und Subskriptionspunkt sind Zeichenfolgen, die das Zeichen % als Platzhalterzeichen verwenden.

Das Startdatum und das Enddatum sind Parameter des Typs Gregorianischer Kalender und können dazu verwendet werden, das Registrierungsintervall der entsprechenden Subskriptionen einzugrenzen. Wenn für einen der Parameter dieser Methode ein Nullwert oder im Fall eines Zeichenarguments ein Leerwert angeben wird, hat dies zur Folge, dass nicht nach diesem Attribut gefiltert wird.

Im vorherigen Beispiel ist der einzige Parameter der Methode, für den kein Nullwert bzw. Leerwert angegeben wurde, der Parameter Thema. Mittels der Angabe shares% wird der CMP dazu aufgefordert, alle Subskriptionen zurückzugeben, deren Themenname mit "shares" beginnt.

Von dieser Methode wird eine Instanz von SubscriptionsProxy zurückgegeben, die die Ergebnisse der Abfrage enthält. Wegen der Vererbung von AdministeredObject an diese Klasse werden die Attribute dieses Objekts vom Konfigurationsmanager asynchron bereitgestellt. Deshalb kann es sein, dass die Methoden zur Abfrage der Attribute vorübergehend blockiert werden, während der CMP auf die Informationen wartet.

Beachten Sie, dass es sich beim Subscription-Objekt, das für einen einzelnen Treffer der Abfrage steht, um eine kleine Datenstruktur handelt, die der Einfachheit halber vom SubscriptionsProxy-Objekt verwendet wird und als solche weder blockieren noch Ausnahmebedingungen ausgeben kann.

Obwohl sie dem Typ Verwaltetes Objekt angehören, können für SubscriptionsProxy-Objekte keine Empfangsprogramme für verwaltete Objekte registriert werden. Wenn also die Abfrageergebnisse vom Konfigurationsmanager zurückgegeben werden, werden Sie nicht darüber benachrichtigt, ob es Änderungen in der Gruppe der den Kriterien entsprechenden Subskriptionen gibt, es sei denn, Sie übergeben die Abfrage erneut. Die Konsequenz dieses Verhaltens ist, dass die Ergebnisse von Subskriptionsabfragen nur zum Zeitpunkt der ursprünglichen Abfrage garantiert korrekt sind.

Subskriptionen können unter Verwendung der Methode SubscriptionsProxy.deleteSubscriptions() gelöscht werden. Da SubscriptionsProxy-Objekten keine Empfangsprogramme für verwaltete Objekte zugeordnet werden können, wird das Ergebnis einer solchen Aktion für die Empfangsprogramme des ConfigManagerProxy-Objekts veröffentlicht.

Zugehörige Tasks
Umgebung für das Entwickeln und Ausführen von Konfigurationsmanager-Proxy-Anwendungen konfigurieren
Erweiterte Funktionen des Konfigurationsmanager-Proxys
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ae33120_