phpbar.de logo

Mailinglisten-Archive

[php] AW: [php] OCICommit-Problem

[php] AW: [php] OCICommit-Problem

Gloss Mathias Mathias.Gloss_(at)_start.de
Wed, 25 Oct 2000 10:08:28 +0200


Aloha,

> ----------
> Von: 	Grewing, Sebastian[SMTP:Sebastian.Grewing_(at)_telekom.de]
> 
> > Wieso gibt es ueberhaupt einen rollback-Fehler? Nach einem 
> > commit sollte
> > doch kein Rollback mehr moeglich sein - wozu werden also 
> > anscheinend immer
> > noch rollback-Infos irgendwo im Speicher "aufgehoben"?
> > 
> > Wo muss ich den Fehler suchen? In meinem Script? Bei Oracle? 
> > Bei PHP 3.0.16?
> 
> Bei Oracle ...
> 
Beim DB-Administrator bzw. beim Programmierer. Oracle kann man dafür
nicht die Schuld geben.

Wenn mehrere User mit dem gleichen Datenbestand gleichzeitig arbeiten,
und dann auch noch Features wie COMMIT/ROLLBACK benutzen wollen,
dann muß die DB dafür ausgefeilte Mechanismen einsetzen.

Beispiel User 1:
update riesentabelle set spalte1 = 'test';
commit;

Das Update dieser Tabelle könnte z.B. 2 Minuten brauchen.
In dieser Zeit macht User 2:
select * from riesentabelle;

Welchen Datenbestand sieht User 2 ?
Wie ist es möglich, daß bei dem COMMIT sofort alle Daten geändert sind ?

Das alles und noch viel mehr leisten die erwähnten Rollbacksegmente, in 
denen die Daten temporär gespeichert und geändert und danach zurückge-
schrieben werden in die DB. Für User 1 und User 2 ist es nicht ersichtlich,
ob sie jetzt mit den Daten aus dem Tablespace oder Rollbacksegment ar-
beiten.
Je nach größe der Insert/Update/.... Anweisungen kann es natürlich sein,
daß nicht alles in das Rollbacksegment passt, oder dass nur eines vor-
handen ist und mehrer User grad Inserts/Updates machen, die ja auch Da-
ten in das Rollbacksegment schreiben.

==> Lösungen:

- Rollbacksegment vergrößern (lassen) ... Unsere SAP-Server haben teilweise
  12 GB Rollbacksegment ;-)
- Alle User ausser dir von der DB werfen und hoffen, daß das Rollbacksegment
  für dich reicht
- Das Commit so früh wie möglich setzen, falls sich das machen lässt.

Eine ausführliche Erklärung dieses Phänomens von SAP gibts gern als PM.

Viele Grüße, Mathias




php::bar PHP Wiki   -   Listenarchive