Working with Cloudscape Properties
Page 2 of 4

Properties Overview

Cloudscape lets you configure behavior or attributes of a system, a specific database, or a specific conglomerate (a table or index) through the use of properties.

Examples of behavior or attributes that you can configure are:

  • Whether to authorize users
  • Page size of tables and indexes
  • Where and whether to create an error log
  • Which databases in the system to boot

In addition, you may sometimes be able to use properties to affect something as specific as the access path for the execution of a single query. See Overriding the Optimizer for a discussion of how these properties are used. This chapter does not discuss that type of property, which you set in a different way.

For reference information about specific properties, see Chapter 5, "Cloudscape Properties".

Scope of Properties

You use properties to configure a Cloudscape system, database, or conglomerate.

  • system-wide

    Most properties can be set on a system-wide basis; that is, you set a property for the entire system and all its databases and conglomerates, if this is applicable. Some properties, such as error handling and automatic booting, can be configured only in this way, since they apply to the entire system. (For information about the Cloudscape system, see Cloudscape System of the Cloudscape Developer's Guide.)

    When you change these properties, they affect any tables or indexes created after this change.

  • database-wide

    Some properties can also be set on a database-wide basis. That is, the property is true for the selected database only and not for the other databases in the system unless it is set individually within each of them. In addition, in order to publish properties to target databases in a distributed system, you publish them as database-wide properties.

    When you change these properties, they affect any tables or indexes created after this change.

  • conglomerate-specific

    Finally, some properties can also be set on a conglomerate-specific basis. When set this way, these properties are true for the selected conglomerate only, and not for the other conglomerates in the database or system. These storage-related properties take effect at table or index creation, and cannot be changed during the lifetime of the conglomerate. (The properties of a table at a source are always automatically propagated to the target. For example, when you add a table to a publication, that table retains the properties of the table at the source, whether you have set those properties for the specific conglomerate or the table has inherited some database- or system-wide settings.)

Persistence of Properties

A database-wide property always has persistence. That is, its value is stored in the database. Typically, it is in effect until you explicitly change the property or until you set a system-wide property with precedence over database-wide properties (see Precedence of Properties).

A system-wide property may or may not have persistence, depending on how you set it. If you set it programmatically, it persists only for the duration of the JVM of the application that set it. If you set it in the cloudscape.properties file, a property persists until:

  • that value is changed
  • the file is removed from the system
  • the database is booted outside of that system

Precedence of Properties

The search order for properties is:

  1. Conglomerate-specific properties
  2. System-wide properties set programmatically (as a command-line option to the JVM when starting the application or within application code)
  3. Database-wide properties
  4. System-wide properties set in the cloudscape.properties file

This means, for example, that storage properties set for a specific conglomerate override all system-wide and database-wide storage properties; that system-wide properties set programmatically override database-wide properties and system-wide properties set in the cloudscape.properties file, and that database-wide properties override system-wide properties set in the cloudscape.properties file.

Protection of Database-Wide Properties

There is one important exception to the search order for properties described above: When you set the cloudscape.database.propertiesOnly property to true, database-wide properties cannot be overridden by system-wide properties.

This property ensures that a database's environment cannot be modified by the environment in which it is booted. Typically, most databases that are distributed or synchronization targets require this property to be set to true. Many applications running in an embedded environment may set this property to true for security reasons.

Dynamic vs. Static Properties

Most properties are dynamic; that means you can set them while Cloudscape is running, and their values change without requiring a reboot of Cloudscape. In some cases, this change takes place immediately; in some cases, it takes place at the next connection.

Some properties are static, which means you cannot change their values while Cloudscape is running. You must restart or set them before (or while) starting Cloudscape.

For more information, see Dynamic or Static Changes to Properties.