Aller au contenu

Message d'erreur IBM i (AS/400)

CPF3181

Opération de réorganisation ALWCANCEL(*YES) non admise sur &1 dans la bibliothèque &3, membre &2.

Gravité 30 · Erreur grave

Cause

ALWCANCEL(*YES) n'est pas admis. Le code raison est &4. Les codes raison et leur signification sont les suivants : 01 - Le fichier n'est pas journalisé. ALWCANCEL(*YES) requiert une journalisation. 02 - &1 de la bibliothèque &3 comporte un fichier dépendant doté d'une contrainte référentielle. ALWCANCEL(*YES) n'est pas admis lorsqu'une contrainte d'intégrité référentielle dépendante dotée d'une règle de suppression CASCADE, RESTRICT, SET NULL ou SET DEFAULT est activée. 03 - &1 de la bibliothèque &3 comporte une zone de type liaison de données avec contrôle de liaison de fichier. ALWCANCEL(*YES) n'est pas admis pour les fichiers qui comportent des zones de type liaison de données avec contrôle de liaison de fichier. 04 - Le KEYFILE indiqué est un index LIFO comportant plus de 4000 clés en double.

Que faire

01 - Lancez la journalisation (commande CL STRJRNPF) sur le fichier, puis relancez l'opération de réorganisation. 02 - Un fichier dépendant comportant une contrainte référentielle activée, dotée d'une règle de suppression CASCADE, SET NULL ou SET DEFAULT n'est pas admis. Désactivez la contrainte (commande CL CHGPFCST), puis relancez l'opération de réorganisation. 03 - Un fichier comportant une zone de type liaison de données avec contrôle de liaison de fichier n'est pas admis. Indiquez ALWCANCEL(*NO), puis relancez l'opération de réorganisation. 04 - Un index LIFO ne doit pas être indiqué s'il contient plus de 4000 clés en double. Indiquez ALWCANCEL(*NO), puis relancez l'opération de réorganisation.

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 *CHAR 10
&4 *BIN 2

Sur votre IBM i

Afficher la description complète du message :

DSPMSGD RANGE(CPF3181) MSGF(QSYS/QCPFMSG)

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

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