Une vue de la startup SQL manquait dans le flux OData4, car Invantive Bridge Online continuait d’utiliser un modèle de données précédemment enregistré. Vider le cache dans Invantive Cloud ne modifie pas ce modèle de données.
Composé avec l’aide de l’IA.
Contenu de la trace
La trace couvre du 22 au 24 septembre 2026. Toutes les heures sont en UTC.
| Heure (UTC) |
Événement |
| 23-09 12:04 |
La base de données est créée dans Invantive Cloud, sans startup SQL. |
| 23-09 12:05 |
La première requête OData4 depuis Power BI. Bridge Online construit le modèle de données avec 197 tables et le stocke sur disque. Le modèle enregistré reste valide pendant sept jours. |
| 23-09 14:26 |
Le startup SQL reçoit une vue sur le journal des salaires. |
| 23-09 14:31 à 14:47 |
Cinq sessions depuis Power BI. Dans chaque session, Bridge Online exécute le startup SQL sans erreur. Cependant, le modèle de données provient du cache disque : 197 tables Easyflex, sans la vue. |
| 24-09 08:39 |
Une autre session, même constat. |
| 24-09 08:46 |
Le cache est vidé dans Invantive Cloud. |
| 24-09 09:00 et 09:03 |
Deux sessions, même constat. |
| 24-09 09:06 |
Le startup SQL reçoit une vue sur DataService.Flexwerker.Journaalposten. Bridge Online signale correctement une erreur : ce tableau demande des valeurs pour les paramètres jaar et week (itgenboe074). |
| 24-09 09:09 |
Le startup SQL reçoit la vue de la question. Six secondes plus tard, le cache est à nouveau vidé dans Invantive Cloud. |
| 24-09 09:10 et 09:24 |
Deux sessions. Le startup SQL crée la vue sans erreur. Le modèle de données provient à nouveau du cache disque, avec 197 tables. |
Après la première modification du Startup SQL, dix sessions ont donc fonctionné avec l’ancien modèle de données.
Cause
Au début de chaque session, Invantive Bridge Online exécute le Startup SQL. La vue existe ensuite dans cette session. C’est pourquoi une requête sur la vue dans l’éditeur SQL d’Invantive Cloud fonctionne.
La liste des tables du flux OData4 provient d’un cache séparé : le modèle de données derrière $metadata. Invantive Bridge Online conserve ce modèle de données par utilisateur et par base de données crypté sur disque. La clé unique de ce cache ne contient que la base de données et non le Startup SQL. Après une modification du Startup SQL, l’ancien modèle de données est donc resté utilisé, jusqu’à ce que son expiration se produise après sept jours.
Le design prenait partiellement en compte cela. Un modèle de données avec des vues du startup SQL n’est pas intentionnellement stocké par Bridge Online, car ces vues peuvent changer. Cependant, un modèle de données stocké avant qu’une vue ne soit présente n’était pas contrôlé lors de la lecture. C’est ce qui s’est produit ici : le modèle du 23 septembre 12:05 est plus ancien que la première vue personnalisée.
Vider le cache n’a pas aidé
Invantive Cloud et Bridge Online ont chacun une option de menu “Réinitialiser le cache”. Chaque option vidange uniquement les caches de son propre produit, et les deux produits s’exécutent sur des serveurs différents. La trace montre deux réinitialisations sur Invantive Cloud. Cette réinitialisation efface les caches d’Invantive Cloud, mais pas ceux de Bridge Online. Une réinitialisation dans Bridge Online lui-même n’apparaît pas dans la trace.
Le message 2 indique que vider le cache supprime le modèle de données. C’est correct pour “Réinitialiser le cache” dans Bridge Online, pas pour la même option dans Invantive Cloud.
Améliorations
Les améliorations suivantes ont été mises en œuvre :
- Bridge Online conserve avec le modèle de données une empreinte digitale de la définition de la base de données. Celle-ci est composée des différents SQL de démarrage et des conteneurs de données : alias, connecteur et choix des tables partitionnées. Les mots de passe et les jetons n’en font pas partie, car ils se renouvellent sans que les tables ne changent.
- Si l’empreinte digitale diffère, Invantive Bridge Online reconstruit le modèle de données.
- La même empreinte digitale fait partie de la clé du cache de réponse. Le Startup SQL peut également sélectionner d’autres partitions. Après une modification, le cache de réponse ne fournit donc plus de réponse calculée sous l’ancienne définition.
- Une session en cours conserve la définition avec laquelle la session est ouverte. Une session se termine au plus tard dix minutes après la dernière requête. Ainsi, les réponses à l’intérieur d’une même session restent cohérentes.
- Une base de données qui ne sert que depuis le cache de réponse en mode sinistre conserve le modèle de données et les réponses enregistrées. Ce réglage est en effet destiné à ne livrer que depuis le cache.
- Le serveur MCP d’Invantive pour l’IA (comme Claude) utilise le même modèle de données et reçoit la même correction.
Disponibilité
Les améliorations sont disponibles à partir de la version 26.0.332 et dans la prochaine version 27.0.