CPF2920
Fichier &1 de &2 incorrect pour KEYFILE.
Gravité 40 · Fin anormale du programme ou de la fonction
Cause
L'erreur s'est produite pour l'une des raisons suivantes :
- le paramètre KEYFILE(*FILE) a été indiqué, alors que le fichier physique à réorganiser n'est pas à accès par clé,
- le fichier indiqué dans KEYFILE n'est pas un fichier logique à accès par clé,
- le fichier indiqué dans KEYFILE est un fichier logique ou un index SQL avec une clause WHERE mais il possède un chemin d'accès de sélection/omission. Un fichier logique possédant ce type de chemin d'accès ne peut pas être indiqué dans ce paramètre.
- le fichier indiqué dans KEYFILE est un fichier logique joint et ne peut, par conséquent, être utilisé dans ce paramètre.
- le fichier indiqué dans KEYFILE est doté d'un chemin d'accès vectoriel codé (or, un fichier avec ce type de chemin d'accès n'est pas admis pour ce paramètre).
- Le fichier physique à réorganiser est protégé par disque miroir pour Db2 Mirror, mais le fichier spécifié au paramètre KEYFILE n'est pas protégé par disque miroir
Que faire
Procédez de l'une des façons suivantes, puis renouvelez votre demande :
- Si le membre à réorganiser n'est pas à accès par clé, indiquez KEYFILE(*NONE) ou une valeur autre que *FILE pour le paramètre KEYFILE.
- Si le membre à réorganiser est à accès par clé, définissez KEYFILE(*FILE) ou indiquez un fichier logique à accès par clé, non joint, sans chemin d'accès de sélection/omission ou sans chemin d'accès vectoriel codé.
- Si le fichier physique à réorganiser est protégé par disque miroir pour Db2 et que le fichier spécifié au paramètre KEYFILE n'est pas protégé par disque miroir, protégez par disque miroir le fichier spécifié au paramètre KEYFILE ou indiquez un fichier qui est protégé par disque miroir.
Variables du message
Quand le système envoie le message, chaque variable est remplacée par une valeur réelle : un nom d'objet, de bibliothèque, un code...
| Variable | Type | Longueur |
|---|---|---|
| &1 | *CHAR |
10 |
| &2 | *CHAR |
10 |
Sur votre IBM i
Afficher la description complète du message :
DSPMSGD RANGE(CPF2920) MSGF(QSYS/QCPFMSG)
L'intercepter dans un programme CL, quand il est envoyé comme message d'échappement :
MONMSG MSGID(CPF2920) EXEC(DO)
/* traitement de l'erreur */
ENDDO