JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Oracle GlassFish Server Message Queue 4.5 Administration Guide
search filter icon
search icon

Document Information

Preface

Part I Introduction to Message Queue Administration

1.  Administrative Tasks and Tools

2.  Quick-Start Tutorial

Part II Administrative Tasks

3.  Starting Brokers and Clients

4.  Configuring a Broker

5.  Managing a Broker

6.  Configuring and Managing Connection Services

7.  Managing Message Delivery

8.  Configuring Persistence Services

9.  Configuring and Managing Security Services

10.  Configuring and Managing Broker Clusters

11.  Managing Administered Objects

12.  Configuring and Managing Bridge Services

13.  Monitoring Broker Operations

14.  Analyzing and Tuning a Message Service

15.  Troubleshooting

Part III Reference

16.  Command Line Reference

17.  Broker Properties Reference

Connection Properties

Routing and Delivery Properties

Persistence Properties

File-Based Persistence Properties

File-Based Persistence Properties for Transaction Logging

JDBC-Based Persistence Properties

Security Properties

Monitoring Properties

Cluster Configuration Properties

Bridge Properties

JMX Properties

Alphabetical List of Broker Properties

18.  Physical Destination Property Reference

19.  Administered Object Attribute Reference

20.  JMS Resource Adapter Property Reference

21.  Metrics Information Reference

22.  JES Monitoring Framework Reference

Part IV Appendixes

A.  Distribution-Specific Locations of Message Queue Data

B.  Stability of Message Queue Interfaces

C.  HTTP/HTTPS Support

D.  JMX Support

E.  Frequently Used Command Utility Commands

Index

Persistence Properties

Message Queue supports both file-based and JDBC-based persistence modules. The broker property imq.persist.store (Table 17-5) specifies which module to use. The following sections describe the broker configuration properties for the two modules.

Table 17-5 Global Broker Persistence Property

Property
Type
Default Value
Description
imq.persist.store
String
file
Module used for persistent data storage:
  • file: File-based persistence

  • jdbc: JDBC-based persistence

Must be set to jdbc for enhanced broker clusters (imq.cluster.ha = true).

File-Based Persistence Properties

Table 17-6 lists the broker properties related to file-based persistence.

Table 17-6 Broker Properties for File-Based Persistence

Property
Type
Default Value
Description
imq.persist.file.message.max_record_size
String
1m
Maximum-size message to add to message storage file

Any message exceeding this size will be stored in a separate file of its own.

The value may be expressed in bytes, kilobytes, or megabytes, using the following suffixes:
  • b: Bytes

  • k: Kilobytes (1024 bytes)

  • m: Megabytes (1024 × 1024 = 1,048,576 bytes)

An unsuffixed value is expressed in bytes.

Examples:
  • 1600: 1600 bytes

  • 1600b: 1600 bytes

  • 16k: 16 kilobytes (= 16,384 bytes)

  • 16m: 16 megabytes (= 16,777,216 bytes)

imq.persist.file.destination.message.filepool.limit
Integer
100
Maximum number of free files available for reuse in destination file pool

Free files in excess of this limit will be deleted. The broker will create and delete additional files in excess of the limit as needed.

The higher the limit, the faster the broker can process persistent data.

imq.persist.file.message.filepool.cleanratio
Integer
0
Percentage of files in free file pools to be maintained in a clean (empty) state

The higher this value, the less disk space is required for the file pool, but the more overhead is needed to clean files during operation.

imq.persist.file.message.cleanup
Boolean
false
Clean up files in free file pools on shutdown?

Setting this property to true saves disk space for the file store, but slows broker shutdown.

imq.persist.file.sync.enabled
Boolean
false
Synchronize in-memory state with physical storage device?

Setting this property to true eliminates data loss due to system crashes, but at a cost in performance.


Note - If running Oracle Solaris Cluster and its Data Service for Message Queue, set this property to true for brokers on all cluster nodes.


imq.persist.file.transaction.memorymappedfile.enabled
Boolean
true
Use memory-mapped file to store transaction data?

Setting this property to true improves performance at the cost of increased memory usage. Set to false for file systems that do not support memory-mapped files.

File-Based Persistence Properties for Transaction Logging

Table 17-7 lists the file-based persistence properties for the transaction logging mechanism.

Table 17-7 Broker Properties for File-Based Persistence Using the Transaction Logging Mechanism

Property
Type
Default Value
Description
imq.persist.file.newTxnLog.enabled
Boolean
false
Enables the transaction logging mechanism. For information about this mechanism, see Optimizing File-Based Transaction Persistence.
imq.persist.file.txnLog.groupCommit
Boolean
false
This property is applicable only if imq.persist.file.newTxnLog.enabled is true.

Can improve performance if imq.persist.file.sync.enabled is true and the number of concurrent transactions being processed is high:

  • If true, write operations to the transaction log are not handled by individual connection threads; instead, writes from connection threads are added to a transaction queue. The connection threads then wait until they are notified that the transactions have been logged. A separate thread periodically drains the transaction queue and writes it to the transaction log. When possible, this thread groups together multiple active transactions and writes them to the transaction log in a single operation. After the write completes, waiting client threads are notified.

  • If false, write operations to the transaction log are handled by individual connection threads. Only one thread at a time is able to write to the log.

imq.persist.file.txnLog.logNonTransactedMsgSend
Boolean
false
This property is applicable only if imq.persist.file.newTxnLog.enabled is true.

Overrides the behavior for persisting non-transacted messages (as defined by the imq.persist.file.sync.enabled property):

  • If true, non-transacted messages are written to the transaction log before they are written to the persistent store.

  • If false, non-transacted messages are written directly to the persistent store.

imq.persist.file.txnLog.logNonTransactedMsgAck
Boolean
false
This property is applicable only if imq.persist.file.newTxnLog.enabled is true.

Overrides the behavior for persisting non-transacted message acknowledgements (as defined by the imq.persist.file.sync.enabled property):

  • If true, acknowledgements of non-transacted messages are written to the transaction log before they are written to the persistent store.

  • If false, acknowledgements of non-transacted messages are written directly to the persistent store.

JDBC-Based Persistence Properties

Table 17-8 lists the broker properties related to JDBC-based persistence. The first of these properties, imq.persist.jdbc.dbVendor, identifies the database vendor being used for the broker’s persistent data store; all of the remaining properties are qualified by this vendor name.

Table 17-8 Broker Properties for JDBC-Based Persistence

Property
Type
Default Value
Description
imq.persist.jdbc.dbVendor
String
None
Name of database vendor for persistent data store:
  • derby: Java DB (Oracle Corporation)

  • oracle: Oracle (Oracle Corporation)

  • mysql: MySQL (Oracle Corporation)

  • postgresql: postgreSQL

imq.persist.jdbc.connection.reaptime
Integer
300
The interval in seconds between attempts to close unnecessary database connections.
imq.persist.jdbc.max_connections
Integer
5
The maximum number of connections that should be opened to the database. The Message Queue database connection pool manager uses this value as a guide when creating new connections to the database.
imq.persist.jdbc.min_connections
Integer
5
The number of connections that are opened to the database when the Message Queue database connection pool is initialized, and the minimum number of connections that are to be kept open when unnecessary connections are closed.
imq.persist.jdbc.connection.timeoutIdle
Boolean
true
Should the Message Queue database connection pool manager considers the age of a connection in the pool?

When true, the pool manager operates as follows:

  • When closing unnecessary database connections at each imq.persist.jdbc.connection.reaptime interval, the pool manager destroys any connections in the pool that have been idle for a period longer than imq.persist.jdbc.connection.reaptime seconds, and attempts to replace them with new connections.

  • When getting a connection from the pool, the pool manager destroys the connection if it has been idle for a period longer than imq.persist.jdbc.connection.reaptime seconds and replaces it with a new connection.

imq.persist.jdbc.connection.validateOnGet
Boolean
true for brokers in enhanced clusters; otherwise, false
Should the Message Queue database connection pool manager perform extra validation when it gets a connection from the pool?

Normally, the pool manager validates a connection it gets from the pool by checking whether the connection is closed and, if possible, by checking whether a connection error has occurred on the connection.

When this property is set to true, the pool manager performs these additional validation checks:

  • For JDBC 4 connections, check whether the connection is valid.

  • Make the validation query specified by imq.persist.jdbc.connection.validationQuery on the connection.

Regardless of the value of this property, Message Queue relies on the underlying JDBC driver to return a good connection when it needs to create a new connection through the driver. Therefore, you should set imq.persist.jdbc.vendorName.driver to a vendor JDBC driver that performs connection retries when creating a new connection to the database server; for example, a ConnectionPoolDataSource.

imq.persist.jdbc.connection.validationQuery
String
per vendor
The validation query for the Message Queue database connection pool manager to use when imq.persist.jdbc.connection.validateOnGet is set to true.
imq.persist.jdbc.connection.limit
Integer
5
The maximum number of connections that can be opened to the database.

This property is deprecated and may become unsupported in a future release of Message Queue.

imq.persist.jdbc.vendorName.driver
String
per vendor
Java class name of JDBC driver, if needed, for connecting to database from vendor vendorName
imq.persist.jdbc.vendorName.opendburl
String
None
URL for connecting to existing database from vendor vendorName

Applicable when driver is used to connect to database.

imq.persist.jdbc.vendorName.createdburl1
String
None
URL for creating new database from vendor vendorName

Applies for embedded database, such as Java DB.

imq.persist.jdbc.vendorName.closedburl1
String
None
URL for closing connection to database from vendor vendorName

Applies for some embedded databases, such as Java DB.

imq.persist.jdbc.vendorName.user1
String
None
User name, if required, for connecting to database from vendor vendorName

For security reasons, the value can instead be specified using command line options imqbrokerd -dbuser and imqdbmgr -u.

imq.persist.jdbc.vendorName.needpassword1
Boolean
false
Does database from vendor vendorName require a password for broker access?

If true, the imqbrokerd and imqdbmgr commands will prompt for a password, unless you use the -passfile option to specify a password file containing it.

imq.persist.jdbc.vendorName.password1,2
String
None
Password, if required, for connecting to database from vendor vendorName
imq.persist.jdbc.vendorName.property.propName1
String
None
Vendor-specific property propName for database from vendor vendorName
imq.persist.jdbc.vendorName.tableoption1
String
None
Vendor-specific options passed to the database when creating the table schema.

1Optional

2Should be used only in password files