FEI Administration

Version 3.0
Version 3 Document and GUI Utility is under construction.

Last update on January 7, 1996
Send questions, comments and corrections to MDMS





Introduction

The feiAdmin utility is an interactive program that connects to an FEI server. The utility is used by FEI administrators to monior a server's activity.

Supported Systems

feiAdmin, version 2.x, runs on SUN hardware with Solaris 2.4 or later.

Connecting To A Server

When you run the feiAdmin tool, an admin connection is made to the specified server. You can only make such a connection if your Kerberos principle is "feiAdmin":

	% kinit feiAdmin
	SunOS (milano)
	Kerberos Initialization for "feiAdmin"
	Password: <feiAdmin password>
	
You run the admin utility with the name of the server to which the connection should be made:

Syntax: feiAdmin <server host> <server name>

Example:

	> feiAdmin milano fei1
	feiAdmin, version 2.0, 26 June 1996
	Copyright 1996-97, The Jet Propulsion Laboratory. All rights reserved.

	>
	
If the connection is made, you will see the feiAdmin prompt, >. At that time you can execute any admin command.

Commands

feiAdmin commands include:

	help
	server
	connect
	disconnect
	showdown
	hotboot
	open logFile
	close logFile
	set write
	escape
	repeat
	profile
	user
	queue
	threadStat
	kill
Each command that results in the display of data is marked with a time stamp following the format of the Posix ctime() function, for example:
	Tue Jul 2 11:10:35 PDT 1996
	
Command information is displayed following that.


Help

Syntax: help

List the syntax of the feiAdmin commands.

Example:

	> help
	help
	server
	connect <server>
	disconnect
	shutdown {0 | 1 | 2}
	hotboot
	open logFile  [append]
	close logFile
	set write {yes | no}
	escape 
	repeat {profile | user | queue}
	profile
	user [ | *]
	queue []
	threadStat <thread Id>
	kill <thread Id>
	


Server

Syntax: server

Displays the name of the server to which you are currently connected.

Examples:

	> Server
	fei1

	> Server
	Not connected to a server at present.
	


Connect

Syntax: connect <server name>

Connect feiAdmin to a new server. If the utility is currently connected to a server, that connection is closed first.

Examples:

	> connect fei2
	Connected to fei2

	> connect fei3
	Can't connect to FEI server `fei3'.
	


Disconnect

Syntax: disconnect

Disconnect feiAdmin from a server if there is a connection. You can leave an feiAdmin process running but disconnected. This is less overhead for a server. Also, if you walk away from a workstation running feiAdmin, you should disconnect from the server.

Example:

	> disconnect
	Connection terminated
	


Shutdown

Syntax: shutdown <level>

level 0
Immediate shutdown. Any transfers in progress are interrupted and all connections are closed immediately.
level 1
Finish any transfers currently in progress but accept no new ones. Terminate once all current transactions have finished.
level 2
Same as level 1, but all subscription queues are read by subscribers before termination. No new files are added to subscription queues once the termination notice is accepted by the server.

This command is used to shutdown a FEI server. The level value indicates the type of shutdown. Note: if you use a level 0 shutdown, you can end-up with partial files in FEI. Check the status of files in the FEI database table files using the stored procedure showBadFiles after this type of shutdown.

Examples:

	> shutdown 1
	Shutdown started.

	> shutdown 0
	Shutdown started.
	


Hot Boot

Syntax: hotboot

Tells the server to read its configurations files again and reconfigure based on the information found. All connections are maintained during this time, but transfers are suspended by the hot boot process is active. This command will not return until the hotboot is complete. At that point you know that normal service has resumed.

Example:

	> hotboot
	Hot boot complete.
	


Open Log File

Syntax: open logFile <file name> [append]

Opens a log file. Initially commands and displays are written to the file. This can be changed with the "set write" command, see below. If the log file already exists, it will not be opened unless the optional parameter "append" is supplied after the file name.

Examples:

	> open logFile /home/fei/logs/admin2July96
	Log file opened.

	> open logFile /home/fei/logs/admin2July96
	Log file already exists so it wasn't opened. Use the "append"
	parameter to continue adding to this file.

	> open logFile /home/fei/logs/admin2July96 append
	Appending to log file.
	


Close Log File

Syntax: close logFile

Close a log file opened with the "open logFile" command. If no log file is open, nothing happens.

Examples:

	> close logFile

	> close logFile
	No log file open.
	


Set Write

Syntax: set write {on | off}

If a log file is open, this command determines whether or not subsequent commands and displays are written to the file. It's useful when you have a log file open and you want to look at some information with it being written to the log.

Examples:

	> set write on
	> set write off
	> close logFile
	> set write off
	No log file open.
	


Escape

Syntax: escape <shell command>

Escape to the Shell and execute a comand.

Example:

	> escape ls -1 *.tiff
	Netsurfer715870.tiff
	Netsurfer920319.tiff
	computerClient.tiff
	houseIcon.tiff
	stopSign.tiff
	testImage1.tiff
	testImage1Jpeg.tiff
	testImage2.tiff
	testImage2Jpeg.tiff
	thumbnail1.tiff
	thumbnail1Jpeg.tiff
	thumbnail2.tiff
	


Repeat

Syntax: repeat {profile | user | queue}

Repeat is a meta-command that can be placed in front of the feiAdmin commands: profile, user and queue. It executes the command and then prompts you. If you type a , the command is executed again. This continues until you type any character other than .

Examples:

	> repeat user
		user command display
	continue: <return>
		user command display
	continue: n
	>
	


Profile

Syntax: profile

The profile command supplies general information about server activity, including the time at which the server started, current memory usage, number of connections, and number of subscription queues. Example:

	> profile
	Tue Jul 2 11:10:35 PDT 1996

	Start time: Tue Jun 4 13:28:27 PDT 1996
	Memory Usage: 11.2 Mbytes
	Current Users: 40
	Subscription Queues: 12
	


User

Syntax: user [<user name> | *]

Without the optional parameter, the user command displays a list of user principal names, thread Id, current command, and time of last command execution. If a user name is supplied, the same information is supplied along with information about the last file transferred (see the example below). If a star `*' is used in place of a user name, all of the user information is supplied for each user. The user command with no parameter is displayed in table format. If a parameter is supplied, list format is used.

Examples:

	> user
	Tue Jul 2 11:10:35 PDT 1996

	Thread Id  Principal    User Host       Cmd  Type    Last Cmd Exec Time
	      211  franklin     128.182.23.127  g    Image   Tue Jul 2 11:07:17 PDT 1996
	      250  washington   111.12.83.99    s    Image   Tue Jul 2 14:10:34 PDT 1996
	      277  kadder       111.12.83.74    a    Image   Tue Jul 2 16:01:01 PDT 1996
	      312  washington   111.12.83.99    s    Text    Wed Jun 3 07:00:12 PDT 1996

	3 active client threads.

	> user franklin
	Tue Jul 2 11:10:35 PDT 1996

	Principal: franklin
	Host IP Address: 128.182.23.127
	Connected: Tue Jul 1 6:15:53 PDT 1996
	Thread Id: 23400
	Last command: g
	File type: Image
	File name: image123.tiff
	Time of last command: Tue Jul 2 11:07:13 PDT 1996
	File size: 512 bytes
	Transfer time: 0.2 secs
	Transfer rate: 2560 bytes/sec

	> user *

	The display for the command "user *" looks the same as that
	shown in the previous example, but all users are shown. Obviously,
	this display may be quite long.
	

The thread Id supplied with the user principal name can be used to kill the user thread. You might want to do this if the user has not executed a command recently. You can determine that time by looking at the last command execution time for the user.


Queue

Syntax: queue [<file type>]

Displays information about a subscription queue if a file type is supplied as a parameter. If no parameter is supplied, information on all of the queues is provided.

Examples:

	> queue Image
	Tue Jul 2 11:10:35 PDT 1996

	23 Nodes                    260000 Bytes

	Node             Bytes          Subscribers
	   1             18000                    6
	   2             17000                    5
	   3            112000                   36
	
If no file type is provided, the command's display looks like this:
	> queue
	Tue Jul 2 11:10:35 PDT 1996

	File Type       Bytes  Nodes Subscribers
	Image          147000     47          30
	Text            56000     39          12
	


ThreadStat

Syntax: threadStat <thread Id>

This command gives the status of a thread. Useful when you need to determine if a thread should be killed. Not currently implemented

Display:


	created: ,date-time>
	cmd: { | idle}
	file size: { | ""}
	transfered: { | ""}
	TCP status:
	IP status:
	IP address: 
	

Examples:

	> threadStat 234
	Tue Jul 2 11:10:35 PDT 1996
	created: Tue Jul 2 11:07:13 PDT 1996
	cmd: add
	file size: 16000
	transfered: 13000
	TCP status:
	IP status:
	IP address: 128.149.24.69

	> threadStat 234
	Tue Jul 2 11:10:35 PDT 1996
	created: Tue Jul 2 11:07:13 PDT 1996
	cmd: idle
	file size: 
	transfered: 
	TCP status:
	IP status:
	IP address: 128.149.24.69
	


Kill

Syntax: kill <thread Id>

Kills a thread and disconnects the client process from the server, freeing all user resources at that time. The thread Id can be found in the display of the user command (see above).

Examples:

	> kill 234
	Thread 234, principle `franklin' killed. Connection from server closed.

	> kill 2347
	Invalid thread Id. Check thread Id's with the `user' command.





Copyright © 1997 The California Institude of Technology