> Tech > Écrire du code pour sauvegarder une bibliothèque sur le NAS et la restaurer

Écrire du code pour sauvegarder une bibliothèque sur le NAS et la restaurer

Tech - Par iTPro - Publié le 22 avril 2013
email

Vous pouvez sauvegarder une bibliothèque sur le NAS en codant trois sources.

Écrire du code pour sauvegarder une bibliothèque sur le NAS et la restaurer

La première est une commande Save To NAS (SAVTONAS) qui exploite l’élégante interface basée sur les commandes du System i. La deuxième est le command processing program (CPP) SAVTONASC, qui sauvegarde la bibliothèque spécifiée dans un fichier save (et appelle le troisième programme). La troisième est un programme RPGLE, SAVTONASR,  qui lit dans le fichier save et écrit dans un fichier IFS sur le lecteur NAS monté.

SAVTONAS (CMD) -> SAVTONASC (CLLE) -> SAVTONASR (RPGLE)

La commande SAVTONAS prend deux paramètres. Le premier est une bibliothèque à sauvegarder, le second est un nom de chemin d’accès NFS à distance. Le nom de chemin NFS sera transmis à la commande MOUNT sur le paramètre MFS. Dans notre exemple, la valeur serait HPMediaVault:/shares/Volume1/Backup/. Elle identifie à la fois l’unité NAS (HPMediaVault) et le chemin sur l’unité où les données seront stockées (/shares/Volume1/Backup/).

Le CPP prend les deux mêmes paramètres et effectue plusieurs opérations. Les trois principales consistent à créer un fichier de sauvegarde qui recevra la bibliothèque, sauvegardera la bibliothèque et appellera le programme RPGLE (SAVTONASR).

Lire des enregistrements dans un fichier save, puis les écrire dans un fichier PC est beaucoup plus facile avec RPGLE. Le programme SAVTONASR fait exactement cela. Les enregistrements d’un fichier save ont toujours 528 octets de long. WWSAVF est défini comme un fichier décrit par programme avec des spécifications d’entrée pour placer les 528 octets dans le champ inRec. Au fur et à mesure que le programme boucle au travers de tous les enregistrements dans WWSAVF, chaque enregistrement est écrit dans un fichier PC. Avant que les données ne puissent être écrites dans le fichier PC, celui-ci doit être créé. Les attributs O_CREATE, O_WRONLY et O_SHARE_NONE ordonnent à la fonction file open de la bibliothèque runtime en langage C de créer le fichier s’il n’existe pas déjà, de l’ouvrir pour écriture seulement, et de ne pas partager le fichier open. Les définitions de procédure pour open(), write() et close() sont contenues dans le copy book ifsio_h. Les valeurs spéciales O_CREATE, O_WRONLY et O_SHARE_NONE y sont également définies. Le fichier ifsio_h est l’œuvre de Scott Klement et est disponible sur son site. D’ailleurs, le site web de Scott contient l’explication complète de l’I/O du fichier IFS.

Quand on utilise des routines de bibliothèque runtime en langage C, un point est important : il vous faudra spécifier que le programme RPGLE doit utiliser le répertoire de liage QC2LE. Cela peut se faire de deux manières : via la spécification d’en-tête RPGLE, ou sur la commande compile.

Ces routines d’I/O IFS écrivent directement sur un système de fichiers monté, et donc le fichier est créé sur le NAS et pas sur le System i local. La plupart des erreurs de programmation que vous risquez de rencontrer proviendront de la non-ouverture du fichier PC et du renvoi d’un descripteur de fichier non-zéro à partir de la fonction open(). La procédure ReportError enverra un message de programme contenant le numéro et le texte de l’erreur vers la file d’attente de messages externe, afin qu’un utilisateur de la commande SAVTONAS sache ce qui s’est mal passé.

Écrire du code pour restaurer une bibliothèque à partir du NAS

A quoi servent les fichiers PC si vous ne pouvez pas leur faire confiance pour la reprise. Il est essentiel de prouver la qualité et la valeur des nouveaux fichiers PC.

RSTFRMNAS (CMD) -> RSTFRMNASC (CLLE) -> RSTFRMNASR (RPGLE)

La commande Restore from NAS (RSTFRMNAS ) de la figure 4 prend le nom d’une bibliothèque qui a été sauvegardée et inverse tout le processus. Elle appelle CPP RSTFRMNASC pour créer un fichier save et appelle RSTFRMNASR pour lire les données provenant du fichier PC correspondant et les écrire dans le fichier save. Ensuite, elle fait une commande Restore Library (RSTLIB) en utilisant le fichier save. Et voilà, la bibliothèque est restaurée.

Lors du voyage de retour, le fichier save WWSAVF est ouvert pour la sortie. Il faut donc des spécifications de sortie pour notre fichier décrit par programme au lieu de spécifications d’entrée. Comme nous sommes en train de lire à partir du fichier PC en utilisant la procédure read(), le O_RDONLY est spécifié lors de l’ouverture du fichier PC, au lieu de O_WRONLY.

Téléchargez gratuitement cette ressource

Protection des Données : 10 Best Practices

Protection des Données : 10 Best Practices

Le TOP 10 des meilleures pratiques, processus et solutions de sécurité pour mettre en œuvre une protection efficace des données et limiter au maximum les répercutions d’une violation de données.

Tech - Par iTPro - Publié le 22 avril 2013