1.1 Basic GemStone/S 64 Bit Architecture
Server Processes
Disk-based Persistence
Session Processes
Communications process
1.2 Starting GemStone and Logging In
Stone
Shared Page Cache
Shared Cache Size
OS memory and Swapping
NetLDI
Logging in Gem Sessions
Linked vs. RPC
Gemservers for Large Configurations
NRS (Network Resource String)
1.3 Authentication and Authorization
GemStone UserIds and login
Authorization to Access Data
File access and authorization
1.4 Transactions and commit records
Object views
Session transactional state
Commit records
1.5 Files and Directories
GemStone Installation
GemStone shared libraries
Lock file directory
Host Identifier
Extents, Tranlogs, and disk space
Disk Usage for Extents and Transaction Logs
Disk configuration
Raw Partitions
Process Log Files
System Clock and GemStone times
TimeZones
1.6 Options for Configuring
Configuration files
Environment variables
Utility command arguments
Run-time configurations
Example Configurations
1.7 Avoiding risk of Data loss
Recovery vs. Restore
Developing a Failover Strategy
Verifying strategy
1.8 Running a Second Repository
2.1 Server Components
The Server Configuration File
Before you begin
Number of User Sessions
Estimating the Size of the Shared Page Cache
Verifying OS support for sufficient Shared Memory
2.2 Configuring Extents and Transaction Logs
Recommendations About Disk Usage
NFS
Configuring the Repository Extents
Estimating Extent Size
Choosing the Extent Location
Extent disk configuration
Setting a Maximum Size for an Extent
Pregrowing Extents to a Fixed Size
Pregrowing Extents to the Maximum Size
Allocating Data to Multiple Extents
Sequential Allocation
Weighted Allocation
Effect of Clustering on Allocation Mode
Weighted Allocation for Extents Created at Run Time
Configuring the Transaction Logs
Logging Mode
Estimating Disk Space for Transaction Logs
Choosing the Log Location and Size Limit
How To Set Up a Raw Partition
Sample Setup for Extent on Raw Partition
Changing Between Files and Raw Partitions
Moving an Extent to a Raw Partition
Moving an Extent to the File System
Moving Transaction Logging to a Raw Partition
Moving Transaction Logging to the File System
Server Response to Gem Fatal Errors
2.3 How To Access the Server Configuration at Run Time
To Access Current Settings at Run Time
To Change Settings at Run Time
2.4 Tuning Server Performance
Tuning the Shared Page Cache
Adjusting the Cache Size
Matching Spin Lock Limit to Number of Processors
Clustering Objects That Are Accessed Together
Controlling Checkpoint Frequency
Tuning Page Server Behavior
To Add AIO Page Server threads
Free Frame Page Server
Process Free Frame Caches
Running Cache Warming
Configure what is loaded into the cache
Configure when warming is run
3.1 Overview
Linked and RPC Applications
Note on terminology
The Session Configuration File
3.2 Configuring Gem Session Processes
Local vs. Remote
Local
Remote
Gem Memory Requirements
Additional Configuration for Remote Gems
3.3 Set the Gem Configuration Options
Configure Temporary Object Space
Configure SSL for remote Gem sessions
Private Page Cache
Native Code
3.4 How To Access the Configuration at Run Time
4.1 Overview
Administrative user account
Login Parameters and Gem process
4.2 The NetLDI
NetLDI Ports and Names
NetLDI access by name
NetLDI access by port
Simplified access using GEMSTONE_NRS_ALL
4.3 NetLDI configuration
Configuration Decisions
NetLDI behavior: who will own spawned processes?
Default mode
Root mode
Captive account
Linked sessions
Authentication: which requests need to be authenticated?
Secure mode
Fork mode
Secure or Fork mode plus Kerberos
Guest mode
Setting up the NetLDI Configuration
1. Setting up NetLDI as root with Authentication
Starting the NetLDI
Login parameters
Using Kerberos authentication
2. Setting up NetLDI in Guest Mode with Captive Account
Starting the netldi
Login
4.4 File Permissions
Using the Setuid Bit
Alternative: Use Group Write Permission
File Permissions for Other Files and Directories
4.5 Linked Gem Sessions
5.1 Overview
Distributed configuration with Local Gem
Distributed configuration with Remote Gem
Network
GemStone NetLDIs
NRS Syntax
Connecting to the RPC Gem
GemStone Page Servers
Port use in GemStone
Disrupted Communications
5.2 Configuring GemStone on Remote Nodes
Local Gems only
Remote Gems
Configuration Examples
Determine if you will run RPC or Linked application
Set the environment
Configure NetLDI and authentication mechanism
RPC Application on a Remote Node with Local Gem
Linked Application on a Remote Node
RPC Application on a Remote Node with Remote Gem
RPC Application, Gem, and Stone on Three Nodes
Distributed System with a Mid-Level Cache
Connection Methods
Reporting Methods
5.3 Troubleshooting Remote Logins
How the Login Process starts Session Processes
RPC Application with Gem on Server Node
Linked Application on Remote Node
If You Still Have Trouble
Try Linked Topaz on the Server
Try Topaz RPC on the Server
Check NetLDI Log Files
5.4 Tuning for Distributed Configurations
6.1 Starting the GemStone Server
To Start GemStone
To Troubleshoot Stone Startup Failures
Missing or Invalid Key File
Shared Page Cache Cannot Be Attached
Extent Missing or Access Denied
Extent Open by Another Process
Extent Already Exists
Other Extent Failures
Transaction Log Missing
Other Startup Failures
Listing Running Servers
6.2 Starting a NetLDI
To Troubleshoot NetLDI Startup Failures
6.3 Starting a GemStone Session
To Define a GemStone Session Environment
To Start a Linked Session
To Start an RPC Session
To Troubleshoot Session Login Failures
Identifying and Stopping Logged-in Sessions
6.4 Shutting Down Sessions, the Object Server, and NetLDI
Stopping Logged-in Sessions
Stopping the Stone
Stopping the NetLDI
Using OS kill
6.5 Recovering from an Unexpected Shutdown
Clean Shutdown Message
Disk Failure or File System Corruption
Shared Page Cache Error
Fatal Error Detected by a Gem
Some Other Shutdown Message
No Shutdown Message
7.1 GemStone Process Logs
Finding log files
Stone Log
Log name and location
Log file deletion policy
Shared Page Cache Monitor Log
Admin Gem Log
Reclaim Gem Log
Free Frame Page Server Log
AIO Page Server Log
Page Manager Log
Symbol Gem Log
NetLDI Log
Gem Logs and logs related to Gem Sessions
Linked Gems
RPC Gems on Stone’s host
Remote RPC or Linked Gems
Further control over log file location and name
Logsender and logreceiver Logs
Other Log Files
Summary of GemStone Process Log Behaviors
Managing log files
Retaining or deleting all log files
Customizing individual process deletion behavior
Localizing timestamps in log files
Programmatically adding messages to logs
7.2 Repository Page and Object Audit
Page Audit
Object Audit and Repair
Performing the Object Audit
Error Recovery
Collect and reclaim garbage and retry
Restore from backup
Attempt repair
7.3 Profiling Repository Contents
7.4 Monitoring Performance
Statmonitor and VSD
Programmatic Access to Cache Statistics
Statistics by name
All statistics for a process
Setting the name for the Gem in the cache
Session Statistics
Global Session Statistics
Host Statistics
Host Statistics for processes
Host Statistics for OS
8.1 GemStone Users
UserProfiles
AllUsers
Special System Users
SystemUser
DataCurator
GcUser
SymbolUser
Nameless
UserProfile Data
User ID
Authentication Scheme
Determining an Account’s Authentication Scheme
Password
Default Object Security Policy
Privileges
Code Modification Privilege
Symbol Lists
DeletedUserProfile and AllDeletedUsers
8.2 UserProfileGroups
AllGroups
Groups for object authorization
Create a group
Delete a group
8.3 Creating and Removing Users
Creating Users
Simple User Creation
Simple User Creation with GsObjectSecurityPolicy Creation
User Creation With Privileges, Groups, and ObjectSecurityPolicy
Removing Users
Remove User, with ObjectSecurityPolicies Going to the Current User
Remove User, with ObjectSecurityPolicies going to another User
Users and Group membership
Adding a user to a group
Removing a user from a group
Querying for Group members
Querying for a User’s Groups
8.4 Administering Users
List Existing Users
Modifying the UserId
Modifying Password
Users Changing Their Own Password
Changing Another User’s Password
Modifying defaultObjectSecurityPolicy
Determining Who Is Authorized to Read or Write in an Object Security Policy
Changing the Authorization of an Object Security Policy
Remove a Group from an Object Security Policy’s Authorization List
Change a User’s Default Object Security Policy
Modifying Privileges
Examining a User’s Privileges
Adding a Privilege
Revoking a Privilege
Reassigning All Privileges
Modifying SymbolLists
Adding a SymbolDictionary to Your Own Symbol List
Adding a SymbolDictionary to Someone Else’s Symbol List
Removing a SymbolDictionary from Your Own Symbol List
Removing a SymbolDictionary from Someone Else’s Symbol List
Disable and Enable User Logins
Explicitly Disable an Account in GemStone
Re-enable an Account that is using GemStone authentication
Re-enable an Account that is uses Unix, LDAP, or SingleSignOn authentication
Find Out Which Accounts Have Been Disabled in GemStone
Check If an Account Is Disabled
Find Out Why an Account Was Disabled
Disable and Enable Commits by User
Disable Commits
Re-enable Commits for a User
Check If a User Can Commit
8.5 Configuring GemStone Authentication
Configuring GemStone Login Security
Limiting Choice of Passwords
Disallowing Particular Passwords
Disallowing Reuse of Passwords
Disallow All Previously Used Passwords
Disallow a Specific Number of Previous Passwords
Clearing a User’s Disallowed Old Passwords
Password Aging – Require Periodic Password Changes
Repository-Wide Password Aging
Password Age Limits for Individual Users
Repository-Wide Password Expiration Warning
Per-User Password Expiration Warning
Finding Accounts with Password About to Expire
Finding Out When a Password Was Changed
Account Aging – Disable Inactive Accounts
Repository-Wide Stale Account Aging
Per-User Stale Account Aging
Finding Out When an Account Last Logged In
Enabling Account Aging and lastLoginTime
Limit Logins Until Password Is Changed
Limit Concurrent Sessions by a Particular UserId
Limit Login Failures
Record Login Failures
Disabling Further Login Attempts
8.6 Configuring UNIX Authentication
8.7 Configuring LDAP Authentication
UserId or Alias
Fully Qualified DN
Search for DN
LDAP authentication without anonymous binds
Validating passwords
Explicit mode
Search mode with anonymous bind
Search mode with authenticated bind
8.8 Configure SingleSignOn Authentication
Kerberos concepts
KerberosPrincipal and AllKerberosPrincipals
Setting up Kerberos Authentication in GemStone
Create an instance of KerberosPrincipal for the User 184
Enable SingleSignOn for that UserProfile using the new KerberosPrincipal 184
Configure the gem’s environment to set the keytab file location 184
Verify login without password 184
Using Groups to authenticate with Kerberos
KerberosPrincipal available to all users
8.9 Tracking User Logins
Login logging
Login Hook
Debugging
9.1 The Repository and Extents
Repository Growth
How To Check Free Space
9.2 Adding and Removing Extents
To Add an Extent While the Stone is Running
Possible Effects on Other Sessions
Repository>>createExtent:
Repository>>createExtent:withMaxSize:
To Remove an Extent
9.3 Reallocating Existing Objects Among Extents
To Reallocate Objects Among a Different Number of Extents
To Reallocate Objects Among the Same Number of Extents
9.4 Shrinking the Repository
9.5 Checking Page Fragmentation
9.6 Disk Space and Commit Record Backlogs
Handling signals indicating a commit record backlog
9.7 Recovering from Disk-Full Conditions
Repository Full
10.1 Overview
Logging Modes
Restoring Transactions to a Backup
How the Logs Are Used
10.2 How To Manage Full Logging
To Archive Logs
To Add a Log at Run Time
To Force a New Transaction Log
To Initiate a Checkpoint
To Change to Partial Logging
10.3 How To Manage Partial Logging
To Change to Full Logging
10.4 How To Recover from Tranlog-Full Conditions
Transaction Log Space Full
11.1 Overview
Warm and Hot Standbys
Version Compatibility
11.2 Types of Backups
Full vs. Partial Transaction logging
Verify Backup Process
11.3 How To Make an Extent Snapshot Backup
Extent Snapshot Backup when the Repository is shutdown
Extent Snapshot Backup when the Repository is running
An Example Script
11.4 How To Make a Smalltalk Full Backup
The fullBackupTo: Methods
Backup fails to run or encounters an error
Monitoring and Performance
Shared Page Cache Size
Multi-threading
Cache Statistics
Backups and Garbage Collection
Compressed Backups
Verifying a Backup is Readable
Checking Backup Start and Completion
11.5 How to Restore from Backup
Restore Status
Restoring from an Extent Snapshot Backup
Restoring from a Full Backup
Steps in restoring a full backup
Controlling Reclaim Activity When Restore Completes
11.6 How to Make and Restore Secure Backup
Creating a secure backup
Setting the certificate directories
Create an unencrypted secure backup
Create an encrypted backup
Restoring a secure backup
Restore an unencrypted backup
Restore an encrypted backup
Verifying the digital signature
11.7 How to Restore Transaction Logs
11.8 Special Cases and Errors in Restore
Precautions When Restoring a Subset of Transaction Logs
Fork-in-Time Scenario
Restoring Logs up to a Specific Log
Restoring Logs to a Point in Time
Errors While Restoring Transaction Logs
Missing Transaction Log File
Truncated or Corrupt Transaction Log File
Recovering from File System Problems
12.1 Overview
12.2 Warm Standby
Setup and run the warm standby
Activate the warm standby in case of failure in the primary
12.3 Hot Standby
Precautions regarding tranlog sequences
Hot standby processes
logsender
logreceiver
Continuous Restore Mode
Transaction Record Transmittal
Multiple standby repositories
To setup and run the hot standby
Activate the hot standby in case of failure in the primary
Planned failovers
Connecting using SSL Mode
Self signed certificates
12.4 Tuning a Warm or Hot Standby
Tuning Reclaim
13.1 Memory Organization
13.2 Configuring Temporary Memory Usage
Configuration Options
Methods for Computing Temporary Object Space
Sample Configurations
Smaller Configuration
Larger old, Smaller pom
Smaller old Area, Larger pom
Debugging out-of-memory errors
Recording Out of Memory Information to CSV file
Signal on low memory condition
14.1 Basic Concepts
Different Types of Garbage
The Process of Garbage Collection
Live objects
Transitive closure
Dead objects
Shadow objects
Commit record backlog
Shadow or Dead?
What Happens to Garbage?
Admin and Reclaim Gems
Admin and Reclaim Gem configuration parameters
GemStone’s Garbage Collection Mechanisms
Marking
Reclaiming
GcLock
Symbol Garbage Collection
14.2 MarkForCollection
Impact on Other Sessions
Scheduling markForCollection
14.3 Epoch Garbage Collection
Running Epoch Garbage Collection
Tuning Epoch
Epoch Configuration Parameters
Determining the Epoch Length
14.4 Reclaim
Reclaim Configuration Parameters
Reclaim Commit Frequency
Controlling the impact of reclaim
Speeding up reclaim
Avoiding disk space issues
14.5 Running Admin and Reclaim Gems
Configuring Admin Gem
Configuring Reclaim Gem
Starting GcGems
Stopping GcGems
Adjusting the number of Reclaim sessions
14.6 Further Tuning Garbage Collection
Multi-Threaded Scan
Tuning Multi-Threaded Scan
Memory Impact
Identifying Sessions Holding Up Voting
Tuning Write Set Union Sweep
Identifying Sessions Holding Up Page Reclaim
Finding large objects that are using excessive space
Identify Larger Objects in the Repository
Finding named objects that are large
Finding References to an Object that prevent garbage collection
Full reference path
All References
A.1 How GemStone Uses Configuration Files
System Configuration File
Executable Configuration File
Creating or Using a System Configuration File
Creating an Executable Configuration File
Nesting Configuration Files
Naming Executable Configuration Files
Application Gems
System Gems
Linked Topaz
Linked GemBuilder for Smalltalk (GBS)
Linkable GemBuilder for C Applications
Naming Conventions for Configuration Options
A.2 Configuration File Syntax
Errors in Configuration Files
Syntax Errors
Option Value Errors
Alternate ways to specify configuration parameter values
A.3 Configuration Options
CONFIG_WARNINGS_FATAL
DBF_ALLOCATION_MODE
DBF_EXTENT_NAMES
DBF_EXTENT_SIZES
DBF_PRE_GROW
DBF_SCRATCH_DIR
DUMP_OPTIONS
GEM_ABORT_MAX_CRS
GEM_CACHE_WARMER_ARGS
GEM_CACHE_WARMER_MID_CACHE_ARGS
GEM_COMPRESS_TRANLOG_RECORDS
GEM_FREE_FRAME_CACHE_SIZE
GEM_FREE_FRAME_LIMIT
GEM_FREE_PAGEIDS_CACHE
GEM_HALT_ON_ERROR
GEM_KEEP_MIN_SOFTREFS
GEM_KERBEROS_KEYTAB_FILE
GEM_KEYRING_DIRS
GEM_MAX_SMALLTALK_STACK_DEPTH
GEM_NATIVE_CODE_ENABLED
GEM_PGSVR_COMPRESS_PAGE_TRANSFERS
GEM_PGSVR_FREE_FRAME_CACHE_SIZE
GEM_PGSVR_FREE_FRAME_LIMIT
GEM_PGSVR_UPDATE_CACHE_ON_READ
GEM_PGSVR_USE_SSL
GEM_PRIVATE_PAGE_CACHE_KB
GEM_READ_AUTH_ERR_STUBS
GEM_REPOSITORY_IN_MEMORY
GEM_RPCGCI_TIMEOUT
GEM_RPC_KEEPALIVE_INTERVAL
GEM_RPC_USE_SSL
GEM_STATMONITOR_ARGS
GEM_STATMONITOR_MID_CACHE_ARGS
GEM_SOFTREF_CLEANUP_PERCENT_MEM
GEM_TEMPOBJ_AGGRESSIVE_STUBBING
GEM_TEMPOBJ_CACHE_SIZE
GEM_TEMPOBJ_CONSECUTIVE_MARKSWEEP_LIMIT
GEM_TEMPOBJ_MESPACE_SIZE
GEM_TEMPOBJ_OOMSTATS_CSV
GEM_TEMPOBJ_OOPMAP_SIZE
GEM_TEMPOBJ_POMGEN_PRUNE_ON_VOTE
GEM_TEMPOBJ_POMGEN_SCAVENGE_INTERVAL
GEM_TEMPOBJ_POMGEN_SIZE
GEM_TEMPOBJ_SCOPES_SIZE
GEM_TEMPOBJ_START_ADDR
INCLUDE
KEYFILE
LOG_WARNINGS
SHR_NUM_FREE_FRAME_SERVERS
SHR_PAGE_CACHE_LARGE_MEMORY_PAGE_POLICY
SHR_PAGE_CACHE_LARGE_MEMORY_PAGE_SIZE_MB
SHR_PAGE_CACHE_LOCKED
SHR_PAGE_CACHE_NUM_PROCS
SHR_PAGE_CACHE_NUM_SHARED_COUNTERS
SHR_PAGE_CACHE_PERMISSIONS
SHR_PAGE_CACHE_SIZE_KB
SHR_SPIN_LOCK_COUNT
SHR_TARGET_FREE_FRAME_COUNT
SHR_WELL_KNOWN_PORT_NUMBER
STN_ADMIN_GC_SESSION_ENABLED
STN_ALLOCATE_HIGH_OOPS
STN_ALLOW_NFS_EXTENTS
STN_ALLOW_NO_SESSION_INIT
STN_CACHE_WARMER
STN_CACHE_WARMER_ARGS
STN_CACHE_WARMER_SESSIONS
STN_CACHE_WARMER_WAIT_MODE
STN_CHECKPOINT_INTERVAL
STN_COMMIT_QUEUE_THRESHOLD
STN_COMMIT_RECORD_BM_CACHING
STN_COMMIT_RECORD_QUEUE_SIZE
STN_COMMIT_TOKEN_TIMEOUT
STN_COMMITS_ASYNC
STN_CR_BACKLOG_THRESHOLD
STN_DISABLE_LOGIN_FAILURE_LIMIT
STN_DISABLE_LOGIN_FAILURE_TIME_LIMIT
STN_DISKFULL_TERMINATION_INTERVAL
STN_EPOCH_GC_ENABLED
STN_EXTENT_IO_FLAGS
STN_FREE_FRAME_CACHE_SIZE
STN_FREE_SPACE_THRESHOLD
STN_GEM_ABORT_TIMEOUT
STN_GEM_LOSTOT_TIMEOUT
STN_GEM_PGSVR_CONNECT_TIMEOUT
STN_GEM_PRIVATE_PGSVR_ENABLED
STN_GEM_TIMEOUT
STN_GROUP_COMMITS
STN_HALT_ON_FATAL_ERR
STN_LISTENING_ADDRESSES
STN_LOGIN_LOG_DIR
STN_LOGIN_LOG_ENABLED
STN_LOGIN_LOG_HALT_ON_ERROR
STN_LOGIN_LOG_MAX_SIZE
STN_LOG_IO_FLAGS
STN_LOG_LOGIN_FAILURE_LIMIT
STN_LOG_LOGIN_FAILURE_TIME_LIMIT
STN_LOOP_NO_WORK_THRESHOLD
STN_MAX_AIO_RATE
STN_MAX_AIO_REQUESTS
STN_MAX_GC_RECLAIM_SESSIONS
STN_MAX_LOGIN_LOCK_SPIN_COUNT
STN_MAX_REMOTE_CACHES
STN_MAX_SESSIONS
STN_MAX_VOTING_SESSIONS
STN_NUM_AIO_WRITE_THREADS
STN_NUM_GC_RECLAIM_SESSIONS
STN_NUM_LOCAL_AIO_SERVERS
STN_OBJ_LOCK_TIMEOUT
STN_PAGE_MGR_COMPRESSION_ENABLED
STN_PAGE_MGR_MAX_WAIT_TIME
STN_PAGE_MGR_PRINT_TIMEOUT_THRESHOLD
STN_PAGE_MGR_REMOVE_MAX_PAGES
STN_PAGE_MGR_REMOVE_MIN_PAGES
STN_PGSVR_PORT_RANGE
STN_PRIVATE_PAGE_CACHE_KB
STN_REMOTE_CACHE_PGSVR_TIMEOUT
STN_REMOTE_CACHE_STARTUP_TIMEOUT
STN_REMOTE_CACHE_TIMEOUT
STN_SHR_TARGET_PERCENT_DIRTY
STN_SIGNAL_ABORT_AGGRESSIVE
STN_SIGNAL_ABORT_CR_BACKLOG
STN_SMC_SPIN_LOCK_COUNT
STN_STATMONITOR_ARGS
STN_STONE_CACHE_STARTUP_TIMEOUT
STN_SYMBOL_GC_ENABLED
STN_SYMBOL_GEM_TEMPOBJ_CACHE_SIZE
STN_TRAN_FULL_LOGGING
STN_TRAN_LOG_DEBUG_LEVEL
STN_TRAN_LOG_DIRECTORIES
STN_TRAN_LOG_LIMIT
STN_TRAN_LOG_PREFIX
STN_TRAN_LOG_SIZES
STN_TRANQ_TO_RUNQ_THRESHOLD
STN_WELL_KNOWN_PORT_NUMBER
A.4 Runtime-only Configuration Options
GemConvertArrayBuilder
GemDropCommittedExportedObjs
GemExceptionSignalCapturesStack
LogOriginTime
SessionInBackup
StnCurrentTranLogDirId
StnCurrentTranLogNames
StnLogFileName
StnLogGemErrors
StnLoginsSuspended
StnMaxReposSize
StnMaxSessions
StnStandbyRole
StnSunsetDate
StnTranLogOriginTime
copydbf
Compression of copydbf output
Using copydbf to access information on a file
copydbf with remote nodes
copydbf with raw partitions
gslist
Remote queries
Date and Time format
Exit status
gslist on Windows
pageaudit
pstack
removedbf
startcachewarmer
startlogreceiver
startlogsender
startnetldi
netldid
startstone
stoned
statmonitor
stoplogreceiver
stoplogsender
stopnetldi
stopstone
topaz
vsd
waitstone
A.1 Using NRS
GsNetworkResourceString
GEMSTONE_NRS_ALL
Controlling log file names and locations
“D” Pattern
A.2 NRS Syntax
Spaces and Special Characters
Syntax
Non-Numeric Constants
Numeric Constants
Repository and GsObjectSecurityPolicies
Global Variables and Collections
Current TimeZone
Zoneinfo
Utilities
tzselect
zdump
zic
Public Environment Variables
System Variables Used by GemStone
Reserved Environment Variables
A.1 Overview
A.2 Tranlog Analysis Scripts
Script Prerequisites
Output
Tranlog Assumptions
Filter Criteria
printlogs
Examples
searchlogs
A.3 Tranlog Structure
Tranlog Entries
Tranlog Entry Types
AbortLogout
BeginData Data BeginStoreData StoreData
Commit
Abort
BreakSerialization
Very Large Objects
Full vs. Normal Mode
A.4 Example of Tranlog Analysis
Tracking Changes to an Employee
Changed vs. new objects
Details of Changes to an Employee
A.5 Further Analysis
Class Operations
Deleted Objects
Managing Volume