public abstract class

JmsAccessor

extends Object
implements InitializingBean
java.lang.Object
   ↳ org.springframework.jms.support.JmsAccessor
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

Base class for JmsTemplate and other JMS-accessing gateway helpers, defining common properties such as the JMS ConnectionFactory to operate on. The subclass JmsDestinationAccessor adds further, destination-related properties.

Not intended to be used directly. See JmsTemplate.

Summary

Fields
protected final Log logger Logger available to subclasses
Public Constructors
JmsAccessor()
Public Methods
void afterPropertiesSet()
Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).
ConnectionFactory getConnectionFactory()
Return the ConnectionFactory that this accessor uses for obtaining JMS Connection Connections.
int getSessionAcknowledgeMode()
Return the acknowledgement mode for JMS Session sessions.
boolean isSessionTransacted()
Return whether the JMS Session sessions used by this accessor are supposed to be transacted.
void setConnectionFactory(ConnectionFactory connectionFactory)
Set the ConnectionFactory to use for obtaining JMS Connection Connections.
void setSessionAcknowledgeMode(int sessionAcknowledgeMode)
Set the JMS acknowledgement mode that is used when creating a JMS Session to send a message.
void setSessionAcknowledgeModeName(String constantName)
Set the JMS acknowledgement mode by the name of the corresponding constant in the JMS Session interface, e.g.
void setSessionTransacted(boolean sessionTransacted)
Set the transaction mode that is used when creating a JMS Session.
Protected Methods
JmsException convertJmsAccessException(JMSException ex)
Convert the specified checked javax.jms.JMSException JMSException to a Spring runtime JmsException equivalent.
Connection createConnection()
Create a JMS Connection via this template's ConnectionFactory.
Session createSession(Connection con)
Create a JMS Session for the given Connection.
boolean isClientAcknowledge(Session session)
Determine whether the given Session is in client acknowledge mode.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.springframework.beans.factory.InitializingBean

Fields

protected final Log logger

Logger available to subclasses

Public Constructors

public JmsAccessor ()

Public Methods

public void afterPropertiesSet ()

Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).

This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.

public ConnectionFactory getConnectionFactory ()

Return the ConnectionFactory that this accessor uses for obtaining JMS Connection Connections.

public int getSessionAcknowledgeMode ()

Return the acknowledgement mode for JMS Session sessions.

public boolean isSessionTransacted ()

Return whether the JMS Session sessions used by this accessor are supposed to be transacted.

public void setConnectionFactory (ConnectionFactory connectionFactory)

Set the ConnectionFactory to use for obtaining JMS Connection Connections.

public void setSessionAcknowledgeMode (int sessionAcknowledgeMode)

Set the JMS acknowledgement mode that is used when creating a JMS Session to send a message.

Default is Session#AUTO_ACKNOWLEDGE.

Vendor-specific extensions to the acknowledgment mode can be set here as well.

Note that that inside an EJB the parameters to create(Queue/Topic)Session(boolean transacted, int acknowledgeMode) method are not taken into account. Depending on the transaction context in the EJB, the container makes its own decisions on these values. See section 17.3.5 of the EJB spec.

Parameters
sessionAcknowledgeMode the acknowledgement mode constant
See Also
  • javax.jms.Session#AUTO_ACKNOWLEDGE
  • javax.jms.Session#CLIENT_ACKNOWLEDGE
  • javax.jms.Session#DUPS_OK_ACKNOWLEDGE
  • javax.jms.Connection#createSession(boolean, int)

public void setSessionAcknowledgeModeName (String constantName)

Set the JMS acknowledgement mode by the name of the corresponding constant in the JMS Session interface, e.g. "CLIENT_ACKNOWLEDGE".

If you want to use vendor-specific extensions to the acknowledgment mode, use setSessionAcknowledgeModeName(String) instead.

Parameters
constantName the name of the Session acknowledge mode constant
See Also
  • javax.jms.Session#AUTO_ACKNOWLEDGE
  • javax.jms.Session#CLIENT_ACKNOWLEDGE
  • javax.jms.Session#DUPS_OK_ACKNOWLEDGE
  • javax.jms.Connection#createSession(boolean, int)

public void setSessionTransacted (boolean sessionTransacted)

Set the transaction mode that is used when creating a JMS Session. Default is "false".

Note that within a JTA transaction, the parameters passed to create(Queue/Topic)Session(boolean transacted, int acknowledgeMode) method are not taken into account. Depending on the J2EE transaction context, the container makes its own decisions on these values. Analogously, these parameters are not taken into account within a locally managed transaction either, since the accessor operates on an existing JMS Session in this case.

Setting this flag to "true" will use a short local JMS transaction when running outside of a managed transaction, and a synchronized local JMS transaction in case of a managed transaction (other than an XA transaction) being present. The latter has the effect of a local JMS transaction being managed alongside the main transaction (which might be a native JDBC transaction), with the JMS transaction committing right after the main transaction.

See Also
  • javax.jms.Connection#createSession(boolean, int)

Protected Methods

protected JmsException convertJmsAccessException (JMSException ex)

Convert the specified checked javax.jms.JMSException JMSException to a Spring runtime JmsException equivalent.

The default implementation delegates to the convertJmsAccessException(JMSException) method.

Parameters
ex the original checked JMSException to convert
Returns

protected Connection createConnection ()

Create a JMS Connection via this template's ConnectionFactory.

This implementation uses JMS 1.1 API.

Returns
  • the new JMS Connection
Throws
if thrown by JMS API methods
JMSException
See Also
  • javax.jms.ConnectionFactory#createConnection()

protected Session createSession (Connection con)

Create a JMS Session for the given Connection.

This implementation uses JMS 1.1 API.

Parameters
con the JMS Connection to create a Session for
Returns
  • the new JMS Session
Throws
if thrown by JMS API methods
JMSException
See Also
  • javax.jms.Connection#createSession(boolean, int)

protected boolean isClientAcknowledge (Session session)

Determine whether the given Session is in client acknowledge mode.

This implementation uses JMS 1.1 API.

Parameters
session the JMS Session to check
Returns
  • whether the given Session is in client acknowledge mode
Throws
if thrown by JMS API methods
JMSException
See Also
  • javax.jms.Session#getAcknowledgeMode()
  • javax.jms.Session#CLIENT_ACKNOWLEDGE