Aller au contenu

Message d'erreur IBM i (AS/400)

CPF3241

L'unité de stockage demandée pour le fichier &1 est incorrecte.

Gravité 40 · Fin anormale du programme ou de la fonction

Cause

L'opération demandée n'a pu être effectuée pour le fichier &1 de la bibliothèque &2 (code raison &3). Les différents codes raison sont les suivants : 1 - L'unité de stockage indiquée n'existe pas dans le système. 2 - L'unité de stockage indiquée est en conflit avec l'allocation du pool de mémoire secondaire (ASP) pour des objets créés dans la bibliothèque &2.

Que faire

En fonction du code raison, effectuez les opérations suivantes : 1 - Aucune action n'est requise dans le cas de la création d'un fichier physique ou logique car le fichier a été créé sur une autre unité de stockage disponible. Si le fichier physique ou logique doit impérativement être créé sur l'unité de stockage indiquée, supprimez le fichier (commande DTLF), supprimez le paramètre UNIT ou remplacez-le par une unité de stockage correcte, puis renouvelez votre demande. Si vous avez demandé la modification d'un fichier physique, supprimez le paramètre UNIT ou remplacez-le par une unité de stockage système correcte, puis renouvelez votre demande. 2 - Aucune action n'est requise dans le cas de la création d'un fichier physique ou logique car le fichier a été créé dans l'ASP de la bibliothèque &2. Toutefois, si ce fichier ne doit pas se trouver dans l'ASP de la bibliothèque &2, supprimez-le (commande DLTF), remplacez la bibliothèque par une bibliothèque ne se trouvant pas dans un ASP utilisateur, puis renouvelez votre demande. Si vous avez demandé la modification d'un fichier, supprimez le paramètre UNIT, puis renouvelez votre demande.

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...

VariableTypeLongueur
&1 *CHAR 10
&2 *CHAR 10
&3 *BIN 2

Sur votre IBM i

Afficher la description complète du message :

DSPMSGD RANGE(CPF3241) MSGF(QSYS/QCPFMSG)

L'intercepter dans un programme CL, quand il est envoyé comme message d'échappement :

MONMSG MSGID(CPF3241) EXEC(DO)
  /* traitement de l'erreur */
ENDDO