Fusion Middleware Control Help for WebLogic Server

Previous Next Open TOC in new window
Content starts here

JMS Server: Configuration: General

Configuration Options     Advanced Configuration Options     

JMS servers act as management containers for the queues and topics in JMS modules that are targeted to them. A JMS server's primary responsibility for its destinations is to maintain information on what persistent store is used for any persistent messages that arrive on the destinations, and to maintain the states of durable subscribers created on the destinations.

Use this page to define the general configuration parameters for this JMS server.

Configuration Options

Name Description
Name

The name of this JMS server.

MBean Attribute:
JMSServerMBean.Name

Changes take effect after you redeploy the module or restart the server.

Scope

The scope in which this JMS server was configured.

Persistent Store

The file or database in which this JMS server stores persistent messages. If unspecified, the JMS server uses the default persistent store that is configured on each targeted WebLogic Server instance. If the JMS server has a store configured, then the configured store is used to store persistent messages.

The disk-based file store or JDBC-accessible database store that you specify must be targeted to the same server, cluster, or migratable target instance as this JMS server. Multiple services on the same WebLogic Server instance, including multiple JMS servers, may share the same persistent store. Each service's persistent data will be kept apart.

If you specify a PersistentStore, the deprecated Store field must not be set. If neither the PersistentStore field nor the Store field are set, the JMS server supports persistent messaging using the default persistent store for the targeted WebLogic Server instance.

MBean Attribute:
JMSServerMBean.PersistentStore

Changes take effect after you redeploy the module or restart the server.

Paging File Locking Enabled

Determines whether OS file locking is used.

When file locking protection is enabled, a store boot fails if another store instance already has opened the store files. Do not disable this setting unless you have procedures in place to prevent multiple store instances from opening the same file. File locking is not required but helps prevent corruption in the event that two same-named file store instances attempt to operate in the same directories. This setting applies to both primary and cache files.

MBean Attribute:
JMSServerMBean.PagingFileLockingEnabled

Changes take effect after you redeploy the module or restart the server.

Paging Directory

Specifies where message bodies are written when the size of the message bodies in the JMS server exceeds the message buffer size.

If unspecified, messages are written to the default tmp directory inside the server-name subdirectory of a domain's root directory. For example, domain-name/servers/server-name/tmp, where domain-name is the root directory of your domain.

For best performance, this directory should not be the same as the directory used by the JMS server's persistent store.

MBean Attribute:
JMSServerMBean.PagingDirectory

Changes take effect after you redeploy the module or restart the server.

Message Buffer Size

The amount of memory (in bytes) that this JMS server can use to store message bodies before it writes them to disk. When the JMS server writes the message bodies to disk, it clears them from memory.

A value of -1 (the default) specifies that the server will automatically determine a size based on the maximum heap size of the JVM. This default will be set to either one-third the maximum heap size, or 512 megabytes, whichever is smaller.

The larger the buffer, the more memory JMS will consume when many messages are waiting on queues or topics. Once the buffer is surpassed, JMS may write message bodies to the directory specified by PagingDirectory in an effort to reduce memory usage below this buffer.

Surpassing the buffer size does not stop the JMS server from accepting new messages. It is still possible to run out of memory if messages are arriving faster than they can be written to disk. Users with high messaging loads who wish to support the highest possible availability should consider setting a quota or setting a threshold and enabling flow control.

Paging is always supported.

MBean Attribute:
JMSServerMBean.MessageBufferSize

Minimum value: -1

Maximum value: 9223372036854775807

Hosting Temporary Destinations

Specifies whether this JMS server can be used to host temporary destinations.

If this field is enabled and no Temporary Template Name is defined, then the temporary destinations created on this JMS server will use all default destination values. If this field is enabled, then the JMS template to be used for creating temporary destinations is specified by the Temporary Template Name field. If this field is disabled, then this JMS server will not host temporary destinations.

MBean Attribute:
JMSServerMBean.HostingTemporaryDestinations

Module Containing Temporary Template

The name of a JMS module that contains a template that this JMS server can use to create temporary destinations.

Entering a JMS module name requires you to specify a temporary template name. However, a module name cannot be specified if the Hosting Temporary Destinations field is disabled.

MBean Attribute:
JMSServerMBean.TemporaryTemplateResource

Temporary Template Name

The name of a configured JMS template that this JMS server uses to create temporary destinations.

Entering a template name, requires you to specify the JMS module that contains this template. However, a template name cannot be specified if the Hosting Temporary Destinations field is disabled.

Note: If the specified JMS template provides persistent store values, they are ignored because temporary destinations do not support persistent messaging.

MBean Attribute:
JMSServerMBean.TemporaryTemplateName

Expiration Scan Interval

The number of seconds between this JMS server's cycles of scanning local destinations for expired messages. A value of 0 disables active scanning. A very large scan interval effectively disables active scanning.

With scanning disabled, users still do not receive expired messages and any expired messages that are discovered by other system activities are removed. However, expired messages sitting in idle destinations (such as an inactive queue or disconnected durable subscriber) are not removed and continue to consume system resources.

The scanning cycle for expired messages occurs as follows:

  • After the specified waiting period, the JMS server devotes a separate thread to scan all of its local destinations for expired messages.

  • After the scanning is completed, all located expired messages are processed according to the specified Expiration Policy on the destination (Discard, Log, or Redirect).

  • The entire process repeats after another specified waiting period.

Note: Because a new scan does not start until the current one is finished and until the specified waiting period ends, an expired message could still remain in the system for the maximum scan waiting period plus the amount of time it takes to perform the scan.

MBean Attribute:
JMSServerMBean.ExpirationScanInterval

Minimum value: 0

Maximum value: 2147483647

Advanced Configuration Options

Name Description
Message Compression Options

Specifies the type of message compression used when JMS message body compression is enabled for Persistent Stores and JMS Paging Stores.

  • Use GZIP_DEFAULT_COMPRESSION to enable message compression using the JDK GZIP API with DEFAULT_COMPRESSION level.

  • Use GZIP_BEST_COMPRESSION to enable message compression using the JDK GZIP API with BEST_COMPRESSION level.

  • Use GZIP_BEST_SPEED to enable message compression using the JDK GZIP API with BEST_SPEED level.

  • Use LZF to enable message compression using Open Source LZF.

This attribute should be used only when configuring a WebLogic domain in an Oracle Exalogic environment.

MBean Attribute:
JMSServerMBean.MessageCompressionOptions

Store Message Compression Enabled

Enables the JMS store to perform message body compression. When set to false, the default value, no compression is performed.

This attribute should be enabled only when configuring a WebLogic domain in an Oracle Exalogic environment.

MBean Attribute:
JMSServerMBean.StoreMessageCompressionEnabled

Paging Message Compression Enabled

Enables the JMS paging store to perform message body compression on persistent and non-persistent messages. When false, the default value, no compression is performed.

This attribute should be enabled only when configuring a WebLogic domain in an Oracle Exalogic environment.

MBean Attribute:
JMSServerMBean.PagingMessageCompressionEnabled

Store Enabled

Specifies whether message persistence is supported for this JMS server.

  • When set to true: If the JMS server has no store configured, the targeted WebLogic Server instance's default store is used to store persistent messages. If the JMS server has a store configured, then the configured store is used to store persistent messages.

  • When set to false, then this JMS server does not support persistent messages, and instead downgrades them to non-persistent.

  • The default value is true.

Oracle recommends not setting this parameter to false. It is available to provide compatibility with older releases.

MBean Attribute:
JMSServerMBean.StoreEnabled

Changes take effect after you redeploy the module or restart the server.

Insertion Paused At Startup

Indicates whether insertion is paused at startup on destinations targeted to this JMS server. A destination cannot receive any new messages while it is paused.

When the value is set to true, then immediately after the host server instance is booted, then this JMS server and its targeted destinations are modified such that they are in a "insertion paused" state, which results preventing messages that are result of the "in-flight" work completion to arrive on those destinations.

Note: For a detailed definition of "in-flight" work/messages, see weblogic.management.runtime.JMSServerRuntimeMBean#resumeInsertion and weblogic.management.runtime.JMSDestinationRuntime#resumeInsertion

To allow in-flight work messages to appear on the destinations, later you will have to change the state of this JMS server to an "insertion enabled" state by setting this value to false, and then either redeploy the JMS server or reboot the hosting server instance.

When the value is set to default, then the Insertion Paused At Startup is determined based on the corresponding setting on the individual destination.

MBean Attribute:
JMSServerMBean.InsertionPausedAtStartup

Changes take effect after you redeploy the module or restart the server.

Production Paused At Startup

Specifies whether production is paused at server startup on destinations targeted to this JMS server. A destination cannot receive any new messages while it is paused.

When the value is set to true, then immediately after the host server instance is rebooted, then this JMS server and its targeted destinations are modified such that they are in a "production paused" state, which results in preventing new message production activities on those destinations.

To resume normal new message production activity, later you will have to change the state of this JMS server to a "production enabled" state by setting this value to false, and then either redeploy the JMS server or reboot the hosting server instance.

When the value is set to default, then the Production Paused At Startup is determined based on the corresponding setting on the individual destination.

MBean Attribute:
JMSServerMBean.ProductionPausedAtStartup

Changes take effect after you redeploy the module or restart the server.

Consumption Paused At Startup

Indicates whether consumption is paused at startup on destinations targeted to this JMS server at startup. A destination cannot receive any new messages while it is paused.

When the value is set to true, then immediately after the host server instance is booted, then this JMS server and its targeted destinations are modified such that they are in a "consumption paused" state, which prevents any message consuming activity on those destinations.

To allow normal message consumption on the destinations, later you will have to change the state of this JMS server to a "consumption enabled" state by setting this value to false, and then either redeploy the JMS server or reboot the hosting server instance.

When the value is set to default, then the Consumption Paused At Startup is determined based on the corresponding setting on the individual destination.

MBean Attribute:
JMSServerMBean.ConsumptionPausedAtStartup

Changes take effect after you redeploy the module or restart the server.

Allow Persistent Downgrade

Specifies whether JMS clients will get an exception when sending persistent messages to a destination targeted to a JMS server that does not have a persistent store configured. This parameter only has effect when the Store Enabled parameter is disabled (false).

When set to false, the default, clients will get an exception when sending persistent messages to a JMS server with no store configured. When set to true, then persistent messages are downgraded to non-persistent; however, the send operations are allowed to continue.

MBean Attribute:
JMSServerMBean.AllowsPersistentDowngrade

Paging Min Window Buffer Size

The minimum amount of data, in bytes and rounded down to the nearest power of 2, mapped into the JVM's address space per paging store file. Applies only when a native wlfileio library is loaded. See Paging Maximum Window Buffer Size.

MBean Attribute:
JMSServerMBean.PagingMinWindowBufferSize

Minimum value: -1

Maximum value: 1073741824

Changes take effect after you redeploy the module or restart the server.

Paging Max Window Buffer Size

The maximum amount of data, in bytes and rounded down to the nearest power of 2, mapped into the JVM's address space per paging store file. Applies only when a native wlfileio library is loaded.

A window buffer does not consume Java heap memory, but does consume off-heap (native) memory. If the paging store is unable to allocate the requested buffer size, it allocates smaller and smaller buffers until it reaches PagingMinWindowBufferSize, and then fails if it cannot honor PagingMinWindowBufferSize.

Oracle recommends setting the max window buffer size to more than double the size of the largest write (multiple concurrently updated records may be combined into a single write), and greater than or equal to the file size, unless there are other constraints. 32-bit JVMs may impose a total limit of between 2 and 4GB for combined Java heap plus off-heap (native) memory usage.

See the JMS server runtime MBean attribute PagingAllocatedWindowBufferBytes to find out the actual allocated Window Buffer Size.

MBean Attribute:
JMSServerMBean.PagingMaxWindowBufferSize

Minimum value: -1

Maximum value: 1073741824

Changes take effect after you redeploy the module or restart the server.

Paging IO Buffer Size

The I/O buffer size, in bytes, automatically rounded down to the nearest power of 2.

  • When a native wlfileio driver is available, the setting applies to off-heap (native) memory.

  • When a native wlfileio driver is not available, the setting applies to JAVA heap memory.

  • For the best runtime performance, Oracle recommends setting PagingIOBufferSize so that it is larger than the largest write (multiple concurrent store requests may be combined into a single write).

  • See the JMS server runtime MBean attribute PagingAllocatedIOBufferBytes to find out the actual allocated off-heap (native) memory amount.

MBean Attribute:
JMSServerMBean.PagingIoBufferSize

Minimum value: -1

Maximum value: 67108864

Changes take effect after you redeploy the module or restart the server.

Paging Max File Size

The paging maximum file size, in bytes.

  • The PagingMaxFileSize value affects the number of files needed to accommodate a paging store of a particular size (number of files = paging store size/MaxFileSize rounded up).

  • A paging store automatically reuses space freed by deleted records and automatically expands individual files up to PagingMaxFileSize if there is not enough space for a new record. If there is no space left in exiting files for a new record, a paging store creates an additional file.

  • A small number of larger files is normally preferred over a large number of smaller files as each file allocates Window Buffer and file handles.

  • If PagingMaxFileSize is larger than 2^24 * PagingBlockSize, then MaxFileSize is ignored, and the value becomes 2^24 * PagingBlockSize. The default PagingBlockSize is 512, and 2^24 * 512 is 8 GB.

Oracle recommends not setting the Paging Max File Size above the default value of 1,342,177,280.

MBean Attribute:
JMSServerMBean.PagingMaxFileSize

Minimum value: 10485760

Changes take effect after you redeploy the module or restart the server.

Paging Block Size

The smallest addressable block, in bytes, of a file. When a native wlfileio driver is available and the paging block size has not been configured by the user, the store selects the minimum OS specific value for unbuffered (direct) I/O, if it is within the range [512, 8192].

A paging store's block size does not change once the paging store creates its files. Changes to block size only take effect for new paging stores or after the current files have been deleted. See "Tuning the Persistent Store" in Performance and Tuning for Oracle WebLogic Server.

MBean Attribute:
JMSServerMBean.PagingBlockSize

Minimum value: -1

Maximum value: 8192

Changes take effect after you redeploy the module or restart the server.


Back to Top