Error 29: Too many tables open en traitement 4GL
Le symptôme
Un traitement personnalisé ou un import (ex. CPTBUD) échoue avec le message "@X3.TRT/xxx$adx (101) Error 29: Too many tables open [NOM_TABLE]". Le nom de la table bloquante et celui du traitement sont indiqués dans le message. L'erreur peut survenir en exécution directe ou via un appel web service.
Cause probable
Le moteur 4GL atteint la limite maximale de tables ouvertes simultanément dans la session. Le code standard ou personnalisé ouvre des tables ([Fnn]NOMTABLE) sans les refermer explicitement (absence de [F]TABLE.CLOSE ou curseurs non libérés). Un service web tournant en boucle peut également accumuler des ouvertures sans les clôturer.
Vérifications
- 01Relever précisément le nom du traitement et de la table indiqués dans le message "Error 29: Too many tables open".
- 02Ouvrir le code source 4GL du traitement concerné (standard ou surcouche/entry-point) et rechercher toutes les ouvertures de table ([Fnn]NOMTABLE) qui ne sont jamais suivies d'une fermeture explicite.
- 03Si l'erreur survient en contexte web service, identifier le pool concerné via Administration > Web services et vérifier s'il accumule des ouvertures de table ; redémarrer ce pool si nécessaire.
- 04Vérifier dans les paramètres généraux (couche classic layer, section Miscellaneous) la valeur du nombre de tables autorisées par session, et évaluer si elle est adaptée au volume métier réel.
- 05Contrôler si une entry-point ajoutée au traitement standard introduit des ouvertures de table supplémentaires non fermées.
Correction
Corriger le code 4GL fautif en ajoutant les fermetures explicites de tables ([F]TABLE.CLOSE) en fin de traitement ou de bloc. En contournement immédiat, redémarrer le pool de web services concerné. Si le volume métier le justifie, augmenter la limite du nombre de tables ouvertes dans les paramètres généraux.
Votre cas est différent ? Posez-le au copilote, la première réponse est gratuite.
Autres fiches sur ces versions
Cette fiche décrit une cause probable, pas un diagnostic sur votre dossier. Testez toujours hors production quand vous en avez la possibilité. House Info est indépendant de Sage.