C-Tree Server: Administrator's Guide
C-Tree Server: Administrator's Guide
C-Tree Server: Administrator's Guide
Administrator’s Guide
For use with the c-tree Server
This manual provides the operational details for using and managing the c-
tree Server. Persons responsible for maintaining the server should be familiar
with the concepts discussed in this guide.
Copyright © 1992-2004 FairCom Corporation All rights reserved.
Portions © 1987-2004 Dharma Systems, Inc. All rights reserved.
Eleventh Edition, First printing: September 2003
Information in this document is subject to change without notice.
No part of this publication may be stored in a retrieval system, or transmitted in any form or by any means, electronic,
mechanical, photocopying, recording or otherwise without the prior written permission of FairCom Corporation.
Printed in the United States of America.
FairCom welcomes your comments on this document and the software it describes. Send comments to:
Documentation Comments
FairCom Corporation
2100 Forum Blvd., Suite C
Columbia, MO 65203
Phone: 573-445-6833
Fax: 573-445-9698
Electronic Mail: support@faircom.com
Web Page: http://www.faircom.com
c-tree, c-tree Plus, r-tree, the circular disk logo, and FairCom are registered trademarks of the FairCom Corporation.
c-treeSQL, c-treeSQL ODBC, c-treeSQL ODBC SDK, c-treeVCL/CLX, c-tree ODBC Driver, c-tree Crystal Reports
Driver, and c-treeDBX are trademarks of FairCom Corporation.
The following are third-party trademarks:
DBstore is a trademark of Dharma Systems, Inc.
Microsoft, MS-DOS, Windows, Windows NT, and Windows XP are registered trademarks of Microsoft Corporation.
Java, Java Development Kit, Solaris, SPARC, SunOS, and SunSoft are trademarks of Sun Microsystems, Inc.
Macintosh and MacOS are trademarks licensed to Apple Computer Co.
IBM and AIX are registered trademarks of International Business Machines Corp.
HP-UX is a registered trademark of Hewlett-Packard Company.
All other trademarks, trade names, company names, product names, and registered trademarks are the property of their
respective holders
Seventh Edition
CTSA-V8.14-041015
Dedication
This guide is dedicated to the employees of FairCom in recognition of their dedication and
teamwork required to bring the c-tree Server to fruition.
WLF
Table of Contents
Documentation Overview
Purpose of this Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .vii
Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .vii
Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .vii
Syntax Diagram Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Related Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
1 c-tree Server Administrator's Guide
1.1 Server Quick Start. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
1.1.1 Install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
1.1.2 Activate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
1.1.3 Execute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
1.2 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
2 c-tree Server Installation
2.1 c-tree Server for Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
2.1.1 Operational Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
2.1.1.1 Automatic LANA Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
2.1.2 Minimum Hardware Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
2.1.3 c-tree Server for Windows Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
2.1.4 Installing the c-tree Server Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
2.1.5 Installing Multiple Instances of the c-tree Server. . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
2.1.6 Tool Tray interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
2.1.7 Windows 95/98 Service Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
2.2 c-tree Server for Novell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
2.2.1 Operational Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
2.2.2 Minimum Hardware Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
2.2.3 c-tree Server for Novell Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
2.2.4 Running Multiple NLM Servers on One Machine . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
2.3 c-tree Server for Macintosh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
2.3.1 Operational Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
2.3.2 Minimum Hardware Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
2.3.3 Macintosh Server Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7
2.3.4 General Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7
2.4 c-tree Unix-based Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8
2.4.1 Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8
2.4.2 Operational Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8
2.4.3 Minimum Hardware Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8
2.4.4 c-tree Server Unix Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8
2.4.5 Native Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
2.4.6 Unix Server Platform Hardware Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
2.4.6.1 FreeBSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
2.4.6.2 Hewlett Packard HP-UX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
2.4.6.3 IBM AIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10
FairCom Corporation i
c-tree Server Administrator’s Guide
ii FairCom Corporation
Table of Contents
iv FairCom Corporation
Table of Contents
C Glossary
Index ................................................................................................................. Index-i
List of Figures
Figure 3-1: Windows 2000 Services Control Panel applet..................................................... 3-9
Figure 3-2: Windows 2000 Service configuration options ................................................... 3-10
Figure 3-3: Using the Event Viewer to display events logged by the c-tree Server Service 3-14
List of Tables
Table 3-1: c-tree Server Service-specific errors ................................................................... 3-13
Table 5-1: Action/Return from 2nd Open Attempt............................................................... 5-21
FairCom Corporation v
c-tree Server Administrator’s Guide
vi FairCom Corporation
Documentation Overview
AUDIENCE
This manual is directed toward end-users who will be using the c-tree Server with an applica-
tion and application programmers writingdatabase applications for use with the c-tree Server.
STRUCTURE
This manual contains the following chapters:
Chapter 2 Describes the three simple steps to install the c-tree Server.
Chapter 4 Descibes the details of access and security control through user, file,
and group information.
Chapter 5 Describes how to maintain data integrity by saving the relevant informa-
tion, recovering from problems, and returning database information to its
state at an earlier point in time.
UPPERCASE Uppercase type denotes reserved words. You must include reserved
words in statements, but they can be upper or lower case.
... A horizontal ellipsis denotes that the preceding element can optionally
be repeated any number of times.
(),; Parentheses and other punctuation marks are required elements. Enter
them as shown in syntax diagrams.
RELATED DOCUMENTATION
End-users should require no additional documentation.
Developers may want to refer to the c-tree Plus Programmer’s Reference Guide for details con-
cerning client/server development.
1.1.1 Install
Follow the installation instructions on the c-tree Server CD.
1.1.2 Activate
Execute fcactvat to activate the Server executable file (this occurs automatically during the
Windows install) and follow the prompts to activate the Server. The c-tree Server activation
process stamps the Server executable for the number of concurrent connections specified by
the Server license purchased.
1.1.3 Execute
Execute the ctsrvr executable (ctsrvr.exe on Windows, ctsrvr.ppc or ctsrvr.68k on Mac). This
runs the Server with the default settings.
That’s all it takes to get your Server up and running.
While the c-tree Server runs properly right out of the box, the rest of this guide details the
installation, operation, and optional configuration settings available to the Server Administra-
tor. FairCom recommends using the available security options, establishing regular data
backup procedures, and optimizing the Server configuration for your environment to maximize
performance.
See Section 1.2 "Introduction" on page 1-2 for an overview of the content of the Guide.
1.2 INTRODUCTION
This manual has two main purposes for the c-tree Server Administrator:
1. To provide a quick, easy way to see what responsibilities you have, and
2. To provide the information needed to manage c-tree Server operation.
The c-tree Server supports high-level database management, including:
• client/server computing - increases performance and provides the ability to maintain data-
base integrity, especially in multi-user environments. The basic principle of client/server
computing is: applications, or "clients", interact with the server, which manages file opera-
tions and communicates with clients.
• online transaction processing (OLTP) - the c-tree Server can group a specified set of
operations, called a "transaction," and ensure either all of them are done or, if there is a
problem, none will be done, e.g., either all of an invoice is processed, or none of it.
• security controls - c-tree Server access is controlled with user IDs, passwords, file permis-
sions, and encryption. Users and files may be added to Administrator defined "groups",
e.g., shipping department, payroll department.
• database maintenance and utilities - the c-tree Server automatically saves necessary
information for use in automatic, or Administrator-specified, backups and for recovery
from problems.
• configuration flexibility - from basics such as which communication protocol the c-tree
Server uses and memory allocations to enforce for specific users, to a wide range of
advanced controls.
Further technical details concerning the c-tree Server are available in Appendix B "Overview
of The c-tree Server" and other FairCom documents.
The c-tree Server Administrator has the following six areas of responsibility, each of which
could be divided among several people:
Installation
Someone, not necessarily the Administrator, must physically load the c-tree Server software
onto the computing environment. Once completed, installation issues usually are no longer a
concern unless the c-tree Server needs to be reinstalled, e.g., to install a new version. See
Chapter 2 "c-tree Server Installation" for details
Operating the Server
Starting and stopping the c-tree Server. Any user can start the c-tree Server by running the exe-
cutable module, ctsrvr, as any other program in the environment. See Chapter 3 "Operating the
c-tree Server" for details.
Controlling access to the c-tree Server
Begin by setting up valid User IDs and passwords (including your own). Establish rules of
access to given database files. Establish groups where users and files can be associated and
control access according to membership in those groups.
Use ctadmn, the c-tree Server Administration Utility, to control access with user IDs, file pass-
words, file permissions, and Administrator defined groups with specified access rights to par-
ticular files. This utility also monitors user status and/or disconnects users from the c-tree
Server.
ctpass is used by the Administrator or any other authorized user to change the password associ-
ated with their User ID.
ctfile is used by the Administrator or any user to change file security information on any file
owned by the user. See Chapter 4 "Controlling c-tree Server Access" for details.
Maintaining Database Integrity
Schedule and conduct backups or dumps of system generated files for later use in recovering
from problems or returning a database to its status at a prior time.
Use the utility ctdump to schedule Dynamic Dumps that can be used at a later time to restore
database files or to roll back to a state at a previous point in time.
ctrdmp works with information saved in a Dynamic Dump to either recover from a catastrophic
system failure by restoring specified files to a consistent, well-defined state or to roll back
specified files to their state at a specified time.
Use the utility ctfdmp to recover from a catastrophic failure using a previously saved dynamic
dump or complete backup, which may be made using any standard backup utility. This allows
you to restore backups then ‘roll forward’ to a given time using preserved log files.
(For programmers) Use the utility ctldmp to carry out a transaction log dump, which records
partial log related information, for use in application development. See Chapter 5 "Maintaining
Database Integrity" for details.
Configuring the c-tree Server
Understand how the c-tree Server is currently configured and, optionally, change configuration
settings (e.g., to set memory allocation limits, to select communication protocols, to activate a
particular dump description script).
The c-tree Server is started by any user authorized to start ctsrvr. Routine starting of the c-tree
Server is not necessarily a major responsibility for the Administrator.
The User ID "ADMIN" (default password is "ADMIN") and members of the ADMIN group
are the only users who can access ctstop, the utility for stopping the c-tree Server, so stopping
the c-tree Server is always a major Administrator responsibility.
Customize the c-tree Server
No configuration file is required, but if the c-tree Server is to be reconfigured to replace any
default settings, a file named ctsrvr.cfg must be created for the Server to load at startup. See
Chapter 6 "Configuring the c-tree Server" for details.
Note: Utility names and methods of executing them may vary slightly in different environ-
ments, so see Chapter 2 "c-tree Server Installation" for specifics. The utilities covered
here are not the only ways to carry out Administrator duties and the utilities listed here
are not necessarily the only ones available.
The basic topics covered here are for orientation only. Chapter 2 "c-tree Server Installation"
and Chapter 3 "Operating the c-tree Server", are considered required reading for c-tree Server
Administrators. Chapter 4 "Controlling c-tree Server Access", Chapter 5 "Maintaining Data-
base Integrity", Section 6.1 "Running a Configuration Script File" on page 6-1, Section 6.2
"Configuration File Format" on page 6-2, and Section 6.3 "Basic Configuration Options" on
page 6-3 are recommended reading. Section 6.4 "Advanced Configuration Options" on page 6-
4, Section 6.5 "Server System Event Log Keywords" on page 6-28, Section 6.6 "Server Mem-
ory Calculations" on page 6-29, and Section 6.7 "Advanced - Faster Auto-Recovery" on page
6-30 are optional and intended for advanced users.
Some issues may require the assistance of others with specialized knowledge relevant to the
operating environment (e.g., configuring memory access allotments, defining dynamic
dumps).
Additional information can be found in the following appendices:
• Appendix A "User's Control of Security Options" contains user password control informa-
tion.
• Appendix B "Overview of The c-tree Server" contains a conceptual overview of the c-tree
Server.
• Appendix C "Glossary" defines terms.
Installing the c-tree Server is mostly a matter of copying software from the distribution CD
onto the system. c-tree Server installation can be completed in three simple steps:
1. Install the c-tree Server and support utilities.
2. Activate the c-tree Server using the fcactvat program.
Note: Some c-tree Server OEM vendors may provide pre-activated c-tree Servers.
3. Start the c-tree Server.
The following sections provide the information necessary for installing the c-tree Server on
specific environments. Before proceeding, verify that the computer on which the c-tree Server
is to be installed has sufficient capacity for the c-tree Server and the associated applications.
The “Minimum Hardware Requirements” sections discuss the minimum memory (RAM)
requirements of the c-tree Server not including operating system memory requirements. Addi-
tional RAM for file caching, opening files, supporting many users, etc., is encouraged for opti-
mal performance and functionality. Section 6.6 "Server Memory Calculations" on page 6-29
provides formulas for approximating c-tree Server memory requirements.
The hard drive space specifications contained in the following sections indicate the minimum
space necessary to install the c-tree Server on each particular operating system or platform.
Skip to the appropriate operating system section where your c-tree Server is to be installed.
NetBIOS FNETBIOS
TCP/IP F_TCPIP
Note: Windows 95/98 supports only NetBIOS and TCP/IP and therefore does not include the
FSHAREMM.DLL.
The c-tree Server for Windows defaults to the TCP/IP protocol. To activate any other DLL, use
the COMM_PROTOCOL keyword in a ctsrvr.cfg file (discussed in Section 6.4 "Advanced
Configuration Options" on page 6-4). Use the DLL name as the token following the
COMM_PROTOCOL keyword in the ctsrvr.cfg. This disables the default protocol, so if you
want to load the default and another protocol, each must have a COMM_PROTOCOL entry in
ctsrvr.cfg. For example, to load all supported communication protocols for the c-tree Server on
Windows NT, add the following lines to ctsrvr.cfg:
COMM_PROTOCOL F_TCPIP
COMM_PROTOCOL FNETBIOS
COMM_PROTOCOL FSHAREMM
COMM_PROTOCOL FETCPIP
Note: If COMM_PROTOCOL is specified for one protocol, all protocols to be used must be
specified. If no COMM_PROTOCOL is specified, the c-tree Server uses the default,
F_TCPIP.
dows XP 64-bit Edition are: an Itanium CPU, and the memory required by Windows XP 64-bit
Edition plus 3MB RAM.
Note: Windows limits application memory space to 2GB.
The minimum hard drive space required by the c-tree Server for Windows is:
The size of the c-tree Server executable
+ the size of specified communication DLLs
+ the amount specified by the LOG_SPACE keyword (10 MB default)
+ 1MB for c-tree Server status logs
+ 3.5MB for the pre-compiled c-tree Server utilities
+ the size of the data (.dat) and index (.idx) files
The Windows NT, 2000, and XP operating systems using NTFS support files up to 4 GB using
Standard c-tree Plus files, and will support Extended files larger than 4 GB. Windows 95 and
above using FAT32 support Standard files up to 4 GB and require segmented files to support
huge files. All other versions of Windows will support 2GB file sizes and require segmented
files to support huge files.
This keyword will be ignored on all other platforms except Windows 95/98.
Note: The c-tree Server for Novell places logs, status files, etc., in the root directory of the
Netware file server machine by default. Unless directed to another directory, user data
and index files will also be placed in the root directory. c-tree parameter files and any
ctsrvr.cfg file should be placed in the NLM machine root directory.
Example
If the Novell Netware drive is loaded as drive E: on your network node, the following com-
mand copies ctsrvr.nlm from your local directory, which is assumed to be the directory where
the c-tree Server was installed:
copy ctsrvr.nlm E:\SYSTEM\<path>
When the c-tree Server for Novell is loaded, it places its logs and status files in the root direc-
tory of drive E: by default. Use the SERVER_DIRECTORY keyword to change the c-tree
Server working directory.
Note: When using the SPX protocol, include the CONSOLE NO_SHUTDOWN_PROMPT
Server keyword to avoid trouble when unloading a c-tree Server.
This operating system supports 2GB file sizes and requires segmented files to support larger
files.
To increase the amount of memory available to the c-tree Server for Macintosh, do the follow-
ing:
1. Single click on the ctsrvr icon.
2. Select the Get Info from the Finder File menu.
3. Increase the preferred memory size to the desired amount.
FAIRCOMS is the default c-tree Server name and is defined by the SERVER_NAME key-
word. Contact your network administrator to determine whether network zones are defined and
what zones are appropriate for your Server.
Note: The c-tree Server for Mac OS X expects the configuration file, ctsrvr.cfg, to be a stan-
dard Unix text file.
AIX FreeBSD
LynxOS Mac OS X
The above c-tree Servers are installed by following the same general method and for the most
part share the same hardware requirements. Items specific to a particular c-tree Server are dis-
cussed in Section 2.4.6 "Unix Server Platform Hardware Requirements" on page 2-9.
2. Place the c-tree Server CD in the drive and copy the files in the CD directories below /serv-
ers/<platform> to the desired directory.
3. When using shared memory or message queue protocols, a directory by the name /usr/ctsrv
must exist prior to running the c-tree Server. The c-tree Server does not have to be resident
in /usr/ctsrv; however temporary files are created in this directory. Create this directory
with sufficient permissions for the c-tree Server process to read, write, create and delete
files within the directory.
4. After installation, activate the c-tree Server using the fcactvat program. See the c-tree
Server Activation Key Card for instructions. Some c-tree Server OEM vendors provide pre-
activated c-tree Servers with their applications.
The c-tree Native Thread Server supports the native threading routines. The c-tree Proprietary
Thread Server uses FairCom's proprietary threading technology. FairCom recommends using
the Native Thread Server when available since a possible performance enhancement may
result.
Note: The Native Thread Server supports only the TCP/IP communications protocol.
2.4.6.1 FreeBSD
The c-tree Server for FreeBSD requires a Pentium 133 or greater CPU and a minimum of 2MB
RAM. This operating system supports standard c-tree Plus files up to 4 GB in size and allows
huge files.
For proper operations of the c-treeSQL Server under various loads, we recommend adjusting
the following kernel parameters of the HP/UX 11 system, using the sam utility:
• Increase maximum per-process stack memory size (maxssiz) from the default of 8 MB to
128 MB.
• Increase maximum per-process data memory size (maxdsiz) from the default of 64 MB to
256 MB.
• Consider increasing the number of threads per process if connecting a large number of cli-
ents. The default for older releases of the OS is relatively low (64 maximum threads per
process).
• Either increase the default number of file handles from 60 to 256 by using sam or prior to
starting the c-treeSQL process issue limit descriptors 256 to increase the number of file
descriptors used by that process only.
2.4.6.4 Linux
The c-tree Server for Linux requires a Pentium 133, Sparc, or PPC CPU and a minimum of
2MB RAM. Linux versions using kernel 2.400 and above support Standard c-tree Plus files up
to 4 GB in size and allows huge files. Earlier versions support 2GB file sizes and requires seg-
mented files to support larger files.
2.4.6.5 LynxOS
The c-tree Server for Lynx requires a Pentium 133 or greater CPU and a minimum of 2MB
RAM. This c-tree Server supports only the TCP/IP communication protocol. This operating
system supports only 2GB file sizes and requires segmented files to support larger files.
2.4.6.6 Mac OS X
The c-tree Server for Mac OS X requires a minimum of 4MB RAM beyond the requirements
to run Mac OS X. This operating system supports only 2GB file sizes and requires segmented
files to support larger files.
2.4.6.7 NetBSD
The c-tree Server for NetBSD requires a Pentium 133 or greater CPU and a minimum of 2MB
RAM. The NetBSD operating system supports standard c-tree Plus files up to 4 GB in size and
allows huge files.
2. Simply provide the original file name from which the utility can generate a new NLM (by
browsing the file folders, if desired) and then click Next.
5. Execute each instance from its working directory, using the CTSRVR_CFG command line
keyword to specify the configuration files, as shown above.
Note: Due to the non-preemptive nature of the Novell environment, running multiple c-tree
Servers on the same machine is not recommended and might seriously impact perfor-
mance. Even in preemptive environments, a single c-tree Server operates more effi-
ciently than multiple c-tree Servers.
Sun OS
If you need support for one of these platforms or a platform not currently supported by Fair-
Com, contact your nearest FairCom office for assistance.
Once the c-tree Server is installed on the operating system, it is ready to be used. Starting and
stopping the c-tree Server are basic Administrator responsibilities, therefore this chapter is
required reading.
2. If reconfiguring the c-tree Server, use a text editor to create a configuration file, ctsrvr.cfg.
See Chapter 6 "Configuring the c-tree Server".
3. If adding (or changing) a configuration file, make sure it is in the same directory as the c-
tree Server (SYS:\ for NLM), is optionally set with the FCSRVR_CFG environment vari-
able, or is listed on the command line ( CTSRVR_CFG <file>).
Note: If the configuration file is not found by the c-tree Server, the Server will not use the cus-
tomized configuration file but will begin operation using default configuration settings.
Check the installation instructions for your platform in Chapter 2 "c-tree Server Instal-
lation" for any exceptions.
4. Start the c-tree Server by entering or selecting the name of the c-tree Server executable file,
ctsrvr, just as any ordinary program in the environment.
Note: The c-tree Server name may have a file extension - see the platform specific informa-
tion in Chapter 2 "c-tree Server Installation" for details.
Note: No password is required to start the c-tree Server, therefore an automated process, such
as a batch, script, or cron process, may start the c-tree Server.
Every time the c-tree Server starts, it checks log files made when it last stopped and, if neces-
sary, uses these files to automatically recover from problems. See Section 5.2 "Automatic
Recovery" on page 5-3 for details.
In most Unix environments, FairCom recommends Administrators run the c-tree Server in
background to decrease the opportunity to unwittingly terminate the c-tree Server. For exam-
ple,
ctsrvr &
The Unix "no hang up" option may also be used to keep the c-tree Server from being termi-
nated if the user starting the c-tree Server logs off the system. For example,
nohup ctsrvr &
Status Log, CTSTATUS.FCS, and displays them on the system console. In extreme cases, the
c-tree Server halts operation. Several kinds of errors can occur at startup.
These errors, and the appropriate reaction to each, are as follows:
12 A file required during automatic recovery cannot be located. Either it was removed
after the Server failed or the physical media (e.g. disk drive) was damaged during a
failure. To recover from this problem, reload the last complete system backup. See
Chapter 5 "Maintaining Database Integrity" for more information.
46 File number overflow. Too many files opened. Verify the configuration to ensure the
proper file allocations and limits. Verify the applications are opening the appropriate
files in the appropriate manner.
96 A log file required for recovery is not available. To recover from this problem, reload
the last complete system backup. See Chapter 5 "Maintaining Database Integrity"
for more information.
143 Communication handler not installed. Be sure the network drivers are loaded or the
shared memory directory (/usr/ctsrv) for Unix platforms has been created.
173 Can also occur if the Server is unable to create a socket for the client connection.
174 Socket creation will fail if the available file descriptors for the Server process have
been used (if the server has many files open, for example). Check the per-process
file descriptor limit on your system. This limit must be large enough to accommo-
date the number of files you wish to open (the FILES setting in the Server configu-
ration), plus the number of clients to connect to the Server at a time (the
CONNECTIONS or USERS setting in the Server configuration).
509 Another copy of the particular c-tree Server you attempted to start is already run-
ning. Each installed copy of the c-tree Server must have its own license and a
unique serial number. If you do not have enough c-tree Server licenses, please con-
tact your c-tree Server provider.
Note: Utility error messages covered in this manual refer to messages a c-tree Server sends to
a program connected to it. Although we list error numbers with brief explanations of
each error, it is important to understand how errors are treated, including messages sent
to users. It is the responsibility of the client application programs receiving the error
messages to properly capture and display the errors.
Note: The error messages associated with specific error numbers for the c-treeSQL Server are
found in the dherrors file which is stored in the lib sub-directory below the
LOCAL_DIRECTORY (if this keyword is defined in the server configuration file),
SERVER_DIRECTORY (if this keyword is defined in the server configuration file), or
the directory where the Server is installed.
3.5.2 749X
Most 749X errors are the result of memory corruption on the host machine. These errors are
extremely rare, but can be very serious. In most cases, restarting the Server will clear a tran-
sient memory error. If these errors repeat, contact your application vendor.
Value Cause
7491 Attempting to return memory carrying an unreasonable large length value in its con-
trol header.
7495 A list connected with c-tree's memory sub-allocator has become invalid or cor-
rupted.
7497 Attempting to return memory carrying a zero length in its control header.
3.5.3 8770
The 8770 error occurs when the Server attempts to remove an internal unique file ID from a list
as a file is closed, but that file ID is not on the list. This might be caused by an application
opening different files with the same internal file ID. This would typically be the case when a
file is copied and both files are then opened; therefore they both have the same file ID. To
avoid these errors do not copy server-controlled files. If the 8770 error occurred after another
more serious error, the 8770 error can be safely ignored. If it recurs, contact your application
developer for assistance.
application. An ADMIN group User ID and password is required to complete the close opera-
tion.
To stop the c-tree Server with the module ctstop, a special client application:
1. Start this program like any other.
2. The stop module asks for four things:
a. The ADMIN user ID, which must be ADMIN or a member of the ADMIN group.
b. The ADMIN password, which is necessary for continuing with the procedure.
c. The current name of the c-tree Server, if an alternative to the default name was given in
the configuration file (see the keyword SERVER_NAME in Section 6.3 "Basic Config-
uration Options" on page 6-3) to specify which c-tree Server to stop.
d. The delay time (if any) before shutting down the c-tree Server. If a greater-than-zero
delay is specified, the c-tree Server will not accept any new users or transactions.
Logon attempts during the delay time specified will fail with Error #150, which means,
"The Server is shutting down". New transactions cannot be started while waiting to
shut down. They will return Error #150 or Error #162, "Server gone", depending on
how far the shutdown process has gone.
The c-tree Server may also be stopped by an application program, as long as it supplies an
ADMIN group User ID and password, using StopServer discussed in the c-tree Plus Program-
mer's Reference Guide, (distributed only to c-tree Plus developers).
During c-tree Server shutdown, messages reflect when communications terminate and when
the final system checkpoint begins. In addition, two aspects of the shutdown that involve loops
with two-second delays generate output indicating their status. The first loop permits the delete
node queue to be worked down. The second loop permits clients to shutdown cleanly during c-
tree Server shutdown. If these loops are entered, the c-tree Server could take a measurable
amount of time to shut down, depending on the amount of work to be done, and output indi-
cates how many queue entries or clients remain. A notice indicates whether everything was
cleaned-up. A clean-up notice is NOT generated if a loop was not entered.
This output permits a c-tree Server Administrator to monitor the shutdown, and avoid an incor-
rect assumption about whether the c-tree Server is making progress or has hung during shut-
down. After the c-tree Server shuts down, it sends a message saying c-tree Server operations
have been terminated. The output is routed to the console and CTSTATUS.FCS, although the
latter does not receive the numeric information concerning the number of queue entries or
active clients.
SIGNAL_DOWN in Section 6.4 "Advanced Configuration Options" on page 6-4 for additional
information.
This option could be used to launch a backup utility, to relaunch the Server, or to execute a
batch/shell script to perform actions that can only be performed while the Server is inoperative.
The c-tree Server Service features all of the capabilities and advantages of Windows services
described above. As with any service, the c-tree Server Service can be configured to start auto-
matically when the machine comes up, can run invisibly no matter which users are logged on
or if no user is logged on, and will shut down automatically when the host machine shuts down.
Use the c-tree Server SCP command-line utility to install, configure, and control the c-tree
Server Service. The following command-line options are available:
ctntinst [executableName] option [-u <username> [-p <password>]] [serviceName]
• username is the name of the account under which the service should run. Use an account
name in the form: DomainName\UserName. The service process logs on as this user. If the
account belongs to the built-in domain, specify .\UserName. If the –u option is not speci-
fied, the service runs under the LocalSystem account.
• password is the password for the account name specified by the username option. If the
account has no password or if the service runs under the LocalService, NetworkService, or
LocalSystem accounts, omit the –p option.
• serviceName is an optional service name used to provide a unique service name. This is
required if more than one c-tree Server Service is to be executed on the same physical
machine. See Section 3.8.2 "Installing Multiple Instances of the c-tree Server" on page 3-8
for additional details on starting multiple c-tree Server Services. serviceName defaults to
"c-treeServer" if not specified.
4. Configure each instance to have a unique Service Name as described in Chapter 6 "Config-
uring the c-tree Server".
See Section 2.5 "Running Multiple c-tree Servers on One Machine" on page 2-11 for more
information.
The Logon User and the Startup Type (see Figure 3-2: Windows 2000 Service configuration
options on page 3-10) can also be set using the Windows NT Services Control Panel applet. To
do so, open the Windows Control Panel (by clicking Start, Settings, Control Panel) and select
the Services applet. You will be presented with a list of the installed services (see Figure 3-1:
Windows 2000 Services Control Panel applet on page 3-9).
Figure 3-1: Windows 2000 Services Control Panel applet
Select the c-tree Server Service, and click the button labeled "Startup…". The service configu-
ration options window will appear (Figure 2). Set the Startup Type and Logon User, as desired.
To display the current configuration for the c-tree Server Service using the c-tree Server SCP,
run ctntinst.exe, specifying the -showconfig option.
For example:
c:\faircom\bin.svc> ctntinst -showconfig
Service Configuration for c-treeServer
Display Name: c-treeServer
Type: SERVICE_WIN32_OWN_PROCESS
Start Type: Manual
Error Level: SERVICE_ERROR_NORMAL
Binary path: c:\faircom\bin.svc\ctsrvr.exe
Load Order Group: None
Tag ID: 0
Dependencies: None
Login Under: LocalSystem
• To check the current status of the c-tree Server Service using the Windows Services Control
Panel applet, open the Control Panel. Select the Services applet. If the c-tree Server Service
is running, the Status field shows "Started". Otherwise the Status field is blank.
WaitHint: 0x0
Table 3-1: c-tree Server Service-specific errors on page 3-13 shows possible service-specific
errors returned by the c-tree Server Service, the corresponding message, and possible causes
for each of these errors.
Error
Error Message Possible Causes
Code
4 The Server's settings file is missing. It is The c-tree Server requires a settings
required to operate this server. file, but it was not found.
5 The current Server's settings file is invalid. The c-tree Server requires a settings
file, and the settings file that was
found was not valid. Contact your
application developer for assistance.
6 This server must be activated with a Fair- The c-tree Server has not yet been
Com activation key in order to operate. activated.
See the c-tree Server Activation Key Card
within your package for more information.
Use the Windows Event Viewer to list events reported by the c-tree Server Service. Start the
Event Viewer and select the Application log option from the Log menu. Events logged by the
c-tree Server Service have the "Source" field set to the service name ("c-treeServer" by
default). Double-clicking an event displays the event detail (see Figure 3-3: Using the Event
Viewer to display events logged by the c-tree Server Service on page 3-14).
Figure 3-3: Using the Event Viewer to display events logged by the c-tree Server Service
3. Are the protocols displayed in CTSTATUS.FCS the same as those your client applications
are using?
FairCom’s ctadmn.exe utility (provided with the c-tree Server) is also a useful tool for verify-
ing whether clients can connect to the c-tree Server.
One of the main responsibilities of a c-tree Server Administrator is to establish and maintain
access to the c-tree Server. Although reviewing this chapter is not required for operating the c-
tree Server, FairCom recommends Administrators consider the following features.
Access to the c-tree Server can be controlled in four basic ways:
User access restrictions Requiring User ID and/or User password to access the c-
tree Server.
File operation permissions Controlling which specific operations (e.g., read, write,
delete) a given class of users can perform on a particular file
they have accessed.
The details of access and security control through user, file and group information are covered
in this section. Basic concepts needed to understand security operations are covered first.
Descriptions of the Administrator Utility used to enter security information for the c-tree
Server and monitor users while they are connected to the c-tree Server follow.
Note: The controls discussed here are those available to the Administrator.Applications can
also be programmed to allow certain security controls (e.g., change file passwords) to
users who have appropriate access to the c-tree Server, using available security func-
tions in FairCom's c-tree Plus API. Consult application documentation or application
vendor for further login instructions.
It is important to be aware that the file security provided by the c-tree Server is a function of
access to files through the c-tree Server. When files are not controlled by the c-tree Server, they
may not be secure.
designed to work together. For example, security instructions can be arranged allowing only
certain sets of users particular rights with respect to a given file.
4.1.1 Users
Whenever an application connects to a c-tree Server, it must identify itself to the c-tree Server.
The identifying code is called the User ID. To gain access to the c-tree Server, the User ID
seeking access to the c-tree Server must be one already authorized as a valid User ID. A pass-
word for the User ID may also be required to access the c-tree Server.
If one attempts to log on to a c-tree Server with an invalid User ID (i.e., one not issued by the
Administrator or created by changing an existing User ID), the c-tree Server will deny the
request and send a message to that effect (i.e., error message 450). An attempt to log on with a
valid User ID but an invalid user password will also be denied, with a message stating the rea-
son (i.e., error message 451).
When an application, i.e., a user running a given application, logs on to the c-tree Server, a task
user is created to identify the session with the User ID. This is relevant when monitoring or
disconnecting clients from the c-tree Server.
The c-tree Server recognizes four kinds of users:
Administrator
The Administrator, or "super user", is the only user with a pre-set, and unchangeable, User ID
(ADMIN). By having the only initial valid User ID, ADMIN is the first user to gain access to
the c-tree Server. After changing the password for User ID ADMIN from the initial password,
ADMIN, to a secure private password, the Administrator uses the ADMIN User ID and the pri-
vate password to obtain exclusive access to the Administrator utilities needed to carry out the
responsibilities discussed in this manual.
Unique User ID
The Administrator can create new User IDs (and passwords) for other users, who then log onto
the c-tree Server with these names. This includes new members to the ADMIN group with lim-
ited Administrator capabilities.
Application-based User ID
Application programs can be designed to supply a given User ID code when attempting to log
on the c-tree Server, regardless of who the user is. This User ID is treated like a unique User
ID, although several users may share a common ID. In other words, the application/user is
allowed onto the c-tree Server only if the User ID (and the password, if any) supplied to the c-
tree Server has been authorized.
Guest Users
Users without a unique User ID. An application program can be designed to log onto a c-tree
Server without requiring the user to supply a User ID and without supplying an application-
based User ID. When no User ID is supplied to the c-tree Server as an application logs onto the
c-tree Server, the c-tree Server automatically assigns the special User ID "GUEST" to that ses-
sion.
User IDs can be up to 31 characters long. Characters can be letters, numbers, or punctuation
marks. User IDs are not case sensitive (i.e., upper and lower case characters are treated as the
same).
User passwords can be up to nine characters long. Characters can be letters, numbers, or punc-
tuation marks. Passwords are case sensitive (i.e., upper case and lower case characters are
treated as different).
Note: Users, including ADMIN, can use the ctpass utility (see Appendix A "User's Control of
Security Options") to change their own password, and ADMIN can always use the c-
tree Server Administrator Utility, described below, to review current passwords for all
User IDs.
below, in Section 4.2 "c-tree Server Administrator Utility" on page 4-6, and in Section 6.4
"Advanced Configuration Options" on page 6-4.
The Server Administrator can set an optional limit on the number of consecutive failed logons
that will cause subsequent logon attempts to fail for a specified time interval. The default logon
limit is zero (0), which implies the feature is not active. Logons are blocked for 5 minutes by
default after exceeding the limit. A logon during this period returns LRSM_ERR(584). Set the
logon limit with LOGON_FAIL_LIMIT <logon limit> in the configuration file. The length of
time the logons are blocked is set by LOGON_FAIL_TIME <minutes> in the configuration
file.
The c-tree Server can be configured to require user logons within a given period. This ensures
all users log on "at-least-once" within the defined time (e.g., at least once a week). If the time
expires for a specific user, the Server deactivates the user’s profile, preventing access to the
Server. The Server Administrator, or other ADMIN group user, must reset the user’s account
once the time limit has elapsed. To activate this feature, add the following keyword in the
Server configuration file, ctsrvr.cfg, where <value> is the period in minutes during which the
user must logon:
LOGON_MUST_TIME <value>
4.1.2 Files
Database files have several security features in addition to the file permission mask, discussed
in a separate section:
File Password
Files created by the c-tree Server, and others, can be assigned a file password when created.
File passwords can be changed later by the Administrator or the file's owner, and then be
required for users to access files. For example, a user could be required to enter a file password
before initiating the file operations specified in the file permission mask (see Section 4.1.4
"File Permission Masks" on page 4-5).
File passwords can be up to 9 characters long. Characters can be letters, numbers, or punctua-
tion marks. Passwords are case sensitive (i.e., upper case and lower case characters are treated
as different).
File Owner
As explained in Section 4.1.1 "Users" on page 4-2, when a file is created by the c-tree Server,
the User ID requesting the creation is established as the owner of the file. The Administrator
may change the file owner any time to any other currently valid User ID. The owner is used to
define one of the ways file permissions can be granted, e.g., the owner typically has permission
to write to the file.
File Group
When created, a file is typically associated with the current primary group of the User ID who
created the file. The file group is designed for use with the file permission mask. This can be
changed later to any other currently valid Group ID for that User ID by the Administrator or
owner. For example, the file permission mask may allow "group permission" to read the file,
while no others can (see Section 4.1.4 "File Permission Masks" on page 4-5).
If instructed by the user's application when it creates a file, a file's Group can be any one of the
owner's other Group IDs, instead of the owner's primary Group.
The current Owner of a file may use the ctfile utility, after entering both the current User ID
password and the current file password, to change: the file password; the file permission mask
(see Section 4.1.4 "File Permission Masks" on page 4-5); the file Group; and even the file
Owner itself, which would block the user from accessing the file through the original Owner
User ID. Appendix A "User's Control of Security Options" contains a further description of this
treatment.
4.1.3 Groups
A Group is an arbitrary category of associated User IDs and files. For example, a business
wanting to separate the payroll department and the shipping department could establish a
"shipping" Group and a "payroll" Group and associate appropriate User IDs with one or more
of these Administrator-defined Groups. By establishing and using groups, the Administrator
can offer file-level operation control to selected groups of users. For example, by using Groups
along with file permission masks it is possible to enable users in the payroll department to read,
but not write, to any file created by anyone else in the payroll department.
permission mask for a given file (i.e., "YES, TYPE X USERS have permission to do this oper-
ation" or "NO, TYPE X USERS do not have permission to do this operation"):
• READ the file
• WRITE to the file (i.e., add, update, or delete individual items in the file)
• CHANGE THE DEFINITION(s) of the file, including such characteristics as alternative
collating sequences or record schemas (see the c-tree Plus Programmer's Reference Guide
for details)
• DELETE the entire file
• Any combination of the above
If a file has no permission mask, any user who can access the file can perform all the above
operations.
User Controls
Each of these permissions for a given file can be specified for any or all of the following
classes of users:
• WORLD access: Allow the specified file operations to any user who can access the file (so
users who lack a required User ID and/or file password do not have these file-operation
permissions).
• OWNER access: Allow the specified file operations to the current owner of the file. The
owner is either the User ID in effect when the file was created or a different User ID who
was later assigned as the owner.
• GROUP access: Allow the specified file operations to any User ID currently a member of
the same Group as the current File Group.
In summary, a file permission mask permits different degrees of access to a file for the file's
owner, users belonging to the file's group, and all other users, including guests.
Using the concepts discussed above, the Administrator can establish a sophisticated and flexi-
ble security system with the c-tree Server. The mechanism for actually entering information for
use by the c-tree Server is a separate program utility, called the Administrator's Utility, ctadmn.
- (optional) Enter the User Memory Rule: Absolute, Guideline, or Default. See
USR_MEM_RUL in Chapter 6 "Configuring the c-tree Server" for details.
- (optional) Enter a user password.
- (optional) Assign user membership in from 1 to 16 Groups (i.e., Group IDs).
- (optional) Enter the first valid date for this User ID.
- (optional) Enter the last valid date for this User ID.
- (optional) Enter limit on consecutive logon failures if different from system default. See
LOGON_FAIL_LIMIT in Section 6.4.6 "Miscellaneous Control" on page 6-7 for
details.
• Remove an existing User ID.
• List authorized User IDs.
• Change the Password for a given User ID.
• Change which Group(s) a User ID is associated with by adding (up to 16) or removing
groups from a list of a User's association with Group IDs.
• Change the User Description, i.e., change the long name identifying the User ID.
• Change User Memory. Change the maximum amount of c-tree Server memory a given user
can consume.
• Change Extended Logon Validation, including start date, end date, and consecutive logon
failures.
• Change Group Memory: change the maximum amount of Server memory user in a given
group can consume.
==============================================================
================================================================
be sure users are aware of these powers, and how to use them. See Appendix A "User's Control
of Security Options" for details.
- begdat: Optional starting validity date. Specify as mm/dd/yyyy. NULL for Default.
- enddat: Optional ending validity date. Specify as mm/dd/yyyy. NULL for Default.
- loglimit: Optional maximum invalid logon attempts. 0 for Default. -1 to disable invalid
logon check.
- mstlogon: Optional must logon period, e.g., how often the user must log on to remain
active. Specify as number of minutes. NULL for Default. -1 to disable must logon
period.
- rsmlogon: Optional logon timeout remaining. If a user has been denied access to the c-
tree Server due to excessive invalid logon attempts, you can adjust the remaining user
lockout time here. Specify as number of minutes. NULL to leave unchanged.
• Option User Show
-ous userid
- userid: User id is mandatory.
Although this chapter is not required reading, FairCom recommends Administrators consider
the benefits of the covered features. The c-tree Server creates a number of system files and logs
to enable automatic or Administrator-guided recovery from problems. The Administrator is
responsible for saving the relevant information, for recovering from problems and for returning
database information to its state at an earlier point in time.
Note: The operations described in this section are performed only on files subject to transac-
tion processing, with the only exception being those described in Section 5.3.2 "Script
File for Defining Dynamic Dump" on page 5-4.
Note: It is important to safeguard these files, however only the S*.FCS and D0000001.FCS
files should remain after a normal Server shutdown.
Active Transaction Logs
Information concerning ongoing transactions is saved on a continual basis in a transaction log
file. A chronological series of transaction log files is maintained during the operation of the c-
tree Server. Transaction log files containing the actual transaction information are saved as
standard files. They are given names in sequential order, starting with L0000001.FCS (which
can be thought of as "active c-tree Server log, number 0000001”) and counting up sequentially
(i.e., the next log file is L0000002.FCS, etc.).
The c-tree Server saves up to four active logs at a given time. When there are already four
active log files and another is created, the lowest numbered active log is either deleted or saved
as an inactive transaction log file, depending on how the c-tree Server is configured (see inac-
tive transaction logs).
Every new session begins with the c-tree Server checking the most recent transaction logs (i.e.,
the most recent 4 logs, which are always saved as "active" transaction logs) to see if any trans-
actions need to be undone or redone. If so, these logs are used to perform an automatic recov-
ery. When configuring the c-tree Server, the odd and even numbered logs can be written to
different physical devices. See Chapter 6 "Configuring the c-tree Server".
Inactive Transaction Logs
Transaction log files no longer active (i.e., they are not among the 4 most recent log files) are
deleted by default. To save inactive transaction log files when new active log files are created,
add the KEEP_LOGS configuration option to the Server configuration with a positive number
indicating the number of logs to keep. In this case, an inactive log file is created from an active
log file by renaming the old file, keeping the log number (e.g., L0000001) and changing the
file's extension from "FCS" to "FCA." The Administrator may then safely move, delete, or
copy the inactive, archived transaction log file.
Temporary Stream Files
The Server creates five stream files at startup. These files prevent errors when the operating
system has used a large number of file handles and the Server needs a stream file. The file
names begin with FREOPEN followed by a distinguishing character and ending with .FCS.
These temporary files are used for internal Server operations and should automatically be
deleted during a normal Server shutdown.
Optional Server System Event Log
The c-tree Server maintains two optional system files: SYSLOGDT.FCS and SYSLOGIX.FCS.
SYSLOGDT.FCS is a c-tree Plus data file with a record for each recordable system event.
Unlike the CTSTATUS.FCS file, the system log files can be encrypted so entries cannot be
added, deleted, or modified with a simple text editor, and vendors can add application specific
entries to the log. See Chapter 6 "Configuring the c-tree Server" or your vendor’s documenta-
tion for information on the SYSLOG keywords appropriate to your application.
In case of a system failure, be sure to save all the system files (i.e., the files ending with
"FCS"). CTSTATUS.FCS may contain important information about the failure. When there is a
system catastrophe, such as a power outage, there are two basic possibilities for recovery:
• When the power goes back on, the system will use the existing information to recover auto-
matically.
• The Administrator will need to use information saved in previous backups to recover (to
the point of the backup) and restart operations.
Note: The dynamic dump and recovery processes are intended primarily for files under trans-
action processing control. Non-transaction controlled files can be dumped under certain
restrictions. See Section 5.3.8 "Dump Files Without Transaction Control" on page 5-11
for more information.
The following sections describe the following dump and recovery utilities:
Roll Forward ctfdmp Roll the database state to a later time following a dump
recovery.
5.3.2.1 Format
The script file consists of a series of instructions, each of which is given by a keyword fol-
lowed by a space and an argument (e.g., the keyword "!DAY" followed by the argument
"WED"). All keywords begin with an "!" and are not case sensitive (i.e., !DAY = !Day). Argu-
ments are strings of letters, numbers, and punctuation, in the format shown below for each key-
word (e.g., WED). Spaces and new lines divide keywords and arguments. Spacing and new
lines are free form, but it is easier to create and change a script with each keyword/argument
pair on a separate line, as in the sample script shown after the list of keywords.
With the following two exceptions, the order of keywords does not matter:
• The next to last keyword must be "!FILES", followed by an argument which is a list of the
files to be dumped (with each file name separated by at least one space or line feed from the
next), rather than a single value, and,
• The last keyword in the script file must be "!END", which takes no argument.
Note: If a file by this name already exists, it will be deleted at the beginning of the dump and
the new dump file replaces the old file.
Note: There must be sufficient space for the dump file, which is limited to the maximum file
size for the operating system (2 GB on most systems). If enough space is not available,
the dump fails. A failure due to insufficient disk space will not corrupt anything, but
additional space must be allocated before a backup is completed.
!END
Terminates the instructions in the script file. Place !END immediately after the !FILES key-
word and list of files. !END takes no argument.
!ENDSEGMENT
Terminates the list of segments when specifying individual segment size and location.
!EXT_SIZE <bytes | NO>
Change the default extent (segment) size from 1GB or disable with NO. See Section 5.3.5
"Dump To Multiple Files - No Size Limit" on page 5-8 for more details.
!FILES <list of files>
The !FILES keyword is followed by names of files to include in the dynamic dump. This must
be the next to last keyword in the script file. We strongly suggest that FAIRCOM.FCS be
included in your list. Members of a superfile cannot be individually "dumped." The entire
superfile must be dumped; that is, the name of the host superfile, not a superfile member, is
placed in the list of files. The * and ? wildcards are supported. See !RECURSE for other
options.
!FREQ <hours>
Hours between successive dumps. For example, 24 to repeat the dump once a day, or 168 to
repeat the dump once a week.
!PROTECT and !PROTECT_LOW
The keyword !PROTECT, without an argument, added to a dynamic dump script file suspends
updates to each non-transaction file while it is being dumped. This ensures the file’s data integ-
rity. The associated index files for a data file are not guaranteed to be consistent with the data
file because the files are not dumped at the same time. With transaction files, the files are con-
sistent because transaction log entries are used to bring all files back to the same point in time,
i.e., the effective dump time. In most situations it is more efficient to dump only the data files
and rebuild to recreate the indices.
The update suspension is enforced only at the ISAM level unless the keyword
!PROTECT_LOW is used instead. !PROTECT and !PROTECT_LOW are mutually exclusive
options. The last one in the script is used.
Whether or not !PROTECT or !PROTECT_LOW are used, resource updates are suspended at
the AddResource, DeleteResource, and UpdateResource entry points.
!RECURSE <YES | NO | MATCH_SUBDIR>
Default is NO. Controls directory recursion when using wildcards. The !RECURSE keyword
only applies when processing a !FILES entry containing a wildcard. In the case of
MATCH_SUBDIR, not only does the file name require a match on the wildcard pattern, but
only directory names which match the pattern will be considered for recursion.
!SEGMENT
See details in Section 5.3.6 "Segmented Dynamic Dump" on page 5-9.
!TIME <hh:mm:ss>
Time of day, on a 24 hour clock, to perform back up. If the time has already passed, then the
!FREQ interval is used to find the next scheduled time. If a !DATE or !DAY is specified with-
out a time, then the time defaults to 23:59:59.
If no time, day, or date is specified the dump begins immediately.
3. Enter the current c-tree Server name if the c-tree Server has been given a different name
than the default name. See Section 6.3 "Basic Configuration Options" on page 6-3 for more
information on SERVER_NAME.
4. Enter the name of the Dynamic Dump script file.
The c-tree Server confirms that it has scheduled the requested Dynamic Dump.
Mirrored files are supported during dynamic dump and dump recovery as follows:
1. If a mirrored file should be opened for use by an application during a dynamic dump, the
dump script should contain the "mirrored" name, i.e., the name with the vertical bar ('|').
For example, sales.dat|msales.dat.
2. If this is not done, and the dynamic dump opens the primary file, because it is not in use, a
client opening the primary|mirror combination gets an MNOT_ERR (file already opened
without mirror). To avoid blocking users from gaining file access, open primary files with
their mirrors when specified for dynamic dumps.
3. The dump recovery program recreates both the primary and mirror files. It reproduces the
primary file, and copies it over the mirror file.
Once a dynamic dump has been completed, the files may be used for Dump Recovery and/or
Rollbacks.
after dump.str gets to the extent size will be dump.str.001. However, if the original dump file is
named dump.111, then the first extent will be dump.112.
On some systems, the dynamic dump extent names formed from the original dump stream file
name by adding .001, .002, etc. are not legal. Therefore the extent name is first checked inter-
nally. If it does not work, the original dump stream file name is modified to produce a safe
name in one of the following ways:
• Replace name extension, if any, in original with numeric name extensions (.001, .002, etc.).
• If the original name had no name extension, truncate the name to 8 bytes, and add numeric
name extensions.
• If the original name had no name extensions and is not more than 8 bytes, use the name
FCSDDEXT.001 for the first dump stream segment, incrementing the numeric name exten-
sion as needed.
bigdata.idx
!END
The host dump file is up to 50 MB on volume D:, the first dump file segment is up to 75 MB on
volume E:, and the last dump file segment is as large as necessary on volume F:.
In the case of MATCH_SUBDIR, not only does the file name require a match on the wildcard
pattern, but only directory names which match the pattern will be considered for recursion.
The dynamic dump is specifically designed to address c-tree Plus data and index files, includ-
ing superfiles. It does not support non-c-tree/server files. Please keep in mind: it is possible for
your wildcard representation to represent non-c-tree files. The following definitions cause all
files within the Server’s LOCAL_DIRECTORY to be considered. If any non-c-tree files are
encountered, the Dynamic Dump rejects them and a message is written to the CTSTATUS.FCS
file if the DIAGNOSTICS DYNDUMP_LOG keyword is active. A rejection does NOT cause
the dump to terminate. It will proceed to the next file.
!FILES *.* !FILES *
!END !END
Please remember that the dynamic dump does not support individual superfile member names.
Specify the host superfile name in the script to back up the members. Here are examples of
wildcard names:
• the pattern m*t matches mark.dat but does not match mark.dtx
• the pattern *dat matches markdat and mark.dat
• the pattern *.dat only matches mark.dat (not markdat)
Note: Be aware of the differences between using !SKIP with a recovery and with a rollback
(see Section 5.5 "System Rollback" on page 5-14 discussion) where it must be used
with caution.
Note: Only the files specified by the !FILES keyword will be restored. It is not necessary to
restore all files contained in the dump.
The dynamic dump script used during restore may contain one or more of the following redi-
rection directives:
!REDIRECT <old path> <new path>
Note: To specify an empty string for one of the !REDIRECT arguments use a pair of double
quotes ("").
Examples:
The following directives cause files that were backed up using absolute names to be restored
into the directory temp (relative to the current directory during restore) and files that were
backed up from the directory local (relative to the Server working directory) to be restored into
the absolute directory \temp\local:
!REDIRECT \temp\
!REDIRECT local \ \temp\local\
The following will add temp\ to all restored files:
!REDIRECT " " temp\
The following will strip d: from any restored files starting with d: (or D:):
!REDIRECT d: ""
Note: The !REDIRECT keyword only affects the restore operation and is ignored when the
script is used for the backup process.
If for some reason ctrdmp terminates prematurely (for example, a fatal error causes ctrdmp to
terminate abnormally), the “Dump Restore Error Termination...” message might not be written
to CTSTATUS.FCS. In that case, ctrdmp might have written error messages to standard output
or to CTSTATUS.FCS before terminating that helps explain the reason for ctrdmp terminating
prematurely.
2. Be sure to make periodic, complete backups, using any standard backup utility. The follow-
ing files must be included in a complete backup:
- All data and index files.
- The file named FAIRCOM.FCS.
- The S*.FCS files.
Note: Once all necessary files have been backed up, the transaction log files (L*.FCS) may be
deleted with one exception: DO NOT DELETE the most recent active transaction log
file, which is the file of the form "L<seven digit number>.FCS" with the highest valued
seven digit number.
3. After restarting the c-tree Server following a safe, complete backup, save all transaction log
files created until the next complete backup. Active transaction log files have names of the
form "L<seven digit number>.FCS," with the number being incremented by 1 for each new
active transaction log. As specified in the KEEP_LOGS configuration value, when the c-
tree Server creates a new active log it will rename the active log being replaced from
"L<log number>.FCS" to L<log number>.FCA" and save it as an inactive transaction log
file.
Normally,when archiving all the logs, you would reestablish your forward roll starting
point on a regular basis by means of a new dynamic dump, possibily on a weekly basis and
keeping the previous weeks dump and accumulation of logs as a further backup, a grandfa-
ther approach. It is easy to automate the archiving since ther server automatically renames
inactive logs to *.FCS and once renamed, the server is not going to access them so they can
be archived without causing problems for the server.
dynamic dump, and all L*.FCS and L*.FCA (renamed to L*.FCS) files that have been
archived in the default directory.
3. Start the forward dump utility, ctfdmp, as any other program in the environment. The for-
ward dump will proceed without any further instructions.
Note: Only transaction-processed files will be updated beyond the state they held when the
backup was made.
ctfdmp accepts the command line arguments shown below. The first two need to be used only if
the application uses more than the default number of #FCB or the PAGE_SIZE is larger than
default, (see previous definitions for #FCB and PAGE_SIZE). If either of the first two com-
mand line arguments is used, they both must be specified as illustrated below. !SKIP is
optional and described in Section 5.5 "System Rollback" on page 5-14.
CTFDMP [!#FCB <number of files>]
[!PAGE_SIZE <bytes per buffer page>]
[!SKIP]
TIME <hh:mm:ss>
Begin dumping transaction as of the time specified. If a date is specified, then the date and time
are used in conjunction with each other. If a date is not specified the current date is the default.
TRAN
Transaction number which must be matched in order for the transaction to be listed.
TYPE
Transaction type which must be matched in order for the transaction to be listed. The following
code numbers correspond to the specified transaction type:
07 Begin transaction.
08 Commit transaction.
09 Abort transaction.
26 Server checkpoint.
27 Open file.
28 Create file.
29 Delete file.
30 Close file.
31 Client login.
32 Client logoff.
40 Abandon transaction.
CHKPNT yes
Outputs detailed information for each checkpoint encountered during a dump. For example, by
using the following command line, the log dump begins with log file L0000100.FCS; only
dumps checkpoints, and lists detailed information about checkpoints. tran types are found in
ctopt2.h and the table above.
being accessed. One user was using the physical name, while another was using the UNC
name. This problem is somewhat uncommon, yet because of its serious consequences, the c-
tree Server contains a number of protections.
COMPATIBILITY NO_UNIQFILE
This option disables attempts to determine if two files accessed with different file names (or
paths) and which have identical c-tree Plus file IDs are actually the same or different files. This
support is added in case our tests for uniqueness are somehow incomplete and lead to unin-
tended file ID reassignments. These modifications give c- tree Plus the capability to disable the
uniqueness test when files are suspected of having the same internal, "unique" 12-byte ID.
COMPATIBILITY EXACT_FILE_NAMES
This Server keyword mandates that all files have the exact same file name in order to be
opened. If the internal name test determines that the files are in fact the same physical file, it
will not allow the file to be opened with a different name. This compatibility keyword does not
permit the same file to be opened with different names. If the same file is attempted to be
opened with a different name, then error EXCT_ERR(642) will be returned.
There is a subtle interaction with the NO_UNIQFILE keyword defined above. The possible out-
comes for all the combinations of keywords and files are in the table below. A file is repre-
sented by a lowercase path, an uppercase name, and a numeric file ID. For example, pA1 has
path "p", name "A", and file ID 1. pA1 and qA1 are the same file accessed with different paths;
pA1 and qB1 are different files mistakenly having the same file ID; and pA1 and qB2 are two
different files with different file IDs (as expected).
The four possible keyword combinations are:
In the outcomes table below, the first (successful) open is for file pA1. The second open is as
indicated. In actuality, only the second open for qB1 requires some adjustment or an error
return.
Second
Standard NoUnique Exact Both
Open
Second
Standard NoUnique Exact Both
Open
qB1 Modify B's file Incorrectly treat B Modify B's file ID EXCT_ERR(642)
ID and return as a shared open and return
NO_ERROR of A and return NO_ERROR
NO_ERROR
The uniqueness test (which is based on system dependent calls) may incorrectly indicate that
two files are unique when they are the same. This occurs with certain mappings and/or aliases
masking the sameness of the files. If this occurs, the first row of the above table becomes:
Second
Standard No Unique Exact Both
Open
The most conservative approach is to turn on both keywords, but of course this requires the
same name (and path) to be used for a file on all opens. If the uniqueness test is without weak-
ness, then the standard setting (i.e., neither keyword) works best.
LOCAL FILE TEST
Because of the potential problems with network file names, and because FairCom does not rec-
ommend (actually discourages) placing c-tree Server files or logs on network drives (e.g.
drives NOT on the local machine running the c-tree Server executable), a warning message is
now written to the CTSTATUS.FCS file if a network file is detected. Besides the potential prob-
lem for the unique file test, placing data/index or server log files on a mounted network drive
will introduce an additional network overhead and jeopardize the server’s performance. The
WARNING is only issued on the first such occurrence in order to avoid unnecessary overhead.
If either of the COMPATIBILITY keywords is active, NO_UNIQFILE or
EXACT_FILE_NAMES, the issue described above is not in play and the Server automatically
disables this test.
Because of the possibility of a performance hit, the COMPATIBILITY NO_TEST_LOCAL
keyword has been added to turn off the check of whether a file is local or remote.
The c-tree Server can be configured in many different ways, ranging from memory allocations
and termination delays, to scripts controlling how dumps are made and how to recover previ-
ously dumped information.
Unless otherwise instructed, a c-tree Server starts using default settings for all configurable
parameters. The c-tree Server takes configuration instructions from a configuration file,
ctsrvr.cfg, placed in the c-tree Server directory (SYS:\ for NLM). When the c-tree Server finds
a ctsrvr.cfg file, it uses all the specified configuration values.
Note: Your vendor may also provide a settings file which is not user-configurable, ctsrvr.set,
described in Section 6.4 "Advanced Configuration Options" on page 6-4.
Note: Keep in mind that the ctsrvr.cfg file needs to be saved in a unix text file format. Failure
to do so may cause an error to occur.
On Unix systems, keywords can be entered from the command line when starting the c-tree
Server as described in Section 6.4 "Advanced Configuration Options" on page 6-4.
Examples of reasons the c-tree Server may need to be reconfigured are:
• Communications protocols (for transmitting information to and from the c-tree Server):
The default communications support for the c-tree Server is TCP/IP. Implementing other
communication techniques requires a c-tree Server configuration file, and the appropriate
COMM_PROTOCOL keyword, as defined in Section 6.4 "Advanced Configuration
Options" on page 6-4.
• Memory allocations: To change the maximum amount of memory all users, or any given
user, will be allocated -- and to specify whether this maximum is an absolute rule or only a
guideline.
• Backup files: To specify the c-tree Server should look for a dynamic dump script and fol-
low instructions in that script to back up specified files.
2. Name this file ctsrvr.cfg and put it in the appropriate directory. By default, the c-tree Server
looks in its own directory for a file of this name when it starts.
Note: The c-tree Server for Novell looks in the root SYS:\ directory. The default file name and
path can be changed with an environment variable and a command-line keyword, as
described in Section 6.4 "Advanced Configuration Options" on page 6-4.
3. Start the c-tree Server.
Note: Before starting the c-tree Server, the Administrator should check the contents of the
current configuration file, if one exists, to check its validity for the current situation.
The Administrator is responsible for knowing the contents of any current configuration
file, and for implementing any changes in the configuration of the c-tree Server.
The rest of this section is in three parts:
• The format of the c-tree Server configuration file is defined.
• Basic c-tree Server configuration options are listed and documented.
• Advanced c-tree Server configuration options are listed and documented along with other
advanced topics.
• CONNECTIONS: Set the maximum number of concurrent connections to the c-tree Server
to 15.
• IDX_MEMORY and DAT_MEMORY: Increase the memory allocated to index cache and
data cache, from 225,000 bytes to 500,000 bytes.
Individual lines in ctsrvr.cfg can be commented out with a semi-colon ';' in front of a line.
Example:
;COMM_PROTOCOL F_TCPIP
Note: Multiple configuration files may be used. For example, create different configuration
files for different dynamic dump schedules, or for different communication protocols.
Be sure the appropriate configuration file is found by the c-tree Server when starting.
page 5-3. There is no default script, so the keyword DUMP does not appear in the default con-
figuration file. An example configuration file entry for DUMP is:
DUMP system.dmp
Note: If the DUMP keyword is used, the file named as containing the dynamic dump script
must be in the same directory as the c-tree Server. The c-tree Server will look only for
this file in its own directory and if it does not find it, the c-tree Server will terminate
immediately, with error #12 (i.e., "file not found").
FILES Default: 100
The maximum number of data files and indices where each index, whether or not in a separate
file, counts toward this total. For example, an index file which supports (i.e., contains as sepa-
rate index members) three different keys counts as three files toward the FILES total. There is
no effective limit to the number of files supported by the c-tree Server, except for any limits
imposed by the available system memory.
FILES <Number of Files>
IDX_MEMORY Default: see note below
The memory allocated to the index cache, specified in bytes. Within the memory constraints of
the hardware, there is no effective limit. High-speed buffer search routines ensure quick access
to the entire cache.
IDX_MEMORY <bytes>
Note: The default value for both the standard c-tree Server and the c-treeSQL Server is 600 *
PAGE_SIZE. Assuming a default page_size of 8192, the default DAT_MEMORY
would be 4915200 for both the standard c-tree Server and the c-treeSQL Server.
MAX_DAT_KEY Default: 32
Maximum number of indices per data file.
MAX_DAT_KEY <Max Indices per Data File>
MAX_KEY_SEG Default: 12
Maximum number of key segments allowed per index.
MAX_KEY_SEG <Max Segments per Index>
SERVER_NAME Default: FAIRCOMS
A name assigned to c-tree Server, instead of the default name.
SERVER_NAME <NAME>
the systems analyst in charge of the computing environment. We assume the Adminis-
trator will communicate with other experts as needed. For completeness, all configura-
tion options supported by the c-tree Server are included in this manual. The keywords in
this section are in alphabetical order.
The keywords in this section can be categorized into groups as follows:
ADMIN_MIRROR SKIP_MISSING_LOG_MIRRORS
LOG_EVEN_MIRROR SKIP_MISSING_MIRRORS
LOG_ODD_MIRROR START_EVEN_MIRROR
MIRROR_DIRECTORY START_ODD_MIRROR
MIRRORS
BUFR_MEMORY PRIME_INDEX
BUFFER_RUNLENGTH RECOVER_FILES
GUEST_MEMORY SORT_MEMORY
LIST_MEMORY SPECIAL_CACHE_FILE
MPAGE_CACHE SPECIAL_CACHE_PERCENT
NO_CACHE TOT_MEMORY
NO_SHUTDOWN_FLUSH USR_MEM_RULE
PRIME_CACHE USR_MEMORY
DEADLOCK_MONITOR DISK_FULL_LIMIT
CHECKPOINT_FLUSH PREIMAGE_DUMP
CHECKPOINT_IDLE PREIMAGE_FILE
CHECKPOINT_INTERVAL PREIMAGE_HASH
COMMIT_DELAY RECOVER_DETAILS
FORCE_LOGIDX RECOVER_MEMLOG
IDLE_NONTRANFLUSH SKIP_MISSING_FILES
IDLE_TRANFLUSH START_EVEN
KEEP_LOGS START_ODD
LOG_EVEN SUPPRESS_LOG_FLUSH
LOG_ODD TRANSACTION_FLUSH
LOG_SPACE
ADMIN_ENCRYPT LOGON_FAIL_LIMIT
BROADCAST_DATA LOGON_FAIL_TIME
BROADCAST_INTERVAL LOGON_MUST_TIME
BROADCAST_PORT MATCH_FILE_ID
CACHE_LINE MAX_VIRTUAL_FILES
COMM_PROTOCOL NODE_DELAY
CTSRVR_CFG NULL_STRING
CTSTATUS_MASK PAGE_SIZE
CTSTATUS_SIZE SEMAPHORE_BLK
DISK_FULL_VOLUME SERVER_DIRECTORY
FILE_HANDLES SESSION_TIMEOUT
FIXED_LOG_SIZE SIGNAL_DOWN
GUEST_LOGON SIGNAL_READY
LOCAL_DIRECTORY STARTUP_BLOCK_LOGONS
LOCK_HASH TASKER_SLEEP
LOG_ENCRYPT TMPNAME_PATH
< input value > An input value for the keyword. Replace with the value desired. For
example, COMMIT_DELAY <milliseconds> would be put in the con-
figuration file as COMMIT_DELAY 10 to delay 10 milliseconds.
< value1 | value2 > The | character indicates that either value1 or value2 can be used as
described above, but not both together. For example,
ADMIN_ENCRYPT <YES | NO> can be entered as either
ADMIN_ENCRYPT YES or ADMIN_ENCRYPT NO.
ADMIN_ENCRYPT Default: NO
To encrypt the FAIRCOM.FCS file at creation, set ADMIN_ENCRYPT YES. This prevents
casual viewing of the data in the file, adding another level of security for passwords and user
definitions stored in the file. This keyword will not encrypt an existing file.
ADMIN_ENCRYPT <YES | NO>
ADMIN_MIRROR Default: No log mirror
Permits FAIRCOM.FCS to be mirrored. For example, where mirror_path is the path to the sec-
ondary storage location for FAIRCOM.FCS:
ADMIN_MIRROR <mirror_path\FAIRCOM.FCS>
BROADCAST_DATA Default: No data sent
BROADCAST_DATA specifies a token to be broadcast following the Server Name. The token
must not contain spaces. There is no default token. For example, add a department name or fur-
ther identifying information for the c-tree Server.
BROADCAST_DATA <Token>
BROADCAST_INTERVAL Default:10
The number of seconds between broadcasts. The default is 10 seconds, otherwise the token
should be a number. If the number is negative, each broadcast is also sent to the c-tree Server
standard output.
BROADCAST_INTERVAL <Seconds>
BROADCAST_PORT Default: 5596
Specifies the TCP/IP port used for the broadcast. The default, 5596, is used when DEFAULT is
specified, but any valid four-byte integer greater than 5000 that is not in use by another process
may be specified. This should NOT be the port for the c-tree Server, which is displayed at star-
tup and is based on the Server Name. See the examples in Section 6.9 "Advanced - Broadcast"
on page 6-34.
BROADCAST_PORT <DEFAULT | Port>
BUFFER_RUNLENGTH Default: 10
This setting should be changed only at the request of your application developer.
BUFFER_RUNLENGTH specifies the number of consecutive write operations performed
while walking a list of buffer/cache pages before allowing other threads to acquire control of
the list. A negative value is ignored.
BUFFER_RUNLENGTH <number of write operations>
BUFR_MEMORY Default: 64000
Specifies the size of memory blocks the c-tree Server uses in conjunction with data and index
cache buffers. To minimize interaction with the underlying system memory manager, the c-tree
Server manages its own blocks of memory out of which the buffer pages are allocated. The c-
tree Server acquires one large block of memory and allocates smaller pieces as needed. If you
are attempting to limit memory use by reducing IDX_MEMORY and/or DAT_MEMORY, set
BUFR_MEMORY to about one eighth of the smaller of IDX_MEMORY and
DAT_MEMORY.
BUFR_MEMORY <bytes>
CACHE_LINE Default: 16
To maximize the performance of the c- tree Server under multi-CPU systems ensure the cache
line setting matches the setting for your equipment.
A cache-line is the smallest amount of memory a processor will retrieve and store in its highest
speed cache. Typical cache-line sizes are 16, 32 or 64 bytes.
CACHE_LINE<size>
CHECKPOINT_FLUSH Default: 2
This keyword sets the maximum number of checkpoints to be written before a buffer (data or
index) holding an image for a transaction controlled file will be flushed. The default value is 2.
A value of zero causes the buffer to be flushed at least by the occurrence of the first checkpoint
written after the buffer update. Reducing the value of this system parameter reduces the
amount of buffering, slowing system performance, but decreases the amount of work to be per-
formed during recovery.
CHECKPOINT_FLUSH <# of checkpoints>
CHECKPOINT_IDLE Default: 300
Specifies the time in seconds between checkpoint checks. A checkpoint is an entry in the trans-
action log which lists open files, active transactions and transactions that are vulnerable due to
pending buffer flushes. By default, every 300 seconds the c-tree Server checks if there has been
any transaction activity, and if so, if there are any current active transactions. If there has been
activity since the last checkpoint, but there is currently no active transaction, a checkpoint
occurs. This strategy will not create extra checkpoints when the c-tree Server is idle, with
respect to transactions, or when the c-tree Server is busy with transactions.
It is important to note that if an application routinely calls Begin whether or not updates are
imminent, this "idle" checkpoint will be inhibited because there appears to be an active trans-
action. The purpose of this feature is to increase the likelihood of a clean checkpoint occurring
in the transaction log, thus speeding automatic recovery. Ordinarily, checkpoints occur at pre-
determined intervals in the transaction log. A value of negative one (-1) will disable the idle
checkpoint feature.
CHECKPOINT_IDLE <# of seconds | -1>
CHECKPOINT_INTERVAL Default: 2MB
This keyword can speed up recovery at the expense of performance during updates. The inter-
val between checkpoints is measured in bytes of log entries. It is ordinarily about one-third (1/
3) the size of one of the active log files (L000....FCS). Reducing the interval speeds automatic
recovery at the expense of performance during updates. The entry is interpreted as bytes if
greater than 100 or as megabytes if less than 100. For example, CHECKPOINT_INTERVAL 2
sets an approximate 2MB interval, while CHECKPOINT_INTERVAL 150000 causes check-
points about every 150,000 bytes of log file.
CHECKPOINT_INTERVAL <interval in bytes or MB>
CHECKPOINT_MONITOR Default: NO
This keyword takes three arguments: YES, NO, and DETAIL. If YES, each occurrence of an
internal c-tree Server checkpoint will cause a time stamp message to be sent to the c-tree
Server console screen and to the CTSTATUS.FCS file. The checkpoint is a snapshot of the c-
tree Server at an instance in time and is used during automatic recovery. The checkpoint pro-
vides for a measure of the system activity. The DETAIL argument causes six intermediate
milestones to be output for each checkpoint in addition to the beginning and ending checkpoint
messages. These intermediate outputs aid in analyzing how the checkpoint procedure interacts
with applications. If there is no system activity, no checkpoints will occur. This keyword
should be used for debugging purposes only since performance may be compromised.
CHECKPOINT_MONITOR <YES | NO | DETAIL>
COMM_PROTOCOL Default: Platform dependent (most Servers load TCP/IP as default)
Specifies a communications module loaded by the Server. Some c-tree Servers support several
protocols simultaneously, (i.e., Windows and Macintosh). For example, the c-tree Server could
be communicating with users through a telephone line, others on a Novell network, and still
others on an Ethernet connection. All that is needed is a separate "COMM_PROTOCOL" line
in the configuration script for each communication module to be loaded by the c-tree Server.
The following example loads TCP/IP, NetBIOS and IPX/SPX for a c-tree Server for Windows
NT/2000/XP. See Chapter 2 "c-tree Server Installation" for the communications options avail-
able for your platform:
COMM_PROTOCOL F_TCPIP
COMM_PROTOCOL FNETBIOS
COMM_PROTOCOL FSPX
TCP/IP Encryption
Encryption of c-tree’s TCP/IP communication protocol allows an added level of security for
client/server applications. FairCom’s proprietary encryption algorithm disguises communica-
tion packets between the client and the c-tree Server making it difficult for a casual user to
inspect the information being exchanged. Since FairCom’s proprietary encryption algorithm is
designed primarily for performance, the FETCPIP protocol is only marginally slower (10-
20%).
Use the Server keyword COMM_PROTOCOL FETCPIP in the Server configuration to specify
encrypted TCP/IP communication. The c-tree Server simultaneously supports both encrypted
and non-encrypted TCP/IP communication when both COMM_PROTOCOL F_TCPIP and
COMM_PROTOCOL FETCPIP are specified in the Server configuration. Clients must be
compiled with either encrypted or unencrypted TCP/IP. The Application Developer will spec-
ify the appropriate protocol.
Automatic LANA Support for c-tree Server for Windows
The c-tree Server for Windows offers automatic LANA support. When COMM_PROTOCOL
NETBIOS, or COMM_PROTOCOL NB, is listed in the c-tree Server configuration file, the c-
tree Server listens to all LANA ports. To specify a specific LANA number, use the following
format:
COMM_PROTOCOL FNETBIOS@1
This disables automatic listen and sets a specific LANA number, LANA 1 in this example.
Lana 0 is the default. Specifying a desired LANA number from a client side application uses
the following format:
FAIRCOM2@1^NETBIOS
Identifying the c-tree Server host machine
Every protocol makes assumptions about the location of the machine hosting the c-tree Server.
Use the following table to determine the proper method for the client to find the c-tree Server
based on the protocol selected. SERVER_NAME is the name specified by the
SERVER_NAME keyword, FAIRCOMS by default. ZoneName is the Mac zone hosting the c-
tree Server. HostName is the network ID for the host machine. It can also be an IP address with
TCP/IP.
CONSOLE TOOL_TRAY
CONSOLE W9X_SERVICE Default: Disabled
Allows the c-tree Server for Windows 9x to remain in operation even if a user logs off Win-
dows without shutting down.
CONSOLE W9X_SERVICE
CTSRVR_CFG Default: Server Working directory
Specify the configuration file used when executing the c-tree Server from the command line.
CTSRVR_CFG <path and filename>
CTSTATUS_MASK Default: Log all entries
Allows certain types of entries in CTSTATUS.FCS to be suppressed. Currently, VDP_ERROR
is the only valid argument, causing communication errors NOT to be logged to CTSTA-
TUS.FCS.
CTSTATUS_MASK VDP_ERROR
CTSTATUS_SIZE Default: None, permitting unlimited size
CTSTATUS_SIZE controls the size of the c-tree Server status file. The argument to
CTSTATUS_SIZE is the approximate maximum size in bytes for CTSTATUS.FCS. When this
limit is reached, CTSTATUS.FCS is renamed to T0000001.FCS and a new status file is created.
The T#.FCS file numbers increase each time the limit is reached, similar to the transaction log
files, i.e., the next time the maximum size is reached, CTSTATUS.FCS is renamed to
T0000002.FCS.
To limit the number of archived status logs, set a negative value for CTSTATUS_SIZE. Only
T0000001.FCS will be kept, being replaced each time CTSTATUS.FCS is archived.
A value of 0, the default, allows a the file to expand to a size limited by the operating system
and storage availablity.
CTSTATUS_SIZE <file_size | negative_file_size | 0>
DEAD_CLIENT_INTERVAL Default: 1800 (30 minutes)
DEAD_CLIENT_INTERVAL controls the timeout interval, the number of seconds of client
idle time after which the Server checks the connection for that client. The default nsec value is
1800 (30 minutes), with a minimum of 120 (2 minutes).
Note: The timeout interval only controls how often the c-tree Server sends a message to test
the connection. Different operating systems use different timeout values on TCP/IP
messages, so the actual delay before a dead client is dropped will depend on when the
operating system notifies the c-tree Server that the message failed.
DEAD_CLIENT_INTERVAL idle_time_seconds
DEADLOCK_MONITOR Default: NO
If YES, each time the c-tree Server detects and resolves a dead lock situation, a time stamp
message goes to the c-tree Server console screen. This keyword is used primarily for debug-
ging since this feature consumes additional overhead.
DEADLOCK_MONITOR <YES | NO>
FORCE_LOGIDX Default: NO
FORCE_LOGIDX allows LOGIDX support to be forced on, off, or disabled. ON forces all
indices to use LOGIDX entries. OFF forces all indices not to use LOGIDX entries. NO uses
existing file modes to control LOGIDX entries.
LOGIDX is an index file mode permitting faster index automatic recovery during c-tree Server
startup. Transaction controlled indices with this file mode are recovered more quickly than
with the standard transaction processing file mode TRNLOG. This feature can significantly
reduce recovery times for large indices and has not noticeably degraded the speed of index
operations. LOGIDX is only applicable if the file mode also includes TRNLOG.
Note: LOGIDX is intended for index files only, and is ignored in data files. When adding the
LOGIDX file mode to an existing index, be sure to rebuild the index!
FORCE_LOGIDX <ON | OFF | NO>
FUNCTION_MONITOR Default: NO
If YES, the client number, function number, function name, and file name are displayed in a
scrolling fashion on the c-tree Server console screen. Alternatively, the same information,
along with the return value and error codes for each function, can be routed to a file by specify-
ing a file name. This keyword should be used primarily for debugging since this feature con-
sumes additional overhead.
Note: Activate the function monitor dynamically under the c-tree Server for Windows by
selecting View | Function Monitor Window.
FUNCTION_MONITOR <YES | NO | file_name>
GUEST_LOGON Default: YES
When no user ID is sent to the c-tree Server, the client is automatically assigned a user ID of
GUEST. The keyword GUEST_LOGON controls whether or not to permit GUEST logons.
The keyword takes YES or NO for its arguments, and defaults to YES.
GUEST_LOGON <YES | NO>
GUEST_MEMORY Default: 0
If greater than zero, this is the memory usage limit in bytes for a user without a User ID (i.e., a
GUEST user).
GUEST_MEMORY <bytes>
IDLE_NONTRANFLUSH and IDLE_TRANFLUSH Default: 15 seconds
The c-tree Server flushes data and index caches during c-tree Server idle time, launching two
idle thread processes at start-up: One thread flushes transaction-file buffers and the other
flushes non-transaction-file buffers. The threads wake-up periodically and check if the c-tree
Server is idle to begin flushing. Subsequent c-tree Server activity terminates the flushes. Low
priority background threads, such as the delete node thread, do not affect the c-tree Server idle
state, but c-tree Plus clients and transaction checkpoints modify the idle status.
The default interval is 15 seconds. Setting the interval to zero or a negative value disables the
thread.
the single character "L" (e.g., "F:\LOG2ODD\L"). The transaction management logic automat-
ically appends a seven-digit even number and the extension "FCS" to the path provided.
LOG_ODD_MIRROR <full_path>L
LOG_SPACE Default: 10
This is the number of megabytes of disk space allocated to storing active transaction logs, start-
ing with a minimum of 2. The c-tree Server maintains up to 4 active log files, which consume,
in the aggregate, up to LOG_SPACE megabytes of disk space. Log files are numbered consec-
utively starting with 1. The log file names are in the form L0000001.FCS.
LOG_SPACE <Megabytes>
LOGON_FAIL_LIMIT Default: 0 (no limit)
The optional limit on the number of consecutive failed logons that causes subsequent logon
attempts to fail for LOGON_FAIL_TIME minutes. A logon which fails during this period
returns LRSM_ERR(584).
LOGON_FAIL_LIMIT <attempts>
LOGON_FAIL_TIME Default: 5
The length of time logons are blocked after the logon limit is exceeded. A value of –1 indicates
that there should be a permanent "log-on block" placed on a user until the Server ADMIN
intervenes.
LOGON_FAIL_TIME <minutes>
LOGON_MUST_TIME Default: 0 (no limit)
A non-zero value requires users to log on "at-least-once" within the defined time (e.g: at least
once a week). If the time expires for a specific user, their profile will be deactivated, prevent-
ing access to the c-tree Server. The Server Administrator, or other ADMIN group user, must re-
set the user’s account once the time limit has elapsed.
LOGON_MUST_TIME <minutes>
MAX_VIRTUAL_FILES Default: 500
An integer argument specifying the maximum number of virtual files that may be opened at
one time.
MAX_VIRTUAL_FILES <Maximum files>
MEMORY_MONITOR Default: NO
Sends a message to the console whenever allocated memory exceeds the next memory thresh-
old. The parameter specifies a size in bytes. For example, "MEMORY_MONITOR 500000"
sends a message every time memory consumption exceeds the next 500,000 byte range of
memory. The message is also sent when memory usage decreases for each absolute memory
block. This keyword should be used primarily for debugging, as there is some additional over-
head for this feature.
MEMORY_MONITOR <Bytes | NO>
MEMORY_TRACK Default: 0 (indicates do not track)
Sends debug output to the console every time the net memory allocation count changes by a
multiple of the threshold value. The count is the number of memory allocation requests. See
also DIAGNOSTICS TRACK_LOGON.
MEMORY_TRACK <allocation threshold value>
MIRROR_DIRECTORY Default: Server directory or LOCAL_DIRECTORY
Permits mirrored files WITHOUT AN ABSOLUTE PATH NAME to be placed in a specified
mirror directory. This is analogous to LOCAL_DIRECTORY except that it only applies to the
mirror in a primary|mirror pair.
MIRROR_DIRECTORY <directory name>
MIRRORS Default: YES
Turns off all mirroring when set to NO. YES implies ordinary operation in which the filename
determines whether or not file mirroring is in effect on a file-by-file basis. NO implies all mir-
ror requests are ignored (including log files, administrative files, and all user mirrors). Set
MIRRORS to NO only if there are strictly no plans to ever use file mirroring or during catas-
trophe recovery situations where the mirrored files may not be available due to a hardware
problem. The absence of this keyword implies file mirrors are supported.
MIRRORS <YES | NO>
MONITOR_MASK and MATCH_FILE_ID Default: Enabled
When a file open is attempted, the c-tree Server checks to see if either a file with the same
name has already been opened, or if a file with the same unique ID has already been opened.
By default, if a file without a matching name does match the unique file ID the c-tree Server
sends a message to the system console indicating the names of the two files involved. Suppress
this message by adding the following entry to the c-tree Server configuration file:
MONITOR_MASK MATCH_FILE_ID
MPAGE_CACHE Default: 0
The c-tree data cache uses the following approach to cache data record images:
• If the data record fits entirely within one or two cache pages (PAGE_SIZE bytes per cache
page), then the entire record is stored in the cache.
• If the data record image covers more than two cache pages, then the first and last segments
of the record are store in the cache, but the middle portion is read from or written to the
disk. These direct I/O’s are efficient operations since they are aligned and are for a multiple
of the cache page size.
The nature of this approach can be modified. Set MPAGE_CACHE to a value greater than
zero, N, to store records falling within N+2 cache pages entirely within the cache. The default
value is zero, behaves as described above.
Note: Setting MPAGE_CACHE greater than zero does NOT ensure faster system operation. It
is more likely to be slower than faster. It does cause more of a record to be in cache, but
there is increased overhead managing each individual cache page. The cache pages for
consecutive segments of a record (where a segment fills a cache page) are completely
independent of each other. They are not stored in consecutive memory and I/O is per-
formed separately for each cache page. This configuration option should only be used
for special circumstances with careful, realistic testing.
Note: Even a record smaller than a single cache page may require two cache pages because
the record position is generally not aligned on a cache page boundary.
NO_CACHE Default: Cache files
In some cases, it might be beneficial to define that a certain file NOT be cached. For example,
if a file contains very large variable length records (BLOBS), it might be more efficient to
bypass the cache and rely solely on the operating systems cache support. The c-tree Server
does not store the full variable length record in cache, but retains the first and last page of the
variable length record. This prevents large blocks of data from consuming the cache and also
alleviates the management of a large number of cache pages for any one particular record.
To disable cache for a given file, use the following server configuration keyword:
NO_CACHE <data file name>
Note: <data file name> may include a wildcard pattern using ‘?’ for a single character and ‘*’
for zero or more characters. The Server Administrator can specify multiple
NO_CACHE configuration entries.
Caching can only be turned off for entire superfiles (i.e., the superfile host), not for individual
superfile members. Index files require the use of index buffer pages and must be cached.
NO_SHUTDOWN_FLUSH Default: Flush at shutdown
With very large (2GB+) caches, it may be possible for a file to never be written to disk during
its entire life cycle. When the c-tree Server is shut down, it begins to flush files to disk. In the
case of a “scratch” or “temp” file, the application vendor may not care if c-tree flushes this file
to disk.
NO_SHUTDOWN_FLUSH skips file flushing during server shutdown. Note that <file name>
may specify a wildcard pattern, with ‘?’ replacing a single character and ‘*’ replacing a group
of characters. Non-transaction controlled files can be specified as shown below for this treat-
ment, but such a file will be corrupted after shutdown if file flushing was actually skipped.
Transaction-controlled files that are not flushed will simply lengthen automatic recovery times.
NO_SHUTDOWN_FLUSH <file name>
NODE_DELAY Default: 300
Reuses empty index nodes after NODE_DELAY seconds. This allows the c-tree Server to fin-
ish active searches in the index tree before removing the empty node.
NODE_DELAY <seconds>
NULL_STRING Default: Not enabled
This option is used in conjunction with the tamper-proof settings file under the server. Config-
uration options that are in the encrypted ctsrvr.set file cannot be overridden in the ctsrvr.cfg
file. The NULL_STRING keyword lets you define a symbol that represents a null string so
that options can be blocked in the settings file without activating them.
NULL_STRING null
LOCAL_DIRECTORY null
With the above entry example in the server settings file, LOCAL_DIRECTORY is blocked
from use in the standard ctsrvr.cfg file but it is not activated.
PAGE_SIZE Default: 8192
The number of bytes per buffer page (maximum 65536 bytes). This value is rounded down to a
multiple of 128. To encourage compatibility across different c-tree Plus environments, we sug-
gest not modifying the PAGE_SIZE. However, if performance is of concern, this value may be
modified to suit the characteristics of the operating system. Generally, this is a matter to dis-
cuss with the application programmer.
PAGE_SIZE <bytes>
PREIMAGE_DUMP Default: NO
When enabled, all PREIMG files, even those not in a dynamic dump are temporarily changed
to TRNLOG files to be compatible with the upgraded transactions, and all transactions are
automatically changed from PREIMG mode to TRNLOG mode during the dump. PREIMG
files opened or created in the middle of the dump are also temporarily promoted from PREIMG
files to TRNLOG files. All promoted files are restored to their PREIMG status at the conclu-
sion of the dynamic dump.
The dynamic dump script file accepts a !DELAY parameter whose argument is the number of
seconds to wait for a transaction to complete before aborting it in order to permit the start of a
dynamic dump. When the PREIMAGE_DUMP facility is used, the !DELAY parameter is
effectively ignored if a long PREIMG transaction begins prior to the dynamic dump. This
means the dump will not begin until all current transactions complete. See Section 5.3
"Dynamic Dump" on page 5-3 and Section 6.7 "Advanced - Faster Auto-Recovery" on page 6-
30 for additional information.
PREIMAGE_DUMP <YES | NO>
PREIMAGE_FILE Default: D
The alternative name for the file containing preimages swapped to disk. The format for this
name is an optional directory path, which may include a Drive ID, followed by the single char-
acter 'D' (e.g., "E:\SWAP\D"). The c-tree Server appends a seven-digit number and the exten-
sion "FCS" to the name provided here.
PREIMAGE_FILE <Full_path>D
PREIMAGE_HASH Default: 128
The number of hash bins available to the preimage hash algorithm. During a transaction, a pre-
image space is used to hold intermediate results pending an abort or a commit. To search this
area a hashing algorithm is employed. The PREIMAGE_HASH value specifies the number of
four byte bins available per user for use by this algorithm. This value should be increased only
if a large volume of updates and/or additions per transaction (e.g., several thousand) is antici-
pated.
PREIMAGE_HASH <number of hash bins>
PRIME_CACHE and PRIME_INDEX Default: No priming
The c-tree Server optionally maintains a list of data files and the number of bytes of data cache
to be primed at file open. When priming cache, the Server reads the specified number of bytes
for the given data file into data cache when physically opening the data file.
Data files are added to the priming list with configuration entries of the form:
PRIME_CACHE <data file name>#<bytes primed>
For example, the following keyword instructs the Server to read the first 100,000 bytes of data
records from customer.dat into the data cache at file open:
PRIME_CACHE customer.dat#100000
A dedicated thread performs cache priming, permitting the file open call to return without
waiting for the priming to be accomplished.
Use PRIME_CACHE with the SPECIAL_CACHE_FILE keyword to load dedicated cache
pages at file open.
To prime index files, use configuration entries of the form:
PRIME_INDEX <idx file name>#<bytes primed>[#<member no>]
If the optional <member no> is omitted, all index members are primed. If an index member
number is specified, only that member is primed. For example, the following keyword instructs
the Server to read the first 100,000 bytes of index nodes in customer.idx into the index buffer
space at file open:
PRIME_INDEX customer.idx#100000
The nodes are read first for the host index, and then for each member until the entire index is
primed or the specified number of bytes has been primed.
The following example restricts the priming to the first member (the index after the host
index):
PRIME_INDEX customer.idx#100000#1
The <data file name> or <index file name> can be a wild card specification using a ‘?’ for a
single character and a ‘*’ for zero or more characters.
RECOVER_DETAILS Default: NO
This keyword sends detailed information about the Server automatic recovery process to the
server console. The time spent for each phase of automatic recovery in addition to the number
of transactions processed for each phase is provided. This keyword adds minimal overhead to
c-tree Server operations.
RECOVER_DETAILS <YES | NO>
RECOVER_FILES Default: NO
RECOVER_FILES makes it possible to set separate limits on the number of files used during
automatic recovery and regular operations. The reason automatic recovery may require more
files than regular operations is that during recovery files opened stay open until the end of
recovery. RECOVER_FILES takes as its argument the number of files to be used during recov-
ery. If this is less than the number used during regular operation specified by the FILES key-
word, the number of recovery files is set equal to the regular files and the keyword has no
affect. If the number of recovery files is greater than the number of operational files, the num-
ber of files is adjusted downward at the end of automatic recovery freeing memory used by the
additional control blocks, about 900 bytes per logical file.
RECOVER_FILES <number of files | NO>
RECOVER_MEMLOG Default: NO
Loads one or more transaction logs into memory during automatic recovery to speed the recov-
ery process. The argument for this keyword specifies the maximum number of memory logs
loaded into memory during automatic recovery.
RECOVER_MEMLOG <# of logs to load | NO>
SEMAPHORE_BLK Default: 10
For Unix based systems only. This is the number of semaphores obtained at one time. These
semaphores are used in the shared memory communication subsystem.
SEMAPHORE_BLK <number>
SERVER_DIRECTORY Default: Server working directory
One of two mutually exclusive ways to supply the name of a directory path the c-tree Server
uses when processing all files not having absolute names, (i.e., absolute names include a spe-
cific volume or drive reference as part of the name). For example, d:\fairserv\data\. See
LOCAL_DIRECTORY for the other option. The trailing slash is required. If a
SERVER_DIRECTORY name is defined in the configuration script, the name is attached to the
beginning of any file name that is not absolute. If no SERVER_DIRECTORY or
LOCAL_DIRECTORY name is supplied, all database and system files are stored relative to
the c-tree Server working directory. SERVER_DIRECTORY and LOCAL_DIRECTORY can-
not be used together. SERVER_DIRECTORY does not affect the location of the c-tree Server
Status log, the transaction log files, or the start files.
Note: The SERVER_DIRECTORY, unlike LOCAL_DIRECTORY, becomes a part of the file
name. The name entered into the transaction log includes the SERVER_DIRECTORY.
SERVER_DIRECTORY <path>
SESSION_TIMEOUT Default: No timeout
The SESSION_TIMEOUT keyword instructs the Server to remove TCP/IP connections after
the specified number of seconds has elapsed without activity. This option has been verified on
Windows, Novell, Linux, Mac OS 9, and Mac OS X.
SESSION_TIMEOUT <seconds>
SIGNAL_DOWN Default: OFF
Ability to launch an application when the c-tree Server comes down. This keyword takes as its
argument the name of an executable that will be launched when the c-tree Server has been suc-
cessfully terminated. Supported by c-tree Server for Unix and Windows.
SIGNAL_DOWN <executable>
SIGNAL_READY Default: OFF
Ability to launch an application when the c-tree Server comes up. This keyword takes as its
argument the name of an executable, which will be launched when the c-tree Server is ready
(i.e., automatic recovery is completed). Supported by c-tree Server for Unix and Windows.
SIGNAL_READY <executable>
SKIP_MISSING_FILES Default: NO
This keyword is available for special c-tree Server startup conditions. If a user file required by
the c-tree Server during automatic recovery was deleted, an error 12 might be returned and the
c-tree Server would not continue. By adding "SKIP_MISSING_FILES" to the default
ctsrvr.cfg file, the error will be logged and the c-tree Server will successfully start up. How-
ever, "SKIP_MISSING_FILES" is not recommended as a permanent setting. Deleting files
under transaction processing control adversely affects database integrity.
SKIP_MISSING_FILES <YES | NO>
SKIP_MISSING_LOG_MIRRORS Default: NO
Accepts a YES/NO argument. With an argument of YES, the c-tree Server does NOT termi-
nate automatic recovery if it cannot find a log mirror to be recovered along with the primary
file.
SKIP_MISSING_LOG_MIRRORS <YES | NO>
SKIP_MISSING_MIRRORS Default: NO
Accepts a YES/NO argument. With an argument of YES, the c-tree Server does NOT termi-
nate automatic recovery if it cannot find a mirror to be recovered along with the primary file.
SKIP_MISSING_MIRRORS <YES | NO>
SORT_MEMORY Default: 16000
Specifies the size of sort buffers used by the c-tree Server. To conserve memory, set this value
to 8192 or 4096. If large amounts of memory are available, the value can be increased signifi-
cantly beyond the default. This value must be less than the maximum segment size in seg-
mented architectures.
SORT_MEMORY <bytes>
SPECIAL_CACHE_FILE Default: None
Dedicates a specified amount of cache memory to a particular Extended data file. This allows
the Server Administrator to specify files that are critical to maintain in cache memory at the
expense of the “least-recently-used” (LRU) approach, where a new cache page replaces the
LRU existing page.
The server configuration file specifies the amount of dedicated cache for specific data files
with a configuration file entry in the form:
SPECIAL_CACHE_FILE <datafilename>#<bytes to cache>
For example, the following keywords specify 100,000 bytes of dedicated cache for cus-
tomer.dat and 400,000 bytes for data\inventory.dat:
SPECIAL_CACHE_FILE customer.dat#100000
SPECIAL_CACHE_FILE data\inventory.dat#400000
START_ODD_MIRRORS <full_path>S
STARTUP_BLOCK_LOGONS Default: Allow logons
STARTUP_BLOCK_LOGONS prevents non-ADMIN user logons when the server is started.
Only users in the ADMIN group are allowed to logon.
This feature allows the server to start for ADMIN purposes before authorizing access by non-
ADMIN users. This could include creating or adjusting files, adjusting security options, or any
other operations that require a functioning Server but are more conveniently accomplished
when users are not connected to the Server.
SUPPRESS_LOG_FLUSH Default: NO
Causes transaction begin and commit operations to skip the flushing of the log file when its
argument is YES. The default is NO. Suppressing the log flush makes it impossible to perform
a proper automatic recovery. However, a dynamic dump will capture the necessary log infor-
mation to restore TRNLOG files to a clean, consistent state. Using this keyword without the
PREIMAGE_DUMP keyword is not recommended
By turning on PREIMAGE_DUMP and using PREIMG files, your system can run much faster
than with full transaction processing, and still perform on-line dynamic dumps which will per-
mit restoring files to the time of the dump in a clean, consistent state. However, it will NOT be
possible to roll forward from the restored files because transaction log entries are not main-
tained outside of the dump process. See also PREIMAGE_DUMP and Section 6.7 "Advanced
- Faster Auto-Recovery" on page 6-30.
SUPPRESS_LOG_FLUSH <YES | NO>
TASKER_SLEEP Default: 0
Reduces c-tree Server CPU activity level in non-preemptive environments, where the c-tree
Server performs its own task switching, thus controlling when to put itself to sleep and when to
wake up. The value of TASKER_SLEEP controls whether the c-tree Server puts itself to sleep
and, if it does, when it will wake itself up. Setting this keyword to other than default will
diminish the c-tree Server performance. This keyword is normally used in the following envi-
ronments: SCO Unix, QNX, Apple A/UX, Interactive Unix and Motorola 88 OPEN.
Valid values are:
Value Explanation
-1 Never sleep.
if a TMPNAME_PATH entry is encountered in ctsrvr.cfg, the c-tree Server tests the validity of
the path. If there is an error, the c-tree Server terminates. Whether or not successful, the c-tree
Server enters the path name in the CTSTATUS.FCS file.
TMPNAME_PATH <path>
TOT_MEMORY Default: 0
If greater than zero, the total number of bytes the system will attempt to allocate for all uses
(including index and data caches specified by the IDX_MEMORY and DAT_MEMORY key-
words). If the system usage exceeds this level, attempts will be made to reduce discretionary
allocations. If zero, no memory limit is imposed.
Note: Systems with virtual memory do not benefit from a memory limit unless you wish to
limit the c-tree Server for other reasons. Systems with fixed memory may use a limit to
keep the c-tree Server within a desired limit.
TOT_MEMORY <bytes>
TRANSACTION_FLUSH Default: 100
This keywords provides control for the maximum number of updates to a buffer (data or index)
before it is flushed. The buffer may well be flushed prior to this number of updates because of
the LRU (Least Recently Used) scheme or because of the checkpoint limit. This system param-
eter affects only buffers holding images for transaction controlled files. Reducing this value
reduces the amount of buffering, slowing system performance; but decreases the amount of
work to be performed during recovery. A value of zero causes the buffer to be flushed upon
update.
TRANSACTION_FLUSH <# of updates>
USR_MEM_RULE Default: GUIDELINE
The system default rule for c-tree Server action when a user exceeds his/her memory limit.
This rule is employed only if the System Administrator has not assigned a rule specifically to
the user or the user's primary group.
Valid values are:
ABSOLUTE The memory limit set for a user is to be applied as given, so no additional
memory beyond the established limits will be allocated if it is requested.
GUIDELINE The memory limit set for a user guides memory allocation as follows: allow
the user to have requested memory beyond the limit set, if it is available,
and when another user needs that memory, then it reduces the amount of
memory used back down toward the guideline as soon as possible (e.g.,
by moving memory resident information to disk).
USR_MEMORY
ADMIN_API Only allow users in the ADMIN group to use the SystemLog
function to create vendor-defined entries in the log.
DISABLE_API Do not allow any calls to the SystemLog function for user
defined entries.
DYNAMIC_DUMP Log the beginning and end of dynamic dumps and a result for
each file dumped.
USER_INFO Log all logons, logoffs, and changes to user logon profiles.
LOGFAIL_PURGE Causes an automatic purge of the oldest entries in the log if the
system cannot add a record to SYSLOGDT.FCS. All the entries
occurring on the oldest day are deleted unless there are only
entries for the current day in which case no entries are purged.
After a successful purge, an attempt is made to add the new
entry that triggered the automatic purge. If this add succeeds, the
system log operation continues in its usual fashion.
• Within your application, you can improve performance by using BATCHES where possible
to process multiple records.
• Avoid mismatched MTU sizes on different routers and switches since this can cause packet
fragmentation adding significant delays to the delivery of the message.
PREIMAGE_DUMP
Although automatic recovery is not available to PREIMG files, it is possible to perform peri-
odic dynamic backups. By using the PREIMAGE_DUMP keyword, it is possible to promote
PREIMG files to full TRNLOG files during the Server dynamic dump process (see Section 5.3
"Dynamic Dump" on page 5-3). The promotion to a TRNLOG file means a full transaction log
(history of the file changes) will be maintained during the dump process. This guarantees that
any changes made to the files while the backup is occurring will be saved in these specially
maintained transaction logs. The ability to dynamically backup the user data files somewhat
minimizes the loss of the automatic recovery feature with this mode.
BROADCAST_INTERVAL 90
BROADCAST_DATA FAIRCOM_SERVER
ABORT_ON_CLOSE NO_COMMAND_LINE
ADMIN_STOP NO_CONFIG_FILE
BLOCK_DDSFM_CREATE NO_SHUTDOWN_DELAY
BLOCK_DDSFM_DELETE NO_SPCMGT_QUEUE
EXACT_FILE_NAMES NO_UNIQFILE
FORCE_WRITETHRU NON_ADMIN_SHUTDOWN
NLM_DEFER_THREADSWITCH TCPIP_CHECK_DEAD_CLIENTS
NLM_LONG_FILE_NAMES WTHRU_UPDFLG
NO_BLOCK_KILL
DYNDUMP_LOG NO_EXCEPTION_HANDLER
FILE_LOGON QUEUE_LOGON
LOCK_DUMP TRACK_LOGON
LOCK_LOGON TRAP_COMM
LOWL_FILE_IO WRITETHRU
COMPATIBILITY ADMIN_STOP
COMPATIBILITY BLOCK_DDSFM_CREATE BLOCK_DDSFM_DELETE Default:
Do not block creates and deletes
c-tree Server can block adds and deletes of superfile members during the course of a dynamic
dump using two server configuration COMPATIBILITY keywords:
• BLOCK_DDSFM_CREATE blocks superfile member creation during a dynamic dump.
Attempts to create a superfile member return DDCR_ERR(740) with this keyword acti-
vated.
• BLOCK_DDSFM_DELETE blocks superfile member deletion during a dynamic dump.
Attempts to remove a superfile member return DDDR_ERR(741) with this keyword acti-
vated.
Note: An application may create or delete superfile members in a superfile host waiting to be
dumped while the overall dump is going on. Once the dynamic dump begins dumping
the superfile host, blocked operation cannot occur until the end of the entire dump, not
just the end of the dump of the superfile host itself. Therefore, the last superfile host
listed in the dump script file list will have the shortest blocking period.
COMPATIBILITY EXACT_FILE_NAMES Default: Allow different names
Force different references to the same file to use the same names. For example:
C:\data\temp.dat and \data\temp.dat would be considered different even if they referred to the
same file.
COMPATIBILITY EXACT_FILE_NAMES
COMPATIBILITY FORCE_WRITETHRU Default: Not present
Forces the automatic addition of the WRITETHRU mode to all files opened without the TRN-
LOG file mode.
COMPATIBILITY FORCE_WRITETHRU
COMPATIBILITY NLM_DEFER_THREADSWITCH Default: Defer
This option can improve the performance of the c-tree Server for Novell at the cost of
decreased performance in other processes. Consult with your application developer and Novell
system administrator to determine if this switch is appropriate for your system
COMPATIBILITY NLM_DEFER_THREADSWITCH
COMPATIBILITY NLM_LONG_FILENAMES Default: Not supported
Instructs the c-tree Server to use OS/2 namespace support, provided OS/2 namespace support
is enabled on the working volume. If the keyword is not used, or if the volume does not support
OS/2 namespace, long file names are not supported. FairCom recommends that when using
long file name support all volumes provide OS/2 namespace support to prevent an error. This
keyword is only required by the NLM c-tree Server and is ignored in all other versions.
COMPATIBILITY NLM_LONG_FILENAMES
COMPATIBILITY NO_BLOCK_KILL Default: Allow kill
Disable the ADMIN ability to kill currently connected clients.
COMPATIBILITY NO_BLOCK_KILL
COMPATIBILITY NO_SHUTDOWN_DELAY Default: Wait for client
Forces an instant shutdown without pause for client disconnect. Not valid on NLM.
COMPATIBILITY NO_SHUTDOWN_DELAY
COMPATIBILITY NO_SPCMGT_QUEUE Default: Manage Superfile deleted space
By default, the c-tree Server reclaims the space from deleted member files of a Superfile and
recovered variable length data files. A dedicated background thread performs the space recla-
mation. A permanent queue stored in the Server file D0000001.FCS permits the space reclama-
tion to be interrupted at Server shutdown, and resumed when the Server restarts.
To disable this feature, add the following keyword to the Server configuration.
COMPATIBILITY NO_SPCMGT_QUEUE
COMPATIBILITY NO_UNIQFILE Default: Check file identity
Disables attempts to determine if files accessed with different file names (or paths) and identi-
cal c- tree Plus file IDs are the same file or different files.
COMPATIBILITY NO_UNIQFILE
COMPATIBILITY NON_ADMIN_SHUTDOWN Default: ADMIN group only may shut-
down
Allow non-ADMIN users to shut down the Server.
COMPATIBILITY NON_ADMIN_SHUTDOWN
COMPATIBILITY TCPIP_CHECK_DEAD_CLIENTS Default: No check
The c-tree Server normally recognizes when a client disconnects. However, the Server relies on
a chain of events controlled by the operating system in order to recognize the disconnection.
The client computer must notify the Server host computer that the connection has been
dropped. For example: When a user closes an application, the socket is closed by the operating
system, which sends a message to the Server host machine. However, if the network connec-
tion is temporarily interrupted or if the client machine is powered down suddenly, this message
is not sent and the Server host machine can’t recognize that the client connection has dropped.
See also SESSION_TIMEOUT under Section 6.4.6 "Miscellaneous Control" on page 6-7.
With the COMPATIBILITY TCPIP_CHECK_DEAD_CLIENTS keyword in the Server con-
figuration, the c-tree Server detects when a TCP/IP client has dropped. Every 120 seconds, the
client connection socket is rechecked to ensure that it is still a valid communications channel.
If a connection is found to be invalid, the Server terminates the connection. This functionality
is not currently supported on the c-tree Server for the Mac, OS/2, or early Linux (kernel earlier
than v2.036) platforms.
COMPATIBILITY WTHRU_UPDFLG Default: Not present
Disables the ‘update’ flag on files with the WRITETHRU file mode. If COMPATIBILITY
WTHRU_UPDFLG is not in its configuration file and if non-transaction files are opened with-
out WRITETHRU in the file mode, a warning is issued in CTSTATUS.FCS concerning the
vulnerability to FCRP_ERR(14).
COMPATIBILITY WTHRU_UPDFLG
Appendix A
User's Control of Security Options
Users, including the super-user ADMIN, can add or change their own password. The user who
is owner of a file can change file security information for the file. The utilities for implement-
ing user security options are described here.
4. Continue by entering the c-tree Server's current name, which is either the default name or
another name specified by the Server configuration.
5. Now give the name of the file whose security information is to change.
6. If the named file has a file password, the next step is to enter the password.
Note: Whenever input is requested, the user may enter a question mark (?) to receive HELP.
The file owner may change the following security options for their file:
• Change the file's password.
• Change the file's permission mask.
• Change the file's Group.
• Change the file's Owner (Caution: be careful of this! Once the owner has been changed,
then the original owner may no longer use the utility, ctfile, to access the file and change
security information).
Note: The Administrator can always use the Administration Utility to change, or view, the file
security information for any file controlled by the c-tree Server.
This Appendix focuses on items helpful in understanding the benefits of the c-tree Server.
Traditional file and data management operations allowed application programs to interact with
groups of files and information in those files. The focus was on controlling files, and data,
directly from an application.
In response to new environments, developments in information management are rapidly trans-
forming ways applications interact with files and data within files. For example, if files and
user applications reside on physically separate systems, as in a LAN environment, and multiple
users need access to the same data, the traditional methods of file and data management
become cumbersome, unstable, or impossible to implement and maintain in a practical manner.
A common design solution to these new environments is to add a new element, a server, which
coordinates the activities of separate applications and files with interacting needs and effects.
The first widely available servers were file servers, which are software products (often running
on machines dedicated to the server functions) that control the links between applications and
files.
Another popular kind of server is the database server, a program coordinating much more
sophisticated operations between application programs, files, data within files, and even
between different database servers. When using a database server, an application does not
interact directly with files, but with the database server. The c-tree Server is a sophisticated
database server, which communicates with applications using c-tree's flexible low-level API
(Application Programming Interface), fast ISAM (Indexed Sequential Access Method) API or
both concurrently.
Finally, most c-tree Servers can be accessed by Windows based ODBC compliant applications
by using the c-tree ODBC Driver. The multiple levels of file access offered by the c-tree Server
is one of the many features setting the c-tree Server apart from other database servers.
In client/server computing, application programs are clients making requests of a server, which
goes to the relevant files, executes all operations needed to carry out the request, and sends
back a response to the client application.
To implement this design, an application program needs to communicate with the database
server. Exact details about which information-processing tasks are carried out by the applica-
tion and which are carried out by the server depend on the server involved and on the "client-
side" data management code used in the application.
The following diagrams illustrate how client/server computing is different from direct database
manipulation.
In the "old" method of database operations, applications deal with files directly, using func-
tions supplied by a third party (e.g., the c-tree Plus multi-user non-server library), or user sup-
plied functions. All responsibility for security, coherence, and speed of access, in a single user
or a multi-user environment, are the responsibility of the application code using data manage-
ment functions.
All data files will be stored in a High/Low (Most significant byte/Least significant byte) format
used by the IBM RS/6000 CPU. Files created by the DOS application will be word aligned (the
default with Microsoft C). Files created by the Macintosh and Windows Borland C application
will be byte aligned. The three applications will all be able to share the same files (assuming
the application developer has aligned all numeric fields on at least a 2-byte boundary for this
example - a good C programming practice).
B.5 ENCRYPTION
The c-tree Server supports encryption of data, index and transaction log files. This technology
provides the means to add an extra level of confidentiality to an application's data. Once
encrypted, it becomes impossible for a casual user to "dump" or "inspect" the data. Only your
application vendor can add this functionality.
This Appendix provides definitions for some of the terms found in this guide. Most terms are
discussed in further detail throughout the rest of the guide. The definitions considered for the
advanced user are depicted by listing "(advanced)" at the beginning of the definition.
Administrator
Individual typically responsible for installing, configuring, starting, stopping and maintaining
the database Server and the files controlled by the c-tree Server.
AppleTalk
A communication protocol developed by Apple Computer Co. for the Apple Macintosh plat-
form. The c-tree Server for Macintosh supports this protocol.
ASCII Text File
"ASCII" is an industry code for representing characters as binary values. An ASCII Text File is
a special type of file that can be copied from computer to computer and read by most word pro-
cessors and editors. If this file type is unfamiliar, consult the word processor or editor docu-
mentation for additional information.
atomicity (advanced)
A term meaning an all or nothing criteria applied to data inserts, deletes and updates; with the
principal goal of keeping a group of files synchronized. For example, if a record is to be
updated in a series of five files as follows:
enable transaction
file 1 update - successful
file 2 update - successful
file 3 update - error, not updated
file 4 update - successful
file 5 update - successful
commit transaction
In this example, the failed update for file 3 will cause the commit transaction to fail. Atomicity
indicates this failure on file 3 will prevent any updates from occurring. Without atomicity, files
1, 2, 4 and 5 would have been updated, but file 3 would not, causing the five files to be out of
sync.
automatic recovery
The process of restoring files back to a pristine state after some type of catastrophe (i.e., loss of
power to the computer). Automatic recovery is available only for files using full transaction
processing (TRNLOG file mode). The TRNLOG file mode causes all of the changes to the
particular file to be logged immediately to a special high-speed transaction log. The presence
of this complete history of the changes to the data files with the TRNLOG file mode is what
makes automatic recovery possible.
byte
The amount of computer memory required to store one character. To store the word "com-
puter" takes 8 bytes. Computer memory and hard disk space are often measured in kilobytes or
megabytes. 1 kilobyte = 1024 bytes (characters) = 210; 1 megabyte = 1048576 bytes (charac-
ters) = 220.
cache
A storage location where data can be more quickly accessed. For example, a disk cache will
store frequently accessed data in memory to prevent reading from the slower disk drive.
c-tree Plus
The c-tree file handler API that is the foundation of the c-tree database Server. c-tree Plus also
serves as the client side development kit for the c-tree client/server model. c-tree Plus gives a
client side application the ability to communicate (connect) with the c-tree Server.
checkpoint
(advanced) An entry placed in c-tree Server logs identifying a starting point during the Server's
automatic disaster recovery.
client
The second half of the client/server model. The client process is typically a third party applica-
tion performing a specific task. For example, in a client/server based accounting system, the
program prompting the user for input and displaying results would be considered a client.
ctadmn
c-tree Server utility program allowing the Server Administrator to grant access to the Server
through user identification names. Controls high-level access to the Server and should be exe-
cuted by the Server Administrator only.
ctdump
c-tree Server utility program for creating file backups. This unique utility allows the backup of
user data to be performed without restricting user access in any way.
ctfdmp
c-tree Server utility program for rolling forward from a specific point in the transaction log his-
tory. The c-tree Server has the ability to allow users to reset files to specific points in time. This
utility allows older backups of user data to be brought up to date.
ctldmp (advanced)
c-tree Server utility program for displaying detailed information from the Server transaction
logs.
ctrdmp
c-tree Server utility that restores the backups made using ctdump. This utility also performs
data rollbacks.
ctpass
c-tree Server utility to allow users to change their password.
ctstop
c-tree Server utility for stopping the c-tree Server.
data file
A collection of similar pieces of information stored in one location.
deadlock (advanced)
A situation in which two users are prevented from obtaining access to the same record. An
example of this situation is if user A locks record 1 for update. At the same time, user B locks
record 2 for update. User A now needs to lock record 2 and user B needs to lock record 1. If
user A and B both need locks on their target records before processing can continue, a deadlock
occurs. The c-tree Server automatically handles this situation by returning error messages to
the users involved.
directory
A location where files are stored on disk. A directory can be thought of as a hanging folder in a
file cabinet. Each file folder within the hanging folder can be thought of as a separate file, or
collection of information.
dynamic dump
A method for backing up specified files without restricting user access to the files.
encryption
Disguising information making it difficult for a casual user to inspect the actual contents.
F_TCPIP.DLL
A c-tree Plus communication DLL supporting the TCP/IP transport protocol.
FETCPIP.DLL
A c-tree Plus communication DLL supporting the TCP/IP transport protocol with encryption.
FNETBIOS.DLL
A c-tree Plus communication DLL supporting the NetBIOS transport protocol.
FSHAREMM.DLL
A c-tree Plus communication DLL supporting the shared memory transport protocol.
FSPX.DLL
A c-tree Plus communication DLL supporting the Novell Netware communication protocol
IPX/SPX.
file
A collection of related information, referred to as records. See the definitions for directory and
record for further information.
folder
The Apple Macintosh term for a location of files on disk. Similar to directory defined above.
directory definition, each piece of paper found within a file folder can be thought of as a
record. A record is a unique piece of information similar to other pieces of information (papers)
within the same file folder.
roll back
A process made possible with transaction processing allowing file transactions to be reset back
to a specific point in time. For example, if a data entry operator enters two hours worth of
transactions with incorrect information, these transactions can be removed or rolled back.
roll forward
Similar to roll back, except moving forward in time. The roll forward process is typically for
applying transactions to "out dated" (old) files. To do this transaction processing logs contain-
ing the desired transactions must be available.
semaphore (advanced)
An operating system level counter used for controlling access to a limited pool of shared
resources, such as shared memory.
server
The term server can refer to many different items. For example a "file server" is a specific
piece of software for sharing files and hardware devices among users. A good example of a
"file server" is the popular Novell network. A "hardware server" is a special computer on
which the file server operates. The c-tree Server is a "database server", special software effi-
ciently managing multiple users accessing common data.
shared memory
A communication protocol typically used on Unix, OS/2 and Windows NT based operating
systems. This communication protocol allows a client process to talk to a c-tree Server process.
superfile
A physical file containing any number of logical data and index files.
tar
The tar command is used for creating and managing file backups. c-tree Unix Servers are
shipped in tar format. The tar command is used to copy the files from the distribution floppies
to the hard drive.
TCP/IP
Transport Control Protocol/Interface Program. A communication protocol available on most
operating systems. This communication protocol allows a client process to talk to a Server pro-
cess.
transaction
A specific operation on a file (i.e., adding a record, deleting a record, updating a record - are all
examples of a transaction).
transaction processing
A mechanism by which several data integrity issues are handled. Two of the most important
issues are atomicity and automatic recovery.
user
A client process (application) connected to a c-tree Server. Each process connected to a c-tree
Server is counted as a user.
T unique . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
Utility
administrator . . . . . . . . . . . . . . . . . . . . . . 4-6
Temporary stream files . . . . . . . . . . . . . . . . . .5-2
Tool tray . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-4 foward dump . . . . . . . . . . . . . . . . . . . . . 5-17
Transaction recovery . . . . . . . . . . . . . . . . . . . . . . . . . 5-13
control . . . . . . . . . . . . . . . . . . . . . . . . . .6-33 roll foward . . . . . . . . . . . . . . . . . . . . . . . 5-16
fully logged processing . . . . . . . . . . . . . B-3 rollback . . . . . . . . . . . . . . . . . . . . . . . . . 5-14
log dump . . . . . . . . . . . . . . . . . . . . . . . .5-18
log flush delay . . . . . . . . . . . . . . . . . . . .6-34 W
management files . . . . . . . . . . . . . . . . . .5-1
online process . . . . . . . . . . . . . . . . . . . . .1-2 Wildcard support
optimize process . . . . . . . . . . . . . . . . . .6-33 file name . . . . . . . . . . . . . . . . . . . . . . . . 5-10
options . . . . . . . . . . . . . . . . . . . . . . . . . .6-33 Windows Service Control Manager . . . . . . . . 3-7
process . . . . . . . . . . . . . . . . . . . . . . . . . . B-3
running log dump . . . . . . . . . . . . . . . . .5-20
Transaction logs
active . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-2
inactive . . . . . . . . . . . . . . . . . . . . . . . . . .5-2
Troubleshooting . . . . . . . . . . . . . . . . . . . . . .3-12
U
Unique user ID . . . . . . . . . . . . . . . . . . . . . . . .4-2
Universal Naming Convention (UNC) . . . . .5-20
User
add new . . . . . . . . . . . . . . . . . . . . . . . . . .4-7
administrator . . . . . . . . . . . . . . . . . . . . . .4-2
application-based . . . . . . . . . . . . . . . . . . .4-2
change description . . . . . . . . . . . . . . . . . .4-8
change groups . . . . . . . . . . . . . . . . . . . . .4-8
change logon validation . . . . . . . . . . . . .4-8
change memory . . . . . . . . . . . . . . . . . . . .4-8
change password . . . . . . . . . . . . . . 4-8, A-1
delete . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-8
guest . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-2
ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-3
list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-8
logon limit . . . . . . . . . . . . . . . . . . . . 4-3, 6-3
maximum number . . . . . . . . . . . . . . . . . .6-3
membership in groups . . . . . . . . . . . . . . .4-3
operation . . . . . . . . . . . . . . . . . . . . . . . . .4-7
ownership of files . . . . . . . . . . . . . . . . . .4-3
password . . . . . . . . . . . . . . . . . . . . 4-3, A-1
security . . . . . . . . . . . . . . . . . . . . . 4-2, A-1