Machine brick

Machine bricks specify the name and connection details of each machine in a distributed environment.

If you are connecting to multiple machines, you usually set the jcd_port, jcd_use_ssl, and sslcertfiles settings globally, because they tend to be the same across machines. However, if machines with different JCD configurations need to communicate, these settings may be specified in individual Machine bricks. An example of such a configuration would be one machine running on port 8088 with certificate files located on its C: drive, a second running on port 9099 with certificate files located on its D: drive, and a third running on port 7077 without SSL.

Machine brick settings

Setting

Description

name

IP address or DNS name of the machine. This setting is optional, and defaults to the brick name. If you choose to omit this setting, the brick name must be the same as the machine’s DNS name.

jcd_port

The port used to connect to the Endeca JCD. This must match the port listed in the jcd.conf file. The standard port for the Endeca JCD is 8088.

Note: Although jcd_port is usually set globally, you may set it individually for a specific Machine brick.

jcd_use_ssl

Specifies whether or not the Control Interpreter must use SSL when communicating with the JCD on this machine. Values are true and false.

If you have configured the JCD to use SSL (by setting ssl=true and specifying an sslcertfile in the jcd.conf file), then you must do the following in the control script:
  1. Set jcd_use_ssl to true.
  2. Specify an sslcertfile, as described below.
Note: Although jcd_use_ssl is usually set globally, you may set it individually for a specific Machine brick.

sslcertfile

Specifies the path of the certificate file, eneCert.pem, that Endeca components (Control Interpreter, Forge, Dgraph, and Agraph) should present when communicating with other Endeca components via SSL. There must be a global default set for sslcertfile, but you can override the default by setting a different sslcertfile within specific bricks.

Note: In order to simplify installation and configuration, all Endeca components use the same certificate file, eneCert.pem, for secure communication. The sslcertfile you specify in jcd.conf, however, configures only the JCD, while the sslcertfile you specify in a control script dictates behavior for all other Endeca components, excluding the JCD.
Note: This path is also used in conjunction with the advanced forge_use_ssl and ene_use_ssl settings.

stdout

Where to redirect stdout for the brick. By default, stdout is sent to the screen. Specifying a value for stdout overrides the stdout_base setting.

stderr

Where to redirect stderr for the brick. By default, stderr is sent to the screen. Specifying a value for stderr overrides the stderr_base setting.

Machine brick commands

Machine bricks have three commands that can be used within Script bricks:

Command

Description

is_win32

The is_win32 operation succeeds if the machine that the Machine brick is defined for is running the Windows operating system.

Note: This operation allows you to write control scripts that are compatible with both the Windows and UNIX platforms. See the examples below.

is_unix

The is_unix operation succeeds if the machine that the Machine brick is defined for is running a UNIX operating system.

Note: This operation allows you to write control scripts that are compatible with both the Windows and UNIX platforms. Seethe examples below.

halt_jcd

The halt_jcd operation stops the Endeca JCD on the machine for which the Machine brick is defined.

On Windows, the Endeca JCD will be restarted automatically by the Windows Service Manager after the halt_jcd command is executed. On UNIX, the Endeca JCD is automatically restarted via the inittab.

Note: The halt_jcd command is an advanced feature that is generally used for automated software updating only.
The following is an example of a Machine brick called indexer:
indexer : Machine
	name = idx01 #DNS name of machine
	jcd_port = 8088
The following example shows what a Machine brick might look like if the jcd_port setting was specified globally:
idx01 : Machine
	name = idx01 #DNS name of machine
The following excerpt from a Script brick illustrates how Machine operations work. This example shows how to test for a specific platform, and control what the Control Interpreter does depending on the results of the test.
myScript : Script
	if idx01.is_win32
		do_win32_version
	else
		do_unix_version