AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Hilfe bei der Fehlerbehebung: Implizites Löschen von Childdatensätzen in Oracle
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe bei der Fehlerbehebung: Implizites Löschen von Childdatensätzen in Oracle

Ein Thema von horstmeyer · begonnen am 27. Mär 2024 · letzter Beitrag vom 27. Mär 2024
Antwort Antwort
horstmeyer

Registriert seit: 9. Aug 2021
45 Beiträge
 
#1

Hilfe bei der Fehlerbehebung: Implizites Löschen von Childdatensätzen in Oracle

  Alt 27. Mär 2024, 07:32
Datenbank: Oracle • Version: 11g • Zugriff über: DevartOracleDirect
Liebe Forenmitglieder,

ich stehe vor einem Problem, bei dem in meiner Oracle-Datenbank anscheinend Childdatensätze implizit gelöscht werden, während die Transaktionen nicht ordnungsgemäß abgeschlossen werden. Der Parentdatensatz bleibt intakt, aber die zugehörigen Childdatensätze verschwinden möglicherweise aufgrund eines Rollbacks oder ähnlicher Probleme.

Ich habe bereits verschiedene Ansätze ausprobiert, um den Fehler zu finden und zu beheben, aber bisher ohne Erfolg. Daher wende ich mich an die Community, um Rat und mögliche Lösungsansätze zu erhalten.

Hier sind einige Details zum Problem:

- Die Childdatensätze werden anscheinend irgendwo zwischen dem Beginn und dem Abschluss einer Transaktion gelöscht.
- Die Integritätsbeziehungen zwischen den Parent- und Childdatensätzen scheinen korrekt eingerichtet zu sein.
- Es gibt keine expliziten Löschbefehle in meinem Anwendungscode, die das Löschen der Childdatensätze erklären könnten.
- Ich vermute, dass ein Rollback oder ein ähnliches Ereignis dazu führt, dass die Änderungen an den Childdatensätzen rückgängig gemacht werden.

Meine Frage an die Community lautet daher: Habt ihr Ideen oder Vorschläge, wie ich diesen Fehler finden und beheben kann? Gibt es bestimmte Tools, Techniken oder Überwachungsmethoden in Oracle, die mir dabei helfen könnten?

Ich wäre sehr dankbar für jede Hilfe oder Anregung, die ihr mir geben könntet.

Vielen Dank im Voraus!

Horst
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
672 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Hilfe bei der Fehlerbehebung: Implizites Löschen von Childdatensätzen in Oracle

  Alt 27. Mär 2024, 13:20
Wie manifestiert sich das Problem, wie erkennst Du es? Wenn Programm A sich innerhalb einer offenen Transaktion befindet, die Datensätze angelegt hat, kann Program B, welches eine andere Session verwendet, diese nicht sehen, da zwischen sessions nur datensätze sichtbar sind, die committed wurden (Stichwort transaction isolation). Das gilt normalerweise auch zwischen verschiedenen Transaktions innerhalb einer Session, da kann man das aber anpassen. Die Komponente der verwendeten client library, die eine Session (oder connection) repräsentiert hat dazu normalerweise eine Eigenschaft (TransactionIsolation o. Ä.).

Wenn eine Session abgebrochen oder anderweitig geschlossen wird werden offene Transaktions normalerweise automatisch geschlossen, entweder durch die client library (da kann man dann normalerweise wählen ob per commit oder rollback), oder durch den Server (immer rollback). Das bei einem rollback innerhalb der Transaktion angelegte Datensätze verschwinden ist normal und erwartet, wenn aber Datensätze verschwinden, die schon vor der Transaktion existierten, ist das definitiv nicht normal.

Hast Du Zugriff auf den Datenbank-Server? Oracle produziert für praktisch jede Aktivität Einträge in Logdateien, auf die aber meist nur Admins Zugriff haben. Die Logs sind normalerweise die beste Quelle für die Suche nach obskuren Fehlern. Vielleicht bietet aber auch die client library, die Du verwendest, eine Option, den Datenverkehr deiner Anwendung mit dem Server zu protokollieren. Das wäre wesentlich einfacher zu durchsuchen; die Server Logs sind oft monströs groß...
Peter Below
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz