57 lines
2.1 KiB
PowerShell
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. <<<"
|