mirror of https://github.com/apache/activemq.git
git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@646880 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
0e5dda068c
commit
dfcf776e5d
|
@ -312,5 +312,10 @@ public interface Broker extends Region, Service {
|
||||||
* @param messageReference
|
* @param messageReference
|
||||||
*/
|
*/
|
||||||
void sendToDeadLetterQueue(ConnectionContext context, MessageReference messageReference);
|
void sendToDeadLetterQueue(ConnectionContext context, MessageReference messageReference);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the broker sequence id
|
||||||
|
*/
|
||||||
|
long getBrokerSequenceId();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -260,4 +260,8 @@ public class BrokerFilter implements Broker {
|
||||||
public Broker getRoot() {
|
public Broker getRoot() {
|
||||||
return next.getRoot();
|
return next.getRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getBrokerSequenceId() {
|
||||||
|
return next.getBrokerSequenceId();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -252,4 +252,8 @@ public class EmptyBroker implements Broker {
|
||||||
public Broker getRoot() {
|
public Broker getRoot() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getBrokerSequenceId() {
|
||||||
|
return -1l;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -263,4 +263,8 @@ public class ErrorBroker implements Broker {
|
||||||
public Broker getRoot() {
|
public Broker getRoot() {
|
||||||
throw new BrokerStoppedException(this.message);
|
throw new BrokerStoppedException(this.message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getBrokerSequenceId() {
|
||||||
|
throw new BrokerStoppedException(this.message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -273,5 +273,9 @@ public class MutableBrokerFilter implements Broker {
|
||||||
public Broker getRoot() {
|
public Broker getRoot() {
|
||||||
return getNext().getRoot();
|
return getNext().getRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getBrokerSequenceId() {
|
||||||
|
return getNext().getBrokerSequenceId();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,6 +46,7 @@ public abstract class BaseDestination implements Destination {
|
||||||
private boolean lazyDispatch=false;
|
private boolean lazyDispatch=false;
|
||||||
protected final DestinationStatistics destinationStatistics = new DestinationStatistics();
|
protected final DestinationStatistics destinationStatistics = new DestinationStatistics();
|
||||||
protected final BrokerService brokerService;
|
protected final BrokerService brokerService;
|
||||||
|
protected final Broker regionBroker;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param broker
|
* @param broker
|
||||||
|
@ -66,6 +67,7 @@ public abstract class BaseDestination implements Destination {
|
||||||
this.systemUsage = brokerService.getProducerSystemUsage();
|
this.systemUsage = brokerService.getProducerSystemUsage();
|
||||||
this.memoryUsage = new MemoryUsage(systemUsage.getMemoryUsage(), destination.toString());
|
this.memoryUsage = new MemoryUsage(systemUsage.getMemoryUsage(), destination.toString());
|
||||||
this.memoryUsage.setUsagePortion(1.0f);
|
this.memoryUsage.setUsagePortion(1.0f);
|
||||||
|
this.regionBroker = brokerService.getRegionBroker();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -193,5 +195,9 @@ public abstract class BaseDestination implements Destination {
|
||||||
|
|
||||||
public void setLazyDispatch(boolean lazyDispatch) {
|
public void setLazyDispatch(boolean lazyDispatch) {
|
||||||
this.lazyDispatch = lazyDispatch;
|
this.lazyDispatch = lazyDispatch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected long getDestinationSequenceId() {
|
||||||
|
return regionBroker.getBrokerSequenceId();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -430,7 +430,7 @@ public class Queue extends BaseDestination implements Task {
|
||||||
"Connection closed, send aborted.");
|
"Connection closed, send aborted.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
message.getMessageId().setBrokerSequenceId(getDestinationSequenceId());
|
||||||
store.addMessage(context, message);
|
store.addMessage(context, message);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -418,8 +418,6 @@ public class RegionBroker implements Broker {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void send(ProducerBrokerExchange producerExchange, Message message) throws Exception {
|
public void send(ProducerBrokerExchange producerExchange, Message message) throws Exception {
|
||||||
long si = sequenceGenerator.getNextSequenceId();
|
|
||||||
message.getMessageId().setBrokerSequenceId(si);
|
|
||||||
message.setBrokerInTime(System.currentTimeMillis());
|
message.setBrokerInTime(System.currentTimeMillis());
|
||||||
if (producerExchange.isMutable() || producerExchange.getRegion() == null) {
|
if (producerExchange.isMutable() || producerExchange.getRegion() == null) {
|
||||||
ActiveMQDestination destination = message.getDestination();
|
ActiveMQDestination destination = message.getDestination();
|
||||||
|
@ -730,4 +728,13 @@ public class RegionBroker implements Broker {
|
||||||
throw new RuntimeException("The broker from the BrokerService should not throw an exception");
|
throw new RuntimeException("The broker from the BrokerService should not throw an exception");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the broker sequence id
|
||||||
|
*/
|
||||||
|
public long getBrokerSequenceId() {
|
||||||
|
synchronized(sequenceGenerator) {
|
||||||
|
return sequenceGenerator.getNextSequenceId();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -382,6 +382,7 @@ public class Topic extends BaseDestination implements Task{
|
||||||
final ConnectionContext context = producerExchange
|
final ConnectionContext context = producerExchange
|
||||||
.getConnectionContext();
|
.getConnectionContext();
|
||||||
message.setRegionDestination(this);
|
message.setRegionDestination(this);
|
||||||
|
message.getMessageId().setBrokerSequenceId(getDestinationSequenceId());
|
||||||
|
|
||||||
if (topicStore != null && message.isPersistent()
|
if (topicStore != null && message.isPersistent()
|
||||||
&& !canOptimizeOutPersistence()) {
|
&& !canOptimizeOutPersistence()) {
|
||||||
|
|
|
@ -258,4 +258,8 @@ public class StubBroker implements Broker {
|
||||||
public Broker getRoot() {
|
public Broker getRoot() {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getBrokerSequenceId() {
|
||||||
|
return -1l;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue