3.3 ArtBase System Administration
Most of the MetaEdit+ system administrator functions are built
in to the third-party Object Repository, ArtBase
, that
MetaEdit+ uses. You will notice some slight differences in user interface
standards in the ArtBase tools. For instance, there are some windows where
functions are accessible by clicking what looks like a simple bold text label,
with no button outline. For example, a database area’s name is shown in
such a way: to change the name, click on the bold text label of the existing
name, and a dialog will open in which you can enter a new name.

Figure 8. ArtBase System Administration Launcher.
The
ArtBase System Administration Launcher provides powerful facilities for
manipulating the repository, its users and areas. Each button in the launcher
opens a tool, and these tools are described
below.
3.3.1 Roots
The Databases Roots file,
artbase.roo, consists of a list
of the available MetaEdit+ repositories and their paths. Initially there is only
one production repository (db), and depending on your installation one demo
repository (demo), both supplied with MetaEdit+. Note that you may have other
backup or checkpoint repositories to maintain a history of the evolution of your
repository, or even different repositories. In general it is best not to have
several repositories in use, as it is not possible to share data in a real-time
manner between repositories: an important feature of MetaEdit+. Instead, create
several projects within the same repository.
The path for each repository should point to the directory
where that repository’s info file,
manager.ab, is. Where possible,
the paths to the repositories should be relative paths from the directory where
the
artbase.roo file is. If
absolute paths
are used, accessing the repository from
other platforms may require the specification of Network Disks translations,
described below.
Pressing the
Roots button in the
System Administration Launcher opens a
Database Roots
Browser, shown below.

Figure 9. Roots Browser.
rename
opens a dialog where you can change the name of the selected database.
change path opens a dialog where you can change the
path of the selected database: note that this does not move the
database.
edit manager.ab opens a text
editor window on the
manager.ab info file of the
selected database. This file lists all the users, areas and network disks
translations, plus the name of this database, its path, and any server running
on it. Each file name is preceded by a letter, indicating which
platform’s
conventions the name obeys, e.g.
F for FAT file names (DOS),
U for Unix file names. If you use only relative
paths
, with 8 or fewer characters, lower case, and no / or
\ path separators, this letter will not need changing. When you save the file
(from the pop-up menu), you will be prompted for the password of
sysadmin, the first user, according to the encoded
password in your
edited copy of the file. If the password is not valid, a
dialog informs that the file was not saved.
add DBS prompts you for the name and path of a
repository to add to the list.
remove DBS removes the selected repository from the
list: note this does not affect that repository itself.
save accepts the changes you have made, and saves
them to the artbase.roo file. Note that this is
necessary after any changes, except for editing
manager.ab.
cancel rejects the changes you have made, and
reloads the contents of the list from the
artbase.roo
file.
3.3.2 Users
For security, access to the MetaEdit+ database is controlled
by user
accounts, and users must specify a correct user
name and password to log in. Each user has a set of access
rights
to projects (in practice defined as logical areas),
his own fine tuning
memory settings (from the User page of
the Options Tool
, also editable by the system
administrator as Constants in each user browser), his default settings for
System and Preferences in the Options Tool, and may be a member in the list of
metamodellers (Repository page of the Options Tool).
In addition, the concurrency mode
for each area a user has access to is defined. To speed up the definition of
area access rights and concurrency modes, the system administrator can create
groups
, give those groups access rights and concurrency
modes, and make users members of those groups, whereupon the users inherit the
access rights and concurrency modes of their group.
Initially one user is defined in each repository as
database system administrator,
sysadmin, and is given access to
the
ArtBase-Administration
logical area. Other users, initially just
user in the
repository supplied, are given access to the
Administration logical area, which does not allow
system administrator rights in MetaEdit+ or ArtBase. All users must have access
to the
Administration-Common
physical area, normally via one of the above logical areas. The concurrency mode
for this area should be
WWCheck.
 | Note
that users, groups, access rights, and system
administrator rights are in no way related to those of your operating system:
they exist purely within a MetaEdit+ repository. However, in Unix all Unix users
who are to have access to a MetaEdit+ repository must have the same Unix
group, because Unix access rights for the MetaEdit+
repository files are based on Unix group
membership. |
Pressing the
Users button in the System Administration Launcher
opens a Users Browser, shown below.

Figure 10. Users Browser.
The Users
Browser shows all the users that currently exist in the open repository.
Choosing a user shows the user’s group (if any), from which area access
rights are inherited, and any sub-users of the user, who will inherit the access
rights of the user. From the users list’s pop-up menu, you can
browse the selected user,
create a new user, or
delete the
selected user.
Browsing a user

Figure 11. User Browser.
By clicking
on the bold text of the user’s name (next to the
Name: label) you
can change the user’s name. Below this you can see the user’s
ID
, which is used in e.g. error
file
names,
meplusX.err, where
X is replaced by the ID (for clients where no users is
yet logged in,
X is 0). On the right are two buttons
from which you can set the user’s password (must be longer than four
characters), and his fine tuning
memory settings (called
constants by ArtBase).
The list on the left shows the areas the user has access
to: in general only logical areas are specified. On the right you can see and
edit (by clicking on the bold text) the flush mode
(always
FlushChanged) and the concurrency mode (always
WWCheckNoReadFlag for a multi-user database,
SingleCheck for a single user database). Note that
there must always be at least one area, either
ArtBase-Administration (for system administrators) or
Administration (for normal users), and that this has
the concurrency mode of
WWCheck.

Figure 12. Setting concurrency mode.
As
can be seen from the figure, MetaEdit+ projects
are
accessed via a logical area that has the name of the project (adjusted for file
name conventions), plus the letter ‘
l’
(lowercase ‘L’).
From the list’s pop-up menu you can
browse an
area (see Section
3.3.3),
add
rights for this user to another area
, or
remove
rights for this user to the selected area. When adding, make sure that the
concurrency mode is correct.
Remember also that a user must have access rights to all
areas he will need, including areas containing metamodels, and areas containing
data linked to data he will be using. If a user attempts to examine data in an
area to which he does not have access, an error will
result.
Set constants: Fine tuning memory settings
ArtBase maintains a cache of all objects read from the
database, to speed up access times by reading objects from memory rather than
across the network or from disk. There are various settings that affect the size
and behaviour of this cache, and the normal user can edit his settings via the
Fine Tuning button on the User page of the Options Tool. The system
administrator can edit all users’ settings via the
Set constants:
button in each user’s User Browser. The default ArtBase settings (shown on
the right) tend to be somewhat small for a full MetaEdit+ repository, and so the
initial settings for
sysadmin and
user in the MetaEdit+ repository increase some of the
values (
Figure 13).
The values of greatest interest are those beginning with
Max or Min: these specify
the bounds above which objects will be flushed from the cache, and below which
objects will not be flushed from the cache.
The current size of the image, and amount and size of
persistent objects in the cache, can be seen by selecting Repository |
Statistics... in the main Launcher. By checking those values for a
‘typical’ session, and knowing the amount of physical and swap
memory on a user’s platform, you can estimate efficient values for the
settings.
In general, if the operating system seems to be using disk
swap space all the time, you should allow the ArtBase cache to be flushed
earlier, by decreasing the
Min and/or
Max values. Similarly, if the ArtBase cache seems to
be flushing often (visible in the Repository Transcript in the Launcher, and
also as a pause of a minute or so while no actions are possible), and you have
sufficient physical memory, you should try to prevent the ArtBase cache flushing
so soon, by increasing the
Min and
Max values.

Figure 13. Fine tuning cache and memory.
3.3.3 Areas
Pressing the Areas button in the
System Administration Launcher opens an Areas Browser, shown below. All the
areas in the repository are shown in the list on the left, with logical areas in
bold. Selecting an area will show its information on the right. There is
substantially more information given for physical areas, as they exist as
directories and files, whereas logical areas exist only as data structures in
the Administration-Common physical area. The settings
shown for the selected mcc physical area are the
defaults for new projects, and should not normally be changed: make backup, not
read-only, and for a multi-user database protection mode
Public.

Figure 14. Areas Browser.
The list
has a pop-up menu that allows you to
browse the selected area: it also
includes other options that we do not recommend you use. MetaEdit+ creates the
necessary logical and physical area (together known as an application), assigns
user access rights, and initialises area global variables, when you create a
project
: creating areas with ArtBase leaves them
uninitialised. Similarly it is not recommended to delete areas: there may well
be links from data in other areas, and errors will result if the area is
deleted.
You can however rename a project, by using the
rename option for its physical area, and its logical area, which
must have the same name as the physical area, plus
‘l’ (lowercase L). This only affects the
user-visible project name, not the path. The project must not be open for you or
any other user in a transaction overlapping with your current
transaction.
To edit paths, click on the path name in bold text on the
right (e.g.
mcc in the figure): only do this if no
other users are logged in. Entering a new path name will create that directory,
and when you commit, all files will be moved to the new directory and the
database’s
manager.ab
file will be updated. The old directory may be deleted by hand.
The
maintenance menu contains actions that operate
on the selected area: it can also be accessed in the Area Browser for a single
area.
collect garbage removes objects that are no longer referenced, and
as such could never be used.
condense versions removes all but the latest
version of each object: versions of previous states of objects are kept by
ArtBase, but are not currently available for use in MetaEdit+, because of the
problems of inconsistent versions of related objects coexisting.
unlock
objects does just that: clears any locks on objects
in this area, useful if a user has crashed and his locks remain in the database,
but obviously extremely dangerous if other users are logged in.
update
position table and
delete dynamic
tables may be necessary if the database has ended up
in a bad state because of a client or server crash
or
hardware failure.
In the main menu again,
collect global garbage and
condense database are similar to those in the
maintenance menu,
but operate on the whole repository.
maintain
database performs both of these, and some other
tidying up operations, and is also available from the Repository page in the
MetaEdit+ Options Tool, as
Garbage Collect.

Figure 15. Areas menu with maintenance menu.
Choosing
browse when a logical area is selected opens a browser on that area that
shows which physical areas are referenced by the logical area: i.e. which
physical areas the user can access if he has the rights to the logical area. In
MetaEdit+ projects, each logical area has only one physical area, the only
difference in their names being a letter
‘
l’ at the end of the logical area’s
name. The
maintenance button opens the same menu as in the Areas Browser.
The
Browse scripts button allows you to open a
browser on the open or close scripts for the area. In MetaEdit+, these are used
to pre-load the types defined in that area, and to remove them when the area is
closed. The scripts are automatically generated and should not be
edited.

Figure 16. Logical area browser.
Choosing
browse when a physical area
is selected opens a
browser on that area that is essentially the same as the logical area browser,
plus the information shown in the right of the Areas Browser when a physical
area is chosen, and without the hierarchy list: physical areas cannot contain
other
areas.
3.3.4 Network Disks
The
Network Disks button in the
System Administration Launcher opens a browser on the Network Disks translations
for the repository. Each entry in the browser consists of a component from the
start of a path of some file in the repository, and a similar component that
would access the same path from another platform. If you have used relative
paths throughout, as recommended, it will not be necessary to specify such
translations, but if you specify an absolute path
by hand
for a database directory in
artbase.roo, or an area
directory in the Areas Browser, you will need to specify network disks
translations for accesses to that path from platforms that do not share the same
root directory. This applies to the multi-user version, and also to the single
user version in the case that the repository is stored on a remote file system,
with paths according to the conventions of that file system.
When ArtBase tries to access a database file and is told
by the operating system that the file does not exist, it scans the list of
network disk translations to see whether any entry on the left matches the start
of the path which was not found. If so, it replaces the matching part of the
path with the entry on the right, and tries again.
Note that translation
of / and \
happens automatically, according to the client and server platforms, and
U or
F in front of file
names in the repository’s
manager.ab info file.
Similarly, your operating system and network will convert file names that do not
match your platform’s rules: this can create problems with restrictions on
file name length and case sensitivity. MetaEdit+ automatically generates path
names for projects, according to the rules of the platform being used as client
when the project is created. If other client platforms have stricter rules about
which characters may be used or how long names may be, you should either obey
those yourself in naming the project, or edit the path later from the Areas
Browser.

Figure 17. Network disks translations.
From the pop-up menu
you can add a new translation, or remove or change the
selected translation.
In the figure, the
/home/metaedit path specified is the real path from
the server: however, a PC client could not access this file directly with that
path, but rather can mount that path as its drive
M:.
Thus when the PC client tries to access any file names beginning with
/home/metaedit, e.g.
/home/metaedit/db/areas/uml/uml.aob, it fails to find
that path (translated to the PC path name convention of
\ not
/) and tries again,
translating the first part to
M:\, i.e.
m:\db\areas\uml\uml.aob. All being well, it finds this
file and continues without the user noticing anything. If the path is still not
found, the user will be prompted to enter another path: that new path can be
saved in the repository, thus overwriting the path there (not generally
advisable: the path should be according to the server’s directory
structure and conventions), or to use that translation for the duration of the
current session
only.
3.3.5 Close
Closes the System Administration
Launcher.
3.3.6 Options
Pressing the Options button in the System
Administration Launcher opens a dialog where you can choose how to select users
and areas in ArtBase tools: by menu or
by cursor. Keep the choice as by
menu.