This chapter discusses all of the files and directories used by the StreetTalk directory service. In addition, this chapter contains information on two UNIX utilities that you can use to troubleshoot your StreetTalk service. They are:
stanly, the StreetTalk database analysis utility stclient, the StreetTalk client API test utility
The /disk1/banyan/st directory contains files used by the Banyan StreetTalk service. This directory contains many files and two directories: Attributes and cores. Figure 3-1 shows the structure of the /disk1/banyan/st directory.
The files in /disk1/banyan/st are as follows:
compact (Executable)
Reduces the amount of disk space consumed by the STGRP.n files. This program is run during system initialization.
DMJn.m (Database)
Contains journal information describing changes to the STGRP file. The n is the STGRP file number, while m is the iteration of this group file. For example, if DMJ1.0 gets too large, additional information is recorded in DMJ1.1.
DMJnM (Database)
Points to the most recent version of the DMJn.m file, usually the one with the largest value for m.
DMSTFile (Database)
Master file containing group information, such as the server on which groups can be found.
dorebuild (Script)
Runs the rebuild utility to rebuild the STGRP.n files. This program runs during system initialization.
goodbad (Executable)
Tests the integrity of the STGRP.n files. See "goodbad" later in this chapter for more information.
initscript (Script)
Used by scripts in the /disk1/banyan/ss directory to add default services, such as AMS, VS and WAN, during an upgrade.
jrnldump (Executable)
Reads and prints the contents of ENS journal files.
outfile (Database)
Temporary file created by stclient during a server installation.
quick (Executable)
Byte editor that can be used to change byte values in a file and write the file to disk.
rebuild (Executable)
Rebuilds the STGRP.n files. This executable is run by the dorebuild script.
Reinforceid (ASCII)
Stores the high-order 16-bits of a 32-bit StreetTalk reinforce ID number. This string is used in some of the StreetTalk synchronization packets.
STGRP.1, (STGRP2, STGRP3...) (Database)
There is one STGRP.n file created for each StreetTalk group maintained on this server. You can have up to 50 group files resident on a Banyan server at any one time.
STHeardfrom (Database)
Contains an entry for each server heard from, its current port, and how many hours it has been since the server has been heard from. This file is updated once per hour.
st (Executable)
StreetTalk executable.
stanly (Executable)
StreetTalk analyzer utility.
startup (Text)
Log of the startup process.
stclient (Executable)
Menu driven program that allows you to manipulate StreetTalk data.
stk.err (ASCII)
List of currently defined StreetTalk errors.
stscript (Script)
Used during server initialization to create the first objects in the servername@servers database.
vsSTscript (Script)
Adds the VINES Security service during a server upgrade.
vsstclientscr (Script)
Identical to vsSTscript.
amsevents.map (Database)
Standard Banyan service file, as explained in Table 1-1.
cleanup (Script)
Standard Banyan service file, as explained in Table 1-1.
dumpscript (Script)
Standard Banyan service file, as explained in Table 1-1.
ST0.log (ASCII)
Standard Banyan service file, as explained in Table 1-1.
ST1.log (ASCII)
Standard Banyan service file, as explained in Table 1-1.
startup (Script)
Standard Banyan service file, as explained in Table 1-1.
svclog2 (Database)
Standard Banyan service file, as explained in Table 1-1.
SvcLogs (ASCII)
Standard Banyan service file, as explained in Table 1-1.
When StreetTalk is not working properly, it appears on the service monitor in one of two states:
Inoperative - This usually means that an important StreetTalk service component is missing from /disk1/banyan/st. Check for these components:
st, the StreetTalk executable Log files such as ST0.log, ST1.log, and svclog2 SvcLogs
Inconsistent - This usually means that there is a problem with the data maintained by StreetTalk. This data may be in any of the following files:
DMSTFile, the master StreetTalk data file STGRP.*, the StreetTalk group databases STHeardfrom, a database of services that the server knows about
The sections that follow provide guidelines for analyzing and resolving these problems.
Whenever StreetTalk is having problems initializing, you should check the initialization log svclog2, which is generated by the Server service when it starts StreetTalk. The errors you are most interested in when the service fails are at the end of the file. You can read the last ten lines of the log with the UNIX tail command.
The goodbad command is a simple way to test the integrity of StreetTalk group files. Always shut the service down before running this command.
Make a copy of the file and run goodbad on the copy, as in the following example (where n is the StreetTalk group file number):
cp STGRP.n save
goodbad save
The screen displays either "File tests as good" or "file tests as bad".
If the STRGRP file is bad, you can try to rebuild it with the dorebuild command.
This command rebuilds a StreetTalk group file. The StreetTalk service should be stopped when you run this command. Use the following command format:
dorebuild STGRP.n
where n is the number of the STRGP file to rebuild.
The following example shows a complete dialogue of this command:
Banyan> dorebuild STGRP.1
Attempting database rebuild of file 'STGRP.1'. Fri May 27 14:48:08 EDT 1994
Re-building old file STGRP.1 into new file REBUILD.973
Checking new file REBUILD.973
File Checks OK
Done
Rebuild completed on 'STGRP.1'. Fri May 27 14:48:09 EDT 1994
Rebuilding StreetTalk Data from Tape Backup
Occasionally, you may need to rebuild your StreetTalk databases from tape backup. During any full or incremental backup, the first files backed up are the system database files. These files are listed in the file /disk1/banyan/dump/banfiles.
If your StreetTalk service is not working properly, you can use these files to rebuild your StreetTalk database files like DMSTFiles, STRGRP files, and STHeardFrom.
Caution: Always create a temporary directory to receive the files from the backup. Do not copy files from tape to the root partition of your server. Doing this could fill the root partition of your hard disk and could result in a server crash. The examples in this section use the directory /disk1/banyan/tmp.
To Rebuild StreetTalk Databases from Tape
1. Shut down the server. Be sure that the StreetTalk service is stopped.
2. Log in to UNIX on your Banyan server.
3. Create a temporary directory on one of the /diskn partitions:
mkdir /disk1/banyan/tmp
4. Change directory to the tmp directory:
cd /disk1/banyan/tmp
5. Install the first tape of your most recent backup into the appropriate drive.
6. If your server is an Intel-based computer, enter the following command:
tbantape -lf 1 st
This procedure restores to the current directory all files backed up from /disk1/banyan/st. You can then select the files that you want to copy from the temporary directory to your StreetTalk home directory (/disk1/banyan/st).
The stclient utility exercises StreetTalk client APIs. Many of these APIs are described in the StreetTalk and STDA Programming Interface, which is available with the Banyan Applications Toolkit.
Caution: The stclient utility was developed by Banyan engineers to diagnose problems with the StreetTalk APIs during new product development and testing. This is not a polished piece of end-user software. It directly modifies StreetTalk database files and operating parameters, and should be used with extreme care by trained personnel.
Before you run stclient, your StreetTalk name must appear on the server adminlist (adminlist@servername@servers). You must also create a temporary directory, such as /disk1/banyan/st/tmp, and copy the contents of /disk1/banyan/st to that directory. You can then run stclient on the data in the temporary directory without endangering your service data.
1. Log in to UNIX on the Banyan server and change directory to /disk1/banyan/st.
2. Enter this command at the UNIX prompt:
stclient
This prompt appears:
VINES Name:
3. Enter your StreetTalk name at the prompt. This prompt appears:
VINES Password:
4. Enter your password.
5. Enter ? to display the StreetTalk Interface menu, shown in Figure 3-2.
Each option on the StreetTalk Interface menu is described in the sections that follow. Options are discussed in alphabetical order.
[a] Add object
This option allows you to add an item to the StreetTalk database. You can add a user, a list, a group, a service, or a nickname.
Note: You cannot add a StreetTalk item with an unspecified class on a version 6.xx Banyan server.
[A] Test Attributes
This option is reserved for use by Banyan personnel.
[b] Beautify a Name
This option tests the VnsFormatSStName function, which returns a StreetTalk name formatted just as it appears in the StreetTalk database. You can see the original format of any group, organization, or item. A sample dialogue is shown below.
Choose Option (? for option list): b
Beautify Org [o], Group [g], or Item [i]? i
Class Types (or newline):
[u] User
[s] Service
[l] List
[n] Nickname
[g] Group
Unspecified Class
Choose Class: u
Name: ralph branca@finance@wctus
Nice Name is: Ralph Branca@Finance@WCTUS
[c] Get Server Name/Port
To get the IPC port of a Banyan server
in your network, follow these steps:
1. At the StreetTalk Interface menu, enter c. This prompt appears:
Server Name:
2. Enter the name of the server whose IPC port you wish to see. Information appears similar to the following:
Server Name = Server1
Port = 0 3 0 2a d0 6e 0 1 0 f 0 0 0 0 0 0
[C] Create new script file
This is part of the scripting technology incorporated into stclient. It is reserved for use by Banyan personnel.
[d] Create Group
This option allows you to create a StreetTalk group. It does not allow you to create StreetTalk shadow groups. For instructions on creating a shadow group, refer to option @.
To Create a Master StreetTalk Group
1. At the stclient main menu, enter d. This prompt appears:
Group Name:
2. Enter the name of the StreetTalk group you wish to create. This prompt appears:
Target server name:
3. Enter the name of the server on which this group should be maintained. This prompt appears:
You are the admin of what group?
4. Enter the name of a groups for which you are an administrator. Your name must appear on the StreetTalk list AdminList@groupname@orgname.
[D] Test Move/Rename Interface
This option is reserved for use by Banyan personnel.
[e] List names matching a Pattern
This option lists StreetTalk names that match an alphanumeric pattern.
To List Names Matching a Pattern
1. At the StreetTalk Interface menu, enter e. This prompt appears:
List Orgs [o], Groups [g], or Items [i]?
2. Enter either o, g, or i. This prompt appears:
Pattern:
3. Enter an alphanumeric pattern, such as *@finance@wctus. (Asterisks and question marks are legal wildcard characters.) If you chose to list items in step 2, enter a three-part StreetTalk name. If you chose to list groups, enter a two-part StreetTalk name. If you chose to list organizations, enter a one-part name. This menu appears:
Class Types (or newline):
[u] User
[s] Service
[l] List
[n] Nickname
[g] Group
<CR> Unspecified Class
Choose Class:
4. Enter the class of the objects that you want to list. For example, if you want to list services, enter s. The list of StreetTalk objects appears.
[E] Enumerate Test
This command tests the VnsListSStName function. A sample of the output from this command is shown in Figure 3-3.
[F] Forget Group
This option forces all servers in the network to erase any data associated with a given StreetTalk group. Only the server on which the group resides retains any knowledge of the group. Periodically, servers broadcast information about the groups they maintain. This way information about the group, and its proper owner, is redistributed.
This function is used when servers in a Banyan network believe that two different servers own the same group as in the following example.
Example Fixing a Duplicate Group Problem
Suppose two networks both have a group established called Finance@Headquarters. On Network A, the group Finance@Headquarters is maintained on server Z. On Network B, the group Finance@Headquarters is maintained on Server X. Figure 3-4 shows these networks.
Now suppose that two events happen:
1. Server Z is taken off Network A for a week.
2. On Friday of that week, a temporary link is established between Server X and a server in Network A. This allows an exchange of StreetTalk information between the two networks. As a result, the Servers in Network A now recognize Server X as the owner of the group Finance@Headquarters.
Note: This section discusses duplicate entries in network A. The administrator of network B must perform the same steps described here to clean up the StreetTalk database in that network.
When Server Z is reconnected to Network A, and claims ownership of Finance@Headquarters, it is ignored by the other servers in Network A. This is because their StreetTalk data tells them that Server X is the owner of Finance@Headquarters.
The administrator of Network A, having run StreetTalk service logs on several servers in that network, discovers that Finance@Headquarters is a duplicated group. The administrator can fix this problem by following these steps:
1. Check to make sure that Server X is not connected to the network.
2. Run stclient from a server in Network A other than Server Z.
3. Choose F from the StreetTalk Interface menu. This causes all servers in Network A to erase any information they have on Finance@Headquarters.
4. Create and delete a group on Server Z. This causes a rebroadcast of all the groups maintained on that server. The other servers in Network A now recognize Server Z as the owner of Finance@Headquarters.
[g] List members of a list
This option lists the names on a StreetTalk list. The dialogue asks for the name of a StreetTalk list. Nested lists are not enumerated. An example of this dialogue follows.
Choose Option (? for option list): g
List Name: testlist@finance@wctus
1: Bob Hayes@admin@wctus
2: BusinessList@finance@wctus
[G] List groups by server name
This option lists the StreetTalk groups maintained on a Banyan server. The dialogue requests the following information:
Group Level - The group level is one of three values: 0, 1, or 2. Enter 0 to see groups that reside on the target server. Enter 1 or 2 to see shadow 1 or shadow 2 groups that are on the target server.
Server - The name of the server whose groups you want to examine.
[I] Input from script file
This is part of the scripting technology incorporated into stclient. It is reserved for use by Banyan personnel.
[j] Rename Object
This option changes the name of a StreetTalk item. Follow these steps:
1. At the StreetTalk Interface menu, enter j. This prompt appears:
Old Object Name:
2. Enter the name of an object to rename. This prompt appears:
Class Types (or newline):
[u] User
[s] Service
[l] List
[n] Nickname
[g] Group
<CR> Unspecified Class
Choose Class:
3. Enter the class that corresponds to the StreetTalk object you entered in step 2. This prompt appears:
New Object Name:
4. Enter the new name of the object. If the rename is successful, then the system prints information in this format:
Object "Glen Levit@finance@wctus" renamed to "Glen Levit@Sales@wctus"
[l] Lookup Object
This option lists information on the screen for a given StreetTalk item. Different information is listed for groups, lists, users, services, and nicknames. Table 3-1 shows the information that is listed for each StreetTalk object.
[L] Test List functions
This function is reserved for use by Banyan personnel.
[m] Add Member to list
This option adds a StreetTalk name to an existing StreetTalk list. The dialogue prompts for the following information:
Member name to add - StreetTalk name to add to the list
...to List name - StreetTalk list name
[M] Move a Group to another server
This option moves a StreetTalk group from one server to another. The dialogue asks for the following information:
Group to Move - StreetTalk group to move from one server to another
Name of Destination Server - Where the group will now reside
You cannot move shadow groups with this option.
[n] Get MM Port
This option returns IPC port 0. When a service boots, it requests ports from the network. Different services require different ports. For example, a file service requires an IPC port for StreetTalk and an SPP port for users who are accessing files.
Port 0 is the first IPC port registered by the service.
[o] Get Ports
This option retrieves all the requested ports registered by a service. Each service can register two ports with StreetTalk: one IPC port and one SPP port. Some services register only an IPC port.
The dialogue asks for the following information:
Service Name - Enter the name of the StreetTalk service whose ports you want to examine.
Port Entry #: - Enter a number from 0 to 4. Port zero is the NetRPC port of the service.
[p] Set a Password
This option allows you to set a user's password. Follow these steps:
1. At the StreetTalk Interface menu, enter p. This prompt appears:
Target Object Name:
2. Enter the name of the user whose password you want to change. This menu appears:
Class Types (or newline):
[u] User
[s] Service
[l] List
[n] Nickname
[g] Group
<CR> Unspecified Class
Choose Class:
3. Enter u. This prompt appears:
Enter Password:
4. Enter the password that you want to establish for the user. The system changes the password and displays the following message:
Password now in effect.
Note: You do not need to know the user's original password to change the password through this menu option.
[P] Propagate Sync Info
This option broadcasts synchronization information to other StreetTalk services in the network. Synchronization information consists of three types of communication packets:
Summary - Every three hours, StreetTalk broadcasts a list of server IDs that it knows about. This allows other StreetTalk services to learn about servers of which they have no knowledge.
Detail - Every three hours, StreetTalk sends information about all of the StreetTalk groups that the local StreetTalk is responsible for maintaining.
Welcome - When a server receives information about a server it does not know about, it sends a welcome to that server.
[q] Logout
This option returns you to the UNIX prompt.
[r] Remove Object
This option removes an object (user, list, nicknames, group, or service) from the StreetTalk database.
To Remove a StreetTalk Object
1. At the StreetTalk interface menu, enter r. This prompt appears:
Name:
2. Enter the name of an object to remove from the StreetTalk database. This prompt appears:
Class Types (or newline):
[u] User
[s] Service
[l] List
[n] Nickname
[g] Group
<CR> Unspecified Class
Choose Class:
3. Enter the type of object that corresponds to the name entered in step 2. This prompt appears:
Associated Record # (or newline):
4. Press Enter. The item is deleted from the StreetTalk database.
[R] get Rev and Caps info
This option returns information about the capabilities of the local StreetTalk. It is used by StreetTalk to check a peer StreetTalk service's supported features before requests are issued to that StreetTalk. This is necessary for two StreetTalk services of different revisions to communicate.
[s] Membership Test
This option tests whether a StreetTalk name is on a specified StreetTalk list. The dialogue asks for the following information:
Candidate name: - The name whose membership you wish to test.
List name: - The StreetTalk list to examine for the candidate name.
Closure search? [y or newline] - If you answer y, all nicknames and nested lists are resolved down to their original StreetTalk names.
[S] Stats
This option returns statistics that describe the current state of your StreetTalk database. When you enter S at the StreetTalk Interface menu, the menu shown in Figure 3-5 appears.
Sample output and descriptions of the statistics accessible from this menu are described in the sections that follow.
Enter 0 at the Page: prompt to return general service information. Figure 3-6 shows a sample of this output.
The screen shows the following information:
counters are - ON or OFF. When counters are on, StreetTalk collects the information that is displayed on this screen, and elsewhere in the stclient statistics menus. If counters are off, this information is not collected.
You turn counters on or off by entering 9999 at the stclient statistics menu.
Note: Having counters on can slow system performance. The default is OFF.
server name - The name of this server.
start time - The time that counters are turned on. Many of the statistics are shown in one-minute, five-minute, and ten-minute intervals. This field shows the time at the start of these intervals.
server id - The Banyan Network ID of the server. This number is determined by the Server Code that you enter when you install VINES or from the Server Key.
new sessions - The number of StreetTalk sessions that have started in the last minute, the last five minutes, and the last ten minutes.
open sessions - The number of currently open sessions with the local StreetTalk.
authenticate failures - The number of user name/password authentication requests that were rejected by the VINES Security service.
porttbl index - The number of servers in the network that this StreetTalk instance knows about.
porttbl scans - The number of times that StreetTalk has searched the Port Table.
dircalls - The total number of StreetTalk calls processed by the StreetTalk on this server.
103 errors - Occurrences of error 103. These errors are caused by malloc() problems in the Banyan tasker. Often, these errors indicate that StreetTalk is encountering memory constraints that are causing it to lose requests.
socket pool size - The number of sockets that can be opened at one time. This indicates the number of requests deflected to other StreetTalks.
comm queue size - This value is always 10. The StreetTalk communications queue contains outstanding requests that are held by the communications interface, and are waiting for processing by the StreetTalk service.
total 162 errors - Occurrences of Error 162, which indicates that the Banyan Communications interface is overloading the StreetTalk communications queue and is dropping requests. This can be caused by a heavy load that forces requests to a StreetTalk agent whose communications queue is currently full.
core file data - Time and date stamp of the file /disk1/banyan/st/core. If a core file exists, this is the last time that StreetTalk crashed. Recent core files should be investigated by trained personnel.
Enter 1 at the Page: prompt to list operation counts. Figure 3-7 shows a sample of this output.
This screen displays the number and type of requests received by the given StreetTalk service over the last minute, the last five minutes, and the last ten minutes. The functions listed are described in the StreetTalk and STDA Programming Interface under the names shown in Table 3-2.
Enter 2 at the Page: prompt to list operation counts. Figure 3-8 shows a sample of this output.
This screen shows the type and frequency of the synchronization packets sent to and from the StreetTalk service on this server. Synchronization packets are used to help keep the StreetTalk database up to date and to distribute information about changes to StreetTalk across the network.
There are four types of StreetTalk synchronization packets:
NEED packets request information from a specific server. These packets are sent to any server for which information is incomplete. When a server receives a NEED packet, it sends summary and detail information to the requesting server. MEED packets have a similar purpose for Banyan servers earlier than revision 5.00. SUMMARY packets contain a list of all the server serial numbers that the local StreetTalk knows about. DETAIL packets contain information on all StreetTalk groups that the local StreetTalk maintains. WELCOME packets are sent to any server that boots up on the network.
The screen in Figure 3-8 displays the following information:
kernlmsgs - Messages received from the UNIX kernel on this server. This usually indicates a hardware problem of some kind, or a broadcast of another network server coming on line.
VS events - The number of packets sent by this StreetTalk service to the VINES Security service.
gating - YES or NO (enabled or disabled). Gating is enabled when a server has more than one communications card installed.
income - Old packets received. (These are packets sent by StreetTalk revision 4.11 and earlier.)
new income - New packets received. (These are packets that originate on Banyan servers of revision 5.00 and greater.)
WEL inbound - WELCOME packets received by this StreetTalk service. Welcome packets are sent to servers when they first boot up on the network.
SUM inbound - Summary packets received by this StreetTalk service.
NEED inbound - The number of NEED packets received.
NEED props - NEED packets sent by this StreetTalk service.
DET inbound - Detail packets received by this service.
MEED props - The number of MEED packets sent from this server.
WEL outbound - WELCOME packets sent by this service.
SUM outbound - Summary packets sent by this service.
NEED outbound - Request for Information packets sent from this server. This is the total number of NEED and MEED packets sent from this server.
DET outbound - DETAIL packets sent by this StreetTalk service.
route exists - Routing packets are used to test the route to a server before any packets are sent to that server. This is the number of routing packets sent by this StreetTalk service, and acknowledged by the target server.
This page records the number of type of StreetTalk database transactions that have occurred since the last reboot of the StreetTalk service. These statistics are reserved for use by Banyan personnel.
These options are reserved for use by Banyan personnel.
This option toggles the StreetTalk counters on and off. These counters are used to collect statistics on operation counts and other service information. Turning counters OFF improved the performance of StreetTalk.
[t] Test Setting Ports
This option is reserved for use by Banyan personnel.
[T] print the current time
This option displays the server time on the screen. An example follows, with the user response in bold type:
Choose Option (? for option list): T
Current time is Tue Nov 29 09:55:15 1994
[u] Update Object
This option updates an associated record. It is often used during testing to update associated record zero for a given StreetTalk item. Associated records are documented in the StreetTalk and STDA Programming Interface.
[U] Test Associated Records
This option is reserved for Banyan internal use.
[V] Local Name
This option allows you to create, change, and manipulate mappings between NetWare bindery entries and StreetTalk names. See your ENS for NetWare documentation for more information.
[v] Validate a user
This option checks the password of a user, and lists the default organization and group of that user. To validate a user, follow these steps:
1. Select v from the StreetTalk Interface menu. This prompt appears:
Target Object Name:
2. Enter a StreetTalk user name or nickname. This menu appears:
Class Types (or newline):
[u] User
[s] Service
[l] List
[n] Nickname
[g] Group
<CR> Unspecified Class
Choose Class:
3. Enter u or s. Other values are not applicable. This prompt appears:
Password:
4. Enter the password of the user or service. Passwords for Banyan services can be found in the file /disk1/banyan/ss/svc3.db. If the password you enter is valid, information appears on the screen in this format:
Password is valid. Default org is WCTUS, Default domain is eng.
[x] Delete Member From List
This option deletes a StreetTalk name from an existing StreetTalk list. The dialogue asks for the following information:
Member name to delete - StreetTalk name to delete from the list.
...from List name - StreetTalk list name
[X] Synch data
Synchronization data describes the last known information received about a StreetTalk group.
To request synchronization data for a StreetTalk group
1. At the StreetTalk Interface menu, enter X. This prompt appears:
Group Name:
2. Enter the name of the StreetTalk group whose synchronization data you wish to examine.
The information returned is divided into seven fields:
Group - The group name requested by the user.
Location - The NetRPC port of the StreetTalk group that this StreetTalk believes owns the group. This information may not reflect very recent changes in the group's residence. Only the Master location of the group is shown. Shadow groups are not shown.
NetGrpID - A unique, 32-bit group ID.
DatabaseID - An ID assigned by the StreetTalk instance and retained for the life of the server.
ChangeID - For servername@servers. It increments every time a group is added or deleted from the server.
MiscInfo - Internal flags used by StreetTalk.
DomSeqNum - A revision number for the group. It increments each time a group is changed.
[z] Delete Group
This option deletes a group from the network. The dialogue requests the following information:
Group Name - Enter the name of the group you wish to delete.
Target Server Name - Enter the name of the server on which the group resides.
You are admin of what group - Enter the name of a group. Your StreetTalk name must appear on the AdminList of this group.
When you select this option, the menu in Figure 3-9 appears on the screen.
The options on the Admin Shadow Group menu are as follows:
[g] Change Target Group Name - All of the options on the Admin Shadow Group menu of stclient require a target StreetTalk group. Establish the target group with this option. The dialogue asks for the name of a StreetTalk group.
[1] Add / Delete Shadow Site - Creates or deletes a shadow group of level 1 or 2 on a specified server. At the prompt "Enter slot <1, 2, -1 for delete>," enter 1 for a shadow 1 group, 2 for a shadow 2 group, or -1 to delete a shadow group. At the "Name of shadow server" prompt, enter the name of the server where you are adding or deleting the shadow group.
[2] List locations - Shows the name of the servers that support the Master, shadow 1, and shadow 2 for this group.
[3] last update of group (raw format) - Returns the 32-bit UNIX time value of the last update sent or received concerning this group.
[4] last update of group (string format) - Returns the formatted UNIX time value of the last update sent or received concerning this group.
[5] Force all requests to shadow 1 - Causes all requests to go to shadow 1 of the target group.
[6] Force all requests to shadow 2 - Causes all requests to go to shadow 2 of the target group.
Note: Once you select option 5 or option 6, the only way to redirect requests back to the Master Group location is to start and stop the StreetTalk service.
[7] Force Group update to a shadow - Forces a full group update to the shadow site. This sends the same information to the site that is sent when the shadow group is created.
[8] Show number of pending item updates - Lists the pending item updates for the target group. These updates may be for one or both of the shadows.
[9] Indicate group update pending status - Shows whether the target group has a full group-level update pending. If a group has more than five 5 item-level updates pending, StreetTalk performs a full group update for efficiency's sake.
[rR]====> Return to main - Returns you to the StreetTalk Interface menu.
[q] Exit (quit stclient) - Returns you to the UNIX prompt.
StreetTalk includes an analysis tool called stanly that allows you to analyze your StreetTalk database files in detail. It also includes a number of options that allow you to upgrade or downgrade StreetTalk data from one revision to another.
The sections that follow describe the changes that have occurred in the StreetTalk database files over the last several revisions of the Banyan server software.
Differences Between StreetTalk Revisions
StreetTalk has undergone many important changes in the last several years. This section describes those changes. It also explains how to use stanly, a StreetTalk analysis tool, to work with files from server revisions earlier than Version 7.0.
StreetTalk Data Before VINES 5.50.
In Banyan software revisions before 5.50, the /disk1/banyan/st directory contained the following files:
DMSTFile - Master file containing attributes for the names contained in DMSTDir.
DMSTDir - Index of the contents of DMSTFile. Used to search for a name to obtain an offset into DMSTFile.
For each group located on the server, there is a DMDir<locid>.<class> and a file called DMData<locid>.<class>, where locid is the local ID of the group, and class is the object class (user, service, list, nickname or group).
Example StreetTalk data files on a VINES 4.11 Server
Suppose a group with a local ID of 7 contains users, lists, and nicknames. It includes no services or group security. The following files appear in /disk1/banyan/st:
DMDir7.1 - Indexes into data on users
DMData7.1 - Data on users
DMDir7.3 - Index into data on lists
DMData7.3 - Data on lists
DMDir7.4 - Index into data on nicknames
DMData7.4 - Data on nicknames
If services and group security were added to this server, the files DMDir7.2, DMData7.2, DMDir7.5, and DMData7.5 would be created.
Several important changes to StreetTalk data were made in StreetTalk III, which was first released with VINES 5.50. The functionality of DMDir and DMData files was combined into the STGRP.* files. The structure of the synchronization data was changed.
1. Log in to UNIX.
2. Change directory to /disk1/banyan/st.
3. Enter stanly at the UNIX prompt. This prompt appears:
StreetTalk Database Analyzer Rev: 7.00
Choose Selection (`?' for help):
4. Enter ? at the prompt. The stanly main menu appears, as shown in Figure 3-10.
The options on the stanly menu are described in the sections that follow.
[a] Data File Analysis
This option prints the contents of StreetTalk database files of the formats used in VINES 3.xx to VINES 5.2x.
This option reads the files whose names fit the template DMData<locid>.<class>. The class is a number from 1 to 5 and the locid is a unique positive integer.
This option is used by Banyan personnel when a StreetTalk group is restored from a backup tape that was created on a server running an earlier revision of VINES.
[b] Directory File Analysis VINES
This option is similar to option a except it reads the files whose names fit the template DMDir<locid>.<class>. The output contains the DMDir entry for an item. DMDir entries contain the formatted StreetTalk names, their category values, and an offset into the corresponding DMData file.
This option applies only to VINES revisions before 5.30 and to ENS for NetWare 1.0. The DMDir files are not supported in later VINES revisions.
[C] Convert 5.50 format to 5.00 format
This option converts StreetTalk III databases to the old database format. For example, the command stanly -C 2 reads the file STGRP.2 and creates the needed DMDir<locid>.<class> and DMData<locid>.<class> files.
The STGRP.2 file is not deleted.
Downgrading a database with this option causes any attributes of types boolean, raw, integer, and ASN.1 to be lost. String attributes longer than 1KB are truncated to 1KB in length.
[c] Convert 5.00 format to 5.50 format
This option converts DMDir* and DMData* databases to the StreetTalk III database format (STGRP.*). For example, the command stanly -c 2 reads the DMDir2.* and DMData2.* files and creates an STGRP.2 file. The DMD* files are not deleted.
This option is used during server upgrades to VINES revision 5.30 or higher.
[d] Dir/Data File Analysis
This option combines options a and b. The output contains the DMDir entry and the DMData entry for each item found in the DMDir file.
This option mirrors the way that StreetTalk looks up items in the older database format. For example, the command stanly -d 2.3 opens the files DMDir2.3 and DMData2.3, if they exist, and prints the DMData entry and the DMDir entry for each record found in the file DMDir2.3.
This option is not applicable to StreetTalk databases on revision 7.0 Banyan servers.
[e] Examine/dump the 5.50 format
This option dumps the StreetTalk III database files that fit the template STGRP.*. The following sample output shows the @GroupRec record, which is the first record in a StreetTalk III database, containing information about the group:
--- Header Contents ------------------------------
Len = 4 Flags = 0x1
Major Revision = 1 Minor Revision = 0
---------------------------------------------------
Key Contents ---- Record Num = 1 --- len key = 68
Class : 5 (GRP) Object Flags: 0x00000001
Category : 0 Last ModTime: Wed Jan 27 17:22:40 1993
Class Flags : 0x00000000 Create Time: Wed Jan 27 17:22:40 1993
Name : @GroupRec
--- Data Record ---- len = 192 ----
Description : Server renamed. Previous name was `Testing@Servers'
Full Group name: `Vermont@Servers'
Useful fields in the @GroupRec record include:
Create Time - Indicates when the group was created
Description - indicates how the full group name field was set
Full Group Name - Identical to what is stored in the DMSTFile
[f] Full Analysis
This option is a combination of the d, h, m, and n options. This option can produce a large amount of output.
[g] Enumerate local groups
This option lists the names of the groups that are maintained on the server. The DMSTFile database is scanned to determine the local groups.
[h] HeardFrom File Analysis
This option prints the contents of the STHeardFrom file. The output contains the port numbers of other StreetTalks on the network. Optionally, it also contains the server name of the server accessed through each port. The count field in the output represents the number of hours since the local StreetTalk received a synchronization packet about that server. The STHeardFrom file is updated once per hour.
[i] Check DMSTFile integrity
If the DMSTFile is corrupted, the command line stanly -i prints a non-zero exit status, and stanly prints information about the location of the corruption.
[l] Lookup an object by name. (5.50 format)
This option examines the contents of an item or attribute and displays the item value or the attribute. You cannot access this option from the command line. It can only be used interactively from the menu.
This is not a StreetTalk function. It is a direct database query of the data files in /disk1/banyan/st. If you specify the wrong STGRP file, you will get an error.
[m] Master File (DMSTFile) Analysis Only
This option is similar to a except that it examines /diskn/banyan/st/DMSTFile, the database of all the StreetTalk groups that the local StreetTalk believes are on the network. Information displayed includes the group name, the last known port, the database ID, the change ID, the network group ID, and the group sequence number. The output indicates whether the group is local to this server.
An example of the output from this option follows:
File header:
File type: 2000, Rev: 554, Maxppi: 1, Piecesize: 568
Checksum: -89, First unused: 737776, First used: 0
Rule table is valid. Machine type is 3.
***************** Item ********************
Offset of item: 1080 (0x438)
Item width: 536 (0x218)
Item Real width: 568
Item Checksum: 8833469 (0x86c9bd)
ITEM NAME: isocor@3rd parties Password:
Class: 200
Ports:
0 3 0 2f 4d 73 0 1 0 f 0 0 0 0 0 0
e 4 0 a1 77 02 0 1 0 f 0 0 0 0 0 0
b 3 0 2a 32 04 0 1 0 f 0 0 0 0 0 0
Databaseid: 0 Changeid: 0 NetGrpid: 687382b0 GrpSeqNum: 106
Group is not local.
The output from the stanly -m command consists of a file header and a large set of items. The file header information is divided into the fields shown in Table 3-3.
[n] Master File Directory (DMSTDir) Analysis Only
This option is similar to b except that it only examines the DMSTDir file.
The DMSTDir file is not used in VINES revisions 5.30 andgreater.
[r] Create Master File Directory (DMSTDir) VINES
This option creates a DMSTDir file if a DMSTFile exists. You can use this option with VINES revisions 5.00 to 5.2x to rebuild corrupted DMSTDir files. This option is not supported on revision 7.0 Banyan servers.
[t] Recreate Master File (DMSTFile)
This option recreates a DMSTFile database. All the STGRP.* files in the current directory are used to build a new DMSTFile called DMSTFile.new. The group names are first retrieved from the local DMSTFile if one exists, or from the @GroupRec record in the STGRP file.
To rebuild a DMSTFile that uses the @GroupRec records in all the STGRP files, perform the following steps.
1. Log in to UNIX on the Banyan server, and change directory to the StreetTalk service directory.
cd /disk1/banyan/st
2. Create a directory called temp under /disk1/banyan/st.
mkdir temp
3. Create a set of links in the temp directory to the STGRP files in /disk1/banyan/st.
ln STGRP.* temp
4. Change directory to /disk1/banyan/st/temp.
cd temp
5. Use the following command line to generate a new DMSTFile.
../stanly -t `cat ../../comm/serial'
This command automatically gets the server serial number, which stanly -t uses as an input parameter.
6. Make a backup copy of the generated DMSTFile.
cp DMSTFile DMSTFile.new
7. Confirm that the database was created correctly.
../stanly -m
8. You must now coldstart StreetTalk to re-initialize the database. Generate a COLDSTART file.
cd ..
echo >COLDSTART
9. Use ps -el to get the StreetTalk process id.
ps -el | grep st
The process ID (PID) field is the fourth field from the left, as shown in the following example.
10. Kill StreetTalk to force Server Service to restart StreetTalk and load the new DMSTFile. For st pid, use the StreetTalk process ID.
kill -9 <st pid>
Remove DMSTFile.new after StreetTalk has restarted and is operating as expected.
[u] Replace `@GroupRec' in a data file.
This option is reserved for internal use by Banyan personnel.
[v] Upgrade or Downgrade database revision
This option is reserved for internal use by Banyan personnel.
[w] Print database revision
You must shut down services to retrieve the database revision number. If StreetTalk is running, you receive an error code -1.
The dialogue asks for a data file number. For example, to examine STGRP.3, you would enter 3. A sample dialogue follows, with user responses in bold type:
Choose selection (`?' for help): w
Enter datafile number (e.g. 3): 3
----- Header Contents ----------------------------------------
Len = 4 Flags = 0x1
Major Revision = 1 Minor Revision = 0
--------------------------------------------------------------
[x] Print database revision table
This option displays the StreetTalk database conversion rule table.
[Z] Test `@GroupRec' Hammer.
This option is reserved for internal use by Banyan personnel.
[q] Quit
This option returns you to the UNIX command line.