Wenn Ihr Programm einen Datensatz in einer E/A-Operation verwendet, geht EGL davon aus, dass die datensatzspezifische Variable 'Datensatzname.resourceAssociation' den Namen der physischen Datei enthält, die den Datensatz enthält (sofern die betreffende Variable den entsprechenden Dateityp unterstützt).
EGL initialisiert die Variable entsprechend dem ResourceAssociation-Abschnitt, der zur Generierungszeit verwendet wird. Weitere Informationen finden Sie unter ++ Ressourcenzuordnungsabschnitte. Sie können das Objekt Ihrer E/A-Operationen zur Ausführungszeit ändern, indem Sie einen anderen Wert in die Variable 'Datensatzname.resourceAssociation' stellen.
In den meisten Fällen müssen Sie die Syntax 'Datensatzname.resourceAssociation' verwenden. Wenn EGL den gewünschten Datensatz ermitteln kann, brauchen Sie den Teil 'Datensatzname' nicht anzugeben, wie in den folgenden Fällen:
Der Wert, den Sie in 'Datensatzname.resourceAssociation' versetzen, muss ein gültiger Systemressourcenname für den System- und Dateityp sein, die Sie beim Generieren des Programms angegeben haben. Wenn mehr als ein Datensatz denselben Dateinamen angibt und Sie 'resourceAssociation' für einen beliebigen Datensatz mit diesem Dateinamen ändern, wird der Wert von 'resourceAssociation' für alle Datensätze im Programm geändert, die denselben Dateinamen aufweisen.
Um die Datei zu schließen, die der aktuellen Einstellung von 'resourceAssociation' zugeordnet ist, verwenden Sie die Anweisung 'close'. EGL schließt automatisch alle offenen Dateien, wenn eine Ausführungseinheit endet oder eine Anweisung 'converse' im Segmentmodus auftritt.
In COBOL-Umgebungen wandelt EGL den Inhalt von 'resourceAssociation' in Großbuchstaben um, bevor dieser Inhalt für den Zugriff auf eine Datei verwendet wird. Der Wert, den Sie in 'resourceAssociation' stellen, bleibt zu Vergleichszwecken jedoch unverändert.
Wenn mehrere Programme eine Systemressource gemeinsam nutzen, muss jedes Programm 'resourceAssociation' entsprechend setzen, um auf dieselbe Ressource zu verweisen. Wenn zwei Programme in einer Ausführungseinheit auf dieselbe logische Datei zugreifen, muss jedes Programm 'resourceAssociation' zur Generierungszeit auf denselben Systemressourcennamen setzen, um sicherzustellen, dass beide Programme zur Ausführungszeit auf dieselbe Systemressource zugreifen.
Wenn zwei Programme denselben EGL-Dateinamen verwenden, muss jede der datensatzspezifischen Variablen 'resourceAssociation' denselben Wert enthalten. Andernfalls wird die zuvor geöffnete Systemressource geschlossen, wenn eine neue Ressource geöffnet wird.
Der Systemressourcenname für WebSphere MQ-Datensätze definiert den Namen des WS-Managers und den Warteschlangennamen. Geben Sie den Namen im folgenden Format an:
Name_des_WS-Managers:Warteschlangenname
Wie im Beispiel gezeigt, werden die Namen durch einen Doppelpunkt voneinander getrennt. Sie können jedoch 'Name_des_WS-Managers' und den Doppelpunkt auslassen. Der Systemressourcennamen ist der Anfangswert für das datensatzspezifische Feld 'resourceAssociation' und gibt die Standardwarteschlange an, die dem Datensatz zugeordnet ist. Weitere Informationen finden Sie unter Zugriff auf WebSphere MQ-Nachrichtenwarteschlangen.
| Plattform | Problem |
|---|---|
| CICS für z/OS |
|
| IMS BMP | IMS BMP unterstützt dieselben Dateitypen, die für IMS/VS unterstützt werden, und zwar zusätzlich zu denjenigen Typen, die für z/OS Batch unterstützt werden. |
| IMS/VS |
|
| iSeries COBOL | Der Dateityp (fileType) muss 'seq' (sequenziell) oder 'vsam'
sein.
Sie können den Wert wie folgt in 'resourceAssociation' versetzen:
Wenn Sie den Wert in
'resourceAssociation' ändern, funktioniert der
iSeries-Befehl OVRDBF wie folgt:
Der in 'resourceAssociation' gesetzte Wert wird von der Aufrufebene aus weitergegeben und für alle untergeordneten Aufrufebenen geändert. Der Wert wird nicht weitergegeben, wenn die Datei zuvor vom Programm geöffnet wurde. |
| MQSeries | Der Systemressourcenname für WebSphere MQ-Datensätze definiert den Namen des WS-Managers und den Warteschlangennamen. Geben Sie den Namen in folgendem Format an:
Wie im Beispiel gezeigt, werden die Namen durch einen Doppelpunkt voneinander getrennt. Sie können jedoch 'Name_des_WS-Managers' und den Doppelpunkt auslassen. Der Systemressourcennamen wird als Anfangswert für das datensatzspezifische Feld 'resourceAssociation' verwendet und gibt die Standardwarteschlange an, die dem Datensatz zugeordnet ist. |
| z/OS Batch |
|
Das folgende Beispiel zeigt die Zuordnung einer Datei zur Variablen 'resourceAssociation':
if (process == 1)
myrec.resourceAssociation = "myFile.txt";
else
myrec.resourceAssociation = "myFile02.txt";
end