1 Introduction and Roadmap

This chapter describes the contents and organization of this guide—Administering JMS Resources for Oracle WebLogic Server.

This chapter includes the following sections:

Document Scope and Audience

This guide is a resource for system administrators who configure, manage, and monitor Oracle WebLogic Java Messaging Service (JMS) resources, including JMS servers, stand alone destinations (queues and topics), distributed destinations, and connection factories.

This information is relevant to production-phase administration, monitoring, and performance tuning. It does not address the pre production development or testing phases of a software project.

It is assumed that the reader is familiar with WebLogic Server system administration. This guide emphasizes the value-added features provided by WebLogic Server JMS and key information about how to use WebLogic Server features and components to maintain WebLogic JMS in a production environment.

Guide to This Document

Related Documentation

This guide contains JMS-specific configuration and maintenance information.

For comprehensive information about developing, deploying, and monitoring WebLogic Server applications:

JMS Samples and Tutorials for the JMS Administrator

Oracle provides JMS code samples and tutorials that document JMS configuration, API use, and key JMS development tasks. Oracle recommends that you run some or all of the JMS examples before configuring your own system.

Avitek Medical Records Application (MedRec) and Tutorials

MedRec is an end-to-end sample Java EE application shipped with WebLogic Server that simulates an independent, centralized medical record management system. The MedRec application enables patients, doctors, and administrators to manage patient data using a variety of different clients.

MedRec demonstrates WebLogic Server and Java EE features, and highlights Oracle-recommended best practices. MedRec is optionally installed with the WebLogic Server installation. You can start MedRec from the ORACLE_HOME\user_projects\domains\medrec directory, where ORACLE_HOME is the directory that you specified as the Oracle home when you installed Oracle WebLogic Server. For more information, see Sample Applications and Code Examples in Understanding Oracle WebLogic Server.

JMS Examples in the WebLogic Server Distribution

This release of WebLogic Server optionally installs API code examples in the ORACLE_HOME\wl_server\samples\server\examples\src\examples directory, where ORACLE_HOME represents the Oracle Fusion Middleware home directory.

For more information, see Sample Applications and Code Examples in Understanding Oracle WebLogic Server.

WebLogic Server Value-Added JMS Features

WebLogic JMS provides numerous WebLogic JMS Extension APIs that go beyond the standard JMS APIs specified by the JMS 1.1 and 2.0 Specification. These are available at http://www.oracle.com/technetwork/java/jms/index.htmlopens a new window. Moreover, WebLogic JMS is tightly integrated into the WebLogic Server platform, allowing you to build secure Java EE applications that can be easily monitored and administered through the WebLogic Server console. In addition to fully supporting XA transactions, WebLogic JMS also features high availability through its clustering and service migration features, while also providing interoperability with other releases of WebLogic Server and third-party messaging providers.

The following sections provide an overview of the unique features and powerful capabilities of WebLogic JMS.

Enterprise-Grade Reliability

WebLogic JMS includes the following reliability features:

  • Out of the box transaction support:

    • Fully supported transactions, including distributed transactions, between JMS applications and other transaction-capable resources using the Java Transaction API (JTA), as described in Using Transactions with WebLogic JMS in Developing JMS Applications for Oracle WebLogic Server.

    • Fully integrated Transaction Manager, as described in Introducing Transactions in Developing JTA Applications for Oracle WebLogic Server.

  • File or database-persistent message storage (both fully XA transaction capable). See Using the WebLogic Persistent Store in Administering the WebLogic Persistent Store.

  • Message Store-and-Forward (SAF) that is clusterable and improves reliability by locally storing messages sent to unavailable remote destinations. See Understanding the Store-and-Forward Service in Administering the Store-and-Forward Service for Oracle WebLogic Server.

  • If a server or network failure occurs then, JMS producer and consumer objects attempts to transparently fail-over to another server instance, if one is available. See Automatic JMS Client Failover in Developing JMS Applications for Oracle WebLogic Server.

  • Supports connection clustering using connection factories targeted on multiple WebLogic Servers, as described in Configuring WebLogic JMS Clustering.

  • System-assisted configuration of Uniform Distributed Queues, Replicated Distributed Topics, and Partitioned Distributed Topics that provide high availability, load balancing, and failover support in a cluster, as described in Using Distributed Destinations and Developing Advanced Pug/Sub Applications in Developing JMS Applications for Oracle WebLogic Server.

  • Automatic whole server migration provides improved cluster reliability and server migration WebLogic Server now supports automatic and manual migration of a clustered server instance and all the services it hosts from one machine to another, as described in Configuring WebLogic JMS Clustering.

  • WebLogic JMS provides complete in-place restart support to provide the retry mechanism to auto-restart a failed file-based or JDBC-based store and its upper services without any server conflicts. See Restart In Placein Administering the WebLogic Persistent Store.

  • Redirection of failed or expired messages to error destinations, as described in Managing Rolled Back, Recovered, Redelivered, or Expired Messages in Developing JMS Applications for Oracle WebLogic Server.

  • Supports the JMS Delivery Count message property JMSXDeliveryCount, which specifies the number of message delivery attempts, where the first attempt is 1, the second is 2, and so on. WebLogic Server makes a best effort for a persistent delivery count, so that the delivery count does not reset back to one after a server restart. See Message in Developing JMS Applications for Oracle WebLogic Server.

  • Provides three levels of load balancing: network-level, JMS connections, and distributed destinations.

Enterprise-Level Features

WebLogic JMS includes the following enterprise-level features:

  • WebLogic Server fully supports the JMS 1.1 and JMS 2.0 specifications (available at http://www.oracle.com/technetwork/java/jms/index.html) opens a new window, in compliance with the Java EE 7.0 ;platform specification, and provides numerous WebLogic JMS Extensions that go beyond the standard JMS APIs.

  • Robust message and destination management capabilities:

    • Administrators can manipulate most messages in a running JMS Server, using either the WebLogic Server Administration Console or runtime APIs. See Managing JMS Messages.

    • Administrators can pause and resume message production, message insertion (in-flight messages), and message consumption operations on a given JMS destination, or on all the destinations hosted by a single JMS server, using either the WebLogic Server Administration Console or runtime APIs. See Controlling Message Operations on Destinations.

    • Message-Driven Beans (MDBs), EJBs also supply message pause and resume functionality, and can even automatically and temporarily pause during error conditions. See Programming and Configuring MDBs: Details in Developing Message-Driven Beans for Oracle WebLogic Server.

  • Modular deployment of JMS resources, which are defined by an Extensible Markup Language (XML) file so that you can migrate your application and the required JMS configuration from environment to environment without opening an enterprise application file, and without extensive manual JMS reconfiguration. See Overview of JMS Modules.

  • JMS message producers can group ordered messages into a single Unit-of-Order, which guarantees that all such messages are processed serially in the order in which they were created. See Using Message Unit-of-Order in Developing JMS Applications for Oracle WebLogic Server.

  • To provide an even more restricted notion of a group than the Message Unit-of-Order feature, the Message Unit-of-Work (UOW) feature allows JMS producers to identify certain messages as components of a UOW message group, and allows a JMS consumer to process them as such. For example, a JMS producer can designate a set of messages that must be delivered to a single client without interruption, so that the messages can be processed as a unit. See Using Unit-of-Work Message Groups in Developing JMS Applications for Oracle WebLogic Server.

  • Message life cycle logging provides an administrator with better transparency about the existence of JMS messages from the JMS server viewpoint, in particular basic life cycle events, such as message production, consumption, and removal. See Message Life Cycle Logging.

  • Timer services available for scheduled message delivery, as described in Setting Message Delivery Times in Developing JMS Applications for Oracle WebLogic Server.

  • Flexible expired message policies to handle expired messages, as described in Handling Expired Messages in Tuning Performance of Oracle WebLogic Server.

  • Support messages containing XML. See Defining XML Message Selectors Using the XML Selector Method in Developing JMS Applications for Oracle WebLogic Server.

  • The WebLogic Thin T3 Client jar (wlthint3client.jar) is a light-weight, performant alternative to the wlfullclient.jar and wlclient.jar, which are (IIOP) remote client jars. The Thin T3 client has a minimal footprint while providing access to a rich set of APIs that are appropriate for client usage. See Developing a WebLogic Thin T3 Client in Developing Stand-alone Clients for Oracle WebLogic Server.

  • The JMS Store-and-Forward client enables standalone JMS clients to reliably send messages to server-side JMS destinations, even when the JMS client cannot temporarily reach a destination (for example, due to a network connection failure). While disconnected from the server, messages sent by the JMS SAF client are stored locally on the client and are forwarded to server-side JMS destinations when the client reconnects. See Reliably Sending Messages Using the JMS SAF Client in Developing Stand alone Clients for Oracle WebLogic Server.

  • Automatic pooling of JMS client resources in server-side applications via JMS resource-reference pooling. Server-side applications use standard JMS APIs, but get automatic resource pooling. See Enhanced Java EE Support for Using WebLogic JMS With EJBs and Servlets in Developing JMS Applications for Oracle WebLogic Server.

Performance

WebLogic JMS includes enterprise-class performance features, such as automatic message paging, message compression, and Document Object Model (DOM) support for XML messages:

  • WebLogic Server uses highly optimized disk access algorithms and other internal enhancements to provide a unified messaging kernel that improves both JMS-based and Web Services messaging performance. See Using the WebLogic Persistent Store in Administering Server Environments for Oracle WebLogic Server.

  • You may greatly improve the performance of typical non-persistent messaging with One-Way Message Sends. When configured on a connection factory, associated producers can send messages without internally waiting for a response from the target destination's host JMS server. You can choose to allow queue senders and topic publishers to do one-way sends, or to limit this capability to topic publishers only. You can also specify a "One-Way Window Size" to determine when a two-way message is required to regulate the producer before it can continue making additional one-way sends. See Configure connection factory flow control in the Oracle WebLogic Server Administration Console Online Help.

  • Message paging automatically begins during peak load periods to free up virtual memory. See Paging Out Messages To Free Up Memory in Tuning Performance of Oracle WebLogic Server.

  • Administrators can enable the compression of messages that exceed a specified threshold size to improve the performance of sending messages travelling across Java Virtual Machine (JVM) boundaries using either the WebLogic Server Administration Console or runtime APIs. See Compressing Messages in Tuning Performance of Oracle WebLogic Server.

  • Synchronous consumers can also use the same efficient behavior as asynchronous consumers by enabling the Prefetch Mode for Synchronous Consumers option on the consumer's JMS connection factory, using either the WebLogic Server Administration Console or runtime APIs. See Using the Prefetch Mode to Create a Synchronous Message Pipeline in Developing JMS Applications for Oracle WebLogic Server.

  • There are a wide variety of performance tuning options for JMS messages. See Tuning WebLogic JMS in Tuning Performance of Oracle WebLogic Server.

  • There is MDB transaction batching supported by processing multiple messages in a single transaction. See Using Batching with Message-Driven Beans in Developing Message-Driven Beans for Oracle WebLogic Server.

  • JMS SAF provides better performance than the WebLogic Messaging Bridge across clusters. See Tuning WebLogic JMS Store-and-Forward in Tuning Performance of Oracle WebLogic Server.

  • DOM (Document Object Model) support for sending XML messages greatly improves performance for implementations that already use a DOM, because those applications do not have to flatten the DOM before sending XML messages. See Sending XML Messages in Developing JMS Applications for Oracle WebLogic Server.

  • Message flow control during peak load periods, including blocking overactive senders, as described in Controlling the Flow of Messages on JMS Servers and Destinations and Defining Quota in Tuning Performance of Oracle WebLogic Server.

  • The automatic pooling of connections and other objects by the JMS wrappers using JMS resource-reference pooling. See Enhanced Java EE Support for Using WebLogic JMS With EJBs and Servlets in Developing JMS Applications for Oracle WebLogic Server.

  • Multicasting of messages for simultaneous delivery to many clients using IP multicast, as described in Using Multicasting with WebLogic JMS in Developing JMS Applications for Oracle WebLogic Server.

Tight Integration with WebLogic Server

WebLogic JMS includes the following features to enable tight integration with WebLogic Server:

  • JMS can be accessed locally by server-side applications without a network call because the destinations can exist on the same server as the application.

  • Uses same ports, protocols, and user identities as WebLogic Server (T3, IIOP, and HTTP tunnelling protocols, optionally with Secure Socket Layer (SSL) ).

  • Web Services, Enterprise Java Beans (including MDBs), and servlets supplied by WebLogic Server can work in close concert with JMS.

  • Can be configured and monitored by using the same WebLogic Server Administration Console, or by using the JMS API.

  • Supports WebLogic Scripting Tool (WLST) to initiate, manage, and make persistent configuration changes interactively or by using an executable script. See Using WLST to Manage JMS Servers and JMS System Module Resources.

  • Provides complete Java Management Extensions (JMX) administrative and monitoring APIs, as described in Developing Custom Management Utilities Using JMX for Oracle WebLogic Server.

  • Fully-integrated Transaction Manager, as described in Introducing Transactions in Developing JTA Applications for Oracle WebLogic Server.

  • Leverages sophisticated security model built into WebLogic Server (policy engine), as described in Understanding WebLogic Security and Resource Types You Can Secure with Policies in Securing Resources Using Roles and Policies for Oracle WebLogic Server.

Interoperability with Other Messaging Services

WebLogic JMS includes the following features for interoperability with other messaging services:

  • Fully supports direct interoperability with prior WebLogic Server releases as described in WebLogic Server Compatibility in Information Roadmap for Oracle WebLogic Server .

  • Forwards messages transactionally by the WebLogic Messaging Bridge to other JMS providers — as well as to other instances and releases of WebLogic JMS, as described in Administering the WebLogic Messaging Bridge for Oracle WebLogic Server.

  • Supports mapping of other JMS providers so their objects appear in the WebLogic JNDI tree as local JMS objects. Also references remote instances of WebLogic Server in another cluster or domain in the local Java Naming and Directory Interface (JNDI) tree. See Foreign Server Configuration.

  • Uses MDBs to transactionally receive messages from multiple JMS providers. See Programming and Configuring MDBs: Details in Developing Message-Driven Beans for Oracle WebLogic Server.

  • Provides reliable Web Services integration with JMS as a transport, as described in Using Web Services Reliable Messaging in Programming Advanced Features of JAX-RPC Web Services for Oracle WebLogic Server.

  • Provides automatic transaction enlistment of non-WebLogic JMS client resources in server-side applications using JMS resource-reference pooling. See Enhanced Java EE Support for Using WebLogic JMS With EJBs and Servlets in Developing JMS Applications for Oracle WebLogic Server.

  • Provides integration with Oracle Tuxedo messaging provided by WebLogic Tuxedo Connector. See How to Configure the Oracle Tuxedo Queuing Bridge in the Administering WebLogic Tuxedo Connector for Oracle WebLogic Server.

  • The WebLogic JMS C API enables programs written in 'C' to participate in JMS applications. This implementation of the JMS C API uses JNI in order to access a Java Virtual Machine (JVM). See WebLogic JMS C API in Developing JMS Applications for Oracle WebLogic Server.

  • Uses Oracle Streams Advanced Queuing (AQ) to provide database-integrated message queuing functionality that leverages the functions of Oracle Database to manage messages. WebLogic Server interoperates with Oracle AQ using a Foreign JMS and Java Database Connectivity (JDBC) data source configuration in a WebLogic Server domain. Both local and remote JMS clients can use Oracle AQ destinations from WebLogic JNDI. See Interoperating with Oracle AQ JMS.

New and Changed JMS Features

For a comprehensive listing of the new WebLogic Server features introduced in this release, see What's New in Oracle WebLogic Server.