Command-Line Tools

Transcription

Command-Line Tools
Reference Guide
Command-Line Tools
Reference Guide
Command-Line Tools
Contents
1.
FairCom Command-Line Tools .......................................................................... 1
1.1
File Locations ........................................................................................................ 1
2.
Administrative Utilities - Client .......................................................................... 2
2.1
2.2
ctadmn - Server Administrator Utility ..................................................................... 2
ctcmpcif - IFIL-based Compact Utility .................................................................... 2
Updates in handling of security attributes ........................................................................... 3
2.3
2.4
ctdbpartidxent - Utility to Enable GUIx Key Count Optimization ............................ 4
ctdump - Dynamic Dump Utility ............................................................................. 5
Scripting a Dynamic Dump ................................................................................................. 6
2.5
2.6
2.7
2.8
2.9
2.10
ctfilbkif - File Block Utility ....................................................................................... 7
ctfileid - Update File IDs ........................................................................................ 9
ctpass - Password Utility ....................................................................................... 9
ctpathmigr - Change Internal Path Separators .................................................... 10
ctquiet - Quiesce c-treeACE Utility ...................................................................... 10
ctrbldif - IFIL-based Rebuild Utility....................................................................... 11
Option to set index's automatic segment attributes .......................................................... 12
Updates in handling of security attributes ......................................................................... 13
2.11
2.12
2.13
2.14
2.15
2.16
2.17
2.18
2.19
2.20
2.21
2.22
2.23
2.24
ctsqlcdb - c-treeACE SQL Database Maintenance Utility.................................... 14
ctsqlimp - SQL Import Utility ................................................................................ 14
ctsqlutl - c-treeSQL Maintenance Utility .............................................................. 16
ctstat - Statistics Monitoring Utility ....................................................................... 16
ctstop - Server Stop Utility ................................................................................... 18
ctsysm - Server Status Monitoring Utility ............................................................. 19
cttrap - Communications Trap Playback utility .................................................... 20
cttrap - TRAP_COMM Utility................................................................................ 21
cttrnmod - Change Transaction Mode Utility ....................................................... 23
dbdump - Data Unload Utility .............................................................................. 26
dbload - Data Load Utility .................................................................................... 27
dbschema - Schema Export Utility ...................................................................... 28
ISQL .................................................................................................................... 29
sa_admin - Command-line security administration utility .................................... 30
ADMINISTRATOR OPTIONS ........................................................................................... 31
USER OPTIONS ............................................................................................................... 31
GROUP OPTIONS ............................................................................................................ 33
FILE OPTIONS ................................................................................................................. 34
3.
Administrative Utilities - Standalone ............................................................... 36
www.faircom.com
All Rights Reserved
iii
FairCom Command-Line Tools
3.1
3.2
3.3
3.4
3.5
3.6
3.7
ctcfgset - Server Configuration File Encoding Utility ........................................... 36
ctcmdset - Configuration File Encoding Utility ..................................................... 37
ctcpvf - Master Password Verification File Utility ................................................. 37
ctfchk - File Checksum Utility .............................................................................. 38
cthghtrn - Displays the high-water mark for transactions .................................... 39
ctredirect - IFIL Update Utility for Redirected Filenames ..................................... 39
cttrnmod - Change Transaction Mode Utility ....................................................... 41
4.
Utilities - Client .................................................................................................. 45
4.1
4.2
4.3
4.4
4.5
ctinfo - ISAM File Info .......................................................................................... 45
ctixmg - Incremental ISAM / Resource sample ................................................... 46
ctsfex - Superfile Data Export Utility .................................................................... 47
ctvlqa - Variable-length quality assurance utility.................................................. 47
ISQL .................................................................................................................... 48
5.
Utilities - Low Level ........................................................................................... 49
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
ctalgn - Change Alignment .................................................................................. 49
CTCMPC - File compaction ................................................................................. 49
ctcnfg - System Configuration Example .............................................................. 50
CTCV43 - Convert V4.3 Data File to c-tree Format............................................. 50
ctcv67 - Extended File Conversion Utility ............................................................ 50
ctdidx - Create flat key file ................................................................................... 53
ctdmpidx - Index Dump Utility .............................................................................. 53
ctflat - Create c-treeACE file from a flat file ......................................................... 54
ctflvrfy - Index Verify Utility .................................................................................. 55
ctindx - Create index file from flat key file ............................................................ 57
ctpkey - Print key utility ........................................................................................ 58
ctpotp - Parameter to OTP conversion ................................................................ 58
ctptoi - Parameter to IFIL conversion .................................................................. 58
ctrbld - Parameter file rebuild utility ..................................................................... 59
ctsfil - Superfile contents ..................................................................................... 59
ctunf1 - File Reformatting Utility .......................................................................... 59
ctupdpad - Update the c-treeDB Pad Resource Utility ........................................ 61
ctvfyidx - Index Verify Utility................................................................................. 61
ctvfyfil - File Verify Utility...................................................................................... 62
6.
Utilities - Standalone ......................................................................................... 64
6.1
6.2
6.3
6.4
ct_ver - Display c-treeACE version that created file ............................................ 64
ctchkbin - Checking for affected tables ............................................................... 64
ctclntrn Utility - Clean Transaction Mark .............................................................. 65
ctcmpcif - IFIL-based Compact Utility .................................................................. 66
www.faircom.com
All Rights Reserved
iv
FairCom Command-Line Tools
Updates in handling of security attributes ......................................................................... 69
6.5
6.6
6.7
6.8
6.9
6.10
6.11
6.12
ctencrypt - Utility to Change Master Password.................................................... 70
ctfdmp - Forward Dump Utility ............................................................................. 72
ctfileid - Update File IDs ...................................................................................... 73
ctfixbin - Fixing Affected Tables........................................................................... 73
ctidmp - Examine Dump Files.............................................................................. 74
ctinfo - ISAM File Info .......................................................................................... 74
ctldmp - Transaction Log Dump .......................................................................... 75
ctrbldif - IFIL-based Rebuild Utility....................................................................... 75
Option to set index's automatic segment attributes .......................................................... 76
Updates in handling of security attributes ......................................................................... 77
6.13
6.14
6.15
6.16
6.17
6.18
ctrdmp - Dynamic Dump Recovery or System Rollback...................................... 77
ctsbld - Superfile rebuild pre-pass ....................................................................... 78
ctsbldm - Rebuild Superfile Index Members ........................................................ 78
ctscmp - Superfile Compact Utility....................................................................... 79
ctsfex - Superfile Data Export Utility .................................................................... 80
ctsqlmgr - Migration Utility ................................................................................... 81
7.
Utilities for Stored Procedures, User-Defined Functions & Triggers ........... 82
7.1
7.2
7.3
7.4
dbschema – Option to dump SP, UDF, and triggers ........................................... 82
dbdeploy – Utility to deploy SP, UDF, and triggers ............................................. 82
Password Security ............................................................................................... 83
Requirements to Develop and Deploy (JDK, JRE) .............................................. 83
8.
Index ................................................................................................................... 85
www.faircom.com
All Rights Reserved
v
1.
FairCom Command-Line Tools
The FairCom products ship with a wealth of utilities for developers
and administrators. This book documents the command-line tools
that are available with your product.
1.1
File Locations
The command-line tools are provided in the following folders:
All tools:
All command-line tools:
All administrative tools:
Client-side administrative tools
Administrative Utilities - Client (page 2)
Standalone administrative tools
Administrative Utilities - Standalone (page 36)
All other utilities:
Client-side utilities
Utilities - Client (page 45)
Low-level utilities
Utilities - Low Level (page 49)
Standalone utilities
Utilities - Standalone (page 64)
Note: The exact set of tools and utilities and their directory structure depends on the FairCom
product you have installed.
www.faircom.com
All Rights Reserved
1
2.
Administrative Utilities - Client
These utilities are intended for administrators. They are run from the client-side. They are located
in the following folder:
All tools:
All command-line tools:
All administrative tools:
Client-side administrative tools
tools\cmdline\admin\client
Standalone administrative tools
All other utilities:
Client-side utilities
Low-level utilities
Standalone utilities
Note: The exact set of tools and utilities and their directory structure depends on the FairCom
product you have installed.
2.1
ctadmn - Server Administrator Utility
ctadmn [<AdminId> <AdminPassword> [ <filepassword>
[ <ServerName> ]]]]
Used by the Server Administrator to manage users, groups, and files.
See Also
 Administrator Utilities > c-treeACE Server Administrator Utility
(http://docs.faircom.com/doc/ctserver/8286.htm) in the c-tree Server Administrators Guide
2.2
ctcmpcif - IFIL-based Compact Utility
New Standalone Usage
# ctcmpcif DataFileName [-purge] [-updifil]
[-temppath=<temporary_path>] [-<sectors>]
www.faircom.com
All Rights Reserved
2
Administrative Utilities - Client
where:
 -purge - purge duplicate records.
 -updifil - update IFIL resources in the data file.
 -temppath=<temporary_path> - the temporary file directory. The default is the current
directory.
 -<sectors> - the sector size to use. The sector parameter is especially useful if you need to
adjust a file’s PAGE_SIZE to match the c-treeACE Server.
Client Side Usage
# ctcmpcif DataFileName [-purge] [-updifil] [<UserId>]
[<UserPassword> [<ServerName>]]
where
 -purge - purge duplicate records.
 -updifil - update IFIL resources in the data file.
UserID, UserPassword, and ServerName are only needed for client versions of this utility.
FairCom recommends building this utility as a Single-user Standalone application.
ctcmpcif reads the IFIL structure from DataFileName and calls CompactIFileXtd() and
RebuildIFileXtd() to compact and rebuild DataFileName and its associated indices. If ctcmpcif
cannot extract the IFIL from the target file, it will ask for the name of another copy of the file from
which to extract the IFIL information.
Considerations
 Even without the -x8 option, some extended create block settings such as the huge file,
extended header, and 6-byte transaction number options, are always applied to new files.
 This option requires all associated index files that are referenced in the data file's IFIL
structure to exist, as the utilities use OpenIFile() to open the data file and all associated index
files to read the extended create block values.
 When an application calls the standalone version of the Xtd8 file compact or rebuild functions
(For example, CMPIFILX8() or RBLIFILX8() ), index files created by the compact or rebuild
no longer have the 6-byte transaction number attribute enabled if the specified extended
create block's x8mode field has the ctNO6BTRAN bit set.
Updates in handling of security attributes
In V10.3 and later, the ctrbldif utility assigns data file owner/group/permissions to index files and
ctcmpcif assigns original data file owner/group/permissions to compacted data/index files.
The rebuild and compact utilities now read the permission mask, owner, and group settings from
the original data file and after the rebuild or compact is completed, the utilities assign these same
attributes to the new files. It is desirable for the newly rebuilt or compacted files to preserve the
original security attributes as much as possible and the index file security attributes should match
the data file security attributes.
A command-line option has been added to the utilities to restore the previous security attribute
behavior. Use the -oldsec option to cause the rebuild and compact utilities to set the security
attributes as they did before this revision. For example:
www.faircom.com
All Rights Reserved
3
Administrative Utilities - Client
ctrbldif mark.dat -oldsec ADMIN ADMIN FAIRCOMS
The -oldsec option can be used if rebuild and compact are failing with error 455 (user does not
belong to group) if you delete an index then run the rebuild or compact utility on the data file using
a user account that does not belong to the group that is assigned to the data file.
Note: These changes only apply to the client and server versions of these utilities. Setting the
security attributes is not supported in standalone mode, so the standalone rebuild and compact
utilities behave as follows:
1) When the standalone mode rebuild utility creates new index files instead of reusing the new
index files (for example if the original index files have been deleted before running the rebuild
utility), the new index files are assigned a permission mask of zero (no restrictions on
permissions), and the owner and group are unassigned (empty).
2) The standalone mode compact utility always preserves the security attributes of the data file. If
the index files do not exist, the newly-created index files are assigned the same values as the
standalone rebuild does when it creates new index files.
2.3
ctdbpartidxent - Utility to Enable GUIx Key Count
Optimization
Enhancements to partitioned file query efficiency required changes to certain header bits of the
files. While these are default with newly created tables, existing tables with partitioned files will
need to have this bit enabled to take advantage of the new optimizations.
A command-line utility that can be used to enable the partition file global unique index (GUIx) key
count optimization for partitioned files. The usage is as follows:
usage: ctdbpartidxent -u <username> -p <password> -s <servername> -m on|off -d <dbname> -t <tblname>
Options
 -u <username> User name
 -p <password> User password
 -s <servername>
c-tree Server name
 -m on|off
(default=on)
Enable or disable the partition file GUIx key count optimization
 -d <dbname>
Database name (default=update all databases)
 -t <tblname>
Table name (default=update all tables)
Example
Enables optimization for all tables in the ctreeSQL database on server FAIRCOMS:
ctdbpartidxent -u ADMIN -p ADMIN -s FAIRCOMS -d ctreeSQL
The ctinfo utility has also been updated to display the file definition bits. To check if the GUIx key
count optimization is enabled, look for the DEF_MARK_PRTENT bit to be set, as shown below:
File Definition Mask Details
DEF_MASK_PRTENT : enhanced IDXENT for GUIx
www.faircom.com
All Rights Reserved
4
Administrative Utilities - Client
Note: ctdbpartidxent also attempts to rename partition files to ensure they are properly named
should a rebuild be required.
2.4
ctdump - Dynamic Dump Utility
The user may pass a User ID, Password, Dump Script name, and Server Name to a ctdump
utility, which schedules a dynamic dump. The syntax is as follows:
ctdump [adminuser adminpass] dumpscript [servername]
 adminuser: ADMIN group User ID
 adminpass: Administrator password
 dumpscript: Name of the dynamic dump script file on the server system. A path relative to
the server system may be included.
 servername: Optional server name.
For new options added in c-treeACE V11, see V11 Dynamic dump enhancements (page 6).
The following demonstrates example usage of this utility:
ctdump ADMIN ADMIN thescript FAIRCOMS
The following error codes are related to dynamic dump operations:
Error Name
Error Code
Explanation
FUNK_ERR
13
Cannot determine file type. Possibly a c-tree V4.3 file?
READ_ERR
36
Failed to read file, either a corrupted or non-tree file.
TCOL_ERR
537
Transaction log collision. Two sets of transaction logs in the same
directory?
FCPY_ERR
796
Immediate dump restore file copy failed.
DRST_ERR
797
Immediate dump restore failed.
See Also
 For a complete discussion of dynamic dumps, see Maintaining Database Integrity
(http://docs.faircom.com/doc/ctserver/8373.htm) in the c-treeACE Server Administrator's
Guide.
www.faircom.com
All Rights Reserved
5
Administrative Utilities - Client
Scripting a Dynamic Dump
In V11 and later, the Dynamic Dump can send a script to the server and receive a dump stream
and/or status messages from the server. The following capabilities are available for scripting a
dynamic dump:
1. When scheduling a dynamic dump, the client can send the dump script to the server. Prior to
V11, the only option was to create the dump script on the server beforehand and the client
passed the name of the existing dump script file to the server.
2. When running a dynamic dump, the client can request that status messages be sent to it
while the dump is performed and/or the dump stream file can also be sent to the client
process.
To use these options, call the function dyndmpsetopt() before calling dyndmp():
extern NINT dyndmpsetopt(NINT option,pVOID value);
The following are the supported options. All options are disabled by default.
 DDOPT_SENDSCRIPT - Send dump script to server. Set value to the script name, or set it to
NULL to disable this option. Example:
dyndmpsetopt(DDOPT_SENDSCRIPT, ""script.txt"");
 DDOPT_RECVSTREAM - Receive dump stream from server. Set value to YES to enable this
option or NO to disable this option. Example:
dyndmpsetopt(DDOPT_RECVSTREAM, (pVOID) YES);
 DDOPT_RECVSTATUS - Receive status messages from server. Set value to YES to enable
this option or NO to disable this option. Example:
dyndmpsetopt(DDOPT_RECVSTATUS, (pVOID) YES);
 DDOPT_SETCALLBK - Set callback function. Set value to the callback function pointer, or
set it to NULL to disable the use of the callback function. Example:
extern ctCONV NINT mycallback(pVOID pctx,pVOID pdata,NINT datalen,NINT
opcode);
dyndmpsetopt(DDOPT_SETCONTEXT, &mycallback);
 DDOPT_SETCONTEXT - Set callback function context pointer. Set value to the context
pointer that will be passed to the callback function. Example:
mystruct mycontext;
dyndmpsetopt(DDOPT_SETCONTEXT, &mycontext);
 DDOPT_SETBUFSIZ - Set communication buffer size. Set value to the buffer size to use.
Example:
dyndmpsetopt(DDOPT_SETBUFSIZ, (pVOID) 100000);
Notes:
1) The dump options remain in effect for all dynamic dumps performed by the current connection
until they are changed.
2) When the DDOPT_RECVSTREAM or DDOPT_RECVSTATUS options are used, the following
dynamic dump script options are ignored:
COPY_NONCTREE - Non-c-tree files cannot be copied.
DATE and TIME - No scheduling of dump for later time.
EXT_SIZE - Only one dump extent is created.
www.faircom.com
All Rights Reserved
6
Administrative Utilities - Client
FREQ - No repeat of dump.
SEGMENT - No segmenting of dump stream.
In V11 and later, the ctdump utility supports these features through command-line options:
usage: ctdump
[-s svn] [-u uid] [-p upw] [-t script] [-b bufsiz] [-n] [-c] [-o backup]
Options:

-s svn - c-tree Server name

-u uid - User name

-p upw - User password

-t - Dump script name

-b bufsiz - Use buffer size of bufsiz bytes

-c - Send dump script from client

-n - Send progress notifications to the client

-o backup_filename - Write dump stream from server to file on client
Example:
# ctdump -u ADMIN -p ADMIN -o backup.fcd -c -t script.txt -s FAIRCOMS -n
Results:
c-treeACE(tm) Version 11.1.0.46197(Build-150826) Dynamic Backup Utility
Copyright (C) 1992 - 2015 FairCom Corporation
ALL RIGHTS RESERVED.
Reading dump stream from server with buffer size of 100000
Start dump. Estimated dump size:
2691072
FAIRCOM.FCS
86% 100% [
2328576 of
2326528 bytes]
SYSLOGDT.FCS
89% 100% [
86016 of
81920 bytes]
SYSLOGIX.FCS
99% 100% [
266240 of
262144 bytes]
S0000000.FCS
100% 100% [
4096 of
128 bytes]
S0000001.FCS
100% 100% [
4096 of
128 bytes]
L0000001.FCS
100% 100% [
2048 of
679 bytes]
End dump.
Actual dump size:
2705408
Dynamic Dump has been successfully written to the file backup.fcd.
2.5
ctfilbkif - File Block Utility
ctfilbkif
ctfilblkif will block, or unblock a specified c-treeACE file. The default behavior is to block access
to the specified file. Pass the -u option to unblock a file.
Usage
ctfilblkif [-s server][-f filename][-u] {-p password|-a authfile}
-s: Server (default: FAIRCOMS@localhost)
www.faircom.com
All Rights Reserved
7
Administrative Utilities - Client
-f:
-u:
-a:
-p:
file name
unblock file
Authentication file name
Admin Password
See also
 ctquiet - Quiesce c-treeACE Utility (page 10)
www.faircom.com
All Rights Reserved
8
Administrative Utilities - Client
2.6
ctfileid - Update File IDs
The Update File ID utility, ctfileid, provides a convenient and safe way to update the fileid
parameter of the file header. See the section Copying Server Controlled Files in the c-treeACE
Programmer's Reference Guide (http://www.faircom.com/doc/ctreeplus/29354.htm) for details for
when this may be necessary. The file is opened exclusively, ensuring that the server does not
have it open. The syntax for this utility is shown below:
ctfileid
file [-ioq] [-n <size>] [-s <svn>] [-u <uid>] [-p <upw>]
 -i - Also update indices related to data file.
 -o - Force open of corrupted files (ctOPENCRPT).
 -q - Quiet (do not output to stdout).
 -s <server name> - c-treeACE Server name.
 -u <user ID> - User name.
 -p <user password> - User password.
Note: ctfileid.c is located in ctree\samples\special\utils and replaces the previous informal and
undocumented utilities, updateid.c and newid.c.
Standalone Usage
An additional option is available to set the node size in standalone mode:
 -n <size> - Set node size (stand-alone only).
2.7
ctpass - Password Utility
c-treeACE Server utility to allow users to change their password.
The following steps are required for a user to change the password associated with their own
User ID:
1. Run the utility program ctpass as any other program in the environment.
2. Enter your current User ID.
3. Enter the current password for your User ID, if you have one. (Maximum 63 characters.
Maximum nine characters for V9 and prior).
4. Continue by entering the current name of the c-treeACE Server (i.e., the default name or
another name, supplied in the c-treeACE Server configuration file).
5. Now change your password by entering the new password.
6. To be sure to enter the new password, you may be asked to enter it twice before it will be
accepted. If the same name is not entered both times, try again.
Note: Whenever input is requested, the user may enter a question mark (?) to receive HELP.
After the new password is entered and confirmed, a message saying your User ID password has
been successfully updated will be displayed. After being updated successfully, the new password
must be used with the User ID to log on to the c-treeACE Server.
Note: All users can change their own passwords. In addition, users who are members of the
ADMIN group can change the password of all accounts that are not members of the ADMIN
www.faircom.com
All Rights Reserved
9
Administrative Utilities - Client
group. Only the super ADMIN account (named ADMIN) can change a password for an account
that is a member of the ADMIN group.
2.8
ctpathmigr - Change Internal Path Separators
The ctpathmigr utility is used to change embedded path separators for c-treeACE SQL
databases when migrating between Unix and Windows platforms. This functionality was
previously available in the ctpath utility. This utility changes database and IFIL resource path
separators from the native format of the system where the utility is run (i.e., \ for Windows; / for
Unix) to the non-native format. It should be run before moving the files.
Syntax
ctpathmigr [-s <server>] [-u <user>] [-p <password>] [-d <database>]
Description
 ctpathmigr with command line arguments returns 0 when the execution detected no errors,
or a value different than 0 when errors were detected and the error messages are written to
the screen.
 If you omit the -d database switch, all databases in the session will be scanned.
 Command line options should start with a '-' or '/' character. Use a lowercase character for the
option (e.g., -s not -S).
 Command line switches may have optional spaces between the switch and the argument.
Example: -s FAIRCOMS or -sFAIRCOMS are the same.
 Command line options may be entered in any order.
2.9
ctquiet - Quiesce c-treeACE Utility
The ctquiet utility allows an administrator to quiet the server from a script. An interactive option is
available in the ctadmn utility.
Usage
ctquiet [-s server][-f][-u][-w command] {-p password|-a authfile}
 -s Server (default: FAIRCOMS@localhost)
 -f Full consistency - files are flushed to disk from cache (default: crash consistency - no
flush). See below.
 -u Unquiet server
 -w Execute command on successful quiet. Waits for SIGINT to unquiet server
 -a Authentication file name
 -p Admin Password
The -a authfile option takes as argument an encrypted settings file (using ctcmdset.exe) with the
plaintext form given as:
; User
USERID
; User
PASSWD
Id
ADMIN
Password
<pass>
www.faircom.com
All Rights Reserved
10
Administrative Utilities - Client
Note: This utility provides a -f option, which enables full consistency (also known as a "clean
quiesce") in which files are flushed to disk from cache. When this option is used, the system does
not require any files to be rebuilt.
The default is the -f option is off, which results in "crash consistency" (also known as a "dirty
quiesce"). The default means that transaction logs are required and, if present, the transaction
logs are used to get back into a clean state once recovery completes.
If files are NOT under transaction control, the -f option is strongly recommended, otherwise you
will have to do a rebuild to get the files back to a clean state.
A quiesced state allows a physical copy of files to be taken that can then be restored at a later
time. For systems that provide hardware-based snapshot features, this allows extremely fast
system backups to take place while maintaining full data integrity.
Notes
 When you quiesce the server, as long as the connection that quiesced the server remains
connected, all other connections are blocked. Only if that connection goes away do we allow
the ADMIN user to logon again and undo the quiesce.
 After the server is quiet and the ctquiet utility disconnects, one ADMIN connection is allowed
to reconnect. There is no prevention of a separate process connecting as ADMIN while the
server is in a quiet state and precluding the unquiet call.
 There is a subtle distinction between a "quiet" state, and a file blocked with the ctFILBLK()
call. While in the quiet state, files are not physically closed and cannot be moved or replaced
while in this mode. Compare this to a "blocked" state, where the file can be replaced, as the
OS file handle has been released.
 When the optional -w COMMAND switch is used, the behavior of ctquiet is modified to
perform as follows:
a. After successfully quieting the server, it makes a system call to execute COMMAND.
b. It remains connected and waits for SIGINT to unquiet the server. If ctquiet is killed before
receiving SIGINT, the server will remain in a quiet state until a new connection unquiets
the server.
 When connecting to a quieted server with the intent to remove the quiet state when the
original caller of ctquiet has disconnected you must now set the USERPRF_ADMSPCL bit.
2.10
ctrbldif - IFIL-based Rebuild Utility
Usage
A rebuild utility using the IFIL definitions stored in the header of a file:
ctrbldif DataFileName [ -x8 ] [ -purge ] [ -updifil ] [ -<sectors> ]
[ -temppath=<temporary_path> ] [ -sortmem=<n> ]
[ <UserId> ] [ <UserPassword> ] [ <ServerName> ]
Description
ctrbldif reads the IFIL structure from DataFileName and calls RebuildIFileXtd() to rebuild
DataFileName and its associated indices.
 -purge - Purge duplicate records.
www.faircom.com
All Rights Reserved
11
Administrative Utilities - Client
 -updifil - Update the IFIL resource within the data file.
 -sortmem=<N> - Use N KB of memory for sorting. This option can be used to increase the
rebuild speed for large files.
 -x8 - Use extended create blocks read from data and index files.
 -idxseg=<M>@<S> - If creating index, use M automatic segments of size S. Size is specified
in megabytes, or you can specify MB or GB as a suffix. For example: -idxseg=10@1GB
c-treeACE Standalone Options
 -temppath= - directory path, <temporary_path>, to create temporary sort and purged record
files. (This standalone option is the equivalent of the TMP_PATH server configuration option.)
The default location is the current directory.
 -<sectors> - sector size, <sectors>. (in multiples of 128). The sector parameter is especially
useful if you need to adjust a file’s PAGE_SIZE (index node size) to match the c-treeACE
Server. c-treeACE standalone models default to 16 sectors (2048 byte node size) while the
c-treeACE Server defaults to 64 sectors (8192 bytes).
c-treeACE Server Options
 <UserID> : client user name to logon to a c-treeACE Server.
 <UserPassword> : client user password to authenticate to a c-treeACE Server.
 <ServerName> : c-treeACE Server name for a client to connect.
Considerations
 Even without the -x8 option, some extended create block settings such as the huge file,
extended header, and 6-byte transaction number options, are always applied to new files.
 This option requires all associated index files that are referenced in the data file's IFIL
structure to exist, as the utilities use OpenIFile() to open the data file and all associated index
files to read the extended create block values.
 When an application calls the standalone version of the Xtd8 file compact or rebuild functions
(for example, CMPIFILX8() or RBLIFILX8()), index files created by the compact or rebuild no
longer have the 6-byte transaction number attribute enabled if the specified extended create
block's x8mode field has the ctNO6BTRAN bit set.
 A rebuild or compact will fail with the new error code TFLN_ERR (943) when a client library
that supports the new rebuild or compact option format attempts to use this feature with a
c-treeACE Server that does not support this new format.
Option to set index's automatic segment attributes
If a segmented index file was deleted and rebuilt using the ctrbldif utility or the rebuild API
function, the new index file was not segmented. The index file's segment attributes, which are
stored in the index file, were lost when the index file was deleted.
Beginning with V10.3, an option is provided with the rebuild and compact utilities that causes
index files that are created by the utilities to be created using automatic segments of the specified
size and maximum. The option is:
-idxseg=M@S
www.faircom.com
All Rights Reserved
12
Administrative Utilities - Client
where M is the maximum number of segments and S is the segment size. S is interpreted as
megabytes by default. Two suffixes, MB and GB, are also supported. MB indicates that the value
is in megabytes and GB indicates that the value is in gigabytes.
Examples:
50 segments of 10 MB each:
ctrbldif test.dat -idxseg=50@10
100 segments of 300 MB each:
ctrbldif test.dat -idxseg=100@300MB
20 segments of 3 GB each:
ctrbldif test.dat -idxseg=20@3GB
Note: If the index files exist, the -idxseg option has no effect. It is only when the rebuild or
compact utility creates new index files because the old index files do not exist that the -idxseg
option affects the automatic segment properties of the index files.
Updates in handling of security attributes
In V10.3 and later, the ctrbldif utility assigns data file owner/group/permissions to index files and
ctcmpcif assigns original data file owner/group/permissions to compacted data/index files.
The rebuild and compact utilities now read the permission mask, owner, and group settings from
the original data file and after the rebuild or compact is completed, the utilities assign these same
attributes to the new files. It is desirable for the newly rebuilt or compacted files to preserve the
original security attributes as much as possible and the index file security attributes should match
the data file security attributes.
A command-line option has been added to the utilities to restore the previous security attribute
behavior. Use the -oldsec option to cause the rebuild and compact utilities to set the security
attributes as they did before this revision. For example:
ctrbldif mark.dat -oldsec ADMIN ADMIN FAIRCOMS
The -oldsec option can be used if rebuild and compact are failing with error 455 (user does not
belong to group) if you delete an index then run the rebuild or compact utility on the data file using
a user account that does not belong to the group that is assigned to the data file.
www.faircom.com
All Rights Reserved
13
Administrative Utilities - Client
Note: These changes only apply to the client and server versions of these utilities. Setting the
security attributes is not supported in standalone mode, so the standalone rebuild and compact
utilities behave as follows:
1) When the standalone mode rebuild utility creates new index files instead of reusing the new
index files (for example if the original index files have been deleted before running the rebuild
utility), the new index files are assigned a permission mask of zero (no restrictions on
permissions), and the owner and group are unassigned (empty).
2) The standalone mode compact utility always preserves the security attributes of the data file. If
the index files do not exist, the newly-created index files are assigned the same values as the
standalone rebuild does when it creates new index files.
2.11
ctsqlcdb - c-treeACE SQL Database Maintenance Utility
Usage
ctsqlcdb <command> <dbname> [<servername>]
Valid Commands:
 -add: Adds a reference to an existing database
 -create: Creates a new database
 -drop: Removes a reference to an existing database
 -exist: Returns 1 if database exists, 0 if not, 2 on error
 -list <servername>: Lists databases available from the server
 -create_preimage: Creates a preimage only database (supporting only atomicity; no
transaction logs for durability.)
Or the following command syntax copies an existing database and adds a reference to the new
copy:
 -copy <dbname> <newname> [<servername>]
-copy also includes non c-tree files when present in the database directory area.
where:
• <dbname> is the database name, and
• <servername> is the optional c-treeACE SQL name.
The -copy command supports virtual tables (called "Multi Record Tables" or "MRT tables").
2.12
ctsqlimp - SQL Import Utility
ctsqlimp is used as follows (after creating the database file):
ctsqlimp <filename> [-d database] [-s server] [-u userid] [-a password]
[-n symbolic] [-o userid]
[-i] [-r] [-k] [-c] [-x] [-p|-P] [-z] [-g] [-b|-B] [-j]
[-w script] [-m idxname] [-e xmlfile] [-f s|z|sz] [-l size] [-q prefix] [-h]
 <filename>: data file name/path (relative paths to c-treeACE SQL directory)
 -d database : database name (default: ctreeSQL)
www.faircom.com
All Rights Reserved
14
Administrative Utilities - Client
 -s server: c-treeACE SQL Server name (default: FAIRCOMS)
 -u userid: userid for logging into c-treeACE SQL
 -a password: password for authorization
 -n symbolic: set SQL table name to symbolic symbolic
 -o userid: set owner of table to userid
 -i: non interactive mode: ignore errors and continue
 -r: remove existing linked table (file is not deleted)
 -k: skip fields that don't comply with conventional identifiers rules
 -c: allow table names not complying with conventional identifiers rules
 -x: skip indices
 -p: promote unsigned integer to greater signed type
 -P: promote unsigned types to greater signed type and set check for fitting value
 -z: allow indices with missing string terminator in key segments
 -g: ignore existing index name in IFIL resource
 -b: (lowercase) switch grants all permissions on the table to the public
 -B: (uppercase) switch grants read-only permissions on the table to the public
Note: If both -B and -b are specified, the read-only setting takes precedence. Notice that the
owner of the table and the DBA have all the permissions.
This introduces a change in behavior for existing applications because this switch is
now-case sensitive.
 -j: non-interactive relink of existing table
 -w script: write CREATE statements into script file script instead of importing the table
 -m idxname: set index idxname as primary key
 -e xmlfile: get DODA definitions from external XML file xmlfile
 -f s | z | sz: force string padding to (s)paces (z)eroes or (sz)spaces zero terminated
 -l size: specify LONGVAR* field size threshold
 -q prefix: prefix SQL table name with prefix (when the -q option is combined with the symbolic
table name option, -n, the prefix is prepended to the symbolic name instead to the table
name)
 -h: display usage help
Note: The parameters are case-sensitive. By default they are lower case unless otherwise stated.
www.faircom.com
All Rights Reserved
15
Administrative Utilities - Client
2.13
ctsqlutl - c-treeSQL Maintenance Utility
The c-treeSQL Maintenance Utility, ctsqlutl, is a general purpose program to perform
maintenance on the c-treeSQL Server. At this time only the "rename column" (-rencol ) command
has been implemented. Please refer to the V8.14 Update Guide, Section 14.7, for complete
details.
Syntax
The ctsqlutl utility syntax is as follows:
ctsqlutl [options] -rencol table_name column newcolumn
 table_name: Name of the table
 column: Current name of the column you are going to rename
 newcolumn: Name of the columns after renaming
Options
 -o owner_name: Owner of table
 -d database_name: Database name (default: ctreeSQL)
 -s server_name: c-treeSQL Server name (default: FAIRCOMS)
 -u userid: userid for logging onto the c-treeSQL Server
 -a password: Password for authentication
 -h: Display usage help
2.14
ctstat - Statistics Monitoring Utility
The c-treeACE Statistics Utility, ctstat, is a client utility used to display statistics collected by
c-treeACE. ctstat, provides valuable real time monitoring of critical c-treeACE operations.
Usage
# ctstat
report_type [-s svn] [-u uid] [-p upw]
[-i int [cnt]] [-h frq] [-d] [-m] [-t]
Reports:
-vas
Admin-System Report
-vts
Tivoli-System Report
-vaf file...
Admin-File Report
-vtf file...
Tivoli-File Report
-vau user...
Admin-User Report by User Name
-vau handle...
Admin-User Report by User Handle
-vah handle...
Admin-User Report by Connection Handle
-vat
Admin-Transaction Report
www.faircom.com
All Rights Reserved
16
Administrative Utilities - Client
-var
Admin-Replication Reader Report
-func
Function Timing Report
-funcfile
Function Timing By File Report
-userinfo
User Report with stats from USERINFO() function
-isam
ISAM Activity Report
-sql
SQL Activity Report
-sqlidx
Shows index scan statistics
-sqlcache
Shows SQL cache information
-text
System Activity Report, Write System Snapshot to SNAPSHOT.FCS.
-file [csv]
File Activity Report
-iotime on | off
Turn disk I/O call timing on or off
-wrktime on |
off | reset
Turn function call timing on or off or reset the function-timing statistics
-mf logfile
Log all memory allocations to the specified file
-ma logfile
Log aggregate memory allocations to the specified file
-mr min,max
Log only memory allocations in the range min,max
-ms
Output memory allocation statistics
-mu
Unload module debug symbols
-filelocks
datafile
List all locks on a data file
-filelocks file
[N]
List all locks on a data file. Displays the Nth key. See -filelocks Notes below.
-userlocks user
List all locks held by a user. See -userlocks Notes below.
Options:
-s svn
c-treeACE Server name
-u uid
User name
-p upw
User password
-i int [cnt]
Pause int seconds for optional cnt times.
In V11 and later, standard output is flushed after the interval determined by -i
so that output is written to the file immediately. This better handles cases
where output is redirected to a file.
-h frq
Print a description header every frq outputs
-d
Show cache stats as delta
-m
Show memory file stats when using -vaf report. The following additional
statistics are output:
• phyrec - Last byte offset of file for non-memory file or current memory in
use for memory file.
• mhghbyt - Largest amount of memory used for memory file since file was
created.
• memcnt - Current number of memory records.
• hghcnt - Largest number of memory records since file was created.
www.faircom.com
All Rights Reserved
17
Administrative Utilities - Client
-t
Output timestamp with header.
-filelocks Notes
The -filelocks option lists all locks on a data file and, optionally, displays the Nth key. The lock
offset and the associated keys are not read at the same time. Since we are reading records
locked by other users to generate the key, there is no guaranteed relationship between the lock
and the displayed key. The following are possible scenarios:
1. The displayed key is from before or after any changes made by the lock holder.
2. The locked offset no longer holds a valid record (it has been deleted, or updated and moved).
3. The locked offset could have been locked/modified/unlocked more than once between the
time the lock offset was acquired and the time the record is read, so the offset could hold an
entirely different record than what was originally locked.
The -filelocks file [key] command supports c-tree's standard wildcard filename matching for the
specified file, allowing locks from multiple files to be displayed. The standard wildcards (used by
ctsrvr.cfg keywords such as MEMORY_FILE and REPLICATE, etc) are:
* - Multi-character match
? - Single-character match
^ - Negation (must be first character)
-userlocks Notes
For the -userlocks report:
 If UserID is a number, it is interpreted as a task ID.
 If UserID is a string, it is interpreted as a name, and information on locks held by each task ID
with a matching name is returned.
Because the -userlocks report may generate a large number of server calls (for each task ID and
file), the -userlocks report interval may be increased up to 60 seconds, depending on the number
of matching users and files involved.
See Also
 ctstat - Statistics Utility (http://docs.faircom.com/doc/ctserver/52856.htm) in the c-tree Server
Administrator's Guide
2.15
ctstop - Server Stop Utility
Usage
ctstop [ -auto ] [<ServerName> <AdminId> <AdminPassword>]
This utility shuts down a c-treeACE Server.
Passing the -auto switch to ctstop without specifying a ServerName, Password, or AdminID
shuts down a c-treeACE Server with the defaults shown below:
ctstop -AUTO FAIRCOMS ADMIN ADMIN
www.faircom.com
All Rights Reserved
18
Administrative Utilities - Client
The ctstop utility supports passing in ServerName, Password, and AdminID when the -auto
switch is used.
The optional delay value is the number of seconds to wait before shutting down, with a default of
no delay.
2.16
ctsysm - Server Status Monitoring Utility
The c-treeACE Server status monitoring utility, ctsysm, facilitates the monitoring of error,
warning, and informational messages logged to the server status log, CTSTATUS.FCS, by the
c-treeACE Server. Using this utility, the c-treeACE Server status log can be monitored by an
automated external process such as the Tivoli monitoring system from IBM.
To use the ctsysm utility, the c-treeACE Server must be configured to log messages to the
system log. This can be achieved by adding the following keyword to the server's configuration
file:
SYSLOG CTSTATUS
With this keyword in place, the server logs each entry in the CTSTATUS.FCS file to the system
log files (SYSLOGDT.FCS and SYSLOGIX.FCS).
The utility can read the system log from the beginning each time it starts up, or it can save its
current position and start again from that set position by specifying the -f command line option.
The following is the supported command line usage of the c-treeACE Server Status Monitoring
Utility:
ctsysm [-s svn] [-u uid] [-p upw] [-r rpt] [-c cfg] [-f fil] [-l log]
 -s svn - c-treeACE Server name
 -u uid - user name
 -p upw - user password
 -r rpt - repeat interval in seconds (for example, -r 1 is a one-second delay before checking
for new messages)
 -c cfg - config file
 -f fil - save/restore state to file
 -l log - status log name (SYSLOGDT.FCS)

-e - direct ctsysm error messages to standard output in the same format as messages
read from the server status log
Example
The following command causes ctsysm to monitor the c-treeACE Server system log for the
server FAIRCOMS (-s FAIRCOMS) for status messages, checking for new messages every
second (-r 1), saving the position of the last entry read to the file ctsysm.log (-f ctsysm.log).
ctsysm -s FAIRCOMS -u ADMIN -p ADMIN -r 1 -c ctsysm.cfg -f ctsysm.log
The ctsysm utility outputs messages in the following format:
<timestamp> <code> <subsystem> <action> <text>
Sample output from the utility is shown below (each message is output as a single line but is
shown split into two lines here):
www.faircom.com
All Rights Reserved
19
Administrative Utilities - Client
Thu Jul 29 16:44:04 2004 I0455 STUP NONE
Alternative server name... FAIRCOMS
Thu Jul 29 16:44:04 2004 I0492 STUP NONE
Compatibility bit maps: 00000000 00002000x
Thu Jul 29 16:44:04 2004 I0491 STUP NONE
Diagnostic bit maps: 00000000 00000000x
Thu Jul 29 16:44:04 2004 I0490 STUP NONE
64-bit File Address Support
Thu Jul 29 16:44:04 2004 I0489 STUP NONE
6 Byte Transaction Numbers
Thu Jul 29 16:44:04 2004 I0488 STUP NONE
NOWAIT usrsema enabled
- User# 01
- User# 01
- User# 01
- User# 01
- User# 01
- User# 01
Note: When the repeat (-r) option is used, the utility can be stopped by sending it a SIGINT
signal.
See Also
 c-treeACE Server Status Monitoring Utility, ctsysm
(http://docs.faircom.com/doc/ctserver/34515.htm) in the c-tree Server Administrator's Guide
2.17
cttrap - Communications Trap Playback utility
Usage
cttrap <Trap Comm Log File Name> [-p <password_file>][-x] [<Server>]
Where:
 <TrapCommLogFileName> - the name of the file to be played back.
 <ServerName> - the optional name of the server.
 -p <password_file> - use a text file containing a list of user names and passwords, one per
line (see Using a Password File, below).
 -x - skip serialization. cttrap serializes all the recorded operations and enforces the original
call ordering when allowing multiple client threads to replay the original operation. The -x
option allows for faster replay, although it increases the likelihood of causing errors or
differences in the final state of the data that did not exist in the original.
Description
cttrap is a multi-threaded client application that "plays back" a TRAP_COMM log file. Whenever
a multi-threaded Client library is created, cttrap will also be generated. The default TRAP_COMM
file name is TRAPCOMM.FCS.
When the DIAGNOSTICS TRAP_COMM keyword is active, the trap file, TRAPCOMM.FCS, is
created in the server directory by default. To prepend a path onto the trap file name (to route it to
a separate disk or directory), add an entry of the form DIAGNOSTIC_STR <trap file path>.
For example, if the trap file is located in /bigdisk/TRAPCOMM.FCS, the configuration file needs to
contain the following:
DIAGNOSTIC_STR /bigdisk/
Using a Password File
To allow cttrap to connect to a password-protected server when reading from a
TRAPCOMM.FCS file, use the -p <password_file> option to specify the name of a text file
www.faircom.com
All Rights Reserved
20
Administrative Utilities - Client
containing a list of user names and passwords, one per line. For example, the file pass.txt might
contain the entries:
ADMIN ADMIN
myusername mypswd
Then cttrap can be run as follows:
cttrap TRAPCOMM.FCS -p pass.txt FAIRCOMS
The passwords must match the passwords on the server where the playback occurs, not
necessarily where the playback was recorded.
Up to 16 user user name/password entries can be specified in the cttrap password file. If you
wish to support more entries, change #define MAXUPW in cttrap.c and recompile the utility.
2.18
cttrap - TRAP_COMM Utility
The DIAGNOSTICS TRAP_COMM Server keyword allows developers to ‘record’ the communication
traffic coming in to a Server and play it back with the cttrap utility.
DIAGNOSTICS TRAP_COMM
When activated, the DIAGNOSTICS TRAP_COMM keyword instructs the Faircom Server to log
incoming communications packets to TRAPCOMM.FCS prior to execution. This log can be
played back using the cttrap utility and a debug Server to observe the results of the client
requests, allowing the developer to exactly duplicate and repeat client activities.
cttrap Utility
Usage
cttrap <Trap Comm Log File Name> [-p <password_file>][-x] [<Server>]
Where:
 <TrapCommLogFileName> - the name of the file to be played back.
 <ServerName> - the optional name of the server.
 -p <password_file> - use a text file containing a list of user names and passwords, one per
line (see Using a Password File, below).
 -x - skip serialization. cttrap serializes all the recorded operations and enforces the original
call ordering when allowing multiple client threads to replay the original operation. The -x
option allows for faster replay, although it increases the likelihood of causing errors or
differences in the final state of the data that did not exist in the original.
Description
cttrap is a multi-threaded client application that "plays back" a TRAP_COMM log file. Whenever
a multi-threaded Client library is created, cttrap will also be generated. The default TRAP_COMM
file name is TRAPCOMM.FCS.
When the DIAGNOSTICS TRAP_COMM keyword is active, the trap file, TRAPCOMM.FCS, is
created in the server directory by default. To prepend a path onto the trap file name (to route it to
a separate disk or directory), add an entry of the form DIAGNOSTIC_STR <trap file path>.
www.faircom.com
All Rights Reserved
21
Administrative Utilities - Client
For example, if the trap file is located in /bigdisk/TRAPCOMM.FCS, the configuration file needs to
contain the following:
DIAGNOSTIC_STR /bigdisk/
Using a Password File
To allow cttrap to connect to a password-protected server when reading from a
TRAPCOMM.FCS file, use the -p <password_file> option to specify the name of a text file
containing a list of user names and passwords, one per line. For example, the file pass.txt might
contain the entries:
ADMIN ADMIN
myusername mypswd
Then cttrap can be run as follows:
cttrap TRAPCOMM.FCS -p pass.txt FAIRCOMS
The passwords must match the passwords on the server where the playback occurs, not
necessarily where the playback was recorded.
Up to 16 user user name/password entries can be specified in the cttrap password file. If you
wish to support more entries, change #define MAXUPW in cttrap.c and recompile the utility.
www.faircom.com
All Rights Reserved
22
Administrative Utilities - Client
2.19
cttrnmod - Change Transaction Mode Utility
cttrnmod allows an advanced user to change the transaction status of a c-treeACE data file and
its associated index files. The utility can also be used to display the transaction status of a c-tree
data file and its associated indices.
It is expected only advanced database administrators will run this utility.
Usage
cttrnmod (set <tranmode>|get) (-d <database>|-f <filelist>)
[-u <userid>] [-p <password>] [-s <servername>] [-n <sect>]
Where
 set <tranmode> - Set the transaction mode to one of the following:
• T - Full Transaction Control
• P - Partial Transaction Control (No Recoverability)
• N - No Transaction Control (No Recoverability)
repl=on - Enable replication (requires full transaction control).
repl=off - Disable replication.
The following extended header attributes may also be set:
• {+,-}R - {Enable,Disable} Restorable deletes
• {+,-}C - {Enable,Disable} Transaction controlled deletes
• {+,-}A - {Enable,Disable} Auto transaction switching.
 get - Display the current transaction mode.
 -d or -f - Operate on all files in the database or all listed files:
• -d <database> - Operate on all files in the c-tree database <database>.
• -f <filename> - Operate on all files listed in the file <filelist>.
 -u <userid> - Specify c-tree user ID.
 -p <password> - Specify c-tree user password.
 -s <servername> - Specify c-treeACE Server name to connect to. Default: FAIRCOMS
 -n <sect> - Specify node sector size. Default: 64 (PAGE_SIZE=8192)
The files to change are specified by either the -d <database> option or the -f <filelist> option. The
-d <database> option specifies the name of a c-tree database -- when this option is specified, the
utility operates on all files referenced in that database (excluding SQL system data and index
files). The -f <filelist> option specifies the name of a text file containing names of c-tree data files,
one per line -- when this option is specified, the utility operates on all files specified in that text
file.
Note: Indices created with ctPREIMG or ctTRNLOG are physically structured differently than
indices that do not support transactions. Thus a non-tran index cannot be converted to
transaction control, and must be rebuilt after the conversion. If an index file is created ctPREIMG
or ctTRNLOG, it can be accessed in all transaction and non-transaction access modes.
www.faircom.com
All Rights Reserved
23
Administrative Utilities - Client
Important Performance Considerations
When turning transaction processing off for a file, it is possible to take an even larger
performance hit under specific c-treeACE Server configurations. Be sure to remove or comment
out the line COMPATIBILITY FORCE_WRITETHRU from your c-treeACE Server configuration file
ctsrvr.cfg. While this option provides only the safest of data integrity for your non-transaction
processing controlled files, it forces an enormous performance penalty for doing so. This keyword
has historically been included by default with most c-treeACE Server installations.
Example
The following example demonstrates turning off transaction control for all c-tree data files and
their associated index files in the rdsdb database:
# cttrnmod set N -d rdsdb
Setting transaction mode to NON_TRAN for files in database rdsdb...
Tranmode
-------NON-TRAN
NON-TRAN
NON-TRAN
NON-TRAN
NON-TRAN
NON-TRAN
NON-TRAN
NON-TRAN
NON-TRAN
NON-TRAN
Filemode
-------0x0000
0x0000
0x0000
0x0000
0x0000
0x0000
0x0000
0x0000
0x0000
0x0000
Filename
-------.\rdsdb.dbs\admin_deptbl.dat
.\rdsdb.dbs\admin_deptbl.idx
.\rdsdb.dbs\admin_dept_multi_ndx.idx
.\rdsdb.dbs\admin_dept_ndx.idx
.\rdsdb.dbs\admin_emptbl.dat
.\rdsdb.dbs\admin_emptbl.idx
.\rdsdb.dbs\admin_emp_no_ndx.idx
.\rdsdb.dbs\admin_emptbl1.dat
.\rdsdb.dbs\admin_emptbl1.idx
.\rdsdb.dbs\admin_emp_no_ndx1.idx
VERIFYING No Transaction Control...
VERIFY succeeded
3 Data Files Updated
0 Errors
The following example demonstrates reading the transaction status of the data and index files in
the rdsdb database:
# cttrnmod get -d rdsdb
Reading transaction mode for files in database rdsdb...
Tranmode
-------ctTRNLOG
ctTRNLOG
ctTRNLOG
ctTRNLOG
ctTRNLOG
ctTRNLOG
ctTRNLOG
ctTRNLOG
ctTRNLOG
ctTRNLOG
Filemode
-------0x0031
0x0031
0x0031
0x0031
0x0031
0x0031
0x0031
0x0031
0x0031
0x0031
Filename
-------.\rdsdb.dbs\admin_deptbl.dat
.\rdsdb.dbs\admin_deptbl.idx
.\rdsdb.dbs\admin_dept_multi_ndx.idx
.\rdsdb.dbs\admin_dept_ndx.idx
.\rdsdb.dbs\admin_emptbl.dat
.\rdsdb.dbs\admin_emptbl.idx
.\rdsdb.dbs\admin_emp_no_ndx.idx
.\rdsdb.dbs\admin_emptbl1.dat
.\rdsdb.dbs\admin_emptbl1.idx
.\rdsdb.dbs\admin_emp_no_ndx1.idx
www.faircom.com
All Rights Reserved
24
Administrative Utilities - Client
ctTRANMODE Control (c-treeACE V11 and c-treeRTG V2 and later)
When using the Transaction Control utility, cttrnmod, to disable transaction support on a file with
extended file mode ctTRANMODE, the utility could report that after successfully disabling
ctTRNLOG, the file still has ctTRNLOG set. This is expected for a file with the ctTRANMODE bit
set when using a TRANPROC c-tree application.
cttrnmod has been updated to disable ctTRANMODE and ctPIMGMODE bits when it sets a file
to no-transaction support. It was also modified to support explicitly enabling or disabling one of
these bits (depending on the file mode that is in effect at the time).
Replication
New replication actions have been added to the cttrnmod utility for flexible control of replication
attributes.
 cttrnmod now displays replication state for a data file
 cttrnmod can change a file's replication state with the repl option
Note: Replication requires that the data file has a unique index and that the data and index files
are using full (ctTRNLOG) transaction control.
Examples
1. Enable full transaction logging on files:
# cttrnmod set T -f files.txt -u ADMIN -p ADMIN -s FAIRCOMS
Setting transaction mode to ctTRNLOG for files listed in file
files.txt...
Replicate
---------
Tranmode
--------
Filemode
--------
Filename
--------
NO
ctTRNLOG
ctTRNLOG
0x0032
0x0032
ctreesql.dbs\admin_t.dat
ctreesql.dbs\admin_t.idx
ctTRNLOG
0x0032
ctreesql.dbs\admin_t_ti.idx
Note the "Replicate" column for current replication state information.
2. Enable replication on files:
# cttrnmod set repl=on -f files.txt -u ADMIN -p ADMIN -s FAIRCOMS
Enabling replication for files listed in file files.txt...
Replicate
---------
Tranmode
--------
Filemode
--------
Filename
--------
YES
ctTRNLOG
ctTRNLOG
0x0032
0x8032
ctreesql.dbs\admin_t.dat
ctreesql.dbs\admin_t.idx
ctTRNLOG
0x8032
ctreesql.dbs\admin_t_ti.idx
www.faircom.com
All Rights Reserved
25
Administrative Utilities - Client
Note: If cttrnmod is used to disable full transaction logging for a file, it also disables replication
for that file.
2.20
dbdump - Data Unload Utility
The dbdump utility writes the data in a database to a file. The format of the exported data is
specified by the record description given in an input command file.
The dbdump command accepts the commands file name, the database name and a command
option.
Syntax
dbdump -f commands_file [-u user_name] [-a password] [-n] [-z] [-p] [-l] database_name
Options
 -f commands_file - Specifies the file containing dbdump commands.
 -u user_name - The user name c-treeSQL uses to connect to the database. If omitted, the
default value depends on the environment. (On UNIX, the value of the DH_USER
environment variable specifies the default user name. If DH_USER is not set, the value of the
USER environment variable specifies the default user name.)
 -a password - The password c-treeSQL uses to connect to the database. If omitted, the
default value depends on the environment. (On UNIX, the value of the DH_PASSWD
environment variable specifies the default password.)
 -n - Parse the commands file and display errors, if any, without exporting data. If the
parsing is successful, the following message displays on stdout:
No errors in the commands file.
 -z (10.3 and later) - The number of records to fetch per call is controlled by the -z switch.
To be consistent with the switch of dbload, it defaults to 1.
 -l (10.3 and later) - The -l switch controls the progress output frequency in terms of record
reads (the output is generated whenever the number of record reads since the last output
becomes greater than or equal to the specified value).
 -p (10.3 and later) - The dbdump -p command-line switch activates the new query
passthru mechanism, which does not perform any major change in the query. When this
switch is in use, dbdump interprets the query in the command file, converts it to lowercase,
and wraps everything that is considered an identifier with double-quotes. This can cause a
syntax error if the command file contains functions. For example, consider the following
statement:
SELECT RTRIM(cm_custnumb),...
The default behavior of dbdump results in the following statement, which would cause a
syntax error:
select "rtrim" ( "cm_custnumb" ) ,...
Using the dbdump -p switch results in this statement, which does not cause an error:
select rtrim ( cm_custnumb ) ,...
 database_name - Name of the database.
www.faircom.com
All Rights Reserved
26
Administrative Utilities - Client
See Also
 Data Unload Utility: dbdump (http://docs.faircom.com/doc/isql/32623.htm) in the c-treeSQL
ISQL Tools and Reference Guide
2.21
dbload - Data Load Utility
The dbload utility loads records from an input data file into tables of a database. The format of
the data file is specified by a record description given in an input commands file.
The dbload command does not directly specify an input file, but instead names a commands file
that in turn specifies data input files. The dbload command accepts the commands file name, the
database name, and a list of command options.
Syntax
dbload -f commands_file [ options ] database_name
 -f commands_file - Specifies the file containing dbload commands.
 options - One or more of the options as described below
 database_name - Name of the database.
Options
 -u user_name - The user name c-treeSQL uses to connect to the database. If omitted, the
default value depends on the environment. (On UNIX, the value of the DH_USER
environment variable specifies the default user name. If DH_USER is not set, the value of the
USER environment variable specifies the default user name.)
 -a password - The password c-treeSQL uses to connect to the database. If omitted, the
default value depends on the environment. (On UNIX, the value of the DH_PASSWD
environment variable specifies the default password.)
 -z maximum multiple inserts - The maximum number of records to be inserted at one time
in each bulk insert (used to improve performance)
 -l logfile - Specifies the file into which the error logging is done. stderr is the default.
dbload also writes statistics to the file:
• Number of records read
• Number of records skipped
• Number of records loaded
• Number of records rejected
 -b badfile - The file into which the bad rows that were not loaded, are written. By default
badfile is put in the current directory.
 -c commit_frequency - Store the specified number of records before committing the
transaction. The default frequency is 100 records.
 -e maxerrs - The maximum number of tolerable errors. The default number is 50 errors.
 -s skipcount - Skip the specified number of rows in the first data file. If multiple files are
specified, the rows are skipped only in the first file. The default number is zero rows.
 -m maxrows - Stop storing rows at the specified number.
www.faircom.com
All Rights Reserved
27
Administrative Utilities - Client
 -n - Parse the commands file and display errors, if any, without doing the database load. If
the parsing is successful, the following message displays on stdout: "No errors in the
commands file."
See Also
 Data Load Utility: dbload (http://docs.faircom.com/doc/isql/32580.htm) in the c-treeSQL ISQL
Tools and Reference Guide
2.22
dbschema - Schema Export Utility
The dbschema utility generates c-treeACE SQL statements to recreate the specified database
elements and data.
The c-treeACE SQL utility, dbschema, recreates specified database elements and data.
Syntax
dbschema [
[
[
[
[
-h ] [ -d ] [-u user_name ] [-a password ] [ -o outfile ]
-p [ user_name.]procedure_name [ , ... ] ]
-t [ user_name.]table_name [ , ... ] ]
-T [ user_name.]trigger_name [ , ... ] ]
database_name ]
Description
Generates c-treeSQL statements to recreate the specified database elements and data. If the
dbschema statement omits all arguments, it displays definitions for all elements (tables, views,
indexes, procedures, and triggers) for the default database on the screen.
Options
 -h - Displays brief online help of dbschema syntax and options.
 -d - In conjunction with the -t option, specifies that dbschema generates c-treeSQL
INSERT statements for data in the tables, in addition to CREATE statements. The output of
the dbschema command invoked with the -d option can be directed to a command file and
executed in interactive c-treeSQL to duplicate and load table definitions.
 -u user_name - The user name c-treeSQL uses to connect to the database. c-treeSQL
verifies the user name against a corresponding password before it connects to the database.
If omitted, the default value depends on the environment. (On UNIX, the value of the
DH_USER environment variable specifies the default user name. If DH_USER is not set, the
value of the USER environment variable specifies the default user name.)
 -a password - The password c-treeSQL uses to connect to the database. c-treeSQL
verifies the password against a corresponding user name before it connects to the database.
If omitted, the default value depends on the environment. (On UNIX, the value of the
DH_PASSWD environment variable specifies the default password.)
 -o outfile - Redirects the output to the specified file. The default is standard output.
www.faircom.com
All Rights Reserved
28
Administrative Utilities - Client
 -t [ user_name.]table_name [ , ... ] - A comma-separated list of tables and views for which
definitions should be generated. Specify a list of specific tables, or use the % to generate
definitions for all tables.
Note: With the -t option, the % character is not a true wildcard character. It substitutes for the
entire table_name argument and cannot be used for pattern matching within in a character
string. This differs from the behavior of the % in the -p and -T options.
By default, dbschema generates definitions for tables owned by the current user. Use the
optional user_name qualifier to specify a table owned by a different user.
 -p [ user_name.]procedure_name [ , ... ] - A comma-separated list of stored procedures for
which definitions should be generated. The table names in the list can include the ‘%’ and
underscore, ‘ _ ’, characters, which provide pattern-matching semantics:
• The ‘%’ matches zero or more characters in the procedure name
• The underscore ‘ _ ’ matches a single character in the procedure name
By default, dbschema generates definitions for procedures owned by the current user. Use
the optional user_name qualifier to specify a procedure owned by a different user.
 -T [ user_name.]trigger_name [ , ... ] - A comma-separated list of triggers for which
definitions should be generated. The table names in the list can include the ‘%’ and
underscore ‘ _ ’ characters, which provide pattern-matching semantics:
• The ‘%’ matches zero or more characters in the trigger name
• The underscore ‘ _ ’ character matches a single character in the trigger name
By default, dbschema generates definitions for triggers owned by the current user. Use the
optional user_name qualifier to specify a trigger owned by a different user.
 database_name - The database for which dbschema should generate definitions. If you
omit database_name, dbschema uses the default database, if specified. (How you define the
default database varies between operating systems. On UNIX, the value of the DB_NAME
environment variable specifies the default database.)
See Also
 Schema Export Utility: dbschema (http://www.faircom.com/doc/isql/32653.htm) in c-treeSQL
ISQL Tools and Reference Guide
2.23
ISQL
The c-treeACE SQL Interactive SQL utility (ISQL) provides an industry-standard "command
processing" interface to the c-treeACE SQL Database Engine.
FairCom offers two separate implementations of Interactive SQL:
1. A command-line version (isql.exe or isql). This utility is designed as a command-line tool
and can be placed in job streams.
2. A GUI tool version within the Windows program c-treeACE SQL Explorer.
Either implementation allows you to issue SQL statements directly from a command prompt for
immediate displayed results. You can use Interactive SQL to:
 Learn how SQL statements work;
www.faircom.com
All Rights Reserved
29
Administrative Utilities - Client
 Test and prototype SQL statements to be embedded in programs;
 Modify an existing database with data definition statements;
 Perform ad-hoc queries and generate formatted reports with special ISQL formatting
statements;
 Run existing SQL scripts.
With few exceptions, you can issue any SQL statement in ISQL that can be embedded in a
program, including CREATE, SELECT, and GRANT statements. Interactive SQL includes an
online help facility with syntax and descriptions of the supported statements.
See Also
 c-treeSQL ISQL Tools and Reference Guide
(http://docs.faircom.com/doc/isql/#cover.htm)
2.24
sa_admin - Command-line security administration utility
The command-line version of the system administrator program, sa_admin, can be used to
perform many user operations directly from shell scripts.
sa_admin [-a<adminuserid>] [-p<adminpassword>]
[-f<filepassword>] [-s<servername>] <option>
option is one of the following:
Options Users
 -oua
Add a user account
 -oud
Change user account description
 -oue
Change user account extended settings
 -oug
Add a user to a group
 -oul
List user accounts
 -oum
Change user account memory limit
 -oup
Change user account password
 -our
Delete a user account
 -ous
Show user account information
 -oux
Remove a user from a group
Options Group
 -oga
Add a group
 -ogd
Change group description
 -ogl
List groups
 -ogm
Change group memory limit
 -ogr
Delete a group
 -ogs
Show group information
Options File
 -ofg
Change file group
www.faircom.com
All Rights Reserved
30
Administrative Utilities - Client
 -ofl
List files matching filename
 -ofo
Change file owner
 -ofp
Change file password
 -ofs
Change file permissions
Wildcard specifiers with sa_admin
sa_admin, -ofp, -ofs, -ofg, and -ofo options support specifying filenames with wildcard
characters. When one of these options specifies a filename that includes ? or * characters, the
utility retrieves a list of files matching the filename wildcard specifier and executes the specified
command for each file.
Retrieve a List of Filenames from the server with sa_admin
-ofl (list files) is used to list the files on the c-treeACE Server system matching the specified
filename including wildcard characters.
sa_admin Support for Encrypted Password Files
The sa_admin utility supports the use of an encrypted password file. Encrypted password files
are created with the ctcmdset utility and keep user IDs and passwords from plain view within
script files. An encrypted password file name is specified using the command-line option:
-1 <filename>
ADMINISTRATOR OPTIONS
 -a
System administrator User ID.
 -p
System administrator password.
 -f
Optional server system file password.
 -s
Optional server name.
Note: There is no space between the switch and its parameter.
USER OPTIONS
The following options, all beginning with -ou, allow changes to user information. Additional group
and file options are described below.
Note: To use any optional entry, you must use all the previous entries even if they would
otherwise be optional. For example, to add a user with the -oua option and specify a group, you
must also enter the userid, desc, and password.
Option User Add
-oua <userid> [-d <desc>] [-w <password>] [-g <group>] [-m <memory>[<rule>]]
[-b <begdat>] [-e <enddat>] [-l <loglimit>] [-r <rsmlogon>] [-t <mstlogon>]
 userid: User id (required)
 -d desc: Optional user description
 -w password: Optional user password
www.faircom.com
All Rights Reserved
31
Administrative Utilities - Client
 -g group: Optional user group
 -m memory: Optional user memory limit.
• rule: Optional user memory rule. Used only with memory. The optional <rule> is A for
absolute, D for default, or G for guideline (example -m 10485760a specifies an absolute
memory limit of 10 MB). NULL for Default.
 -b begdat: Optional starting validity date. Specify as mm/dd/yyyy. NULL for Default.
 -e enddat: Optional ending validity date. Specify as mm/dd/yyyy. NULL for Default.
 -l loglimit: Optional maximum invalid logon attempts. NULL for Default.
 -r rsmlogon is the logon block period in minutes. Specifying a value of “block” (e.g., -r block)
blocks the account indefinitely (until it is unblocked by an administrator, and specifying a
value of “unblock” (e.g., -r unblock) unblocks the account immediately.
 -t mstlogon is the interval in minutes during the user must logon at least once, otherwise the
account is blocked.
Option User Remove
-our userid
 userid: User id (required)
Option User List
-oul
Option User Change Password
-oup userid password
 userid: User id (required)
 password: New password (required)
Option User Add user to Group
-oug userid group
 userid: User id (required)
 group: Group name (required)
Option User (group) Extract - Remove a user from a group.
-oux userid group
 userid: User id (required)
 group: Group name (required)
Option User Change Description
-oud userid desc
 userid: User id (required)
 desc: New user description
Option User Memory
-oum userid memory rule
 userid: User id (required)
 memory: New memory limit. This can be a number of bytes or ‘D’ for default or left NULL for
no limit
www.faircom.com
All Rights Reserved
32
Administrative Utilities - Client
 rule: Optional user memory rule. Used only with memory. This may be ‘A’ for Absolute, ‘G’
for Guideline, ‘D’ for Default, or NULL for Default
Option User Change Extended Settings
-oue <userid> [-b <begdat>] [-e <enddat>] [-l <loglimit>] [-r <rsmlogon>] [-t <mstlogon>]
 userid: User id (required)
 -b begdat: Optional starting validity date. Specify as mm/dd/yyyy. NULL for Default
 -e enddat: Optional ending validity date. Specify as mm/dd/yyyy. NULL for Default
 -l loglimit: Optional maximum invalid logon attempts. 0 for Default. -1 to disable invalid logon
check.
 -t mstlogon: Optional must logon period, e.g., how often the user must log on to remain
active. The interval in minutes during the user must logon at least once, otherwise the
account is blocked. Specify as number of minutes. NULL for Default. -1 to disable must logon
period.
 -r rsmlogon: Optional logon timeout remaining. If a user has been denied access to the
c-treeACE 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. Specifying a
value of “block” (e.g., -r block) blocks the account indefinitely (until it is unblocked by an
administrator), and specifying a value of “unblock” (e.g., -r unblock) unblocks the account
immediately.
Option User Show
-ous userid
 userid: User id (required)
GROUP OPTIONS
The following options, all beginning with -og, allow changes to group information. Additional user
and file options are described elsewhere.
Note: To use any optional entry, you must use all the previous entries. For example, to specify a
rule when adding a group with the -oga option, you must also enter the desc and memory options
for the group.
Option Group Add
-oga <groupid> [-d <desc>] [-m <memory>][<rule>]]
 groupid: Group id (required)
 -d desc: Optional group description
 memory is the memory limit and the optional <rule> is A for absolute, D for default, or G for
guideline (example -m 10485760a specifies an absolute memory limit of 10 MB).
Option Group Remove
-ogr groupid
 groupid: Group id (required)
www.faircom.com
All Rights Reserved
33
Administrative Utilities - Client
Option Groups List
-ogl
Option Group Change Description
-ogd groupid desc
 groupid: Group id (required)
 desc: New group description
Option Group Memory
-ogm groupid [-m <memory>[<rule>]]
 groupid: Group id (required)
 -m memory: New memory limit. memory is the memory limit
• <rule> (optional) is A for absolute, D for default, or G for guideline (example -m
10485760a specifies an absolute memory limit of 10 MB).
Option Group Show
-ogs groupid
 groupid: Group id (required)
FILE OPTIONS
The following options, all beginning with -of, allow changes to file information. Additional user and
group options are described elsewhere.
Option File Password
-ofp filename password
 filename: File name (required)
 password: File password (required)
Option File Security (permissions)
-ofs <filename> <permission> ...
-ofs +|-<permission> ...
 filename: File name (required)
 permission: File permission mask.
To set a permission, set the byte at the corresponding offset to a value of ‘+’.
To reset a specified permission, set the corresponding byte to ‘-’.
For example, the string “+++++-----+++++” sets all OWNER and WORLD permissions, and
clears all GROUP permissions.
This field is interpreted as a 15-byte permission mask containing owner, group, and world
permissions:
(offset)
0 1 2 3 4
----OWNER---r w f d p
r = Read
5 6 7 8 9
----GROUP---r w f d p
w = Write
10 11 12 13 14
-----WORLD---r w f d p
f = define
d = Delete
p = noPass
 permission can also be one of the following:
www.faircom.com
All Rights Reserved
34
Administrative Utilities - Client
ownerall, ownerread, ownerwrite, ownerdefine, ownerdelete, ownernopass,
groupall, groupread, groupwrite, groupdefine, groupdelete, groupnopass,
worldall, worldread, worldwrite, worlddefine, worlddelete, worldnopass
Options are evaluated left to right. For example, specifying -groupwrite +groupwrite has the
effect of adding the groupwrite permission, and specifying +worldall -worldread turns on all
world permissions except read permission.
Option File Group
-ofg filename groupid
 filename: File name (required)
 groupid: File group id (required)
Option File Owner
-ofo filename owner
 filename: File name (required)
 owner: File owner (required)
Examples of -ofs usage:
-ofs <filename> <permmask> is the same as current usage:
-ofs test.dat ++++++++++-----
-ofs <filename> <permission> ... sets the file permissions to the specified permissions.
The following command sets all owner and group permissions and resets all world permissions:
-ofs test.dat ownerall groupall
-ofs <filename> +|- <permission> ... adds/removes specified permissions to/from
current file permissions. The following command adds the worldread permission to the current file
permissions and removes the groupwrite permission from the current file permissions:
-ofs test.dat +worldread -groupwrite
www.faircom.com
All Rights Reserved
35
3.
Administrative Utilities - Standalone
These standalone utilities are intended for administrators. They are located in the following folder:
All tools:
All command-line tools:
All administrative tools:
Client-side administrative tools
Standalone administrative tools
tools\cmdline\admin\standalone
All other utilities:
Client-side utilities
Low-level utilities
Standalone utilities
Note: The exact set of tools and utilities and their directory structure depends on the FairCom
product you have installed.
3.1
ctcfgset - Server Configuration File Encoding Utility
Converts the standard ASCII-text configuration file, ctsrvr.cfg, into an encoded settings file,
ctsrvr.set. The utility ctcfgset takes as its argument the name of a configuration file, ctsrvr.cfg, to
be converted into a tamper-proof ctsrvr.set file. This creates an optional tamper-proof version of
the server configuration file, referred to as the ‘settings’ file. Because entries in the settings file
cannot be overridden, users cannot alter important aspects of the server configuration.
Usage:
ctcfgset ctsrvr.cfg
www.faircom.com
All Rights Reserved
36
Administrative Utilities - Standalone
3.2
ctcmdset - Configuration File Encoding Utility
Creates an encrypted password file from a text file by encoding a *.cfg file into a *.set file. The file
to be processed should have an extension of .cfg.
Usage:
ctcfgset [filename].cfg
3.3
ctcpvf - Master Password Verification File Utility
c-treeACE advanced encryption (AES, Blowfish, Twofish, 3DES) requires a master password to
protect encrypted file access. Before starting c-treeACE for the first time with Advanced
Encryption enabled, the Administrator must use the ctcpvf utility to create the master password
verification file. Each time c-treeACE starts, it prompts for the master password to allow it to open
encrypted files.
ctcpvf creates the master password verification file. It accepts optional parameters: filename (the
file name to create) and password (the master password). If the parameters are not given, ctcpvf
will prompt for the required information.
Usage
ctcpvf
[-c <cipher>] [-f <filename>] [-k <key>] [-s <store>]
Where:
 -c <cipher> - Use encryption cipher <cipher>. Supported ciphers: aes256 and aes128.
Default is aes256.
 -f <filename> - Create password verification file <filename>. Default is ctsrvr.pvf.
 -k <key> - Use <key> as the master key.
 -s [<store>] - Store key in encrypted file <store>. Default is ctsrvr.fkf.
 -syslevel - (V11 and later) Create encrypted store file with system-level encryption: all user
accounts on the system can decrypt it.
Note: If you don't use the -syslevel switch, you must run the c-treeACE Server under the same
user account that was used to run the ctcpvf utility that created the master key store file. Using
the -syslevel switch creates the master key store file so that it can be opened by any user
account on that machine, which allows you to run the c-treeACE Server under any user account
on the system. (See Advanced encryption master key store encrypted at system level on
Windows.)
Note: c-treeACE looks for the file ctsrvr.pvf in the server binary area, so this file name should be
specified.
www.faircom.com
All Rights Reserved
37
Administrative Utilities - Standalone
Key Store Option
By default, this master key must be presented to c-treeACE on startup as prompted. However,
this prompted interaction is not always possible. Consider the case of a failover strategy for
business continuity, or the case where no single person should ever know the complete key as
keys are built from random secure key generators. c-treeACE supports a key store file to provide
this key value at startup.
The ctcpvf utility -s option is used to select the master key length, and to write the master key to
an encrypted keystore file <store>.
The c-treeACE configuration option MASTER_KEY_FILE specifies the key store file, <store>, from
which c-treeACE reads the master encryption key. On Linux and Unix systems, the master key is
stored AES encrypted in a file on disk, with permissions set such that only the user that created
the file can read it (permissions are set to 400). For complete security, it is important to use file
system access safeguards to fully protect this key store file.
Note: The key file (or user key on Linux and Unix) is encrypted using AES. The encryption is
intended to only prevent casual inspection of the data when the file's contents are viewed. The
permissions on the file are the defense against an unauthorized user reading the file. The
Windows master key approach uses the Microsoft DPAPI to encrypt data with user credentials,
and only that user can decrypt the file. Unix support is a bit weaker in this regard as it relies on
file permissions, which can potentially be changed such that another user could read and decrypt
the key.
3.4
ctfchk - File Checksum Utility
ctfchk is a standalone c-tree utility that calculates the checksum on all active records in a
fixed-length c-tree data file. It reads active records from a fixed-length c-tree data file in physical
order and outputs a checksum and active record count. The utility uses the CRC-32 algorithm to
compute the checksum.
This utility can be used to compare the record contents of two fixed-length data files. Two c-tree
data files that contain the same active record images in the same order will generate identical
checksums. Two c-tree data files whose active record contents differ will generate different
checksums (subject to the limitations of the CRC-32 algorithm).
Usage
ctfchk <filename> [-skpchk] [-logcrc] [-logbyt]
[-logrec <record number>] [-opencrpt]
Where:
 -logcrc - Output the current CRC after each active record is read.
 -logbyt - Output the offset of each active record.
 -logrec <record_number> - Output the contents of the specified record. The first active record
in the file in physical order is record 1.
 -opencrpt - Permits the utility to open a file whose update flag is set.
When the file is already opened by another instance (Server, for instance), trying to open it to
calculate the checksum will fail with error FCRP_ERR (14, File Corrupt at Open). If the -opencrpt
www.faircom.com
All Rights Reserved
38
Administrative Utilities - Standalone
option is added, the utility tries to open the file using the ctOPENCRPT filemode. If this second
open attempt succeeds, the utility outputs the following message and proceeds to calculate the
checksum of all active records in the file:
NOTE: This file's update flag is set. Opened file using ctOPENCRPT mode.
3.5
cthghtrn - Displays the high-water mark for transactions
This utility displays the high-water transaction marks within an index file. This would be typically
used when the c-treeACE Server transaction mark number gets too large.
Usage
cthghtrn [-<page size in bytes (e.g., -1024)>] <file name> [-nonzero]
Where:
 -nonzero - outputs only the non-zero transaction high water mark values.
Examples
cthghtrn
cthghtrn
custmast.idx
-4096 custmast.idx
See also
 ctclntrn Utility - Clean Transaction Mark (page 65,
http://docs.faircom.com/doc/ctreeplus/#31074.htm)
3.6
ctredirect - IFIL Update Utility for Redirected Filenames
Updates IFIL Filenames for redirection to alternate locations.
The Redirect feature is used to allow a file originating in one directory structure to be repositioned
into another directory location following autorecovery, dynamic dump restore, or replication. As a
result, if the IFIL resource of the file contained a path, this path would be incorrect after the file
was redirected to the new location. To support copying c-tree files from one directory location to
another (on the same system or on a different system) and accessing them in their new location,
it is necessary to update any filename paths in a c-tree data file's IFIL resource.
ctredirect is used to update the file names contained in the IFIL resource of the specified files.
ctredirect accepts as command-line options the name of a text file containing the list of files
whose IFIL resources are to be updated and the name of a text file containing the filename
redirection rules.
A comment may be placed in the redirection rules file by starting the line with a semi-colon (;).
Note: The rules must match the path in the IFIL resource, which may differ from the path used to
open the file. The rules must precisely match the path in the IFIL resource, which may differ from
the path used to open the file, therefore you may not use wild cards.
Usage
ctredirect -f <filenamelist> -r <redirectlist> -n <sect>
www.faircom.com
All Rights Reserved
39
Administrative Utilities - Standalone
Where:
 -f <filenamelist> - Name of a text file containing the names of c-tree data files whose IFIL
resources are to be updated.
 -r <redirectlist> - Name of a text file containing the redirection rules. The rules are in the
format: <current path> <new path> (see the example below).
 -n <sect> - Node sector size. The default is 64, corresponding to the server default
PAGE_SIZE of 8192.
Example
Consider the current directory contains the data files customer.dat and inventory.dat, and their
IFIL resources specify the path /export/home/users/marketing/data for the data and index files.
The current directory contains the file myfiles.txt listing the following file names:
customer.dat
inventory.dat
The current directory also contains the file myrules.txt containing the following redirection rules:
/export/home/users/marketing/data /export/home2/users/support/data
ctredirect is then called to change the paths in the IFIL resource of these two data files:
./ctredirect -f myfiles.txt -r myrules.txt
Updating the file paths in the IFIL resources of the specified files...
[ OK
] customer.dat
[ OK
] inventory.dat
Successfully changed IFIL resource for all specified files
www.faircom.com
All Rights Reserved
40
Administrative Utilities - Standalone
3.7
cttrnmod - Change Transaction Mode Utility
cttrnmod allows an advanced user to change the transaction status of a c-treeACE data file and
its associated index files. The utility can also be used to display the transaction status of a c-tree
data file and its associated indices.
It is expected only advanced database administrators will run this utility.
Usage
cttrnmod (set <tranmode>|get) (-d <database>|-f <filelist>)
[-u <userid>] [-p <password>] [-s <servername>] [-n <sect>]
Where
 set <tranmode> - Set the transaction mode to one of the following:
• T - Full Transaction Control
• P - Partial Transaction Control (No Recoverability)
• N - No Transaction Control (No Recoverability)
repl=on - Enable replication (requires full transaction control).
repl=off - Disable replication.
The following extended header attributes may also be set:
• {+,-}R - {Enable,Disable} Restorable deletes
• {+,-}C - {Enable,Disable} Transaction controlled deletes
• {+,-}A - {Enable,Disable} Auto transaction switching.
 get - Display the current transaction mode.
 -d or -f - Operate on all files in the database or all listed files:
• -d <database> - Operate on all files in the c-tree database <database>.
• -f <filename> - Operate on all files listed in the file <filelist>.
 -u <userid> - Specify c-tree user ID.
 -p <password> - Specify c-tree user password.
 -s <servername> - Specify c-treeACE Server name to connect to. Default: FAIRCOMS
 -n <sect> - Specify node sector size. Default: 64 (PAGE_SIZE=8192)
The files to change are specified by either the -d <database> option or the -f <filelist> option. The
-d <database> option specifies the name of a c-tree database -- when this option is specified, the
utility operates on all files referenced in that database (excluding SQL system data and index
files). The -f <filelist> option specifies the name of a text file containing names of c-tree data files,
one per line -- when this option is specified, the utility operates on all files specified in that text
file.
Note: Indices created with ctPREIMG or ctTRNLOG are physically structured differently than
indices that do not support transactions. Thus a non-tran index cannot be converted to
transaction control, and must be rebuilt after the conversion. If an index file is created ctPREIMG
or ctTRNLOG, it can be accessed in all transaction and non-transaction access modes.
www.faircom.com
All Rights Reserved
41
Administrative Utilities - Standalone
Important Performance Considerations
When turning transaction processing off for a file, it is possible to take an even larger
performance hit under specific c-treeACE Server configurations. Be sure to remove or comment
out the line COMPATIBILITY FORCE_WRITETHRU from your c-treeACE Server configuration file
ctsrvr.cfg. While this option provides only the safest of data integrity for your non-transaction
processing controlled files, it forces an enormous performance penalty for doing so. This keyword
has historically been included by default with most c-treeACE Server installations.
Example
The following example demonstrates turning off transaction control for all c-tree data files and
their associated index files in the rdsdb database:
# cttrnmod set N -d rdsdb
Setting transaction mode to NON_TRAN for files in database rdsdb...
Tranmode
-------NON-TRAN
NON-TRAN
NON-TRAN
NON-TRAN
NON-TRAN
NON-TRAN
NON-TRAN
NON-TRAN
NON-TRAN
NON-TRAN
Filemode
-------0x0000
0x0000
0x0000
0x0000
0x0000
0x0000
0x0000
0x0000
0x0000
0x0000
Filename
-------.\rdsdb.dbs\admin_deptbl.dat
.\rdsdb.dbs\admin_deptbl.idx
.\rdsdb.dbs\admin_dept_multi_ndx.idx
.\rdsdb.dbs\admin_dept_ndx.idx
.\rdsdb.dbs\admin_emptbl.dat
.\rdsdb.dbs\admin_emptbl.idx
.\rdsdb.dbs\admin_emp_no_ndx.idx
.\rdsdb.dbs\admin_emptbl1.dat
.\rdsdb.dbs\admin_emptbl1.idx
.\rdsdb.dbs\admin_emp_no_ndx1.idx
VERIFYING No Transaction Control...
VERIFY succeeded
3 Data Files Updated
0 Errors
The following example demonstrates reading the transaction status of the data and index files in
the rdsdb database:
# cttrnmod get -d rdsdb
Reading transaction mode for files in database rdsdb...
Tranmode
-------ctTRNLOG
ctTRNLOG
ctTRNLOG
ctTRNLOG
ctTRNLOG
ctTRNLOG
ctTRNLOG
ctTRNLOG
ctTRNLOG
ctTRNLOG
Filemode
-------0x0031
0x0031
0x0031
0x0031
0x0031
0x0031
0x0031
0x0031
0x0031
0x0031
Filename
-------.\rdsdb.dbs\admin_deptbl.dat
.\rdsdb.dbs\admin_deptbl.idx
.\rdsdb.dbs\admin_dept_multi_ndx.idx
.\rdsdb.dbs\admin_dept_ndx.idx
.\rdsdb.dbs\admin_emptbl.dat
.\rdsdb.dbs\admin_emptbl.idx
.\rdsdb.dbs\admin_emp_no_ndx.idx
.\rdsdb.dbs\admin_emptbl1.dat
.\rdsdb.dbs\admin_emptbl1.idx
.\rdsdb.dbs\admin_emp_no_ndx1.idx
www.faircom.com
All Rights Reserved
42
Administrative Utilities - Standalone
ctTRANMODE Control (c-treeACE V11 and c-treeRTG V2 and later)
When using the Transaction Control utility, cttrnmod, to disable transaction support on a file with
extended file mode ctTRANMODE, the utility could report that after successfully disabling
ctTRNLOG, the file still has ctTRNLOG set. This is expected for a file with the ctTRANMODE bit
set when using a TRANPROC c-tree application.
cttrnmod has been updated to disable ctTRANMODE and ctPIMGMODE bits when it sets a file
to no-transaction support. It was also modified to support explicitly enabling or disabling one of
these bits (depending on the file mode that is in effect at the time).
Replication
New replication actions have been added to the cttrnmod utility for flexible control of replication
attributes.
 cttrnmod now displays replication state for a data file
 cttrnmod can change a file's replication state with the repl option
Note: Replication requires that the data file has a unique index and that the data and index files
are using full (ctTRNLOG) transaction control.
Examples
1. Enable full transaction logging on files:
# cttrnmod set T -f files.txt -u ADMIN -p ADMIN -s FAIRCOMS
Setting transaction mode to ctTRNLOG for files listed in file
files.txt...
Replicate
---------
Tranmode
--------
Filemode
--------
Filename
--------
NO
ctTRNLOG
ctTRNLOG
0x0032
0x0032
ctreesql.dbs\admin_t.dat
ctreesql.dbs\admin_t.idx
ctTRNLOG
0x0032
ctreesql.dbs\admin_t_ti.idx
Note the "Replicate" column for current replication state information.
2. Enable replication on files:
# cttrnmod set repl=on -f files.txt -u ADMIN -p ADMIN -s FAIRCOMS
Enabling replication for files listed in file files.txt...
Replicate
---------
Tranmode
--------
Filemode
--------
Filename
--------
YES
ctTRNLOG
ctTRNLOG
0x0032
0x8032
ctreesql.dbs\admin_t.dat
ctreesql.dbs\admin_t.idx
ctTRNLOG
0x8032
ctreesql.dbs\admin_t_ti.idx
www.faircom.com
All Rights Reserved
43
Administrative Utilities - Standalone
Note: If cttrnmod is used to disable full transaction logging for a file, it also disables replication
for that file.
www.faircom.com
All Rights Reserved
44
4.
Utilities - Client
These client-side utilities are located in the following folder:
All tools:
All command-line tools:
All administrative tools:
Client-side administrative tools
Standalone administrative tools
All other utilities:
Client-side utilities
tools\cmdline\utils\client
Low-level utilities
Standalone utilities
Note: The exact set of tools and utilities and their directory structure depends on the FairCom
product you have installed.
4.1
ctinfo - ISAM File Info
Usage
ctinfo FileName [-isam] [-rdkeys] [<UserId> [<UserPassword> [<ServerName>]]]
Description
ctinfo retrieves IFIL and DODA structures from a c-treeACE file as well as XCREblk extended
header information if available. This utility is useful in both client-server and standalone mode.
 -isam - Open the specified data file in ISAM mode (V10.3 and later). See below.
 -rdkeys - If this option is enabled, ctinfo opens the data file and associated indexes at the
ISAM level instead of performing a low-level open, which avoids FRSKEY error: 26. Without
this opion, ctinfo does not cause c-treeACE Server to log replication diagnostics; an ISAM
level file open used by -rdkeys will cause the details to be logged
Note: The ISAM open requires the index files to exist and to be accessible, unlike the
low-level open which requires only the data file to exist.
www.faircom.com
All Rights Reserved
45
Utilities - Client
In V10.3 and later, the ctinfo utility displays the owner, group, and permissions for the specified
file. Example output:
File owner
File group
Permission mask
= ADMIN
= ADMIN
= 0x85e = {
owner: read write def delete
group: read
world: read
}
In V10.3 and later, the ctinfo -isam option causes the utility to open the specified data file in
ISAM mode. This option is useful for checking if a REPLICATE keyword enables replication for
the file.
In V11 and later, the ctinfo utility outputs the header record for fixed-length files or the header
key count for each logical index. For example:
Header Count
4776 keys in index 0
4776 keys in index 1
4776 keys in index 2
4.2
ctixmg - Incremental ISAM / Resource sample
Usage
ctixmg [<UserID>
<UserPassWord> <ServerName>]
Description
ctixmg supports variable-length data records using Incremental ISAM structures to specify the
file parameters for creation and optionally supports resources. If RESOURCES are defined in
ctoptn.h prior to opening the files the proper resource open, OpenFileWithResource(), and
close, CloseRFile(), functions are used. If RESOURCES are not defined, then OpenIFileXtd()
and CloseIFile() are used to open and close the files. The optional UserId, UserPassWord and
ServerName parameters only apply to c-treeACE Server based systems.
ctixmg automatically creates the files it needs if they do not exist. It rebuilds the files if they
appear corrupt. In transaction processing environments, automatic recovery replaces the need for
rebuilding the files.
ctixmg runs in all c-treeACE console-based models. ctixmg permits transaction processing
control including Begin(), and Commit(). In a non-transaction processing system, Begin() and
Commit() are replaced by LockISAM() to control ISAM level locking.
www.faircom.com
All Rights Reserved
46
Utilities - Client
4.3
ctsfex - Superfile Data Export Utility
The ctsfex utility exports data from a superfile to another superfile or to individual files identical to
the superfile members. This high-performance utility exports the data without index updates,
transaction control, or file extension. After the data export is completed, the indices are rebuilt
and transaction control and file extension properties are restored on the newly-created files. This
utility also supports a multi-threaded version allowing each thread to process a superfile member.
Usage:
ctsfex sf1 [-f sf2 | -d dir] [-cCrovV] [-t thds] [-e key]
[-m recs] [-n size] [-T <path>] [-ctscmp <args>]
[-s svn] [-u uid] [-p upw]
Where:
 -f sf2 - Export to superfile sf2
 -d dir - Export to standard files in directory dir
 -c - Create the target files without exporting data.
 -C - Create AND export data for _isp@ and .group tables only.
 -r - Force replacement (overwrite) of existing files.
 -o - Force open of a corrupted file using the ctOPENCRPT file mode.
 -v - Open the superfile and its members to validate a superfile.
 -V - Used in conjunction with -v, this option validates records with a read.
 -m recs - Send record counter to stdout every recs records.
 -e key - Encrypt the target files with key
 -t threads - Maximum number of concurrent threads to use.
 -T <path> - Specify the location of temporary files created by the rebuild operation.
 -s server_name - Server name for connecting to the server.
 -u userID - User ID for connecting to the server.
 -p userpassword - User password for connecting to the server.
 -ctscmp <args> - Invoke the superfile compact utility, ctscmp with <args>.
Standalone Usage
In standalone mode an additional option is available to specify the index node size:
 -n size - Index node size to use (standalone mode only).
4.4
ctvlqa - Variable-length quality assurance utility
Usage
ctvlqa
www.faircom.com
All Rights Reserved
47
Utilities - Client
Description
ctvlqa is designed as a torture and performance test for variable-length records. The program
generates random data to build generic records based on the file structure layout from ctixmg.
ctvlqa prompts the user for the file name, beginning record size, ending record size, record
increment size, and quantity of records to add.
The program does the following:
1.
2.
3.
4.
5.
Creates the data file with the desired file name.
Adds the first record of the beginning record size.
Reads back the record to ensure it was properly inserted into the database.
Adds the desired quantity of records, checking each insertion by re-reading.
Increments the beginning record size by record increment size and inserts the desired
quantity of records for this record size.
Steps 2 - 5 repeat until the ending record size is encountered or an error occurs.
An output log can be created by changing OUTLOG in ctvlqa.c from 0 to 1.
4.5
ISQL
The c-treeACE SQL Interactive SQL utility (ISQL) provides an industry-standard "command
processing" interface to the c-treeACE SQL Database Engine.
FairCom offers two separate implementations of Interactive SQL:
1. A command-line version (isql.exe or isql). This utility is designed as a command-line tool
and can be placed in job streams.
2. A GUI tool version within the Windows program c-treeACE SQL Explorer.
Either implementation allows you to issue SQL statements directly from a command prompt for
immediate displayed results. You can use Interactive SQL to:
 Learn how SQL statements work;
 Test and prototype SQL statements to be embedded in programs;
 Modify an existing database with data definition statements;
 Perform ad-hoc queries and generate formatted reports with special ISQL formatting
statements;
 Run existing SQL scripts.
With few exceptions, you can issue any SQL statement in ISQL that can be embedded in a
program, including CREATE, SELECT, and GRANT statements. Interactive SQL includes an
online help facility with syntax and descriptions of the supported statements.
See Also
 c-treeSQL ISQL Tools and Reference Guide
(http://docs.faircom.com/doc/isql/#cover.htm)
www.faircom.com
All Rights Reserved
48
5.
Utilities - Low Level
These low-level utilities are located in the following folder:
All tools:
All command-line tools:
All administrative tools:
Client-side administrative tools
Standalone administrative tools
All other utilities:
Client-side utilities
Low-level utilities
tools\cmdline\utils\lowlevel
Standalone utilities
Note: The exact set of tools and utilities and their directory structure depends on the FairCom
product you have installed.
5.1
ctalgn - Change Alignment
The ctalgn utility is used to change the creation alignment characteristic of a file by updating the
file's header.
Usage:
ctalgn <file name> <alignment constant: 1,2,4,8> [<# sectors>]
5.2
CTCMPC - File compaction
ctcmpc <name of file to compact>
This utility is run in single user mode. It takes the name of a data file or an index file. It creates a
compacted copy in the file with name CTREE.TMP. After being compacted, file must be rebuilt
using the c-treeACE Rebuild utility, ctrbld, or RebuildIFile() to update the indices.
CompactIFile() can be used instead of ctcmpc when using Incremental ISAM structures.
www.faircom.com
All Rights Reserved
49
Utilities - Low Level
ctcmpc does not support indices contained in superfiles or index files that support transaction
processing. To compact an index file member of a superfile and/or which supports transactions,
use ctdidx to create a flat key file, then use ctindx to rebuild the index compactly.
DEPRECATED as of V7. Please use the enhanced ctcmpif (page 66) utility.
5.3
ctcnfg - System Configuration Example
This sample demonstrates the SystemConfiguration() function. Upon running the utility, you will
see the main menu with the following choices:
SYSCFG: SystemConfiguration example
1. Dynamic system resources
2. Static system resources
3. FairCom Server only resources
4. Client and Server side resources
5. Pre-initialization resources
Enter the number of your choice to see a display of the current configuration. For example, if you
type the number 2 and then press the Enter key, you will see a display similar to the following:
Static system resources
----------------------Maximum c-tree Plus FCBs system wide :
Maximum indices per data file
:
Maximum key segments per index
:
14
32
12
Press the Enter key to return to the main menu.
To exit from the utility, type q at the main menu and then press the Enter key.
5.4
CTCV43 - Convert V4.3 Data File to c-tree Format
ctcv43 <V4.3 data file name> <c-treeACE file name>
This utility converts a data file from c-tree V4.1F-V4.3C to c-treeACE format. It supports the
conversion of files with up to 4 GB in size. Both fixed and variable-length files are supported.
If the new data file does not exist, it will be created. ctcv43 is designed to run in single user
mode.
After converting the data files, you may use the rebuild utility, ctrbld, or function, RebuildIFile(),
to construct the associated index files. If you have stand-alone indices to convert, use ctin43 to
first create a flat key file, and then use ctindx to build the new index file.
Note: ctin43, provided with c-treeACE, must be linked with your c-tree V4.3 application library.
5.5
ctcv67 - Extended File Conversion Utility
ctcv67 <old file name> <new path> [<option> <argument> ...]
The first two arguments are required. The new path is prepended to the old file name or the files
in the parameter file. The options are listed in the table later in this topic.
www.faircom.com
All Rights Reserved
50
Utilities - Low Level
ctcv67 performs various conversions, including:
 Converting data and index files from Standard c-treeACE format to Extended c-tree format
(HUGE or non-HUGE) using Incremental ISAM (IFIL) or parameter files.
 Adding huge file support to a non-huge file.
 Adding, removing, or changing segment support.
 Automatically compacting the output file.
Note: ctcv67 must be built by FairCom. An executable version is included in the c-treeACE
Server installation for each platform, in the Utils folder.
If the original file has an extended header, the new file inherits the extended header attributes.
This utility does not convert a huge file to a non-huge file. If a superfile host is specified, ctcv67
converts all member data files and their associated indices. When a mirrored file is specified, the
conversion does NOT produce the mirrors, but maintains the mirrored names in IFIL structures.
Copy the converted master files to produce the mirror files.
Unless a parameter file is used, a data file must have an embedded IFIL definition for its
associated indices to be converted. A data file will have an embedded IFIL definition if it was
created with one of the CreateIFile() routines or PutIFile() was called for the file.
If an index file is specified by the <old file name> parameter, then a new index file with an
extended header will be created, all the resources will be transferred to the new index, its key
length will be increased if HUGE is specified and the key supports duplicates, but no key values
will be transferred to the new file. In essence, it will be an empty index file.
The following options are available:
Optio
n
Arguments
Description
F
<yes | no>
If yes, <old file name> is a parameter file with file modes
set to ctREADFIL (8) and the second parameter (# of files)
doubled. PP ignored. Default: no
T
<yes | no>
Set to yes to output the names that will be assigned to the
converted files along with pro forma segment specifications.
This option is for information purposes only: No actual
conversion takes place. Default: no
P
<page size>
Sets the page size in bytes used to create the new files.
This setting must be compatible with the existing file.
Default: 8192
PP
<yes | no>
Set to yes to have the conversion run the Superfile prepass.
Default: no
6
<yes | no>
Set to yes to enable 6-byte transaction number support.
This option is recommended for all files using c-treeACE
Server Version 8 and later. Default: no
H
<yes | no>
Set to yes to create a huge file. Default: yes
www.faircom.com
All Rights Reserved
51
Utilities - Low Level
Optio
n
Arguments
Description
G
<new segment host file
name>
<host segment size in MB>
The new file name of a data or index file to be created as a
segmented file. Derive this name from the new path and the
file’s original name. (The T option can be used to check on
the new name assigned to a file.) Use a G entry for each
new file to be segmented.
Note: Even if the old file is segmented, segments must be
specified for the new file or it will no longer be segmented.
S
<segment name>
<segment size in MB>
This option must follow immediately after the G option for
the associated host file. Repeat this option as necessary to
create all the additional segments of the file. The segment
name will be used exactly as specified. The new path will
NOT be prepended to the name.
A
<max # auto segments
including host>
Use as many S <name> <size> entries as needed or OR
one A <max> entry for each host. The S or A entries for
each host must follow immediately after each host's G
entry.
E
<encryption method>
Specify a valid ctSETENCRYPT() mod value (see
SetEncryption). For example: ctAES32 for AES with a
32-byte key.
L
<File Extension size in
Bytes>
Note: 2GB maximum.
TP
<Temp file directory>
Defaults to .\
Example:
ctcv67 vcusti new H no G new\vcusti.ndx 10 S e:\vc.s01 10 S f:\vc.s02 0
where:
 vcusti is the existing file name.
 new is the new path.
 H no creates a normal file rather than a huge file.
 G new\vcusti.ndx 10 sets the new segment host file name to new\vcusti.ndx and the host
segment size to 10 MB.
 S e:\vc.s01 10 S f:\vc.s02 0 creates the following segments:
e:\vc.s01 with a size of 10 MB.
f:\vc.s02 with a size of 0 MB.
Ordinarily, the new path name is simply prepended to the original file name. If both have absolute
names, the new (absolute) path replaces the absolute portion of the original name. If only the
original file is absolute, the new (relative) path is inserted immediately after the absolute portion of
the original file name. Otherwise, the new path (relative or absolute) is prepended to the original
(relative) file name.
For example, to convert the data file C:\DATA\SAMPLE.DAT and its associated index,
C:\DATA\SAMPLE.IDX, into huge files with three segments of 2000 MB each, use the following
command line:
ctcv67 C:\DATA\SAMPLE.DAT C:\HUGEDATA\ H yes
G C:\HUGEDATA\DATA\SAMPLE.DAT 2000 S D:\HUGEDATA\SAMPLE.SG1 2000 S E:\HUGEDATA\SAMPLE.SG2 2000
G C:\HUGEDATA\DATA\SAMPLE.IDX 2000 S D:\HUGEDATA\SAMPLE.IS1 2000 S E:\HUGEDATA\SAMPLE.IS2 2000
www.faircom.com
All Rights Reserved
52
Utilities - Low Level
Even if the original file is segmented, the new file will not be segmented unless a new segment
definition is specified using the ‘G’ and ‘S’ options.
The associated indices are recreated based on the IFIL resource embedded in the data file or
based on the parameter file information. If the associated data file becomes huge, index files
allowing duplicate records will have their key lengths automatically increased by 4 bytes to
accommodate the longer associated position information used to break the tie. If you recall, when
allowing duplicate key values in an index, you must add 4 bytes to the key length. For huge files,
you must add a total of 8 bytes. In addition, the index file names in the IFIL definition will reflect
the new path name.
ctcv67 creates (or appends to) a text file named CV67.REP, which reports on the actions and
progress of the utility program.
5.6
ctdidx - Create flat key file
ctdidx <index file name> <index member #> <flat key file name>
This utility will run either in single user mode or with the c-treeACE Server. The c-treeACE Server
or single-user transaction processing mode is necessary to dump the keys from an index which
supports transaction processing. ctdidx creates a flat file containing each key value at full,
uncompressed length followed by the associated record position in long integer, 4-byte, form.
ctdidx reads each key in order from the index member designated, 0 for the host index, 1 for the
first member, etc., and places the keys in the flat file it creates.
5.7
ctdmpidx - Index Dump Utility
ctdmpidx is available to dump an index. This utility is useful for viewing index header details,
viewing nodes and key values. The syntax is shown below:
ctdmpidx [-<page size>] [-listkeys] <filename> <member #> [<rflg>]
The optional parameter -page size equals sector size * 128 (third parameter in InitCtree()). If
page size is not entered, a default value of 16 will be used. filename specifies the index file
targeted for analysis. The member # refers to the index member number. A physical index file can
contain one or more indices. Each index has a member number (0, 1, 2, 3, etc.). For example, the
sample index file custordr.idx provided with the FairCom ODBC Driver contains a total of two
indices. Depending on whether you specify 0 or 1 you will be looking at either the order number
index or the customer number index. rflg represents an optional recovery flag switch and is only
applicable when compiled with TRANPROC. Any character will enable rflg, which will result in
c-tree skipping automatic recovery.
The -listkeys, option is available in V10.3 and later. It lists all the key values and their associated
record offsets in an index.
Example
Below is an example of launching ctdmpidx along with output showing the header and prompt for
an index node address.
# ctdmpidx -2048 custmast.idx 0
header info for file #0
[custmast.idx]:
www.faircom.com
All Rights Reserved
53
Utilities - Low Level
configuration version:
node size:
data record length:
max bytes per leaf node:
file mode:
file type:
update flag:
key type:
duplicate flag:
# of active entries:
delete stack ptr:
last byte used:
last physical byte:
permanent file mode flags:
leaf anchor ptr:
file flavor:
key padding byte:
header record ptr:
81x
2048
0
1348
16392
1
0x
0
0
4
0x
1800x
1800x
0
1000x
2
20x
0x
index root ptr:
superfile last member#:
extend file size:
max bytes per non-leaf:
key length:
# of additional members:
index member number:
file id number:
server id number:
current node ptr:
index high transaction #:
serial number:
delete type:
superfile type:
superfile member #:
file alignment:
maximum name length:
resource header ptr:
1000x
0
0
2030
4
0
0
0
0
0x
0
0x
0
0
0
8
255
800x
Enter node address in hex: 1000
NODE: 1000x
trans active:
predecessor node:
successor node:
# of entries:
# of bytes:
leaf flag:
member #:
element
1
5.8
offset
101fx
2
105ex
3
1099x
4
10d9x
no
0x
0x
4
32
1 (0 => non-leaf / 1 => leaf)
0
key value
31303030
1 0 0 0
31303031
1 0 0 1
31303032
1 0 0 2
31303033
1 0 0 3
ctflat - Create c-treeACE file from a flat file
Usage
ctflat <flat file> <new file> <record length> [<file mode> <ext size>]
Description
ctflat creates a c-treeACE fixed-length data file from an existing flat file with the specified record
length. Optionally, you can specify the file mode to use when creating the file. For example, to
enable transaction processing and the file size extension parameter.
ctflat assumes that the flat file begins at offset zero and has the record length indicated on the
command line. You can modify the source to make it more appropriate for your specific
circumstances.
www.faircom.com
All Rights Reserved
54
Utilities - Low Level
5.9
ctflvrfy - Index Verify Utility
Usage
ctflvrfy <filename.idx>
Description
The Index Verify utility, ctflvrfy, takes an index name as the parameter and calls the ctVERIFY()
and chkidx() functions to allow the user to verify and index, and optionally inspect it at a
low-level.
C:\ctree\utils\>ctflvrfy custmaster.idx
Verifying file [custmaster.idx]
Retrying open with sect of [8]
Retrying open with sect of [12]
Retrying open with sect of [16]
Retrying open with sect of [20]
Retrying open with sect of [24]
Retrying open with sect of [28]
Retrying open with sect of [32]
Retrying open with sect of [36]
Retrying open with sect of [40]
Retrying open with sect of [44]
Retrying open with sect of [48]
Retrying open with sect of [52]
Retrying open with sect of [56]
Retrying open with sect of [60]
Retrying open with sect of [64]
Verifying the host index
Verifying index delete stack...
Verifying index links...
Verifying index leaf nodes...
Index page scan finds entries=75 header=75
Index nodes per level of tree structure - [0: 1]
( 2 resource pages )
Internal Index Verify: SUCCESSFUL
The return of ctVERIFY = 0, 75 KEYS FOUND
Verifying member index #1
Verifying index delete stack...
Verifying index links...
Verifying index leaf nodes...
Index page scan finds entries=75 header=75
Index nodes per level of tree structure - [0: 1]
( 2 resource pages )
Internal Index Verify: SUCCESSFUL
The return of ctVERIFY = 0, 75 KEYS FOUND
Verifying member index #2
Verifying index delete stack...
www.faircom.com
All Rights Reserved
55
Utilities - Low Level
Verifying index links...
Verifying index leaf nodes...
Index page scan finds entries=75 header=75
Index nodes per level of tree structure - [0: 1]
( 2 resource pages )
Internal Index Verify: SUCCESSFUL
The return of ctVERIFY = 0, 75 KEYS FOUND
Verifying member index #3
Verifying index delete stack...
Verifying index links...
Verifying index leaf nodes...
Index page scan finds entries=75 header=75
Index nodes per level of tree structure - [0: 1]
( 2 resource pages )
Internal Index Verify: SUCCESSFUL
The return of ctVERIFY = 0, 75 KEYS FOUND
Verifying member index #4
Verifying index delete stack...
Verifying index links...
Verifying index leaf nodes...
Index page scan finds entries=75 header=75
Index nodes per level of tree structure - [0: 1]
( 2 resource pages )
Internal Index Verify: SUCCESSFUL
The return of ctVERIFY = 0, 75 KEYS FOUND
Verifying member index #5
Verifying index delete stack...
Verifying index links...
Verifying index leaf nodes...
Index page scan finds entries=38 header=38
Index nodes per level of tree structure - [0: 1]
( 2 resource pages )
Internal Index Verify: SUCCESSFUL
The return of ctVERIFY = 0, 38 KEYS FOUND
Verifying member index #6
Internal Index Verify: no tree structure
The return of ctVERIFY = 0,
Verifying member index #7
0 KEYS FOUND
Verifying index delete stack...
Verifying index links...
Verifying index leaf nodes...
www.faircom.com
All Rights Reserved
56
Utilities - Low Level
Index page scan finds entries=75 header=75
Index nodes per level of tree structure - [0: 1]
( 2 resource pages )
Internal Index Verify: SUCCESSFUL
The return of ctVERIFY = 0, 75 KEYS FOUND
Verifying member index #8
Verifying index delete stack...
Verifying index links...
Verifying index leaf nodes...
Index page scan finds entries=16 header=16
Index nodes per level of tree structure - [0: 1]
( 2 resource pages )
Internal Index Verify: SUCCESSFUL
The return of ctVERIFY = 0, 16 KEYS FOUND
Verifying member index #9
Verifying index delete stack...
Verifying index links...
Verifying index leaf nodes...
Index page scan finds entries=75 header=75
Index nodes per level of tree structure - [0: 1]
( 2 resource pages )
Internal Index Verify: SUCCESSFUL
The return of ctVERIFY = 0, 75 KEYS FOUND
Verifying member index #10
Verifying index delete stack...
Verifying index links...
Verifying index leaf nodes...
Index page scan finds entries=75 header=75
Index nodes per level of tree structure - [0: 1]
( 2 resource pages )
Internal Index Verify: SUCCESSFUL
The return of ctVERIFY = 0, 75 KEYS FOUND
Verify complete......
Do you wish to perform a low-level tree walk? (Y/N):
5.10
n
ctindx - Create index file from flat key file
Usage
ctindx <flat key file> <index file> <index member> [<transformation file>]
Description
This utility runs in single user mode. It supports indices requiring transaction processing. The
index file must already exist, and the index member (0 for the host index, 1 for the first additional
index member, etc.) must be empty. The key length of the index member is used to deduce the
www.faircom.com
All Rights Reserved
57
Utilities - Low Level
key length of the flat file. You can optionally specify a transformation file specifying how to
transform each key value before entry into the index file.
The optional transformation file is a text file similar to an ISAM parameter file formed as follows:
<# of segments>
<offset> <length> <mode>
... repeated for each segment ...
An offset of zero corresponds to the first byte of the key value stored in the flat key file. The
length dictates how many bytes are affected by the transformation. The mode is interpreted as
shown in “Key Segment Mod (http://www.faircom.com/doc/ctreeplus/30863.htm)es” in the
c-treeACE Programmer's Reference Guide (http://www.faircom.com/doc/ctreeplus/30863.htm).
5.11
ctpkey - Print key utility
Usage
ctpkey <parameter file name> [<# of entries>]
Description
ctpkey prints out 1 or more key value(s), up to the optional # of entries, from each index file in the
parameter file, showing how each key segment is defined. The keys are displayed in hex and
ASCII. This utility will run in all modes of operation. It is useful if you are having trouble retrieving
data. ctpkey will allow you to see how a key value is constructed from the data.
By changing a #define, ctpkey.c can be changed from a main line program to the callable function
ctpkey(), with the same parameters as OpenIFileXtd().
5.12
ctpotp - Parameter to OTP conversion
Usage
ctpotp <parameter file name> [<user profile bitmask>]
Description
This utility takes a parameter file and produces the corresponding OTP file(s) used by the
FairCom Drivers. If no record schema (DODA) is present, a dummy schema is created.
5.13
ctptoi - Parameter to IFIL conversion
Usage
ctptoi <parameter file name> [<user profile bitmask>]
Description
This utility opens the parameter file whose name is specified as a command-line argument and
writes an IFIL (based upon the parameter file definitions) to each data file referenced in the
parameter file. ctptoi is designed for use as a standalone non-server utility.
Note: Before running ctptoi, be sure your files have been created and are in the proper path
location as specified in the parameter file being passed into the ctptoi utility.
www.faircom.com
All Rights Reserved
58
Utilities - Low Level
5.14
ctrbld - Parameter file rebuild utility
Usage
ctrbld <parameter file name> [ -updateidx ] [ -autopurge ]
Description
ctrbld verifies the deleted space in the data file and completely recreates, in place, any
companion index files. If the index file(s) do not exist, they are created.
CTRBLD can only be used on a superfile if the superfile has first been processed by ctsbld,
which performs a necessary pre-pass. When ctsbld completes, the data file members are in
good form, but the index files are empty. ctrbld, ctindx, or RebuildIFile() can recreate the index
file contents. ctrbld returns a non-zero status code via the system exit to permit invoking from a
shell script and testing for possible errors.
Specify -updateidx to delete the existing indices and re-create the new indices using the index
definitions provided in the parameter file. To implement this feature, enable the
DO_IDX_HEADER_UPDATE define in ctrbld.c. Without -updateidx, ctrbld fails when it detects a
discrepancy between the properties of existing indices and the index properties as defined in the
parameter file, returning KMEM_ERR (23).
Executing ctrbld with -autopurge causes the rebuild to automatically purge records with duplicate
keys. A purge log will be generated.
DEPRECATED as of V7. Please use the enhanced ctrbldif - IFIL-based Rebuild Utility (page 11).
See also File Recovery.
5.15
ctsfil - Superfile contents
Usage
ctsfil <superfile name>
Description
ctsfil lists the members of the superfile, indicating whether each member is an index file,
fixed-length data file, or variable-length data file.
5.16
ctunf1 - File Reformatting Utility
Usage
ctunf1 <file name> <new alignment> <new flavor> <confirm> <binflag> [<files>]
www.faircom.com
All Rights Reserved
59
Utilities - Low Level
Description
ctunf1 reformats a file IN PLACE provided the new alignment restriction does not cause the data
record contents to become misaligned. Therefore, FairCom strongly encourages ctunf1 be used
only on a copy of your data. ctunf1 takes the place of the UNIFRMAT compile time option; plus it
handles data record contents if record definitions have been provided (DODA). ctunf1 is used to
port data between different machine architectures.
ctunf1 uses record definitions, if present, to convert the contents of the data records. A record
definition is stored as a resource in a data file using the PutDODA() function. In general, the
contents of resource records will NOT be converted. Therefore, if you intend to port your files,
take care with the resources you directly maintain yourself to ensure they are system
independent. However, the resources pertaining to file and record definitions and index
alternative collating sequences maintained by FairCom will have their contents automatically
converted by ctunf1.
<file name> requires the file extension. For example, to convert a file named cust.dat from Intel to
a SPARC platform, issue the following:
ctunf1 cust.dat 4 m
Parameter
Description
alignment
1 (byte)
2 (word)
4 (double word)
8
flavor
L (LSB first, e.g., 8086 form)
M (MSB first, e.g., 68000 form)
confirm
Y convert file without prompting to continue
binfllag
optional c-treeDB binary field attribute
B2 binary field data contains length count
B3 binary field data does not contain length count
files is the optional maximum number of files to open. ctunf1 defaults to 32 files, which should be
sufficient for most purposes.
ctunf1 runs in single user mode only. It supports data files, index files and superfiles, and must
be executed before the file is moved to the target machine.
In V11, a case was added for handling FCRES_ATTR resource type. Prior to that release, the
ctunf1 utility failed with DCNV_ERR (439) error on FAIRCOM.FCS.
www.faircom.com
All Rights Reserved
60
Utilities - Low Level
5.17
ctupdpad - Update the c-treeDB Pad Resource Utility
When importing an ISAM data file into a c-treeSQL database, the c-treeSQL import utility,
ctsqlimp, allows specifying the padding and delimiter characters used to pad string fields in a
data file. The c-tree Update Pad Resource Utility, ctupdpad, provides a way to change the
padding and delimiter characters in the c-treeDB padding resource.
Syntax
The usage of this utility is as follows:
ctupdpad [options] table-name pad-char delimiter-char
Options are any combination of the following:
-s server-name [Default: FAIRCOMS]
-u user-name
[Default: ADMIN]
-p password
[Default: ADMIN]
The pad-char and delimiter-char values are specified with their corresponding ASCII code values.
Examples
 To set the pad char to space and delimiter to space:
ctupdpad table.dat 32 32
 To set the pad char to space and delimiter to nul:
ctupdpad table.dat 32 0
 To set the pad char to nul and delimiter to nul:
ctupdpad table.dat 0 0
5.18
ctvfyidx - Index Verify Utility
The ctvfyidx utility uses the ctVERIFYidx() function to check the integrity of an index file. The
client version of the ctvfyidx utility supports the command-line options listed below.
Usage
ctvfyidx [<option> ...] [-u <userid>] [-p <password>] [-s <servername] <file name> [<member #>]
where <option> is one or more of the following:
 -excl - Open the file in exclusive mode
 -delstk - Check delete stack (on by default)
 -link - Check links (on by default)
 -leaf - Check leaf nodes (on by default)
 -chkkey - Check keys in leaf nodes
The optional parameter -page size equals sector size * 128 (third parameter in InitCtree()). If
page size is not entered, a default value of 16 will be used. filename specifies the index file
targeted for analysis. The member # refers to the index member number. A physical index file can
www.faircom.com
All Rights Reserved
61
Utilities - Low Level
contain one or more indices. Each index has a member number (0, 1, 2, 3, etc.). For example, the
sample index file custordr.idx provided with the FairCom ODBC Driver contains a total of two
indices. Depending on whether you specify 0 or 1 you will be looking at either the order number
index or the customer number index. rflg represents an optional recovery flag switch and is only
applicable when compiled with TRANPROC. Any character will enable rflg, which will result in
c-tree skipping automatic recovery.
In V10.3.1 and later, the ctvfyidx utility defaults to ctREADFIL. It uses ctEXCLUSIVE when
the -excl option is specified. A ctREADFIL open will fail with error 12 and sysiocod -8 if any
connection has the file open for write access.
In versions prior to V10.3.1, ctvfyidx will only work with the -excl option when connecting to
newer servers. Without the -excl option, older versions of ctvfyidx will fail with LERR_ERR.
Example
Below is an example of launching ctvfyidx along with output showing the results of the index
verification.
# ctvfyidx -2048 custmast.idx 0
Index page scan finds entries=4 header=4
Index nodes per level of tree structure - [0: 1]
Internal Index Verify: SUCCESSFUL
5.19
ctvfyfil - File Verify Utility
The ctvfyfil utility calls the ctVerifyFile() function. The utility can be run in standalone and in
client/server mode.
Usage
ctvfyfil [<option> ...] <file name>
where <option> is one or more of the following:
 -chkdat - Read data file only (default)
 -chkdatkeys - Read data file and check keys in index
 -chkidx - Read index file
 -chkidxrec - Read index file and check records in data file
 -excl - Open the file in exclusive mode
 -int - Interactive mode: stop on each error
 -index=<N> - Check only the Nth index (N=1,2,...)
Standalone Usage
An additional option is available for standalone use:
 -<page size> - Use the specified page size (standalone only)
The example below shows the utility called standalone on a file called mark.dat with the page size
set to 8192:
ctvfyfil -8192 mark.dat
www.faircom.com
All Rights Reserved
62
Utilities - Low Level
www.faircom.com
All Rights Reserved
63
6.
Utilities - Standalone
These standalone utilities are located in the following folder:
All tools:
All command-line tools:
All administrative tools:
Client-side administrative tools
Standalone administrative tools
All other utilities:
Client-side utilities
Low-level utilities
Standalone utilities
tools\cmdline\utils\standalone
Note: The exact set of tools and utilities and their directory structure depends on the FairCom
product you have installed.
6.1
ct_ver - Display c-treeACE version that created file
You can run the ct_ver utility to determine what version of c-treeACE was used to create your
data file.
Usage:
ctver <filename>
Where:
 <filename> - The name of the file to be checked.
6.2
ctchkbin - Checking for affected tables
Execute the ctchkbin utility to scan an entire server or a single database for tables that may be
affected by the binary/varbinary issue. The syntax of ctchkbin is as follows:
ctchkbin.exe [-f] [-s server] [-u username] [-a password] [-d database]
www.faircom.com
All Rights Reserved
64
Utilities - Standalone
Where:
 -f - Output only tables that fail check
 -d database - Scan database. Default: ctreeSQL
 -d ALL - Scan all databases in session.
 -s server name - Default: FAIRCOMS
 -u user name - Default: ADMIN
 -a user password - Default: ADMIN
Example
ctchkbin.exe –s FAIRCOMS –u ADMIN –a ADMIN –d ctreeSQL
The ctchkbin utility output to the screen the result of the check scan, printing one table per line,
with the following columns:
database table status comments
Where:
 database - database name
 table - table name
 status - status code of the check performed on table (please see code listing in the following
section)
 comments - brief comments if table fail scan
Example output
ctreeSQL
ctreeSQL
ctreeSQL
ctreeSQL
ctreeSQL
ctreeSQL
ctreeSQL
ctreeSQL
6.3
admin_tb1 0
admin_tb11 0
admin_tb12 0
admin_tb13 3 User may choose CTDB_BINARY_WITH_LENGTH or CTDB_BINARY_WITHOUT_LENGTH
admin_tb14 3 User may choose CTDB_BINARY_WITH_LENGTH or CTDB_BINARY_WITHOUT_LENGTH
admin_tb2 0
admin_tb3 0
admin_tb4 0
ctclntrn Utility - Clean Transaction Mark
Usage
ctclntrn [-<page size in bytes>] <file name> [<password>]
Description
ctclntrn “cleans” the high-water transactions marks within a c-treeACE index.
Suggested Steps for Successful Clean and Reset
In the event of an impending transaction number overflow, the server administrator should follow
these steps to restart transaction numbering:
1. Perform a clean c-treeACE shutdown.
2. Delete the transaction logs and housekeeping files: files S0000000.FCS, S0000001.FCS,
D*.FCS, I*.FCS, and L*.FCS.
www.faircom.com
All Rights Reserved
65
Utilities - Standalone
3. Use the ctclntrn utility to clean all indices (which resets the transaction numbers in the leaf
nodes and index header) used by your application, including your application index files,
superfiles, variable-length data, and c-tree Server files including the following if present:
• FAIRCOM.FCS -- If you are not using any User IDs or passwords other than ADMIN and
GUEST, you can simply delete this file. (If you do delete this file, tc-treeACE will re-create
it with the single user ADMIN and password ADMIN.)
• CTSYSCAT.FCS -- This is only present if you are using c-tree ODBC Drivers.
• SEQUENCEIX.FCS
• SYSLOGIX.FCS
• SYSLOG*.FCS
• ALL c-treeACE SQL Database Dictionaries
 <databasename>.dbs/SQL_SYS/<databasename>.fdd
 ctdbdict.fsd (session dictionary)
4. Restart the c-tree Server.
The server will create new transaction logs and start transaction numbering from 1 again.
It is important to run ctclntrn on all files. If you miss any files and later open that file with a large
transaction number in its header, the server will again increase its transaction number to that
large value. You will need to repeat this procedure should that occur.
FYI: The ctclntrn utility uses the CleanIndexXtd() c-treeACE function. This function cleans any
leaf nodes of exceptional transaction marks and resets the transaction high-water mark in the
header to zero. This avoids rebuilding the entire index file.
You can use the c-tree High-water Mark Utility, cthghtrn, to verify that the transaction high-water
marks in the files are back to zero, or other reasonably low number.
Tip: The AUTO_CLNIXX YES configuration option can help automate and detect files which
have been missed.
See also
 cthghtrn - Displays the high-water mark for transactions (page 39,
http://docs.faircom.com/doc/ctreeplus/#31083.htm)
6.4
ctcmpcif - IFIL-based Compact Utility
Standalone Usage
# ctcmpcif DataFileName [-purge] [-updifil]
[-temppath=<temporary_path>] [-<sectors>] [-compress] [-nocompress]
Where:
 -<sectors> - The sector size to use. The sector parameter is especially useful if you need to
adjust a file’s PAGE_SIZE to match the c-treeACE Server.
 -purge - Delete records that have illegal duplicate key values.
 -temppath=<temporary_path> - Use the specified directory for temporary files.
 -updifil - Update IFIL resources in the data file.
www.faircom.com
All Rights Reserved
66
Utilities - Standalone
 -sortmem=<N> - Set the size of sort memory to N KB in non-client builds. This option can be
used to increase the rebuild speed for large files.
 -redosrl - Reassign serial numbers to the records in the compacted file instead of copying the
values from the original file.
 -compress - Create the compacted data file with compression (defaults to zlib library if not
specified in server configuration).
 -nocompress - Create the compacted data file without compression.
 -x8 - Use extended create blocks read from data and index files.
 -idxseg=<M>@<S> - If creating an index, use M automatic segments of size S. Size is
specified in megabytes, or you can specify MB or GB as a suffix. (Example:
-idxseg=10@1GB)
 -encrypt=cipher - Create the compacted file using the specified cipher. See the encryption
sections below.
Accepted values:
• CAMO, camo:KEY_VALUE
• AES: aes16, aes24, or aes32
• Blowfish: blf8, blf9, ..., or blf56
• DES: des8, des16, or des24
• none
 -oldsec - Use the utility's original security attribute assignment.
Client-Side Usage
# ctcmpcif DataFileName [-purge] [-updifil] [<UserId>]
[<UserPassword> [<ServerName>]]
Where:
 -purge - purge duplicate records.
 -updifil - update IFIL resources in the data file.
UserID, UserPassword, and ServerName are only needed for client versions of this utility.
FairCom recommends building this utility as a Single-user Standalone application.
ctcmpcif reads the IFIL structure from DataFileName and calls CompactIFileXtd() and
RebuildIFileXtd() to compact and rebuild DataFileName and its associated indices. If ctcmpcif
cannot extract the IFIL from the target file, it will ask for the name of another copy of the file from
which to extract the IFIL information.
Prior to c-treeACE V9.3, several option values were defined such as updateIFIL, purgeIFIL, and
badpartIFIL, that can be specified. These values are specified by adding them together. For
example: myifil.tfilno = updateIFIL + purgeIFIL. A new approach simplifies checking of these
options. The following option values are now specified in ctport.h:
#define
#define
#define
#define
updateIFILoption
purgeIFILoption
badpartIFILoption
redosrlIFILoption
0x0002
0x0004
0x0008
0x0010
These values can now be OR-ed together and the negative of the result stored in the tfilno field of
the IFIL structure passed to the compact or rebuild function. For example, to indicate that you
want to assign new serial numbers, do the following:
www.faircom.com
All Rights Reserved
67
Utilities - Standalone
myifil.tfilno = -redosrlIFILoption;
CMPIFIL(&myifil);
If you want to also use more than one option when compacting or rebuilding a file, OR them in to
the value and negate the result. For example,
/* assign new serial numbers and update IFIL resource. */
myifil.tfilno = -(redosrlIFILoption | updateIFILoption);
CMPIFIL(&myifil);
Note: This tool does not compact partitioned files. If you attempt to compact a partitioned file, the
tool will return PCMP_ERR (954, compacting partitioned file not supported).
Changing Encryption Attributes
In V11 and later, the compact utility can optionally change the encryption attributes. To use this
option, OR in the setencryptIFILoption bit into the tfilno field of the IFIL structure whose address
you pass to the compact API function. When using this and other options, remember to negate
the tfilno value after you OR in the options. For example:
myifil.tfilno = -(redosrlIFILoption | setencryptIFILoption);
CMPIFIL(&myifil);
Specifying the Encryption Cipher
In V11 and later, the ctcmpcif utility supports an option to specify the encryption cipher for the
data and index files created by the compact operation. Usage:
-encrypt=cipher - Create the compacted file using the specified cipher:
• for AES, use aes16, aes24, or aes32
• for Blowfish, use blf8, blf9, ..., or blf56
• for CAMO, use camo:MY_ENCRYPTION_KEY
• for DES, use des8, des16, or des24
• for Twofish, use twf16, twf24, or twf32
• for no encryption, use none
Note: If an index file does not exist, the original data file's encryption attributes are used
when creating that index file.
To change the encryption attributes of a file using the compact API function, you must add
the option CHANGE_ENCRYPTION_ON_COMPACT YES to ctsrvr.cfg. Otherwise, the operation
fails with error NSUP_ERR (454, not supported).
Considerations
 Even without the -x8 option, some extended create block settings such as the huge file,
extended header, and 6-byte transaction number options, are always applied to new files.
 The -x8 option requires all associated index files that are referenced in the data file's IFIL
structure to exist, as the utilities use OpenIFile() to open the data file and all associated index
files to read the extended create block values.
When an application calls the standalone version of the Xtd8 file compact or rebuild functions (for
example, CMPIFILX8() or RBLIFILX8()), index files created by the compact or rebuild no longer
have the 6-byte transaction number attribute enabled if the specified extended create block's
x8mode field has the ctNO6BTRAN bit set.
www.faircom.com
All Rights Reserved
68
Utilities - Standalone
 A rebuild or compact will fail with the new error code TFLN_ERR (943) when a client library
that supports the new rebuild or compact option format attempts to use this feature with a
c-treeACE Server that does not support this new format.
 In V11 and later, the compact and rebuild API functions preserve the original files' encryption
attributes by default. If the index files don't exist when compact/rebuild are called, they will be
created with the data file's encryption attributes.
 In V11 and later, the compact utility always deletes and recreates the index files after saving
the resources from the original index file. This provides the expected behavior of (possibly)
reducing the size of the index file.
See also File Recovery.
Updates in handling of security attributes
In V10.3 and later, the ctrbldif utility assigns data file owner/group/permissions to index files and
ctcmpcif assigns original data file owner/group/permissions to compacted data/index files.
The rebuild and compact utilities now read the permission mask, owner, and group settings from
the original data file and after the rebuild or compact is completed, the utilities assign these same
attributes to the new files. It is desirable for the newly rebuilt or compacted files to preserve the
original security attributes as much as possible and the index file security attributes should match
the data file security attributes.
A command-line option has been added to the utilities to restore the previous security attribute
behavior. Use the -oldsec option to cause the rebuild and compact utilities to set the security
attributes as they did before this revision. For example:
ctrbldif mark.dat -oldsec ADMIN ADMIN FAIRCOMS
The -oldsec option can be used if rebuild and compact are failing with error 455 (user does not
belong to group) if you delete an index then run the rebuild or compact utility on the data file using
a user account that does not belong to the group that is assigned to the data file.
Note: These changes only apply to the client and server versions of these utilities. Setting the
security attributes is not supported in standalone mode, so the standalone rebuild and compact
utilities behave as follows:
1) When the standalone mode rebuild utility creates new index files instead of reusing the new
index files (for example if the original index files have been deleted before running the rebuild
utility), the new index files are assigned a permission mask of zero (no restrictions on
permissions), and the owner and group are unassigned (empty).
2) The standalone mode compact utility always preserves the security attributes of the data file. If
the index files do not exist, the newly-created index files are assigned the same values as the
standalone rebuild does when it creates new index files.
www.faircom.com
All Rights Reserved
69
Utilities - Standalone
6.5
ctencrypt - Utility to Change Master Password
The c-treeACE advanced encryption feature uses a master password to encrypt the file-specific
advanced encryption key in c-tree data, index, and transaction log files that are encrypted using
advanced encryption. ctencrypt is a standalone utility that can be used to change this master
password for specified c-tree data, index, and transaction log files.
Usage
ctencrypt <options> <command>
Available Options:
 -n <sect> - Node sector size. The default is 64, which corresponds to PAGE_SIZE of 8192.
Available Commands (only one at a time may be specified):
 -chgmpw <filelist> - Change master password for the files whose names are listed in the file
<filelist>. <filelist> is the name of a text file created by the end user that lists the names of the
files (data and index), one per line, that are to be processed.
ctencrypt requires a password verification file named ctsrvr.pvf that was created using the
current master password to exist in its working directory. ctencrypt prompts the user for the
current master password and for the new master password (prompting twice in order to confirm
that the new password was properly entered).
Note: ctencrypt does not change the master password file, ctsrvr.pvf. The ctcpvf utility will need
to create a new file for server startup in coordination with the new password used to re-encrypt
the encryption key for the files. Failure to do so will result in DCOD_ERR errors (606, failure to
decode file) when opening files.
ctencrypt processes the specified files, indicating the status of each file and the total of
successful and failed operations. Note that the c-treeACE Server must be shut down while these
file modifications take place.
ctencrypt creates a temporary directory named temp\ctencrypt.tmp.<process_id> to store its
transaction logs. This directory is normally deleted when ctencrypt shuts down.
Important: ctencrypt does not undo any changes in case of error. The files that it lists as
successfully updated will use the new master password even if the utility failed to update other
files.
Example File List
A semicolon can be specified at the start of a line to indicate a comment which is ignored.
; c-treeACE Advanced Encryption Conversion Listing File
; ----------------------------------------------------; Created Wed Dec 01 01:38:00 2010
; transaction log files
L0000000.FCT
L0000002.FCA
L0000003.FCA
L0000004.FCA
L0000005.FCA
L0000006.FCS
L0000007.FCS
www.faircom.com
All Rights Reserved
70
Utilities - Standalone
L0000008.FCS
L0000009.FCS
L0000010.FCT
; data files
mydatafile.dat
C:\My Documents\test.dat
vcusti
Note: All physical encrypted files, data and index files, must be specified in order to be modified.
No attempt is made to determine associated files.
If the server was cleanly shutdown in such a manner that its transaction logs are no longer
necessary, then they will not need to be included as part of this password change. If you wish to
use the ctencrypt utility to modify any existing encrypted transaction logs (for example, archive
logs for replication), their names must be specified in the list file. ctencrypt does not attempt to
locate any transaction log files on its own.
Example Output
c-tree file encryption utility
This utility requires a master password in order to start.
Please enter master password:
Enter new master password
:
Confirm new master password :
Changing master password for the specified files...
[
[
[
[
[
[
[
[
[
[
[
[
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
]
]
]
]
]
]
]
]
]
]
]
]
SYSLOGDT.FCS
vcusti
L0000000.FCT
L0000002.FCA
L0000003.FCA
L0000004.FCA
L0000005.FCA
L0000006.FCS
L0000007.FCS
L0000008.FCS
L0000009.FCS
L0000010.FCT
12 succeeded, 0 failed
Successfully changed master password for all specified files
Error Returns
Two new error codes have been added related new password management features:
 BMPW_ERR (932) - The specified encryption master password is incorrect.
 ICOD_ERR (933) - An encryption operation failed due to an unexpected internal error. See
CTSTATUS.FCS for details.
www.faircom.com
All Rights Reserved
71
Utilities - Standalone
6.6
ctfdmp - Forward Dump Utility
ctfdmp
Used to restore data to a given time following a ctrdmp restore.
ctfdmp takes an !RP <name> argument to set the point in time to stop the forward roll. This
argument is also used by the ctrdmp script option, as described in Rollback to New Restore
Points with ctrdmp. To incrementally roll forward from there, rename the previous
RSTPNT_CHKPNT*.FCS to S0000001.FCS (the start point for the ctfdmp), and supply a new
!RP and transaction logs.
Note: The ! prefix needs to be escaped when using the Unix Bash shell.
In V11 and later, the ctfdmp, ctldmp, and ctrdmp utilities display the c-treeACE version used to
compile them when they are run.
Environment Variable for Advanced Encryption Password
If this utility has advanced encryption enabled, it can read an encrypted password file instead of
being prompted to enter the master password. To enable this, set the environment variable
CTREE_MASTER_KEY_FILE to the name of the encrypted master password file.
See also
 Maintaining Database Integrity (http://docs.faircom.com/doc/ctserver/8373.htm) in the c-tree
Server Administrator's Guide
 ctrdmp - Dynamic Dump Recovery or System Rollback (page 77)
 Rollback to New Restore Points with ctrdmp
www.faircom.com
All Rights Reserved
72
Utilities - Standalone
6.7
ctfileid - Update File IDs
The Update File ID utility, ctfileid, provides a convenient and safe way to update the fileid
parameter of the file header. See the section Copying Server Controlled Files in the c-treeACE
Programmer's Reference Guide (http://www.faircom.com/doc/ctreeplus/29354.htm) for details for
when this may be necessary. The file is opened exclusively, ensuring that the server does not
have it open. The syntax for this utility is shown below:
ctfileid
file [-ioq] [-n <size>] [-s <svn>] [-u <uid>] [-p <upw>]
 -i - Also update indices related to data file.
 -o - Force open of corrupted files (ctOPENCRPT).
 -q - Quiet (do not output to stdout).
 -s <server name> - c-treeACE Server name.
 -u <user ID> - User name.
 -p <user password> - User password.
Note: ctfileid.c is located in ctree\samples\special\utils and replaces the previous informal and
undocumented utilities, updateid.c and newid.c.
Standalone Usage
An additional option is available to set the node size in standalone mode:
 -n <size> - Set node size (stand-alone only).
6.8
ctfixbin - Fixing Affected Tables
Based on the output of the ctchkbin utility, execute the ctfixbin utility on a particular table to set
the binflag property of CT_ARRAY and CT_2STRING fields to the appropriate value.
The syntax of ctfixbin is:
ctfixbin.exe table_name action [-s server] [-u username] [-a password] [-d database]
 table_name is the name of a table to fix (without the .dat extension)
 action is one of the following:
•
1 - set binflag to CTDB_BINARY_UNKNOWN
•
2 - set binflag to CTDB_BINARY_WITHOUT_LENGTH
•
3 - set binflag to CTDB_BINARY_WITH_LENGTH

-d database - Scan database. Default is ctreeSQL

-s server - Default is FAIRCOMS

-u username - Default is ADMIN

-a password - Default is ADMIN
Example
ctfixbin.exe admin_tb13 2 –s FAIRCOMS –d ctreeSQL –u ADMIN –a ADMIN
www.faircom.com
All Rights Reserved
73
Utilities - Standalone
6.9
ctidmp - Examine Dump Files
Usage
ctidmp [dump file name]
Description
The ctidmp utility lists the contents of a dynamic dump file or a specific extent of a dump broken
into multiple files with the !EXT_SIZE keyword. Compile and link this utility with a c-treeACE
Standalone Single-user TRANPROC library.
6.10
ctinfo - ISAM File Info
Usage
ctinfo FileName [-isam] [-rdkeys] [<UserId> [<UserPassword> [<ServerName>]]]
Description
ctinfo retrieves IFIL and DODA structures from a c-treeACE file as well as XCREblk extended
header information if available. This utility is useful in both client-server and standalone mode.
 -isam - Open the specified data file in ISAM mode (V10.3 and later). See below.
 -rdkeys - If this option is enabled, ctinfo opens the data file and associated indexes at the
ISAM level instead of performing a low-level open, which avoids FRSKEY error: 26. Without
this opion, ctinfo does not cause c-treeACE Server to log replication diagnostics; an ISAM
level file open used by -rdkeys will cause the details to be logged
Note: The ISAM open requires the index files to exist and to be accessible, unlike the
low-level open which requires only the data file to exist.
In V10.3 and later, the ctinfo utility displays the owner, group, and permissions for the specified
file. Example output:
File owner
File group
Permission mask
= ADMIN
= ADMIN
= 0x85e = {
owner: read write def delete
group: read
world: read
}
In V10.3 and later, the ctinfo -isam option causes the utility to open the specified data file in
ISAM mode. This option is useful for checking if a REPLICATE keyword enables replication for
the file.
In V11 and later, the ctinfo utility outputs the header record for fixed-length files or the header
key count for each logical index. For example:
Header Count
4776 keys in index 0
4776 keys in index 1
4776 keys in index 2
www.faircom.com
All Rights Reserved
74
Utilities - Standalone
6.11
ctldmp - Transaction Log Dump
Usage
ctldmp [ DATE mm/dd/yyyy ] [ TIME hh:mm:ss ] [ LOG number ]
Performs a partial dump of the transaction logs to assist the developer in problem resolution.
See also
 Maintaining Database Integrity (http://docs.faircom.com/doc/ctserver/8373.htm) in the c-tree
Server Administrator's Guide
6.12
ctrbldif - IFIL-based Rebuild Utility
Usage
A rebuild utility using the IFIL definitions stored in the header of a file:
ctrbldif DataFileName [ -x8 ] [ -purge ] [ -updifil ] [ -<sectors> ]
[ -temppath=<temporary_path> ] [ -sortmem=<n> ]
[ <UserId> ] [ <UserPassword> ] [ <ServerName> ]
Description
ctrbldif reads the IFIL structure from DataFileName and calls RebuildIFileXtd() to rebuild
DataFileName and its associated indices.
 -purge - Purge duplicate records.
 -updifil - Update the IFIL resource within the data file.
 -sortmem=<N> - Use N KB of memory for sorting. This option can be used to increase the
rebuild speed for large files.
 -x8 - Use extended create blocks read from data and index files.
 -idxseg=<M>@<S> - If creating index, use M automatic segments of size S. Size is specified
in megabytes, or you can specify MB or GB as a suffix. For example: -idxseg=10@1GB
c-treeACE Standalone Options
 -temppath= - directory path, <temporary_path>, to create temporary sort and purged record
files. (This standalone option is the equivalent of the TMP_PATH server configuration option.)
The default location is the current directory.
 -<sectors> - sector size, <sectors>. (in multiples of 128). The sector parameter is especially
useful if you need to adjust a file’s PAGE_SIZE (index node size) to match the c-treeACE
Server. c-treeACE standalone models default to 16 sectors (2048 byte node size) while the
c-treeACE Server defaults to 64 sectors (8192 bytes).
c-treeACE Server Options
 <UserID> : client user name to logon to a c-treeACE Server.
 <UserPassword> : client user password to authenticate to a c-treeACE Server.
 <ServerName> : c-treeACE Server name for a client to connect.
www.faircom.com
All Rights Reserved
75
Utilities - Standalone
Considerations
 Even without the -x8 option, some extended create block settings such as the huge file,
extended header, and 6-byte transaction number options, are always applied to new files.
 This option requires all associated index files that are referenced in the data file's IFIL
structure to exist, as the utilities use OpenIFile() to open the data file and all associated index
files to read the extended create block values.
 When an application calls the standalone version of the Xtd8 file compact or rebuild functions
(for example, CMPIFILX8() or RBLIFILX8()), index files created by the compact or rebuild no
longer have the 6-byte transaction number attribute enabled if the specified extended create
block's x8mode field has the ctNO6BTRAN bit set.
 A rebuild or compact will fail with the new error code TFLN_ERR (943) when a client library
that supports the new rebuild or compact option format attempts to use this feature with a
c-treeACE Server that does not support this new format.
Option to set index's automatic segment attributes
If a segmented index file was deleted and rebuilt using the ctrbldif utility or the rebuild API
function, the new index file was not segmented. The index file's segment attributes, which are
stored in the index file, were lost when the index file was deleted.
Beginning with V10.3, an option is provided with the rebuild and compact utilities that causes
index files that are created by the utilities to be created using automatic segments of the specified
size and maximum. The option is:
-idxseg=M@S
where M is the maximum number of segments and S is the segment size. S is interpreted as
megabytes by default. Two suffixes, MB and GB, are also supported. MB indicates that the value
is in megabytes and GB indicates that the value is in gigabytes.
Examples:
50 segments of 10 MB each:
ctrbldif test.dat -idxseg=50@10
100 segments of 300 MB each:
ctrbldif test.dat -idxseg=100@300MB
20 segments of 3 GB each:
ctrbldif test.dat -idxseg=20@3GB
Note: If the index files exist, the -idxseg option has no effect. It is only when the rebuild or
compact utility creates new index files because the old index files do not exist that the -idxseg
option affects the automatic segment properties of the index files.
www.faircom.com
All Rights Reserved
76
Utilities - Standalone
Updates in handling of security attributes
In V10.3 and later, the ctrbldif utility assigns data file owner/group/permissions to index files and
ctcmpcif assigns original data file owner/group/permissions to compacted data/index files.
The rebuild and compact utilities now read the permission mask, owner, and group settings from
the original data file and after the rebuild or compact is completed, the utilities assign these same
attributes to the new files. It is desirable for the newly rebuilt or compacted files to preserve the
original security attributes as much as possible and the index file security attributes should match
the data file security attributes.
A command-line option has been added to the utilities to restore the previous security attribute
behavior. Use the -oldsec option to cause the rebuild and compact utilities to set the security
attributes as they did before this revision. For example:
ctrbldif mark.dat -oldsec ADMIN ADMIN FAIRCOMS
The -oldsec option can be used if rebuild and compact are failing with error 455 (user does not
belong to group) if you delete an index then run the rebuild or compact utility on the data file using
a user account that does not belong to the group that is assigned to the data file.
Note: These changes only apply to the client and server versions of these utilities. Setting the
security attributes is not supported in standalone mode, so the standalone rebuild and compact
utilities behave as follows:
1) When the standalone mode rebuild utility creates new index files instead of reusing the new
index files (for example if the original index files have been deleted before running the rebuild
utility), the new index files are assigned a permission mask of zero (no restrictions on
permissions), and the owner and group are unassigned (empty).
2) The standalone mode compact utility always preserves the security attributes of the data file. If
the index files do not exist, the newly-created index files are assigned the same values as the
standalone rebuild does when it creates new index files.
6.13
ctrdmp - Dynamic Dump Recovery or System Rollback
ctrdmp [ dumpscript ]
Used to restore dumps created with ctdump.
A successful ctrdmp completion always writes the following message to CTSTATUS.FCS:
DR: Successful Dump Restore Termination
A failed ctrdmp writes the following message to CTSTATUS.FCS when ctrdmp terminates
normally:
DR: Dump Restore Error Termination...: <cterr>
where <cterr> is the error code.
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.
www.faircom.com
All Rights Reserved
77
Utilities - Standalone
Note: A 32-bit ctrdmp could fail with error 75 if run on transaction logs created by a 64-bit
c-treeACE Server, which might support more than 2048 connections.
In V11 and later, the ctfdmp, ctldmp, and ctrdmp utilities display the c-treeACE version used to
compile them when they are run.
Environment Variable for Advanced Encryption Password
If this utility has advanced encryption enabled, it can read an encrypted password file instead of
being prompted to enter the master password. To enable this, set the environment variable
CTREE_MASTER_KEY_FILE to the name of the encrypted master password file.
See also
 Maintaining Database Integrity (http://docs.faircom.com/doc/ctserver/8373.htm) in the c-tree
Server Administrator's Guide
6.14
ctsbld - Superfile rebuild pre-pass
The c-treeACE Superfile Recover Utility reconstructs data file members in place and empties
index file members. Index file members must be rebuilt via ctrbld, RBLIFIL() or ctindx.
Usage
ctsbld <superfile name>
Description
ctsbld processes the superfile in place. This utility “cleans” the data files and empties the index
files. This utility may also be incorporated into your application using the function
SuperfilePrepassXtd(). Afterward, the superfile must be processed by either ctrbld or the
RebuildIFile() function before it is usable. This utility is only operational in single-user mode. The
SuperfilePrepassXtd() function is available in single-user and client/server models.
6.15
ctsbldm - Rebuild Superfile Index Members
Usage
ctsbldm <DataFileName> [<Optional PageSize>]
For example:
ctsbldm suphost!myfile.dat 16384
Description
Ordinarily, the procedure to rebuild a superfile is to use ctsbld to prepare the entire superfile,
making the data good and returning space used by the indices. Then each set of ISAM files is
rebuilt. This approach is used since a superfile entwines all of the member files and no
assumptions are made about the integrity of the members.
ctsbldm permits the indices associated with a non-corrupt superfile member data file to be rebuilt
without having to process the entire superfile. It assumes that the data file contains an IFIL
www.faircom.com
All Rights Reserved
78
Utilities - Standalone
describing all the indices, that the data file is not corrupt, and that the superfile is in good shape
except for the indices in question.
One possible use for this utility is when recovery cannot repair an index. This rarely occurs, but
may be caused by a loop in the index leaf nodes. If this index is a member of a superfile, we can
now attempt to rebuild just the indices, and not process the entire superfile. The utility forces all
indices associated with the data file to be rebuilt.
The utility operates by opening the data and index files, deleting the index files, and then
rebuilding the index files.
6.16
ctscmp - Superfile Compact Utility
Usage
ctscmpi <filename> [-scanonly] [Y] [<sect>]
ctscmp <name of the superfile host to compact> [Y]
[new_sect_size]
Arguments
 <filename> The name of the superfile to compact or scan
 -scanonly Scan the superfile only; do not compact it. The -scanonly option generates details
from the header, extended header, IFIL, and DODA. It outputs the number of key values,
active records, deleted records and resource records. Using this utility with the -scanonly
option is useful for comparing superfiles before and after compacting them.
 Y An optional parameter; if specified, the utility compacts the file without prompting to confirm
(otherwise you will be prompted).
 <sect> An optional sector size of the resulting file (sect*128 = page size) to use for the new
superfile. If <sect> is omitted, the new superfile is created using the same page size as the
original superfile.
Description
The superfile compact utility, ctscmp, compacts and rebuilds a superfile and all of its members
provided the required IFIL resources are present in the superfile data members. It creates a
compacted version of the file in place, using a temporary file named CTREE.TMP as a
destination and then renaming it.
This utility is designed for the Standalone Single-user model. It compacts and rebuilds a superfile
and all of its members provided the required IFIL structures are in place. It creates a compacted
version of the file in place, using a temporary file named CTREE.TMP as a destination and then
renaming it.
The utility supports processing data and index member names having extensions other than .dat
and .idx.
A “% complete” progress indicator has been added to the ctscmp utility.
The ctscmp utility uses a standard error and warning message format. Error messages begin
with the text ‘Error:’ and warning messages with the text ‘Warning:’, so errors and warnings can
easily be located in the ctscmp output.
There is an ISAM-based version of the superfile compact utility named ctscmpi. This version of
the superfile compact utility uses ISAM c-tree functions rather than low-level c-tree functions to
www.faircom.com
All Rights Reserved
79
Utilities - Standalone
add records to the new compacted superfile. The advantage of using the ISAM approach is that
records are indexed as they are added, so the utility does not require a separate rebuild phase to
repopulate the indexes as the ctscmp utility does. Using this technique can significantly reduce
the time required to compact a superfile.
6.17
ctsfex - Superfile Data Export Utility
The ctsfex utility exports data from a superfile to another superfile or to individual files identical to
the superfile members. This high-performance utility exports the data without index updates,
transaction control, or file extension. After the data export is completed, the indices are rebuilt
and transaction control and file extension properties are restored on the newly-created files. This
utility also supports a multi-threaded version allowing each thread to process a superfile member.
Usage:
ctsfex sf1 [-f sf2 | -d dir] [-cCrovV] [-t thds] [-e key]
[-m recs] [-n size] [-T <path>] [-ctscmp <args>]
[-s svn] [-u uid] [-p upw]
Where:
 -f sf2 - Export to superfile sf2
 -d dir - Export to standard files in directory dir
 -c - Create the target files without exporting data.
 -C - Create AND export data for _isp@ and .group tables only.
 -r - Force replacement (overwrite) of existing files.
 -o - Force open of a corrupted file using the ctOPENCRPT file mode.
 -v - Open the superfile and its members to validate a superfile.
 -V - Used in conjunction with -v, this option validates records with a read.
 -m recs - Send record counter to stdout every recs records.
 -e key - Encrypt the target files with key
 -t threads - Maximum number of concurrent threads to use.
 -T <path> - Specify the location of temporary files created by the rebuild operation.
 -s server_name - Server name for connecting to the server.
 -u userID - User ID for connecting to the server.
 -p userpassword - User password for connecting to the server.
 -ctscmp <args> - Invoke the superfile compact utility, ctscmp with <args>.
Standalone Usage
In standalone mode an additional option is available to specify the index node size:
 -n size - Index node size to use (standalone mode only).
www.faircom.com
All Rights Reserved
80
Utilities - Standalone
6.18
ctsqlmgr - Migration Utility
The ctsqlmgr utility is used for migrating tables. This utility physically relocates data files for use
with c-treeACE SQL.
It is important to note the migrated new tables could very well not be accessible with your existing
ISAM application. If you have requirements to share data between existing ISAM applications and
c-treeACE SQL you should consider using the c-treeACE SQL Import Utility.
Usage:
ctsqlmgr <original file> <destination file> [-s <sect>] [-m <memory KB>]
 -s - The number of sectors.
 -m - The amount of memory (in KB) to use during the rebuild process (50Mb default).
See Also
 Migrating to c-treeACE SQL (http://docs.faircom.com/doc/sqlops/41034.htm) in the c-treeSQL
Server Operations and Utilities Guide
www.faircom.com
All Rights Reserved
81
7.
Utilities for Stored Procedures,
User-Defined Functions & Triggers
To simplify the process of deploying SP, UDF, and triggers to multiple servers, these new
command-line utilities can be used to dump and deploy:
 dbschema (page 82) - Dump utility option for exporting compiled SP, UDF, and triggers.
 dbdeploy (page 82) - Deploy utility for loading exported SP, UDF, and triggers on other
servers.
7.1
dbschema – Option to dump SP, UDF, and triggers
A new option has been added to the dbschema utility that allows stored procedures,
user-defined functions, and triggers to be exported so they can be deployed to other c-treeACE
Servers using dbdeploy. The dbschema -b option is used to dump stored procedures, user
defined functions, and triggers in binary format compatible with dbdeploy:
Usage
dbschema [-d] [-b] [-u username] [-a authentication] [-o outputfile]
[-t tablenamelist] [-p procedure_name_list]
[-f function_name_list] [-T trigger_name_list]
[dbsegment_name]
 -d - Dump the data.
 -b - Dump stored procedures, user-defined functions, or triggers in binary format so they can
be deployed using dbdeploy.
 -o - Output file (default: screen).
7.2
dbdeploy – Utility to deploy SP, UDF, and triggers
A new SQL tool, dbdeploy, is used to deploy stored procedures, user defined functions, and
triggers to c-treeACE SQL servers that have been exported using the dbdump tool.
Usage
The syntax is as follows:
dbdeploy [-f] [-u username] [-a authentication] [-i inputfile]
[dbsegment_name]
 -u - Username identifiable to the DBMS.
 -a - Password for authentication.
www.faircom.com
All Rights Reserved
82
Utilities for Stored Procedures, User-Defined Functions & Triggers
 -i - Input file.
 -f - Force overwriting of existing items.
7.3
Password Security
The dbdeploy and dbdump command-line utilities are intended to be password-friendly.
However, our customers’ need for security is of great concern. Therefore, utility source code is
provided and can be compiled directly into existing customer application utilities such that existing
security controls can be leveraged.
7.4
Requirements to Develop and Deploy (JDK, JRE)
With the use of the dump and deploy utilities, it is no longer necessary to have both a JDK and
JRE on every server.
 Develop: A JDK is required to develop and compile SP, UDF, and triggers on one server, but
is not required for servers with deployed procedures.
 Deploy: A JRE is required on a server to run SP, UDF, and triggers.
www.faircom.com
All Rights Reserved
83
Copyright Notice
Copyright © 1992-2016 FairCom Corporation. All rights reserved. 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.
Information in this document is subject to change without notice.
Trademarks
c-treeACE, c-treeRTG, c-treeAMS, c-tree Plus, c-tree, r-tree, FairCom and FairCom’s circular disc logo are trademarks of
FairCom, registered in the United States and other countries.
The following are third-party trademarks: AMD and AMD Opteron are trademarks of Advanced Micro Devices, Inc.
Macintosh, Mac, Mac OS, and Xcode are trademarks of Apple Inc., registered in the U.S. and other countries.
Embarcadero, the Embarcadero Technologies logos and all other Embarcadero Technologies product or service names
are trademarks, service marks, and/or registered trademarks of Embarcadero Technologies, Inc. and are protected by the
laws of the United States and other countries. Business Objects and the Business Objects logo, BusinessObjects, Crystal
Reports, Crystal Decisions, Web Intelligence, Xcelsius, and other Business Objects products and services mentioned
herein as well as their respective logos are trademarks or registered trademarks of Business Objects Software Ltd.
Business Objects is an SAP company. HP and HP-UX are registered trademarks of the Hewlett-Packard Company. AIX,
IBM, POWER6, POWER7, and pSeries are trademarks or registered trademarks of International Business Machines
Corporation in the United States, other countries, or both. Intel, Intel Core, Itanium, Pentium and Xeon are trademarks or
registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Microsoft, the .NET
logo, the Windows logo, Access, Excel, SQL Server, Visual Basic, Visual C++, Visual C#, Visual Studio, Windows,
Windows Server, and Windows Vista are either registered trademarks or trademarks of Microsoft Corporation in the
United States and/or other countries. Novell and SUSE are registered trademarks of Novell, Inc. in the United States and
other countries. Oracle and Java are registered trademarks of Oracle and/or its affiliates. QNX and Neutrino are
registered trademarks of QNX Software Systems Ltd. in certain jurisdictions. CentOS, Red Hat, and the Shadow Man logo
are registered trademarks of Red Hat, Inc. in the United States and other countries, used with permission. UNIX and
UnixWare are registered trademarks of The Open Group in the United States and other countries. Linux is a trademark of
Linus Torvalds in the United States, other countries, or both. Python and PyCon are trademarks or registered trademarks
of the Python Software Foundation. OpenServer is a trademark or registered trademark of Xinuos, Inc. in the U.S.A. and
other countries. Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the United States and other
countries.
Btrieve is a registered trademark of Actian Corporation.
ACUCOBOL-GT, MICRO FOCUS, RM/COBOL, and Visual COBOL are trademarks or registered trademarks of Micro
Focus (IP) Limited or its subsidiaries in the United Kingdom, United States and other countries.
isCOBOL and Veryant are trademarks or registered trademarks of Veryant in the United States and other countries.
All other trademarks, trade names, company names, product names, and registered trademarks are the property of their
respective holders.
Portions Copyright © 1991-2016 Unicode, Inc. All rights reserved.
Portions Copyright © 1998-2016 The OpenSSL Project. All rights reserved. This product includes software developed by
the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/).
Portions Copyright © 1995-1998 Eric Young (eay@cryptsoft.com). All rights reserved. This product includes cryptographic
software written by Eric Young (eay@cryptsoft.com). This product includes software written by Tim Hudson
(tjh@cryptsoft.com).
Portions © 1987-2016 Dharma Systems, Inc. All rights reserved. This software or web site utilizes or contains material
that is © 1994-2007 DUNDAS DATA VISUALIZATION, INC. and its licensors, all rights reserved.
Portions Copyright © 1995-2013 Jean-loup Gailly and Mark Adler.
7/20/2016
8.
Index
A
Administrative Utilities - Client .................................. 2
Administrative Utilities - Standalone ....................... 36
ADMINISTRATOR OPTIONS ................................. 31
C
Copyright Notice ................................................ lxxxiv
ct_ver - Display c-treeACE version that created
file ....................................................................... 64
ctadmn - Server Administrator Utility ........................ 2
ctalgn - Change Alignment ..................................... 49
ctcfgset - Server Configuration File Encoding
Utility ................................................................... 36
ctchkbin - Checking for affected tables................... 64
ctclntrn Utility - Clean Transaction Mark ................. 65
ctcmdset - Configuration File Encoding Utility ........ 37
CTCMPC - File compaction .................................... 49
ctcmpcif - IFIL-based Compact Utility .................2, 66
ctcnfg - System Configuration Example ................. 50
ctcpvf - Master Password Verification File Utility .... 37
CTCV43 - Convert V4.3 Data File to c-tree
Format................................................................. 50
ctcv67 - Extended File Conversion Utility ............... 50
ctdbpartidxent - Utility to Enable GUIx Key
Count Optimization ............................................... 4
ctdidx - Create flat key file ...................................... 53
ctdmpidx - Index Dump Utility ................................. 53
ctdump - Dynamic Dump Utility ................................ 5
ctencrypt - Utility to Change Master Password ...... 70
ctfchk - File Checksum Utility ................................. 38
ctfdmp - Forward Dump Utility ................................ 72
ctfilbkif - File Block Utility .......................................... 7
ctfileid - Update File IDs .....................................9, 73
ctfixbin - Fixing Affected Tables.............................. 73
ctflat - Create c-treeACE file from a flat file ............ 54
ctflvrfy - Index Verify Utility ..................................... 55
cthghtrn - Displays the high-water mark for
transactions ........................................................ 39
ctidmp - Examine Dump Files ................................. 74
ctindx - Create index file from flat key file ............... 57
ctinfo - ISAM File Info .......................................45, 74
ctixmg - Incremental ISAM / Resource sample ...... 46
ctldmp - Transaction Log Dump ............................. 75
ctpass - Password Utility .......................................... 9
ctpathmigr - Change Internal Path Separators ....... 10
ctpkey - Print key utility ........................................... 58
ctpotp - Parameter to OTP conversion ................... 58
ctptoi - Parameter to IFIL conversion ..................... 58
ctquiet - Quiesce c-treeACE Utility ......................... 10
ctrbld - Parameter file rebuild utility ........................ 59
ctrbldif - IFIL-based Rebuild Utility....................11, 75
ctrdmp - Dynamic Dump Recovery or System
Rollback ............................................................. 77
ctredirect - IFIL Update Utility for Redirected
Filenames .......................................................... 39
ctsbld - Superfile rebuild pre-pass ......................... 78
ctsbldm - Rebuild Superfile Index Members .......... 78
ctscmp - Superfile Compact Utility ......................... 79
ctsfex - Superfile Data Export Utility ................ 47, 80
ctsfil - Superfile contents ........................................ 59
ctsqlcdb - c-treeACE SQL Database
Maintenance Utility............................................. 14
ctsqlimp .................................................................. 14
ctsqlimp - SQL Import Utility .................................. 14
ctsqlmgr - Migration Utility ..................................... 81
ctsqlutl - c-treeSQL Maintenance Utility ................ 16
ctstat - Statistics Monitoring Utility ......................... 16
ctstop - Server Stop Utility ..................................... 18
ctsysm - Server Status Monitoring Utility ............... 19
cttrap - Communications Trap Playback utility ...... 20
cttrap - TRAP_COMM Utility .................................. 21
cttrnmod - Change Transaction Mode Utility ... 23, 41
ctunf1 - File Reformatting Utility............................. 59
ctupdpad - Update the c-treeDB Pad Resource
Utility .................................................................. 61
ctvfyfil - File Verify Utility ........................................ 62
ctvfyidx - Index Verify Utility ................................... 61
ctvlqa - Variable-length quality assurance utility.... 47
D
dbdeploy – Utility to deploy SP, UDF, and
triggers ............................................................... 82
dbdump - Data Unload Utility ................................. 26
dbload - Data Load Utility ...................................... 27
dbschema – Option to dump SP, UDF, and
triggers ............................................................... 82
dbschema - Schema Export Utility......................... 28
deploy .................................................................... 82
develop (dump and deploy) ............................. 82, 83
dump ...................................................................... 82
F
FairCom Command-Line Tools................................ 1
FILE OPTIONS ...................................................... 34
G
GROUP OPTIONS................................................. 33
I
ISQL ................................................................. 29, 48
J
JDK ........................................................................ 83
JRE ........................................................................ 83
O
Option to set index's automatic segment
attributes ...................................................... 12, 76
www.faircom.com
All Rights Reserved
85
Index
P
Password Security .................................................. 83
R
Requirements to Develop and Deploy (JDK,
JRE) .................................................................... 83
S
sa_admin - Command-line security
administration utility ............................................ 30
Scripting a Dynamic Dump ....................................... 6
U
Updates in handling of security attributes3, 13, 69, 77
USER OPTIONS..................................................... 31
Utilities - Client ........................................................ 45
Utilities - Low Level ................................................. 49
Utilities - Standalone ............................................... 64
Utilities for Stored Procedures, User-Defined
Functions & Triggers ........................................... 82
www.faircom.com
All Rights Reserved
86