==================================================================== PROBE HFSQL SHUTDOWN CRASH — OUTIL DE DIAGNOSTIC (SRV-OMIKA) ==================================================================== But --- Reproduire, de façon TOTALEMENT indépendante d'Omika.Api, le crash natif du module wd300vm64.dll observé à chaque Stop-Service. Cet outil n'utilise NI ASP.NET, NI Generic Host, NI conteneur DI, NI repository Omika, NI RSA/QR/licence. Il ne charge que le provider OLE DB PC SOFT (PCSOFT.HFSQL) via System.Data.OleDb. Prérequis --------- - Windows PowerShell 5.1 (intégré à Windows) : lancer avec powershell.exe. - Le provider OLE DB PC SOFT (PCSOFT.HFSQL) doit être installé sur la machine. - Compte HFSQL technique autorisé à ouvrir une session sur le serveur ciblé. Les 3 modes ----------- Mode A — NoConnection Le process ne crée AUCUNE connexion OLE DB puis se termine. => Contrôle : vérifie que le process ne crashe pas SANS HFSQL. Si ce mode crashe, le problème n'est PAS lié à HFSQL. Mode B — OpenClose Crée une OleDbConnection (Provider=PCSOFT.HFSQL), Open(), exécute un SELECT lecture seule, ferme le reader, dispose la commande, Close(), Dispose(), affiche PROBE_TERMINE, quitte. => Reproduit le cycle minimal open/close sans Omika.Api. Si ce mode crashe à la sortie, le crash est dans le provider lui-même (indépendant d'Omika.Api). Mode C — OpenCloseReleasePool Identique au Mode B, puis appelle OleDbConnection.ReleaseObjectPool() avant la sortie. => Teste si la libération explicite du pool évite le crash. Paramètres ---------- -Mode : NoConnection | OpenClose | OpenCloseReleasePool (obligatoire) -Server : hôte du serveur HFSQL Client/Serveur (obligatoire) -Port : port HFSQL (défaut 4900) -Database : nom de la base/analyse (obligatoire) -User : compte technique HFSQL (obligatoire) -Query : requête SELECT lecture seule (défaut "SELECT 1") Le mot de passe N'EST PAS un paramètre : il est demandé de façon interactive (Read-Host -AsSecureString) et n'est jamais affiché. Commandes Windows PowerShell 5.1 -------------------------------- Ouvrir une console PowerShell 5.1 (powershell.exe), puis : # MODE A (contrôle, sans HFSQL) powershell.exe -NoProfile -ExecutionPolicy Bypass -File ` "C:\Chemin\Vers\probe_hfsql_shutdown_crash.ps1" ` -Mode NoConnection -Server SERVEUR -Database BASE -User COMPTE # MODE B (open/close) powershell.exe -NoProfile -ExecutionPolicy Bypass -File ` "C:\Chemin\Vers\probe_hfsql_shutdown_crash.ps1" ` -Mode OpenClose -Server SERVEUR -Port 4900 -Database BASE -User COMPTE # MODE C (open/close + ReleaseObjectPool) powershell.exe -NoProfile -ExecutionPolicy Bypass -File ` "C:\Chemin\Vers\probe_hfsql_shutdown_crash.ps1" ` -Mode OpenCloseReleasePool -Server SERVEUR -Port 4900 -Database BASE -User COMPTE Le mot de passe est saisi à l'invite (non affiché). Contrôle des événements Windows après chaque exécution ------------------------------------------------------ Après CHAQUE exécution, vérifier l'Observateur d'événements : 1. eventvwr.msc > Journaux Windows > Application 2. Filtrer / rechercher les événements récents : - "Application Error" (Event ID 1000) - ".NET Runtime" (Event ID 1026) - "Windows Error Reporting" (Event ID 1001) 3. Dans les détails, chercher : - module fautif : wd300vm64.dll - code exception : 0xc0000005 ou 0xc0000409 Ou via commande (après chaque run, noter l'heure) : Get-WinEvent -LogName Application -MaxEvents 30 | Where-Object { $_.Id -in 1000,1026,1001 } | Format-List TimeCreated, Id, ProviderName, Message Interprétation -------------- - MODE A crashe -> le crash n'est PAS spécifique à HFSQL. - MODE B crashe -> le provider PCSOFT.HFSQL crashe à la sortie, indépendamment d'Omika.Api. - MODE C ne crashe pas -> ReleaseObjectPool() (ou l'ordre de libération) change le comportement à la sortie. - Aucun mode ne crashe -> le crash PROD implique l'environnement Omika.Api (DI, hosted services, lifetime) et non le provider seul. Ne PAS utiliser : OLE DB Services=-1 ni -2 (cassent PCSOFT.HFSQL). Ne PAS tenter de migration ODBC ici. ====================================================================