-
SAVOBJ mit max. 300 Objekten
Hallo zusammen,
ich hab folgendes Problem. Ich muss in einem CL ein SAVOBJ ausführen. Die Objekte die gesichert werden sollen befinden sich in einer Datei. Ich soll die zur Verfügung stehenden 300 Einträge nutzen. Also nicht z.B. 250 mal SAVOBJ ausführen sondern einen SAVOBJ mit den 250 Objekten machen. QCMDEXC soll ich nicht verwenden sondern tatsächlich einen SAVOBJ im CL ausführen.
Hab ich noch eine andere Möglichkeit als 300 Variablen zu definieren ???
Danke für die Hilfe, wobei ich denke das mir hier nicht zu helfen ist.
-
Ohne QCMDEXC geht das gar nicht, da du keine leeren Variablen übergeben kannst.
Wenn du also 300 Variablen verwendest, müssen auch in allen 300 Variablen gültige Objektnamen stehen, sonst wird dein Kommando abgelehnt.
Du benötigst also nicht nur die 300 Variablen, sondern abhängig von der Anzahl Objekte auch 300 verschiedene SAVOBJ-Befehle.
Was spricht also gegen die Verwendung von QCMDEXC um sich den Befehl dynamisch aufzubauen ?
-
Habs gerade selbst bemerkt dass leere Variablen nich zulässig sind. Zum Glück. Jetzt spricht wohl nichts mehr gegen den QCMDEXC
Danke für die Hilfe
-
Aber warum musst du das so kompliziert machen ?
Kannst du die Objekte nicht vorher in eine andere Lib kopieren (CRTDUPOBJ) und dann einfach SAVLIB machen ?
-
Warum nicht eine Variable definieren und dort die Objektnamen mit *BCAT hineinstellen?
Ich weiß zwar nicht, wieviele da maximal möglich sind, aber dürfte irgendwo dokumentiert sein.
-
@WWG
Genau diese Variante geht leider nicht, da eine Variable des Kommandos nur genau 1 Objekt benennen darf:
SAVOBJ .. OBJ(&OBJ1 &OBJ2 ...), wobei &OBJ eben nur den Objektnamen beinhalten darf, wenn man Lib's auchnoch will, benötigt man hierzu noch eine eigenen Variable.
SAVOBJ .. OBJ((&LIB/&OBJ1) (&LIB/&OBJ2) ...).
Man beachte nun die doppelte Klammer.
Nimmst du nun nur eine Variable, wird das zur Laufzeit als Fehler abgewiesen, da der Inhalt zu lang ist. Der Parameter ist als Liste von Feldern definiert.
-
Entschuldigung, ich kannte nur das Befehlsformat aus der Uralt-Release V3R2, und da waren qualifizierte Objektnamen noch nicht möglich.
Allerdings halte ich es auch für unschön, Objekte aus unterschiedlichen Bibliotheken auf diese Art zu sichern.
- Werner.
-
Beim SAVOBJ sind für die Objekte keine qualifizierten Objektnamen möglich. Da gibt man die Objekte separat von den Bibliotheken an, in denen sie liegen.
Es ist beim SAVOBJ möglich, das selbe zu sichernde Objekt mehrmals anzugeben. Somit könnte man 300 Variablen definieren, alle mit dem Namen des ersten Objekts vorbelegen, und dann so viele der Variablen mit den Werten aus der Datei belegen, wie Werte vorhanden sind (höchstens 300).
-
@Fuerchau
Auf deine Frage warum so kompliziert ? Und dein Hinweis mit CRTDUPOBJ
Kurzer Hintergrund:
Datensicherung mit Tagesabschluss darf maximal 30 Minuten laufen. Zu dieser Zeit steht das System nicht zur Verfügung. Da der Betrieb 24 Stunden das System braucht, muß also die Ausfallzeit so gering wie möglich sein. Die eine Pause in der Nacht dauert 30 Minuten die uns dann zur Verfügung steht. Das heist es muss Zeit gespart werden wo es geht. Wir haben eine enorm große Datenbibliothek. Deshalb haben wir auch bereits aufgesplittet welche Dateien vor dem Tagesabschluß gesichert werden müssen und die, die in fast jeder Anwendung die Nachts benötigt wird vorkommt. Diese werden dann mit SAVOBJ vor dem Tagesabschluss gesichert aber innerhalb der 30 Minuten. Somit kann ich nicht noch einen CRTDUPOBJ machen der mich auch wieder eine Menge Zeit kostet. Die Sicherung der restlichen Dateien erfolgt nach dem das System wieder zur Verfügung steht, da habe ich dann jede Menge Zeit. Jetzt könnte man wieder vorbringen dass man diese Dateien dann generell in eine andere Bibliothek stellt, aber manche Vorgaben sind ja bekanntlich unumstößlich.
Aber trotzdem vielen Dank für den Hinweis
-
Der schrittweise SAVOBJ könnte aber ggf. auch nicht innerhalb der 30 Minuten zu Ende geführt werden.
Zu beachten ist auf jeden Fall ENDOPT !
Wenn du weißt, dass noch Objekte folgen, solltest du auf *LEAVE ändern und nicht den Default *REWIND belassen.
Sonst muss der folgende SAVOBJ noch erst das logische Ende wieder suchen.
Der letzte SAVOBJ sollte dann *REWIND oder ggf. *UNLOAD enthalten.
Mit dieser Methode schonst du auch das Band (reduziertes umspulen).
Similar Threads
-
By Bodo Roggenkamp in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 13-10-09, 15:05
-
By TARASIK in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 06-10-05, 09:25
-
By nub in forum NEWSboard Drucker
Antworten: 0
Letzter Beitrag: 02-09-05, 13:57
-
By becama in forum IBM i Hauptforum
Antworten: 12
Letzter Beitrag: 11-08-05, 15:05
-
By peter.kinne in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 10-11-04, 10:19
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks