connectors = toList(connectorNames);
config = new BridgeConfiguration(name,
- queueName,
- forwardingAddress,
- filterString,
- transformerClassName,
- HornetQClient.DEFAULT_MIN_LARGE_MESSAGE_SIZE,
- clientFailureCheckPeriod,
- HornetQClient.DEFAULT_CONNECTION_TTL,
- retryInterval,
- HornetQClient.DEFAULT_MAX_RETRY_INTERVAL,
- retryIntervalMultiplier,
- reconnectAttempts,
- useDuplicateDetection,
- confirmationWindowSize,
- connectors,
- ha,
- user,
- password);
+ queueName,
+ forwardingAddress,
+ filterString,
+ transformerClassName,
+ HornetQClient.DEFAULT_MIN_LARGE_MESSAGE_SIZE,
+ clientFailureCheckPeriod,
+ HornetQClient.DEFAULT_CONNECTION_TTL,
+ retryInterval,
+ HornetQClient.DEFAULT_MAX_RETRY_INTERVAL,
+ retryIntervalMultiplier,
+ reconnectAttempts,
+ useDuplicateDetection,
+ confirmationWindowSize,
+ connectors,
+ ha,
+ user,
+ password);
}
server.deployBridge(config);
}
@@ -1823,9 +1828,9 @@ public MBeanNotificationInfo[] getNotificationInfo()
{
names[i] = values[i].toString();
}
- return new MBeanNotificationInfo[] { new MBeanNotificationInfo(names,
- this.getClass().getName(),
- "Notifications emitted by a Core Server") };
+ return new MBeanNotificationInfo[]{new MBeanNotificationInfo(names,
+ this.getClass().getName(),
+ "Notifications emitted by a Core Server")};
}
// Package protected ---------------------------------------------
diff --git a/hornetq-core/src/main/java/org/hornetq/core/paging/PagingStore.java b/hornetq-core/src/main/java/org/hornetq/core/paging/PagingStore.java
index c5873f9f332..49aa819ca10 100644
--- a/hornetq-core/src/main/java/org/hornetq/core/paging/PagingStore.java
+++ b/hornetq-core/src/main/java/org/hornetq/core/paging/PagingStore.java
@@ -121,7 +121,7 @@ public interface PagingStore extends HornetQComponent
void addSize(int size);
- void executeRunnableWhenMemoryAvailable(Runnable runnable);
+ boolean checkMemory(Runnable runnable);
/**
* Write lock the PagingStore.
diff --git a/hornetq-core/src/main/java/org/hornetq/core/paging/impl/PagingStoreImpl.java b/hornetq-core/src/main/java/org/hornetq/core/paging/impl/PagingStoreImpl.java
index f13c4f477ee..2e54aed553d 100644
--- a/hornetq-core/src/main/java/org/hornetq/core/paging/impl/PagingStoreImpl.java
+++ b/hornetq-core/src/main/java/org/hornetq/core/paging/impl/PagingStoreImpl.java
@@ -13,24 +13,6 @@
package org.hornetq.core.paging.impl;
-import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Queue;
-import java.util.Set;
-import java.util.concurrent.ConcurrentLinkedQueue;
-import java.util.concurrent.Executor;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicLong;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock;
-
import org.hornetq.api.core.SimpleString;
import org.hornetq.core.journal.SequentialFile;
import org.hornetq.core.journal.SequentialFileFactory;
@@ -58,13 +40,28 @@
import org.hornetq.core.transaction.TransactionPropertyIndexes;
import org.hornetq.utils.FutureLatch;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Queue;
+import java.util.Set;
+import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.Executor;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicLong;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock;
+
/**
- *
- * @see PagingStore
- *
* @author Clebert Suconic
* @author Tim Fox
- *
+ * @see PagingStore
*/
public class PagingStoreImpl implements PagingStore
{
@@ -158,11 +155,11 @@ public PagingStoreImpl(final SimpleString address,
if (addressFullMessagePolicy == AddressFullMessagePolicy.PAGE && maxSize != -1 && pageSize >= maxSize)
{
throw new IllegalStateException("pageSize for address " + address +
- " >= maxSize. Normally pageSize should" +
- " be significantly smaller than maxSize, ms: " +
- maxSize +
- " ps " +
- pageSize);
+ " >= maxSize. Normally pageSize should" +
+ " be significantly smaller than maxSize, ms: " +
+ maxSize +
+ " ps " +
+ pageSize);
}
this.executor = executor;
@@ -215,10 +212,10 @@ public String toString()
public boolean lock(long timeout)
{
if (timeout == -1)
- {
- lock.writeLock().lock();
+ {
+ lock.writeLock().lock();
return true;
- }
+ }
try
{
return lock.writeLock().tryLock(timeout, TimeUnit.MILLISECONDS);
@@ -295,6 +292,10 @@ public boolean isPaging()
{
return false;
}
+ if (addressFullMessagePolicy == AddressFullMessagePolicy.FAIL)
+ {
+ return isFull();
+ }
if (addressFullMessagePolicy == AddressFullMessagePolicy.DROP)
{
return isFull();
@@ -464,7 +465,7 @@ public void start() throws Exception
if (msg.getMessage().isLargeMessage())
{
// We have to do this since addLIveMessage will increment an extra one
- ((LargeServerMessage)msg.getMessage()).decrementDelayDeletionCount();
+ ((LargeServerMessage) msg.getMessage()).decrementDelayDeletionCount();
}
}
@@ -529,29 +530,29 @@ public boolean startPaging()
{
synchronized (pagingGuard)
{
- if (paging)
- {
- return false;
- }
-
- if (currentPage == null)
- {
- try
+ if (paging)
{
- openNewPage();
+ return false;
}
- catch (Exception e)
+
+ if (currentPage == null)
{
- // If not possible to starting page due to an IO error, we will just consider it non paging.
- // This shouldn't happen anyway
- HornetQLogger.LOGGER.pageStoreStartIOError(e);
- return false;
+ try
+ {
+ openNewPage();
+ }
+ catch (Exception e)
+ {
+ // If not possible to starting page due to an IO error, we will just consider it non paging.
+ // This shouldn't happen anyway
+ HornetQLogger.LOGGER.pageStoreStartIOError(e);
+ return false;
+ }
}
- }
- paging = true;
+ paging = true;
- return true;
+ return true;
}
}
finally
@@ -600,15 +601,17 @@ public void forceAnotherPage() throws Exception
openNewPage();
}
- /**
+ /**
* Returns a Page out of the Page System without reading it.
*
* The method calling this method will remove the page and will start reading it outside of any
* locks. This method could also replace the current file by a new file, and that process is done
* through acquiring a writeLock on currentPageLock.
+ *
*
* Observation: This method is used internally as part of the regular depage process, but
* externally is used only on tests, and that's why this method is part of the Testable Interface
+ *
*/
public Page depage() throws Exception
{
@@ -719,13 +722,13 @@ public synchronized void run()
}
}
- public void executeRunnableWhenMemoryAvailable(final Runnable runnable)
+ public boolean checkMemory(final Runnable runWhenAvailable)
{
if (addressFullMessagePolicy == AddressFullMessagePolicy.BLOCK && maxSize != -1)
{
if (sizeInBytes.get() > maxSize)
{
- OurRunnable ourRunnable = new OurRunnable(runnable);
+ OurRunnable ourRunnable = new OurRunnable(runWhenAvailable);
onMemoryFreedRunnables.add(ourRunnable);
@@ -739,11 +742,20 @@ public void executeRunnableWhenMemoryAvailable(final Runnable runnable)
ourRunnable.run();
}
- return;
+ return true;
}
}
+ else if (addressFullMessagePolicy == AddressFullMessagePolicy.FAIL && maxSize != -1)
+ {
+ if (sizeInBytes.get() > maxSize)
+ {
+ return false;
+ }
+ }
+
+ runWhenAvailable.run();
- runnable.run();
+ return true;
}
public void addSize(final int size)
@@ -785,7 +797,7 @@ else if (addressFullMessagePolicy == AddressFullMessagePolicy.PAGE)
return;
}
- else if (addressFullMessagePolicy == AddressFullMessagePolicy.DROP)
+ else if (addressFullMessagePolicy == AddressFullMessagePolicy.DROP || addressFullMessagePolicy == AddressFullMessagePolicy.FAIL)
{
sizeInBytes.addAndGet(size);
}
@@ -802,10 +814,9 @@ public boolean page(final ServerMessage message, final RoutingContext ctx, ReadL
}
@Override
- public
- boolean
- page(ServerMessage message, final Transaction tx, RouteContextList listCtx, final ReadLock managerLock)
- throws Exception
+ public boolean
+ page(ServerMessage message, final Transaction tx, RouteContextList listCtx, final ReadLock managerLock)
+ throws Exception
{
if (!running)
@@ -815,7 +826,7 @@ public boolean page(final ServerMessage message, final RoutingContext ctx, ReadL
boolean full = isFull();
- if (addressFullMessagePolicy == AddressFullMessagePolicy.DROP)
+ if (addressFullMessagePolicy == AddressFullMessagePolicy.DROP || addressFullMessagePolicy == AddressFullMessagePolicy.FAIL)
{
if (full)
{
@@ -874,7 +885,7 @@ else if (addressFullMessagePolicy == AddressFullMessagePolicy.BLOCK)
if (message.isLargeMessage())
{
- ((LargeServerMessage)message).setPaged();
+ ((LargeServerMessage) message).setPaged();
}
int bytesToWrite = pagedMessage.getEncodeSize() + Page.SIZE_RECORD;
@@ -891,7 +902,7 @@ else if (addressFullMessagePolicy == AddressFullMessagePolicy.BLOCK)
if (isTrace)
{
HornetQLogger.LOGGER.trace("Paging message " + pagedMessage + " on pageStore " + this.getStoreName() +
- " pageId=" + currentPage.getPageId());
+ " pageId=" + currentPage.getPageId());
}
if (tx != null)
@@ -940,7 +951,7 @@ private long[] routeQueues(Transaction tx, RouteContextList ctx) throws Exceptio
private void installPageTransaction(final Transaction tx, final RouteContextList listCtx) throws Exception
{
- FinishPageMessageOperation pgOper = (FinishPageMessageOperation)tx.getProperty(TransactionPropertyIndexes.PAGE_TRANSACTION);
+ FinishPageMessageOperation pgOper = (FinishPageMessageOperation) tx.getProperty(TransactionPropertyIndexes.PAGE_TRANSACTION);
if (pgOper == null)
{
PageTransactionInfo pgTX = new PageTransactionInfoImpl(tx.getID());
diff --git a/hornetq-core/src/main/java/org/hornetq/core/protocol/core/impl/CoreSessionCallback.java b/hornetq-core/src/main/java/org/hornetq/core/protocol/core/impl/CoreSessionCallback.java
index 0b131ab8e35..7ec674f8925 100644
--- a/hornetq-core/src/main/java/org/hornetq/core/protocol/core/impl/CoreSessionCallback.java
+++ b/hornetq-core/src/main/java/org/hornetq/core/protocol/core/impl/CoreSessionCallback.java
@@ -15,6 +15,7 @@
import org.hornetq.api.core.SimpleString;
import org.hornetq.core.protocol.core.Channel;
import org.hornetq.core.protocol.core.Packet;
+import org.hornetq.core.protocol.core.impl.wireformat.SessionProducerCreditsFailMessage;
import org.hornetq.core.protocol.core.impl.wireformat.SessionProducerCreditsMessage;
import org.hornetq.core.protocol.core.impl.wireformat.SessionReceiveContinuationMessage;
import org.hornetq.core.protocol.core.impl.wireformat.SessionReceiveLargeMessage;
@@ -84,6 +85,14 @@ public void sendProducerCreditsMessage(int credits, SimpleString address)
channel.send(packet);
}
+ @Override
+ public void sendProducerCreditsFailMessage(int credits, SimpleString address)
+ {
+ Packet packet = new SessionProducerCreditsFailMessage(credits, address);
+
+ channel.send(packet);
+ }
+
public void closed()
{
protocolManager.removeHandler(name);
diff --git a/hornetq-core/src/main/java/org/hornetq/core/protocol/core/impl/PacketDecoder.java b/hornetq-core/src/main/java/org/hornetq/core/protocol/core/impl/PacketDecoder.java
index 36539b8ce9f..c790f945082 100644
--- a/hornetq-core/src/main/java/org/hornetq/core/protocol/core/impl/PacketDecoder.java
+++ b/hornetq-core/src/main/java/org/hornetq/core/protocol/core/impl/PacketDecoder.java
@@ -54,6 +54,7 @@
import static org.hornetq.core.protocol.core.impl.PacketImpl.SESS_FORCE_CONSUMER_DELIVERY;
import static org.hornetq.core.protocol.core.impl.PacketImpl.SESS_INDIVIDUAL_ACKNOWLEDGE;
import static org.hornetq.core.protocol.core.impl.PacketImpl.SESS_PRODUCER_CREDITS;
+import static org.hornetq.core.protocol.core.impl.PacketImpl.SESS_PRODUCER_FAIL_CREDITS;
import static org.hornetq.core.protocol.core.impl.PacketImpl.SESS_PRODUCER_REQUEST_CREDITS;
import static org.hornetq.core.protocol.core.impl.PacketImpl.SESS_QUEUEQUERY;
import static org.hornetq.core.protocol.core.impl.PacketImpl.SESS_QUEUEQUERY_RESP;
@@ -88,8 +89,8 @@
import org.hornetq.api.core.HornetQBuffer;
import org.hornetq.core.protocol.core.Packet;
-import org.hornetq.core.protocol.core.impl.wireformat.BackupReplicationStartFailedMessage;
import org.hornetq.core.protocol.core.impl.wireformat.BackupRegistrationMessage;
+import org.hornetq.core.protocol.core.impl.wireformat.BackupReplicationStartFailedMessage;
import org.hornetq.core.protocol.core.impl.wireformat.ClusterTopologyChangeMessage;
import org.hornetq.core.protocol.core.impl.wireformat.ClusterTopologyChangeMessage_V2;
import org.hornetq.core.protocol.core.impl.wireformat.CreateQueueMessage;
@@ -134,6 +135,7 @@
import org.hornetq.core.protocol.core.impl.wireformat.SessionExpireMessage;
import org.hornetq.core.protocol.core.impl.wireformat.SessionForceConsumerDelivery;
import org.hornetq.core.protocol.core.impl.wireformat.SessionIndividualAcknowledgeMessage;
+import org.hornetq.core.protocol.core.impl.wireformat.SessionProducerCreditsFailMessage;
import org.hornetq.core.protocol.core.impl.wireformat.SessionProducerCreditsMessage;
import org.hornetq.core.protocol.core.impl.wireformat.SessionQueueQueryMessage;
import org.hornetq.core.protocol.core.impl.wireformat.SessionQueueQueryResponseMessage;
@@ -435,6 +437,11 @@ public static Packet decode(final HornetQBuffer in)
packet = new SessionProducerCreditsMessage();
break;
}
+ case SESS_PRODUCER_FAIL_CREDITS:
+ {
+ packet = new SessionProducerCreditsFailMessage();
+ break;
+ }
case REPLICATION_APPEND:
{
packet = new ReplicationAddMessage();
diff --git a/hornetq-core/src/main/java/org/hornetq/core/protocol/core/impl/PacketImpl.java b/hornetq-core/src/main/java/org/hornetq/core/protocol/core/impl/PacketImpl.java
index 63b5dfd8f06..72929358d11 100644
--- a/hornetq-core/src/main/java/org/hornetq/core/protocol/core/impl/PacketImpl.java
+++ b/hornetq-core/src/main/java/org/hornetq/core/protocol/core/impl/PacketImpl.java
@@ -148,6 +148,8 @@ public class PacketImpl implements Packet
public static final byte SESS_INDIVIDUAL_ACKNOWLEDGE = 81;
+ public static final byte SESS_PRODUCER_FAIL_CREDITS = 82;
+
// Replication
public static final byte REPLICATION_RESPONSE = 90;
diff --git a/hornetq-core/src/main/java/org/hornetq/core/protocol/core/impl/wireformat/SessionProducerCreditsFailMessage.java b/hornetq-core/src/main/java/org/hornetq/core/protocol/core/impl/wireformat/SessionProducerCreditsFailMessage.java
new file mode 100644
index 00000000000..a63f374d0ba
--- /dev/null
+++ b/hornetq-core/src/main/java/org/hornetq/core/protocol/core/impl/wireformat/SessionProducerCreditsFailMessage.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.core.protocol.core.impl.wireformat;
+
+import org.hornetq.api.core.HornetQBuffer;
+import org.hornetq.api.core.SimpleString;
+import org.hornetq.core.protocol.core.impl.PacketImpl;
+
+/**
+ * @author Justin Bertram
+ *
+ */
+public class SessionProducerCreditsFailMessage extends PacketImpl
+{
+ private int credits;
+
+ private SimpleString address;
+
+ public SessionProducerCreditsFailMessage(final int credits, final SimpleString address)
+ {
+ super(PacketImpl.SESS_PRODUCER_FAIL_CREDITS);
+
+ this.credits = credits;
+
+ this.address = address;
+ }
+
+ public SessionProducerCreditsFailMessage()
+ {
+ super(PacketImpl.SESS_PRODUCER_FAIL_CREDITS);
+ }
+
+ public int getCredits()
+ {
+ return credits;
+ }
+
+ public SimpleString getAddress()
+ {
+ return address;
+ }
+
+ @Override
+ public void encodeRest(final HornetQBuffer buffer)
+ {
+ buffer.writeInt(credits);
+ buffer.writeSimpleString(address);
+ }
+
+ @Override
+ public void decodeRest(final HornetQBuffer buffer)
+ {
+ credits = buffer.readInt();
+ address = buffer.readSimpleString();
+ }
+
+ @Override
+ public int hashCode()
+ {
+ final int prime = 31;
+ int result = super.hashCode();
+ result = prime * result + ((address == null) ? 0 : address.hashCode());
+ result = prime * result + credits;
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ return true;
+ if (!super.equals(obj))
+ return false;
+ if (!(obj instanceof SessionProducerCreditsFailMessage))
+ return false;
+ SessionProducerCreditsFailMessage other = (SessionProducerCreditsFailMessage)obj;
+ if (address == null)
+ {
+ if (other.address != null)
+ return false;
+ }
+ else if (!address.equals(other.address))
+ return false;
+ if (credits != other.credits)
+ return false;
+ return true;
+ }
+}
diff --git a/hornetq-core/src/main/java/org/hornetq/core/protocol/stomp/StompSession.java b/hornetq-core/src/main/java/org/hornetq/core/protocol/stomp/StompSession.java
index fd18f4397ce..e31dbb61720 100644
--- a/hornetq-core/src/main/java/org/hornetq/core/protocol/stomp/StompSession.java
+++ b/hornetq-core/src/main/java/org/hornetq/core/protocol/stomp/StompSession.java
@@ -79,6 +79,10 @@ public void sendProducerCreditsMessage(int credits, SimpleString address)
{
}
+ public void sendProducerCreditsFailMessage(int credits, SimpleString address)
+ {
+ }
+
public int sendMessage(ServerMessage serverMessage, long consumerID, int deliveryCount)
{
try
diff --git a/hornetq-core/src/main/java/org/hornetq/core/server/HornetQMessageBundle.java b/hornetq-core/src/main/java/org/hornetq/core/server/HornetQMessageBundle.java
index 61bc39e414e..08d68028943 100644
--- a/hornetq-core/src/main/java/org/hornetq/core/server/HornetQMessageBundle.java
+++ b/hornetq-core/src/main/java/org/hornetq/core/server/HornetQMessageBundle.java
@@ -21,11 +21,12 @@
*/
package org.hornetq.core.server;
+import org.hornetq.api.core.HornetQAddressFullException;
import org.hornetq.api.core.HornetQConnectionTimedOutException;
import org.hornetq.api.core.HornetQDisconnectedException;
import org.hornetq.api.core.HornetQDuplicateMetaDataException;
-import org.hornetq.api.core.HornetQIllegalStateException;
import org.hornetq.api.core.HornetQIOErrorException;
+import org.hornetq.api.core.HornetQIllegalStateException;
import org.hornetq.api.core.HornetQIncompatibleClientServerException;
import org.hornetq.api.core.HornetQInternalErrorException;
import org.hornetq.api.core.HornetQInvalidFilterExpressionException;
@@ -36,10 +37,10 @@
import org.hornetq.api.core.HornetQQueueExistsException;
import org.hornetq.api.core.HornetQSecurityException;
import org.hornetq.api.core.HornetQSessionCreationException;
-import org.hornetq.api.core.SimpleString;
import org.hornetq.api.core.HornetQTransactionOutcomeUnknownException;
import org.hornetq.api.core.HornetQTransactionRolledBackException;
import org.hornetq.api.core.HornetQUnBlockedException;
+import org.hornetq.api.core.SimpleString;
import org.hornetq.core.cluster.DiscoveryGroup;
import org.hornetq.core.postoffice.Binding;
import org.hornetq.core.protocol.core.impl.wireformat.ReplicationSyncFileMessage;
@@ -488,4 +489,8 @@ public interface HornetQMessageBundle
@Message(id = 119138, value = "method autoEncode doesn't know how to convert {0} yet", format = Message.Format.MESSAGE_FORMAT)
IllegalArgumentException autoConvertError(Class extends Object> aClass);
+
+ @Message(id = 119139, value = "Address \"{0}\" is full. Message encode size = {1}B", format = Message.Format.MESSAGE_FORMAT)
+ HornetQAddressFullException addressIsFull(String addressName, int size);
+
}
diff --git a/hornetq-core/src/main/java/org/hornetq/core/server/impl/ServerSessionImpl.java b/hornetq-core/src/main/java/org/hornetq/core/server/impl/ServerSessionImpl.java
index 65d38e942c8..97b75a708f2 100644
--- a/hornetq-core/src/main/java/org/hornetq/core/server/impl/ServerSessionImpl.java
+++ b/hornetq-core/src/main/java/org/hornetq/core/server/impl/ServerSessionImpl.java
@@ -1332,13 +1332,15 @@ public void requestProducerCredits(final SimpleString address, final int credits
{
PagingStore store = postOffice.getPagingManager().getPageStore(address);
- store.executeRunnableWhenMemoryAvailable(new Runnable()
+ if (!store.checkMemory(new Runnable()
{
public void run()
{
callback.sendProducerCreditsMessage(credits, address);
}
- });
+ })) {
+ callback.sendProducerCreditsFailMessage(credits, address);
+ }
}
public void setTransferring(final boolean transferring)
diff --git a/hornetq-core/src/main/java/org/hornetq/core/settings/impl/AddressFullMessagePolicy.java b/hornetq-core/src/main/java/org/hornetq/core/settings/impl/AddressFullMessagePolicy.java
index 402d6815624..ef4b6827526 100644
--- a/hornetq-core/src/main/java/org/hornetq/core/settings/impl/AddressFullMessagePolicy.java
+++ b/hornetq-core/src/main/java/org/hornetq/core/settings/impl/AddressFullMessagePolicy.java
@@ -22,5 +22,5 @@
*/
public enum AddressFullMessagePolicy
{
- DROP, PAGE, BLOCK;
+ DROP, PAGE, BLOCK, FAIL;
}
diff --git a/hornetq-core/src/main/java/org/hornetq/spi/core/protocol/SessionCallback.java b/hornetq-core/src/main/java/org/hornetq/spi/core/protocol/SessionCallback.java
index d240d24d09a..d517f735b48 100644
--- a/hornetq-core/src/main/java/org/hornetq/spi/core/protocol/SessionCallback.java
+++ b/hornetq-core/src/main/java/org/hornetq/spi/core/protocol/SessionCallback.java
@@ -28,6 +28,8 @@ public interface SessionCallback
{
void sendProducerCreditsMessage(int credits, SimpleString address);
+ void sendProducerCreditsFailMessage(int credits, SimpleString address);
+
int sendMessage(ServerMessage message, long consumerID, int deliveryCount);
int sendLargeMessage(ServerMessage message, long consumerID, long bodySize, int deliveryCount);
diff --git a/hornetq-core/src/main/resources/schema/hornetq-configuration.xsd b/hornetq-core/src/main/resources/schema/hornetq-configuration.xsd
index 7d4a4d940ff..f7b2b55454a 100644
--- a/hornetq-core/src/main/resources/schema/hornetq-configuration.xsd
+++ b/hornetq-core/src/main/resources/schema/hornetq-configuration.xsd
@@ -1,447 +1,448 @@
-
-
-
-
-
-
-
-
- Whether or not we should check the cluster for a live server when starting up (replicated servers only)
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ Whether or not we should check the cluster for a live server when starting up (replicated servers only)
+
+
+
+
+
+
-
- Maximum number of threads to use for the scheduled thread pool
-
+
+ Maximum number of threads to use for the scheduled thread pool
+
-
-
+
+
-
- Maximum number of threads to use for the thread pool
-
+
+ Maximum number of threads to use for the thread pool
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Whether a server will automatically stop when a another places a request to take over its place.
The use case is when a regular server stops and its backup takes over its duties, later the main
- server restarts and requests the server (the former backup) to stop operating.
+ server restarts and requests the server (the former backup) to stop operating.
-
-
-
-
+
+
+
+
'shared-store' applies to live and backup pairs, and it indicates if the live/backup pair share storage or if the data is replicated among them.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/client/PagingTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/client/PagingTest.java
index 960e98578d6..636883973ee 100644
--- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/client/PagingTest.java
+++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/client/PagingTest.java
@@ -35,6 +35,7 @@
import org.hornetq.api.core.HornetQBuffer;
import org.hornetq.api.core.HornetQException;
+import org.hornetq.api.core.HornetQExceptionType;
import org.hornetq.api.core.Message;
import org.hornetq.api.core.SimpleString;
import org.hornetq.api.core.client.ClientConsumer;
@@ -71,10 +72,8 @@
* A PagingTest
*
* @author Clebert Suconic
- *
- * Created Dec 5, 2008 8:25:58 PM
- *
- *
+ *
+ * Created Dec 5, 2008 8:25:58 PM
*/
public class PagingTest extends ServiceTestBase
{
@@ -111,133 +110,133 @@ protected void setUp() throws Exception
locator = createInVMNonHALocator();
}
- public void testPageCleanup() throws Exception
- {
- clearData();
+ public void testPageCleanup() throws Exception
+ {
+ clearData();
- Configuration config = createDefaultConfig();
+ Configuration config = createDefaultConfig();
- config.setJournalSyncNonTransactional(false);
+ config.setJournalSyncNonTransactional(false);
- server =
- createServer(true, config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ server =
+ createServer(true, config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
- server.start();
+ server.start();
- final int numberOfMessages = 5000;
+ final int numberOfMessages = 5000;
- locator = createInVMNonHALocator();
+ locator = createInVMNonHALocator();
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(false, false, false);
+ ClientSession session = sf.createSession(false, false, false);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- ClientMessage message = null;
+ ClientMessage message = null;
- byte[] body = new byte[MESSAGE_SIZE];
+ byte[] body = new byte[MESSAGE_SIZE];
- ByteBuffer bb = ByteBuffer.wrap(body);
+ ByteBuffer bb = ByteBuffer.wrap(body);
- for (int j = 1; j <= MESSAGE_SIZE; j++)
- {
- bb.put(getSamplebyte(j));
- }
+ for (int j = 1; j <= MESSAGE_SIZE; j++)
+ {
+ bb.put(getSamplebyte(j));
+ }
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = session.createMessage(true);
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = session.createMessage(true);
- HornetQBuffer bodyLocal = message.getBodyBuffer();
+ HornetQBuffer bodyLocal = message.getBodyBuffer();
- bodyLocal.writeBytes(body);
+ bodyLocal.writeBytes(body);
- producer.send(message);
- if (i % 1000 == 0)
- {
- session.commit();
- }
- }
- session.commit();
- producer.close();
- session.close();
-
- session = sf.createSession(false, false, false);
- producer = session.createProducer(PagingTest.ADDRESS);
- producer.send(session.createMessage(true));
- session.rollback();
- producer.close();
- session.close();
-
- session = sf.createSession(false, false, false);
- producer = session.createProducer(PagingTest.ADDRESS);
-
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = session.createMessage(true);
+ producer.send(message);
+ if (i % 1000 == 0)
+ {
+ session.commit();
+ }
+ }
+ session.commit();
+ producer.close();
+ session.close();
- HornetQBuffer bodyLocal = message.getBodyBuffer();
+ session = sf.createSession(false, false, false);
+ producer = session.createProducer(PagingTest.ADDRESS);
+ producer.send(session.createMessage(true));
+ session.rollback();
+ producer.close();
+ session.close();
- bodyLocal.writeBytes(body);
+ session = sf.createSession(false, false, false);
+ producer = session.createProducer(PagingTest.ADDRESS);
- producer.send(message);
- if (i % 1000 == 0)
- {
- session.commit();
- }
- }
- session.commit();
- producer.close();
- session.close();
- //System.out.println("Just sent " + numberOfMessages + " messages.");
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = session.createMessage(true);
+
+ HornetQBuffer bodyLocal = message.getBodyBuffer();
+
+ bodyLocal.writeBytes(body);
+
+ producer.send(message);
+ if (i % 1000 == 0)
+ {
+ session.commit();
+ }
+ }
+ session.commit();
+ producer.close();
+ session.close();
+ //System.out.println("Just sent " + numberOfMessages + " messages.");
- Queue queue = server.locateQueue(PagingTest.ADDRESS);
+ Queue queue = server.locateQueue(PagingTest.ADDRESS);
- session = sf.createSession(false, false, false);
+ session = sf.createSession(false, false, false);
- session.start();
+ session.start();
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
- ClientMessage msg = null;
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
+ ClientMessage msg = null;
- assertEquals(numberOfMessages * 2, queue.getMessageCount());
- for (int i = 0; i < numberOfMessages * 2; i++)
- {
- msg = consumer.receive(1000);
- assertNotNull(msg);
- msg.acknowledge();
- if (i % 500 == 0)
- {
- session.commit();
- }
- }
- session.commit();
- consumer.close();
- session.close();
+ assertEquals(numberOfMessages * 2, queue.getMessageCount());
+ for (int i = 0; i < numberOfMessages * 2; i++)
+ {
+ msg = consumer.receive(1000);
+ assertNotNull(msg);
+ msg.acknowledge();
+ if (i % 500 == 0)
+ {
+ session.commit();
+ }
+ }
+ session.commit();
+ consumer.close();
+ session.close();
- sf.close();
+ sf.close();
- locator.close();
+ locator.close();
- assertEquals(0, queue.getMessageCount());
+ assertEquals(0, queue.getMessageCount());
- long timeout = System.currentTimeMillis() + 10000;
- while (timeout > System.currentTimeMillis() && queue.getPageSubscription().getPagingStore().isPaging())
- {
- Thread.sleep(100);
- }
- assertFalse(queue.getPageSubscription().getPagingStore().isPaging());
- }
+ long timeout = System.currentTimeMillis() + 10000;
+ while (timeout > System.currentTimeMillis() && queue.getPageSubscription().getPagingStore().isPaging())
+ {
+ Thread.sleep(100);
+ }
+ assertFalse(queue.getPageSubscription().getPagingStore().isPaging());
+ }
public void testPreparePersistent() throws Exception
{
@@ -248,10 +247,10 @@ public void testPreparePersistent() throws Exception
config.setJournalSyncNonTransactional(false);
server =
- createServer(true, config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true, config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
@@ -263,192 +262,192 @@ public void testPreparePersistent() throws Exception
locator = createInVMNonHALocator();
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(false, false, false);
+ ClientSession session = sf.createSession(false, false, false);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- ClientMessage message = null;
+ ClientMessage message = null;
- byte[] body = new byte[MESSAGE_SIZE];
+ byte[] body = new byte[MESSAGE_SIZE];
- ByteBuffer bb = ByteBuffer.wrap(body);
+ ByteBuffer bb = ByteBuffer.wrap(body);
- for (int j = 1; j <= MESSAGE_SIZE; j++)
- {
- bb.put(getSamplebyte(j));
- }
+ for (int j = 1; j <= MESSAGE_SIZE; j++)
+ {
+ bb.put(getSamplebyte(j));
+ }
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = session.createMessage(true);
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = session.createMessage(true);
- HornetQBuffer bodyLocal = message.getBodyBuffer();
+ HornetQBuffer bodyLocal = message.getBodyBuffer();
- bodyLocal.writeBytes(body);
+ bodyLocal.writeBytes(body);
- message.putIntProperty(new SimpleString("id"), i);
+ message.putIntProperty(new SimpleString("id"), i);
- producer.send(message);
- if (i % 1000 == 0)
- {
- session.commit();
- }
+ producer.send(message);
+ if (i % 1000 == 0)
+ {
+ session.commit();
}
- session.commit();
- session.close();
- session = null;
+ }
+ session.commit();
+ session.close();
+ session = null;
- sf.close();
- locator.close();
+ sf.close();
+ locator.close();
- server.stop();
+ server.stop();
- server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
- server.start();
+ server = createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
+ server.start();
- locator = createInVMNonHALocator();
- sf = createSessionFactory(locator);
+ locator = createInVMNonHALocator();
+ sf = createSessionFactory(locator);
- Queue queue = server.locateQueue(ADDRESS);
+ Queue queue = server.locateQueue(ADDRESS);
- assertEquals(numberOfMessages, queue.getMessageCount());
+ assertEquals(numberOfMessages, queue.getMessageCount());
- LinkedList xids = new LinkedList();
+ LinkedList xids = new LinkedList();
- int msgReceived = 0;
- for (int i = 0; i < numberOfTX; i++)
+ int msgReceived = 0;
+ for (int i = 0; i < numberOfTX; i++)
+ {
+ ClientSession sessionConsumer = sf.createSession(true, false, false);
+ Xid xid = newXID();
+ xids.add(xid);
+ sessionConsumer.start(xid, XAResource.TMNOFLAGS);
+ sessionConsumer.start();
+ ClientConsumer consumer = sessionConsumer.createConsumer(PagingTest.ADDRESS);
+ for (int msgCount = 0; msgCount < messagesPerTX; msgCount++)
{
- ClientSession sessionConsumer = sf.createSession(true, false, false);
- Xid xid = newXID();
- xids.add(xid);
- sessionConsumer.start(xid, XAResource.TMNOFLAGS);
- sessionConsumer.start();
- ClientConsumer consumer = sessionConsumer.createConsumer(PagingTest.ADDRESS);
- for (int msgCount = 0; msgCount < messagesPerTX; msgCount++)
+ if (msgReceived == numberOfMessages)
{
- if (msgReceived == numberOfMessages)
- {
- break;
- }
- msgReceived++;
- ClientMessage msg = consumer.receive(10000);
- assertNotNull(msg);
- msg.acknowledge();
+ break;
}
- sessionConsumer.end(xid, XAResource.TMSUCCESS);
- sessionConsumer.prepare(xid);
- sessionConsumer.close();
+ msgReceived++;
+ ClientMessage msg = consumer.receive(10000);
+ assertNotNull(msg);
+ msg.acknowledge();
}
+ sessionConsumer.end(xid, XAResource.TMSUCCESS);
+ sessionConsumer.prepare(xid);
+ sessionConsumer.close();
+ }
- ClientSession sessionCheck = sf.createSession(true, true);
+ ClientSession sessionCheck = sf.createSession(true, true);
- ClientConsumer consumer = sessionCheck.createConsumer(PagingTest.ADDRESS);
+ ClientConsumer consumer = sessionCheck.createConsumer(PagingTest.ADDRESS);
- assertNull(consumer.receiveImmediate());
+ assertNull(consumer.receiveImmediate());
- sessionCheck.close();
+ sessionCheck.close();
- assertEquals(numberOfMessages, queue.getMessageCount());
+ assertEquals(numberOfMessages, queue.getMessageCount());
- sf.close();
- locator.close();
+ sf.close();
+ locator.close();
- server.stop();
+ server.stop();
- server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
- server.start();
+ server = createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
+ server.start();
- waitForServer(server);
+ waitForServer(server);
- queue = server.locateQueue(ADDRESS);
+ queue = server.locateQueue(ADDRESS);
- locator = createInVMNonHALocator();
- sf = createSessionFactory(locator);
+ locator = createInVMNonHALocator();
+ sf = createSessionFactory(locator);
- session = sf.createSession(true, false, false);
+ session = sf.createSession(true, false, false);
- consumer = session.createConsumer(PagingTest.ADDRESS);
+ consumer = session.createConsumer(PagingTest.ADDRESS);
- session.start();
+ session.start();
- assertEquals(numberOfMessages, queue.getMessageCount());
+ assertEquals(numberOfMessages, queue.getMessageCount());
- ClientMessage msg = consumer.receive(5000);
- if (msg != null)
+ ClientMessage msg = consumer.receive(5000);
+ if (msg != null)
+ {
+ while (true)
{
- while (true)
+ ClientMessage msg2 = consumer.receive(1000);
+ if (msg2 == null)
{
- ClientMessage msg2 = consumer.receive(1000);
- if (msg2 == null)
- {
- break;
- }
+ break;
}
}
- assertNull(msg);
+ }
+ assertNull(msg);
- for (int i = xids.size() - 1; i >= 0; i--)
- {
- Xid xid = xids.get(i);
- session.rollback(xid);
- }
+ for (int i = xids.size() - 1; i >= 0; i--)
+ {
+ Xid xid = xids.get(i);
+ session.rollback(xid);
+ }
- xids.clear();
+ xids.clear();
- session.close();
+ session.close();
- session = sf.createSession(false, false, false);
+ session = sf.createSession(false, false, false);
- session.start();
+ session.start();
- consumer = session.createConsumer(PagingTest.ADDRESS);
+ consumer = session.createConsumer(PagingTest.ADDRESS);
- for (int i = 0; i < numberOfMessages; i++)
- {
- msg = consumer.receive(1000);
- assertNotNull(msg);
- msg.acknowledge();
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ msg = consumer.receive(1000);
+ assertNotNull(msg);
+ msg.acknowledge();
- assertEquals(i, msg.getIntProperty("id").intValue());
+ assertEquals(i, msg.getIntProperty("id").intValue());
- if (i % 500 == 0)
- {
- session.commit();
- }
+ if (i % 500 == 0)
+ {
+ session.commit();
}
+ }
- session.commit();
+ session.commit();
- session.close();
+ session.close();
- sf.close();
+ sf.close();
- locator.close();
+ locator.close();
- assertEquals(0, queue.getMessageCount());
+ assertEquals(0, queue.getMessageCount());
- long timeout = System.currentTimeMillis() + 5000;
- while (timeout > System.currentTimeMillis() && queue.getPageSubscription().getPagingStore().isPaging())
- {
- Thread.sleep(100);
- }
- assertFalse(queue.getPageSubscription().getPagingStore().isPaging());
+ long timeout = System.currentTimeMillis() + 5000;
+ while (timeout > System.currentTimeMillis() && queue.getPageSubscription().getPagingStore().isPaging())
+ {
+ Thread.sleep(100);
+ }
+ assertFalse(queue.getPageSubscription().getPagingStore().isPaging());
}
public void testSendOverBlockingNoFlowControl() throws Exception
@@ -460,12 +459,12 @@ public void testSendOverBlockingNoFlowControl() throws Exception
config.setJournalSyncNonTransactional(false);
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- AddressFullMessagePolicy.BLOCK,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ AddressFullMessagePolicy.BLOCK,
+ new HashMap());
server.start();
@@ -475,67 +474,67 @@ public void testSendOverBlockingNoFlowControl() throws Exception
locator = createInVMNonHALocator();
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
- locator.setProducerWindowSize(-1);
- locator.setMinLargeMessageSize(1024 * 1024);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
+ locator.setProducerWindowSize(-1);
+ locator.setMinLargeMessageSize(1024 * 1024);
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(false, false, false);
+ ClientSession session = sf.createSession(false, false, false);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- ClientMessage message = null;
+ ClientMessage message = null;
- byte[] body = new byte[biggerMessageSize];
+ byte[] body = new byte[biggerMessageSize];
- ByteBuffer bb = ByteBuffer.wrap(body);
+ ByteBuffer bb = ByteBuffer.wrap(body);
- for (int j = 1; j <= biggerMessageSize; j++)
- {
- bb.put(getSamplebyte(j));
- }
+ for (int j = 1; j <= biggerMessageSize; j++)
+ {
+ bb.put(getSamplebyte(j));
+ }
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = session.createMessage(true);
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = session.createMessage(true);
- HornetQBuffer bodyLocal = message.getBodyBuffer();
+ HornetQBuffer bodyLocal = message.getBodyBuffer();
- bodyLocal.writeBytes(body);
+ bodyLocal.writeBytes(body);
- message.putIntProperty(new SimpleString("id"), i);
+ message.putIntProperty(new SimpleString("id"), i);
- producer.send(message);
+ producer.send(message);
- if (i % 10 == 0)
- {
- session.commit();
- }
+ if (i % 10 == 0)
+ {
+ session.commit();
}
- session.commit();
+ }
+ session.commit();
- session.start();
+ session.start();
- ClientConsumer cons = session.createConsumer(ADDRESS);
+ ClientConsumer cons = session.createConsumer(ADDRESS);
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = cons.receive(5000);
- assertNotNull(message);
- message.acknowledge();
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = cons.receive(5000);
+ assertNotNull(message);
+ message.acknowledge();
- if (i % 10 == 0)
- {
- session.commit();
- }
+ if (i % 10 == 0)
+ {
+ session.commit();
}
+ }
- session.commit();
+ session.commit();
}
@@ -548,11 +547,11 @@ public void testReceiveImmediate() throws Exception
config.setJournalSyncNonTransactional(false);
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
@@ -560,109 +559,109 @@ public void testReceiveImmediate() throws Exception
locator = createInVMNonHALocator();
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(false, false, false);
+ ClientSession session = sf.createSession(false, false, false);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- ClientMessage message = null;
+ ClientMessage message = null;
- byte[] body = new byte[MESSAGE_SIZE];
+ byte[] body = new byte[MESSAGE_SIZE];
- ByteBuffer bb = ByteBuffer.wrap(body);
+ ByteBuffer bb = ByteBuffer.wrap(body);
- for (int j = 1; j <= MESSAGE_SIZE; j++)
- {
- bb.put(getSamplebyte(j));
- }
+ for (int j = 1; j <= MESSAGE_SIZE; j++)
+ {
+ bb.put(getSamplebyte(j));
+ }
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = session.createMessage(true);
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = session.createMessage(true);
- HornetQBuffer bodyLocal = message.getBodyBuffer();
+ HornetQBuffer bodyLocal = message.getBodyBuffer();
- bodyLocal.writeBytes(body);
+ bodyLocal.writeBytes(body);
- message.putIntProperty(new SimpleString("id"), i);
+ message.putIntProperty(new SimpleString("id"), i);
- producer.send(message);
- if (i % 1000 == 0)
- {
- session.commit();
- }
+ producer.send(message);
+ if (i % 1000 == 0)
+ {
+ session.commit();
}
- session.commit();
- session.close();
+ }
+ session.commit();
+ session.close();
- session = null;
+ session = null;
- sf.close();
- locator.close();
+ sf.close();
+ locator.close();
- server.stop();
+ server.stop();
- server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
- server.start();
+ server = createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
+ server.start();
- locator = createInVMNonHALocator();
- sf = createSessionFactory(locator);
+ locator = createInVMNonHALocator();
+ sf = createSessionFactory(locator);
- Queue queue = server.locateQueue(ADDRESS);
+ Queue queue = server.locateQueue(ADDRESS);
- assertEquals(numberOfMessages, queue.getMessageCount());
+ assertEquals(numberOfMessages, queue.getMessageCount());
- int msgReceived = 0;
- ClientSession sessionConsumer = sf.createSession(false, false, false);
- sessionConsumer.start();
- ClientConsumer consumer = sessionConsumer.createConsumer(PagingTest.ADDRESS);
- for (int msgCount = 0; msgCount < numberOfMessages; msgCount++)
+ int msgReceived = 0;
+ ClientSession sessionConsumer = sf.createSession(false, false, false);
+ sessionConsumer.start();
+ ClientConsumer consumer = sessionConsumer.createConsumer(PagingTest.ADDRESS);
+ for (int msgCount = 0; msgCount < numberOfMessages; msgCount++)
+ {
+ log.info("Received " + msgCount);
+ msgReceived++;
+ ClientMessage msg = consumer.receiveImmediate();
+ if (msg == null)
{
- log.info("Received " + msgCount);
- msgReceived++;
- ClientMessage msg = consumer.receiveImmediate();
- if (msg == null)
- {
- log.info("It's null. leaving now");
- sessionConsumer.commit();
- fail("Didn't receive a message");
- }
- msg.acknowledge();
+ log.info("It's null. leaving now");
+ sessionConsumer.commit();
+ fail("Didn't receive a message");
+ }
+ msg.acknowledge();
- if (msgCount % 5 == 0)
- {
- log.info("commit");
- sessionConsumer.commit();
- }
+ if (msgCount % 5 == 0)
+ {
+ log.info("commit");
+ sessionConsumer.commit();
}
+ }
- sessionConsumer.commit();
+ sessionConsumer.commit();
- sessionConsumer.close();
+ sessionConsumer.close();
- sf.close();
+ sf.close();
- locator.close();
+ locator.close();
- assertEquals(0, queue.getMessageCount());
+ assertEquals(0, queue.getMessageCount());
- long timeout = System.currentTimeMillis() + 5000;
- while (timeout > System.currentTimeMillis() && queue.getPageSubscription().getPagingStore().isPaging())
- {
- Thread.sleep(100);
- }
- assertFalse(queue.getPageSubscription().getPagingStore().isPaging());
+ long timeout = System.currentTimeMillis() + 5000;
+ while (timeout > System.currentTimeMillis() && queue.getPageSubscription().getPagingStore().isPaging())
+ {
+ Thread.sleep(100);
+ }
+ assertFalse(queue.getPageSubscription().getPagingStore().isPaging());
}
@@ -679,210 +678,210 @@ public void testDeletePhisicalPages() throws Exception
config.setJournalSyncNonTransactional(false);
server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
final int numberOfMessages = 1000;
- locator = createInVMNonHALocator();
+ locator = createInVMNonHALocator();
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
ClientSession session = sf.createSession(false, false, false);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- ClientMessage message = null;
+ ClientMessage message = null;
- byte[] body = new byte[MESSAGE_SIZE];
+ byte[] body = new byte[MESSAGE_SIZE];
- ByteBuffer bb = ByteBuffer.wrap(body);
+ ByteBuffer bb = ByteBuffer.wrap(body);
- for (int j = 1; j <= MESSAGE_SIZE; j++)
- {
- bb.put(getSamplebyte(j));
- }
+ for (int j = 1; j <= MESSAGE_SIZE; j++)
+ {
+ bb.put(getSamplebyte(j));
+ }
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = session.createMessage(true);
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = session.createMessage(true);
- HornetQBuffer bodyLocal = message.getBodyBuffer();
+ HornetQBuffer bodyLocal = message.getBodyBuffer();
- bodyLocal.writeBytes(body);
+ bodyLocal.writeBytes(body);
- message.putIntProperty(new SimpleString("id"), i);
+ message.putIntProperty(new SimpleString("id"), i);
- producer.send(message);
- if (i % 1000 == 0)
- {
- session.commit();
- }
+ producer.send(message);
+ if (i % 1000 == 0)
+ {
+ session.commit();
}
- session.commit();
- session.close();
+ }
+ session.commit();
+ session.close();
- session = null;
+ session = null;
- sf.close();
- locator.close();
+ sf.close();
+ locator.close();
- server.stop();
+ server.stop();
- server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
- server.start();
+ server = createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
+ server.start();
- locator = createInVMNonHALocator();
- sf = createSessionFactory(locator);
+ locator = createInVMNonHALocator();
+ sf = createSessionFactory(locator);
- Queue queue = server.locateQueue(ADDRESS);
+ Queue queue = server.locateQueue(ADDRESS);
- assertEquals(numberOfMessages, queue.getMessageCount());
+ assertEquals(numberOfMessages, queue.getMessageCount());
- int msgReceived = 0;
- ClientSession sessionConsumer = sf.createSession(false, false, false);
- sessionConsumer.start();
- ClientConsumer consumer = sessionConsumer.createConsumer(PagingTest.ADDRESS);
- for (int msgCount = 0; msgCount < numberOfMessages; msgCount++)
+ int msgReceived = 0;
+ ClientSession sessionConsumer = sf.createSession(false, false, false);
+ sessionConsumer.start();
+ ClientConsumer consumer = sessionConsumer.createConsumer(PagingTest.ADDRESS);
+ for (int msgCount = 0; msgCount < numberOfMessages; msgCount++)
+ {
+ log.info("Received " + msgCount);
+ msgReceived++;
+ ClientMessage msg = consumer.receiveImmediate();
+ if (msg == null)
{
- log.info("Received " + msgCount);
- msgReceived++;
- ClientMessage msg = consumer.receiveImmediate();
- if (msg == null)
- {
- log.info("It's null. leaving now");
- sessionConsumer.commit();
- fail("Didn't receive a message");
- }
- msg.acknowledge();
+ log.info("It's null. leaving now");
+ sessionConsumer.commit();
+ fail("Didn't receive a message");
+ }
+ msg.acknowledge();
- if (msgCount % 5 == 0)
- {
- log.info("commit");
- sessionConsumer.commit();
- }
+ if (msgCount % 5 == 0)
+ {
+ log.info("commit");
+ sessionConsumer.commit();
}
+ }
- sessionConsumer.commit();
+ sessionConsumer.commit();
- sessionConsumer.close();
+ sessionConsumer.close();
- sf.close();
+ sf.close();
- locator.close();
+ locator.close();
- assertEquals(0, queue.getMessageCount());
+ assertEquals(0, queue.getMessageCount());
- long timeout = System.currentTimeMillis() + 5000;
- while (timeout > System.currentTimeMillis() && queue.getPageSubscription().getPagingStore().isPaging())
- {
- Thread.sleep(100);
- }
- assertFalse(queue.getPageSubscription().getPagingStore().isPaging());
+ long timeout = System.currentTimeMillis() + 5000;
+ while (timeout > System.currentTimeMillis() && queue.getPageSubscription().getPagingStore().isPaging())
+ {
+ Thread.sleep(100);
+ }
+ assertFalse(queue.getPageSubscription().getPagingStore().isPaging());
- server.stop();
+ server.stop();
- // Deleting the paging data. Simulating a failure
- // a dumb user, or anything that will remove the data
- deleteDirectory(new File(getPageDir()));
+ // Deleting the paging data. Simulating a failure
+ // a dumb user, or anything that will remove the data
+ deleteDirectory(new File(getPageDir()));
- server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
- server.start();
+ server = createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
+ server.start();
- locator = createInVMNonHALocator();
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator = createInVMNonHALocator();
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- queue = server.locateQueue(ADDRESS);
+ queue = server.locateQueue(ADDRESS);
- sf = createSessionFactory(locator);
- session = sf.createSession(false, false, false);
+ sf = createSessionFactory(locator);
+ session = sf.createSession(false, false, false);
- producer = session.createProducer(PagingTest.ADDRESS);
+ producer = session.createProducer(PagingTest.ADDRESS);
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = session.createMessage(true);
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = session.createMessage(true);
- HornetQBuffer bodyLocal = message.getBodyBuffer();
+ HornetQBuffer bodyLocal = message.getBodyBuffer();
- bodyLocal.writeBytes(body);
+ bodyLocal.writeBytes(body);
- message.putIntProperty(new SimpleString("id"), i);
+ message.putIntProperty(new SimpleString("id"), i);
- producer.send(message);
- if (i % 1000 == 0)
- {
- session.commit();
- }
+ producer.send(message);
+ if (i % 1000 == 0)
+ {
+ session.commit();
}
+ }
- session.commit();
+ session.commit();
- server.stop();
+ server.stop();
- server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
- server.start();
+ server = createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
+ server.start();
- locator = createInVMNonHALocator();
- sf = createSessionFactory(locator);
+ locator = createInVMNonHALocator();
+ sf = createSessionFactory(locator);
- queue = server.locateQueue(ADDRESS);
+ queue = server.locateQueue(ADDRESS);
- // assertEquals(numberOfMessages, queue.getMessageCount());
+ // assertEquals(numberOfMessages, queue.getMessageCount());
- msgReceived = 0;
- sessionConsumer = sf.createSession(false, false, false);
- sessionConsumer.start();
- consumer = sessionConsumer.createConsumer(PagingTest.ADDRESS);
- for (int msgCount = 0; msgCount < numberOfMessages; msgCount++)
+ msgReceived = 0;
+ sessionConsumer = sf.createSession(false, false, false);
+ sessionConsumer.start();
+ consumer = sessionConsumer.createConsumer(PagingTest.ADDRESS);
+ for (int msgCount = 0; msgCount < numberOfMessages; msgCount++)
+ {
+ log.info("Received " + msgCount);
+ msgReceived++;
+ ClientMessage msg = consumer.receiveImmediate();
+ if (msg == null)
{
- log.info("Received " + msgCount);
- msgReceived++;
- ClientMessage msg = consumer.receiveImmediate();
- if (msg == null)
- {
- log.info("It's null. leaving now");
- sessionConsumer.commit();
- fail("Didn't receive a message");
- }
- msg.acknowledge();
+ log.info("It's null. leaving now");
+ sessionConsumer.commit();
+ fail("Didn't receive a message");
+ }
+ msg.acknowledge();
- if (msgCount % 5 == 0)
- {
- log.info("commit");
- sessionConsumer.commit();
- }
+ if (msgCount % 5 == 0)
+ {
+ log.info("commit");
+ sessionConsumer.commit();
}
+ }
- sessionConsumer.commit();
+ sessionConsumer.commit();
- sessionConsumer.close();
+ sessionConsumer.close();
}
@@ -895,11 +894,11 @@ public void testMissingTXEverythingAcked() throws Exception
config.setJournalSyncNonTransactional(false);
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
@@ -973,13 +972,13 @@ public void testMissingTXEverythingAcked() throws Exception
List list = new ArrayList();
JournalImpl jrn = new JournalImpl(config.getJournalFileSize(),
- 2,
- 0,
- 0,
- new NIOSequentialFileFactory(getJournalDir()),
- "hornetq-data",
- "hq",
- 1);
+ 2,
+ 0,
+ 0,
+ new NIOSequentialFileFactory(getJournalDir()),
+ "hornetq-data",
+ "hq",
+ 1);
jrn.start();
jrn.load(records, list, null);
@@ -995,10 +994,10 @@ public void testMissingTXEverythingAcked() throws Exception
jrn.stop();
server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
@@ -1010,7 +1009,7 @@ public void testMissingTXEverythingAcked() throws Exception
pg.close();
- long queues[] = new long[] { server.locateQueue(new SimpleString("q1")).getID() };
+ long queues[] = new long[]{server.locateQueue(new SimpleString("q1")).getID()};
for (long q : queues)
{
@@ -1029,10 +1028,10 @@ public void testMissingTXEverythingAcked() throws Exception
locator.setBlockOnAcknowledge(true);
server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
@@ -1072,11 +1071,11 @@ public void testMissingTXEverythingAcked2() throws Exception
config.setJournalSyncNonTransactional(false);
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
@@ -1171,54 +1170,54 @@ public void testMissingTXEverythingAcked2() throws Exception
}
server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
- locator = createInVMNonHALocator();
+ locator = createInVMNonHALocator();
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- ClientSessionFactory csf = createSessionFactory(locator);
+ ClientSessionFactory csf = createSessionFactory(locator);
- ClientSession session = csf.createSession();
+ ClientSession session = csf.createSession();
- session.start();
+ session.start();
- for (int i = 1; i <= 2; i++)
- {
- ClientConsumer cons = session.createConsumer("q" + i);
+ for (int i = 1; i <= 2; i++)
+ {
+ ClientConsumer cons = session.createConsumer("q" + i);
- for (int j = 3; j < 6; j++)
- {
- ClientMessage msg = cons.receive(5000);
+ for (int j = 3; j < 6; j++)
+ {
+ ClientMessage msg = cons.receive(5000);
- assertNotNull(msg);
+ assertNotNull(msg);
- assertEquals("str-" + j, msg.getStringProperty("id"));
+ assertEquals("str-" + j, msg.getStringProperty("id"));
- msg.acknowledge();
- }
+ msg.acknowledge();
+ }
- session.commit();
- assertNull(cons.receive(500));
+ session.commit();
+ assertNull(cons.receive(500));
- }
+ }
- session.close();
+ session.close();
- long timeout = System.currentTimeMillis() + 5000;
+ long timeout = System.currentTimeMillis() + 5000;
- while (System.currentTimeMillis() < timeout && server.getPagingManager().getPageStore(ADDRESS).isPaging())
- {
- Thread.sleep(100);
- }
+ while (System.currentTimeMillis() < timeout && server.getPagingManager().getPageStore(ADDRESS).isPaging())
+ {
+ Thread.sleep(100);
+ }
}
public void testTwoQueuesOneNoRouting() throws Exception
@@ -1232,91 +1231,91 @@ public void testTwoQueuesOneNoRouting() throws Exception
config.setJournalSyncNonTransactional(false);
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
final int numberOfMessages = 1000;
- locator = createInVMNonHALocator();
-
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
-
- sf = createSessionFactory(locator);
-
- ClientSession session = sf.createSession(false, false, false);
-
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- session.createQueue(PagingTest.ADDRESS,
- PagingTest.ADDRESS.concat("-invalid"),
- new SimpleString(HornetQServerImpl.GENERIC_IGNORED_FILTER),
- true);
-
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ locator = createInVMNonHALocator();
- ClientMessage message = null;
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- byte[] body = new byte[MESSAGE_SIZE];
+ sf = createSessionFactory(locator);
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = session.createMessage(persistentMessages);
+ ClientSession session = sf.createSession(false, false, false);
- HornetQBuffer bodyLocal = message.getBodyBuffer();
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ session.createQueue(PagingTest.ADDRESS,
+ PagingTest.ADDRESS.concat("-invalid"),
+ new SimpleString(HornetQServerImpl.GENERIC_IGNORED_FILTER),
+ true);
- bodyLocal.writeBytes(body);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- message.putIntProperty(new SimpleString("id"), i);
+ ClientMessage message = null;
- producer.send(message);
- if (i % 1000 == 0)
- {
- session.commit();
- }
- }
+ byte[] body = new byte[MESSAGE_SIZE];
- session.commit();
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = session.createMessage(persistentMessages);
- session.start();
+ HornetQBuffer bodyLocal = message.getBodyBuffer();
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
+ bodyLocal.writeBytes(body);
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = consumer.receive(5000);
- assertNotNull(message);
- message.acknowledge();
+ message.putIntProperty(new SimpleString("id"), i);
- assertEquals(i, message.getIntProperty("id").intValue());
- if (i % 1000 == 0)
- {
- session.commit();
- }
+ producer.send(message);
+ if (i % 1000 == 0)
+ {
+ session.commit();
}
+ }
- session.commit();
+ session.commit();
- session.commit();
+ session.start();
- session.commit();
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
- PagingStore store = server.getPagingManager().getPageStore(ADDRESS);
- store.getCursorProvider().cleanup();
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = consumer.receive(5000);
+ assertNotNull(message);
+ message.acknowledge();
- long timeout = System.currentTimeMillis() + 5000;
- while (store.isPaging() && timeout > System.currentTimeMillis())
+ assertEquals(i, message.getIntProperty("id").intValue());
+ if (i % 1000 == 0)
{
- Thread.sleep(100);
+ session.commit();
}
+ }
+
+ session.commit();
+
+ session.commit();
+
+ session.commit();
+
+ PagingStore store = server.getPagingManager().getPageStore(ADDRESS);
+ store.getCursorProvider().cleanup();
- // It's async, so need to wait a bit for it happening
- assertFalse(server.getPagingManager().getPageStore(ADDRESS).isPaging());
+ long timeout = System.currentTimeMillis() + 5000;
+ while (store.isPaging() && timeout > System.currentTimeMillis())
+ {
+ Thread.sleep(100);
+ }
+
+ // It's async, so need to wait a bit for it happening
+ assertFalse(server.getPagingManager().getPageStore(ADDRESS).isPaging());
}
public void testSendReceivePagingPersistent() throws Exception
@@ -1348,29 +1347,29 @@ public void internalMultiQueuesTest(final boolean divert) throws Exception
config.setJournalSyncNonTransactional(false);
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
if (divert)
{
DivertConfiguration divert1 = new DivertConfiguration("dv1",
- "nm1",
- PagingTest.ADDRESS.toString(),
- PagingTest.ADDRESS.toString() + "-1",
- true,
- null,
- null);
+ "nm1",
+ PagingTest.ADDRESS.toString(),
+ PagingTest.ADDRESS.toString() + "-1",
+ true,
+ null,
+ null);
DivertConfiguration divert2 = new DivertConfiguration("dv2",
- "nm2",
- PagingTest.ADDRESS.toString(),
- PagingTest.ADDRESS.toString() + "-2",
- true,
- null,
- null);
+ "nm2",
+ PagingTest.ADDRESS.toString(),
+ PagingTest.ADDRESS.toString() + "-2",
+ true,
+ null,
+ null);
ArrayList divertList = new ArrayList();
divertList.add(divert1);
@@ -1422,7 +1421,8 @@ public void run()
log.info("Thread interrupted");
}
}
- };
+ }
+ ;
TCount tcount1 = null;
TCount tcount2 = null;
@@ -1486,10 +1486,10 @@ public void run()
}
server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
Queue queue1 = server.locateQueue(PagingTest.ADDRESS.concat("-1"));
@@ -1563,8 +1563,8 @@ public void run()
{
PagingTest.log.info("Expected buffer:" + UnitTestCase.dumbBytesHex(body, 40));
PagingTest.log.info("Arriving buffer:" + UnitTestCase.dumbBytesHex(message2.getBodyBuffer()
- .toByteBuffer()
- .array(), 40));
+ .toByteBuffer()
+ .array(), 40));
throw e;
}
}
@@ -1648,11 +1648,11 @@ public void testMultiQueuesNonPersistentAndPersistent() throws Exception
config.setJournalSyncNonTransactional(false);
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
@@ -1668,142 +1668,144 @@ public void testMultiQueuesNonPersistentAndPersistent() throws Exception
}
{
- locator = createInVMNonHALocator();
+ locator = createInVMNonHALocator();
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(false, false, false);
+ ClientSession session = sf.createSession(false, false, false);
- session.createQueue(PagingTest.ADDRESS.toString(), PagingTest.ADDRESS + "-1", null, true);
+ session.createQueue(PagingTest.ADDRESS.toString(), PagingTest.ADDRESS + "-1", null, true);
- session.createQueue(PagingTest.ADDRESS.toString(), PagingTest.ADDRESS + "-2", null, false);
+ session.createQueue(PagingTest.ADDRESS.toString(), PagingTest.ADDRESS + "-2", null, false);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- ClientMessage message = null;
+ ClientMessage message = null;
- for (int i = 0; i < numberOfMessages; i++)
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ if (i % 500 == 0)
{
- if (i % 500 == 0)
- {
- session.commit();
- }
- message = session.createMessage(true);
+ session.commit();
+ }
+ message = session.createMessage(true);
- HornetQBuffer bodyLocal = message.getBodyBuffer();
+ HornetQBuffer bodyLocal = message.getBodyBuffer();
- bodyLocal.writeBytes(body);
+ bodyLocal.writeBytes(body);
- message.putIntProperty(new SimpleString("id"), i);
+ message.putIntProperty(new SimpleString("id"), i);
- producer.send(message);
- }
+ producer.send(message);
+ }
- session.commit();
+ session.commit();
- session.close();
+ session.close();
- server.stop();
+ server.stop();
- sf.close();
- locator.close();
- }
+ sf.close();
+ locator.close();
+ }
- server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
- server.start();
+ server = createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
+ server.start();
- locator = createInVMNonHALocator();
- final ClientSessionFactory sf2 = createSessionFactory(locator);
+ locator = createInVMNonHALocator();
+ final ClientSessionFactory sf2 = createSessionFactory(locator);
- final AtomicInteger errors = new AtomicInteger(0);
+ final AtomicInteger errors = new AtomicInteger(0);
- Thread t = new Thread()
+ Thread t = new Thread()
+ {
+ @Override
+ public void run()
{
- @Override
- public void run()
+ try
{
- try
- {
- ClientSession session = sf2.createSession(null, null, false, true, true, false, 0);
+ ClientSession session = sf2.createSession(null, null, false, true, true, false, 0);
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS + "-1");
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS + "-1");
- session.start();
-
- for (int i = 0; i < numberOfMessages; i++)
- {
- ClientMessage message2 = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
+ session.start();
- Assert.assertNotNull(message2);
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ ClientMessage message2 = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
- Assert.assertEquals(i, message2.getIntProperty("id").intValue());
+ Assert.assertNotNull(message2);
- message2.acknowledge();
+ Assert.assertEquals(i, message2.getIntProperty("id").intValue());
- Assert.assertNotNull(message2);
+ message2.acknowledge();
- if (i % 1000 == 0)
- session.commit();
+ Assert.assertNotNull(message2);
- try
- {
- assertBodiesEqual(body, message2.getBodyBuffer());
- }
- catch (AssertionFailedError e)
- {
- PagingTest.log.info("Expected buffer:" + UnitTestCase.dumbBytesHex(body, 40));
- PagingTest.log.info("Arriving buffer:" + UnitTestCase.dumbBytesHex(message2.getBodyBuffer()
- .toByteBuffer()
- .array(), 40));
- throw e;
- }
+ if (i % 1000 == 0)
+ {
+ session.commit();
}
- session.commit();
+ try
+ {
+ assertBodiesEqual(body, message2.getBodyBuffer());
+ }
+ catch (AssertionFailedError e)
+ {
+ PagingTest.log.info("Expected buffer:" + UnitTestCase.dumbBytesHex(body, 40));
+ PagingTest.log.info("Arriving buffer:" + UnitTestCase.dumbBytesHex(message2.getBodyBuffer()
+ .toByteBuffer()
+ .array(), 40));
+ throw e;
+ }
+ }
- consumer.close();
+ session.commit();
- session.close();
- }
- catch (Throwable e)
- {
- e.printStackTrace();
- errors.incrementAndGet();
- }
+ consumer.close();
+ session.close();
+ }
+ catch (Throwable e)
+ {
+ e.printStackTrace();
+ errors.incrementAndGet();
}
- };
- t.start();
- t.join();
+ }
+ };
- assertEquals(0, errors.get());
+ t.start();
+ t.join();
- for (int i = 0; i < 20 && server.getPostOffice().getPagingManager().getPageStore(ADDRESS).isPaging(); i++)
- {
- // The delete may be asynchronous, giving some time case it eventually happen asynchronously
- Thread.sleep(500);
- }
+ assertEquals(0, errors.get());
- assertFalse(server.getPostOffice().getPagingManager().getPageStore(ADDRESS).isPaging());
+ for (int i = 0; i < 20 && server.getPostOffice().getPagingManager().getPageStore(ADDRESS).isPaging(); i++)
+ {
+ // The delete may be asynchronous, giving some time case it eventually happen asynchronously
+ Thread.sleep(500);
+ }
- for (int i = 0; i < 20 && server.getPostOffice().getPagingManager().getTransactions().size() != 0; i++)
- {
- // The delete may be asynchronous, giving some time case it eventually happen asynchronously
- Thread.sleep(500);
- }
+ assertFalse(server.getPostOffice().getPagingManager().getPageStore(ADDRESS).isPaging());
- assertEquals(0, server.getPostOffice().getPagingManager().getTransactions().size());
+ for (int i = 0; i < 20 && server.getPostOffice().getPagingManager().getTransactions().size() != 0; i++)
+ {
+ // The delete may be asynchronous, giving some time case it eventually happen asynchronously
+ Thread.sleep(500);
+ }
- }
+ assertEquals(0, server.getPostOffice().getPagingManager().getTransactions().size());
+
+ }
private void internaltestSendReceivePaging(final boolean persistentMessages) throws Exception
{
@@ -1815,11 +1817,11 @@ private void internaltestSendReceivePaging(final boolean persistentMessages) thr
config.setJournalSyncNonTransactional(false);
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
@@ -1828,99 +1830,101 @@ private void internaltestSendReceivePaging(final boolean persistentMessages) thr
final int numberOfMessages = 1000;
locator = createInVMNonHALocator();
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(null, null, false, true, true, false, 0);
+ ClientSession session = sf.createSession(null, null, false, true, true, false, 0);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- ClientMessage message = null;
+ ClientMessage message = null;
- byte[] body = new byte[numberOfIntegers * 4];
+ byte[] body = new byte[numberOfIntegers * 4];
- ByteBuffer bb = ByteBuffer.wrap(body);
+ ByteBuffer bb = ByteBuffer.wrap(body);
- for (int j = 1; j <= numberOfIntegers; j++)
- {
- bb.putInt(j);
- }
+ for (int j = 1; j <= numberOfIntegers; j++)
+ {
+ bb.putInt(j);
+ }
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = session.createMessage(persistentMessages);
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = session.createMessage(persistentMessages);
- HornetQBuffer bodyLocal = message.getBodyBuffer();
+ HornetQBuffer bodyLocal = message.getBodyBuffer();
- bodyLocal.writeBytes(body);
+ bodyLocal.writeBytes(body);
- message.putIntProperty(new SimpleString("id"), i);
+ message.putIntProperty(new SimpleString("id"), i);
- producer.send(message);
- }
+ producer.send(message);
+ }
- session.close();
- sf.close();
- locator.close();
+ session.close();
+ sf.close();
+ locator.close();
- if (persistentMessages)
- {
- server.stop();
+ if (persistentMessages)
+ {
+ server.stop();
- server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
- server.start();
- }
+ server = createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
+ server.start();
+ }
- locator = createInVMNonHALocator();
- sf = createSessionFactory(locator);
+ locator = createInVMNonHALocator();
+ sf = createSessionFactory(locator);
- session = sf.createSession(null, null, false, true, true, false, 0);
+ session = sf.createSession(null, null, false, true, true, false, 0);
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
- session.start();
+ session.start();
- for (int i = 0; i < numberOfMessages; i++)
- {
- ClientMessage message2 = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ ClientMessage message2 = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
- Assert.assertNotNull(message2);
+ Assert.assertNotNull(message2);
- Assert.assertEquals(i, message2.getIntProperty("id").intValue());
+ Assert.assertEquals(i, message2.getIntProperty("id").intValue());
- message2.acknowledge();
+ message2.acknowledge();
- Assert.assertNotNull(message2);
+ Assert.assertNotNull(message2);
- if (i % 1000 == 0)
- session.commit();
+ if (i % 1000 == 0)
+ {
+ session.commit();
+ }
- try
- {
- assertBodiesEqual(body, message2.getBodyBuffer());
- }
- catch (AssertionFailedError e)
- {
- PagingTest.log.info("Expected buffer:" + UnitTestCase.dumbBytesHex(body, 40));
- PagingTest.log.info("Arriving buffer:" + UnitTestCase.dumbBytesHex(message2.getBodyBuffer()
- .toByteBuffer()
- .array(), 40));
- throw e;
- }
+ try
+ {
+ assertBodiesEqual(body, message2.getBodyBuffer());
+ }
+ catch (AssertionFailedError e)
+ {
+ PagingTest.log.info("Expected buffer:" + UnitTestCase.dumbBytesHex(body, 40));
+ PagingTest.log.info("Arriving buffer:" + UnitTestCase.dumbBytesHex(message2.getBodyBuffer()
+ .toByteBuffer()
+ .array(), 40));
+ throw e;
}
+ }
- consumer.close();
+ consumer.close();
- session.close();
+ session.close();
}
private void assertBodiesEqual(final byte[] body, final HornetQBuffer buffer)
@@ -1938,7 +1942,6 @@ private void assertBodiesEqual(final byte[] body, final HornetQBuffer buffer)
* - Consume the entire destination (not in page mode any more)
* - Add stuff to a transaction again
* - Check order
- *
*/
public void testDepageDuringTransaction() throws Exception
{
@@ -1947,111 +1950,111 @@ public void testDepageDuringTransaction() throws Exception
Configuration config = createDefaultConfig();
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
- locator = createInVMNonHALocator();
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator = createInVMNonHALocator();
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(null, null, false, true, true, false, 0);
+ ClientSession session = sf.createSession(null, null, false, true, true, false, 0);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- byte[] body = new byte[MESSAGE_SIZE];
- // HornetQBuffer bodyLocal = HornetQChannelBuffers.buffer(DataConstants.SIZE_INT * numberOfIntegers);
+ byte[] body = new byte[MESSAGE_SIZE];
+ // HornetQBuffer bodyLocal = HornetQChannelBuffers.buffer(DataConstants.SIZE_INT * numberOfIntegers);
- ClientMessage message = null;
+ ClientMessage message = null;
- int numberOfMessages = 0;
- while (true)
+ int numberOfMessages = 0;
+ while (true)
+ {
+ message = session.createMessage(true);
+ message.getBodyBuffer().writeBytes(body);
+
+ // Stop sending message as soon as we start paging
+ if (server.getPostOffice().getPagingManager().getPageStore(PagingTest.ADDRESS).isPaging())
{
- message = session.createMessage(true);
- message.getBodyBuffer().writeBytes(body);
+ break;
+ }
+ numberOfMessages++;
- // Stop sending message as soon as we start paging
- if (server.getPostOffice().getPagingManager().getPageStore(PagingTest.ADDRESS).isPaging())
- {
- break;
- }
- numberOfMessages++;
+ producer.send(message);
+ }
- producer.send(message);
- }
+ Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PagingTest.ADDRESS).isPaging());
- Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PagingTest.ADDRESS).isPaging());
+ session.start();
- session.start();
+ ClientSession sessionTransacted = sf.createSession(null, null, false, false, false, false, 0);
- ClientSession sessionTransacted = sf.createSession(null, null, false, false, false, false, 0);
+ ClientProducer producerTransacted = sessionTransacted.createProducer(PagingTest.ADDRESS);
- ClientProducer producerTransacted = sessionTransacted.createProducer(PagingTest.ADDRESS);
+ for (int i = 0; i < 10; i++)
+ {
+ message = session.createMessage(true);
+ message.getBodyBuffer().writeBytes(body);
+ message.putIntProperty(new SimpleString("id"), i);
- for (int i = 0; i < 10; i++)
+ // Consume messages to force an eventual out of order delivery
+ if (i == 5)
{
- message = session.createMessage(true);
- message.getBodyBuffer().writeBytes(body);
- message.putIntProperty(new SimpleString("id"), i);
-
- // Consume messages to force an eventual out of order delivery
- if (i == 5)
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
+ for (int j = 0; j < numberOfMessages; j++)
{
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
- for (int j = 0; j < numberOfMessages; j++)
- {
- ClientMessage msg = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
- msg.acknowledge();
- Assert.assertNotNull(msg);
- }
-
- Assert.assertNull(consumer.receiveImmediate());
- consumer.close();
+ ClientMessage msg = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
+ msg.acknowledge();
+ Assert.assertNotNull(msg);
}
- Integer messageID = (Integer)message.getObjectProperty(new SimpleString("id"));
- Assert.assertNotNull(messageID);
- Assert.assertEquals(messageID.intValue(), i);
-
- producerTransacted.send(message);
+ Assert.assertNull(consumer.receiveImmediate());
+ consumer.close();
}
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
+ Integer messageID = (Integer) message.getObjectProperty(new SimpleString("id"));
+ Assert.assertNotNull(messageID);
+ Assert.assertEquals(messageID.intValue(), i);
- Assert.assertNull(consumer.receiveImmediate());
+ producerTransacted.send(message);
+ }
- sessionTransacted.commit();
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
- sessionTransacted.close();
+ Assert.assertNull(consumer.receiveImmediate());
- for (int i = 0; i < 10; i++)
- {
- message = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
+ sessionTransacted.commit();
- Assert.assertNotNull(message);
+ sessionTransacted.close();
- Integer messageID = (Integer)message.getObjectProperty(new SimpleString("id"));
+ for (int i = 0; i < 10; i++)
+ {
+ message = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
- Assert.assertNotNull(messageID);
- Assert.assertEquals("message received out of order", messageID.intValue(), i);
+ Assert.assertNotNull(message);
- message.acknowledge();
- }
+ Integer messageID = (Integer) message.getObjectProperty(new SimpleString("id"));
+
+ Assert.assertNotNull(messageID);
+ Assert.assertEquals("message received out of order", messageID.intValue(), i);
- Assert.assertNull(consumer.receiveImmediate());
+ message.acknowledge();
+ }
- consumer.close();
+ Assert.assertNull(consumer.receiveImmediate());
- session.close();
+ consumer.close();
+
+ session.close();
}
/**
@@ -2060,9 +2063,8 @@ public void testDepageDuringTransaction() throws Exception
* - Consume the entire destination (not in page mode any more)
* - Add stuff to a transaction again
* - Check order
- *
- * Test under discussion at : http://community.jboss.org/thread/154061?tstart=0
- *
+ *
+ * Test under discussion at : http://community.jboss.org/thread/154061?tstart=0
*/
public void testDepageDuringTransaction2() throws Exception
{
@@ -2072,123 +2074,123 @@ public void testDepageDuringTransaction2() throws Exception
Configuration config = createDefaultConfig();
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
locator = createInVMNonHALocator();
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- byte[] body = new byte[MESSAGE_SIZE];
+ byte[] body = new byte[MESSAGE_SIZE];
- ClientSession sessionTransacted = sf.createSession(null, null, false, false, false, false, 0);
- ClientProducer producerTransacted = sessionTransacted.createProducer(PagingTest.ADDRESS);
+ ClientSession sessionTransacted = sf.createSession(null, null, false, false, false, false, 0);
+ ClientProducer producerTransacted = sessionTransacted.createProducer(PagingTest.ADDRESS);
- ClientSession session = sf.createSession(null, null, false, true, true, false, 0);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ ClientSession session = sf.createSession(null, null, false, true, true, false, 0);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- ClientMessage firstMessage = sessionTransacted.createMessage(IS_DURABLE_MESSAGE);
- firstMessage.getBodyBuffer().writeBytes(body);
- firstMessage.putIntProperty(new SimpleString("id"), 0);
+ ClientMessage firstMessage = sessionTransacted.createMessage(IS_DURABLE_MESSAGE);
+ firstMessage.getBodyBuffer().writeBytes(body);
+ firstMessage.putIntProperty(new SimpleString("id"), 0);
- producerTransacted.send(firstMessage);
+ producerTransacted.send(firstMessage);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- ClientMessage message = null;
+ ClientMessage message = null;
- int numberOfMessages = 0;
- while (true)
+ int numberOfMessages = 0;
+ while (true)
+ {
+ message = session.createMessage(IS_DURABLE_MESSAGE);
+ message.getBodyBuffer().writeBytes(body);
+ message.putIntProperty("id", numberOfMessages);
+ message.putBooleanProperty("new", false);
+
+ // Stop sending message as soon as we start paging
+ if (server.getPostOffice().getPagingManager().getPageStore(PagingTest.ADDRESS).isPaging())
{
- message = session.createMessage(IS_DURABLE_MESSAGE);
- message.getBodyBuffer().writeBytes(body);
- message.putIntProperty("id", numberOfMessages);
- message.putBooleanProperty("new", false);
+ break;
+ }
+ numberOfMessages++;
- // Stop sending message as soon as we start paging
- if (server.getPostOffice().getPagingManager().getPageStore(PagingTest.ADDRESS).isPaging())
- {
- break;
- }
- numberOfMessages++;
+ producer.send(message);
+ }
- producer.send(message);
- }
+ Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PagingTest.ADDRESS).isPaging());
- Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PagingTest.ADDRESS).isPaging());
+ session.start();
- session.start();
+ for (int i = 1; i < 10; i++)
+ {
+ message = session.createMessage(true);
+ message.getBodyBuffer().writeBytes(body);
+ message.putIntProperty(new SimpleString("id"), i);
- for (int i = 1; i < 10; i++)
+ // Consume messages to force an eventual out of order delivery
+ if (i == 5)
{
- message = session.createMessage(true);
- message.getBodyBuffer().writeBytes(body);
- message.putIntProperty(new SimpleString("id"), i);
-
- // Consume messages to force an eventual out of order delivery
- if (i == 5)
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
+ for (int j = 0; j < numberOfMessages; j++)
{
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
- for (int j = 0; j < numberOfMessages; j++)
- {
- ClientMessage msg = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
- msg.acknowledge();
- assertEquals(j, msg.getIntProperty("id").intValue());
- assertFalse(msg.getBooleanProperty("new"));
- Assert.assertNotNull(msg);
- }
-
- ClientMessage msgReceived = consumer.receiveImmediate();
-
- Assert.assertNull(msgReceived);
- consumer.close();
+ ClientMessage msg = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
+ msg.acknowledge();
+ assertEquals(j, msg.getIntProperty("id").intValue());
+ assertFalse(msg.getBooleanProperty("new"));
+ Assert.assertNotNull(msg);
}
- Integer messageID = (Integer)message.getObjectProperty(new SimpleString("id"));
- Assert.assertNotNull(messageID);
- Assert.assertEquals(messageID.intValue(), i);
+ ClientMessage msgReceived = consumer.receiveImmediate();
- producerTransacted.send(message);
+ Assert.assertNull(msgReceived);
+ consumer.close();
}
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
+ Integer messageID = (Integer) message.getObjectProperty(new SimpleString("id"));
+ Assert.assertNotNull(messageID);
+ Assert.assertEquals(messageID.intValue(), i);
- Assert.assertNull(consumer.receiveImmediate());
+ producerTransacted.send(message);
+ }
- sessionTransacted.commit();
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
- sessionTransacted.close();
+ Assert.assertNull(consumer.receiveImmediate());
- for (int i = 0; i < 10; i++)
- {
- message = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
+ sessionTransacted.commit();
- Assert.assertNotNull(message);
+ sessionTransacted.close();
- Integer messageID = (Integer)message.getObjectProperty(new SimpleString("id"));
+ for (int i = 0; i < 10; i++)
+ {
+ message = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
- // System.out.println(messageID);
- Assert.assertNotNull(messageID);
- Assert.assertEquals("message received out of order", i, messageID.intValue());
+ Assert.assertNotNull(message);
- message.acknowledge();
- }
+ Integer messageID = (Integer) message.getObjectProperty(new SimpleString("id"));
- Assert.assertNull(consumer.receiveImmediate());
+ // System.out.println(messageID);
+ Assert.assertNotNull(messageID);
+ Assert.assertEquals("message received out of order", i, messageID.intValue());
- consumer.close();
+ message.acknowledge();
+ }
- session.close();
+ Assert.assertNull(consumer.receiveImmediate());
- }
+ consumer.close();
+
+ session.close();
+
+ }
public void testDepageDuringTransaction3() throws Exception
{
@@ -2197,103 +2199,103 @@ public void testDepageDuringTransaction3() throws Exception
Configuration config = createDefaultConfig();
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
locator = createInVMNonHALocator();
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- byte[] body = new byte[MESSAGE_SIZE];
+ byte[] body = new byte[MESSAGE_SIZE];
- ClientSession sessionTransacted = sf.createSession(null, null, false, false, false, false, 0);
- ClientProducer producerTransacted = sessionTransacted.createProducer(PagingTest.ADDRESS);
+ ClientSession sessionTransacted = sf.createSession(null, null, false, false, false, false, 0);
+ ClientProducer producerTransacted = sessionTransacted.createProducer(PagingTest.ADDRESS);
- ClientSession sessionNonTX = sf.createSession(true, true, 0);
- sessionNonTX.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ ClientSession sessionNonTX = sf.createSession(true, true, 0);
+ sessionNonTX.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- ClientProducer producerNonTransacted = sessionNonTX.createProducer(PagingTest.ADDRESS);
+ ClientProducer producerNonTransacted = sessionNonTX.createProducer(PagingTest.ADDRESS);
- sessionNonTX.start();
+ sessionNonTX.start();
- for (int i = 0; i < 50; i++)
- {
- ClientMessage message = sessionNonTX.createMessage(true);
- message.getBodyBuffer().writeBytes(body);
- message.putIntProperty(new SimpleString("id"), i);
- message.putStringProperty(new SimpleString("tst"), new SimpleString("i=" + i));
+ for (int i = 0; i < 50; i++)
+ {
+ ClientMessage message = sessionNonTX.createMessage(true);
+ message.getBodyBuffer().writeBytes(body);
+ message.putIntProperty(new SimpleString("id"), i);
+ message.putStringProperty(new SimpleString("tst"), new SimpleString("i=" + i));
- producerTransacted.send(message);
+ producerTransacted.send(message);
- if (i % 2 == 0)
+ if (i % 2 == 0)
+ {
+ for (int j = 0; j < 20; j++)
{
- for (int j = 0; j < 20; j++)
- {
- ClientMessage msgSend = sessionNonTX.createMessage(true);
- msgSend.putStringProperty(new SimpleString("tst"), new SimpleString("i=" + i + ", j=" + j));
- msgSend.getBodyBuffer().writeBytes(new byte[10 * 1024]);
- producerNonTransacted.send(msgSend);
- }
- assertTrue(server.getPostOffice().getPagingManager().getPageStore(PagingTest.ADDRESS).isPaging());
+ ClientMessage msgSend = sessionNonTX.createMessage(true);
+ msgSend.putStringProperty(new SimpleString("tst"), new SimpleString("i=" + i + ", j=" + j));
+ msgSend.getBodyBuffer().writeBytes(new byte[10 * 1024]);
+ producerNonTransacted.send(msgSend);
}
- else
+ assertTrue(server.getPostOffice().getPagingManager().getPageStore(PagingTest.ADDRESS).isPaging());
+ }
+ else
+ {
+ ClientConsumer consumer = sessionNonTX.createConsumer(PagingTest.ADDRESS);
+ for (int j = 0; j < 20; j++)
{
- ClientConsumer consumer = sessionNonTX.createConsumer(PagingTest.ADDRESS);
- for (int j = 0; j < 20; j++)
- {
- ClientMessage msgReceived = consumer.receive(10000);
- assertNotNull(msgReceived);
- msgReceived.acknowledge();
- }
- consumer.close();
+ ClientMessage msgReceived = consumer.receive(10000);
+ assertNotNull(msgReceived);
+ msgReceived.acknowledge();
}
+ consumer.close();
}
+ }
- ClientConsumer consumerNonTX = sessionNonTX.createConsumer(PagingTest.ADDRESS);
- while (true)
+ ClientConsumer consumerNonTX = sessionNonTX.createConsumer(PagingTest.ADDRESS);
+ while (true)
+ {
+ ClientMessage msgReceived = consumerNonTX.receive(1000);
+ if (msgReceived == null)
{
- ClientMessage msgReceived = consumerNonTX.receive(1000);
- if (msgReceived == null)
- {
- break;
- }
- msgReceived.acknowledge();
+ break;
}
- consumerNonTX.close();
+ msgReceived.acknowledge();
+ }
+ consumerNonTX.close();
- ClientConsumer consumer = sessionNonTX.createConsumer(PagingTest.ADDRESS);
+ ClientConsumer consumer = sessionNonTX.createConsumer(PagingTest.ADDRESS);
- Assert.assertNull(consumer.receiveImmediate());
+ Assert.assertNull(consumer.receiveImmediate());
- sessionTransacted.commit();
+ sessionTransacted.commit();
- sessionTransacted.close();
+ sessionTransacted.close();
- for (int i = 0; i < 50; i++)
- {
- ClientMessage message = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
+ for (int i = 0; i < 50; i++)
+ {
+ ClientMessage message = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
- Assert.assertNotNull(message);
+ Assert.assertNotNull(message);
- Integer messageID = (Integer)message.getObjectProperty(new SimpleString("id"));
+ Integer messageID = (Integer) message.getObjectProperty(new SimpleString("id"));
- Assert.assertNotNull(messageID);
- Assert.assertEquals("message received out of order", i, messageID.intValue());
+ Assert.assertNotNull(messageID);
+ Assert.assertEquals("message received out of order", i, messageID.intValue());
- message.acknowledge();
- }
+ message.acknowledge();
+ }
- Assert.assertNull(consumer.receiveImmediate());
+ Assert.assertNull(consumer.receiveImmediate());
- consumer.close();
+ consumer.close();
sessionNonTX.close();
}
@@ -2305,11 +2307,11 @@ public void testDepageDuringTransaction4() throws Exception
Configuration config = createDefaultConfig();
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.getConfiguration().setJournalSyncNonTransactional(false);
server.getConfiguration().setJournalSyncTransactional(false);
@@ -2327,89 +2329,89 @@ public void testDepageDuringTransaction4() throws Exception
locator.setBlockOnAcknowledge(false);
sf = createSessionFactory(locator);
- final byte[] body = new byte[MESSAGE_SIZE];
+ final byte[] body = new byte[MESSAGE_SIZE];
- Thread producerThread = new Thread()
+ Thread producerThread = new Thread()
+ {
+ @Override
+ public void run()
{
- @Override
- public void run()
+ ClientSession sessionProducer = null;
+ try
{
- ClientSession sessionProducer = null;
- try
+ sessionProducer = sf.createSession(false, false);
+ ClientProducer producer = sessionProducer.createProducer(ADDRESS);
+
+ for (int i = 0; i < numberOfMessages; i++)
{
- sessionProducer = sf.createSession(false, false);
- ClientProducer producer = sessionProducer.createProducer(ADDRESS);
+ ClientMessage msg = sessionProducer.createMessage(true);
+ msg.getBodyBuffer().writeBytes(body);
+ msg.putIntProperty("count", i);
+ producer.send(msg);
- for (int i = 0; i < numberOfMessages; i++)
+ if (i % 100 == 0 && i != 0)
{
- ClientMessage msg = sessionProducer.createMessage(true);
- msg.getBodyBuffer().writeBytes(body);
- msg.putIntProperty("count", i);
- producer.send(msg);
-
- if (i % 100 == 0 && i != 0)
- {
- sessionProducer.commit();
- // Thread.sleep(500);
- }
+ sessionProducer.commit();
+ // Thread.sleep(500);
}
+ }
- sessionProducer.commit();
+ sessionProducer.commit();
+ }
+ catch (Throwable e)
+ {
+ e.printStackTrace(); // >> junit report
+ errors.incrementAndGet();
+ }
+ finally
+ {
+ try
+ {
+ if (sessionProducer != null)
+ {
+ sessionProducer.close();
+ }
}
catch (Throwable e)
{
- e.printStackTrace(); // >> junit report
+ e.printStackTrace();
errors.incrementAndGet();
}
- finally
- {
- try
- {
- if (sessionProducer != null)
- {
- sessionProducer.close();
- }
- }
- catch (Throwable e)
- {
- e.printStackTrace();
- errors.incrementAndGet();
- }
- }
}
- };
+ }
+ };
- ClientSession session = sf.createSession(true, true, 0);
- session.start();
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ ClientSession session = sf.createSession(true, true, 0);
+ session.start();
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- producerThread.start();
+ producerThread.start();
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
- for (int i = 0; i < numberOfMessages; i++)
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ ClientMessage msg = consumer.receive(5000);
+ assertNotNull(msg);
+ assertEquals(i, msg.getIntProperty("count").intValue());
+ msg.acknowledge();
+ if (i > 0 && i % 10 == 0)
{
- ClientMessage msg = consumer.receive(5000);
- assertNotNull(msg);
- assertEquals(i, msg.getIntProperty("count").intValue());
- msg.acknowledge();
- if (i > 0 && i % 10 == 0)
- {
- session.commit();
- }
+ session.commit();
}
- session.commit();
+ }
+ session.commit();
- session.close();
+ session.close();
- producerThread.join();
+ producerThread.join();
- locator.close();
+ locator.close();
- sf.close();
+ sf.close();
- assertEquals(0, errors.get());
+ assertEquals(0, errors.get());
}
public void testOrderingNonTX() throws Exception
@@ -2419,11 +2421,11 @@ public void testOrderingNonTX() throws Exception
Configuration config = createDefaultConfig();
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_SIZE * 2,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_SIZE * 2,
+ new HashMap());
server.getConfiguration().setJournalSyncNonTransactional(false);
server.getConfiguration().setJournalSyncTransactional(false);
@@ -2434,100 +2436,100 @@ public void testOrderingNonTX() throws Exception
final int numberOfMessages = 2000;
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
+ sf = createSessionFactory(locator);
- final CountDownLatch ready = new CountDownLatch(1);
+ final CountDownLatch ready = new CountDownLatch(1);
- final byte[] body = new byte[MESSAGE_SIZE];
+ final byte[] body = new byte[MESSAGE_SIZE];
- Thread producerThread = new Thread()
+ Thread producerThread = new Thread()
+ {
+ @Override
+ public void run()
{
- @Override
- public void run()
+ ClientSession sessionProducer = null;
+ try
{
- ClientSession sessionProducer = null;
- try
+ sessionProducer = sf.createSession(true, true);
+ ClientProducer producer = sessionProducer.createProducer(ADDRESS);
+
+ for (int i = 0; i < numberOfMessages; i++)
{
- sessionProducer = sf.createSession(true, true);
- ClientProducer producer = sessionProducer.createProducer(ADDRESS);
+ ClientMessage msg = sessionProducer.createMessage(true);
+ msg.getBodyBuffer().writeBytes(body);
+ msg.putIntProperty("count", i);
+ producer.send(msg);
- for (int i = 0; i < numberOfMessages; i++)
+ if (i == 1000)
{
- ClientMessage msg = sessionProducer.createMessage(true);
- msg.getBodyBuffer().writeBytes(body);
- msg.putIntProperty("count", i);
- producer.send(msg);
+ // The session is not TX, but we do this just to perform a round trip to the server
+ // and make sure there are no pending messages
+ sessionProducer.commit();
- if (i == 1000)
- {
- // The session is not TX, but we do this just to perform a round trip to the server
- // and make sure there are no pending messages
- sessionProducer.commit();
-
- assertTrue(server.getPagingManager().getPageStore(ADDRESS).isPaging());
- ready.countDown();
- }
+ assertTrue(server.getPagingManager().getPageStore(ADDRESS).isPaging());
+ ready.countDown();
}
+ }
- sessionProducer.commit();
+ sessionProducer.commit();
- log.info("Producer gone");
+ log.info("Producer gone");
+ }
+ catch (Throwable e)
+ {
+ e.printStackTrace(); // >> junit report
+ errors.incrementAndGet();
+ }
+ finally
+ {
+ try
+ {
+ if (sessionProducer != null)
+ {
+ sessionProducer.close();
+ }
}
catch (Throwable e)
{
- e.printStackTrace(); // >> junit report
+ e.printStackTrace();
errors.incrementAndGet();
}
- finally
- {
- try
- {
- if (sessionProducer != null)
- {
- sessionProducer.close();
- }
- }
- catch (Throwable e)
- {
- e.printStackTrace();
- errors.incrementAndGet();
- }
- }
}
- };
+ }
+ };
- ClientSession session = sf.createSession(true, true, 0);
- session.start();
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ ClientSession session = sf.createSession(true, true, 0);
+ session.start();
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- producerThread.start();
+ producerThread.start();
- assertTrue(ready.await(100, TimeUnit.SECONDS));
+ assertTrue(ready.await(100, TimeUnit.SECONDS));
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
- for (int i = 0; i < numberOfMessages; i++)
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ ClientMessage msg = consumer.receive(5000);
+ assertNotNull(msg);
+ log.info("Received " + i + " with property = " + msg.getIntProperty("count"));
+ if (i != msg.getIntProperty("count").intValue())
{
- ClientMessage msg = consumer.receive(5000);
- assertNotNull(msg);
- log.info("Received " + i + " with property = " + msg.getIntProperty("count"));
- if (i != msg.getIntProperty("count").intValue())
- {
- log.info("###### different");
- }
- // assertEquals(i, msg.getIntProperty("count").intValue());
- msg.acknowledge();
+ log.info("###### different");
}
+ // assertEquals(i, msg.getIntProperty("count").intValue());
+ msg.acknowledge();
+ }
- session.close();
+ session.close();
- producerThread.join();
+ producerThread.join();
- assertEquals(0, errors.get());
+ assertEquals(0, errors.get());
}
public void testPageOnSchedulingNoRestart() throws Exception
@@ -2549,11 +2551,11 @@ public void internalTestPageOnScheduling(final boolean restart) throws Exception
config.setJournalSyncNonTransactional(false);
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
@@ -2562,103 +2564,103 @@ public void internalTestPageOnScheduling(final boolean restart) throws Exception
final int numberOfBytes = 1024;
locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
-
- sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(null, null, false, true, true, false, 0);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ sf = createSessionFactory(locator);
+ ClientSession session = sf.createSession(null, null, false, true, true, false, 0);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- ClientMessage message = null;
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- byte[] body = new byte[numberOfBytes];
+ ClientMessage message = null;
- for (int j = 0; j < numberOfBytes; j++)
- {
- body[j] = UnitTestCase.getSamplebyte(j);
- }
+ byte[] body = new byte[numberOfBytes];
- long scheduledTime = System.currentTimeMillis() + 5000;
+ for (int j = 0; j < numberOfBytes; j++)
+ {
+ body[j] = UnitTestCase.getSamplebyte(j);
+ }
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = session.createMessage(true);
+ long scheduledTime = System.currentTimeMillis() + 5000;
- message.getBodyBuffer().writeBytes(body);
- message.putIntProperty(new SimpleString("id"), i);
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = session.createMessage(true);
- PagingStore store = server.getPostOffice()
- .getPagingManager()
- .getPageStore(PagingTest.ADDRESS);
+ message.getBodyBuffer().writeBytes(body);
+ message.putIntProperty(new SimpleString("id"), i);
- // Worse scenario possible... only schedule what's on pages
- if (store.getCurrentPage() != null)
- {
- message.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, scheduledTime);
- }
+ PagingStore store = server.getPostOffice()
+ .getPagingManager()
+ .getPageStore(PagingTest.ADDRESS);
- producer.send(message);
+ // Worse scenario possible... only schedule what's on pages
+ if (store.getCurrentPage() != null)
+ {
+ message.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, scheduledTime);
}
- if (restart)
- {
- session.close();
+ producer.send(message);
+ }
- server.stop();
+ if (restart)
+ {
+ session.close();
- server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
- server.start();
+ server.stop();
- sf = createSessionFactory(locator);
+ server = createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
+ server.start();
- session = sf.createSession(null, null, false, true, true, false, 0);
- }
+ sf = createSessionFactory(locator);
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
+ session = sf.createSession(null, null, false, true, true, false, 0);
+ }
- session.start();
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
- for (int i = 0; i < numberOfMessages; i++)
- {
+ session.start();
- ClientMessage message2 = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
+ for (int i = 0; i < numberOfMessages; i++)
+ {
- Assert.assertNotNull(message2);
+ ClientMessage message2 = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
- message2.acknowledge();
+ Assert.assertNotNull(message2);
- Assert.assertNotNull(message2);
+ message2.acknowledge();
- Long scheduled = (Long)message2.getObjectProperty(Message.HDR_SCHEDULED_DELIVERY_TIME);
- if (scheduled != null)
- {
- Assert.assertTrue("Scheduling didn't work", System.currentTimeMillis() >= scheduledTime);
- }
+ Assert.assertNotNull(message2);
- try
- {
- assertBodiesEqual(body, message2.getBodyBuffer());
- }
- catch (AssertionFailedError e)
- {
- PagingTest.log.info("Expected buffer:" + UnitTestCase.dumbBytesHex(body, 40));
- PagingTest.log.info("Arriving buffer:" + UnitTestCase.dumbBytesHex(message2.getBodyBuffer()
- .toByteBuffer()
- .array(), 40));
- throw e;
- }
+ Long scheduled = (Long) message2.getObjectProperty(Message.HDR_SCHEDULED_DELIVERY_TIME);
+ if (scheduled != null)
+ {
+ Assert.assertTrue("Scheduling didn't work", System.currentTimeMillis() >= scheduledTime);
+ }
+
+ try
+ {
+ assertBodiesEqual(body, message2.getBodyBuffer());
+ }
+ catch (AssertionFailedError e)
+ {
+ PagingTest.log.info("Expected buffer:" + UnitTestCase.dumbBytesHex(body, 40));
+ PagingTest.log.info("Arriving buffer:" + UnitTestCase.dumbBytesHex(message2.getBodyBuffer()
+ .toByteBuffer()
+ .array(), 40));
+ throw e;
}
+ }
- consumer.close();
+ consumer.close();
- session.close();
+ session.close();
}
public void testRollbackOnSend() throws Exception
@@ -2668,11 +2670,11 @@ public void testRollbackOnSend() throws Exception
Configuration config = createDefaultConfig();
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
@@ -2680,44 +2682,44 @@ public void testRollbackOnSend() throws Exception
final int numberOfMessages = 10;
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(null, null, false, false, true, false, 0);
+ sf = createSessionFactory(locator);
+ ClientSession session = sf.createSession(null, null, false, false, true, false, 0);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- ClientMessage message = null;
+ ClientMessage message = null;
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = session.createMessage(true);
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = session.createMessage(true);
- HornetQBuffer bodyLocal = message.getBodyBuffer();
+ HornetQBuffer bodyLocal = message.getBodyBuffer();
- for (int j = 1; j <= numberOfIntegers; j++)
- {
- bodyLocal.writeInt(j);
- }
+ for (int j = 1; j <= numberOfIntegers; j++)
+ {
+ bodyLocal.writeInt(j);
+ }
- message.putIntProperty(new SimpleString("id"), i);
+ message.putIntProperty(new SimpleString("id"), i);
- producer.send(message);
- }
+ producer.send(message);
+ }
- session.rollback();
+ session.rollback();
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
- session.start();
+ session.start();
- Assert.assertNull(consumer.receiveImmediate());
+ Assert.assertNull(consumer.receiveImmediate());
- session.close();
+ session.close();
}
public void testCommitOnSend() throws Exception
@@ -2727,11 +2729,11 @@ public void testCommitOnSend() throws Exception
Configuration config = createDefaultConfig();
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
@@ -2739,73 +2741,73 @@ public void testCommitOnSend() throws Exception
final int numberOfMessages = 500;
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(null, null, false, false, false, false, 0);
+ sf = createSessionFactory(locator);
+ ClientSession session = sf.createSession(null, null, false, false, false, false, 0);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- ClientMessage message = null;
+ ClientMessage message = null;
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = session.createMessage(true);
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = session.createMessage(true);
- HornetQBuffer bodyLocal = message.getBodyBuffer();
+ HornetQBuffer bodyLocal = message.getBodyBuffer();
- for (int j = 1; j <= numberOfIntegers; j++)
- {
- bodyLocal.writeInt(j);
- }
+ for (int j = 1; j <= numberOfIntegers; j++)
+ {
+ bodyLocal.writeInt(j);
+ }
- message.putIntProperty(new SimpleString("id"), i);
+ message.putIntProperty(new SimpleString("id"), i);
- producer.send(message);
- }
+ producer.send(message);
+ }
- session.commit();
+ session.commit();
- session.close();
+ session.close();
- locator.close();
+ locator.close();
- locator = createInVMNonHALocator();
+ locator = createInVMNonHALocator();
- server.stop();
+ server.stop();
- server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ server = createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
- server.start();
+ server.start();
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- session = sf.createSession(null, null, false, false, false, false, 0);
+ session = sf.createSession(null, null, false, false, false, false, 0);
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
- session.start();
- for (int i = 0; i < numberOfMessages; i++)
+ session.start();
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ if (i == 55)
{
- if (i == 55)
- {
- System.out.println("i = 55");
- }
- ClientMessage msg = consumer.receive(5000);
- Assert.assertNotNull(msg);
- msg.acknowledge();
- session.commit();
+ System.out.println("i = 55");
}
+ ClientMessage msg = consumer.receive(5000);
+ Assert.assertNotNull(msg);
+ msg.acknowledge();
+ session.commit();
+ }
- session.close();
+ session.close();
}
public void testParialConsume() throws Exception
@@ -2815,112 +2817,112 @@ public void testParialConsume() throws Exception
Configuration config = createDefaultConfig();
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
final int numberOfMessages = 1000;
locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
-
- sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(null, null, false, false, false, false, 0);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ sf = createSessionFactory(locator);
+ ClientSession session = sf.createSession(null, null, false, false, false, false, 0);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- ClientMessage message = null;
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = session.createMessage(true);
+ ClientMessage message = null;
- HornetQBuffer bodyLocal = message.getBodyBuffer();
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = session.createMessage(true);
- bodyLocal.writeBytes(new byte[1024]);
+ HornetQBuffer bodyLocal = message.getBodyBuffer();
- message.putIntProperty(new SimpleString("id"), i);
+ bodyLocal.writeBytes(new byte[1024]);
- producer.send(message);
- }
+ message.putIntProperty(new SimpleString("id"), i);
- session.commit();
+ producer.send(message);
+ }
- session.close();
+ session.commit();
- locator.close();
+ session.close();
- server.stop();
+ locator.close();
- server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ server.stop();
- server.start();
+ server = createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
- locator = createInVMNonHALocator();
+ server.start();
- sf = createSessionFactory(locator);
+ locator = createInVMNonHALocator();
- session = sf.createSession(null, null, false, false, false, false, 0);
+ sf = createSessionFactory(locator);
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
+ session = sf.createSession(null, null, false, false, false, false, 0);
- session.start();
- // 347 = I just picked any odd number, not rounded, to make sure it's not at the beggining of any page
- for (int i = 0; i < 347; i++)
- {
- ClientMessage msg = consumer.receive(5000);
- assertEquals(i, msg.getIntProperty("id").intValue());
- Assert.assertNotNull(msg);
- msg.acknowledge();
- session.commit();
- }
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
- session.close();
+ session.start();
+ // 347 = I just picked any odd number, not rounded, to make sure it's not at the beggining of any page
+ for (int i = 0; i < 347; i++)
+ {
+ ClientMessage msg = consumer.receive(5000);
+ assertEquals(i, msg.getIntProperty("id").intValue());
+ Assert.assertNotNull(msg);
+ msg.acknowledge();
+ session.commit();
+ }
- locator.close();
+ session.close();
- server.stop();
+ locator.close();
- server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ server.stop();
- server.start();
+ server = createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
- locator = createInVMNonHALocator();
+ server.start();
- sf = createSessionFactory(locator);
+ locator = createInVMNonHALocator();
- session = sf.createSession(null, null, false, false, false, false, 0);
+ sf = createSessionFactory(locator);
- consumer = session.createConsumer(PagingTest.ADDRESS);
+ session = sf.createSession(null, null, false, false, false, false, 0);
- session.start();
- for (int i = 347; i < numberOfMessages; i++)
- {
- ClientMessage msg = consumer.receive(5000);
- assertEquals(i, msg.getIntProperty("id").intValue());
- Assert.assertNotNull(msg);
- msg.acknowledge();
- session.commit();
- }
+ consumer = session.createConsumer(PagingTest.ADDRESS);
- session.close();
+ session.start();
+ for (int i = 347; i < numberOfMessages; i++)
+ {
+ ClientMessage msg = consumer.receive(5000);
+ assertEquals(i, msg.getIntProperty("id").intValue());
+ Assert.assertNotNull(msg);
+ msg.acknowledge();
+ session.commit();
}
+ session.close();
+ }
+
public void testPageMultipleDestinations() throws Exception
{
internalTestPageMultipleDestinations(false);
@@ -2951,110 +2953,110 @@ public void testDropMessages() throws Exception
final int numberOfMessages = 1000;
locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(null, null, false, true, true, false, 0);
+ sf = createSessionFactory(locator);
+ ClientSession session = sf.createSession(null, null, false, true, true, false, 0);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- ClientMessage message = null;
+ ClientMessage message = null;
- for (int i = 0; i < numberOfMessages; i++)
- {
- byte[] body = new byte[1024];
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ byte[] body = new byte[1024];
- message = session.createMessage(true);
- message.getBodyBuffer().writeBytes(body);
+ message = session.createMessage(true);
+ message.getBodyBuffer().writeBytes(body);
- producer.send(message);
- }
+ producer.send(message);
+ }
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
- session.start();
+ session.start();
- for (int i = 0; i < 6; i++)
- {
- ClientMessage message2 = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
+ for (int i = 0; i < 6; i++)
+ {
+ ClientMessage message2 = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
- Assert.assertNotNull(message2);
+ Assert.assertNotNull(message2);
- message2.acknowledge();
- }
+ message2.acknowledge();
+ }
- Assert.assertNull(consumer.receiveImmediate());
+ Assert.assertNull(consumer.receiveImmediate());
- Assert.assertEquals(0, server.getPostOffice()
- .getPagingManager()
- .getPageStore(PagingTest.ADDRESS)
- .getAddressSize());
+ Assert.assertEquals(0, server.getPostOffice()
+ .getPagingManager()
+ .getPageStore(PagingTest.ADDRESS)
+ .getAddressSize());
- for (int i = 0; i < numberOfMessages; i++)
- {
- byte[] body = new byte[1024];
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ byte[] body = new byte[1024];
- message = session.createMessage(true);
- message.getBodyBuffer().writeBytes(body);
+ message = session.createMessage(true);
+ message.getBodyBuffer().writeBytes(body);
- producer.send(message);
- }
+ producer.send(message);
+ }
- for (int i = 0; i < 6; i++)
- {
- ClientMessage message2 = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
+ for (int i = 0; i < 6; i++)
+ {
+ ClientMessage message2 = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
- Assert.assertNotNull(message2);
+ Assert.assertNotNull(message2);
- message2.acknowledge();
- }
+ message2.acknowledge();
+ }
- Assert.assertNull(consumer.receiveImmediate());
+ Assert.assertNull(consumer.receiveImmediate());
- session.close();
+ session.close();
- session = sf.createSession(false, true, true);
+ session = sf.createSession(false, true, true);
- producer = session.createProducer(PagingTest.ADDRESS);
+ producer = session.createProducer(PagingTest.ADDRESS);
- for (int i = 0; i < numberOfMessages; i++)
- {
- byte[] body = new byte[1024];
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ byte[] body = new byte[1024];
- message = session.createMessage(true);
- message.getBodyBuffer().writeBytes(body);
+ message = session.createMessage(true);
+ message.getBodyBuffer().writeBytes(body);
- producer.send(message);
- }
+ producer.send(message);
+ }
- session.commit();
+ session.commit();
- consumer = session.createConsumer(PagingTest.ADDRESS);
+ consumer = session.createConsumer(PagingTest.ADDRESS);
- session.start();
+ session.start();
- for (int i = 0; i < 6; i++)
- {
- ClientMessage message2 = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
+ for (int i = 0; i < 6; i++)
+ {
+ ClientMessage message2 = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
- Assert.assertNotNull(message2);
+ Assert.assertNotNull(message2);
- message2.acknowledge();
- }
+ message2.acknowledge();
+ }
- session.commit();
+ session.commit();
- Assert.assertNull(consumer.receiveImmediate());
+ Assert.assertNull(consumer.receiveImmediate());
- session.close();
+ session.close();
- Assert.assertEquals(0, server.getPostOffice()
- .getPagingManager()
- .getPageStore(PagingTest.ADDRESS)
- .getAddressSize());
+ Assert.assertEquals(0, server.getPostOffice()
+ .getPagingManager()
+ .getPageStore(PagingTest.ADDRESS)
+ .getAddressSize());
}
public void testDropMessagesExpiring() throws Exception
@@ -3076,69 +3078,69 @@ public void testDropMessagesExpiring() throws Exception
final int numberOfMessages = 30000;
- locator.setAckBatchSize(0);
+ locator.setAckBatchSize(0);
- sf = createSessionFactory(locator);
- ClientSession session = sf.createSession();
+ sf = createSessionFactory(locator);
+ ClientSession session = sf.createSession();
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- ClientMessage message = null;
+ ClientMessage message = null;
- class MyHandler implements MessageHandler
- {
- int count;
+ class MyHandler implements MessageHandler
+ {
+ int count;
- public void onMessage(ClientMessage message)
+ public void onMessage(ClientMessage message)
+ {
+ try
+ {
+ Thread.sleep(1);
+ }
+ catch (Exception e)
{
- try
- {
- Thread.sleep(1);
- }
- catch (Exception e)
- {
- }
+ }
- count++;
+ count++;
- if (count % 1000 == 0)
- {
- log.info("received " + count);
- }
+ if (count % 1000 == 0)
+ {
+ log.info("received " + count);
+ }
- try
- {
- message.acknowledge();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
+ try
+ {
+ message.acknowledge();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
}
}
+ }
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);
- session.start();
+ session.start();
- consumer.setMessageHandler(new MyHandler());
+ consumer.setMessageHandler(new MyHandler());
- for (int i = 0; i < numberOfMessages; i++)
- {
- byte[] body = new byte[1024];
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ byte[] body = new byte[1024];
- message = session.createMessage(false);
- message.getBodyBuffer().writeBytes(body);
+ message = session.createMessage(false);
+ message.getBodyBuffer().writeBytes(body);
- message.setExpiration(System.currentTimeMillis() + 100);
+ message.setExpiration(System.currentTimeMillis() + 100);
- producer.send(message);
- }
+ producer.send(message);
+ }
- session.close();
+ session.close();
}
private void internalTestPageMultipleDestinations(final boolean transacted) throws Exception
@@ -3150,90 +3152,90 @@ private void internalTestPageMultipleDestinations(final boolean transacted) thro
int NUMBER_OF_MESSAGES = 2;
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(null, null, false, !transacted, true, false, 0);
+ sf = createSessionFactory(locator);
+ ClientSession session = sf.createSession(null, null, false, !transacted, true, false, 0);
- for (int i = 0; i < NUMBER_OF_BINDINGS; i++)
- {
- session.createQueue(PagingTest.ADDRESS, new SimpleString("someQueue" + i), null, true);
- }
+ for (int i = 0; i < NUMBER_OF_BINDINGS; i++)
+ {
+ session.createQueue(PagingTest.ADDRESS, new SimpleString("someQueue" + i), null, true);
+ }
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- ClientMessage message = null;
+ ClientMessage message = null;
- byte[] body = new byte[1024];
+ byte[] body = new byte[1024];
- message = session.createMessage(true);
- message.getBodyBuffer().writeBytes(body);
+ message = session.createMessage(true);
+ message.getBodyBuffer().writeBytes(body);
- for (int i = 0; i < NUMBER_OF_MESSAGES; i++)
- {
- producer.send(message);
+ for (int i = 0; i < NUMBER_OF_MESSAGES; i++)
+ {
+ producer.send(message);
- if (transacted)
- {
- session.commit();
- }
+ if (transacted)
+ {
+ session.commit();
}
+ }
- session.close();
+ session.close();
- server.stop();
+ server.stop();
- server = createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
- server.start();
+ server = createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
+ server.start();
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- session = sf.createSession(null, null, false, true, true, false, 0);
+ session = sf.createSession(null, null, false, true, true, false, 0);
- session.start();
+ session.start();
- for (int msg = 0; msg < NUMBER_OF_MESSAGES; msg++)
- {
+ for (int msg = 0; msg < NUMBER_OF_MESSAGES; msg++)
+ {
- for (int i = 0; i < NUMBER_OF_BINDINGS; i++)
- {
- ClientConsumer consumer = session.createConsumer(new SimpleString("someQueue" + i));
+ for (int i = 0; i < NUMBER_OF_BINDINGS; i++)
+ {
+ ClientConsumer consumer = session.createConsumer(new SimpleString("someQueue" + i));
- ClientMessage message2 = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
+ ClientMessage message2 = consumer.receive(PagingTest.RECEIVE_TIMEOUT);
- Assert.assertNotNull(message2);
+ Assert.assertNotNull(message2);
- message2.acknowledge();
+ message2.acknowledge();
- Assert.assertNotNull(message2);
+ Assert.assertNotNull(message2);
- consumer.close();
+ consumer.close();
- }
}
+ }
- session.close();
+ session.close();
- for (int i = 0; i < NUMBER_OF_BINDINGS; i++)
- {
- Queue queue = (Queue)server.getPostOffice().getBinding(new SimpleString("someQueue" + i)).getBindable();
+ for (int i = 0; i < NUMBER_OF_BINDINGS; i++)
+ {
+ Queue queue = (Queue) server.getPostOffice().getBinding(new SimpleString("someQueue" + i)).getBindable();
- Assert.assertEquals("Queue someQueue" + i + " was supposed to be empty", 0, queue.getMessageCount());
- Assert.assertEquals("Queue someQueue" + i + " was supposed to be empty", 0, queue.getDeliveringCount());
- }
+ Assert.assertEquals("Queue someQueue" + i + " was supposed to be empty", 0, queue.getMessageCount());
+ Assert.assertEquals("Queue someQueue" + i + " was supposed to be empty", 0, queue.getDeliveringCount());
+ }
}
public void testSyncPage() throws Exception
@@ -3241,11 +3243,11 @@ public void testSyncPage() throws Exception
Configuration config = createDefaultConfig();
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
@@ -3293,31 +3295,31 @@ public void testSyncPageTX() throws Exception
Configuration config = createDefaultConfig();
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
server.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true, false);
- final CountDownLatch pageUp = new CountDownLatch(0);
- final CountDownLatch pageDone = new CountDownLatch(1);
+ final CountDownLatch pageUp = new CountDownLatch(0);
+ final CountDownLatch pageDone = new CountDownLatch(1);
OperationContext ctx = new DummyOperationContext(pageUp, pageDone);
- OperationContextImpl.setContext(ctx);
+ OperationContextImpl.setContext(ctx);
- PagingManager paging = server.getPagingManager();
+ PagingManager paging = server.getPagingManager();
- PagingStore store = paging.getPageStore(ADDRESS);
+ PagingStore store = paging.getPageStore(ADDRESS);
- store.sync();
+ store.sync();
- assertTrue(pageUp.await(10, TimeUnit.SECONDS));
+ assertTrue(pageUp.await(10, TimeUnit.SECONDS));
- assertTrue(pageDone.await(10, TimeUnit.SECONDS));
+ assertTrue(pageDone.await(10, TimeUnit.SECONDS));
}
public void testPagingOneDestinationOnly() throws Exception
@@ -3341,73 +3343,73 @@ public void testPagingOneDestinationOnly() throws Exception
server.start();
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(false, true, false);
+ ClientSession session = sf.createSession(false, true, false);
- session.createQueue(PAGED_ADDRESS, PAGED_ADDRESS, true);
+ session.createQueue(PAGED_ADDRESS, PAGED_ADDRESS, true);
- session.createQueue(NON_PAGED_ADDRESS, NON_PAGED_ADDRESS, true);
+ session.createQueue(NON_PAGED_ADDRESS, NON_PAGED_ADDRESS, true);
- ClientProducer producerPaged = session.createProducer(PAGED_ADDRESS);
- ClientProducer producerNonPaged = session.createProducer(NON_PAGED_ADDRESS);
+ ClientProducer producerPaged = session.createProducer(PAGED_ADDRESS);
+ ClientProducer producerNonPaged = session.createProducer(NON_PAGED_ADDRESS);
- int NUMBER_OF_MESSAGES = 100;
+ int NUMBER_OF_MESSAGES = 100;
- for (int i = 0; i < NUMBER_OF_MESSAGES; i++)
- {
- ClientMessage msg = session.createMessage(true);
- msg.getBodyBuffer().writeBytes(new byte[512]);
+ for (int i = 0; i < NUMBER_OF_MESSAGES; i++)
+ {
+ ClientMessage msg = session.createMessage(true);
+ msg.getBodyBuffer().writeBytes(new byte[512]);
- producerPaged.send(msg);
- producerNonPaged.send(msg);
- }
+ producerPaged.send(msg);
+ producerNonPaged.send(msg);
+ }
- session.close();
+ session.close();
- Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PAGED_ADDRESS).isPaging());
- Assert.assertFalse(server.getPostOffice().getPagingManager().getPageStore(NON_PAGED_ADDRESS).isPaging());
+ Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PAGED_ADDRESS).isPaging());
+ Assert.assertFalse(server.getPostOffice().getPagingManager().getPageStore(NON_PAGED_ADDRESS).isPaging());
- session = sf.createSession(false, true, false);
+ session = sf.createSession(false, true, false);
- session.start();
+ session.start();
- ClientConsumer consumerNonPaged = session.createConsumer(NON_PAGED_ADDRESS);
- ClientConsumer consumerPaged = session.createConsumer(PAGED_ADDRESS);
+ ClientConsumer consumerNonPaged = session.createConsumer(NON_PAGED_ADDRESS);
+ ClientConsumer consumerPaged = session.createConsumer(PAGED_ADDRESS);
- ClientMessage ackList[] = new ClientMessage[NUMBER_OF_MESSAGES];
+ ClientMessage ackList[] = new ClientMessage[NUMBER_OF_MESSAGES];
- for (int i = 0; i < NUMBER_OF_MESSAGES; i++)
- {
- ClientMessage msg = consumerNonPaged.receive(5000);
- Assert.assertNotNull(msg);
- ackList[i] = msg;
- }
+ for (int i = 0; i < NUMBER_OF_MESSAGES; i++)
+ {
+ ClientMessage msg = consumerNonPaged.receive(5000);
+ Assert.assertNotNull(msg);
+ ackList[i] = msg;
+ }
- Assert.assertNull(consumerNonPaged.receiveImmediate());
+ Assert.assertNull(consumerNonPaged.receiveImmediate());
- for (ClientMessage ack : ackList)
- {
- ack.acknowledge();
- }
+ for (ClientMessage ack : ackList)
+ {
+ ack.acknowledge();
+ }
- consumerNonPaged.close();
+ consumerNonPaged.close();
- session.commit();
+ session.commit();
- ackList = null;
+ ackList = null;
- for (int i = 0; i < NUMBER_OF_MESSAGES; i++)
- {
- ClientMessage msg = consumerPaged.receive(5000);
- Assert.assertNotNull(msg);
- msg.acknowledge();
- session.commit();
- }
+ for (int i = 0; i < NUMBER_OF_MESSAGES; i++)
+ {
+ ClientMessage msg = consumerPaged.receive(5000);
+ Assert.assertNotNull(msg);
+ msg.acknowledge();
+ session.commit();
+ }
- Assert.assertNull(consumerPaged.receiveImmediate());
+ Assert.assertNull(consumerPaged.receiveImmediate());
- session.close();
+ session.close();
}
public void testPagingDifferentSizes() throws Exception
@@ -3438,95 +3440,95 @@ public void testPagingDifferentSizes() throws Exception
server = createServer(true, configuration, -1, -1, addresses);
server.start();
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(false, true, false);
+ ClientSession session = sf.createSession(false, true, false);
- session.createQueue(PAGED_ADDRESS_A, PAGED_ADDRESS_A, true);
+ session.createQueue(PAGED_ADDRESS_A, PAGED_ADDRESS_A, true);
- session.createQueue(PAGED_ADDRESS_B, PAGED_ADDRESS_B, true);
+ session.createQueue(PAGED_ADDRESS_B, PAGED_ADDRESS_B, true);
- ClientProducer producerA = session.createProducer(PAGED_ADDRESS_A);
- ClientProducer producerB = session.createProducer(PAGED_ADDRESS_B);
+ ClientProducer producerA = session.createProducer(PAGED_ADDRESS_A);
+ ClientProducer producerB = session.createProducer(PAGED_ADDRESS_B);
- int NUMBER_OF_MESSAGES = 100;
+ int NUMBER_OF_MESSAGES = 100;
- for (int i = 0; i < NUMBER_MESSAGES_BEFORE_PAGING; i++)
- {
- ClientMessage msg = session.createMessage(true);
- msg.getBodyBuffer().writeBytes(new byte[512]);
+ for (int i = 0; i < NUMBER_MESSAGES_BEFORE_PAGING; i++)
+ {
+ ClientMessage msg = session.createMessage(true);
+ msg.getBodyBuffer().writeBytes(new byte[512]);
- producerA.send(msg);
- producerB.send(msg);
- }
+ producerA.send(msg);
+ producerB.send(msg);
+ }
- session.commit(); // commit was called to clean the buffer only (making sure everything is on the server side)
+ session.commit(); // commit was called to clean the buffer only (making sure everything is on the server side)
- Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PAGED_ADDRESS_A).isPaging());
- Assert.assertFalse(server.getPostOffice().getPagingManager().getPageStore(PAGED_ADDRESS_B).isPaging());
+ Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PAGED_ADDRESS_A).isPaging());
+ Assert.assertFalse(server.getPostOffice().getPagingManager().getPageStore(PAGED_ADDRESS_B).isPaging());
- for (int i = 0; i < NUMBER_MESSAGES_BEFORE_PAGING; i++)
- {
- ClientMessage msg = session.createMessage(true);
- msg.getBodyBuffer().writeBytes(new byte[512]);
+ for (int i = 0; i < NUMBER_MESSAGES_BEFORE_PAGING; i++)
+ {
+ ClientMessage msg = session.createMessage(true);
+ msg.getBodyBuffer().writeBytes(new byte[512]);
- producerA.send(msg);
- producerB.send(msg);
- }
+ producerA.send(msg);
+ producerB.send(msg);
+ }
- session.commit(); // commit was called to clean the buffer only (making sure everything is on the server side)
+ session.commit(); // commit was called to clean the buffer only (making sure everything is on the server side)
- Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PAGED_ADDRESS_A).isPaging());
- Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PAGED_ADDRESS_B).isPaging());
+ Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PAGED_ADDRESS_A).isPaging());
+ Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PAGED_ADDRESS_B).isPaging());
- for (int i = NUMBER_MESSAGES_BEFORE_PAGING * 2; i < NUMBER_OF_MESSAGES; i++)
- {
- ClientMessage msg = session.createMessage(true);
- msg.getBodyBuffer().writeBytes(new byte[512]);
+ for (int i = NUMBER_MESSAGES_BEFORE_PAGING * 2; i < NUMBER_OF_MESSAGES; i++)
+ {
+ ClientMessage msg = session.createMessage(true);
+ msg.getBodyBuffer().writeBytes(new byte[512]);
- producerA.send(msg);
- producerB.send(msg);
- }
+ producerA.send(msg);
+ producerB.send(msg);
+ }
- session.close();
+ session.close();
- Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PAGED_ADDRESS_A).isPaging());
- Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PAGED_ADDRESS_B).isPaging());
+ Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PAGED_ADDRESS_A).isPaging());
+ Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PAGED_ADDRESS_B).isPaging());
- session = sf.createSession(null, null, false, true, true, false, 0);
+ session = sf.createSession(null, null, false, true, true, false, 0);
- session.start();
+ session.start();
- ClientConsumer consumerA = session.createConsumer(PAGED_ADDRESS_A);
+ ClientConsumer consumerA = session.createConsumer(PAGED_ADDRESS_A);
- ClientConsumer consumerB = session.createConsumer(PAGED_ADDRESS_B);
+ ClientConsumer consumerB = session.createConsumer(PAGED_ADDRESS_B);
- for (int i = 0; i < NUMBER_OF_MESSAGES; i++)
- {
- ClientMessage msg = consumerA.receive(5000);
- Assert.assertNotNull("Couldn't receive a message on consumerA, iteration = " + i, msg);
- msg.acknowledge();
- }
+ for (int i = 0; i < NUMBER_OF_MESSAGES; i++)
+ {
+ ClientMessage msg = consumerA.receive(5000);
+ Assert.assertNotNull("Couldn't receive a message on consumerA, iteration = " + i, msg);
+ msg.acknowledge();
+ }
- Assert.assertNull(consumerA.receiveImmediate());
+ Assert.assertNull(consumerA.receiveImmediate());
- consumerA.close();
+ consumerA.close();
- Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PAGED_ADDRESS_B).isPaging());
+ Assert.assertTrue(server.getPostOffice().getPagingManager().getPageStore(PAGED_ADDRESS_B).isPaging());
- for (int i = 0; i < NUMBER_OF_MESSAGES; i++)
- {
- ClientMessage msg = consumerB.receive(5000);
- Assert.assertNotNull(msg);
- msg.acknowledge();
- session.commit();
- }
+ for (int i = 0; i < NUMBER_OF_MESSAGES; i++)
+ {
+ ClientMessage msg = consumerB.receive(5000);
+ Assert.assertNotNull(msg);
+ msg.acknowledge();
+ session.commit();
+ }
- Assert.assertNull(consumerB.receiveImmediate());
+ Assert.assertNull(consumerB.receiveImmediate());
- consumerB.close();
+ consumerB.close();
- session.close();
+ session.close();
}
public void testPageAndDepageRapidly() throws Exception
@@ -3548,106 +3550,106 @@ public void testPageAndDepageRapidly() throws Exception
final int numberOfMessages = 200;
- locator = createInVMNonHALocator();
+ locator = createInVMNonHALocator();
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(true, true);
+ ClientSession session = sf.createSession(true, true);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- final AtomicInteger errors = new AtomicInteger(0);
+ final AtomicInteger errors = new AtomicInteger(0);
- Thread consumeThread = new Thread()
+ Thread consumeThread = new Thread()
+ {
+ @Override
+ public void run()
{
- @Override
- public void run()
+ ClientSession sessionConsumer = null;
+ try
{
- ClientSession sessionConsumer = null;
- try
- {
- sessionConsumer = sf.createSession(false, false);
- sessionConsumer.start();
+ sessionConsumer = sf.createSession(false, false);
+ sessionConsumer.start();
- ClientConsumer cons = sessionConsumer.createConsumer(ADDRESS);
+ ClientConsumer cons = sessionConsumer.createConsumer(ADDRESS);
- for (int i = 0; i < numberOfMessages; i++)
- {
- ClientMessage msg = cons.receive(PagingTest.RECEIVE_TIMEOUT);
- assertNotNull(msg);
- msg.acknowledge();
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ ClientMessage msg = cons.receive(PagingTest.RECEIVE_TIMEOUT);
+ assertNotNull(msg);
+ msg.acknowledge();
- if (i % 20 == 0)
- {
- sessionConsumer.commit();
- }
+ if (i % 20 == 0)
+ {
+ sessionConsumer.commit();
}
- sessionConsumer.commit();
}
- catch (Throwable e)
+ sessionConsumer.commit();
+ }
+ catch (Throwable e)
+ {
+ e.printStackTrace();
+ errors.incrementAndGet();
+ }
+ finally
+ {
+ try
{
- e.printStackTrace();
- errors.incrementAndGet();
+ sessionConsumer.close();
}
- finally
+ catch (HornetQException e)
{
- try
- {
- sessionConsumer.close();
- }
- catch (HornetQException e)
- {
- e.printStackTrace();
- errors.incrementAndGet();
- }
+ e.printStackTrace();
+ errors.incrementAndGet();
}
-
}
- };
- consumeThread.start();
+ }
+ };
- ClientMessage message = null;
+ consumeThread.start();
- byte[] body = new byte[MESSAGE_SIZE];
+ ClientMessage message = null;
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = session.createMessage(persistentMessages);
+ byte[] body = new byte[MESSAGE_SIZE];
- HornetQBuffer bodyLocal = message.getBodyBuffer();
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = session.createMessage(persistentMessages);
- bodyLocal.writeBytes(body);
+ HornetQBuffer bodyLocal = message.getBodyBuffer();
- message.putIntProperty(new SimpleString("id"), i);
+ bodyLocal.writeBytes(body);
- producer.send(message);
+ message.putIntProperty(new SimpleString("id"), i);
- Thread.sleep(50);
- }
+ producer.send(message);
+
+ Thread.sleep(50);
+ }
- consumeThread.join();
+ consumeThread.join();
- long timeout = System.currentTimeMillis() + 5000;
+ long timeout = System.currentTimeMillis() + 5000;
- while (System.currentTimeMillis() < timeout && (server.getPagingManager().getPageStore(ADDRESS).isPaging() || server.getPagingManager()
- .getPageStore(ADDRESS)
- .getNumberOfPages() != 1))
- {
- Thread.sleep(1);
- }
+ while (System.currentTimeMillis() < timeout && (server.getPagingManager().getPageStore(ADDRESS).isPaging() || server.getPagingManager()
+ .getPageStore(ADDRESS)
+ .getNumberOfPages() != 1))
+ {
+ Thread.sleep(1);
+ }
- // It's async, so need to wait a bit for it happening
- assertFalse(server.getPagingManager().getPageStore(ADDRESS).isPaging());
+ // It's async, so need to wait a bit for it happening
+ assertFalse(server.getPagingManager().getPageStore(ADDRESS).isPaging());
- assertEquals(1, server.getPagingManager().getPageStore(ADDRESS).getNumberOfPages());
- }
+ assertEquals(1, server.getPagingManager().getPageStore(ADDRESS).getNumberOfPages());
+ }
public void testTwoQueuesDifferentFilters() throws Exception
{
@@ -3660,99 +3662,99 @@ public void testTwoQueuesDifferentFilters() throws Exception
config.setJournalSyncNonTransactional(false);
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
final int numberOfMessages = 200;
locator = createInVMNonHALocator();
- locator.setClientFailureCheckPeriod(120000);
- locator.setConnectionTTL(5000000);
- locator.setCallTimeout(120000);
+ locator.setClientFailureCheckPeriod(120000);
+ locator.setConnectionTTL(5000000);
+ locator.setCallTimeout(120000);
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(false, false, false);
+ ClientSession session = sf.createSession(false, false, false);
- // note: if you want to change this, numberOfMessages has to be a multiple of NQUEUES
- int NQUEUES = 2;
+ // note: if you want to change this, numberOfMessages has to be a multiple of NQUEUES
+ int NQUEUES = 2;
- for (int i = 0; i < NQUEUES; i++)
- {
- session.createQueue(PagingTest.ADDRESS,
- PagingTest.ADDRESS.concat("=" + i),
- new SimpleString("propTest=" + i),
- true);
- }
+ for (int i = 0; i < NQUEUES; i++)
+ {
+ session.createQueue(PagingTest.ADDRESS,
+ PagingTest.ADDRESS.concat("=" + i),
+ new SimpleString("propTest=" + i),
+ true);
+ }
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- ClientMessage message = null;
+ ClientMessage message = null;
- byte[] body = new byte[MESSAGE_SIZE];
+ byte[] body = new byte[MESSAGE_SIZE];
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = session.createMessage(persistentMessages);
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = session.createMessage(persistentMessages);
- HornetQBuffer bodyLocal = message.getBodyBuffer();
+ HornetQBuffer bodyLocal = message.getBodyBuffer();
- bodyLocal.writeBytes(body);
+ bodyLocal.writeBytes(body);
- message.putIntProperty("propTest", i % NQUEUES);
- message.putIntProperty("id", i);
+ message.putIntProperty("propTest", i % NQUEUES);
+ message.putIntProperty("id", i);
- producer.send(message);
- if (i % 1000 == 0)
- {
- session.commit();
- }
+ producer.send(message);
+ if (i % 1000 == 0)
+ {
+ session.commit();
}
+ }
- session.commit();
+ session.commit();
- session.start();
+ session.start();
- for (int nqueue = 0; nqueue < NQUEUES; nqueue++)
- {
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS.concat("=" + nqueue));
+ for (int nqueue = 0; nqueue < NQUEUES; nqueue++)
+ {
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS.concat("=" + nqueue));
- for (int i = 0; i < (numberOfMessages / NQUEUES); i++)
- {
- message = consumer.receive(500000);
- assertNotNull(message);
- message.acknowledge();
+ for (int i = 0; i < (numberOfMessages / NQUEUES); i++)
+ {
+ message = consumer.receive(500000);
+ assertNotNull(message);
+ message.acknowledge();
- assertEquals(nqueue, message.getIntProperty("propTest").intValue());
- }
+ assertEquals(nqueue, message.getIntProperty("propTest").intValue());
+ }
- assertNull(consumer.receiveImmediate());
+ assertNull(consumer.receiveImmediate());
- consumer.close();
+ consumer.close();
- session.commit();
- }
+ session.commit();
+ }
- PagingStore store = server.getPagingManager().getPageStore(ADDRESS);
- store.getCursorProvider().cleanup();
+ PagingStore store = server.getPagingManager().getPageStore(ADDRESS);
+ store.getCursorProvider().cleanup();
- long timeout = System.currentTimeMillis() + 5000;
- while (store.isPaging() && timeout > System.currentTimeMillis())
- {
- Thread.sleep(100);
- }
+ long timeout = System.currentTimeMillis() + 5000;
+ while (store.isPaging() && timeout > System.currentTimeMillis())
+ {
+ Thread.sleep(100);
+ }
- // It's async, so need to wait a bit for it happening
- assertFalse(server.getPagingManager().getPageStore(ADDRESS).isPaging());
+ // It's async, so need to wait a bit for it happening
+ assertFalse(server.getPagingManager().getPageStore(ADDRESS).isPaging());
}
public void testTwoQueues() throws Exception
@@ -3766,92 +3768,92 @@ public void testTwoQueues() throws Exception
config.setJournalSyncNonTransactional(false);
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
final int numberOfMessages = 1000;
locator = createInVMNonHALocator();
- locator.setClientFailureCheckPeriod(120000);
- locator.setConnectionTTL(5000000);
- locator.setCallTimeout(120000);
+ locator.setClientFailureCheckPeriod(120000);
+ locator.setConnectionTTL(5000000);
+ locator.setCallTimeout(120000);
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(false, false, false);
+ ClientSession session = sf.createSession(false, false, false);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS.concat("=1"), null, true);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS.concat("=2"), null, true);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS.concat("=1"), null, true);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS.concat("=2"), null, true);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- ClientMessage message = null;
+ ClientMessage message = null;
- byte[] body = new byte[MESSAGE_SIZE];
+ byte[] body = new byte[MESSAGE_SIZE];
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = session.createMessage(persistentMessages);
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = session.createMessage(persistentMessages);
- HornetQBuffer bodyLocal = message.getBodyBuffer();
+ HornetQBuffer bodyLocal = message.getBodyBuffer();
- bodyLocal.writeBytes(body);
+ bodyLocal.writeBytes(body);
- message.putIntProperty("propTest", i % 2 == 0 ? 1 : 2);
+ message.putIntProperty("propTest", i % 2 == 0 ? 1 : 2);
- producer.send(message);
- if (i % 1000 == 0)
- {
- session.commit();
- }
+ producer.send(message);
+ if (i % 1000 == 0)
+ {
+ session.commit();
}
+ }
- session.commit();
+ session.commit();
- session.start();
+ session.start();
- for (int msg = 1; msg <= 2; msg++)
- {
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS.concat("=" + msg));
+ for (int msg = 1; msg <= 2; msg++)
+ {
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS.concat("=" + msg));
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = consumer.receive(500000);
- assertNotNull(message);
- message.acknowledge();
- }
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = consumer.receive(500000);
+ assertNotNull(message);
+ message.acknowledge();
+ }
- session.commit();
+ session.commit();
- assertNull(consumer.receiveImmediate());
+ assertNull(consumer.receiveImmediate());
- consumer.close();
- }
+ consumer.close();
+ }
- PagingStore store = server.getPagingManager().getPageStore(ADDRESS);
- store.getCursorProvider().cleanup();
+ PagingStore store = server.getPagingManager().getPageStore(ADDRESS);
+ store.getCursorProvider().cleanup();
- long timeout = System.currentTimeMillis() + 5000;
- while (store.isPaging() && timeout > System.currentTimeMillis())
- {
- Thread.sleep(100);
- }
+ long timeout = System.currentTimeMillis() + 5000;
+ while (store.isPaging() && timeout > System.currentTimeMillis())
+ {
+ Thread.sleep(100);
+ }
- store.getCursorProvider().cleanup();
+ store.getCursorProvider().cleanup();
- Thread.sleep(1000);
+ Thread.sleep(1000);
- // It's async, so need to wait a bit for it happening
- assertFalse(server.getPagingManager().getPageStore(ADDRESS).isPaging());
+ // It's async, so need to wait a bit for it happening
+ assertFalse(server.getPagingManager().getPageStore(ADDRESS).isPaging());
}
public void testTwoQueuesConsumeOneRestart() throws Exception
@@ -3865,101 +3867,101 @@ public void testTwoQueuesConsumeOneRestart() throws Exception
config.setJournalSyncNonTransactional(false);
server =
- createServer(true,
- config,
- PagingTest.PAGE_SIZE,
- PagingTest.PAGE_MAX,
- new HashMap());
+ createServer(true,
+ config,
+ PagingTest.PAGE_SIZE,
+ PagingTest.PAGE_MAX,
+ new HashMap());
server.start();
final int numberOfMessages = 1000;
locator = createInVMNonHALocator();
- locator.setClientFailureCheckPeriod(120000);
- locator.setConnectionTTL(5000000);
- locator.setCallTimeout(120000);
+ locator.setClientFailureCheckPeriod(120000);
+ locator.setConnectionTTL(5000000);
+ locator.setCallTimeout(120000);
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(false, false, false);
+ ClientSession session = sf.createSession(false, false, false);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS.concat("=1"), null, true);
- session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS.concat("=2"), null, true);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS.concat("=1"), null, true);
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS.concat("=2"), null, true);
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- ClientMessage message = null;
+ ClientMessage message = null;
- byte[] body = new byte[MESSAGE_SIZE];
+ byte[] body = new byte[MESSAGE_SIZE];
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = session.createMessage(persistentMessages);
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = session.createMessage(persistentMessages);
- HornetQBuffer bodyLocal = message.getBodyBuffer();
+ HornetQBuffer bodyLocal = message.getBodyBuffer();
- bodyLocal.writeBytes(body);
+ bodyLocal.writeBytes(body);
- message.putIntProperty("propTest", i % 2 == 0 ? 1 : 2);
+ message.putIntProperty("propTest", i % 2 == 0 ? 1 : 2);
- producer.send(message);
- if (i % 1000 == 0)
- {
- session.commit();
- }
+ producer.send(message);
+ if (i % 1000 == 0)
+ {
+ session.commit();
}
+ }
- session.commit();
+ session.commit();
- session.start();
+ session.start();
- session.deleteQueue(PagingTest.ADDRESS.concat("=1"));
+ session.deleteQueue(PagingTest.ADDRESS.concat("=1"));
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- session = sf.createSession(false, false, false);
+ session = sf.createSession(false, false, false);
- session.start();
+ session.start();
- ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS.concat("=2"));
+ ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS.concat("=2"));
- for (int i = 0; i < numberOfMessages; i++)
- {
- message = consumer.receive(500000);
- assertNotNull(message);
- message.acknowledge();
- }
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ message = consumer.receive(500000);
+ assertNotNull(message);
+ message.acknowledge();
+ }
- session.commit();
+ session.commit();
- assertNull(consumer.receiveImmediate());
+ assertNull(consumer.receiveImmediate());
- consumer.close();
+ consumer.close();
- long timeout = System.currentTimeMillis() + 10000;
+ long timeout = System.currentTimeMillis() + 10000;
- PagingStore store = server.getPagingManager().getPageStore(ADDRESS);
+ PagingStore store = server.getPagingManager().getPageStore(ADDRESS);
- // It's async, so need to wait a bit for it happening
- while (timeout > System.currentTimeMillis() && store.isPaging())
- {
- Thread.sleep(100);
- }
+ // It's async, so need to wait a bit for it happening
+ while (timeout > System.currentTimeMillis() && store.isPaging())
+ {
+ Thread.sleep(100);
+ }
- assertFalse(server.getPagingManager().getPageStore(ADDRESS).isPaging());
+ assertFalse(server.getPagingManager().getPageStore(ADDRESS).isPaging());
- server.stop();
+ server.stop();
- server.start();
+ server.start();
- server.stop();
- server.start();
- }
+ server.stop();
+ server.start();
+ }
public void testDLAOnLargeMessageAndPaging() throws Exception
{
@@ -4080,8 +4082,8 @@ public void write(int b) throws IOException
log.info("output bytes = " + bytesOutput);
log.info(threadDump("dump"));
fail("Couldn't finish large message receiving for id=" + message.getStringProperty("id") +
- " with messageID=" +
- message.getMessageID());
+ " with messageID=" +
+ message.getMessageID());
}
}
@@ -4214,127 +4216,230 @@ public void testExpireLargeMessageOnPaging() throws Exception
final int MESSAGE_SIZE = 20;
- locator = createInVMNonHALocator();
+ locator = createInVMNonHALocator();
- locator.setBlockOnNonDurableSend(true);
- locator.setBlockOnDurableSend(true);
- locator.setBlockOnAcknowledge(true);
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- ClientSession session = sf.createSession(false, false, false);
+ ClientSession session = sf.createSession(false, false, false);
- session.createQueue(ADDRESS, ADDRESS, true);
+ session.createQueue(ADDRESS, ADDRESS, true);
- session.createQueue("DLA", "DLA");
+ session.createQueue("DLA", "DLA");
- PagingStore pgStoreAddress = server.getPagingManager().getPageStore(ADDRESS);
- pgStoreAddress.startPaging();
- PagingStore pgStoreDLA = server.getPagingManager().getPageStore(new SimpleString("DLA"));
+ PagingStore pgStoreAddress = server.getPagingManager().getPageStore(ADDRESS);
+ pgStoreAddress.startPaging();
+ PagingStore pgStoreDLA = server.getPagingManager().getPageStore(new SimpleString("DLA"));
- ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
- ClientMessage message = null;
+ ClientMessage message = null;
- for (int i = 0; i < 500; i++)
+ for (int i = 0; i < 500; i++)
+ {
+ if (i % 100 == 0)
{
- if (i % 100 == 0)
- log.info("send message #" + i);
- message = session.createMessage(true);
+ log.info("send message #" + i);
+ }
+ message = session.createMessage(true);
- message.putStringProperty("id", "str" + i);
+ message.putStringProperty("id", "str" + i);
- message.setExpiration(System.currentTimeMillis() + 2000);
+ message.setExpiration(System.currentTimeMillis() + 2000);
- if (i % 2 == 0)
- {
- message.setBodyInputStream(createFakeLargeStream(MESSAGE_SIZE));
- }
- else
+ if (i % 2 == 0)
+ {
+ message.setBodyInputStream(createFakeLargeStream(MESSAGE_SIZE));
+ }
+ else
+ {
+ byte bytes[] = new byte[MESSAGE_SIZE];
+ for (int s = 0; s < bytes.length; s++)
{
- byte bytes[] = new byte[MESSAGE_SIZE];
- for (int s = 0; s < bytes.length; s++)
- {
- bytes[s] = getSamplebyte(s);
- }
- message.getBodyBuffer().writeBytes(bytes);
+ bytes[s] = getSamplebyte(s);
}
+ message.getBodyBuffer().writeBytes(bytes);
+ }
- producer.send(message);
+ producer.send(message);
- if ((i + 1) % 2 == 0)
+ if ((i + 1) % 2 == 0)
+ {
+ session.commit();
+ if (i < 400)
{
- session.commit();
- if (i < 400)
- {
- pgStoreAddress.forceAnotherPage();
- }
+ pgStoreAddress.forceAnotherPage();
}
}
+ }
- session.commit();
+ session.commit();
- sf.close();
+ sf.close();
- locator.close();
+ locator.close();
- server.stop();
+ server.stop();
- Thread.sleep(3000);
+ Thread.sleep(3000);
- server.start();
+ server.start();
- locator = createInVMNonHALocator();
+ locator = createInVMNonHALocator();
- sf = createSessionFactory(locator);
+ sf = createSessionFactory(locator);
- session = sf.createSession(false, false);
+ session = sf.createSession(false, false);
- session.start();
+ session.start();
- ClientConsumer consAddr = session.createConsumer(ADDRESS);
+ ClientConsumer consAddr = session.createConsumer(ADDRESS);
- assertNull(consAddr.receive(1000));
+ assertNull(consAddr.receive(1000));
- ClientConsumer cons = session.createConsumer("DLA");
+ ClientConsumer cons = session.createConsumer("DLA");
- for (int i = 0; i < 500; i++)
- {
- log.info("Received message " + i);
- message = cons.receive(10000);
- assertNotNull(message);
- message.acknowledge();
+ for (int i = 0; i < 500; i++)
+ {
+ log.info("Received message " + i);
+ message = cons.receive(10000);
+ assertNotNull(message);
+ message.acknowledge();
- message.saveToOutputStream(new OutputStream()
+ message.saveToOutputStream(new OutputStream()
+ {
+ @Override
+ public void write(int b) throws IOException
{
- @Override
- public void write(int b) throws IOException
- {
- }
- });
- }
+ }
+ });
+ }
- assertNull(cons.receiveImmediate());
+ assertNull(cons.receiveImmediate());
- session.commit();
+ session.commit();
- cons.close();
+ cons.close();
- long timeout = System.currentTimeMillis() + 5000;
+ long timeout = System.currentTimeMillis() + 5000;
- pgStoreAddress = server.getPagingManager().getPageStore(ADDRESS);
+ pgStoreAddress = server.getPagingManager().getPageStore(ADDRESS);
- while (timeout > System.currentTimeMillis() && pgStoreAddress.isPaging())
- {
- Thread.sleep(50);
- }
+ while (timeout > System.currentTimeMillis() && pgStoreAddress.isPaging())
+ {
+ Thread.sleep(50);
+ }
- assertFalse(pgStoreAddress.isPaging());
+ assertFalse(pgStoreAddress.isPaging());
session.close();
}
+
+ public void testFailMessages() throws Exception
+ {
+ clearData();
+
+ Configuration config = createDefaultConfig();
+
+ HashMap settings = new HashMap();
+
+ AddressSettings set = new AddressSettings();
+ set.setAddressFullMessagePolicy(AddressFullMessagePolicy.FAIL);
+
+ settings.put(PagingTest.ADDRESS.toString(), set);
+
+ server = createServer(true, config, 1024, 5 * 1024, settings);
+
+ server.start();
+
+ locator.setBlockOnNonDurableSend(true);
+ locator.setBlockOnDurableSend(true);
+ locator.setBlockOnAcknowledge(true);
+
+ sf = createSessionFactory(locator);
+ ClientSession session = sf.createSession(true, true, 0);
+
+ session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
+
+ ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
+
+ ClientMessage message = null;
+
+ int biggerMessageSize = 1024;
+ byte[] body = new byte[biggerMessageSize];
+ ByteBuffer bb = ByteBuffer.wrap(body);
+ for (int j = 1; j <= biggerMessageSize; j++)
+ {
+ bb.put(getSamplebyte(j));
+ }
+
+ // Send enough messages to fill up the address.
+ // The address will actually fill up after 3 messages or so, but it takes 32 messages for the client's
+ // credits to run out. The client will finally receive the fail message when it requests more credits
+ // and the address is full.
+ for (int i = 0; i < 32; i++)
+ {
+ message = session.createMessage(true);
+ message.getBodyBuffer().writeBytes(body);
+ producer.send(message);
+ }
+
+ ClientConsumer consumer = session.createConsumer(ADDRESS);
+
+ session.start();
+
+ for (int i = 0 ; i < 10; i++)
+ {
+ validateExceptionOnSending(producer, message);
+ }
+
+ // Receive a message.. this should release credits
+ ClientMessage msgReceived = consumer.receive(5000);
+ assertNotNull(msgReceived);
+ msgReceived.acknowledge();
+ session.commit(); // to make sure it's on the server (roundtrip)
+
+ // this send will succeed on the server
+ producer.send(message);
+
+ // this send will fail on the server, but the client won't realize it because it has
+ // enough credits to send the message (i.e. the same situation as above when we
+ // sent 32 messages)
+ producer.send(message);
+
+ for (int i = 0; i < 10; i++)
+ {
+ // at this point the first call here will fail because the client has enough credits
+ validateExceptionOnSending(producer, message);
+ }
+ }
+
+ /**
+ * This method validates if sending a message will throw an exception
+ * */
+ private void validateExceptionOnSending(ClientProducer producer, ClientMessage message)
+ {
+ HornetQException expected = null;
+
+ try
+ {
+ // after the address is full this send should fail (since the address full policy is FAIL)
+ producer.send(message);
+ }
+ catch (HornetQException e)
+ {
+ expected = e;
+ }
+
+ assertNotNull(expected);
+ assertEquals(HornetQExceptionType.ADDRESS_FULL, expected.getType());
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
@@ -4407,5 +4512,7 @@ public void executeOnCompletion(IOAsyncTask runnable)
{
}
- };
+ }
+
+ ;
}
diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/client/ProducerFlowControlTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/client/ProducerFlowControlTest.java
index ba4560677a5..28833e890cb 100644
--- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/client/ProducerFlowControlTest.java
+++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/client/ProducerFlowControlTest.java
@@ -21,6 +21,7 @@
import junit.framework.Assert;
+import org.hornetq.api.core.HornetQObjectClosedException;
import org.hornetq.api.core.SimpleString;
import org.hornetq.api.core.client.ClientConsumer;
import org.hornetq.api.core.client.ClientMessage;
@@ -359,53 +360,62 @@ public void testClosingSessionUnblocksBlockedProducer() throws Exception
server.start();
waitForServer(server);
- locator.setProducerWindowSize(1024);
- locator.setConsumerWindowSize(1024);
- locator.setAckBatchSize(1024);
+ locator.setProducerWindowSize(1024);
+ locator.setConsumerWindowSize(1024);
+ locator.setAckBatchSize(1024);
sf = createSessionFactory(locator);
- session = sf.createSession(false, true, true, true);
+ session = sf.createSession(false, true, true, true);
- final SimpleString queueName = new SimpleString("testqueue");
+ final SimpleString queueName = new SimpleString("testqueue");
- session.createQueue(address, queueName, null, false);
+ session.createQueue(address, queueName, null, false);
- ClientProducer producer = session.createProducer(address);
+ ClientProducer producer = session.createProducer(address);
- byte[] bytes = new byte[2000];
+ byte[] bytes = new byte[2000];
- ClientMessage message = session.createMessage(false);
+ ClientMessage message = session.createMessage(false);
- message.getBodyBuffer().writeBytes(bytes);
+ message.getBodyBuffer().writeBytes(bytes);
- final AtomicBoolean closed = new AtomicBoolean(false);
+ final AtomicBoolean closed = new AtomicBoolean(false);
- Thread t = new Thread(new Runnable()
+ Thread t = new Thread(new Runnable()
+ {
+ public void run()
{
- public void run()
+ try
{
- try
- {
- Thread.sleep(500);
+ Thread.sleep(500);
- closed.set(true);
+ closed.set(true);
- session.close();
- }
- catch (Exception e)
- {
- }
+ session.close();
}
- });
+ catch (Exception e)
+ {
+ }
+ }
+ });
- t.start();
+ t.start();
+ try
+ {
// This will block
- producer.send(message);
+ for (int i = 0 ; i < 10; i++)
+ {
+ producer.send(message);
+ }
+ }
+ catch (HornetQObjectClosedException expected)
+ {
+ }
- Assert.assertTrue(closed.get());
+ Assert.assertTrue(closed.get());
- t.join();
+ t.join();
}
public void testFlowControlMessageNotRouted() throws Exception
diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/client/TemporaryQueueTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/client/TemporaryQueueTest.java
index 5d31f252b52..ec9106577b2 100644
--- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/client/TemporaryQueueTest.java
+++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/client/TemporaryQueueTest.java
@@ -319,9 +319,6 @@ public void testQueueWithWildcard3() throws Exception
session.deleteQueue("queue2");
}
- /**
- * @see org.hornetq.core.server.impl.ServerSessionImpl#doHandleCreateQueue(org.hornetq.core.remoting.impl.wireformat.CreateQueueMessage)
- */
public void testDeleteTemporaryQueueAfterConnectionIsClosed_2() throws Exception
{
SimpleString queue = RandomUtil.randomSimpleString();
@@ -644,7 +641,7 @@ public void run()
ClientConsumer newConsumer = newConsumerSession.createConsumer("Q2");
newConsumerSession.start();
- int toReceive = TOTAL_MSG - msgs.get() - 1;
+ int toReceive = TOTAL_MSG - msgs.get();
for (ServerSession sessionIterator: server.getSessions())
{