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.
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:
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:
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.
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 |
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:
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.
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 |
Geben Sie im aufrufenden Programm auf der Client-Seite folgendes Statement an:
CALLNAT 'USR6305N' P-FUNC P-MODE P-RC P-MESSAGE
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.
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:
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.
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).
|
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 |
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