These fragments can be split up into several groups:
persistentstore
library. See the section 'The persistent store library' below for more details.
reget
- and commit
-operations.
clientinterface.bet
:
This file describes the interface to a client using
the shared persistent store (named PSclient
). This interface file has to be included by
all client programs. The PSClient
pattern is subclassed in the
notification.bet
file in order to yield the NPSClient
pattern. This pattern has to be used instead of the PSClient
pattern, when the client
wants to subscribe to notifications.
serverinterface.bet
:
This file contains the interface to the server, the PersistentStoreManager
. This interface file has to be included in
all client and server programs.
sharedpersistentstore.bet
:
This file contains the sharedpersistentstore
library. It provides
concurrency control for a persistent store. This library has to be
included by the client program, if a persistent store is being
accessed in a multi-user environment.
transaction.bet
:
This file contains the transaction
library for the shared
persistent store. It has to be included by the clients if they want
to use transactions.
notification.bet
:
This file is a library containing the declarations used
when using notifications. This file has to be included by
the clients, if they want to subscribe to notifications.
serverinterface.bet
:
This file contains the interface to the server, the PersistentStoreManager
. This interface file has to be included in
all client and server programs.
notificationmanager.bet
:
This file contains the interface to a notification manager serving
notification control. A server wishing to provide notification control
has to include this file in order to run an instance of the
notificationmanager
.
lockmanager.bet
:
This file contains the interface to a lock manager serving concurrency
control. This file is included by the file serverinterface.bet
,
because every server starts a lockmanager
.
samefile.bet
: This file contains the method samefile
, which returns true, if
the two entered files are the same and false otherwise. This library
is used instead of file1name[]->file2name.equal
because the same
file can have different names depending on the machine, where a
process starts. F.eks. /a/home/scandium9/jojo/speciale/pstore1
and
~jojo/speciale/pstore1
are the same files, but would result in false,
if using the equal
-operation.
perslib.bet
:
This fragment is a library containing the pattern declarations used to
save the lock information on disk. This is done in order to facilitate
recovery from a server crash.
sharedPSnotifications.bet
:
This file is included by the sharedpersistentstore
library
in order to send notifications to the server.
Notifications are only sent if a notificationmanger
is started by the
server. If a notificationmanager
is started, notifications are sent
automatically by the shared persistent store and not explicitly by the user.
PSManager.bet
:
This file contains an example implemenation of the server, the PersistentStoreManager
. It provides only a lock manager, no extra
functionality. This is the smallest possible server implementation.
NPSManager.bet
:
This file contains an example implemenation of the server, the PersistentStoreManager
.
It provides not only a lock manager, but also
a notification manager serving notfication control.
recordlib.bet
:
This fragment is a library containing the declarations
of record
, person
and register
. It is used in order to
store registers containing persons in a persistentstore.
The client example implementations use this library.
simpleclient.bet
:
This file contains an example implementation of the client. The client opens
a shared persistent store. The client does not make use of transactions or
notifications. The user can determine the used lock mode and
lock policy.
notclient.bet
:
This file contains an example implementation of the client. It opens
a shared persistent store and subscribes to
UPDATE and WAITFORLOCK notifications for it. When being notified, the
client displays the notification on the screen. The access to the
persistent store is done using transactions. The user can determine
the used lock mode and lock policy.
regetclient.bet
:
This file contains an example implementation of the client. The client opens
a shared persistent store. The client subscribes to UPDATE
events. When receiving a notification about an UPDATE, the client
regets the in-memory objects of the updated persistent store. Note:
This is only done, when the client is accessing the persistent store
at the same time, where the persistent store is updated (only possible if the
lock policy is MRSW).
Persistence in BETA - Reference Manual | © 1991-2002 Mjølner Informatics |
[Modified: Monday October 23rd 2000 at 10:43]
|