In der Registrierungsphase ermittelt der Broker, welche Ressourcen verfügbar sind und welche LIL-Dateien diese bereitstellen. In diesem Fall handelt es sich bei den verfügbaren Ressourcen um Knoten. Diese Phase beginnt mit dem Start einer Ausführungsgruppe. Beim Start einer Ausführungsgruppe werden die LIL-Dateien geladen. Der Broker untersucht sie darauf, welche Ressourcen sie bereitstellen können.
In der Registrationsphase wird eine CciFactory-Struktur erstellt, wenn der benutzerdefinierte Knoten cniCreateNodeFactory aufruft.
Eine Instanz eines benutzerdefinierten Empfangsknotens wird erstellt, wenn mit dem Befehl mqsistart der Ausführungsgruppenprozess gestartet bzw. erneut gestartet wird bzw. ein mit dem Knoten verknüpfter Nachrichtenfluss implementiert wird.
In dieser Phase wird die Struktur 'CciTerminal' erstellt. Dies erfolgt beim Aufruf von 'cniCreateTerminal'.
Die Verarbeitungsphase beginnt mit dem Aufruf der Funktion cniRun durch den Broker. Mit Hilfe der Funktion cniRun ermittelt der Broker, auf welche Weise die Nachrichtenverarbeitung erfolgen muss, u. a. die Ermittlung, in welcher Domäne eine Nachricht definiert ist sowie der Aufruf des entsprechenden Parsers für die Domäne.
Aus den Thread-Pool des Nachrichtenflusses wird ein Thread abgerufen und in der Methode 'run' des Empfangsknotens gestartet. Der Thread stellt eine Verbindung zum Warteschlangenmanager des Brokers her und erhält diese während seiner gesamten Lebensdauer aufrecht. Nachdem ein Thread angelegt worden ist, geht der Knoten in eine Nachrichtenverarbeitungsschleife, solange er auf das Eintreffen einer Nachricht wartet. In der Schleife bleibt er, bis eine Nachricht eingetroffen ist. Wurde für den Nachrichtenfluss die Verwendung mehrerer Threads konfiguriert, ist der Thread-Versand aktiviert.
Die Nachrichtendaten können jetzt weitergegeben werden.
Vernichtet wird ein benutzerdefinierter Empfangsknoten, wenn der Nachrichtenfluss erneut implementiert wird bzw. wenn mit mqsistop der Ausführungsgruppenprozess gestoppt wird. Sie können den Knoten durch Implementierung der Funktion cniDeleteNodeContext vernichten.
Wird ein benutzerdefinierter Knoten auf eine dieser Weisen vernichtet, sollte vom Knoten verwendeter Speicher sowie Ressourcen (z. B. Sockets) freigegeben werden.