Files
Omika/tools/probe_hfsql_shutdown_crash.ps1
2026-10-23 18:46:50 +02:00

57 lines
2.1 KiB
PowerShell

# ============================================================
# Probe de diagnostic du crash natif wd300vm64.dll à la FERMETURE
# du process (Stop-Service OmikaApi).
#
# But : isoler si le provider OLE DB PCSOFT.HFSQL plante au
# teardown du POOL DE SESSIONS OLE DB à la sortie du process.
#
# Lancer DEUX FOIS, chacune dans son propre process pwsh :
# 1) pooling ACTIF (défaut) : sans -DisablePooling -> attendu CRASH à la sortie
# 2) pooling DÉSACTIVÉ : avec -DisablePooling -> attendu AUCUN crash
#
# LECTURE SEULE : n'effectue qu'un SELECT 1. Aucun secret
# n'est loggé (le mot de passe n'est jamais affiché).
# ============================================================
param(
[Parameter(Mandatory = $true)][string]$Server,
[int]$Port = 4900,
[Parameter(Mandatory = $true)][string]$Database,
[Parameter(Mandatory = $true)][string]$User,
[string]$Password = "",
[switch]$DisablePooling
)
$ErrorActionPreference = "Stop"
# Chaîne de connexion sans jamais afficher le mot de passe.
$connStr = "Provider=PCSOFT.HFSQL;Data Source=${Server}:${Port};Initial Catalog=${Database};User ID=${User}"
if ($Password) { $connStr += ";Password=$Password" }
if ($DisablePooling) { $connStr += ";OLE DB Services=-1" }
Write-Host "=== PROBE SHUTDOWN OLE DB HFSQL ==="
Write-Host "Mode pooling : $(if ($DisablePooling) { 'DESACTIVE (OLE DB Services=-1)' } else { 'ACTIF (defaut)' })"
Write-Host "Serveur : ${Server}:${Port}"
Write-Host "Base : $Database"
Write-Host "Compte : $User"
Write-Host ""
$conn = New-Object System.Data.OleDb.OleDbConnection($connStr)
$conn.Open()
Write-Host "Connexion ouverte : $($conn.State)"
$cmd = $conn.CreateCommand()
$cmd.CommandText = "SELECT 1"
$result = $cmd.ExecuteScalar()
Write-Host "SELECT 1 : $result"
$cmd.Dispose()
$conn.Close()
Write-Host "Connexion fermee : $($conn.State)"
$conn.Dispose()
Write-Host "Connexion disposee."
Write-Host ""
Write-Host "FIN DU SCRIPT : le process pwsh va se terminer maintenant."
Write-Host ">>> OBSERVER ICI : crash natif (Application Error 1000, wd300vm64.dll,"
Write-Host " 0xc0000005 / 0xc0000409) ou sortie propre sans evenement. <<<"