Question

Chaque matin, nous avons un processus qui émet de nombreuses requêtes (~ 10000) vers DB2 sur un AS400 / iSeries / i6 (comme l’appelle actuellement IBM), au cours des deux derniers mois, les opérateurs se sont plaints du verrouillage de notre requête. quelques fichiers les empêchant de terminer leur traitement nocturne. Les requêtes sont très simples, par exemple

Select [FieldName] from OpenQuery('<LinkedServerName>', 'Select [FieldName] from [LibraryName].[FieldName] where [SomeField]=[SomeParameter]')

Je ne suis pas un expert du côté iSeries de la maison et je me demandais si quelqu'un avait une idée de l'escalade des verrous du point de vue AS400 / Db2. Il a été confirmé que l'identifiant à l'origine du verrou est l'identifiant sur lequel nous avons enregistré notre serveur lié. Nous en connaissons le plus probablement, car [Library] et [FileName] correspondent à la requête que nous émettons.

Cela vient tout juste de commencer. Est-il possible que nos instructions select entraînant l'ascension des verrous de l'AS400? Le problème est qu'ils ne sont pas libérés sans intervention manuelle.

Était-ce utile?

La solution

Essayez d’ajouter ". POUR LIRE UNIQUEMENT " à la requête, les enregistrements ne seront pas verrouillés au fur et à mesure que vous les récupérerez.

Autres conseils

L'écriture sur les fichiers côté AS / 400 à partir d'un programme de travail RPG / COBOL / JPL provoquera le verrouillage du fichier (par défaut, je pense). Le travail ne pourra pas obtenir ce verrou lorsque vous lisez. La solution que nous avons utilisée était ... ne lisez pas les fichiers lorsque des travaux sont en cours d'exécution. Nous avons créé une grande feuille de calendrier dans Excel et avons placé tous les travaux des serveurs SQL et as / 400 dans des tranches horaires avec un code de couleur pour l’importance et le serveur. De cette façon, aucun conflit ou fichier d'extraction obsolète ne sera non plus.

Il est possible que le contrôle des engagements entraîne le verrouillage de la lecture répétable. Vérifiez la connexion ODBC SQL Server associée à <linkedServerName> pour modifier le contrôle de validation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top