An interceptor that acts as a failover valve: it allows all invocations to go through as long
as there is no failover in progress (valve is open), and holds all invocations while client-side
failover is taking place (valve is closed).
Method called by failure detection components (FailoverValveInterceptors and
ConnectionListeners) when they have reasons to believe that a server failure occured.
It will always favour the first receiver in the internal list of receivers, but will retry
the next one (and the next one...) if a previous one does not want to accept the message.
Get message counter data as string in format
"Topic/Queue, Name, Subscription, Durable, Count, CountDelta,
Depth, DepthDelta, Timestamp Last Increment"
Get message counter history data as string in format
"day count\n
Date 1, hour counter 0, hour counter 1, ..., hour counter 23\n
Date 2, hour counter 0, hour counter 1, ..., hour counter 23\n
.....
Get array of XA transactions in prepared state-
This would be used by the transaction manager in recovery or by a tool to apply
heuristic decisions to commit or rollback particular transactions
Redelivery occurs in two situations:
1) When session.recover() is called (JMS1.1 4.4.11)
"A session's recover method is used to stop a session and restart it with its first
unacknowledged message.
Merge the contents of one queue with another - this happens at failover when a queue is failed
over to another node, but a queue with the same name already exists.
Merge the contents of one queue with another - this happens at failover when a queue is failed
over to another node, but a queue with the same name already exists.
This class stores message count informations for a given queue
At intervals this class samples the queue for message count data
Note that the underlying queue *does not* update statistics every time a message
is added since that would reall slow things down, instead we *sample* the queues at
regular intervals - this means we are less intrusive on the queue
A MessageQueueNameHelper
By convention, we name durable topic message queue names in the following way:
.
This is a helper class to aid in converting between the string form and the client id
and subscription name and vice versa
This constructor is used when loading queue from storage - the paging params, maxSize and recoverDeliveriesTimeout don't matter
they are injected when the queue or topic service is started
This channel implementation automatically pages message references to and from storage to prevent
more than a maximum number of references being stored in memory at once.
Context.rebind() requires that all intermediate contexts and the target context (that named by
all but terminal atomic component of the name) must already exist, otherwise
NameNotFoundException is thrown.
Reset the internal state of the browser endpoint so the following
nextMessage()/hasNextMessage()/nextMessageBlock() invocations would reflect the state of the
queue at the moment of the reset.
Used by the FailoverCommandCenter to mark this remoting connection as "condemned", following
a failure detected by either a failed invocation, or the ConnectionListener.
Needed for failover
Note this can't lock the mainLock since receive() also locks the main lock
and this would prevent failover occuring when a consumer is blocked on receive()
During HA events, delegates corresponding to new enpoints on the new server are created and
the state of those delegates has to be transfered to the "failed" delegates.