PDA

View Full Version : Datensicherung USRSPC



harkne
27-02-08, 09:34
Hallo zusammen,

ich habe folgendes Problem.

Ich möchte bei einem SAVLIB mit dem Parameter OMITOBJ Objekte auschliessen. Allerdings lässt der Parameter "nur" 300 Objekte zu. Jetzt habe ich gesehen das man *USRSPC angeben kann. Ich habe noch nicht mit USRSPC gearbeitet. Deshalb jetzt meine Fragen:

1. kann ich im USRSPC für den Parameter überhaupt mehr als 300 Objekte angeben oder bleibt die Beschränkung auch im USRSPC ?
2. gibt es andere Möglichkeiten als mit API in den USRSPC zu schreiben ?

Vielen Dank im Voraus

Fuerchau
27-02-08, 09:51
Es kann nur als zu übergehendes Objekt die Art *USRSPC angegeben werden.
Damit ist nicht gemeint, dass man eine Liste der Objekte in einem USRSPC angeben kann.

Für USRSPC-Verarbeitung gibt es nur API's bzw. noch den Zugriff über Pointer.

Ansonsten würde ich mir über das Lib-Design Gedanken machen und alle zu übergehenden Objekte in eine andere Lib stellen.

harkne
27-02-08, 10:02
Ich glaube da muss ich jetzt widersprechen, denn im Parameter OMITOBJ in der Bedienerhilfe steht folgender Text:

Die Objekte, die in dem Benutzeradressbereich festgelegt sind, der für den Parameter Benutzeradressbereich f. Befehl (CMDUSRSPC) angegeben wurde, sind von der Sicherungsoption ausgeschlossen

Die Hilfe verstehe ich so dass dort die Objekte die ausgeschlossen werden sollen angegeben werden können

Pikachu
27-02-08, 11:37
Der Einzelwert *USRSPC für den Parameter OMITOBJ ist wohl neu. Wenn man ihn eingibt, erscheint der Parameter CMDUSRSPC. In der Hilfe zu diesem Parameter steht dann noch genaueres zum Aufbau und zur Anzahl der Objekte in diesem Benutzeradreßbereich.

Im Parameter "Zu übergehende Objekte" (OMITOBJ) kannst du aber auch generische Objektnamen verwenden. Vielleicht kommst du damit dann doch mit höchstens 300 Objektnamen aus?

Fuerchau
27-02-08, 11:43
Wieder mal was ab V5R4 !?

Pikachu
27-02-08, 11:57
Benutzeradreßbereiche (USRSPC) sind Datenstromdateien (STMF) sehr ähnlich (http://www.itjungle.com/mgo/mgo070903-story01.html). Man kann ihren Inhalt mit DSPF anzeigen lassen und sogar mit EDTF ändern, z.B. EDTF STMF('/QSYS.LIB/Bibliothek.LIB/Name.USRSPC'). Wahrscheinlich läßt sich ihr Inhalt auch mit C-Befehlen lesen und schreiben.

Fuerchau
27-02-08, 13:10
Das liegt weniger an der Art USRSPC als an der Verwendung per IFS-Befehl.

Du kannst viele Objekte auf diese Weise bearbeiten, auch normale PF-Dateien.

USRSPC sind (z.Zt.) auf 16 MB beschränkt und sind anders als Dateien nicht dynamisch erweiterbar.
Hierzu bedarf es dann der API's.

Pikachu
27-02-08, 13:47
Du kannst viele Objekte auf diese Weise bearbeiten, auch normale PF-Dateien.
Kann man mit den Befehlen EDTF und DSPF außer USRSPCs und PFs auch noch andere Objekte bearbeiten? Wie kommt man mit C-Funktionen an die Daten in PFs ran?

Fuerchau
27-02-08, 13:52
Die C-Funktionen sind ganz normal open(), read(), write(), close() oder die entsprechenden fopen() usw.

Zu beachten ist, dass andere Feldtypen als Strings hier nicht unterstützt werden !

Lesen klappt sogut wie immer, beim Schreiben gibt es ggf. Probleme, wenn die Inhalte nicht Feldtyp-konform sind.

Ich mache mir das gerne zu Nutze, da ich z.B. per QSH Ausgaben direkt in eine PF umleite an Stelle erst wieder das IFS zu bemühen.