The Runtime Image
The Fabric3 Server runtime image is organized in the following way:
/bin |
|
|
|
| Startup modules |
|
/lib |
|
|
|
| Modules required to start the runtime host |
|
/boot |
|
|
|
| Modules required for the runtime bootstrap and primordial system services |
|
/host |
|
|
|
| Libraries shared between the runtime and application (e.g. web services annotations) |
|
/extensions |
|
|
|
| Extension modules that are able to be loaded by all runtime instances |
|
/runtimes |
|
|
|
| Specific runtime instance configuration is hosted by default under this directory |
|
| <runtime-name> |
|
|
| top level directory for a runtime configuration |
|
|
| /config |
|
| Contains systemConfig.xml for configuring the runtime and extensions |
|
|
| /deploy |
|
| File system deploy directory for the controller and single-VM runtimes |
|
|
| /repository |
|
|
|
|
|
|
| /runtime |
| Extensions only loaded for the runtime image |
|
|
|
| /user |
| User contributions (only populated on the controller and single-VM runtimes) |
|
|
| /data |
|
| Persistent data directory for a runtime instance (e.g. transaction log) |
|
|
| /tmp |
|
| Temporary data and artifact cache for a runtime instance |
|
Runtime Cloning
For high-density clustered topologies such as cloud environments, Fabric3 provides the ability to clone runtimes. This allows new instances to be spawned from a configuration template using a single command without the need for manual setup. The following command clones a runtime image and launches the cloned instance:
Code Block |
---|
java -jar server.jar clone:template runtime2
|
Configuring the Domain Name
If more than one domain is run on the same physical network, it is necessary to create unique domain names. The domain name is configured using the domain attribute of the <runtime> element:
...
<config>
<runtime domain="mydomain"/>
</config>
The domain name must be a valid URI host and not contain characters such as ":" or "/". The default domain name is domain
.
Configuring the Runtime Mode
The runtime mode is configured using the mode attribute of the <runtime>
element:
...
<config>
<runtime mode="controller"/>
</config>
Valid values are: vm
; participant
; and controller
. For more information on the runtime mode setting, see The Domain.
Enabling Pass-By-Value Semantics
By default, Fabric3 is configured to use pass-by-reference semantics when invoking remotable services collocated with their clients. This avoids the overhead of parameter copying. In some cases, this may not be desirable, for example, if a service directly modifies parameter data that should not be visible to clients. To avoid this, the runtime can be configured to follow SCA by-value semantics by setting the @enableByValue
attribute to true on the SCA setting in serviceConfig.xml:
...