| Hi,
Not a direct answer to your question but your MODPARAMS should contain
something like:
LOCKIDTBL = 2048
RESHASHTBL = 1024
I don't think it make any sense to specify two times the same value,
even in combination with the 'MIN_' prefix (use a '_' instead of a '-').
Because it is advised to round up the value of RESHASHTBL to the nearest
power of 2 you better specify a fixed value.
Sjaak.
|
|
For information this is some background on these two parameters
Size of RESHASHTBL and LOCKIDTBL
Resources
o The resource hash table locates all the resource blocks in use. A
resource block is created when a lock is first taken out on an entity
e.g a file or a record in a file.
For example you enter ALL-IN-1 and open DOCDB.DAT. RMS will take out a
lock on that file. It needs first to create a resource block to take a
lock out on. When you open PENDING.DAT it is probable that others have
this file open and so a resource block has already been created. In
this case you will not create a resource block because there is already
one there.
o When a resource block is created it is give a unique name. Most RMS
locks are of the form RMS$....diskname.
o When you create a resource block an entry is added to the resource hash
table. The entry is a pointer to the resource block or a chain of
resource blocks. The entry number is determined by hashing the name of
the resource using a hashing algorithm. Because the hashing algorithm
may not lead to a unique number the resource block may be added to a
chain of resource blocks with that hash value or entry number.
o The size of the resource hash table never expands unless the RESHASHTBL
system parameter is modified and the system rebooted. If it is set at
too small a value, then you will get long chains for each hash value.
This will increase the time taken to look up a resource.
Locks
o When a lock is taken on a resource then a lock block is created. One
resource may have many locks. For example many users may have the same
file open.
o Each lock has an identity number called a lock ID. This number is an
index number into the Lock ID table. When a lock is created it is given
the next available index number. Index numbers which have been released
will be used again. Unlike the resource hash table, the entry in the
Lock ID table will point directly to the lock block.
o If the Lock ID table becomes full that is the number of locks reaches
the value of the system parameter LOCKIDTBL, then a new table is
created whose size will be the old size plus LOCKIDTBL (i.e it will
double in size on the first expansion). The entries from the old table
will be moved to the new table.
From the above the following conclusions can be drawn.
o In the long run it is better (although not good) to have too small a
lock ID table than resource table. Too small a lock table will mean
that the system will pause for a moment while a new Lock ID table is
created. Too small a resource table will mean a permanent slowing down.
o The proportional size of the Lock ID table and Resource hash tables
should be proportional to the number of resources and Locks created.
You can see how many locks and resources there are on any system by
issuing the command $monitor locks. On most ALL-IN-1 systems this will
be in the proportion 2:1. You should do this check both to ensure that
the proportion is right and the values are right.
o Because ALL-IN-1 uses many unshared files such as the DOCDB and PDAF,
many resources will have only one lock taken out on them. This is why a
proportion of 2:1 is recommended rather than the VMS recommended value
of 4:1.
o The size of the resource hash table should be a power of two. This is a
side effect of the hashing algorithm.
Mark
|