Reliable RPC


Allgemeine Informationen zu Reliable RPC

In der Architektur moderner E-Business-Anwendungen (SOA) gewinnen lose gekoppelte Systeme immer mehr an Bedeutung. Reliable Messaging (Verlässliche Nachrichtenübermittlung) ist eine wichtige Technologie bei dieser Art von Systemen.

Reliable RPC ist die Natural RPC-Implementierung eines Reliable Messaging-Systems. Sie kombiniert die Natural RPC-Technologie mit der Persistenz, die mittels Units of Work (UOWs) implementiert wird, die vom EntireX Broker angeboten werden. Reliable RPC zeichnet sich durch folgende Merkmale aus:

  • Der Natural RPC-Client führt ein CALLNAT-Statement aus, ohne auf eine Antwort des Servers zu warten (die RPC-Nachricht wird im asynchronen Modus gesendet).

  • Ein RPC-Server muss zum Zeitpunkt der Ausführung des CALLNAT nicht aktiv sein.

  • Die Reliable RPC-Nachricht wird im Persistent Store des EntireX Brokers gespeichert, bis ein RPC Server verfügbar ist.

  • Der Natural RPC Server führt den Reliable RPC aus, indem er das angeforderte Subprogramm aufruft, sendet aber keine Antwort an den RPC-Client.

  • Ein Natural RPC-Client kann den Status der gesendeten Reliable RPC-Nachrichten abfragen.

  • Ein Natural RPC-Client kann eine Reliable RPC-Nachricht an einen EntireX RPC-Server senden.

  • Ein Natural RPC Server kann eine Reliable RPC-Nachricht von einem EntireX RPC-Client empfangen.

Reliable RPC diagram

Reliable RPC auf der Natural RPC-Client-Seite

Der Natural RPC-Client für einen Reliable RPC wird auf die gleiche Weise konfiguriert wie bei einem normalen Natural RPC. Dieselbe Natural RPC-Client-Sitzung kann Standard-RPC-Anforderungen (Requests) und zuverlässige RPC-Nachrichten senden.

Damit ein Natural RPC-Client Reliable RPC verwenden kann, muss der Natural RPC-Client die Anwendungsprogrammierschnittstelle USR2071N für eine explizite EntireX Broker-Anmeldung verwenden. Dies bedeutet, dass der RPC/NTRPC-Schlüsselwort-Subparameter ACIVERS auf 2 oder höher gesetzt sein muss.

Reliable RPC wird verwendet, um Nachrichten an einen persistenten EntireX Broker-Dienst zu senden. Die Nachrichten werden durch den Parameterdatenbereich (PDA) des Aufrufers beschrieben und dürfen nur Ausgabeparameter enthalten. Ein Parameter wird auf eine der folgenden Arten als "Ausgabe" definiert:

  • Wenn ein Natural-Interface-Objekt verwendet wird:

    • Setzen Sie im Feld Attr auf dem Bildschirm Interface Object Generation der SYSRPC Utility das Attribut des Parameters auf O (Output/Ausgabe).

    Anmerkung:
    Wenn Ihre Parameterdefinitionen keine Gruppenstrukturen enthalten, müssen Sie vor der Generierung des Interface-Objekts das Attribut COMPAT auf IDL setzen; siehe Interface-Objekte generieren - Allgemeine Aspekte in der SYSRPC Utility-Dokumentation.

  • Wenn kein Natural-Interface-Objekt verwendet wird:

    • Verwenden Sie den Session-Parameter AD=O in dem CALLNAT-Statement.

    Anmerkung:
    Wenn Sie einen EntireX RPC-Server aufrufen wollen und die entsprechende IDL-Datei Gruppenstrukturen enthält, müssen Sie ein Natural Interface-Objekt verwenden, und die Parameterdefinition für das Natural Interface-Objekt muss der Gruppenstruktur der IDL-Datei entsprechen.

  • Wenn Sie ein Natural-Interface-Objekt aus einer IDL-Datei generieren, wird das Attribut des Parameters aus der IDL-Datei übernommen. In diesem Fall darf die IDL-Datei nur Inbound-Parameter (aus Sicht des Servers) enthalten.

Reliable RPC wird zur Laufzeit aktiviert. Der Client muss einen von zwei verschiedenen Modi einstellen, bevor er eine Reliable RPC-Anforderung ausgibt:

  • AUTO_COMMIT

  • CLIENT_COMMIT

Während AUTO_COMMIT jede Nachricht nach dem Senden implizit festschreibt, kann eine Reihe von RPC-Nachrichten, die in einer Arbeitseinheit (Unit of Work, UOW) gesendet werden, im Modus CLIENT_COMMIT explizit festgeschrieben (Commit) oder zurückgenommen (Rollback) werden.

Dazu bietet Natural folgende Anwendungsprogrammierschnittstellen (APIs):

  • Mit der API USR6304N wird der Modus für Reliable RPC eingestellt.

  • Mit der API USR6305N kann eine Arbeitseinheit, die mit CLIENT_COMMIT erstellt wurde, bestätigt (Commit) oder zurückgesetzt (Rollback) werden.

Beginn der AnweisungslisteUm USR6304N zu verwenden:

  1. Kopieren Sie das Subprogramm USR6304N aus der Library SYSEXT in die Library SYSTEM oder in die Steplib Library oder in eine beliebige Anwendung in der Client-Umgebung.

  2. Geben Sie mit dem Statement DEFINE DATA die folgenden Parameter an:

    Parameter I/O Format Beschreibung
    P-FUNC I A01 Funktionscode. Mögliche Werte:
    P (Put) Legt den Modus für Reliable RPC fest. Der Modus gilt für alle nachfolgenden Aufrufe.
    G (Get) Ruft den zuvor festgelegten Modus ab.
    P-MODE I/O N01 Modus für Reliable RPC:
    0 Kein Reliable RPC (Standard-RPC-Ausführung).
    1 Reliable RPC AUTO_COMMIT
    2 Reliable RPC CLIENT_COMMIT
    P-RC O N04 Rückgabecode
    P-MESSAGE O A80 Nachrichtentext
  3. Geben Sie im aufrufenden Programm auf der Client-Seite das folgende Statement an:

    CALLNAT 'USR6304N' P-FUNC P-MODE P-RC P-MESSAGE

Anmerkung:
Der Modus CLIENT_COMMIT kann nicht geändert werden, wenn Reliable RPC-Nachrichten zwar gesendet, aber noch nicht einem Commit oder Roll Back unterzogen wurden.

Beginn der AnweisungslisteUm of USR6305N zu verwenden:

  1. Kopieren Sie das Subprogramm USR6305N aus der Library SYSEXT in die Library SYSTEM oder in die Steplib Library oder in eine beliebige Anwendung in der Client-Umgebung.

  2. Geben Sie mit dem Statement DEFINE DATA die folgenden Parameter an:

    Parameter I/O Format Beschreibung
    P-FUNC I A08 Funktionscode. Mögliche Werte:
    COMMIT Commit der gesendeten zuverlässigen RPC-Nachrichten. Die Nachrichten sind nun für einen RPC-Server verfügbar.
    ROLLBACK Die bereits gesendeten Reliable RPC Nachrichten werden verworfen.
    P-RC O N04 Rückgabecode
    P-MESSAGE O A80 Nachrichtentext
  3. Geben Sie im aufrufenden Programm auf der Client-Seite folgendes Statement an:

    CALLNAT 'USR6305N' P-FUNC P-MODE P-RC P-MESSAGE

Reliable RPC auf der Natural RPC Server-Seite

Der Natural RPC Server für Reliable RPC wird auf dieselbe Weise konfiguriert wie für normales Natural RPC. Dieselbe Natural RPC Server-Sitzung kann Standard-RPC-Anforderungen (Requests) und Reliable RPC-Nachrichten verarbeiten.

Um die Verarbeitung von Reliable RPC-Nachrichten zu ermöglichen, muss der RPC/NTRPC-Schlüsselwort-Subparameter ACIVERS auf 2 oder höher gesetzt werden.

Status von Reliable RPC-Nachrichten anzeigen

Um den Status gesendeter Reliable RPC-Nachrichten anzuzeigen, steht in Natural die Anwendungsprogrammierschnittstelle USR6306N zur Verfügung:

  • Mit USR6306N können Sie den Status aller Reliable RPC-Nachrichten abrufen, die Sie zuvor unter Ihrer Benutzerkennung gesendet haben.

  • USR6306N muss nicht unbedingt innerhalb der Natural-Sitzung aufgerufen werden, in der die RPC-Nachrichten versendet wurden.

  • Wenn USR6306N in einer anderen Natural-Sitzung verwendet wird, muss zunächst die Anwendungsprogrammierschnittstelle USR2071N verwendet werden, um sich mit derselben Benutzerkennung am EntireX Broker anzumelden, mit der die Reliable RPC-Nachrichten versendet wurden.

Die Reliable RPC-Nachrichten werden durch EntireX Broker-Arbeitseinheiten (Units of Work, UOW) implementiert. Die Informationen über Reliable RPC-Nachrichten sind daher Informationen über UOWs.

Beginn der AnweisungslisteUm USR6306N zu verwenden:

  1. Kopieren Sie das Subprogramm USR6306N aus der Library SYSEXT in die Library SYSTEM oder in die Steplib Library oder in eine beliebige Anwendung in der Client-Umgebung.

  2. Geben Sie mit dem DEFINE DATA-Statement die folgenden Parameter an:

    Parameter I/O Format Beschreibung
    P-UOW-ID-IN I A16 ID für die UOW, die abgerufen werden soll. Mögliche Werte:

    Kennung (UOWID) einer Arbeitseinheit (UOW).

    LAST: Die UOW für die letzte Reliable RPC-Nachricht in der aktuellen Natural-Sitzung.

    ALL oder leer: Alle UOWs für den angemeldeten EntireX Broker-Benutzer

    P-USER-ID O A32 Benutzerkennung des Benutzers, der die UOWs erstellt hat.
    P-BROKER-ID O A32 Broker-ID des EntireX Brokers, der die UOWs hostet.
    P-UOW-COUNT O I4 Anzahl der UOWs im P-UOW-INFO-Array.
    P-UOW-INFO (/1:*)     X-Array mit Informationen zu jeder UOW.
    P-UOW-ID O A32 Kennung der UOW.
    P-UOW-STATUS O A10 Status des UOW gemäß EntireX Broker.

    Der Status ist abhängig vom Stand der Verarbeitung und wird vom EntireX Broker zugewiesen.

    P-USERR-STATUS O A32 Benutzerinformationen über die UOW.

    Dies ist typischerweise eine Fehlerinformation, die vom RPC-Server gesetzt wurde.

    P-CREATE-TIME O A32 Erstellungszeitpunkt der UOW laut EntireX Broker.
    P-RC O N04 Rückgabecode
    P-MESSAGE O A80 Nachrichtentext
  3. Geben Sie im aufrufenden Programm auf der Client-Seite das folgende Statement an:

    CALLNAT 'USR6306N' P-UOW-ID-IN P-USER-ID P-BROKER-ID P-UOW-COUNT P-OUW-INFO(*) P-RC P-MESSAGE