Files
Omika/tools/Omika.IdempotenceProbe/Program.cs
T
2026-10-23 18:46:50 +02:00

193 lines
8.7 KiB
C#

// Probe de diagnostic IDEMPOTENCE — 100% LECTURE SEULE.
// Interroge MobReception, MobLog et les Interventions E2E_TEST dans BATIK_TEST
// pour reconstruire la chronologie des OperationId CREATE et Replay.
// Aucun INSERT / UPDATE / DELETE.
using System.Data.OleDb;
const string server = "127.0.0.1";
const int port = 4900;
const string user = "susana";
const string password = "123";
string BuildConnStr(string database) =>
$"Provider=PCSOFT.HFSQL;Data Source={server}:{port};Initial Catalog={database};User ID={user};Password={password}";
const string createOpId = "5b915439-d9d9-44b5-9552-1f8f90db96c3";
const string replayOpId = "0fce297f-e4e4-45ad-9027-b4e6e23d5c8a";
Console.WriteLine("=== DIAGNOSTIC IDEMPOTENCE — LECTURE SEULE ===");
Console.WriteLine($"CREATE OperationId : {createOpId}");
Console.WriteLine($"Replay OperationId : {replayOpId}");
Console.WriteLine();
try
{
using var conn = new OleDbConnection(BuildConnStr("BATIK_TEST"));
conn.Open();
Console.WriteLine("Connexion BATIK_TEST: OPEN");
Console.WriteLine();
// ============================================================
// 1. Interventions E2E_TEST (toutes)
// ============================================================
Console.WriteLine("── 1. Interventions E2E_TEST (IN_RefInterne LIKE 'E2E_TEST%') ──");
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT IN_PKID, IN_RefInterne, IN_Titre, IN_Description FROM Intervention WHERE IN_RefInterne LIKE 'E2E_TEST%' ORDER BY IN_PKID";
using var reader = cmd.ExecuteReader();
int n = 0;
while (reader.Read())
{
n++;
Console.WriteLine($" [{n}] IN_PKID={reader["IN_PKID"]}, Ref={reader["IN_RefInterne"]}, Titre={reader["IN_Titre"]}, Desc={reader["IN_Description"]}");
}
Console.WriteLine($" Total E2E_TEST: {n}");
}
Console.WriteLine();
// ============================================================
// 2. MobLog pour CREATE OperationId
// ============================================================
Console.WriteLine($"── 2. MobLog pour CREATE OperationId {createOpId} ──");
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT ML_PKID, ML_DateCreat, ML_Message, ML_Niveau FROM MobLog WHERE ML_Message LIKE ? ORDER BY ML_PKID";
cmd.Parameters.Add(new OleDbParameter { Value = $"%{createOpId}%" });
using var reader = cmd.ExecuteReader();
int n = 0;
while (reader.Read())
{
n++;
Console.WriteLine($" [{n}] ML_PKID={reader["ML_PKID"]}, Date={reader["ML_DateCreat"]}, Niveau={reader["ML_Niveau"]}");
Console.WriteLine($" Msg={reader["ML_Message"]}");
}
Console.WriteLine($" Total MobLog CREATE: {n}");
}
Console.WriteLine();
// ============================================================
// 3. MobLog pour Replay OperationId
// ============================================================
Console.WriteLine($"── 3. MobLog pour Replay OperationId {replayOpId} ──");
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT ML_PKID, ML_DateCreat, ML_Message, ML_Niveau FROM MobLog WHERE ML_Message LIKE ? ORDER BY ML_PKID";
cmd.Parameters.Add(new OleDbParameter { Value = $"%{replayOpId}%" });
using var reader = cmd.ExecuteReader();
int n = 0;
while (reader.Read())
{
n++;
Console.WriteLine($" [{n}] ML_PKID={reader["ML_PKID"]}, Date={reader["ML_DateCreat"]}, Niveau={reader["ML_Niveau"]}");
Console.WriteLine($" Msg={reader["ML_Message"]}");
}
Console.WriteLine($" Total MobLog Replay: {n}");
}
Console.WriteLine();
// ============================================================
// 4. MobReception pour CREATE OperationId
// ============================================================
Console.WriteLine($"── 4. MobReception pour CREATE OperationId {createOpId} ──");
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT MR_PKID, MR_IDToSRV, MR_JSON, MR_CMD, MR_Fait, MR_DateHeureRecep FROM MobReception WHERE MR_JSON LIKE ? ORDER BY MR_PKID";
cmd.Parameters.Add(new OleDbParameter { Value = $"%{createOpId}%" });
using var reader = cmd.ExecuteReader();
int n = 0;
while (reader.Read())
{
n++;
Console.WriteLine($" [{n}] MR_PKID={reader["MR_PKID"]}, MR_IDToSRV={reader["MR_IDToSRV"]}, Fait={reader["MR_Fait"]}, Date={reader["MR_DateHeureRecep"]}");
Console.WriteLine($" JSON={reader["MR_JSON"]}");
}
Console.WriteLine($" Total MobReception CREATE: {n}");
}
Console.WriteLine();
// ============================================================
// 5. MobReception pour Replay OperationId
// ============================================================
Console.WriteLine($"── 5. MobReception pour Replay OperationId {replayOpId} ──");
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT MR_PKID, MR_IDToSRV, MR_JSON, MR_CMD, MR_Fait, MR_DateHeureRecep FROM MobReception WHERE MR_JSON LIKE ? ORDER BY MR_PKID";
cmd.Parameters.Add(new OleDbParameter { Value = $"%{replayOpId}%" });
using var reader = cmd.ExecuteReader();
int n = 0;
while (reader.Read())
{
n++;
Console.WriteLine($" [{n}] MR_PKID={reader["MR_PKID"]}, MR_IDToSRV={reader["MR_IDToSRV"]}, Fait={reader["MR_Fait"]}, Date={reader["MR_DateHeureRecep"]}");
Console.WriteLine($" JSON={reader["MR_JSON"]}");
}
Console.WriteLine($" Total MobReception Replay: {n}");
}
Console.WriteLine();
// ============================================================
// 6. Tous les MobLog contenant E2E_TEST (pour corréler les références)
// ============================================================
Console.WriteLine("── 6. MobLog contenant 'E2E_TEST' (corrélation références) ──");
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT ML_PKID, ML_DateCreat, ML_Message, ML_Niveau FROM MobLog WHERE ML_Message LIKE '%E2E_TEST%' ORDER BY ML_PKID";
using var reader = cmd.ExecuteReader();
int n = 0;
while (reader.Read())
{
n++;
Console.WriteLine($" [{n}] ML_PKID={reader["ML_PKID"]}, Date={reader["ML_DateCreat"]}, Niveau={reader["ML_Niveau"]}");
Console.WriteLine($" Msg={reader["ML_Message"]}");
}
Console.WriteLine($" Total MobLog E2E_TEST: {n}");
}
Console.WriteLine();
// ============================================================
// 7. Tous les MobReception contenant E2E_TEST
// ============================================================
Console.WriteLine("── 7. MobReception contenant 'E2E_TEST' ──");
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT MR_PKID, MR_IDToSRV, MR_JSON, MR_CMD, MR_Fait, MR_DateHeureRecep FROM MobReception WHERE MR_JSON LIKE '%E2E_TEST%' ORDER BY MR_PKID";
using var reader = cmd.ExecuteReader();
int n = 0;
while (reader.Read())
{
n++;
Console.WriteLine($" [{n}] MR_PKID={reader["MR_PKID"]}, MR_IDToSRV={reader["MR_IDToSRV"]}, Fait={reader["MR_Fait"]}, Date={reader["MR_DateHeureRecep"]}");
Console.WriteLine($" JSON={reader["MR_JSON"]}");
}
Console.WriteLine($" Total MobReception E2E_TEST: {n}");
}
Console.WriteLine();
// ============================================================
// 8. TOSRV (base Service) — vérifier s'il reste des opérations
// ============================================================
Console.WriteLine("── 8. TOSRV (base Service BATIK.01_BLS) ──");
using (var srvConn = new OleDbConnection(BuildConnStr("BATIK.01_BLS")))
{
srvConn.Open();
using var cmd = srvConn.CreateCommand();
cmd.CommandText = "SELECT IDTOSRV, TS_Date, TS_Mobile, TS_JSON, TS_CMD FROM TOSRV";
using var reader = cmd.ExecuteReader();
int n = 0;
while (reader.Read())
{
n++;
Console.WriteLine($" [{n}] IDTOSRV={reader["IDTOSRV"]}, Date={reader["TS_Date"]}, Mobile={reader["TS_Mobile"]}, Cmd={reader["TS_CMD"]}");
Console.WriteLine($" JSON={reader["TS_JSON"]}");
}
Console.WriteLine($" Total TOSRV: {n}");
}
Console.WriteLine();
Console.WriteLine("=== DIAGNOSTIC TERMINÉ (aucune écriture effectuée) ===");
}
catch (Exception ex)
{
Console.WriteLine($" ERREUR: {ex.Message}");
}