# Package com.sun.messaging.jms

Provides additional Oracle GlassFish(tm) Server Message Queue classes for features that relate to the MQ implementation of the Java Message Service (JMS).

Oracle GlassFish(tm) Server MQ classes in this package fall into the following basic categories:

- Custom messaging functionality that is available when standard JMS objects are cast using the interfaces in `com.sun.messaging.jms`.
- Enhanced exception classes that enable the application finer grained error handling than JMS exceptions.

### Custom Messaging Functionality

Oracle GlassFish(tm) Server Message Queue provides custom message acknowledgment functionality that allows an application to acknowledge consumed messages in a `CLIENT-ACKNOWLEDGE` session with finer grained control than that available in the Java Message Service Specification.

### Enhanced exception classes

Oracle GlassFish(tm) Server Message Queue provides exception classes that enable MQ JMS clients to perform finer grained error handling than that available with standard JMS exceptions.

- Interface Summary
  Interface | Description
  --- | ---
  Connection | This interafce provides the following API for the MQ applications:
  Message | The `com.sun.messaging.jms.Message` interface defines enhanced capabilities of a JMS Message in Oracle GlassFish(tm) Server Message Queue.
  QueueConnection | Provide interface to create a MQ NO_ACKNOWLEDGE queue session.
  Session | MQ JMS Session.
  TopicConnection | Provide interface to create a MQ NO_ACKNOWLEDGE Topic Session.

- Exception Summary
  Exception | Description
  --- | ---
  IllegalStateException | This exception is thrown when a method is invoked at an illegal or inappropriate time or if the provider is not in an appropriate state for the requested operation.
  InvalidClientIDException | This exception must be thrown when a client attempts to set a connection's client ID to a value that is rejected by a provider.
  InvalidDestinationException | This exception must be thrown when a destination either is not understood by a provider or is no longer valid.
  InvalidSelectorException | This exception must be thrown when a JMS client attempts to give a provider a message selector with invalid syntax.
  JMSException | This class encapsulates MQ JMSExceptions.
  JMSSecurityException | This exception must be thrown when a provider rejects a user name/password submitted by a client.
  MessageEOFException | This exception must be thrown when an unexpected end of stream has been reached when a `StreamMessage` or `BytesMessage` is being read.
  MessageFormatException | This exception must be thrown when a JMS client attempts to use a data type not supported by a message or attempts to read data in a message as the wrong type.
  MessageNotReadableException | This exception must be thrown when a JMS client attempts to read a write-only message.
  MessageNotWriteableException | This exception must be thrown when a JMS client attempts to write to a read-only message.
  MQIllegalStateRuntimeException | This class is the MQ-specific implementation of jakarta.jms.IllegalStateRuntimeException and adds a new constructor and the methods setLogState and getlogState
  MQInvalidClientIDRuntimeException | This class is the MQ-specific implementation of jakarta.jms.InvalidClientIDRuntimeException and adds the methods setLogState and getlogState
  MQInvalidDestinationRuntimeException | This class is the MQ-specific implementation of jakarta.jms.InvalidDestinationRuntimeException and adds the methods setLogState and getlogState
  MQInvalidSelectorRuntimeException | This class is the MQ-specific implementation of jakarta.jms.InvalidSelectorRuntimeException and adds the methods setLogState and getlogState
  MQMessageFormatRuntimeException | This class is the MQ-specific implementation of jakarta.jms.MessageFormatRuntimeException and adds the methods setLogState and getlogState
  MQMessageNotWriteableRuntimeException | This class is the MQ-specific implementation of jakarta.jms.MessageNotWriteableRuntimeException and adds a new constructor and the methods setLogState and getlogState
  MQResourceAllocationRuntimeException | This class is the MQ-specific implementation of jakarta.jms.ResourceAllocationRuntimeException and adds the methods setLogState and getlogState
  MQRuntimeException | This class is the MQ-specific implementation of jakarta.jms.JMSRuntimeException and adds the methods setLogState and getlogState
  MQSecurityRuntimeException | This class is the MQ-specific implementation of jakarta.jms.JMSSecurityRuntimeException and adds the methods setLogState and getlogState
  MQTransactionInProgressRuntimeException | This class is the MQ-specific implementation of jakarta.jms.MQTransactionInProgressRuntimeException and adds the methods setLogState and getlogState
  MQTransactionRolledBackRuntimeException | This class is the MQ-specific implementation of jakarta.jms.TransactionRolledBackRuntimeException and adds the methods setLogState and getlogState
  ResourceAllocationException | This exception is thrown when a provider is unable to allocate the resources required by a method.
  TransactionInProgressException | This exception is thrown when an operation is invalid because a transaction is in progress.
  TransactionRolledBackException | This exception must be thrown when a call to `Session.commit` results in a rollback of the current transaction.