// 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}"); }