Dans toutes les bases de données avec plusieurs processus accédant aux données, des verrous d’enregistrements se produisent. Celles-ci apparaissent dans les alertes que vous recevez des journaux web et des serveurs d’entreprise.
Message : 11812/10172 WRK : Lancement de jdeCallObject jdbodbc. C8416 ODB0000164 – STMT :00 [HY000][-913][2] [IBM][System i Access ODBC Driver][DB2 pour i5/OS]SQL0913 – Ligne ou objet F0101 dans PRODDTA type *FICHIER en usage.
Échec à l’exécution Insert F00022
La récupération a échoué parce que Fichier unique demandé Suivant disponible Unique F00022 a bloqué un autre utilisateur
Sur l’iSeries, vous pouvez utiliser la commande DSPRCDLCK sur la ligne de commande écran vert pour déterminer quels emplois verrouillent une table : bibliothèque/fichier DSPDRCLCK.
Exemple 1 : DSPRCDLCK proddta/f0101 dans cet exemple

Dans ce cas, la même tâche consiste à verrouiller plusieurs enregistrements dans la table. Consultez le JOBLOG pour essayer de déterminer l’adresse IP et l’identifiant utilisateur connectés à la tâche de verrouillage.
Numéro WRKJOB/utilisateur/nom du poste (dans ce cas – WRKJOB 037816/quser/qzdasoinit)
Ensuite, choisissez l’option 10 pour consulter le journal.

Les premières lignes incluent l’adresse IP du PC/serveur connecté ainsi que l’identifiant utilisateur utilisé pour la connexion. Dans ce cas, c’était IP 10.51.8.13 et USER SECOFRN_B. Ici, nous avons eu de la chance, car ce n’était pas une connexion par procuration JD Edwards. Pour ce poste, nous avons pu trouver l’utilisateur qui possède ce profil et contacter directement l’utilisateur, puis mettre fin au travail.
QSQSRVR et QZDASOINIT :
Mais pour la plupart des verrous d’enregistrements, les jobs peuvent être soit QSQSRVR, qui est une connexion locale pour les emplois, soit QZDASOINIT, qui est une connexion provenant d’un autre serveur. Ce sont les emplois dans la base de données iSeries. Ils servent à transmettre les données à d’autres emplois. Pour les tâches QZDASOINIT, l’adresse IP peut être attribuée à un serveur web et l’utilisateur peut être l’utilisateur proxy backend configuré dans EnterpriseOne. La plupart des entreprises n’ont qu’un seul utilisateur proxy, donc vous devrez examiner tous les utilisateurs connectés à l’instance client web E1 pour trouver l’identifiant utilisateur verrouillé. Le serveur peut avoir plusieurs instances, donc vous pourriez devoir parcourir des centaines d’utilisateurs pour trouver l’identifiant utilisateur qui a verrouillé cet enregistrement.
Exemple 2 : DSPRCDLCK proddta/f0011 dans cet exemple

À partir de cet écran, vous pouvez voir deux jobs verrouillant le dossier et un job en attente du dossier. Après avoir examiné le JOBLOG des deux emplois verrouillant le dossier dans ce tableau, il est évident que le travail traité est le même travail, 312664/oneworld/jdenet_k.
JOBLOG du travail QSQSRVR verrouillant le dossier – service 312664/oneworld/jdenet_k.

Après avoir examiné le JOBLOG de la tâche jdenet_k , il s’est avéré qu’il s’agissait d’un noyau CALL OBJECT. Avec le Server Manager, vous pouvez voir les processus sur le serveur d’entreprise et voir quels utilisateurs E1 sont associés à ce noyau.
JOBLOG du 312664/oneworld/jdenet_k. verrouillant l’enregistrement ci-dessus – montrant le noyau d’objet d’appel

Exemple 3 : DSPRCDLCK proddta/f0411 dans cet exemple
Les emplois QSQSRVR desservent aussi les UBE soumis à l’iSeries. Dans ce JOBLOG, vous pouvez voir qu’une erreur s’est produite. Ce travail QSQSRVR est en suspens, comme un zombie E1, mais sur la iSeries. Il doit être terminé à partir de l’écran vert iSeries. Ce message particulier se produit à plusieurs reprises lorsque l’UBE est terminé depuis le client E1. Cela signifie que l’UBE restera en statut ACTIF jusqu’à ce que ce travail QSQSRVR soit terminé. Si c’était un UBE qui met à jour les données, ce travail QSQSRVR pourrait verrouiller des enregistrements.
JOBLOG du QSQSRR verrouillant le record F0411 – service R047001A

Conclusion :
Avec JD Edwards, on voit des blocages records vers la fin du mois, à cause des blocages Next Number pour le numéro de compte.
Les verrous d’enregistrement se produisent sur toutes les bases de données et chacune a sa propre méthode pour déterminer la tâche de verrouillage. Sur l’iSeries, en utilisant DSPRCDLCK, WRKJOB et le gestionnaire de serveurs, vous pouvez trouver ce qui verrouille les enregistrements et, espérons-le, cela mène à l’utilisateur qui doit être avisé pour annuler son travail.
