Operating System - OpenVMS
1827849 Members
1925 Online
109969 Solutions
New Discussion

Re: Creating clusterwide logical name tables

 
SOLVED
Go to solution
Jim Geier_1
Regular Advisor

Creating clusterwide logical name tables

How does one create a clusterwide logical name table in OpenVMS Alpha 7.3-2 or 8.2?

Looking at the output from SHOW LOGICAL /FULL /TABLE=LNM$SYSTEM_DIRECTORY, I see that there is a characteristic "clusterwide" associated with entries in that table that are clusterwide logical name tables, e.g.

LNM$SYSCLUSTER_TABLE [kernel,no_alias,table,clusterwide]

I do not see a means of associating that characteristic using the CREATE/NAME_TABLE DCL command or even in the documentation for the $CRELNT system service. What is the secret to creating a clusterwide logical name table?
10 REPLIES 10
Wim Van den Wyngaert
Honored Contributor

Re: Creating clusterwide logical name tables

I'm on 7.3 but I guess you need to specify :
create/name=xxx/parent=LNM$SYSCLUSTER_TABLE
to create one.
And add it to lnm$file_dev too of course.

Wim
Wim
Ian Miller.
Honored Contributor

Re: Creating clusterwide logical name tables

Try
$ CREATE/NAME_TABLE/PARENT=LNM$SYSCLUSTER_TABLE
____________________
Purely Personal Opinion
Jim Geier_1
Regular Advisor

Re: Creating clusterwide logical name tables

I thought of using lnm$syscluster_table as the parent, but the documentation explicity says that shared tables must have lnm$system_directory as their parent. And, all of the clusterwide logical name tables do appear to follow that rule. For example, the following are all listed in lnm$system_directory, and none are listed in lnm$syscluster_table:

CLU$ICC_ORBS_HCPA [exec,table,clusterwide]
CLU$ICC_ORBS_HCPB [exec,table,clusterwide]
CLU$ICC_ORBS_HCPC [exec,table,clusterwide]
CLU$ICC_ORBS_HCPQ [exec,table,clusterwide]
CLU$ICC_ORBS_ICC$ [exec,table,clusterwide]
HBMM$DEVICE_POLICY_TABLE [kernel,no_alias,table,clusterwide]
HBMM$NAMED_POLICY_TABLE [kernel,no_alias,table,clusterwide]
ICC$REGISTRY_TABLE [exec,table,clusterwide]
LNM$CLUSTER_INTRUSION_TABLE [kernel,no_alias,table,clusterwide]
LNM$CLUSTER_TABLE [kernel,no_alias,table,clusterwide]
LNM$DEV_WWID_TABLE [exec,no_alias,table,clusterwide]
LNM$SYSCLUSTER_TABLE [kernel,no_alias,table,clusterwide]

I don't think that lnm$syscluster_table is a logical name table directory, like lnm$system_directory and lnm$process_directory are (I'm sure I could be wrong, though).
Jim Geier_1
Regular Advisor

Re: Creating clusterwide logical name tables

I was wrong, and this behavior is quite non-intuitive. Creating a logical name table with /parent=lnm$syscluster_table makes the logical name table cluster-wide, AND places it in the lnm$system_directory. The "clusterwide" attribute is not set but the table behaves much like a cluster-wide logical name table:

$ create/name_table/nolog/prot=(s:rwed,g:r,w:r)/exec -
/parent=lnm$syscluster_table jimgeier_cluster_table
$
$! Even though the parent was set as lnm$syscluster_table
$! the logical name is not in lnm$syscluster_table
$
$ show logical/full/table=lnm$syscluster_table jimgeier_cluster_table
%SHOW-S-NOTRAN, no translation for logical name JIMGEIER_CLUSTER_TABLE
$
$! But it IS in lnm$system_directory
$
$ show logical/full/table=lnm$system_directory jimgeier_cluster_table
"JIMGEIER_CLUSTER_TABLE" [exec,table] = "" [terminal] (LNM$SYSTEM_DIRECTORY)
$
$! The logical name in the system directory does not
$! have the "clusterwide" attribute, but it is accessible
$! cluster wide (two systems in this cluster)
$
$ define/table=jimgeier_cluster_table jimgeier 112358
$ sysman do show logical/table=jimgeier_cluster_table
%SYSMAN-I-ENV, current command environment:
Clusterwide on local cluster
Username JGEIER will be used on nonlocal nodes

%SYSMAN-I-TIMEVAL, timeout value is 0 00:00:30.00
%SYSMAN-I-OUTPUT, command execution on node HCPU
(JIMGEIER_CLUSTER_TABLE)
"JIMGEIER" = "112358"
%SYSMAN-I-OUTPUT, command execution on node HCPT
(JIMGEIER_CLUSTER_TABLE)
"JIMGEIER" = "112358"

So there are still some questions here ... how does the "clusterwide" attribute get set, and is this REALLY the proper way to create a cluster-wide logical name table. What works is (1) non-intuitive, (2) not documented where I could find it, and (3) leaves some questions unanswered, like how do these other tables get created with the "clusterwide" attribute.
Robert_Boyd
Respected Contributor
Solution

Re: Creating clusterwide logical name tables

Directly from the OpenVMS Cluster Systems documentation:


LNM$CLUSTER_TABLE: The parent table for all clusterwide logical name tables, including LNM$SYSCLUSTER_TABLE. When you create a new table using LNM$CLUSTER_TABLE as the parent table, the new table will be available clusterwide.


Robert
Master you were right about 1 thing -- the negotiations were SHORT!
Robert_Boyd
Respected Contributor

Re: Creating clusterwide logical name tables

I forgot to add -- the documentation I quoted is in 5.4.1 Default Clusterwide Logical Name Tables of the OpenVMS Cluster Systems manual for V8.2
Master you were right about 1 thing -- the negotiations were SHORT!
Jim Geier_1
Regular Advisor

Re: Creating clusterwide logical name tables

Good find on the documentation - that was not my first choice to look.

I changed my example to use lnm$cluster_table instead of lnm$syscluster_table as the parent. Nothing really changed, the logical name is entered into the lnm$system_directory, the "clusterwide" attribute is not set, but the table is available cluster-wide. How does that attribute get set, and how important is it?
Robert Brooks_1
Honored Contributor

Re: Creating clusterwide logical name tables

For V8.2, there is the $ DEFINE /CLUSTER_SYSTEM

DEFINE

/CLUSTER_SYSTEM

You must be signed in to the SYSTEM account or have SYSNAM
(system logical name) or SYSPRV (system) privilege to use this
qualifier.

Defines a clusterwide logical name in the LNM$SYSCLUSTER table.
Robert_Boyd
Respected Contributor

Re: Creating clusterwide logical name tables

It appears that only logical names created in a clusterwide logical name table get the "CLUSTERWIDE" bit flagged, not the table itself. To me this is a design flaw. The only way I can find to verify that a particular table is in fact clusterwide is to use the command

$ SHOW LOGICAL/DESCENDANT/TABLE=LNM$CLUSTER_TABLE

Also, how does one get at the name of the parent table of a logical name table?

The lexical F$TRNLNM doesn't appear to have any item code for doing this. The item TABLE_NAME returns LNM$SYSTEM_DIRECTORY. There doesn't appear to be a PARENT_TABLE_NAME item code. I suppose there might ought to be a separate system service to match $CRELNT, such as $SHOW_LNT. It seems like it would be easier to add the PARENT_TABLE_NAME item code to $TRNLNM.

Robert

Master you were right about 1 thing -- the negotiations were SHORT!
Robert_Boyd
Respected Contributor

Re: Creating clusterwide logical name tables

Another clever way to test if a logical name table is clusterwide is to define a dummy logical name in the table and check the translation of that logical name to see if the CLUSTERWIDE flag is set for it. Then you deassign the dummy name.

Robert
Master you were right about 1 thing -- the negotiations were SHORT!