|
dbname
Name einer Datenbank der DB-Konfiguration
realmname
Name eines Realms der Datenbank
Mit dem ACCESS-Kommando können Sie die Zugriffsrechte auf die Realms einer Datenbank bzw. auf die gesamte Datenbank beeinflussen. Sie können Zugriffe sperren, einschränken oder Zugriffssperren aufheben. Die Sperren wirken nur logisch, enthalten aber kein physisches Ausschließen der Dateien.
Zugriffe sperren
ACCESS LOCK,DB=dbname
auf die mit dbname angegebene Datenbank.
ACCESS LOCK,RN=realmname [,DB=dbname]
auf den mit realmname angegebenen Realm. Die Angabe von DB=dbname ist nur nötig, wenn der Realm-Name nicht innerhalb der gesamten DB-Konfiguration eindeutig ist. Sie spezifiziert dann die gewünschte Datenbank.
ACCESS LOCK bewirkt, dass der DBH keinerlei Zugriffe mehr auf den Realm bzw. die Datenbank zulässt.
ACCESS LOCK wird nur bei READY (Statuscode 12022) wirksam, d.h. Transaktionen, die auf dem Realm bzw. der Datenbank schon arbeiten, können noch bis zum FINISH weiterlaufen. Der ändernde Zugriff wird aber dann gesperrt, wenn Sie versuchen, mit READY UPDATE eine Verarbeitungskette für einen weiteren Realm zu eröffnen, der bereits mit ACCESS LOCK für Änderungen gesperrt wurde.
Änderungszugriffe sperren
ACCESS RETRIEVAL,DB=dbname
auf die mit dbname angegebene Datenbank.
ACCESS RETRIEVAL,RN=realmname [,DB=dbname]
auf den mit realmname angegebenen Realm. Die Angabe von DB=dbname ist nur nötig, wenn der Realm-Name nicht innerhalb der gesamten DB-Konfiguration eindeutig ist. Sie spezifiziert dann die gewünschte Datenbank.
ACCESS RETRIEVAL sperrt den angegebenen Realm bzw. die angegebene Datenbank solange für ändernde Transaktionen, bis ein ACCESS UPDATE-Kommando die Sperre aufhebt.
Lesende Transaktionen sind dagegen möglich.
ACCESS RETRIEVAL wird in CODASYL-Anwendungen bei READY (Statuscode 12123) wirksam, in SQL-Anwendungen beim ersten ändernden DB-Zugriff; d.h. ändernde Transaktionen, die auf dem Realm bzw. der Datenbank schon arbeiten, können noch bis zum FINISH weiterlaufen. Der ändernde Zugriff wird aber dann nicht mehr zugelassen, wenn Sie versuchen, mit READY UPDATE eine Verarbeitungskette für einen weiteren Realm zu eröffnen, der bereits mit ACCESS RETRIEVAL für Änderungen gesperrt wurde.
In SQL-Anwendungen werden ändernde SQL-Anweisungen abgewiesen.
Zugriffssperre aufheben
ACCESS UPDATE,DB=dbname
bei der mit dbname angegebenen Datenbank.
ACCESS UPDATE,RN=realmname [,DB=dbname]
bei dem mit realmname angegebenen Realm. Die Angabe von DB=dbname ist nur nötig, wenn der Realm-Name nicht innerhalb der gesamten DB-Konfiguration eindeutig ist. Sie spezifiziert dann die gewünschte Datenbank.
ACCESS UPDATE hebt ein vorangegangenes ACCESS LOCK oder
ACCESS RETRIEVAL-Kommando auf; d.h. es hebt die Sperre auf, die auf den angegebenen Realm bzw. die angegebene Datenbank gegeben wurde.
Das ACCESS-Kommando darf für eine Datenbank auch zwischen den Kommandos
ADD DB und PERFORM angegeben werden, d.h. sobald die Datenbank zum Anschließen angemeldet ist.
Damit kann erreicht werden, dass nach dem Anschließen der Datenbank die Zugriffssperre gilt, die mit ACCESS vereinbart wurde.
Beispielsweise ist dies sinnvoll, wenn ändernde Transaktionen auf einer Datenbank vorläufig verhindert werden sollen.