下面列出了怎么用javax.jms.XAQueueSession的API类实例代码及写法,或者点击链接到github查看源代码。
public static ManagedSession create( Session session ) {
if ( (session instanceof XAQueueSession) && (session instanceof XATopicSession))
return new ManagedXAQueueTopicSession(session);
if (session instanceof XAQueueSession)
return new ManagedXAQueueSession((XAQueueSession) session);
if (session instanceof XATopicSession)
return new ManagedXATopicSession((XATopicSession) session);
if ( (session instanceof QueueSession) && (session instanceof TopicSession))
return new ManagedQueueTopicSession(session);
if (session instanceof QueueSession)
return new ManagedQueueSession((QueueSession) session);
if (session instanceof TopicSession)
return new ManagedTopicSession((TopicSession) session);
return new ManagedSession(session);
}
/**
* Create a XA queue session
*
* @return The XA queue session
* @throws JMSException Thrown if an error occurs
*/
@Override
public XAQueueSession createXAQueueSession() throws JMSException {
if (ActiveMQRALogger.LOGGER.isTraceEnabled()) {
ActiveMQRALogger.LOGGER.trace("createXAQueueSession()");
}
checkClosed();
if (type == ActiveMQRAConnectionFactory.CONNECTION || type == ActiveMQRAConnectionFactory.TOPIC_CONNECTION ||
type == ActiveMQRAConnectionFactory.XA_TOPIC_CONNECTION) {
throw new IllegalStateException("Can not get a topic session from a queue connection");
}
return allocateConnection(type);
}
@Override public XAQueueSession createXAQueueSession() throws JMSException {
if ((types & TYPE_XA_QUEUE) != TYPE_XA_QUEUE) {
throw new IllegalStateException(delegate + " is not an XAQueueConnection");
}
XAQueueSession xats = ((XAQueueConnection) delegate).createXAQueueSession();
return TracingXASession.create(xats, jmsTracing);
}
@Override public QueueSession getQueueSession() throws JMSException {
if ((types & TYPE_XA_QUEUE) != TYPE_XA_QUEUE) {
throw new IllegalStateException(delegate + " is not an XAQueueSession");
}
QueueSession xats = ((XAQueueSession) delegate).getQueueSession();
return TracingSession.create(xats, jmsTracing);
}
TracingSession(Session delegate, JmsTracing jmsTracing) {
this.delegate = delegate;
this.jmsTracing = jmsTracing;
int types = 0;
if (delegate instanceof QueueSession) types |= TYPE_QUEUE;
if (delegate instanceof TopicSession) types |= TYPE_TOPIC;
if (delegate instanceof XASession) types |= TYPE_XA;
if (delegate instanceof XAQueueSession) types |= TYPE_XA_QUEUE;
if (delegate instanceof XATopicSession) types |= TYPE_XA_TOPIC;
this.types = types;
}
@Override
public XAQueueSession createXAQueueSession() throws JMSException {
return addSession(xaConnection.createXAQueueSession());
}
@Override
public XAQueueSession createXAQueueSession() throws JMSException {
return addSession( ((XAQueueConnection) connection).createXAQueueSession());
}
public ManagedXAQueueSession( final XAQueueSession session ) {
super(session);
xaQueueSession = session;
}
@Override
public QueueSession getQueueSession() throws JMSException {
return addSession( ((XAQueueSession) session).getQueueSession());
}
@Override
public synchronized XAQueueSession createXAQueueSession() throws JMSException {
checkClosed();
return (XAQueueSession) createSessionInternal(isXA(), true, Session.SESSION_TRANSACTED, ActiveMQSession.TYPE_QUEUE_SESSION);
}