bw logo

Server Operations Guide

BigWorld Technology 2.1. Released 2012.

This document is proprietary commercial in confidence and access is restricted to authorised users. This document is protected by copyright laws of Australia, other countries and international treaties. Unauthorised use, reproduction or distribution of this document, or any portion of this document, may result in the imposition of civil and criminal penalties as provided by law.


Table of Contents

1. Introduction
2. Server Configuration with bw.xml
2.1. The entry parentFile
2.2. User dependent configuration
2.3. Command-Line Options
2.4. General Configuration Options
2.5. Billing System Configuration Options
2.6. Network Configuration Options
2.7. Network Address Translation Configuration Options
2.8. Load Balancing Configuration Options
2.8.1. Entities Cardinality Configuration Options
2.9. BaseApp Configuration Options
2.9.1. Secondary Database Configuration Options
2.9.2. Packet Log Configuration Options
2.9.3. ID Configuration Options
2.9.4. Client Upstream Limits
2.9.5. Auxiliary Data Bandwidth Controls
2.10. BaseAppMgr Configuration Options
2.11. Bots Configuration Options
2.12. CellApp Configuration Options
2.12.1. Noise Configuration Options
2.12.2. ID Configuration Options
2.12.3. CellApp Profiles Configuration Options
2.13. CellAppMgr Configuration Options
2.14. DBMgr Configuration Options
2.14.1. Data Consolidation Options
2.14.2. XML Database Options
2.15. LoginApp Configuration Options
2.16. Reviver Configuration Options
2.16.1. Reviver's BaseAppMgr Configuration Options
2.16.2. Reviver's CellAppMgr Configuration Options
2.16.3. Reviver's DBMgr Configuration Options
2.16.4. Reviver's LoginApp Configuration Options
3. Cluster Administration Tools
3.1. WebConsole
3.1.1. Modules
3.1.2. Installation and Configuration
3.1.3. User Administration
3.1.4. Production Mode vs Development Mode
3.1.5. Customising
3.2. Message Logger
3.2.1. Configuration
3.2.2. File Format
3.2.3. Command Line Utilities
3.2.4. Automatic Log Archiving
3.2.5. Production Scalability
3.3. StatLogger
3.3.1. Requirements
3.3.2. Output
3.3.3. Data Collection and Aggregation
3.3.4. Configuration
3.3.5. Database
3.4. Server Command-Line Utilities
3.4.1. Control Cluster
3.4.2. MessageLogger Related Utilities
3.5. Space Viewer
3.5.1. Selecting Spaces to View
3.5.2. Viewing Spaces
3.5.3. Customising Entity and Display Colours
3.5.4. Running Space Viewer Remotely
4. Fault Tolerance
4.1. CellApp Fault Tolerance
4.2. BaseApp Fault Tolerance
4.3. ServiceApp Fault Tolerance
4.4. Fault Tolerance with Reviver
4.4.1. Specifying Components to Support
4.4.2. Recommended Reviver Layout
4.4.3. Command-Line Options
5. Backups and Disaster Recovery
5.1. Disaster Recovery
5.2. Database Snapshot Tool
5.2.1. Operational Behaviour
5.2.2. Usage
5.2.3. Requirements
5.2.4. Partitioning
5.2.5. Configuration
5.2.6. Restoring From a Snapshot
5.3. Data Consolidation Tool
5.3.1. Skipping Data Consolidation
5.3.2. Ignoring SQLite Errors
6. Controlled Startup and Shutdown
6.1. Server-wide Shutdown
6.2. Individual Application Retirement
6.2.1. BaseApp Retirement
6.2.2. CellApp Retirement
6.2.3. Retirement via WebConsole
6.2.4. Retirement via control_cluster.py
7. Stress Testing with Bots
7.1. The Login Process
7.2. Python Interface
7.2.1. Python Controller (bot_op.py)
7.2.2. Methods and Attributes
7.3. Controlling Movement
7.3.1. NodeProperties Section
7.4. Extending Bots
7.4.1. Creating New Movement Controllers
7.5. Miscellaneous Bots Issues
7.5.1. Running out of File Descriptors
8. Security
8.1. Security of the Server
8.2. Server Ports
8.3. Blocking Ports and Related Security Considerations
9. BigWorld Server Across Multiple Machines
9.1. How To Start
9.1.1. WebConsole
9.1.2. Auto Configuration Via control_cluster.py
9.1.3. Manual Start
9.2. How To Stop
9.3. How To Monitor
9.4. LoginApp and Scalability
10. Multiple BigWorld Servers in a Single LAN
10.1. Keeping Processes Separate
10.2. Centralised Cluster Monitoring
10.3. Auto-Detection of LoginApps
11. MySQL Support
11.1. Compiling DBMgr with MySQL Support
11.2. Update bw.xml To Use MySQL
11.3. Synchronise Database With Entity Definitions
11.4. Enabling Secondary Databases
11.5. Privileges
11.6. The ClearAutoLoad tool
12. RPM
12.1. Directory Structures and Files
12.2. How to Generate Binary RPM Packages
12.3. Customising RPM Packages
12.4. Setting up a Yum Repository
12.5. Install, Upgrade and Uninstall using Yum Command
12.5.1. Install and Upgrade using a RPM Package Directly
12.5.2. Install and Upgrade using Yum Repository
12.5.3. Remove an Installed Package
12.6. How to Obtain Version Number of an Installed Package
13. First Aid After a Crash
13.1. Change your coredump output directory, if necessary
13.2. Determine the first process(es) that crashed
13.2.1. BigWorld logs
13.2.2. Chronologically listing core files
13.3. Generate a stack trace of the process that crashed
13.3.1. Troubleshooting
13.4. Retrieve relevant log information
13.4.1. Generating a log summary from a core file
13.4.2. Archiving all logs
13.5. Back up the crash information
13.6. Notify BigWorld Support of the crash
13.6.1. Uploading large files
13.6.2. Providing BigWorld access to your server cluster
14. Common Log Messages
14.1. Warnings
14.2. Errors
15. Clock
15.1. BigWorld Timing Methods
15.2. Linux Clock Source
16. Machine Groups and Categories
16.1. Introduction
16.2. Configuration
16.3. User Defined Categories