Reliable RPC

#### Search Results

Search

# Reliable RPC

- Allgemeine Informationen zu Reliable RPC

- Reliable RPC auf der Natural RPC-Client-Seite

- Reliable RPC auf der Natural RPC Server-Seite

- Status von Reliable RPC-Nachrichten anzeigen

## 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 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.

Um `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.

Um `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.

Um `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