Page 2
ColdFusion and HomeSite are U.S. registered trademarks of Macromedia Inc.macromedia inc.Macromedia, the Macromedia logo, Macromedia Spectra, ColdFusion logo, and JRun are trademarks of Macromedia, Inc. Java is a trademark of Sun Microsystems, Inc. Microsoft, Windows, Windows NT, Windows 95, Microsoft Access, and FoxPro are registered trademarks of Microsoft Corporation.
About This Book Advanced ColdFusion Administration is intended for anyone who needs to configure databases for the ColdFusion server. Contents Intended Audience....................xiv New Features ......................xiv Developer Resources....................xv About ColdFusion Documentation ................ xvi Getting Answers ...................... xvii Contacting Macromedia..................xviii...
About This Book Intended Audience Advanced ColdFusion Administration is intended for anyone who needs to perform ColdFusion server management tasks, such as configuring advanced security or managing clustered servers. New Features The following table lists the new features in ColdFusion 5: Benefit Feature Description...
COM components. Developer Resources Macromedia Corporation is committed to setting the standard for customer support in developer education, technical support, and professional services. The Web site is designed to give you quick access to the entire range of online resources, as the following table describes.
About This Book Resource Description Installation Support Support for installation-related issues www.coldfusion.com/support/ for all Macromedia products installation/ Professional Education Information about classes, on-site www.coldfusion.com/developer/ training, and online courses offered by training.cfm Macromedia Developer Community All the resources that you need to stay www.coldfusion.com/developer/...
Getting Answers xvii Book Description CFML Reference The online-only ColdFusion Reference provides descriptions, syntax, usage, and code examples for all ColdFusion tags, functions, and variables CFML Quick A brief guide that shows the syntax of ColdFusion tags, Reference functions, and variables Viewing online documentation All ColdFusion documentation is available online in HTML and Adobe Acrobat PDF formats.
600 Townsend Street headquarters San Francisco, CA 94103 Tel: 415.252.2000 Fax: 415.626.0554 Web: www.macromedia.com Technical Macromedia offers a range of telephone and Web-based support options. Go to http://www.coldfusion.com/ support support/ for a complete description of technical support services. You can make postings to the ColdFusion Support Forum (http://forums.coldfusion.com/DevConf/index.cfm) at...
P a r t I Data Sources and Tools This part describes data source management and introduces the ColdFusion Administrator tools. The following chapters are included: Advanced Data Source Management ..........3 Administrator Tools................39...
Chapter 1 Advanced Data Source Management This chapter describes how to create and configure ColdFusion data sources for several databases using ODBC, OLE DB, and native drivers. It also describes how to use ColdFusion to create a database file in a and how to use connection cfquery string options.
Chapter 1 Advanced Data Source Management About ColdFusion database drivers ColdFusion uses ODBC, OLE DB, and native database drivers. For detailed information about ODBC drivers, see Installing and Configuring ColdFusion Server. About OLE DB OLE DB is a Microsoft specification for a set of interfaces designed to access data. Although ODBC is primarily used to access SQL data in a platform-independent manner, OLE DB is designed to access SQL and non-SQL data in an OLE Component Object Model (COM) environment.
Page 23
About ColdFusion database drivers Installing the OLE DB provider Before you configure an OLE DB data source, you must have installed a recent version of the Microsoft Data Access Components (MDAC). MDAC includes two OLE DB providers—SQLOLEDB and MSDASQL. For Access databases, Microsoft makes available a Jet provider.
Page 24
Chapter 1 Advanced Data Source Management The following procedure describes how to configure an OLE DB data source to a Microsoft SQL Server database on Windows NT, using SQLOLEDB as the provider. To configure an OLE DB data source: Open the ColdFusion Administrator. Under Data Sources, click OLE DB.
Page 25
About ColdFusion database drivers Enter the following connection information: If SQLOLEDB is the provider Enter SQLOLEDB as the Provider, specify the Server that hosts the database, and specify the name of the Default Database. Note For the Server field, if the database is a local SQL Server database, enclose the word local in parentheses: (local).
Page 26
Chapter 1 Advanced Data Source Management Click CF Settings and specify any ColdFusion-specific settings. For example, enter a username and password if required for the data source. Note The omission of required username and password information is a common reason why a data source fails to verify. Click Create to create the new data source.
About ColdFusion database drivers If you are creating a UNIX data source, you might need to set environment variables for your database client library by editing the ColdFusion start script in <installdir>/coldfusion/bin. For detailed information about editing the ColdFusion start script for your particular database, see the section about your database.
Chapter 1 Advanced Data Source Management Using ColdFusion to Create a Data Source (UNIX only) The MERANT ODBC drivers that ship with all UNIX versions of ColdFusion include a FoxPro 2.5/dBASE driver. You can use the FoxPro 2.5/dBASE driver to create a database file in a with standard SQL syntax even if you do not have an cfquery...
Page 29
Using ColdFusion to Create a Data Source (UNIX only) Date date,</P> Descript char(254)) </cfquery> <cfquery NAME=xs DATASOURCE="newtable"> INSERT INTO Beans1 VALUES ( 1,</P> ’Kenya’, ’33’, {ts ’1999-08-01 00:00:00.000000’}, ’Round, rich roast’) </cfquery> <cfquery NAME=xs DATASOURCE="newtable"> INSERT INTO Beans1 VALUES ( 2, ’Sumatra’, ’21’, {ts ’1999-08-01 00:00:00.000000’},...
Chapter 1 Advanced Data Source Management Using Connection String Options ColdFusion 5 allows you to specify a connection string for ODBC data sources. You can do this programmatically or in the ColdFusion Administrator. About the connection string You can use the connection string to do the following tasks: Specify connection attributes that cannot be defined in the odbc.ini settings.
Using Connection String Options Limiting DSN definitions Another use of the connect string feature is to limit data source name (DSN) definitions. For example, if you are connecting to a server that has multiple databases defined, you might not want to define a ColdFusion DSN for each database.
Page 32
Chapter 1 Advanced Data Source Management Example The following code is a dynamic connection. There is no data source definition in the odbc.ini settings. <cfquery name = "DATELIST" dbtype=dynamic blockfactor=100 connectstring="DRIVER={SQL SERVER}; SERVER=(local); UID=sa; PWD=; DATABASE=pubs"> SELECT * FROM authors </cfquery>...
Connecting to DB2 Databases Connecting to DB2 Databases On Windows and UNIX, ColdFusion lets you access DB2 databases using ODBC and native drivers. Configuring DB2 options (Windows) If you install ColdFusion on a Windows server, you can configure a DB2 database as a ColdFusion data source using ODBC, OLE DB, or a native driver.
Chapter 1 Advanced Data Source Management ODBC: DB2/6000 options (Solaris) The following table describes ColdFusion options for the MERANT IBM DB2/6000 ODBC driver: Option Description Data Source Name A name for your ODBC data source. Description Descriptive information about the data source. Database Name The name of the DB2/6000 database.
Page 35
Connecting to DB2 Databases You perform the following steps: Set environment variables. Catalog a TCP/IP node. Catalog the database. Test the connection. You should be familiar with DB2 to successfully complete this process. Gather the following information before you begin: Host name where the DB2 database server resides Node name Database name...
Chapter 1 Advanced Data Source Management you create a database, it is automatically cataloged on the server with the database alias ( ) the same as the database name ( ). The client database_alias database_name uses the information in the database directory, along with the information in the node directory, to establish a connection to the remote database.
Connecting to DB2 Databases Data source settings for the ColdFusion DB2 native driver The data source setting for the native driver must point to the database name and include a valid DB2 login name and password. The catalog procedures described in the previous section make the connection through the DB2 Client Enabler software.
Page 38
Chapter 1 Advanced Data Source Management Place the dll file generated in step 2 into the appropriate directory on the server. For example, put the file on a server called DB2SERVER into the C:\sqllib\function\ folder. You could also put it into the C:\sqllib\function\unfenced\ folder.
Connecting to dBASE/FoxPro Databases Connecting to dBASE/FoxPro Databases On Windows and UNIX, ColdFusion lets you access dBASE/FoxPro databases using ODBC drivers. Note Because dBASE and FoxPro databases are configured identically in the ColdFusion Administrator, they are discussed together in this section. For information on connecting to Visual FoxPro databases, see “Connecting to Visual FoxPro Databases”...
Page 40
Chapter 1 Advanced Data Source Management ODBC: MERANT dBASE/FoxPro Driver options (Windows) The following table describes the ColdFusion ODBC options for MERANT dBASE/ FoxPro on Windows. You set these options when you configure a ColdFusion data source. Option Description Data Source Name A name for your ODBC data source.
Connecting to dBASE/FoxPro Databases Configuring dBASE/FoxPro Driver options (UNIX) If you install ColdFusion Server on a UNIX server, you can configure dBASE/FoxPro as a ColdFusion data source using the MERANT ODBC driver. The following table describes the ColdFusion ODBC options for dBASE/FoxPro (Solaris). You set these options when you configure a ColdFusion data source.
Chapter 1 Advanced Data Source Management Connecting to Excel Databases On Windows, ColdFusion lets you access Microsoft Excel using ODBC or OLE DB. For information about using OLE DB with ColdFusion data sources, see “About OLE DB” on page 4. ODBC: Microsoft Excel Driver options The following table describes ColdFusion ODBC options for Microsoft Excel data sources.
Connecting to Excel Databases ODBC: MERANT Excel Workbook Driver options The following table describes ColdFusion ODBC options for data sources created with the MERANT Excel Workbook driver: Option Description Data Source Name A name for your data source. Description Descriptive information about the data source. Database Workbook A name that identifies the workbook file containing the Excel database.
Chapter 1 Advanced Data Source Management Connecting to Informix Databases On Windows and UNIX, ColdFusion lets you access Informix databases using ODBC and native drivers. ColdFusion 5 supports Informix 7.3 and later, including Informix Dynamic Server. If you install ColdFusion on a Windows server, you can configure an Informix database as a ColdFusion data source using ODBC, OLE DB, or a native driver.
Connecting to Informix Databases Configuring Informix using the native driver The configuration options for ColdFusion native drivers are the same for Windows NT and UNIX. The following table describes ColdFusion options for the Informix native driver. You set these options when you configure a ColdFusion data source. Option Description Data Source Name...
Page 46
Chapter 1 Advanced Data Source Management You must uncompress and/or untar this file into a separate subdirectory on your server; for example: /opt/isdk. This is the directory that you point to in the start script as INFORMIXDIR. Run the script installclientsdk to install the client SDK. Before you continue, verify that you can connect to the Informix server from a client other than ColdFusion or with a utility such as iconnect.
Connecting to Informix Databases Editing the $INFORMIXDIR/etc/onconfig file Edit the $INFORMIXDIR/etc/onconfig file so that it contains the following lines: # System Configuration SERVERNUM 0 # Unique id corresponding to an OnLine instance DBSERVERNAME alldev # Name of default database server DBSERVERALIASES alldevtli # List of alternate dbservernames DEADLOCK_TIMEOUT 60 # Max time to wait for lock in distributed env.
Page 48
Chapter 1 Advanced Data Source Management Configuring Informix SETNET32 settings After you install the client software, you must configure your workstation to connect to the Informix databases. The following example assumes that the demo database that ships with Informix is installed on the Informix server and the name of the demo database is “stores7.”...
Page 49
Connecting to Informix Databases Protocol Type: olsoctcp Yield Proc: 1 - None Cursor Behavior: 0 - Close Enable Scrollable Cursors: 0 - Disabled Get DB List From Informix: 1 - Yes Now you have an Informix ODBC data source. You can use this in a ColdFusion application.
Chapter 1 Advanced Data Source Management Connecting to Sybase Databases On Windows and UNIX, ColdFusion lets you access Sybase databases using ODBC and native drivers. ColdFusion 5 supports Sybase 11 and later. If you install ColdFusion on a Windows server, you can configure a Sybase database as a ColdFusion data source using ODBC, OLE DB, or a native driver.
Connecting to Sybase Databases Native: Sybase 11 Driver options To connect to Sybase System 11 databases on Windows NT and UNIX, you must first install the Sybase client software, Sybase Open Client version 11.1.0 with Update 11.1.1 applied. To use the native driver: Install the Sybase Open Client version 11.1.0 (with Update 11.1.1 applied) client software.
Page 52
Chapter 1 Advanced Data Source Management Note If the Sybase database is on the same server as ColdFusion, make sure the $SYBASE environment variable that you set up in the ColdFusion start script is pointing to the Sybase client directory and not the Sybase server directory. Both of these directories contain an interfaces file.
Connecting to Text Databases Connecting to Text Databases On Windows and UNIX, ColdFusion lets you access text databases using ODBC drivers. ODBC: Microsoft Text Driver options (Windows) The following table describes ColdFusion ODBC options for Microsoft Text data sources. You set these options when you configure a ColdFusion data source. Option Description Data Source Name...
Page 54
Chapter 1 Advanced Data Source Management Option Description Table Type Select the default type of text file. ColdFusion supports comma-separated, tab-separated, character-separated, fixed length, and stream table types. The default type is used when creating a new table and opening an undefined table. Column Names in First Line Select this check box to use the first row of data in the text file as column names.
Connecting to Visual FoxPro Databases Connecting to Visual FoxPro Databases On Windows, ColdFusion lets you access Microsoft Visual FoxPro databases using ODBC or OLE DB. For information about using OLE DB with ColdFusion data sources, see “About OLE DB” on page 4. The following table describes ColdFusion ODBC options for Visual FoxPro data sources.
Page 56
Chapter 1 Advanced Data Source Management...
Chapter 2 Administrator Tools The tools provided with ColdFusion Administrator make it easy for you to share Web site files, analyze log files, and monitor Web site performance. This chapter introduces the Administrator Tools included with ColdFusion Server 5 and their benefits.
Chapter 2 Administrator Tools Accessing the Administrator Tools ColdFusion Server 5 includes a series of administrative tools. To access these tools, open the ColdFusion Administrator and click the Tools tab. On each page, you can click Help to get additional information about Tools tab the tool settings.
Features on the Tools Tab Features on the Tools Tab The Tools tab offers several administrative tools that you can use to help manage Web site activities or the components that make up your Web site. All tools on this tab are organized into one of the following tool groups: Logs and Statistics, System Monitoring, and Archive and Deploy.
Page 60
Chapter 2 Administrator Tools On the Logging Settings page, you can accept the defaults or change them as needed. Each time you make a change, you must apply the change by clicking Submit Change. By default, log files are stored in the CFusion\log directory and all log files are saved using the ColdFusion 5 format.
Page 61
Features on the Tools Tab Server Reports The Server Reports supplied with ColdFusion Server 5 Enterprise Edition provide instantaneous statistics about the performance of your ColdFusion Server. In addition, some of these reports provide information that you can use to track server configuration changes and view current configuration settings.
Page 62
Chapter 2 Administrator Tools Report Type Description Performance Reports Cache Pops Report This report identifies per second the average number of ColdFusion templates that were ejected from cache and the maximum average number of ColdFusion templates that were ejected from cache. Other information provided in this report includes average CPU usage, ColdFusion CPU usage, ColdFusion memory usage, and ColdFusion handle and thread counts...
Features on the Tools Tab Report Type Description Settings Summary Report The Settings Summary Report shows the status of all ColdFusion configuration settings in one view. From this view, you can print the current configuration settings, or edit them directly by clicking the setting name shown in the report.
Page 64
Chapter 2 Administrator Tools Web Server Monitoring The Web Server Configuration page in the ColdFusion Administrator enables you to easily determine the operating status of your Web servers and configured monitoring device(s). Use this page to monitor the operating status of each monitoring device, view and manage incoming server traffic, and to place a Web server in maintenance mode for necessary repairs.
Page 65
Features on the Tools Tab Server Probes The Server Probes tool in the ColdFusion Administrator enables you to actively test the health and operation of your local Web sites. Specifically, ColdFusion offers two probes for monitoring your Web site environment: Default probes The default probes let you test the availability of the ColdFusion Server or a specific URL.
Page 66
Chapter 2 Administrator Tools The tabular form on the Server Probes page identifies the names and status of each probe configured in ColdFusion along with the name of the Web server that the probe is monitoring. The probe management controls let you suspend the operation of a configured probe and/or create, edit, and remove probe configurations.
Features on the Tools Tab Load Balancing Integration The Load Balancing Integration page in the ColdFusion Administrator lets you configure ColdFusion with the Cisco Local Director. The Cisco Local Director is a network device with a secure, real-time, embedded operating system that intelligently load balances IP traffic across multiple servers.
Page 68
Chapter 2 Administrator Tools The Archive and Deploy tools group in the ColdFusion Administrator includes the following features: Archive Settings, Create Archive, Deploy Archive, and Archive Security. A description of each of these features follows. Archive Settings The Archive Settings page in the ColdFusion Administrator lets you configure various archive system settings that apply to all archive and deploy operations.
Page 69
Features on the Tools Tab The following table provides a brief description of the features presented on the Archive Settings and Variable Definition page: Feature Description Archive working The archive working directory text box lets you specify the directory directory where all archive and restore temporary files and log files are written.
Page 70
Chapter 2 Administrator Tools Create Archive The Create Archive page in ColdFusion Administrator lets you create and edit archive definitions and build archive files. To access the Create Archive page in ColdFusion, click Tools > Create Archive. Help button Controls for defining archive definitions.
Page 71
Features on the Tools Tab All archive definitions are defined and edited using the Archive Definition page. Use the navigation bar on the Archive Definition page to define the items you want to archive and restore. Each time you make a change in the Archive Definition page you must click Apply.
Page 72
Chapter 2 Administrator Tools retrieval method you can click Browse Server to specify the archive file’s location on your system. After you specified the retrieval method and location of the archive file you can then click Next on this page to specify the location to restore the file. To learn more about how to deploy archive files in ColdFusion, click Help on the Archive Deploy page.
Page 73
Features on the Tools Tab Click the names of the settings in the navigation bar to import a security certificate, sign an archive file, verify the signature of an archive file, encrypt an archive file, or decrypt an archive file. Note Certificates are required to digitally sign a ColdFusion archive file or to verify the signature of an archive file.
P a r t I I ColdFusion Security This part describes security features and configuration in ColdFusion Server. The following chapters are included: ColdFusion Security ................59 Configuring Basic Security ..............71 Configuring Advanced Security............79...
Chapter 3 ColdFusion Security This chapter introduces ColdFusion Server Basic and Advanced security features that allow you to protect a wide variety of ColdFusion resources. Contents Why Is ColdFusion Security Important?..............60 Choosing a Level of ColdFusion Security ..............62 To Learn More About Security..................
Chapter 3 ColdFusion Security Why Is ColdFusion Security Important? Today’s Web applications offer unique opportunities from e-commerce to global communication and collaboration. Today, developers and administrators alike must concern themselves with issues of security. The nature of the Web—global access, ease of connectivity and interaction, and lack of any real control over clients—...
Why Is ColdFusion Security Important? Types of ColdFusion Security ColdFusion Server provides two mutually exclusive security frameworks called Basic security and Advanced security. You can use either type of security to secure ColdFusion application development and deployment. Basic security Basic security is the initial default security framework for ColdFusion and lets you secure the ColdFusion server with password access: Application development Secure access to data sources and files with password protection.
Chapter 3 ColdFusion Security If your Web server connections are encrypted with SSL, all communications, including ColdFusion transmissions, are automatically encrypted. You do not have to do anything from within ColdFusion to activate data encryption. Choosing a Level of ColdFusion Security The rest of this chapter is designed to help you decide which type of ColdFusion security is right for your particular development needs.
Choosing a Level of ColdFusion Security Basic security covers all phases of application development and deployment. Basic security is a good solution for trusted users because it offers them a single access level—complete control. Consider implementing Basic security if you have legacy systems or other security models in place.
Chapter 3 ColdFusion Security Basic security is a good choice to protect ColdFusion resources if your company consists of a single development group or several small groups all physically located at the same site. Because these developers can be considered highly-trusted users, Basic security can still make sense when they are away from the office and are using RDS to develop applications remotely.
Page 83
Choosing a Level of ColdFusion Security Deploying applications with Basic security Basic security lets you disable execution of CFML tags that could prevent security hazards if they were used in a ColdFusion application, because they could be used to upload, delete, or otherwise manipulate files on the ColdFusion server. ColdFusion displays an error when it encounters a disabled tag in an application.
Chapter 3 ColdFusion Security Securing the ColdFusion Administrator The ColdFusion Administrator is a powerful tool that lets you perform administrative tasks like managing server performance, adding and configuring ColdFusion data sources, scheduling pages, and managing log files. You can secure the Administrator with either Basic or Advanced Security.
To Learn More About Security To Learn More About Security Security at the speed of the Web changes more frequently and over a broader spectrum than can be covered here. Allaire is dedicated to educating its customers about new security information as it becomes available. Visit the Allaire Security Zone (http://www.allaire.com/developer/securityzone/) to read Allaire’s latest security bulletins and technical briefs that provide information about issues Allaire believes are significant.
Chapter 4 Configuring Basic Security Basic ColdFusion security allows you to secure a number of ColdFusion Server resources with password access. This chapter describes configuration options for basic ColdFusion security. Contents About Basic Security ....................72 Configuring Remote Development Security (RDS) ..........73 ColdFusion Remote Development Services (RDS)..........
Chapter 4 Configuring Basic Security About Basic Security ColdFusion Server offers two levels of security: Basic and Advanced. Basic security allows you to impose the following types of control on the ColdFusion development environment: You can secure the ColdFusion Administrator with a password. Refer to “Securing the ColdFusion Administrator”...
Configuring Remote Development Security (RDS) Configuring Remote Development Security (RDS) Restricting access to your application page directories is the most important step you can take in making your site secure. You can do this using ColdFusion Basic security. However, you may find it necessary to provide broader access to these directories if, for example, you have several geographically dispersed participants in a development project.
Chapter 4 Configuring Basic Security ColdFusion Remote Development Services (RDS) ColdFusion RDS is a component of ColdFusion Server used by the ColdFusion Administrator and ColdFusion Studio to provide remote HTTP-based access to files and databases. You can use RDS to manage ColdFusion Studio access to files and databases on a server hosting ColdFusion.
ColdFusion Remote Development Services (RDS) Securing ColdFusion data sources The following table shows how ColdFusion Basic security can be configured to secure ColdFusion data sources: Method Description Security Model Basic security is Data sources are accessed Data sources that are enabled on the through RDS on the local accessible to the user locally are...
Chapter 4 Configuring Basic Security Using a Password to Restrict Access to RDS The Server, Basic Security page of the ColdFusion Administrator is used to configure passwords for securing the Administrator and for preventing unauthorized access to ColdFusion data source and file resources through ColdFusion Studio. Note Password protection is enabled by default at server installation time.
Configuring Basic Runtime Security Configuring Basic Runtime Security Basic security lets you disable execution of seven CFML tags that could present security hazards. You can, however, specify a special directory, called the Unsecured Tags Directory; this is the only directory from which ColdFusion will execute tags you disable with Basic security.
Page 96
Chapter 4 Configuring Basic Security To specify a directory from which otherwise blocked tags can be executed, enter a fully qualified path (using forward slashes) in the Unsecured Tags Directory field. By default, this is the directory in which the ColdFusion Administrator is installed.
Chapter 5 Configuring Advanced Security This chapter describes how to set up and configure ColdFusion Server advanced security. Advanced security, which is based on Netegrity SiteMinder v. 4.11, lets you protect a wide variety of ColdFusion resources. Contents What is Advanced Security?..................80 Advanced Security Basics ..................
Chapter 5 Configuring Advanced Security What is Advanced Security? ColdFusion Server Professional and Enterprise editions include Advanced security features that provide scalable, granular security for building and deploying your ColdFusion applications: Application development Control access to files, data sources and administration for each developer on your team.
Advanced Security Basics Advanced Security Basics All types of Advanced Security implement the following four elements: User directories Resources Policies Security contexts This section introduces these elements and describes how they work together to build your Advanced Security framework. For detailed, hands-on instructions for actually implementing an Advanced Security framework, see “Creating an Advanced Security Framework”...
Chapter 5 Configuring Advanced Security Resource types A ColdFusion resource type that you want to protect is the core of Advanced security. Selecting a resource to protect doesn’t specify how to protect it or which users can access it; you’re simply telling ColdFusion the name and, if applicable, the action of the resource you intend to secure.
Advanced Security Basics Security contexts A security context is a container for logically-related groups of policies. You can create and implement as many security contexts as your application or development environment requires: You can reuse a single security context, implementing it across several applications.
Chapter 5 Configuring Advanced Security Advanced Security Implementations The four elements discussed in the previous section—user directories, resources, policies, and security contexts—are the building blocks of every type of security framework you’ll create. You can implement the following types of Advanced Security: User security Secures functionality in a ColdFusion application.
Advanced Security Implementations Securing resources with RDS security Remote Development Services (RDS) provides a secure connection from ColdFusion Studio to the ColdFusion Server environment and is a prerequisite to accessing data sources, using server-based browsing, and running the interactive debugger. ColdFusion RDS security provides security services in a team-oriented ColdFusion development environment where groups of developers, working in ColdFusion Studio, require different levels of access to ColdFusion files and data sources.
Chapter 5 Configuring Advanced Security accessed or altered by another company’s applications. It also ensures that no applications can tamper with system resources. The access permissions you assign to a directory tree through a security sandbox override any other access permissions users might have for the tree. For example, suppose you designate the directory as a security c:/applications/hr_app...
Page 105
Advanced Security Implementations For example, as a ColdFusion Server administrator, you’ll probably want to assign Administrator access to one or two other users, thus ensuring you’ll have backup administrators and your company won’t have to forgo administrative support if you’re away. You might also want to create a class of Privileged access administrators who can manage all aspects of the ColdFusion environment except Basic and Advanced security.
Chapter 5 Configuring Advanced Security Creating an Advanced Security Framework No matter which Advanced Security feature you choose to implement—user security, RDS security, a security sandbox, or administrator security—you’ll follow the same basic steps for creating the framework: Set up the security server. See “Setting Up a Security Server” on page 89 for more information.
Setting Up a Security Server Setting Up a Security Server The first step to implementing Advanced security is setting up a security server. In a non-clustered environment, the security server is the server hosting ColdFusion, where your ColdFusion programming resources, files, data sources, custom tags, Verity collections and so on, are stored.
Page 108
Chapter 5 Configuring Advanced Security ColdFusion Cache Settings The Security Server value is the physical location of the security server. By default, this is the localhost IP# 127.0.0.1. You can supply an IP address or a logical name that can be resolved to a physical address. Enter a Shared Secret, which is part of the encryption key that validates Advanced security transactions.
Caching Advanced Security Information Caching Advanced Security Information Caching Advanced Security information can greatly improve performance within your ColdFusion applications. The ColdFusion Administrator provides the following Advanced security caches: Security Server Policy Store Cache caches Advanced security information. You can load this cache at startup. By default, it is notified of administrative changes to the policy store once every minute.
Chapter 5 Configuring Advanced Security Defining User Directories User and group authentication is carried out against either an existing Windows NT domain, an LDAP directory, or an ODBC data source. When you set up Advanced security, you must specify at least one user directory. You can add as many user directories as you like.
Page 111
Defining User Directories Enter a username and password if the domain, directory, or data source requires one. You can leave these fields blank if ColdFusion Server is running under Administrator access. Select the Secure Connect check box to implement encrypted transmission of authentication information.
Page 112
Chapter 5 Configuring Advanced Security and point at the file installed in the SmSampleUsers.mdb cfusion\database directory. Use the ColdFusion Administrator Advanced Security page to add a User Directory. Select the ODBC namespace and enter SmSampleUsers in the location form field. See “Defining User Directories” on page 92 for more information. Associate a user or group with a policy in your security context.
Defining a Security Context Defining a Security Context The Security Context is a logical set of resources grouped together from an administrative perspective. It does not necessarily correspond to a ColdFusion application or resource name. As its name suggests, the security context is used to establish a context in which authentication and authorization actions are carried out.
Chapter 5 Configuring Advanced Security Specifying Resources to Protect When you define a security context, you specify the types of resources to protect, for example, files and directories. Now you must specify exactly which resources and which actions to protect. For example, you might limit write access to files at a specific pathname.
Page 115
Specifying Resources to Protect You see the Resource View page again, showing the policy you just created. Other available policies appear in a drop-down box at the bottom of the page. Select the check boxes that correspond to the actions you want to protect. Now you can add users to the policy.
Chapter 5 Configuring Advanced Security Implementing ColdFusion RDS Security ColdFusion RDS security provides security services to developers working in ColdFusion Studio. See “Securing resources with RDS security” on page 85 to learn about RDS security concepts. In order to implement RDS security, you must use the ColdFusion Administrator to: Set up the security server.
Implementing User Security Implementing User Security The user security feature allows ColdFusion developers to authenticate users and match protected resources with authorized users. See “Securing applications with User security” on page 84 to learn about user security concepts. In order to implement user security you must use the ColdFusion Administrator to: Set up the security server.
Chapter 5 Configuring Advanced Security Implementing Server Sandbox Security ColdFusion Server Enterprise edition supports server sandbox security for hosted sites. This security feature, controlled by the ColdFusion administrator of a hosted site, offers runtime security based on directory access at a hosted site. See “Securing applications with a security sandbox”...
Page 119
Implementing Server Sandbox Security If you chose Security Context in step 7, select an existing security context from the Security Context drop-down. 10 Enter the username and password for the user whose privileges you want applied to the sandbox. This user must be a member of the security context or NT Domain you selected in step 9.
Chapter 5 Configuring Advanced Security Securing the ColdFusion Administrator With ColdFusion Server, you can decentralize administrative responsibility by creating multiple administrators. Overall security is maintained because these additional administrators can control only the resources and policies for which you’ve given them explicit responsibility. You can assign the following types of administrative access to any user: Administrator Provides complete read and write access to all ColdFusion Administrator pages.
Viewing a Map of your Security Framework Viewing a Map of your Security Framework ColdFusion lets you display and print a map that details all the components of your Advanced security framework. To view a map of your currently defined security framework: Open the ColdFusion Administrator and click the Advanced Security link.
Chapter 5 Configuring Advanced Security An Example of ColdFusion Studio Security This example shows you how to limit ColdFusion Studio access to a specific set of files and/or data sources on a remote server based on username/password authentication. For this example, assume you are responsible for two development groups, Mars and Venus.
An Example of ColdFusion Studio Security Enter the server name or a TCP/IP address for the LDAP option. If you specify an LDAP directory you can fill out the Lookup Start field with uid= and the Lookup End field with ,ou=ou_name,o=org_name. If you leave the Lookup fields blank then the ColdFusion Studio User will have to enter their entire distinguished name rather than just their user name.
Chapter 5 Configuring Advanced Security You see the Add Resource dialog. Enter c:\ to protect all files on the C:\ drive and click OK. Repeat steps 1 and 2 to protect the following directories: c:\development c:\development\mars\* c:\development\venus\* Now that you’ve explicitly protected all the directories and sub directories and files of interest, move on to defining policies.
An Example of ColdFusion Studio Security C_R_FILE C_W_FILE C_DEVELOPMENT_R_FILE C_DEVELOPMENT_W_FILE. Now the MARS policy has access rights to the and all files in the mars_dsn directory and sub directories. c:\development\mars For VENUS we want to add the following rules: VENUS_DSN VENUS_R_DIRECTORY VENUS_W_DIRECTORY VENUS_R_FILES...
Chapter 5 Configuring Advanced Security Enable ColdFusion Studio Security The last step is to actually enable Studio Security in the Administrator so that users trying to access ColdFusion Server resources from Studio will be properly authenticated before access is granted. To enable ColdFusion Studio security: On the Advanced Security page click the “Use ColdFusion Studio Authentication”...
Advanced Security Single Sign-On Advanced Security Single Sign-On Single sign-on is the ability to authenticate once, even when two servers are involved. For example, if the Microsoft IIS Web server authenticates a user, a ColdFusion page implementing the IsAuthenticated function would not need to re-authenticate that user.
Chapter 5 Configuring Advanced Security Undocumented Tags and Functions The ColdFusion Administrator makes use of several tags and functions not currently documented in the CFML Language Reference. In the context of the ColdFusion Administrator, access to the functionality provided by these undocumented tags and functions is restricted to people with administrative privileges.
Undocumented Tags and Functions CFUSION_SETTINGS_REFRESH() Refreshes some ColdFusion settings not requiring a restart CFUSION_DBCONNECTIONS_FLUSH() Disconnects all currently connected ColdFusion datasources Administrative Tags In addition to standard CFML tags, the ColdFusion 5 Administrator uses the following undocumented tags: CFINTERNALDEBUG Used for internal ColdFusion debugging by product development and to PCode templates without executing them (used by the CFML Syntax Checker).
P a r t I I I Advanced Verity Tools This part describes a number of Verity tools and utilities you can use for configuring the Verity K2 Server search engine, as well as creating, managing, and troubleshooting Verity collections. The following chapters are included: Configuring Verity K2 Server............
Chapter 6 Configuring Verity K2 Server This section provides information about setting up and configuring the Verity K2 server, which is installed with ColdFusion Server. Contents Overview ........................116 About K2 Server ....................... 118 Starting K2 Server ....................120 Stopping K2 Server ....................122 Editing the k2server.ini File ..................
Chapter 6 Configuring Verity K2 Server Overview ColdFusion Server 5 includes an OEM restricted version of the Verity K2 Server, which incorporates a highly scalable search server architecture. K2 supports simultaneous indexing of distributed enterprise repositories and handles hundreds of concurrent queries and users. You will see considerable performance improvements when using K2 Server to search Verity collections.
Page 135
Overview Collections that will be used by K2 Server during a search are required to be registered for use by that K2 Server. This is accomplished by editing the K2 Server file. Note that K2 server must be stopped and restarted before this file k2server.ini is read and the K2 collections are ready to be used.
K2 broker, ColdFusion will not restrict document searches. The restricted version of K2 Server installed with ColdFusion has document search limits as follows: 125,000 documents (ColdFusion Professional) and 250,000 documents (ColdFusion Enterprise). Macromedia Spectra sites have a limit of 750,000 documents. Two Verity modes now supported...
About K2 Server Note To use the K2 mode, you must edit the server registration file k2server.ini configure ColdFusion to use K2 Server, and r start the K2 Server executable, k2server.exe How ColdFusion determines which mode to use ColdFusion determines the Verity Search mode by comparing the collection name specified in the tag against the local registry.
Chapter 6 Configuring Verity K2 Server Starting K2 Server The ColdFusion installer places the K2 files into the following directories: Windows platforms: cfusion\bin UNIX: opt/coldfusion/verity/<platform>/bin The K2 Server is started from the command line or from a script in the Unix environment and can be integrated as a service within the Windows NT environment.
Starting K2 Server Windows batch file example The Windows batch file installed as looks like this: cfusion\bin\startk2server.bat set K2_MODE=SEARCH k2server -inifile k2server.ini To start K2 Server, open a command window and execute the batch file. Running K2 Server as a Windows service When you use the option, K2 Server runs as a Service in Windows.
Chapter 6 Configuring Verity K2 Server Stopping K2 Server You can run K2 Server either as a Windows service or in a command window, as an ordinary application. Unless you use the option when starting K2 -ntService 1 Server, K2 runs in the command window. Stopping K2 when run as a service To halt K2 Server when it is running as a Windows service, you have two options: Open the Services Control Panel and stop the K2 Server service.
Page 141
Stopping K2 Server if [ "$pid" != "" ] ; then kill $pid pidproc $1 if [ "$pid" != "" ] ; then sleep 5 # give it sometime to die pidproc $1 if [ "$pid" != "" ] ; then # if it still lives, use -9 kill -9 $pid # Make sure K2 server goes away...
Chapter 6 Configuring Verity K2 Server Editing the k2server.ini File To enable a collection for searching using K2 Server, you need to first set up the file. On Windows platforms, can be found in: k2server.ini k2server.ini . On UNIX, can be found in: cfusion\bin k2server.ini opt/coldfusion/verity/...
Editing the k2server.ini File k2server.ini file listing Here’s an example of the file for Windows platforms. Line numbers are k2server.ini included for reference. ## This is an example of a K2 Server ini file used with ColdFusion. ## This Server section provides keywords that control ## the behavior of the entire server.
Page 144
Chapter 6 Configuring Verity K2 Server 50 ## Assume there is the collection called "myCollection" 51 ## created by ColdFusion. 52 ## 53 ## The following [coll-0] and [coll-1] collection sections 54 ## register the collections created by ColdFusion. 55 ## 56 ## The "collAlias"...
k2server.ini Parameter Reference k2server.ini Parameter Reference The K2 Server configuration file is composed of a series of sections. k2server.ini The first section, , provides keywords that control the behavior of the entire [Server] server. Each subsequent section, (in the form , and so forth) [Coll-1] [Coll-2]...
Chapter 6 Configuring Verity K2 Server Parameter Description broker(n) Brokers to ping on startup. Multiple brokers may be specified. For example: broker(1)=machinea:9900 broker(2)=machineb:9901 maxColSize The maximum width of the fields to return to the results list, in bytes. Default is 2048 bytes.
k2server.ini Parameter Reference Keyword Description resultCacheTimeout Timeout in milliseconds for the result cache. Timeout occurs after 60 seconds or when the cache overflows based on resultCacheQuota . resultCacheQuota The number of slots per segment for the result cache. The result cache is composed of 16 segments, each of which has a number of slots for caching items in: K2SearchNew, K2SearchRecv, K2DocReadBatch.
Page 148
Chapter 6 Configuring Verity K2 Server Keyword Description knowledgeBase The path name to a knowledgebase map file, which identifies numerous topic sets (indexed topics). The value of knowledgeBase identifies the topic sets (multiple) to make available to clients at start-up for every search service.
Using the rck2 Utility to Search K2 Documents Using the rck2 Utility to Search K2 Documents command-line tool allows you to search collections associated with a K2 rck2 Server in a K2 Search System. rck2 is installed into the ColdFusion bin directory: UNIX: /opt/coldfusion/bin Windows:...
Chapter 6 Configuring Verity K2 Server rck2 Command Description x <score precision> Set score precision to 8 or 16 bit. By default, 16 bit precision is used. Display online help for the rck2 command options. h or ? Error Messages All K2 Client API functions return an error code, and K2Success is the successful return value.
Chapter 7 Indexing XML Documents This chapter provides an overview of the process of configuring Verity for indexing XML files. Contents Indexing Overview ....................138 Style Files ......................... 139 Indexing XML Documents..................143...
Chapter 7 Indexing XML Documents Indexing Overview The addition of Verity K2 to ColdFusion 5 includes the ability to index and search XML documents. To be properly indexed, XML data files must be well-formed XML documents, as specified in the Extensible Markup Language Recommendation http:/ /www.w3.org/TR/REC-xml.
Style Files Style Files The following style files are required to enable indexing of XML files. Default style files are installed into in the directory (Windows) cfusion\verity\common\style directory (Linux and UNIX). opt/coldfusion/verity/common/style Style File Description style.uni Invokes the XML filter for indexing XML documents. style.xml Modifies the default behavior of the XML filter.
Page 158
Chapter 7 Indexing XML Documents ? "ignore" will skip indexing xmltag, yet index contents ? between the beginning and end of this pair of xmltags ?> <?next 2 sample lines commented out: <ignore xmltag="section_1" /> <ignore xmltag="section_2" /> ?> <?note: ? "preserve"...
Style Files style.xml command syntax <command attribute="value"/> Use these commands in the style.xml file to manage how Verity handles individual XML elements. Refer to the file listing for examples of these commands. style.xml Command Description field Indexes the content between the pair of specified XML tags as field values.
Chapter 7 Indexing XML Documents The following command indexes the content between the start and end tags of the specified xmltag as a field, which is given the same name as xmltag: <field xmltag = "column_1"/> The following command indexes the content between the start and end tags of the specified as a field, which is given the name specified in the xmltag...
Indexing XML Documents Indexing XML Documents To prepare for indexing XML documents: Make sure that the XML filter ( ) resides in flt_xml.dll flt_xml.sl flt_xml.so the bin directory for the installed platform. Make sure that the contains the directive for invoking the XML filter. style.uni If custom fields or zones are required, define them in the file.
Chapter 8 Verity Spider Overview The Verity Spider enables you to index Web-based and file system documents throughout the enterprise. Verity Spider works in conjunction with the Verity KeyView document filtering technology so that more than two hundred of the most popular application document formats can be indexed, including Office2000 and WordPerfect, ASCII text, HTML, SGML, XML and PDF (Adobe Acrobat) documents.
Page 165
Overview Flow control When indexing Web sites, Verity Spider distributes requests to Web servers in a round-robin manner. This means one URL is fetched from each Web server in turn. With flow control, it is possible that a faster Web site will finish before a slower one. Regardless, the Verity Spider optimizes indexing every Web server.
Chapter 8 Verity Spider Verity Spider Syntax The following section shows the syntax for several basic types of Verity Spider indexing tasks. Overview Before you create an indexing task for a new collection, you should make copies of the relevant default style files to ensure that you have a set of template style files in a known, stable state.
Verity Spider Syntax Using a command file If you want simpler reuse and archiving of your indexing commands, you should take advantage of the abstraction offered by the option. By using an ASCII text -cmdfile file to store a task’s options, you also avoid the pitfall of using special characters in an option’s parameter value.
Page 168
Chapter 8 Verity Spider -refresh Used for updating a collection, specifies that Verity Spider process only those documents which qualify as follows: They are new documents in the repository, and they qualify for indexing under the criteria. They exist in the collection and are recorded in the Verity Spider persistent store with a status of done.
Core Options Core Options -cmdfile Specifies that Verity Spider reads command-line syntax from a file in addition to the options passed in the command-line. This option includes the path name to the file containing the command-line syntax. The -cmdfile option circumvents command-line length limits.
Page 170
Chapter 8 Verity Spider -jobpath Syntax -jobpath path Specifies the location of the Verity Spider databases and the indexing job-related files and directories. The job-related directories and their contents are: log All Verity Spider log files. See -loglevel for descriptions of the log files. bif Bulk insert files.
Processing Options Processing Options -abspath Type: File system only Generates absolute paths for files. Use this option when the document locations are not going to change, but the collection might be moved around. When you index a Web server’s contents through the file system, you should use with to map the absolute filepaths to URLs.
Page 172
Chapter 8 Verity Spider By default, each indexing thread uses as much memory as is available from the system. -maxnumdoc Syntax: -maxnumdoc num_docs Specifies the maximum number of documents to be downloaded or submitted for indexing. The value for num_docs does not necessarily correspond exactly to the number of documents indexed.
Page 173
Processing Options By default, a document checksum is computed based on the CRC-32 algorithm. The checksum combined with the document size is used to determine if the document is a duplicate. See also -followdup. -noindex Specifies that the Verity Spider gathers document locations without indexing them. The document locations are stored in a bulk insert file (BIF), which is then submitted to the collection.
Page 174
Chapter 8 Verity Spider Note You should not run more than one Verity Spider process in persistent mode. As the Verity Spider is a resource intensive process, you should only run it in persistent mode with an interval of less than one day. For time intervals greater than twelve hours, you should use some form of scheduling.
Page 175
Processing Options For example, to map the filepath , use the /usr/pub/docs http://web/~verity following: vdkvgwkey /usr/pub URL http://web/~verity See also -abspath. -processbif Syntax: -processbif ’command_string !*’ Due to the use of special characters, which represent the bulk insert file (BIF), you must run Verity Spider with a command file using the option.
Page 176
Chapter 8 Verity Spider -submitsize Syntax: -submitsize num_documents Specifies the number of documents submitted for indexing at one time. The default value is 128. The upper limit is 64,000. Note Although larger values mean more efficient processing by the indexer, smaller values will allow more parallelism on multi-CPU systems.
Networking Options Networking Options -agentname Syntax: -agentname string Type: Web crawling only. Specifies the value for the agent name field that is part of the HTTP request. Since Web servers can be configured to return different versions of the same page depending on the requesting agent, you can use -agentname to impersonate a browser client.
Page 178
Chapter 8 Verity Spider For example, previous versions of Verity Spider did not support the "Host" header, which is needed for Virtual Host indexing. Also, a "Proxy-authentication" header was needed to pass a username and password to a proxy server. In Verity Spider V3.7, the "Host"...
Page 179
Networking Options On Windows NT, you should include double quotes around the argument to protect the special character ( * ). On UNIX, you should use single quotes. Note that this is only required when you run the indexing job from a command line. Quotes are not necessary within a command file (-cmdfile).
Page 180
Chapter 8 Verity Spider Specifies the time period, in seconds, that the Verity Spider should wait before timing out on a network connection and on accessing data. The data access value is automatically twice the value you specify for the network connection timeout. The default value for the network connection timeout is 30 seconds, and therefore the value for the data access timeout is 60 seconds.
Paths and URLs Options Paths and URLs Options -auth Syntax: -auth path_and_filename Specifies an authorization file to support authentication for secure paths. Note There must be a corresponding " " entry in the Information Server Authfile= configuration file, , so that documents can be accessed for viewing. inetsrch.ini Both must point to the same file.
Page 182
Chapter 8 Verity Spider -followdup Specifies that Verity Spider follows links within duplicate documents, although only the first instance of any duplicate documents will be indexed. You may find this option useful if you use the same home page on multiple sites. By default, only the first instance of the document is indexed, while subsequent instances are skipped.
Page 183
Paths and URLs Options -nodocrobo Specifies ROBOT META tag directives are to be ignored. In HTML 3.0 and earlier, robot directives could only be given as the file robots.txt under the root directory of a Web site. In HTML 4.0, every document can have robot directives embedded in the META field.
Page 184
Chapter 8 Verity Spider -pathlen Syntax: -pathlen num_pathsegments Limits indexing to the specified number of path segments in the URL or file system path. The path length is determined as follows: The host name and drive letter are not included. For example, neither www.spider.com:80/ nor C:\ would be included in determining the path length.
Page 185
Paths and URLs Options -reparse Type: Web crawling only. Forces parsing of all HTML documents already in the collection. You must specify a starting point with the option when you use -start -reparse You can use -reparse when you want to include paths and documents which were previously skipped due to exclusion or inclusion criteria.
Chapter 8 Verity Spider Content Options -casesen Details Makes processing case-sensitive by specifying that the spider process separately keys that differ only in case. Use only for indexing UNIX servers. -exclude Syntax: -exclude exp_1 [exp_n] ... Files, paths and URLs matching the specified expression(s) will not be followed. If you use backslashes, you must double them so they are properly escaped.
Page 187
Content Options On Windows NT, you should include double quotes around the argument to protect the special characters such as (*). On UNIX, you should use single quotes. Note that this is only required when you run the indexing job from a command line. Quotes are not necessary within a command file ( -cmdfile To use regular expressions, also specify the...
Page 188
Chapter 8 Verity Spider Note When specifying an URL, you must use full, absolute paths using the same format as appears in the HTML hyperlink. If the link is relative, you must change it to absolute to use it with -indexclude. See Also -regexp.
Page 189
Content Options -indmimeexclude Syntax: -indmimeexclude mime_1 [mime_n] ... Specifies that only those MIME types which match the expressions be followed but not indexed. On Windows NT, you should include double quotes around the argument to protect the special characters such as (*). On UNIX, you should use single quotes. Note that this is only required when you run the indexing job from a command line.
Page 190
Chapter 8 Verity Spider -indskip Syntax: -indskip HTML_tag "exp" Type: Web crawling only. Specifies Verity Spider is follow and parse links, but not index, any HTML document which contains the text of exp within the given HTML_tag. For multiple HTML_tag and exp combinations, use multiple instances of the -skip option.
Page 191
Content Options -metafile Syntax: -metafile path_and_filename Type: Web crawling only. Allows you to use a text file to map custom meta tags to valid HTTP header fields. If you use backslashes, you must double them so they are properly escaped. For example: C:\\test\\docs\\path.
Page 192
Chapter 8 Verity Spider You cannot use the question mark ( ? ) wildcard, and the option does not -regexp allow you to use regular expressions. to allow the Verity Spider to follow documents, without -indmimeexclude indexing them, to gain access to other desirable document types. -mimeinclude Syntax: -mimeinclude mime_1 [mime_n] ...
Page 193
Content Options If you use backslashes, you must double them so they are properly escaped. For example: C:\\test\\docs\\path To use regular expressions, also specify the -regexp option. Example 1 To skip all HTML documents which contain the word "personnel" in the Title element, use the following: -skip title "personnel"...
Chapter 8 Verity Spider Locale Options -charmap Syntax: -charmap name Specifies the character map to use. Valid values are 8859 or 850. The default value is 8859. -common Specifies path to the Verity home directory, , where verity/ verity/prdname/common prdname is the user-definable portion of the installation directory. Note This option is typically not needed, as long as the PATH environment variable is set correctly.
Page 195
Locale Options Where verity/prdname is the user-definable portion of the installation directory, and platform represents the platform directory.
Chapter 8 Verity Spider Logging Options -loglevel Syntax: -loglevel [nostdout] argument Specifies the types of messages to log. By default, messages are written to standard output and to various log files in the subdirectory named /log beneath the Verity Spider job directory. If you add nostdout to the loglevel argument, messages will not be written to standard output.
Page 197
Logging Options Choose one of the following arguments to determine which message types are logged. Loglevel Arguments Description summary Includes the following message types: information, warning, error, badkey, progress, summary Use this option only if you do not want skip type messages. skip Includes the following message types: information, warning, error, badkey, progress, skip...
Chapter 8 Verity Spider Maintenance Options -nooptimize Prevents the Verity Spider from optimizing the collection, thus reducing processing overhead during the indexing job. Use this option sparingly, as it leaves the collection in less than optimum shape. Some examples of when you might want to use this option are: You want to manually perform custom optimization of the collection, using mkvdk.
Setting MIME Types Setting MIME Types You can use the MIME type criteria options -mimeinclude, -indmimeinclude, -mimeexclude and -indmimeexclude to include or exclude MIME types. Syntax restrictions When you specify MIME type criteria, keep in mind the following restrictions. Using the wildcard character (*) The asterisk (*) wildcard character does not operate as a regular expression for the value of the MIME type criteria.
Chapter 8 Verity Spider When you encounter MIME Types being dropped, make sure the Web server you are indexing has the necessary MIME Type information. See the documentation for your Web server for information about specifying MIME Types. You can examine the indexing job’s log files for indications that files are being skipped due to MIME Types.
Setting MIME Types Furthermore, you should also use inclusion and exclusion criteria to finely control what is indexed. If your list of file types to index is rather long, use one of the exclusion criteria: (-exclude, , or ) to exclude -indexclude -mimeexclude -indmimeexclude...
Chapter 9 Managing Verity Collections with the mkvdk Utility is a command-line utility installed with ColdFusion that you can use to mkvdk perform maintenance operations on Verity collections, which are the primary data type for building searching/indexing functionality into your ColdFusion application pages.
Chapter 9 Managing Verity Collections with the mkvdk Utility Overview of the Verity mkvdk Utility utility is an indexing application, provided with other Verity utilities, that mkvdk can be used in various ways to create and maintain collections. It is a command line utility that can be used within other applications or shell scripts to provide more sophisticated scheduling and other capabilities.
Getting Started with the Verity mkvdk Utility Type Number Status Info Verbose Debug To calculate the numeric parameter, add up the numbers for the message types you want to include. The default for both is 15, which selects -outlevel -loglevel fatal, error, warning, and status messages (1+2+4+8).
Chapter 9 Managing Verity Collections with the mkvdk Utility Alternatively, you can set up a collection and insert documents in one mkvdk command, using this syntax: mkvdk -create -collection collectionname -bulk -insert filespec Note option can be used only once to create the collection directory -create structure.
Getting Started with the Verity mkvdk Utility Building the word list The following command builds the word list in the collection residing in the path directory. mkvdk -words -collection path General processing options provides a variety of general processing options, described in the following mkvdk table: Option...
Page 208
Chapter 9 Managing Verity Collections with the mkvdk Utility Option Description This option prevents optimization by this instance of mkvdk . Using this option -nooptimize turns off the service level VdkServiceType_Optimize. The service types determine what type of work the Verity engine and its self-administration features will execute on a collection.
Getting Started with the Verity mkvdk Utility The following command performs servicing only. Use this command if you only want to index submitted documents and service the collection. mkvdk -collection path Deleting documents from a collection The following command deletes documents from a collection. mkvdk -delete -collection path filespec Bulk inserting or deleting The following command specifies bulk insertion of a list of documents:...
Getting Started with the Verity mkvdk Utility Type Number Info Verbose Debug Document processing options provides a variety of document processing options, described in the following mkvdk table: Option Description -extract This option extracts field values from documents, using the field extraction rules specified in the style.tde file.
Chapter 9 Managing Verity Collections with the mkvdk Utility Bulk Submit Options provides a variety of bulk submit options, described below. An overview to mkvdk using the feature is described earlier under “Using Bulk Insert and Delete.” For complete information about using bulk submit to insert, update, and delete documents, see Chapter 3.
Collection Maintenance Options Collection Maintenance Options provides a variety of collection maintenance options, described in the mkvdk following table: Option Description -backup dir This option backs up the collection into the specified directory. Note that the backup will not include the tde subdirectory. The tde subdirectory is created by and for Topic Document Entry if Topic Document Entry is used to create or maintain the collection.
Chapter 9 Managing Verity Collections with the mkvdk Utility Deleting a collection To delete a collection, use the appropriate command for your operating system. For example, to remove the collection directory structure and control files on a UNIX system, use the following command. rm -r -collection_path Purging a collection The following command deletes all documents from a collection, but does not delete...
Collection Maintenance Options Keyword Description spanword This keyword creates a spanning word list across all the collection’s partitions. A collection consists of numerous smaller units called partitions each of which includes a word list. Optionally, a spanning word list can be built with an ngram index.
Chapter 9 Managing Verity Collections with the mkvdk Utility About optimized Verity databases The Verity Database (VDB) is the fundamental storage mechanism responsible for supporting dynamic access to documents in collections. A VDB consists of simple tables with rows and columns that relate to each other by row position. VDB tables are not relational, and their architecture supports quick and efficient searching over textual data.
Chapter 10 Verity Troubleshooting Utilities This chapter provides information about using a variety of Verity utilities for troubleshooting Verity collections. Contents Overview of Verity Utilities ..................200 Using the Verity rcvdk Utility.................. 201 Attaching to a Collection Using rcvdk ..............202 Viewing Results of the rcvdk Utility ...............
Chapter 10 Verity Troubleshooting Utilities Overview of Verity Utilities The following command line utilities are included with ColdFusion for performing a variety of operations on Verity collections: rcvdk Searching collections and displaying documents. See “Using the Verity rcvdk Utility” on page 201.
Using the Verity rcvdk Utility Using the Verity rcvdk Utility Using , you can check the contents of a collection from the command line. rcvdk allows you to write a variety of queries, using words and phrases separated by rcvdk commas and/or Verity query language.
Chapter 10 Verity Troubleshooting Utilities Attaching to a Collection Using rcvdk To search a collection, you first must attach to it using the command. This command must include the path name to a collection directory as an argument. After you press return, reports whether the attach command was successful.
Viewing Results of the rcvdk Utility Viewing Results of the rcvdk Utility After you have attached to a collection and issued a search command successfully, you can view the results list and look at the retrieved documents. You can use the options in the following table: Option Description...
Chapter 10 Verity Troubleshooting Utilities The following table describes each of the default fields: Field Name Description Number The rank of the document in the results list. The document with the highest score is ranked number 1. Score The score assigned to each retrieved document, based on its relevance to the query.
Page 223
Viewing Results of the rcvdk Utility 9: Document Filters and Formatting 10: Collection Style Summary 11: Collection Basics 12: Universal Filter Document Types 13: Using the style.dft File 14: Supported Field Types 16: Recognized Document Types 17: Custom Zone Definitions 18: The KeyView Filter Kit RC>...
Chapter 10 Verity Troubleshooting Utilities Using the Verity didump Utility Using the utility, you can view key components of the word index per didump partition. The word list consists of a list of all words indexed by the Verity engine. The zone list is a list of all zones found by the engine.
Using the Verity didump Utility To view the occurrences of a specific word or pattern, enter a command using the -pattern option, as in the following example: didump -pattern acronym 00000003.did The didump utility will display information about the number of occurrences of the word “acronym.”...
Chapter 10 Verity Troubleshooting Utilities Viewing the zone attribute list with didump The zone attribute list contains a list of the HTML attributes for the zones identified by the HTML zone filter. The zone attributes listed can be searched using the Verity IN operator together with the WHEN operator in a query.
Using the Verity browse Utility Using the Verity browse Utility A documents table is built for each partition in a collection. The documents table is used for field searching and for sorting search results. The fields within the documents table are defined by the following collection style files: defines fields used internally by the Verity engine, identified by an style.ddd initial underscore character (_)
Chapter 10 Verity Troubleshooting Utilities Displaying fields There are several options that can be used to control the display of field information. To display all the document fields, follow these steps: At the Action prompt, enter ## Press return 2 times to display the fields for the first document record Press return to view the document fields for the next sequential record The following partial display of the results of the browse command includes internal fields, used by the Verity search engine.
Using the Verity merge Utility Using the Verity merge Utility utility lets you combine multiple collections with identical schemas. This merge is useful for merging smaller collections built from different sources into one, large collection. Also, you can use the utility to break up the collection into smaller merge collections of a roughly uniform size.
Page 230
Chapter 10 Verity Troubleshooting Utilities The utility reads and splits it in roughly equal-sized pieces, using the srcCollection file names given for and so on. newCollection1 If you want to split a very large collection into a large number of new collections, you can use the following option instead of explicitly naming each new collection: merge -split -number newCollection srcCollection The utility reads the collection identified by...
Verity VDK Error Messages Verity VDK Error Messages All Verity Developer’s Kit API functions return an error code, and VdkSuccess is the successful return value. A complete listing of API error codes follows. Generic error codes Error Code Description VdkSuccess Operation completed successfully.
Verity VDK Error Messages Warnings Error Code Description VdkWarning_CollectionDown (10) The collection was down when it was opened. VdkWarning_QueryComplex (11) Too many matching words. VdkWarning_LowMemory (12) Memory is low for indexing. VdkWarning_CollectionReadOnly (13) The collection is read-only. VdkWarning_DriverNotFound (14) Couldn’t locate specified driver. VdkWarning_LargeToken (15) Returned a token greater than maxSize.
P a r t I V ColdFusion High-Availabilty This part explains the high-availability server clustering technology, known as ClusterCATS, that is available with ColdFusion Server. The following chapters are included: Scalability and Availability Overview ..........221 Configuring ColdFusion Clusters .............245 Maintaining Cluster Members ............307 ClusterCATS Utilities ................321 Optimizing ClusterCATS ..............333...
Chapter 11 Scalability and Availability Overview This chapter describes the concepts involved in achieving scalable and highly available Web applications. Contents What is Scalability?....................222 Issues Affecting Successful Scalability Implementations ........225 What is Web Site Availability? ................. 234 Techniques for Creating Scalable and Highly Available Sites ......239...
Chapter 11 Scalability and Availability Overview What is Scalability? As an administrator, it’s likely that you often hear about the importance of having Web servers that scale well, but what exactly is scalability? Simply, scalability is a Web server’s ability to maintain a site’s availability, reliability, and performance as the amount of simultaneous Web traffic, or load, hitting the Web server increases.
Page 241
What is Scalability? Linear scalability Perfect scalability—excluding cache initializations—is linear. Linear scalability, relative to load, means that with fixed resources, performance decreases at a constant rate relative to load increases. Linear scalability, relative to resources, means that with a constant load, performance improves at a constant rate relative to additional resources.
Chapter 11 Scalability and Availability Overview Load management Load management refers to the method by which simultaneous user requests are distributed and balanced among multiple servers (Web, ColdFusion, DBMS, file, and search servers). Effectively balancing load across your servers ensures that they do not become overloaded and eventually unavailable.
Issues Affecting Successful Scalability Implementations Issues Affecting Successful Scalability Implementations Achieving scalable Web servers is not a trivial task. There are various solutions to pick from, setup and configuration tasks to understand and perform, and many delicate dependencies between related but heterogeneous technologies. This section describes some of the major issues affecting successful scalability implementations.
Page 244
Chapter 11 Scalability and Availability Overview Another approach to solving the same problem is to store client variables in a back-end common state repository. This approach enables all Web servers comprising the cluster to access variables in a common, shared back-end data store, such as a database.
Issues Affecting Successful Scalability Implementations In this scenario, if the application uses an appropriate database concurrency validation mechanism, then the HR Director would receive a message informing her that she could not access the employee record because it was in use, thereby alerting her that the HR Generalist is trying to change the record.
Chapter 11 Scalability and Availability Overview Databases Database access, while vitally important to your application’s capabilities and feature set, can be costly in terms of performance and scalability if it is not engineered efficiently. When creating data sources for accessing your database, use a native database driver rather than an ODBC driver if possible because it will provide faster access.
Page 247
Issues Affecting Successful Scalability Implementations Translate the natural language names to server IP address mappings so that users can find the site. If you have enabled round-robin distribution for multi-server load balancing, it can distribute the load among each server in a rote, sequential distribution manner.
Page 248
Chapter 11 Scalability and Availability Overview The following figure illustrates these concepts: Allaire allaire.com Zone ntserver allaire.com Domain dev.allaire.com Zone DNS servers store information about the domain name space and are referred to as name servers. Name servers typically have one or more zones for which they are responsible.
Issues Affecting Successful Scalability Implementations On the Windows platform, you make DNS entries using the Domain Name Service Manager utility. On UNIX platforms, you make these DNS entries in the file, which is read by name.db the DNS server’s Berkeley Internet Name Daemon (BIND). Load testing your Web applications Load testing is the process of defining acceptable benchmarks for your Web application’s performance and then simulating load and measuring resulting...
Page 250
Chapter 11 Scalability and Availability Overview How to load test your Web applications One of the first things you need to do to be able to load test is purchase a load testing software tool and learn how to use it. There are a variety of good load testing software tools on the market, including Segue’s SilkPerformer, Mercury Interactive’s LoadRunner and RSW’s e-LOAD.
Page 251
Issues Affecting Successful Scalability Implementations Minimize distributed environment load testing Load testing in a distributed environment can be problematic if the network on which you are performing your load tests becomes congested, resulting in poor response times. Additionally, if everyone else in the organization is using that network for their everyday activities, such as e-mail, source control, and file management, an increased load going over the network will likely cause significant network degradation for them.
Chapter 11 Scalability and Availability Overview What is Web Site Availability? As you’ve already learned from the previous section, it’s critical to design, develop, test, and deploy your Web applications so that they can scale well under heavy and ever-increasing load. However, the reality is that in spite of the best-laid plans and preparations, servers can fail for seemingly unknown reasons, causing your site to become unavailable.
What is Web Site Availability? For ColdFusion Web applications, it is particularly important that the ColdFusion servers remain as highly available and responsive as the Web server and other dependent servers. ColdFusion processes requests that are sent to it from the Web server.
Chapter 11 Scalability and Availability Overview submit or retrieve information from your database. Or, a mail server can go down, making it impossible for your users to successfully send mail to you. Ensure that your organization’s IT architecture includes network monitoring and notification software that can quickly report on the general health of your network and alert you about any failed servers.
What is Web Site Availability? Failover considerations The ability to fail over servers that have become unavailable to redundant servers is a cornerstone of any mission-critical application, one that ensures an application’s continuous and reliable operation. Such disaster planning and recovery can be broken down into: “Hardware planning”...
Page 256
Chapter 11 Scalability and Availability Overview If you plan to use a parallel model, Allaire recommends that you use many middle range servers rather than fewer high-end ones or lots of inexpensive ones. Servers that provide adequate capacity and are moderately priced can generally accommodate all your needs just as well as expensive ones at a fraction of the cost.
Techniques for Creating Scalable and Highly Available Sites Techniques for Creating Scalable and Highly Available Sites Now that you have a fairly good understanding of scalability and availability, the next step is to familiarize yourself with the techniques you can use to achieve scalable and highly available Web sites.
Chapter 11 Scalability and Availability Overview Clustering for failover relies on redundant servers to ensure that business-critical applications remain available if one of the servers in a cluster fails. Intelligent software-based failover solutions can detect when a server has failed and automatically redirect new incoming HTTP requests to the cluster members that are available.
Page 259
Techniques for Creating Scalable and Highly Available Sites The following figure shows a router distributing requests in round-robin fashion to the available servers in a Web server cluster: Advantages A hardware-based clustering solution, such as a router, is an attractive solution for the following reasons: Proven technology Relatively low complexity...
Chapter 11 Scalability and Availability Overview Considerations Carefully evaluate the following issues against a router’s attributes: Expense Hardware devices can be expensive relative to some software solutions, even without yearly licensing fees. Single point of failure If a problem develops on the load-balancing device itself and it fails, your load balancing and failover strategies are no longer working.
Page 261
Techniques for Creating Scalable and Highly Available Sites Optimizing load balancing scheme with application-aware and session-aware load balancing Automatically detecting failures Automatically redirecting traffic to available servers Automatically notifying administrators of problems Advantages The following benefits make a software-based clustering solution attractive: Relatively low expense Compared to the cost of hardware devices, such as routers or switches, software-based clustering solutions are relatively inexpensive.
Chapter 11 Scalability and Availability Overview Platform constraints Determine if the software solution you are considering will be available on your platform or operate with your preferred Web server. If reviewing data sheets and other marketing collateral from vendors, make sure that the robust features you want are available on the platform you need.
Chapter 12 Configuring ColdFusion Clusters Once you have configured your Web site and installed ClusterCATS, use the procedures in this chapter to create and configure your clusters. Contents Introduction to ClusterCATS Administration ............246 Creating Clusters ..................... 252 Removing Clusters ....................263 Adding Cluster Members ..................
Chapter 12 Configuring ColdFusion Clusters Introduction to ClusterCATS Administration ClusterCATS consists of three components: ClusterCATS Server ClusterCATS Explorer and ClusterCATS Web Explorer ClusterCATS Server Administrator and btadmin The components are described in the sections that follow. All of the components are installed on a machine when you run the ClusterCATS for ColdFusion installation program.
Page 265
Introduction to ClusterCATS Administration Configuring e-mail-based alarm notifications Monitoring clusters Note You can run the ClusterCATS Explorer from any server in the cluster, or you can run it remotely. This flexibility allows administrators in different geographic locations the ability to administer distributed clusters. You can also use ClusterCATS Explorer to administer UNIX clusters from a single Windows machine.
Chapter 12 Configuring ColdFusion Clusters ClusterCATS Web Explorer (UNIX only) ColdFusion Enterprise includes the ClusterCATS Web Explorer ( ) for btweb administering UNIX-only clusters. It is a graphical, cross-platform, Web-based utility used to create, configure, and administer ClusterCATS clusters. Note ClusterCATS for ColdFusion only installs ClusterCATS Web Explorer on UNIX servers but you can access it from any computer with an Internet browser.
Page 267
Introduction to ClusterCATS Administration Apache considerations Make the following changes to the Apache Web server’s file to enable the httpd.conf ClusterCATS Web Explorer ( ). Replace the IP address specified in the example btweb below ( and the port (2222) with one appropriate for your system 192.168.96.71) and enable authentication for the virtual directory.
Page 268
Chapter 12 Configuring ColdFusion Clusters For Apache: http://<virtual_host>:<admin-port>/default.html is the name of the Web server on which you servername virtual_host installed ClusterCATS and is the communication port number that <admin-port> the Web server or virtual host has been configured to listen for HTTP requests. The Enter Network Password dialog box appears: Enter your user name and password in the appropriate fields and click OK.
Introduction to ClusterCATS Administration ClusterCATS Server Administrator The ClusterCATS Server Administrator is a Windows-based utility that lets you perform server-specific maintenance activities for each server in a cluster. Unlike the ClusterCATS Explorer, which let you administer your clusters from a single, central computer, you must run the ClusterCATS Server Administrator from each server in your cluster.
Chapter 12 Configuring ColdFusion Clusters btadmin is a scriptable utility that lets you perform server-specific maintenance btadmin activities for each server in a cluster. is available on both UNIX and btadmin Windows servers. Unlike the ClusterCATS Web Explorer, which lets you administer your entire cluster from a single, central computer, you must use from each server in your btadmin...
Page 271
Creating Clusters To create a server cluster using the Cluster Setup Wizard: Select Start > Programs > ColdFusion > ClusterCATS Explorer. The ClusterCATS Explorer opens: Select Configure > Cluster Setup Wizard. Alternatively, you can click the Cluster Setup Wizard icon that appears in the toolbar.
Page 272
Chapter 12 Configuring ColdFusion Clusters Enter a name for your cluster and in the field and GoColdFusion License Key click Next. Note The License Key field is case-sensitive, so be sure to enter the key exactly as shown in this step. Make your cluster names logically consistent with their purpose.
Page 273
Creating Clusters If you are not configuring this Web server for offline maintenance support, go to step 8. Note You can only set the maintenance support option when creating a cluster or adding a cluster member to a cluster. You cannot configure or modify this option after you have created and added the cluster member to the cluster.
Page 274
Chapter 12 Configuring ColdFusion Clusters 10 If you want to use the default load threshold settings, click Next and go to step 13. However, if you do not want to use the defaults, select the server and click Configure to configure new peak and gradual redirect load thresholds for that cluster member.
Page 275
Creating Clusters 14 If you want to configure different types of alerts to go to different people, click Details in the Alert Notification dialog box. The Alarm Notification dialog box appears: 15 Select an alert event and enter the e-mail address of the recipient. If you want the same person to receive the majority of alerts, click Propagate to automatically fill each event’s Recipient column with the same e-mail address.
Page 276
Chapter 12 Configuring ColdFusion Clusters 16 If your server cluster supports a site that needs to maintain persistent state on the same Web server during a user session, select Yes to enable session-aware load balancing. Otherwise, select No and click Next. The Load Balancing Device dialog box appears: 17 If you are using a hardware-based load balancing device in addition to ClusterCATS to manage and distribute load, enter the name of the Web site that...
Page 277
Creating Clusters To manually create clusters: Select Start > Programs > ColdFusion > ClusterCATS Explorer. The ClusterCATS Explorer opens: Select Cluster Manager > New Cluster. Alternatively, you can right-click the Cluster Manager icon and select New Cluster or click the New Cluster button in the toolbar.
Page 278
Chapter 12 Configuring ColdFusion Clusters Add a new cluster using the fields as described in the following table: Field Description Cluster Name Enter a unique name for the cluster. Make your cluster names logically consistent with their purpose. For example, Sales Web Customer Support Web and so on.
Creating Clusters Creating clusters in UNIX Open the ClusterCATS Web Explorer if it is not already opened. Click the Create New Cluster link. The Create New Cluster page appears:...
Page 280
Chapter 12 Configuring ColdFusion Clusters Add a new cluster using the fields as described in the following table: Field Description Cluster Name Enter a unique name for the cluster. Make your cluster names logically consistent with their purpose. For example, Sales Web, Customer Support Web, and so on. Web Server Enter the fully qualified host name (for example, Name...
Removing Clusters Removing Clusters To delete an entire cluster, you must delete each cluster member from the cluster individually, using the procedure described in “Removing Cluster Members” on page 266. Note When deleting cluster members, you must delete the Admin Manager (Windows) or the Admin Agent (UNIX) last.
Chapter 12 Configuring ColdFusion Clusters Adding Cluster Members You can add servers to an existing cluster at any time. This section describes the following: “Adding cluster members in Windows” on page 264 “Adding cluster members in UNIX” on page 265 Adding cluster members in Windows Use the ClusterCATS Explorer to add servers to a cluster.
Adding Cluster Members Enabling maintenance support for clusters requires that you configure your cluster for ClusterCATS dynamic IP addressing. For more information, see “ClusterCATS Dynamic IP Addressing (Windows only)” on page 334 Enter the fully qualified host name of the maintenance address (for example, ) in the Maintenance Address field.
Chapter 12 Configuring ColdFusion Clusters Removing Cluster Members You can remove servers from an existing cluster at any time. This section describes the following: “Removing cluster members in Windows” on page 266 “Removing cluster members in UNIX” on page 267 Removing cluster members in Windows Use the ClusterCATS Explorer to remove cluster members.
Removing Cluster Members Removing cluster members in UNIX Use the ClusterCATS Web Explorer to remove cluster members. To remove a cluster member from a cluster: Open the ClusterCATS Web Explorer if it is not already open. Click the Delete Server link. The Delete Server page appears: Select the cluster member you want to delete from the Web Server Name drop-down box.
Chapter 12 Configuring ColdFusion Clusters Server Load Thresholds ClusterCATS makes certain that your Web applications remain available and running at optimum performance by intelligently managing the amount of HTTP traffic hitting your clustered servers. By setting load thresholds on each server in your cluster, you can control and manage your site’s availability and performance.
Page 287
Server Load Thresholds The server’s Properties dialog box appears: Select the Load tab. Enter a new numeric value (less than 100%) in the first Load Management field. This is referred to as the Peak load threshold. In the example above, the Peak load threshold is set to 90.
Page 288
Chapter 12 Configuring ColdFusion Clusters Viewing a cluster’s load status ColdFusion reports its load data directly to ClusterCATS. Consequently, you can view the load on the ColdFusion servers at any time using the Server Load Monitor. To view your cluster’s current load levels: Open the ClusterCATS Explorer and select a cluster.
Page 289
Server Load Thresholds To configure load threshold settings using the Server Load dialog box: Open the ClusterCATS Explorer and select a server. Select Monitor > Load. Alternatively, you can right-click the server and select Monitor > Load. The Server Load dialog box appears: Use your mouse to drag the Peak load threshold (red) up or down.
Chapter 12 Configuring ColdFusion Clusters Configuring load thresholds on UNIX To configure load thresholds for a cluster member: Open the ClusterCATS Web Explorer if it is not already open. Click the Show Cluster link. The Show Cluster page appears: Enter the fully qualified host name of a server in the Web Server Name field.
Page 291
Server Load Thresholds Click OK. The Cluster Member List page appears, as the following figure shows. If you get an "Error: Server <cluster_member_name> could not be found" message, make sure you used the correct, fully-qualified server name and that the server is running.
Page 292
Chapter 12 Configuring ColdFusion Clusters Click the Server Attributes link. The Connect To Server page appears: Select the server you want to connect to from the Web Server Name listbox.
Page 293
Server Load Thresholds Click OK. The selected server’s Server Properties page appears: Click the Administration link under Server Attributes. The Server Administration page appears for the selected server.
Chapter 12 Configuring ColdFusion Clusters To change the Peak load threshold, enter a new numeric value (less than 100%) in the Standard Load Threshold field. 10 Enable the Gradual Redirection check box if it is not already enabled. 11 To change the Gradual Redirection load threshold, enter a new numeric value in the Gradual Load Threshold field.
Session-Aware Load Balancing Enabling session-aware load balancing on Windows To enable session-aware load balancing: Open the ClusterCATS Explorer and select a cluster. Select Configure > Administration. Alternatively, you can right-click on the cluster and select Configure > Administration. The Cluster Properties dialog box appears: Select the Session State Management check box.
Chapter 12 Configuring ColdFusion Clusters Enabling session-aware load balancing on UNIX To enable session-aware load balancing: Open ClusterCATS Web Explorer if it is not already open. Click the Show Cluster link. The Show Cluster page appears: Enter the fully qualified host name of the server for which you want to configure session-aware load balancing in the Web Server Name field.
Page 297
Session-Aware Load Balancing Click OK. The Cluster Member List page appears: Click the Administration link under Cluster Attributes. The Cluster Administration page appears:...
Chapter 12 Configuring ColdFusion Clusters Select the Enable session-aware load balancing check box. Click OK to enable session-aware load balancing for the selected cluster. Configuring ColdFusion probes in Windows This section describes the following: “Adding ColdFusion probes” on page 280 “Removing ColdFusion probes”...
Page 299
Session-Aware Load Balancing To add a new monitor and ColdFusion probe: Open the ClusterCATS Explorer and select a server. Select Server > New Monitor. Alternatively, you can right-click the server and select New Monitor. The New Monitor dialog box appears:...
Page 300
Chapter 12 Configuring ColdFusion Clusters Enter a name you want to assign to this probe’s monitor in the Name field on the New Monitor dialog box and click OK. The monitor’s Properties dialog box appears: Click the New Probe button The ColdFusion Web Application Probe settings dialog box appears: Configure the application probe settings as described in the following table: Field...
Page 301
Session-Aware Load Balancing Field Description Working directory Enter the absolute path to the probe’s working directory. Do not change the default selection unless you installed ColdFusion to a directory other than the default installation directory. Startup Parameters Replace the <URL> with the actual URL of the site you want the probe to access, and replace <success string>...
Page 302
Chapter 12 Configuring ColdFusion Clusters Click Register to create the probe. Close all open dialog boxes. Icons for the monitor and probe appear under the Monitor Manager in the ClusterCATS Explorer. To add a new probe to an existing probe monitor: Open the ClusterCATS Explorer.
Session-Aware Load Balancing Click Register to create the probe. Close all open dialog boxes. An icon for the new probe appears under the Monitor Manager in the ClusterCATS Explorer. Removing ColdFusion probes To remove a ColdFusion probe: Open the ClusterCATS Explorer. Select the cluster_name >...
Page 304
Chapter 12 Configuring ColdFusion Clusters Click the ColdFusion Probe link. If there are existing probes for this server, the Probe List page appears:...
Page 305
Session-Aware Load Balancing To create a new probe, click New. The ColdFusion Application Probe page appears: If this is the first probe for this server or you clicked New to add another probe, the ColdFusion Application Probe page appears: 10 Configure the application probe settings as described in the following table. Field Description Status...
Page 306
Chapter 12 Configuring ColdFusion Clusters Field Description Startup Enter the actual URL of the site you want the probe to access Parameters followed by a text string that appears on a page within the site you are probing (cfprobe.cfm in the screen shown in step 9.) Note: Do not modify the RESTART explicit parameter if you want the probe to automatically restart the ColdFusion Server upon detecting a failure.
Page 307
Session-Aware Load Balancing Click OK. The Cluster Member List page appears. Click the Server Attributes link. The Connect To Server page appears. Select the server that hosts the probe in the Web Server Name listbox. Click OK. The selected server’s Properties page appears. Click the ColdFusion Probe link.
Chapter 12 Configuring ColdFusion Clusters Load-Balancing Devices You can configure ClusterCATS to work in conjunction with a third-party hardware load balancing device or load balancing software product to provide comprehensive load balancing and failover support for your server clusters. This section describes the following: “Using Cisco LocalDirector”...
Page 309
Load-Balancing Devices If two or more Web servers on the same system are in clusters using Cisco LocalDirector load balancing, then each cluster must have the same DFP Agent Listen Port number configured. The ClusterCATS DFP agent can only listen on one port.
Page 310
Chapter 12 Configuring ColdFusion Clusters LocalDirector will attempt to reconnect, indefinitely, every 30 seconds. The LocalDirector will close the connection if it is inactive for 60 seconds. For more information on the command options, refer to dynamic-feedback “LocalDirector dynamic-feedback command settings” on page 291. Open the ClusterCATS Explorer and select a cluster.
Page 311
Load-Balancing Devices Select the Load Balance tab and choose Cisco LocalDirector from the Load Balancing Product drop-down list. Edit the cluster properties as described in the following table. Field Description Website Alias Enter the name of the virtual server www.yourcompany.com ) you created in step 3.
Chapter 12 Configuring ColdFusion Clusters Field Description HTTPS Port Enter the port number on which each cluster member listens for secured HTTP requests. Enter 0 if not applicable. Bind ID Enter the same Bind ID specified for the explicit (real) servers on the LocalDirector in step 4.
Page 313
Load-Balancing Devices Select Configure > Administration. Alternatively, you can right-click the cluster and select Configure > Configure. The Cluster Properties dialog box appears: Select the Load Balance tab. The selection in the Load Balancing Product drop-down list indicates how ClusterCATS will actively load balance HTTP traffic across the cluster. Enter the name of the Web site in the Website Alias field.
Chapter 12 Configuring ColdFusion Clusters In the Load Balancing Product field, enter the URL of the Web site for which the load balancing product has been set up to manage HTTP traffic. Click OK to apply your changes. Administrator Alarm Notifications The ClusterCATS alarm notification feature provides instant feedback about critical events that take place within a cluster.
Administrator Alarm Notifications Configuring administrator alarm notifications on Windows To configure an alarm notification: Open the ClusterCATS Explorer and select a cluster. Select Configure > Alarm Notification. Alternatively, you can right-click the cluster and select Configure > Alarm Notification. The Alarm Notification dialog box appears: Select the event for which you want to trigger an alarm and enter the e-mail address of the person you want to receive an e-mail notification of the event.
Page 316
Chapter 12 Configuring ColdFusion Clusters Click OK. The Cluster Member List page appears. Click the Alarm Notification link. The Alarm Notification page appears: Enter the e-mail address of the person you want to be notified about the occurrence of an event in that event’s corresponding field. If you want multiple people to receive an e-mail notification about the same event, add more e-mail addresses to the field and separate each e-mail address with a comma.
Administrator E-mail Options Administrator E-mail Options The ClusterCATS administration e-mail support feature reports vital statistics about your cluster to designated e-mail accounts in your organization. You can set up the following types of administration e-mail options: Report e-mail Lets you know each day how your server clusters are functioning. Daily e-mail reports include the following information: Cluster name and each server’s name and IP address in the cluster Files Total number of files in the Web server’s root directory...
Chapter 12 Configuring ColdFusion Clusters Configuring administration e-mail options on Windows To configure administration e-mail options: Open the ClusterCATS Explorer and select a cluster. Select Configure > Support. Alternatively, you can right-click the cluster and choose Configure > Support. The Support dialog box appears: Edit the e-mail support options as described in the following table: Field Description...
Page 319
Administrator E-mail Options Enter the fully qualified host name of a server for which you want to configure administrator e-mail support in the Web Server Name field. Click OK. The Cluster Member List page appears. Click the Support link. The Cluster Support page appears: Edit the e-mail support fields as described in the following table: Field Description...
Chapter 12 Configuring ColdFusion Clusters Administrating Security When you enable ClusterCATS administration security for a specific cluster, only authorized users are able to access and administer that cluster using their ClusterCATS Explorer (Windows) or the ClusterCATS Web Explorer (UNIX). ClusterCATS provides three administration security settings for securing your server cluster environment: Disabled Authentication This is the default setting.
Page 321
Administrating Security To configure authentication modes for your clusters: Create a user account on each server within your cluster for each administrator that you want to be able to administer the servers using the ClusterCATS Explorer. For Unix, you must be a member of "sys" group. For Windows NT, you must be a member of "admin"...
Page 322
Chapter 12 Configuring ColdFusion Clusters Note ClusterCATS requires you to enter a valid user name and password after selecting the type of authentication you are using so that you do not inadvertently lock yourself out of the cluster. Click OK to enable local user authentication for the selected cluster. Only administrators who have accounts on each secured server can access and administer those cluster members using ClusterCATS Explorer.
Page 323
Administrating Security Select the domain from the List Names drop-down box. Select the users you want to add to the group and click Add. Click OK in all open dialog boxes to apply your changes and to close the User Manager for Domains utility.
Chapter 12 Configuring ColdFusion Clusters Configuring authentication on UNIX To configure authentication modes for your clusters: Open ClusterCATS Web Explorer if it is not already open. Click the Show Cluster link. The Show Cluster page appears. Enter the fully qualified host name of the server for which you want to configure administrator authentication in the Web Server Name field.
Chapter 13 Maintaining Cluster Members After you have created your clusters, added servers to those clusters, and configured them with load balancing and high availability features, they will likely run inconspicuously in your environment for quite some time. However, at some point you may need to update software and content or perform general maintenance tasks that are beyond the typical cluster creation and configuration activities.
Chapter 13 Maintaining Cluster Members Understanding ClusterCATS Server Modes ClusterCATS allows you to move cluster members into various modes of operation depending on the tasks you want to perform on that server. These modes allow you to remove servers from clusters to perform maintenance activities without disturbing the current traffic flow among other things.
Changing Active/Passive Settings Changing Active/Passive Settings All cluster members are added to a cluster with the ClusterCATS Server in Active state by default. In Active state, ClusterCATS Servers intercept requests to your Web resources and provide availability and failover services. From time to time, you may want to turn off these load balancing and failover services to help you troubleshoot problems.
Chapter 13 Maintaining Cluster Members Changing active/passive settings in UNIX To change a cluster member’s state: Open ClusterCATS Web Explorer if it is not already open. Click the Show Cluster link. The Show Cluster page appears. Enter the fully qualified host name of the server in the Web Server Name field. Click OK.
Changing Restricted/Unrestricted Settings Changing Restricted/Unrestricted Settings ClusterCATS lets you stop a cluster member from receiving any HTTP requests by changing the restricted/unrestricted setting. You may want to restrict a server when performing server maintenance or software updates, verifying load configurations, or as an alternative method to managing load.
Chapter 13 Maintaining Cluster Members Click OK. Restricting/unrestricting servers in UNIX To change restriction settings for a cluster member: Open ClusterCATS Web Explorer if it is not already open. Click the Show Cluster link. The Show Cluster page appears: Enter the fully qualified host name of a server in the Web Server Name field. Click OK.
Using Maintenance Mode (Windows only) 10 To allow this server to participate in the cluster as normal, select Unrestricted from the Restriction Status drop-down box. 11 Click OK. Using Maintenance Mode (Windows only) Putting a ClusterCATS Server in Maintenance mode lets you remove a server from an active cluster gracefully so that you can perform necessary updates or maintenance tasks without disrupting your users.
Page 332
Chapter 13 Maintaining Cluster Members To put a cluster member in Maintenance mode: Open the ClusterCATS Explorer and select a cluster member that you want to update. Select Configure > Load. Alternatively, you can right-click the cluster member and select Configure > Load. The Properties dialog box appears for the selected cluster member with the Load tab active.
Page 333
Using Maintenance Mode (Windows only) Physically go to the server you selected in step 1 and open the ClusterCATS Server Administrator utility on this server by selecting Start > Programs > ColdFusion 3.0 > ClusterCATS Server Administrator The ClusterCATS Server Administrator appears: Click the Service Status window button to display the Manage ClusterCATS Services dialog box.
Page 334
Chapter 13 Maintaining Cluster Members Select the Stopped option to stop the ClusterCATS service and enter a value, in minutes, in the Drain Down Period field. This allows current users to conclude their sessions within the time indicated. Click OK. When the drain-down period expires, the server will fail over to another server in the cluster.
Updating an Existing Cluster Member (Windows only) Updating an Existing Cluster Member (Windows only) Periodically you will need to update software or content that resides on your cluster members. Software updates might include new versions or patches to operating system software, Web server software, new Web applications, ClusterCATS software, or other third-party products.
Page 336
Chapter 13 Maintaining Cluster Members Select Running. ClusterCATS will add the cluster member back into the cluster. To initially limit the amount of HTTP traffic sent to the server, return to the ClusterCATS Explorer and reconfigure the cluster member’s Peak Load threshold to a low value such as 10%.
Resetting Cluster Members Resetting Cluster Members ClusterCATS includes a utility for resetting cluster members to their pre-clustered state. You may want to do this for two reasons: You want to permanently remove a cluster member from a cluster You want to change a cluster member from one cluster to another cluster To perform both of these tasks, you must first reset each server’s configuration to its original, pre-clustered state.
Chapter 13 Maintaining Cluster Members Resetting cluster members on UNIX Enter the following command at the server you want to reset: btadmin -reset...
Chapter 14 ClusterCATS Utilities ColdFusion Enterprise ships with a number of scriptable command-line utilities for configuring, administering, and troubleshooting your ClusterCATS clusters. This chapter describes these utilities. Contents Using btadmin ......................322 Using bt-start-server and bt-stop-server (UNIX only) ......... 325 Using btcfgchk ......................
Chapter 14 ClusterCATS Utilities Using btadmin is a scriptable utility installed on each server in cluster. It provides most of btadmin the functionality of the Windows-based ClusterCATS Server Administrator so that UNIX and Windows administrators can include calls in automated scripts. This section describes the following: “Using btadmin on UNIX”...
Page 341
Using btadmin The following table describes the options for changing the ClusterCATS btadmin settings: Option Description enable Enable the specified option for a Web server instance. disable Disable the specified option for a Web server instance. Add a new Web server instance. delete Delete an existing Web server instance.
Chapter 14 ClusterCATS Utilities [help] Use the option to get a list of the utility’s features and syntax. help btadmin Using btadmin on Windows is a Windows executable invoked from the command line in the btadmin < > directory. CC_install_directory /program The table below describes each of the options and their syntax for btadmin...
Using bt-start-server and bt-stop-server (UNIX only) Using bt-start-server and bt-stop-server (UNIX only) utilities start and stop the Web server bt-start-server bt-stop-server that is bound to the ClusterCATS Server. This command starts or stops either the Netscape Enterprise Server or Apache Web server. are invoked from the command line in the bt-start-server bt-stop-server...
Chapter 14 ClusterCATS Utilities btcfgchk DNS errors utility reports on DNS configuration problems. ClusterCATS requires btcfgchk that your DNS be configured with correct forward and reverse mappings. A forward mapping (AName record) translates the host name to an IP address. Conversely, a reverse mapping (PRT record) translates an IP address to its host name.
Page 345
Using btcfgchk Error Description Error looking up ClusterCATS could not resolve the given host name to an <hostname> by name IP address. Use to look up the host name in nslookup DNS. Host name a round-robin The host name maps to more than one IP address name, or does not map to (round-robin DNS) or maps to an IP address not found configured IP address...
Chapter 14 ClusterCATS Utilities Using hostinfo utility is a network management tool that displays information about a hostinfo specified domain name. Use it to analyze and troubleshoot problems you are having with DNS mappings to a particular domain. Syntax Invoke from the command line in the <...
Using sniff Using sniff utility is a network management tool that displays the packets that a sniff specific Network Interface Card (NIC) is hearing. Syntax Invoke from the command line in the < > sniff CC_install_directory /program directory using the following syntax: sniff Sample output Below is sample output from the sniff utility:...
Chapter 15 Optimizing ClusterCATS ColdFusion Enterprise provides some enhanced capabilities that allow you to customize your ClusterCATS implementation. This chapter describes some of these options. Contents ClusterCATS Dynamic IP Addressing (Windows only) ........334 Using Server Failover....................340 Configuring Load-Balancing Metrics ..............341...
Chapter 15 Optimizing ClusterCATS ClusterCATS Dynamic IP Addressing (Windows only) This section describes how to enable ClusterCATS dynamic IP addressing on your site. You do not have to configure your system on UNIX for dynamic IP addressing because it is set up by default. If your site is already configured so that the IP address for the computer name is different from the IP address(es) for the Web sites configured on this server, you can skip...
ClusterCATS Dynamic IP Addressing (Windows only) Create your clusters. “Creating clusters in Windows” on page 252. Benefits of ClusterCATS dynamic IP addressing There are several benefits to using ClusterCATS dynamic IP addressing: Using Maintenance mode. With dynamic IP addressing, cluster members put into Maintenance mode on Windows clusters will fail over to another server and then gracefully return when brought out of Maintenance mode.
Page 354
Chapter 15 Optimizing ClusterCATS To set up a maintenance address prior to installing ClusterCATS: Back up your system files. Obtain a new IP address and new computer name. Be sure to configure your DNS so that your new address has both forward and reverse DNS entries. For IIS 4.0 and 5.0: Uninstall any products which are configured as part of IIS, including Allaire ColdFusion.
ClusterCATS Dynamic IP Addressing (Windows only) Enter a new name for the computer in the Computer Name field. This name corresponds to the new IP address that you just added. Do not change the Domain field on this tab. Note The Computer Name on the Identification tab should only be a NetBIOS name, not a fully-qualified host name (FQHN).
Page 356
Chapter 15 Optimizing ClusterCATS To enable dynamic addressing: Verify that you can access your server via its maintenance address. If not, assign one to the server using the procedure described in “Setting up maintenance IP addresses” on page 335. Configure your Web server to support ClusterCATS dynamic IP addressing. For Netscape Enterprise Server: Verify that the IP addresses associated with the primary Web Server and Hardware Virtual Servers are configured on your system via the Network Control Panel.
Page 357
ClusterCATS Dynamic IP Addressing (Windows only) Open the Advanced IP Addressing dialog box by right-clicking Network Neighborhood and select Properties. On the Protocols tab, select TCP/IP Protocol and click Properties and then click Advanced. Unbind the IP addresses from the Web server’s NIC by selecting each IP address in the IP Addresses region and clicking Remove.
Chapter 15 Optimizing ClusterCATS Using Server Failover The ability to fail over servers that have become unavailable to redundant servers is a cornerstone of any mission-critical application, one that ensures an application’s continuous and reliable operation. Server failover was an option to select during the installation process.
Configuring Load-Balancing Metrics Configuring Load-Balancing Metrics ColdFusion Enterprise provides you the option of customizing the load balancing metrics of Web servers clustered with Allaire ClusterCATS software. This section describes how to customize the metrics to your specific Web site implementation. Overview of metrics The ColdFusion server records the time each JSP page and servlet request takes to be processed and can return metrics derived from this timing data upon request.
Chapter 15 Optimizing ClusterCATS Load types The probed JSP page is located at <CC_install_directory>/btauxdir/ . The probe agent responds to output generated by this page and getsimpleload.jsp uses it to calculate the overall load based on the weighting of the two available metrics set in the variable: LOADTYPE...
Configuring Load-Balancing Metrics CCRTTPercent represents the percentage of the calculated average CCRTTPercent that the probe agent should apply to the load metric supplied ROUND_TRIP_TIME CCLOADVALUE is the second variable that you might change in CCRTTPercent to customize your server’s load metrics. It acts as a tuning getsimpleload.jsp knob to determine how much external influence on server performance should be calculated into the server's overall load value.
Index Administrator, ColdFusion authentication about basic security 72 configuring on UNIX 306 A records 230 ODBC data sources 3 configuring on Windows 302 absolute hyperlinks 276 Advanced security, concepts 81, disabling 305 Access domain 304 OLE DB providers 5 alarm notifications local user 302 Active mode configuring on UNIX 297...
Page 364
Index btcfgchk putting in busy state 313 creating manually 258 DNS Errors 326 putting in Maintenance creating UNIX 261 sample output 325 mode 313 creating Windows 252 syntax 325 removing (UNIX) 267 creating with Cluster Setup bt-start-server removing (Windows) 266 Wizard 252 usage 325 resetting to pre-clustered...
Page 365
Index Connecting defined 228 error codes, Verity security 216 DB2 data sources 15 domains 229 error codes, Verity usage 213 dBASE/FoxPro 21 name servers 230 Error messages, Verity VDK 213 Excel 24 record types 230 events Excel Workbook 25 round-robin 242 alarm notifications 296 Informix 26 scalability 228...
Page 366
Index generic error codes 132 enabling session-aware on installation details 118 UNIX 278 hardware planning for K2 mode 118, 119 enabling session-aware on failover 237 K2 mode, overview 116 Windows 277 hardware-based clustering modes of operation 116 integrating ClusterCATS with advantages 241 overview 116 other devices 290...
Page 367
Index maintenance support in mkvdk, performance tuning providers 4 ClusterCATS options 198 OLE DB providers enabling 260 mkvdk, persist option 195 Access 5 merge, using Verity 211 mkvdk, processing installing 5 merge, Verity utility 211 documents 190 Jet 5 metrics mkvdk, purge option 195 MSDASQL 5 average request time,...
Page 368
Index rcvdk, starting 201 third-party load balancing implementing sandbox 100 rcvdk, using Verity 201 devices 294 LDAP user directories 92 rcvdk, Verity utility 201, 202, 203 Rules NT domain user directories 92 defining 96 ODBC user directories 92 Basic security 98 Rules and policies policies 82 configuring basic security 73...
Page 369
Index Server sandbox security 65 server state changing 309 server unreachable alarm notification 296 Service Level Keywords 191 session management 225 session-aware load balancing description 276 enabling on UNIX 278 enabling on Windows 277 relative vs. absolute hyperlinks 276 Setting Up Collections Examples 188 Setup Wizard 252 smart clusters...
Page 370
Index Sybase client software 9 Verity rcvdk utility, viewing results -noproxy 160 syntax, mkvdk 186 of 203 -proxy 161 System and services files 16 Verity Spider -proxyauth 161 systems monitoring for DNS lookups 147 -retry 161 failover 238 flow control 147 -timeout 161 multithreading 147 Verity Spider paths &...
Page 371
Index Verity Spider syntax implementations 225 command file use 149 linear 223 command-line options load management factors 224 -refresh 150 performance factors 222 -start 149 Windows batch file overview 148 starting K2 Server with 121 Verity Spider command 148 wizards Verity utilities, overview 200 Cluster Setup Wizard 252 Verity utility, browse 209...
Need help?
Do you have a question about the COLDFUSION 5-ADVANCED ADMINISTRATION and is the answer not in the manual?
Questions and answers