|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.jms.support.JmsAccessor
public abstract class JmsAccessor
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
.
JmsDestinationAccessor
,
JmsTemplate
Field Summary | |
---|---|
protected Log |
logger
Logger available to subclasses |
Constructor Summary | |
---|---|
JmsAccessor()
|
Method Summary | |
---|---|
void |
afterPropertiesSet()
Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware). |
protected JmsException |
convertJmsAccessException(JMSException ex)
Convert the specified checked JMSException to
a Spring runtime JmsException
equivalent. |
protected Connection |
createConnection()
Create a JMS Connection via this template's ConnectionFactory. |
protected Session |
createSession(Connection con)
Create a JMS Session for the given Connection. |
ConnectionFactory |
getConnectionFactory()
Return the ConnectionFactory that this accessor uses for obtaining JMS Connections . |
int |
getSessionAcknowledgeMode()
Return the acknowledgement mode for JMS sessions . |
protected boolean |
isClientAcknowledge(Session session)
Determine whether the given Session is in client acknowledge mode. |
boolean |
isSessionTransacted()
Return whether the JMS sessions used by this
accessor are supposed to be transacted. |
void |
setConnectionFactory(ConnectionFactory connectionFactory)
Set the ConnectionFactory to use for obtaining JMS 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 . |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final Log logger
Constructor Detail |
---|
public JmsAccessor()
Method Detail |
---|
public void setConnectionFactory(ConnectionFactory connectionFactory)
Connections
.
public ConnectionFactory getConnectionFactory()
Connections
.
public void setSessionTransacted(boolean sessionTransacted)
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.
Connection.createSession(boolean, int)
public boolean isSessionTransacted()
sessions
used by this
accessor are supposed to be transacted.
setSessionTransacted(boolean)
public void setSessionAcknowledgeModeName(String constantName)
Session
interface, e.g. "CLIENT_ACKNOWLEDGE".
If you want to use vendor-specific extensions to the acknowledgment mode,
use setSessionAcknowledgeModeName(String)
instead.
constantName
- the name of the Session
acknowledge mode constantSession.AUTO_ACKNOWLEDGE
,
Session.CLIENT_ACKNOWLEDGE
,
Session.DUPS_OK_ACKNOWLEDGE
,
Connection.createSession(boolean, int)
public void setSessionAcknowledgeMode(int sessionAcknowledgeMode)
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.
sessionAcknowledgeMode
- the acknowledgement mode constantSession.AUTO_ACKNOWLEDGE
,
Session.CLIENT_ACKNOWLEDGE
,
Session.DUPS_OK_ACKNOWLEDGE
,
Connection.createSession(boolean, int)
public int getSessionAcknowledgeMode()
sessions
.
public void afterPropertiesSet()
InitializingBean
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.
afterPropertiesSet
in interface InitializingBean
protected JmsException convertJmsAccessException(JMSException ex)
JMSException
to
a Spring runtime JmsException
equivalent.
The default implementation delegates to the
JmsUtils.convertJmsAccessException(javax.jms.JMSException)
method.
ex
- the original checked JMSException
to convert
JmsException
wrapping ex
JmsUtils.convertJmsAccessException(javax.jms.JMSException)
protected Connection createConnection() throws JMSException
This implementation uses JMS 1.1 API.
JMSException
- if thrown by JMS API methodsConnectionFactory.createConnection()
protected Session createSession(Connection con) throws JMSException
This implementation uses JMS 1.1 API.
con
- the JMS Connection to create a Session for
JMSException
- if thrown by JMS API methodsConnection.createSession(boolean, int)
protected boolean isClientAcknowledge(Session session) throws JMSException
This implementation uses JMS 1.1 API.
session
- the JMS Session to check
JMSException
- if thrown by JMS API methodsSession.getAcknowledgeMode()
,
Session.CLIENT_ACKNOWLEDGE
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |