December 24 - AppLogic 2.4.7 is now available and is the latest production release!
Instance Settings Property Sheet
The Instance Settings property sheet allows you to
specialize an appliance instance for its role in the application.
The instance settings apply only to one appliance instance. They override any defaults specified in the class of the appliance.
Most instance settings have their default values defined in the appliance class. When you change these values, they are shown in the property sheet in
bold.
For certain settings, instead of defining an explicit value, you can redirect a setting so that its value will be obtained from the settings of the containing assembly. The "redirected" settings are shown in
blue. You can find more information on redirected settings in
Redirected Properties.

To reach the Instance Settings property sheet in the application editor, double-click on an appliance shape on the canvas or right-click on the appliance shape and choose
Attributes,
Resources,
User Volumes or
Property Values from the menu.
The instance settings are divided in four sections (tabs):
Notes:
- The descriptions here are written assuming you understand the concepts described in the AppLogic Overview. Short definitions of some terms are also available in the Glossary.
- When the appliance instance is contained in an assembly that is not the
main application assembly, the instance settings specialize the instance for its role in that assembly. The assembly itself may be further specialized for its role in its containing assembly, recursively going up to the whole application.
- The Instance Settings property sheet is read-only if you opened it on an instance within a catalog assembly. To learn how to modify catalog classes, see Branching Classes.
Attributes
This tab contains the instance attributes, starting from the instance name and class name, through start order to a number of advanced settings.
General attributes
These attributes are defined on all instances:
- Name
- Instance name of the appliance. This name typically reflects the role of the appliance in the application (more precisely, in its containing assembly). The name is a single word, case sensitive, consisting of alphanumeric characters and underscore ([A-Za-z0-9_]); the name must be unique within the containing assembly.
The instance name is shown in the center of the appliance shape on the editor canvas.
- Class Name
- Class name of the appliance. This name is read-only and indicates the name of the appliance class to which this instance belongs. Typically, this field also shows the catalog where the class comes from (catalog:class), uniquely identifying the class.
The class name is shown in the bottom left of each appliance shape on the editor canvas.
- Standby
- If the standby option is checked, the appliance will not start automatically when the application starts (the appliance can be started manually later). The standby option may be convenient for appliances that are used in development/diagnostics, or for appliances that are planned "in reserve". This attribute is valid only for simple appliances; it is ignored on assemblies. The Standby attribute can be redirected by selecting the
button. See Using Standby for more information on the various uses of the standby attribute.
- Start Order
- Defines the order of starting this instance, relative to the other instances in the containing assembly. Lower numbers are started first. Appliances with a higher number are not started until all those with lower numbers have started successfully. Appliances with the same start order number can be started in any order and may have their startups overlap in time. The start order is local to the containing assembly and the same start order numbers can be reused in different assemblies. The relative order of starting subordinates in different assemblies depends on the start order numbers assigned to those assemblies. Appliance instances with the start order attribute not set are started last.
- Ignore Failed Start
- If the ignore failed start option is checked and the appliance fails to start, this will not result in the application failing to start as a whole. This option may be convenient for appliances that are under development and have not been fully tested.
- Migrateable
- If you check migrateable attribute, you allow the appliance to be moved from one server to another at runtime. When not checked, the appliance will run only on the server where it was initially started. By default, all appliances are migrateable. Disabling the migration for an appliance is particularly useful to "pin" an appliance to a particular server (see Pinning Appliances for more details). This attribute is valid only for simple appliances; it is ignored on assemblies. This attribute can be redirected by selecting the
button.
Advanced attributes
This is an advanced capabilities section -- all fields here have reasonable defaults. Unless you need to do something special, make sure all advanced attributes are unchecked and you can skip this section completely.
The following attributes modify the scheduling and other behavior of AppLogic with respect to this appliance.
- Server Override
- When specified, it defines the name of the server where the appliance will start (normally, the servers are automatically assigned by the AppLogic scheduler). Typically, the server override is used together with unchecked Migrateable attribute to "pin" an appliance to a particular server.
Note that selecting a server limits the portability of the application to another grid which may not have the same server. This attribute can be redirected and it is recommended to always redirect it all the way up to the application properties. A portable way to separate appliances on different servers is to use the Failover Group Member attribute described below.
If the server override contains the name of a server that is not in the system, the appliance will fail to start. To see the set of server names on a given system use the server list shell command.
- Failover Group Member
- This field, when enabled, defines a failover group name for the appliance. Appliances belonging to the same group will not be scheduled to run on the same server, providing an easy way to ensure that if a server fails, at least one of several appliances in the group will remain running. The group name is user-defined, global for an application; it is a single word, case-sensitive, alphanumeric ([A-Za-z0-9_]). This attribute can be redirected and it is recommended that it is redirected all the way up to the application properties.
Look here for details on how to best set up mandatory and optional failover groups.
- Boot Timeout Override
- Time, in seconds, given to the appliance to complete its startup. If not set, AppLogic uses a default value specified in AppLogic's configuration files (usually 2-5 minutes). One use of this attribute is to help diagnose why an appliance is not starting (see Debugging Appliance Start? on how to do that).
The time specified here is how long the appliance has from start of OS boot to running the VM agent (vmad) that tells AppLogic that the appliance has started successfully. For more details, see the Appliance Creation Guide.
- Shutdown Timeout Override
- Time, in seconds, given to the appliance to complete its shutdown. If not set, AppLogic uses a default value specified in AppLogic's configuration files (usually 2-5 minutes).
- Field Engineering Options
- This is a numeric value that enables diagnostic or other special features of AppLogic for this appliance instance. For a list of available codes and precautions when using them, see Field Engineering Codes. In short, do not enable this option unless directed by a support engineer.
Comments and questions
Resources
On the Resources tab you can specify the amount of hardware resources that will be provided to the appliance instance. Unless you override some of the values here, this tab shows the defaults provided by the appliance class. The ability to override resources per instance allows you to further specialize the instance for its role.
For example, a database appliance can work with as little as 128MB RAM or take as much as 3GB RAM. To allow this wide range, the database appliance class would set these as its resource requirements (minimum 128MB, maximum 3GB). An instance of the database appliance responsible for keeping a small and rarely used database (e.g., maintenance account passwords) can be further constrained through this tab to 256MB RAM maximum, as there is no need to reserve more memory for such a small and rarely used database. In contrast, a database appliance that is responsible for a core application database -- which is likely to be large and heavily loaded -- can be constrained to run with at least 512MB RAM, ensuring that the application will operate well.

If you don't know what resource constraints to use, we recommend that you leave the class defaults.

You can easily see which values override the defaults -- they are displayed in
bold. If you want to restore the default value for a given resource, use the restore button

next to the value. To restore all values to defaults, use the "Reset All" button.
Resource types and specification
The following resource types can be specified:
- CPU
- Portion of CPU or number of CPUs to be allocated for this instance. Portions can be specified as percentage (e.g.,
10%) or as a decimal number (0.10). Whole CPUs are specified as integer (e.g., 2).
- Memory
- Amount of memory to be allocated for this instance. The amount can be specified as an integer value in Megabytes (e.g.,
128M) or in Gigabytes (e.g., 2G).
- Bandwidth
- Amount of network bandwidth to be allocated for this instance (total for all terminals/interfaces). The amount can be specified as an integer value in Megabits/sec (e.g.,
10M) or in Gigabits/sec (e.g., 1G).
Resource ranges
A range can be specified for each resource type. The range defines the normal operating parameters desired for the appliance, as well as minimum resource requirements for sandbox use.
- Minimum
- The minimum amount of a resource that the appliance requires for normal operation in production environments. The appliance will not be started unless at least that much can be allocated for it (likely failing the start of the application as a whole). Specifying a minimum ensures that the appliance will work within certain "guaranteed" resource amount -- think of it as a service level agreement (SLA) for that resource.
- Maximum
- The maximum amount of a resource that the appliance will be allowed to take. Typically this is the maximum that an appliance can use (i.e., giving it more resources will not increase performance). The appliance will not be allocated more than the specified maximum amount, ensuring that the appliance will not be able to take resources away from other appliances -- think of it as a quota.
- Sandbox or Absolute Minimum
- The absolute minimum amount of a resource that the appliance needs to work at all. This is useful to allow running the appliance in sandbox/functional testing environments, where the appliance is not expected to run under production load, and can therefore run with much less resources. Contrast this with the Minimum above, which is amount of resources needed for production use.
To use the appliance with less than the Minimum resources, the sandbox scheduling option must be specified when starting the application -- see application start options.
Notes

The resource range that can be specified for the instance must be a
subset of the class resource range. The following must be true: the instance minimum must be no less than the class minimum; the instance maximum must be no more than the class maximum; the instance sandbox must be no less than the class sandbox value. Other common-sense constraints apply (e.g., that the minimum must be not greater than the maximum).

When propagating resource constraints through multiple levels of assemblies, the same rules apply: the new resource range must be a subset of the lower level resource range.

The degree, to which the resource ranges are enforced varies, based on the underlying virtualization technology used by AppLogic. In the beta release, the CPU minimum is guaranteed and the maximum is enforced only if other appliances need the CPU; the memory minimum and maximum are strictly enforced; the bandwidth minimum and maximum are not enforced at all -- they are used only in order to make scheduling decisions. As a result, it is guaranteed that an appliance will get its minimum CPU and memory; it may not get its full bandwidth if another appliance is scheduled on the same server and hogs the bandwidth. We expect the bandwidth guarantee to be provided in a future version; in the meantime, we can help devising a solution for particular problems you may have with this limitation (see
Technical Support).
Comments and questions
User Volumes
The User Volumes tab allows you to configure volumes for the appliance instance. Not all appliances need volumes to be configured for them; typically, only appliances that work with application-specific persistent data have such volumes. If the volume list on this tab is empty, the appliance instance does not need volumes.
Note that only "placeholder" volumes need to be configured through the instance settings (see the volumes tab in
Simple Class Editor property sheet). Other volumes needed by the appliance -- such as its boot volume -- are provided automatically by the appliance class and
don't need to be configured explicitly.
For each placeholder volume in the appliance, you can configure an application volume that should be used for this appliance.

To add or remove application volumes, go to the
Application Configuration property sheet, select the
User Volumes tab and press the
Manage Volumes button.
Instead of picking a specific application volume, you can also
redirect the volume selection to the containing assembly. To do this, select the

button and choose a volume defined on the assembly boundary (see
Assembly Class Editor for details on how to manage those).

The info button

next to the volume gives you information about the volume requirements (e.g., read-only, shared, etc.

See the appliance class data sheet for details what are the requirements to the volume(s) and whether they can be shared between appliances; also there may be some properties that can be set to configure directory names on the volume for this appliance. The data sheets for the global catalog appliances are in the
RefCatalog.
Comments and questions
Property Values
The Property Values tab allows you to set values for properties of the appliance instance. The existing properties for an instance and their defaults are determined by the appliance class (see
Simple Class Editor or
Assembly Class Editor for how properties are defined).
The default values of the properties are shown in normal font weight. Property values explicitly configured for this appliance are in
bold. Property values that are
redirected to the values of the containing assembly's properties are shown in
blue.
For information on the property, its type and allowed values, select the info button

. To restore the default value of a property, press the restore button

(use the "Reset All" button to reset the values of all properties to their defaults).
To redirect a property, press the redirect button

and choose the name of the assembly property to which you would like to redirect its value. For details on property redirection, see
Redirected Properties.
Note that some properties may not have defaults and require explicit (or redirected) values. Those properties are described as "Mandatory" in the

info. Not setting a value or redirection for a mandatory property will prevent the appliance from starting.

See the appliance class data sheet for details on what properties mean and what their values may be. The data sheets for the global catalog appliances are in the
Catalog Reference.
Comments and questions
--
BeckyH - 25 May 2006