About This Documentation
Who Should Read This Documentation
Zen Databases
Named Database
Metadata
Identifiers and Object Names
Regular Identifiers
Delimited Identifiers
Identifier Restrictions
Unique Scope
The Default Database and the Current Database
File Structure
File Size
File Version 13.0
File Version 9.5
File Versions 9.0 or Older
File Segmentation
Automatic Upgrade of File Version
Access Methods
Client-Server Communications
Database Code Page
ODBC DSN Creation Options
Using the idshosts File
Format of idshosts Entries
Concepts of Database Maintenance
Configurations
Database Security
Data Archival and Restoration
Troubleshooting
Helpful Utilities
The Zen Component Architecture
Zen Database Management System
Common Address Space
Row Level Locking
MicroKernel Engine
Asynchronous I/O
Relational Engine
Relational Architectural Overview
Zen Relational Architecture for Servers and Workgroups
Error Codes
Auto Reconnect
Remarks
Configuration Reference
Configuration Overview
Ensuring Configuration Changes Take Effect
Connecting to Different Machines
Configuration Using ZenCC
Configuration Using Bcfg
Command Syntax
Options
Example Scenario: Configuring a Single Setting from a Command Prompt
Editing an Input File
Restarting the Engines After Applying a New Setting
Troubleshooting
Service Configuration Properties
Server Configuration Properties on All Platforms
Access
Accept Remote Request
Allow Cache Engine Connections
Allow Client-Stored Credentials
Summary Chart of Login Behavior
Authentication (Linux-Based Engines Only)
Samba and Authentication Using PVPIPE$ (Linux Only)
Configuration File (Linux, macOS, and Raspbian Engines Only)
Prompt for Client Credentials
Storage Server
Wire Encryption
Wire Encryption Level
Communication Protocols
Auto Reconnect Timeout
Enable Auto Reconnect (Windows only)
Listen IP Address
Supported Protocols
Linux, macOS, and Raspbian
TCP/IP Multihomed
TCP/IP Port
Compatibility
Limit File Size
Create File Version
System Data
Data Integrity
Archival Logging Selected Files
Initiation Time Limit
Operation Bundle Limit
Transaction Durability
Related Settings
Transaction Logging
Related Settings
Wait Lock Timeout
Wait Lock Timeout Benefits
When Wait Lock Timeouts Apply
Handling of Page Locks
Debugging
Number of Bytes from Data Buffer
Number of Bytes from Key Buffer
Select Operations
Trace File Location
Trace Operation
Directories
Temporary File Location
Transaction Log Directory
Working Directory
DBNames Configuration Location
TEMPDB Directory (Client Reporting Engine only)
Information
Memory Usage
Allocate Resources at Startup
Back to Minimal State if Inactive
Minimal State Delay
Sort Buffer Size
System Cache
Performance Tuning
Automatic Defragmentation
Cache Allocation Size
Setting for a Server Engine
Setting for Workgroup, Client Cache, and Client Reporting Engines
Using Cache Allocation Size to Optimize Performance
Communications Threads
File Close Delay
File Growth Factor
Index Balancing
Limit Segment Size to 2 GB
Transaction Log Buffer Size
Max MicroKernel Memory Usage
Number of Input/Output Threads
Transaction Log Size
Windows Client Configuration Properties
Access
Gateway Durability
Number of Load Retries
Use IDS
Use Local MicroKernel Engine
Use Remote MicroKernel Engine
Wire Encryption
Wire Encryption Level
Application Characteristics
Embedded Spaces
Splash Screen
Verify Key Length
Cache Engine
Allocate Resources at Startup
Back to Minimal State if Inactive
Cache Allocation Size
Max MicroKernel Memory Usage
Minimal State Delay
Cache Engine Debugging
Communication Protocols
Enable Auto Reconnect
Supported Protocols
Linux, macOS, and Raspbian
Connection Timeout
Performance Tuning
Use Cache Engine
Security
Runtime Server Support
Linux, macOS, and Raspbian Client Configuration Properties
Case of Configuration Values
Client Performance Affected by Local Setting
File Names with Embedded Spaces
Configuration Reference
Access
Use Local MicroKernel Engine
Use Remote MicroKernel Engine
Remote Engine and UNC Paths
Use IDS
Wire Encryption
Wire Encryption Level
Communication Protocols
Enable Auto Reconnect
Application Characteristics
Embedded Spaces
Verify Key Length
Reporting Engine Configuration Properties
Performance
Analyzing Performance
Tuning Performance
Spotting Performance Bottlenecks
Monitor Displays and Configuration Properties
Interpreting the Displays and Taking Action
Before You Modify Configuration Properties
Minimizing Initial Connection Time
Client Properties
Server Properties
Maximizing Runtime Throughput
Fast Disk versus Fast CPU
Ensuring Adequate Physical Memory and Database Cache
Minimizing Disk I/O
Ensuring Adequate Resource Allocation
Large System Cache
Performance on Hypervisor Products
Database Globalization
Overview
Concepts and Definitions
Character Sets
Legacy Character Sets
The Unicode Character Set
Encoding
Legacy Encodings
Unicode Encodings
Declaring Encodings
Collation and Sorting
Choosing a Character Set and Encoding
Multilingual Database Support with Unicode UTF-8
When to Use Unicode UTF-8
Unicode UTF-8 Support in Zen
Collation and Sorting
Access Methods for Unicode UTF-8 Support
Migrating an Existing Database to Unicode UTF-8
Multilingual Database Support with Unicode UCS-2
When to Use Unicode UCS-2
Unicode UCS-2 Support in Zen
Collation and Sorting with Unicode UCS-2
Access Methods for Unicode UCS-2 Support
Migrating an Existing Database to Unicode UCS-2
Multilingual Database Support with Legacy and OEM Encodings
When to Use a Legacy Code Page
Legacy Code Page Support in Zen
Collation and Sorting with Legacy Code Pages
Access Methods for Legacy Code Pages
Migrating an Existing Database to a Different Legacy Code Page
Database Code Page and Client Encoding
Database Code Page
Supported Code Pages
Client Encoding
Encoding Support in ZenCC
Encoding Support in Btrieve API
Encoding Support in DTI
Encoding Support in ADO.NET
Encoding Support in JDBC
Encoding Support in ODBC
Legacy Conversion Methods for OEM-to-ANSI Data
Connecting a Linux EUC-JP Client to a Win32 SHIFT-JIS Server
Connecting a Linux UTF-8 Client to a Win32 SHIFT-JIS Server
Connecting a Linux EUC-JP Client to a Linux EUC-JP Server
Connecting a Linux UTF-8 Client to a Linux UTF-8 Server
Connecting a Linux UTF-8 Client to a Linux EUC-JP Server
Connecting a Linux EUC-JP Client to a Linux EUC-JP Server, with SHIFT-JIS Encoding Used to Store Data on the Server
Encoding Support for Wide ODBC Driver
ODBC Driver for Applications with Wide Character Data
Default for DSN Encoding Translation
Unicode Support in Zen Utilities
Unicode Support in Zen Control Center
Dialogs for Opening and Saving Files
Bulk Data Utility (BDU)
Support for Collation and Sorting
What Is Collation and Sorting?
Sort Order with No Collation Sequence Specified
Collation Support in Wide Character Columns
Collation Support Using an Alternate Collating Sequence (ACS)
Collation Support Using an International Sort Rule (ISR)
Collation Support Using an ICU Unicode Collation
Locale Support
Setting Up Referential Integrity
Concepts of Referential Integrity
Definitions
Rule
Example A
Example B
Primary key
Foreign key
Cascade Rule
Restrict Rule
Understanding Keys and Rules
Update Restrict
Delete Restrict
Delete Cascade
Setting up Primary Keys
Creating a Primary Key During Table Creation
Adding a Primary Key to an Existing Table
Setting up Foreign Keys
Creating a Foreign Key During Table Creation
Adding a Foreign Key to an Existing Table
Interactions Between Btrieve and Relational Constraints
Bound Database versus Integrity Enforced
Bound Databases
See Also
Zen Security
Security Models for the Relational Engine
Master User
The PUBLIC Special Group
Users and Groups
SQL and Zen Security
Accessing Data in More Than One Database
Security Models for the MicroKernel Engine
Classic Btrieve Security
Setting Up Classic Btrieve Security
Mixed Btrieve Security
Notes on Classic and Mixed Btrieve Security
Database Security for Btrieve Files
Notes on Mixed and Database Btrieve Security
Setting Up Mixed or Database Btrieve Security
Owner Names
Choosing and Setting an Owner Name
Owner Names and SQL Access
Owner Names and Encryption
Owner Name Examples
Planning Security for the MicroKernel Engine
Available Options
Choosing Your Policy
Reasons to Choose Classic
Reasons to Choose Mixed
Reasons to Choose Database
Preparing to Set Up Security
How Do Your Btrieve Applications Access Data?
How Many Databases?
Where Are the Data Files?
What Are the User Names?
What Security Policy?
Process Overview
Summary of Tasks for MicroKernel Engine Security
MicroKernel Engine Security Quick Start
Data Encryption Over Networks
Configuration Properties for Wire Encryption
Wire Encryption Notes
Backward Compatibility
Setting Up Encryption
No Encryption
Encryption to/from Specific Clients
Encryption to/from Specific Servers
All Communications Encrypted
Choosing an Encryption Level
Low (40-bit) Encryption
Medium (56-bit) Encryption
High (128-bit) Encryption
Effects of Encryption
Encryption of Files on Disk
Logging, Backup, and Restore
Transaction Logging and Durability
Using These Features
Feature Comparison
Which Feature Should I Use?
Transaction Logging
Transaction Durability
How Logging Works
See Also
Understanding Archival Logging and Continuous Operations
Difference Between Archival Logging and Transaction Logging
What if a File Restore is Needed
Using Archival Logging
General Procedures
Setting up Archival Logging
Examples
Roll Forward Command
Using Continuous Operations
Starting and Ending Continuous Operations
Backing Up a Database with Butil
Startbu
Format
File Considerations
Examples for Windows Server
Endbu
Format
Example for Windows Server
Restoring Data Files when Using Continuous Operations
Data Backup with Backup Agent and VSS Writer
Backup Agent
Zen VSS Writer
Overview
VSS Writer Details
High Availability Support
Overview of Technologies
High Availability
Failover Clustering
Migration
Fault Tolerance
Disaster Recovery
Hardware Requirements
Failover Clustering
Microsoft Failover Cluster for Windows Server
General Steps
Installing and Configuring Zen in a Windows Failover Cluster
Linux Heartbeat
Preliminary Requirements
Installing and Configuring Zen in a Linux Heartbeat Failover Cluster
Managing Zen in a Cluster Environment
Zen Licensing and Node Maintenance
Zen Failure Behavior
Stopping or Restarting the Actian Zen Engine Service
Zen Configuration Changes
Software Patches
Migration
Fault Tolerance
Disaster Recovery
Zen and Hypervisor Products
Hypervisor Product Installation
Usage Topics for Zen
Physical Machine To VM Migration
Configuration
VM Resource Pools and Templates
Resource Pools
Templates
Failover Cluster Support
Performance
Data Backup
Workgroup Engine in Depth
Networking
Technical Differences Between Server and Workgroup
Platforms
User Interface
Authentication and Btrieve Security Policies
Gateway Support
Asynchronous I/O
Default Configurations
License Model
Troubleshooting Workgroup Issues
Time delay on first connection
If possible, make sure an engine running on the system where the data resides
If you are running a gateway topology
Status Code 116
Redirecting Locator Files
Redirecting Locator File Requirements
Creating Redirecting Locator Files
Example
Monitoring
Monitoring Database State
Monitor Overview
Graphical Interface Monitor
Using GUI Monitor
GUI Features
Setting Monitor Preferences
Setting Refresh Options
Tab Functionality
Monitoring Active Files
Monitoring MicroKernel Sessions
Monitoring Resource Usage
Monitoring MicroKernel Communication Statistics
Communications Statistics
Resource Usage Information
Monitoring SQL Active Sessions
Command Line Interface Monitor
Accessing Bmon
Configuration File Settings
Bmon Output
Command Syntax
Options
Running Bmon Without the Runonce Parameter
Monitoring Data File Fragmentation
Deciding When to Defragment
When Defragmenter Cannot Be Used
Accessing Defragmenter
Defragmenter GUI
Defragmenter Tab Views
Files In Use
Tables
Btrieve Files
Watch List
Details
Setting Defragmenter Preferences
Setting Automatic Refresh Interval
Arranging Tabs
Defragmenter Tasks
Command Line Interface Defragmenter
Using dbdefrag
Monitoring Performance Counters
Registration During Installation
Data Collector Sets
Zen MicroKernel Btrieve Operations
Zen MicroKernel Cache
Zen MicroKernel I/O
Zen MicroKernel Locks and Waits
Zen MicroKernel Transactions
Zen Page Server Activity
Zen Cache Engine Activity
Using Windows Performance Monitor
Monitoring License Usage
Capacity Usage Viewer
Capacity Usage Viewer GUI
Statistical Indicators
Zooming
License Administrator
Monitoring Database Access
Reviewing Message Logs
Licensing Messages
Change in State of Key
Logging Frequency
Notification Viewer
Command Line Options
System Tray Icons Interface
Popup Menu
Tray Icons
Graphical User Interface
Toolbar and Panels
Operating System Event Log
Windows Platform Event Logs
Viewing Event Logs
Linux, macOS, and Raspbian Distribution Event Logs
Event.log File and Bti.ini
Zen Event Log (zen.log)
Zen.log Fields
Zen.log Example Entry
Receiving Email Notification of Messages
Products That Provide Email Notification of Monitored Events
Event Log Content to Monitor for License Event Messages
Windows Platforms
Examples
Linux, macOS, and Raspbian Distributions
Testing Btrieve Operations
Function Executor Concepts
Overview
What Function Executor Can Do
Function Executor Features
Editor Status Bar
Statistics
Get and GetExt
Transaction Toolbar
Login Dialog
History Log
Viewing as Any Data Type
Automatic Mode in Function Executor
Where to Learn More
Function Executor Graphical User Interface
Application Window
Main Window
Login and Logout
Login Dialog
Logout Dialog
Open File Dialog
Create a Btrieve File
Create New Btrieve File Dialog
Transactions Toolbar
File Statistics
History
Function Executor Tasks
Starting Function Executor Tasks
Performing Operations Tasks
General Operations-Related Tasks
Opening a File Tasks
Other Ways to Open a File with Function Executor
Creating a Btrieve File Tasks
Method 1: Using a current file as a template
Method 2: Creating a new file from scratch
History Tasks
Manipulating Btrieve Data Files with the Maintenance Tool
Maintenance Utilities Overview
Btrieve Interactive Maintenance Tool
Extended File Support
Long File Names and Embedded Spaces Support
Record and Page Compression
Record Compression
Page Compression
Deciding When To Use Compression
The Btrieve Maintenance Tool Interface
Menu Options
Getting Help
File Information Editor
File Information Editor Dialog Elements
Data File Info
File Specification
Key
Key List and Segment List
Key Segment
Methods for Handling Duplicate Keys
Linked Duplicates
Repeating Duplicates
Method Comparisons
Ordering
Storage
Performance
Concurrency
Information Editor Tasks
Loading Information from an Existing Data File
Creating a New File
Adding Comments to a Description File
Compacting Btrieve Data Files
Specifying a Alternate Collating Sequence for a Key
Managing Owner Names
Setting or Clearing an Owner Name
Statistics Report
Statistics Report Tasks
Indexes
Index Tasks
Creating Indexes
Dropping Indexes
Data
Importing and Exporting ASCII File Format
Data Tasks
Importing Records From an ASCII File
Exporting Records to an ASCII File
Copying Records Between Data Files
Recovering (Roll Forward) Changes to a Data File
Btrieve Command Line Maintenance Tool (Butil)
Return Codes
Commands
Viewing Command Usage Syntax
Command Format
Command Files
Rules for Command Files
Command File Example
Description Files
Extended File Support
Owner Names
Redirecting Error Messages
ASCII File Format
Rules for Specifying File Names on Different Platforms
Importing and Exporting Data
Copy
Format
Examples
Load
Format
Example
Recover
Format
Example
Save
Format
Examples
Creating and Modifying Data Files
Clone
Format
Remarks
Example
Close
Format
Clrowner
Format
Example
Create
Format
Example
Sample Description File for the Create Command
Drop
Format
Examples
Index
Format
Remarks
Sample Description File for the INDEX Command
Example
Setowner
Format
Examples
Sindex
Format
Examples
Compacting Btrieve Data Files
Managing the Page Cache for Files
Notes
Cache
Format
Purge
Format
Viewing Data File Statistics
Stat
Format
File Statistics and Error Message Formats
File Statistics as Text
File Statistics as JSON
Error Messages as Text
Error Messages as JSON
System Data v2
File Version Notes
Displaying MicroKernel Engine Version
Ver
Format
Remarks
Unloading the MicroKernel Engine and Requester (DOS only)
Stop
Format
Performing Continuous Operations
Performing Archival Logging
Using the GUI
Using the Command Line
Examples
Converting Data Files
Rebuild Tool Concepts
Platforms Supported
Linux, macOS, and Raspbian CLI Rebuild
Windows CLI Rebuild
File Formats
Temporary Files
Optimizing the Rebuild Process
CPU Speed and Disk Speed
Amount of Memory
Formulas For Estimating Memory Requirements
Sort Buffer Size
Max MicroKernel Memory Usage
Cache Allocation Size
Index Page Size
Number of Indexes
Log File
Rebuild Tool GUI Reference
File Options Screen
Rebuild Options Screen
Using the Rebuild Tool
GUI Rebuild Tasks
CLI Rebuild Tasks
Command Line Parameters
Example Usage
Example Usage
Description Files
Rules for Description Files
Description File Examples
Description File Elements
About This Documentation
Description Files