Previous Topic: TOMCAT, TOMCAT64: Application ServersNext Topic: ROR: Ruby-on-Rails Application Server


JBOSS, JBOSS64: JBoss Application Server

JBOSS Appliance

At a Glance

Catalog

System

Category

Application Servers

User volumes

yes

Min. memory

160M

OS

Linux

Constraints

no

Functional Overview

JBOSS is an application server appliance based on open source JBoss. JBOSS supports two separate versions of JBoss software:

JBOSS supports a number of advanced technologies and features:

JBOSS automatically deploys web applications from either a locally mounted content volume or a network filesystem accessible through the fs terminal. Several pre-configured execution environments, derived from the standard JBoss configurations, are available. The path to the application documents is configurable, so that the same volume can be shared between multiple web servers and other appliances serving different content.

JBOSS has three generic output terminals intended for accessing external services: The db terminal is for accessing various databases; the fs terminal is for accessing shared file storage (using NFS); and the aux terminal is for sending e-mail messages to an SMTP server.

The log terminal can be used to connect JBOSS to a shared file system on which JBOSS can store log files.

The configuration of the server is provided through properties. These properties are designed to cover most uses in an easy-to-configure way and in most cases only a few need to be set to non-default values.

Name

Latest version

JBOSS

1.0.2-1

JBOSS64

1.0.2-1

Boundary

Resources

32-bit version

Resource

Minimum

Maximum

Default

Tested

CPU

0.1

16

0.25

-

Memory

160 MB

4 GB

1 GB

-

Bandwidth

1 Mbps

2 Gbps

250 Mbps

-

64-bit version

Resource

Minimum

Maximum

Default

Tested

CPU

0.1

16

0.25

-

Memory

160 MB

32 GB

1 GB

-

Bandwidth

1 Mbps

2 Gbps

250 Mbps

-

Memory requirements for JBOSS

Java applications usually require increased amount of RAM to function properly, and the amount of memory required by JBOSS depends on the requirements of the running applications. JBOSS may crash or not work properly if not enough memory is available. In the case of a crash, a dashboard message is recorded.

Terminals

Name

Direction

Protocol

Description

in

in

HTTP

Serves HTTP requests coming from web clients.

db

out

HTTP

Access to a database server. Usage is defined by whatever scripts reside on the content volume (if any). This terminal may be left unconnected if it is not used.

fs

out

HTTP

Access to a network file system for shared file storage, providing read/write file access over NFS. The connected server must have a read/write share named /mnt/data. The mounted remote file system is 'seen' as /mnt/fs within the appliance's filesystem space. This terminal may be left unconnected if it is not used.

log

out

CIFS

Access to a CIFS-based network file system for storing access and error logs. The connected server must allow anonymous logins and have a read/write share named share. This terminal may be left unconnected if it is not used.

aux

out

HTTP

Access to an SMTP server for sending outgoing e-mail. This terminal may be left unconnected if it is not used.

net

out

HTTP

Gateway output for subnet access. This terminal may be left unconnected if it is not used.

mon

out

CCE

Sends performance and resource usage statistics. This terminal may be left unconnected if not used.

Volumes

Name

Description

temp

A mandatory read/write volume for temporary storage. Used for temporary files and application deployment. The required size depends on the size of deployed applications and re-deployment frequency. This volume is automatically cleaned upon appliance start. JBOSS monitors the free disk space on this volume and records dashboard messages when amount of free disk space drops under 5% or 2%.

content

A read/only or read/write volume for application storage. This volume is only used if the content_on_fs property is set to no, in which case this volume is mandatory. If content_on_fs is set to yes and the content volume exists, the appliance will fail to start.

Properties

General Properties

Name

Type

Description

jboss_env

String

One of the four modes of operation:
JBoss 4, JDK 5 - JBoss version 4.2.3, JDK version 1.5 Update 22
JBoss 4, JDK 6 - JBoss version 4.2.3, JDK version 1.6 Update 21
JBoss 5, JDK 5 - JBoss version 5.1.0, JDK version 1.5 Update 22
JBoss 5, JDK 6 - JBoss version 5.1.0, JDK version 1.6 Update 21.
Default: JBoss 4, JDK 5

jboss_cfg

String

Configuration of JBoss. Possible values:
minimal - default 'minimal' configuration of JBoss
default - default 'default' configuration of JBoss
all - default 'all' configuration of JBoss
headless - 'default' configuration with Tomcat and Web Services components removed
all-headless - 'all' configuration with Tomcat and Web Services components removed
web - configuration with only Tomcat and Web Services components enabled, used for web frontends.
custom - user-defined configuration. A folder named JBOSS should be created in the root of content volume or the fs terminal filesystem. All needed folders (minimally those which are conf, deploy and libs) should be supplied inside this folder.

Default: default.

heap_size

Int

Amount of memory allocated for Java heap (the -Xms and -Xmx options). If this property equals '0', the value is auto-calculated by JBOSS (approximately 70% of RAM). If this property is empty, JBOSS does not pass -XMs and -XMx properties to JVM at all, and these properties may be specified directly by the user in the java_opts property.
Default: 0.

perm_size

Int

Amount of memory allocated for Java permanent objects (the -XX:PermSize and -XX:MaxPermSize options). If this property equals '0', value is autocalculated by JBOSS (approximately 20% of RAM). If this property is empty, JBOSS does not pass -XX:PermSize and -XX:MaxPermSize properties to JVM at all, and these properties may be specified directly by user in java_opts property.
Default: 0.

java_opts

String

This string is added to the JAVA_OPTS environment variable before launching JVM. Additional options and parameters may be specified here (ex. heap size, perm size, debug options, and so on.).
Default: (empty).

tcp_port

Integer

Port that JBOSS listens on for incoming connections.
Default: 8080.

app_base

String

Directory for the user deployable applications, relative to the root of the data source (mounted content volume or NFS-mounted share).
Default: deploy.

content_on_fs

String

Specifies whether the content is relative to the file system at the fs terminal or is on the content volume.
Default: off (implying that the content is located on the content volume)

timezone

String

Specifies the time zone used in the appliance. If this property is empty, the timezone is not modified and is left as-is. A list of supported time zones is available here? .
Default: (empty)

Logging Properties

Name

Type

Description

logs_enabled

String

Enables or disables logging. Valid values are yes or no. If the log terminal is not connected, and this property set to yes, JBOSS fails to start.
Default: no

logs_dir

String

Directory where logs are stored relative to the root of the log share.
Default:_(empty)_.

log_filename

String

Filename for the log file.
Default: jboss.log.

log_level

String

Logging level. {valid values and default required}

Clustering Properties

Name

Type

Description

partition_name

String

The name of a partition. All instances of JBOSS on the grid which have same partition name are joined into a cluster. If this property is empty clustering support is disabled. Default: (empty)

Typical Usage

Simple web/application server

This is the simplest way to use a JBOSS appliance. One IN gateway routes all incoming HTTP traffic to the JBOSS appliance. In this scenario, JBOSS uses a local content volume.

JBOSS Usage Example 1

Appliances in use:

Properties in use:

Property

Value

Description

jboss_env

JBoss 4, JDK 5

JBoss environment in use.

jboss_cfg

default

Default configuration of JBoss.

tcp_port

80

Default port for HTTP.

app_base

content

Applications are located in /content subdirectory of the data volume.

content_on_fs

off

Content is located on local volume.

logs_enabled

no

No logging.

Simple web/application server with external data store, database and monitoring

This is a more complex example which uses external data storage, a database appliance and a monitoring appliance.

JBOSS Usage Example 2

Appliances in use:

Properties in use:

Property

Value

Description

jboss_env

JBoss 5, JDK 6

Latest JBoss environment in use.

jboss_cfg

default

Default configuration of JBoss.

tcp_port

80

Default port for HTTP.

app_base

content

Applications are located in /content subdirectory of the NFS-mounted data volume.

content_on_fs

on

Content is located on NFS-mounted volume.

logs_enabled

yes

With logging.

logs_dir

/jboss_logs

Log file is located in /jboss_logs/ subdirectory of the NAS appliance.

log_filename

jboss-runtime.log

Log file is named "jboss-runtime.log".

log_level

EMERG

Only emergency messages are logged.

Application server with frontend

In this example the frontend WEB5 appliance processes static content, and redirects all requests for dynamically-generated content to the backend JBOSS appliance.

JBOSS Usage Example 3

Appliances in use:

Properties in use:

Property

Value

Description

jboss_env

JBoss 4, JDK 5

JBoss environment in use.

jboss_cfg

default

Default configuration of JBoss.

tcp_port

8080

Standard JBoss TCP port.

app_base

content

Applications are located in /content subdirectory of the data volume.

content_on_fs

off

Content is located on local volume.

logs_enabled

no

No logging.

Complex hosting environment with clustered and fault-tolerant frontend, databases, backend servers.

This is a complex application with a clustered frontend, multiple clustered databases and a clustered JBoss backend.

JBOSS Usage Example 4

The gw4 input gateway receives incoming requests and forwards them to the URL switch sw1 which separates requests for static content (sent through output terminals 1-3, through the load balancer lb1, and thence to the web frontend servers web1 and web2) from application calls (sent through output terminals 5-7, through the backend load balancer lb2, and then to the JBoss application servers AppSrv4 and AppSrv5). The frontend web farm (web1 and web2) processes incoming requests, and either replies with static content, or forwards requests to the backend servers through the second load balancer lb2. The frontend servers use clustered MySQL database appliances db_1_1 and db_1_2. The second load balancer lb2 balances traffic between clustered JBoss appliances AppSrv4 and AppSrv5. These in turn use clustered database appliances db_2_1 and db_2_2. Data storage is provided via NFS by the NAS appliance nas.

Appliances in use:

Properties in use:

Property

Value

Description

jboss_env

JBoss 5, JDK 6

Latest JBoss environment in use.

jboss_cfg

all

'all' configuration of JBoss, includes clustering.

tcp_port

8080

Default port for JBoss.

app_base

content

Applications are located in /content subdirectory of the NFS-mounted data volume.

content_on_fs

on

Content is located on NFS-mounted volume.

logs_enabled

no

No logging.