public class RequestMultiplexer extends Object
Modifier and Type | Class and Description |
---|---|
private class |
RequestMultiplexer.Closer |
private class |
RequestMultiplexer.DemultiplexerDaemon |
private class |
RequestMultiplexer.HeartBeatTask
Timer task responsible for sending a ping message
to the server if no request has been sent during
the specified timeout ('cnxPendingTimer' from the
factory parameters).
|
(package private) class |
RequestMultiplexer.onExceptionRunner |
private static class |
RequestMultiplexer.Status |
Modifier and Type | Field and Description |
---|---|
private RequestChannel |
channel |
private Connection |
cnx |
private Map<Integer,CompletionListener> |
completionListeners |
private RequestMultiplexer.DemultiplexerDaemon |
demtpx |
private ExceptionListener |
exceptionListener |
private RequestMultiplexer.HeartBeatTask |
heartBeatTask
The task responsible for keeping
the connection alive.
|
private long |
lastRequestDate
The date of the last request
|
private static org.objectweb.util.monolog.api.Logger |
logger |
private int |
requestCounter |
private Map |
requestsTable |
(package private) CompletionListener |
runningCL |
private int |
status |
private static Timer |
timer |
private static int |
timerInUse |
Constructor and Description |
---|
RequestMultiplexer(Connection cnx,
RequestChannel channel,
long heartBeat) |
Modifier and Type | Method and Description |
---|---|
private void |
abortReply(AbstractJmsReply reply) |
void |
abortRequest(int requestId)
Not synchronized because it would possibly
deadlock with some reply listeners
(actually requestors).
|
static JMSException |
buildJmsException(MomExceptionReply excReply)
Converts a
MomExceptionReply to the corresponding
JMSException . |
private static void |
cancelTimer() |
boolean |
checkCLMessageProducer(Session session,
MessageProducer mp) |
boolean |
checkCLSession(Session session) |
boolean |
checkDemultiplexerDaemon() |
void |
cleanup()
Aborts all running requests.
|
void |
close()
Not synchronized because it would possibly
deadlock with some reply listeners
(actually requestors).
|
void |
closing() |
private static void |
createTimer() |
void |
deny(ConsumerMessages messages) |
void |
denyRequest(ConsumerReceiveRequest request) |
private ReplyListener |
doAbortRequest(int requestId) |
String |
getDemultiplexerDaemonName() |
ExceptionListener |
getExceptionListener() |
private static Timer |
getTimer() |
boolean |
isClosed() |
private void |
onException(Exception exc) |
void |
replyAllError(MomExceptionReply exc) |
private void |
route(AbstractJmsReply reply,
boolean isCompletionListener)
Not synchronized because it may be called by the
demultiplexer during a concurrent close.
|
void |
schedule(TimerTask task,
long period) |
void |
sendRequest(AbstractJmsRequest request) |
void |
sendRequest(AbstractJmsRequest request,
CompletionListener completionListener) |
void |
sendRequest(AbstractJmsRequest request,
ReplyListener listener,
CompletionListener completionListener) |
void |
setDemultiplexerDaemonName(String name) |
void |
setExceptionListener(ExceptionListener exceptionListener) |
void |
setMultiThreadSync(int delay,
int threshold) |
private void |
setStatus(int status) |
private static org.objectweb.util.monolog.api.Logger logger
private Connection cnx
private volatile int status
private RequestChannel channel
private Map requestsTable
private Map<Integer,CompletionListener> completionListeners
private int requestCounter
private RequestMultiplexer.DemultiplexerDaemon demtpx
private static Timer timer
private static int timerInUse
private RequestMultiplexer.HeartBeatTask heartBeatTask
private ExceptionListener exceptionListener
private volatile long lastRequestDate
CompletionListener runningCL
public RequestMultiplexer(Connection cnx, RequestChannel channel, long heartBeat) throws JMSException
JMSException
public static JMSException buildJmsException(MomExceptionReply excReply)
MomExceptionReply
to the corresponding
JMSException
.excReply
- the MOM reply to convertpublic boolean checkDemultiplexerDaemon()
public boolean checkCLSession(Session session)
public boolean checkCLMessageProducer(Session session, MessageProducer mp)
private static void createTimer()
private static void cancelTimer()
private static Timer getTimer()
private void setStatus(int status)
public boolean isClosed()
public void closing()
public void setExceptionListener(ExceptionListener exceptionListener)
public ExceptionListener getExceptionListener()
public void sendRequest(AbstractJmsRequest request) throws JMSException
JMSException
public void sendRequest(AbstractJmsRequest request, CompletionListener completionListener) throws JMSException
JMSException
public void sendRequest(AbstractJmsRequest request, ReplyListener listener, CompletionListener completionListener) throws JMSException
JMSException
public void setMultiThreadSync(int delay, int threshold)
public void close()
public void cleanup()
public void replyAllError(MomExceptionReply exc)
public void abortRequest(int requestId)
private ReplyListener doAbortRequest(int requestId)
private void route(AbstractJmsReply reply, boolean isCompletionListener)
private void abortReply(AbstractJmsReply reply)
public void deny(ConsumerMessages messages)
public void denyRequest(ConsumerReceiveRequest request)
private void onException(Exception exc)
public void schedule(TimerTask task, long period)
public void setDemultiplexerDaemonName(String name)
public String getDemultiplexerDaemonName()
Copyright © 2020 ScalAgent D.T.. All rights reserved.