[jboss-cvs] JBoss Messaging SVN: r2386 - in trunk: src/etc and 27 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Feb 21 13:07:45 EST 2007
Author: timfox
Date: 2007-02-21 13:07:44 -0500 (Wed, 21 Feb 2007)
New Revision: 2386
Added:
trunk/src/etc/server/default/deploy/clustered-db2-persistence-service.xml
trunk/src/etc/server/default/deploy/db2-persistence-service.xml
Removed:
trunk/src/main/org/jboss/jms/client/container/AsfAspect.java
trunk/src/main/org/jboss/jms/client/container/FactoryAspect.java
trunk/src/main/org/jboss/jms/server/QueuedExecutorPool.java
Modified:
trunk/.classpath
trunk/src/etc/aop-messaging-client.xml
trunk/src/etc/server/default/deploy/connection-factories-service.xml
trunk/src/etc/server/default/deploy/messaging-service.xml
trunk/src/etc/server/default/deploy/remoting-service.xml
trunk/src/etc/xmdesc/ClusteredPostOffice-xmbean.xml
trunk/src/etc/xmdesc/ConnectionFactory-xmbean.xml
trunk/src/etc/xmdesc/ServerPeer-xmbean.xml
trunk/src/main/org/jboss/jms/client/container/ProducerAspect.java
trunk/src/main/org/jboss/jms/client/container/SessionAspect.java
trunk/src/main/org/jboss/jms/client/container/StateCreationAspect.java
trunk/src/main/org/jboss/jms/client/delegate/ClientSessionDelegate.java
trunk/src/main/org/jboss/jms/client/remoting/ClientSocketWrapper.java
trunk/src/main/org/jboss/jms/client/remoting/MessageCallbackHandler.java
trunk/src/main/org/jboss/jms/client/state/ConsumerState.java
trunk/src/main/org/jboss/jms/client/state/SessionState.java
trunk/src/main/org/jboss/jms/server/ConnectionFactoryManager.java
trunk/src/main/org/jboss/jms/server/ServerPeer.java
trunk/src/main/org/jboss/jms/server/ServerPeerMBean.java
trunk/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactory.java
trunk/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactoryJNDIMapper.java
trunk/src/main/org/jboss/jms/server/destination/DestinationServiceSupport.java
trunk/src/main/org/jboss/jms/server/destination/ManagedDestination.java
trunk/src/main/org/jboss/jms/server/destination/QueueService.java
trunk/src/main/org/jboss/jms/server/endpoint/ServerConnectionEndpoint.java
trunk/src/main/org/jboss/jms/server/endpoint/ServerConnectionFactoryEndpoint.java
trunk/src/main/org/jboss/jms/server/endpoint/ServerConsumerEndpoint.java
trunk/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java
trunk/src/main/org/jboss/jms/server/remoting/JMSWireFormat.java
trunk/src/main/org/jboss/messaging/core/Channel.java
trunk/src/main/org/jboss/messaging/core/ChannelSupport.java
trunk/src/main/org/jboss/messaging/core/PagingChannelSupport.java
trunk/src/main/org/jboss/messaging/core/local/PagingFilteredQueue.java
trunk/src/main/org/jboss/messaging/core/plugin/ClusteredPostOfficeService.java
trunk/src/main/org/jboss/messaging/core/plugin/DefaultPostOfficeService.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/DefaultPostOffice.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOffice.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/FailedOverQueue.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/LocalClusteredQueue.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/PostOfficeInternal.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/RemoteQueueStub.java
trunk/tests/src/org/jboss/test/messaging/core/SimpleChannel.java
trunk/tests/src/org/jboss/test/messaging/core/SimpleReceiver.java
trunk/tests/src/org/jboss/test/messaging/core/local/NonRecoverablePagingFilteredQueueTest.java
trunk/tests/src/org/jboss/test/messaging/core/local/RecoverablePagingFilteredQueueTest.java
trunk/tests/src/org/jboss/test/messaging/core/local/base/PagingFilteredQueueTestBase.java
trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_2PCTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_NTTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_TTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_2PCTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_NTTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_TTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/PagingTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_2PCTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_NTTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_TTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_2PCTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_NTTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_TTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_ReloadTest.java
trunk/tests/src/org/jboss/test/messaging/core/paging/base/PagingStateTestBase.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/base/PostOfficeTestBase.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/DefaultPostOfficeTest.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOfficeTest.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOfficeWithDefaultRouterTest.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultMessagePullPolicyTest.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultRouterTest.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/RecoveryTest.java
trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/RedistributionWithDefaultMessagePullPolicyTest.java
trunk/tests/src/org/jboss/test/messaging/jms/AcknowledgementTest.java
trunk/tests/src/org/jboss/test/messaging/jms/ConnectionFactoryTest.java
trunk/tests/src/org/jboss/test/messaging/jms/String64KLimitTest.java
trunk/tests/src/org/jboss/test/messaging/jms/WireFormatTest.java
trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedQueueTest.java
trunk/tests/src/org/jboss/test/messaging/tools/jmx/ServiceContainer.java
Log:
Mainly optimisations plus various other fixes and changes
Modified: trunk/.classpath
===================================================================
--- trunk/.classpath 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/.classpath 2007-02-21 18:07:44 UTC (rev 2386)
@@ -46,7 +46,6 @@
<classpathentry kind="lib" path="thirdparty/jboss/aop/lib/common-softvaluehashmap.jar"/>
<classpathentry kind="lib" path="thirdparty/jboss/aop/lib/jboss-aop-jdk50.jar"/>
<classpathentry kind="lib" path="thirdparty/jboss/aop/lib/jboss-aop-jdk50-client.jar"/>
- <classpathentry kind="lib" path="thirdparty/jboss/aop/lib/jboss-aspect-jdk50-client.jar"/>
<classpathentry kind="lib" path="thirdparty/jboss/aop/lib/jdk14-pluggable-instrumentor.jar"/>
<classpathentry kind="lib" path="thirdparty/jboss/aop/lib/jrockit-pluggable-instrumentor.jar"/>
<classpathentry kind="lib" path="thirdparty/jboss/aop/lib/pluggable-instrumentor.jar"/>
Modified: trunk/src/etc/aop-messaging-client.xml
===================================================================
--- trunk/src/etc/aop-messaging-client.xml 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/etc/aop-messaging-client.xml 2007-02-21 18:07:44 UTC (rev 2386)
@@ -7,19 +7,16 @@
<interceptor class="org.jboss.jms.client.container.ExceptionInterceptor" scope="PER_VM"/>
<interceptor class="org.jboss.jms.client.container.ClientLogInterceptor" scope="PER_VM"/>
<interceptor class="org.jboss.jms.client.container.ClosedInterceptor" scope="PER_INSTANCE"/>
- <interceptor class="org.jboss.jms.client.container.ConcurrencyInterceptor" scope="PER_INSTANCE"/>
<interceptor class="org.jboss.jms.client.container.FailoverValveInterceptor" scope="PER_INSTANCE"/>
<aspect class="org.jboss.jms.client.container.StateCreationAspect" scope="PER_VM"/>
<aspect class="org.jboss.jms.client.container.ConsumerAspect" scope="PER_VM"/>
- <aspect class="org.jboss.jms.client.container.ProducerAspect" scope="PER_INSTANCE"/>
+ <aspect class="org.jboss.jms.client.container.ProducerAspect" scope="PER_VM"/>
<aspect class="org.jboss.jms.client.container.SessionAspect" scope="PER_VM"/>
- <aspect class="org.jboss.jms.client.container.AsfAspect" scope="PER_INSTANCE"/>
<aspect class="org.jboss.jms.client.container.BrowserAspect" scope="PER_INSTANCE"/>
<aspect class="org.jboss.jms.client.container.ConnectionAspect" scope="PER_INSTANCE"/>
<aspect class="org.jboss.jms.client.container.ClusteringAspect" scope="PER_INSTANCE"/>
- <aspect class="org.jboss.jms.client.container.FactoryAspect" scope="PER_INSTANCE"/>
-
+
<!--
Clustered ConnectionFactory Stack
-->
@@ -61,7 +58,7 @@
<advice name="handleStop" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->createConnectionConsumer(..))">
- <advice name="handleCreateConnectionConsumer" aspect="org.jboss.jms.client.container.AsfAspect"/>
+ <advice name="handleCreateConnectionConsumer" aspect="org.jboss.jms.client.container.SessionAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->getClientID())">
<advice name="handleGetClientID" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
@@ -105,34 +102,34 @@
<interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>
</bind>
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createMessage())">
- <advice name="handleCreateMessage" aspect="org.jboss.jms.client.container.FactoryAspect"/>
+ <advice name="handleCreateMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createBytesMessage())">
- <advice name="handleCreateBytesMessage" aspect="org.jboss.jms.client.container.FactoryAspect"/>
+ <advice name="handleCreateBytesMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createMapMessage())">
- <advice name="handleCreateMapMessage" aspect="org.jboss.jms.client.container.FactoryAspect"/>
+ <advice name="handleCreateMapMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createObjectMessage(..))">
- <advice name="handleCreateObjectMessage" aspect="org.jboss.jms.client.container.FactoryAspect"/>
+ <advice name="handleCreateObjectMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createStreamMessage())">
- <advice name="handleCreateStreamMessage" aspect="org.jboss.jms.client.container.FactoryAspect"/>
+ <advice name="handleCreateStreamMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createTextMessage(..))">
- <advice name="handleCreateTextMessage" aspect="org.jboss.jms.client.container.FactoryAspect"/>
+ <advice name="handleCreateTextMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->setMessageListener(..))">
- <advice name="handleSetMessageListener" aspect="org.jboss.jms.client.container.AsfAspect"/>
+ <advice name="handleSetMessageListener" aspect="org.jboss.jms.client.container.SessionAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->getMessageListener())">
- <advice name="handleGetMessageListener" aspect="org.jboss.jms.client.container.AsfAspect"/>
+ <advice name="handleGetMessageListener" aspect="org.jboss.jms.client.container.SessionAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->addAsfMessage(..))">
- <advice name="handleAddAsfMessage" aspect="org.jboss.jms.client.container.AsfAspect"/>
+ <advice name="handleAddAsfMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->run())">
- <advice name="handleRun" aspect="org.jboss.jms.client.container.AsfAspect"/>
+ <advice name="handleRun" aspect="org.jboss.jms.client.container.SessionAspect"/>
</bind>
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->getAcknowledgeMode())">
<advice name="handleGetAcknowledgeMode" aspect="org.jboss.jms.client.container.SessionAspect"/>
Added: trunk/src/etc/server/default/deploy/clustered-db2-persistence-service.xml
===================================================================
--- trunk/src/etc/server/default/deploy/clustered-db2-persistence-service.xml (rev 0)
+++ trunk/src/etc/server/default/deploy/clustered-db2-persistence-service.xml 2007-02-21 18:07:44 UTC (rev 2386)
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ DB2 clustered persistence deployment descriptor.
+
+ UNTESTED
+
+ $Id$
+ -->
+
+<server>
+
+ <mbean code="org.jboss.messaging.core.plugin.JDBCPersistenceManagerService"
+ name="jboss.messaging:service=PersistenceManager"
+ xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+ <attribute name="CreateTablesOnStartup">true</attribute>
+ <attribute name="UsingBatchUpdates">true</attribute>
+ <attribute name="SqlProperties"><![CDATA[
+ CREATE_MESSAGE_REFERENCE=CREATE TABLE JBM_MSG_REF (CHANNEL_ID BIGINT, MESSAGE_ID BIGINT, TRANSACTION_ID BIGINT, STATE CHAR(1), ORD BIGINT, PAGE_ORD BIGINT, DELIVERY_COUNT INTEGER, SCHED_DELIVERY BIGINT, PRIMARY KEY(CHANNEL_ID, MESSAGE_ID))
+ CREATE_IDX_MESSAGE_REF_TX=CREATE INDEX JBM_MSG_REF_TX ON JBM_MSG_REF (TRANSACTION_ID)
+ CREATE_IDX_MESSAGE_REF_ORD=CREATE INDEX JBM_MSG_REF_ORD ON JBM_MSG_REF (ORD)
+ CREATE_IDX_MESSAGE_REF_PAGE_ORD=CREATE INDEX JBM_MSG_REF_PAGE_ORD ON JBM_MSG_REF (PAGE_ORD)
+ CREATE_IDX_MESSAGE_REF_MESSAGE_ID=CREATE INDEX JBM_MSG_REF_MESSAGE_ID ON JBM_MSG_REF (MESSAGE_ID)
+ CREATE_IDX_MESSAGE_REF_SCHED_DELIVERY=CREATE INDEX JBM_MSG_REF_SCHED_DELIVERY ON JBM_MSG_REF (SCHED_DELIVERY)
+ CREATE_MESSAGE=CREATE TABLE JBM_MSG (MESSAGE_ID BIGINT, RELIABLE CHAR(1), EXPIRATION BIGINT, TIMESTAMP BIGINT, PRIORITY SMALLINT, HEADERS BLOB, PAYLOAD BLOB, CHANNEL_COUNT INTEGER, TYPE SMALLINT, PRIMARY KEY (MESSAGE_ID))
+ CREATE_TRANSACTION=CREATE TABLE JBM_TX (TRANSACTION_ID BIGINT, BRANCH_QUAL BLOB(254), FORMAT_ID INTEGER, GLOBAL_TXID BLOB(254), PRIMARY KEY (TRANSACTION_ID))
+ CREATE_COUNTER=CREATE TABLE JBM_COUNTER (NAME VARCHAR(255), NEXT_ID BIGINT, PRIMARY KEY(NAME))
+ INSERT_MESSAGE_REF=INSERT INTO JBM_MSG_REF (CHANNEL_ID, MESSAGE_ID, TRANSACTION_ID, STATE, ORD, PAGE_ORD, DELIVERY_COUNT, SCHED_DELIVERY) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ DELETE_MESSAGE_REF=DELETE FROM JBM_MSG_REF WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_MESSAGE_REF=UPDATE JBM_MSG_REF SET TRANSACTION_ID=?, STATE='-' WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_PAGE_ORDER=UPDATE JBM_MSG_REF SET PAGE_ORD = ? WHERE MESSAGE_ID=? AND CHANNEL_ID=?
+ COMMIT_MESSAGE_REF1=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='+'
+ COMMIT_MESSAGE_REF2=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='-'
+ ROLLBACK_MESSAGE_REF1=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='+'
+ ROLLBACK_MESSAGE_REF2=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='-'
+ LOAD_PAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, PAGE_ORD, SCHED_DELIVERY FROM JBM_MSG_REF WHERE CHANNEL_ID = ? AND PAGE_ORD BETWEEN ? AND ? ORDER BY PAGE_ORD
+ LOAD_UNPAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? AND PAGE_ORD IS NULL ORDER BY ORD
+ UPDATE_REFS_NOT_PAGED=UPDATE JBM_MSG_REF SET PAGE_ORD = NULL WHERE PAGE_ORD BETWEEN ? AND ? AND CHANNEL_ID=?
+ SELECT_MIN_MAX_PAGE_ORD=SELECT MIN(PAGE_ORD), MAX(PAGE_ORD) FROM JBM_MSG_REF WHERE CHANNEL_ID = ?
+ SELECT_EXISTS_REF=SELECT MESSAGE_ID FROM JBM_MSG_REF WHERE CHANNEL_ID = ? AND MESSAGE_ID = ?
+ SELECT_EXISTS_REF_MESSAGE_ID=SELECT MESSAGE_ID FROM JBM_MSG_REF WHERE MESSAGE_ID = ?
+ UPDATE_DELIVERY_COUNT=UPDATE JBM_MSG_REF SET DELIVERY_COUNT = ? WHERE CHANNEL_ID = ? AND MESSAGE_ID = ?
+ LOAD_MESSAGES=SELECT MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, HEADERS, PAYLOAD, TYPE FROM JBM_MSG
+ INSERT_MESSAGE=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, HEADERS, PAYLOAD, CHANNEL_COUNT, TYPE) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
+ INC_CHANNEL_COUNT=UPDATE JBM_MSG SET CHANNEL_COUNT = CHANNEL_COUNT + 1 WHERE MESSAGE_ID=?
+ DEC_CHANNEL_COUNT=UPDATE JBM_MSG SET CHANNEL_COUNT = CHANNEL_COUNT - 1 WHERE MESSAGE_ID=?
+ DELETE_MESSAGE=DELETE FROM JBM_MSG WHERE MESSAGE_ID=? AND CHANNEL_COUNT=0
+ MESSAGE_ID_COLUMN=MESSAGE_ID
+ MESSAGE_EXISTS=SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ? FOR UPDATE
+ INSERT_TRANSACTION=INSERT INTO JBM_TX (TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID) VALUES(?, ?, ?, ?)
+ DELETE_TRANSACTION=DELETE FROM JBM_TX WHERE TRANSACTION_ID = ?
+ SELECT_PREPARED_TRANSACTIONS=SELECT TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID FROM JBM_TX
+ SELECT_MESSAGE_ID_FOR_REF=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '+' ORDER BY ORD
+ SELECT_MESSAGE_ID_FOR_ACK=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '-' ORDER BY ORD
+ UPDATE_COUNTER=UPDATE JBM_COUNTER SET NEXT_ID = ? WHERE NAME=?
+ SELECT_COUNTER=SELECT NEXT_ID FROM JBM_COUNTER WHERE NAME=? FOR UPDATE
+ INSERT_COUNTER=INSERT INTO JBM_COUNTER (NAME, NEXT_ID) VALUES (?, ?)
+ SELECT_ALL_CHANNELS=SELECT DISTINCT(CHANNEL_ID) FROM JBM_MSG_REF
+ ]]></attribute>
+ <attribute name="MaxParams">500</attribute>
+ </mbean>
+
+ <mbean code="org.jboss.messaging.core.plugin.ClusteredPostOfficeService"
+ name="jboss.messaging:service=PostOffice"
+ xmbean-dd="xmdesc/ClusteredPostOffice-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+ <attribute name="PostOfficeName">Clustered JMS</attribute>
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+ <attribute name="CreateTablesOnStartup">true</attribute>
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_POSTOFFICE_TABLE=CREATE TABLE JBM_POSTOFFICE (POSTOFFICE_NAME VARCHAR(255), NODE_ID INTEGER, QUEUE_NAME VARCHAR(1023), COND VARCHAR(1023), SELECTOR VARCHAR(1023), CHANNEL_ID BIGINT, IS_FAILED_OVER CHAR(1), FAILED_NODE_ID INTEGER)
+INSERT_BINDING=INSERT INTO JBM_POSTOFFICE (POSTOFFICE_NAME, NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, IS_FAILED_OVER, FAILED_NODE_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+DELETE_BINDING=DELETE FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=? AND QUEUE_NAME=?
+LOAD_BINDINGS=SELECT NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, IS_FAILED_OVER, FAILED_NODE_ID FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME = ?
+ ]]></attribute>
+ <attribute name="GroupName">DefaultPostOffice</attribute>
+ <attribute name="StateTimeout">5000</attribute>
+ <attribute name="CastTimeout">5000</attribute>
+ <attribute name="StatsSendPeriod">10000</attribute>
+ <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.NullMessagePullPolicy</attribute>
+ <attribute name="ClusterRouterFactory">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultRouterFactory</attribute>
+
+
+ <attribute name="ChannelFactoryName">jgroups.mux:name=Multiplexer</attribute>
+ <attribute name="SyncChannelName">udp-sync</attribute>
+ <attribute name="AsyncChannelName">udp</attribute>
+ <attribute name="ChannelPartitionName">${jboss.partition.name:DefaultPartition}-JMS</attribute>
+
+ <attribute name="AsyncChannelConfig">
+ <config>
+ <UDP mcast_recv_buf_size="500000" down_thread="false" ip_mcast="true" mcast_send_buf_size="32000"
+ mcast_port="45567" ucast_recv_buf_size="500000" use_incoming_packet_handler="false"
+ mcast_addr="228.8.8.8" use_outgoing_packet_handler="true" loopback="true" ucast_send_buf_size="32000" ip_ttl="32" bind_addr="127.0.0.1"/>
+ <AUTOCONF down_thread="false" up_thread="false"/>
+ <PING timeout="2000" down_thread="false" num_initial_members="3" up_thread="false"/>
+ <MERGE2 max_interval="10000" down_thread="false" min_interval="5000" up_thread="false"/>
+ <FD_SOCK down_thread="false" up_thread="false"/>
+ <FD timeout="20000" max_tries="3" down_thread="false" up_thread="false" shun="true"/>
+ <VERIFY_SUSPECT timeout="1500" down_thread="false" up_thread="false"/>
+ <pbcast.NAKACK max_xmit_size="8192" down_thread="false" use_mcast_xmit="true" gc_lag="50" up_thread="false"
+ retransmit_timeout="100,200,600,1200,2400,4800"/>
+ <UNICAST timeout="1200,2400,3600" down_thread="false" up_thread="false"/>
+ <pbcast.STABLE stability_delay="1000" desired_avg_gossip="20000" down_thread="false" max_bytes="0" up_thread="false"/>
+ <FRAG frag_size="8192" down_thread="false" up_thread="false"/>
+ <VIEW_SYNC avg_send_interval="60000" down_thread="false" up_thread="false" />
+ <pbcast.GMS print_local_addr="true" join_timeout="3000" down_thread="false" join_retry_timeout="2000" up_thread="false" shun="true"/>
+ </config>
+ </attribute>
+
+ <attribute name="SyncChannelConfig">
+ <config>
+ <UDP mcast_recv_buf_size="500000" down_thread="false" ip_mcast="true" mcast_send_buf_size="32000"
+ mcast_port="45568" ucast_recv_buf_size="500000" use_incoming_packet_handler="false"
+ mcast_addr="228.8.8.8" use_outgoing_packet_handler="true" loopback="true" ucast_send_buf_size="32000" ip_ttl="32" bind_addr="127.0.0.1"/>
+ <AUTOCONF down_thread="false" up_thread="false"/>
+ <PING timeout="2000" down_thread="false" num_initial_members="3" up_thread="false"/>
+ <MERGE2 max_interval="10000" down_thread="false" min_interval="5000" up_thread="false"/>
+ <FD_SOCK down_thread="false" up_thread="false"/>
+ <FD timeout="20000" max_tries="3" down_thread="false" up_thread="false" shun="true"/>
+ <VERIFY_SUSPECT timeout="1500" down_thread="false" up_thread="false"/>
+ <pbcast.NAKACK max_xmit_size="8192" down_thread="false" use_mcast_xmit="true" gc_lag="50" up_thread="false"
+ retransmit_timeout="100,200,600,1200,2400,4800"/>
+ <UNICAST timeout="1200,2400,3600" down_thread="false" up_thread="false"/>
+ <pbcast.STABLE stability_delay="1000" desired_avg_gossip="20000" down_thread="false" max_bytes="0" up_thread="false"/>
+ <FRAG frag_size="8192" down_thread="false" up_thread="false"/>
+ <VIEW_SYNC avg_send_interval="60000" down_thread="false" up_thread="false" />
+ <pbcast.GMS print_local_addr="true" join_timeout="3000" down_thread="false" join_retry_timeout="2000" up_thread="false" shun="true"/>
+ <pbcast.STATE_TRANSFER down_thread="false" up_thread="false"/>
+ </config>
+ </attribute>
+ </mbean>
+
+ <mbean code="org.jboss.jms.server.plugin.JDBCJMSUserManagerService"
+ name="jboss.messaging:service=JMSUserManager"
+ xmbean-dd="xmdesc/JMSUserManager-xmbean.xml">
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+ <attribute name="CreateTablesOnStartup">true</attribute>
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_USER_TABLE=CREATE TABLE JBM_USER (USER_ID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, CLIENTID VARCHAR(128), PRIMARY KEY(USER_ID))
+CREATE_ROLE_TABLE=CREATE TABLE JBM_ROLE (ROLE_ID VARCHAR(32) NOT NULL, USER_ID VARCHAR(32) NOT NULL, PRIMARY KEY(USER_ID, ROLE_ID))
+SELECT_PRECONF_CLIENTID=SELECT CLIENTID FROM JBM_USER WHERE USER_ID=?
+POPULATE.TABLES.1=INSERT INTO JBM_USER (USER_ID,PASSWD,CLIENTID) VALUES ('dilbert','dogbert','dilbert-id')
+ ]]></attribute>
+ </mbean>
+
+</server>
\ No newline at end of file
Modified: trunk/src/etc/server/default/deploy/connection-factories-service.xml
===================================================================
--- trunk/src/etc/server/default/deploy/connection-factories-service.xml 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/etc/server/default/deploy/connection-factories-service.xml 2007-02-21 18:07:44 UTC (rev 2386)
@@ -12,7 +12,7 @@
name="jboss.messaging.connectionfactory:service=ConnectionFactory"
xmbean-dd="xmdesc/ConnectionFactory-xmbean.xml">
<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
- <depends optional-attribute-name="Connector">jboss.messaging:service=Connector,transport=socket</depends>
+ <depends optional-attribute-name="Connector">jboss.messaging:service=Connector,transport=bisocket</depends>
<depends>jboss.messaging:service=PostOffice</depends>
<attribute name="JNDIBindings">
@@ -37,7 +37,7 @@
name="jboss.messaging.connectionfactory:service=NonClusteredConnectionFactory"
xmbean-dd="xmdesc/ConnectionFactory-xmbean.xml">
<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
- <depends optional-attribute-name="Connector">jboss.messaging:service=Connector,transport=socket</depends>
+ <depends optional-attribute-name="Connector">jboss.messaging:service=Connector,transport=bisocket</depends>
<depends>jboss.messaging:service=PostOffice</depends>
<attribute name="JNDIBindings">
Added: trunk/src/etc/server/default/deploy/db2-persistence-service.xml
===================================================================
--- trunk/src/etc/server/default/deploy/db2-persistence-service.xml (rev 0)
+++ trunk/src/etc/server/default/deploy/db2-persistence-service.xml 2007-02-21 18:07:44 UTC (rev 2386)
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ DB2 non-clustered persistence deployment descriptor.
+
+ UNTESTED
+
+ $Id$
+ -->
+
+<server>
+
+ <mbean code="org.jboss.messaging.core.plugin.JDBCPersistenceManagerService"
+ name="jboss.messaging:service=PersistenceManager"
+ xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+ <attribute name="CreateTablesOnStartup">true</attribute>
+ <attribute name="UsingBatchUpdates">true</attribute>
+ <attribute name="SqlProperties"><![CDATA[
+ CREATE_MESSAGE_REFERENCE=CREATE TABLE JBM_MSG_REF (CHANNEL_ID BIGINT, MESSAGE_ID BIGINT, TRANSACTION_ID BIGINT, STATE CHAR(1), ORD BIGINT, PAGE_ORD BIGINT, DELIVERY_COUNT INTEGER, SCHED_DELIVERY BIGINT, PRIMARY KEY(CHANNEL_ID, MESSAGE_ID))
+ CREATE_IDX_MESSAGE_REF_TX=CREATE INDEX JBM_MSG_REF_TX ON JBM_MSG_REF (TRANSACTION_ID)
+ CREATE_IDX_MESSAGE_REF_ORD=CREATE INDEX JBM_MSG_REF_ORD ON JBM_MSG_REF (ORD)
+ CREATE_IDX_MESSAGE_REF_PAGE_ORD=CREATE INDEX JBM_MSG_REF_PAGE_ORD ON JBM_MSG_REF (PAGE_ORD)
+ CREATE_IDX_MESSAGE_REF_MESSAGE_ID=CREATE INDEX JBM_MSG_REF_MESSAGE_ID ON JBM_MSG_REF (MESSAGE_ID)
+ CREATE_IDX_MESSAGE_REF_SCHED_DELIVERY=CREATE INDEX JBM_MSG_REF_SCHED_DELIVERY ON JBM_MSG_REF (SCHED_DELIVERY)
+ CREATE_MESSAGE=CREATE TABLE JBM_MSG (MESSAGE_ID BIGINT, RELIABLE CHAR(1), EXPIRATION BIGINT, TIMESTAMP BIGINT, PRIORITY SMALLINT, HEADERS BLOB, PAYLOAD BLOB, CHANNEL_COUNT INTEGER, TYPE SMALLINT, PRIMARY KEY (MESSAGE_ID))
+ CREATE_TRANSACTION=CREATE TABLE JBM_TX (TRANSACTION_ID BIGINT, BRANCH_QUAL BLOB(254), FORMAT_ID INTEGER, GLOBAL_TXID BLOB(254), PRIMARY KEY (TRANSACTION_ID))
+ CREATE_COUNTER=CREATE TABLE JBM_COUNTER (NAME VARCHAR(255), NEXT_ID BIGINT, PRIMARY KEY(NAME))
+ INSERT_MESSAGE_REF=INSERT INTO JBM_MSG_REF (CHANNEL_ID, MESSAGE_ID, TRANSACTION_ID, STATE, ORD, PAGE_ORD, DELIVERY_COUNT, SCHED_DELIVERY) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ DELETE_MESSAGE_REF=DELETE FROM JBM_MSG_REF WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_MESSAGE_REF=UPDATE JBM_MSG_REF SET TRANSACTION_ID=?, STATE='-' WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_PAGE_ORDER=UPDATE JBM_MSG_REF SET PAGE_ORD = ? WHERE MESSAGE_ID=? AND CHANNEL_ID=?
+ COMMIT_MESSAGE_REF1=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='+'
+ COMMIT_MESSAGE_REF2=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='-'
+ ROLLBACK_MESSAGE_REF1=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='+'
+ ROLLBACK_MESSAGE_REF2=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='-'
+ LOAD_PAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, PAGE_ORD, SCHED_DELIVERY FROM JBM_MSG_REF WHERE CHANNEL_ID = ? AND PAGE_ORD BETWEEN ? AND ? ORDER BY PAGE_ORD
+ LOAD_UNPAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? AND PAGE_ORD IS NULL ORDER BY ORD
+ UPDATE_REFS_NOT_PAGED=UPDATE JBM_MSG_REF SET PAGE_ORD = NULL WHERE PAGE_ORD BETWEEN ? AND ? AND CHANNEL_ID=?
+ SELECT_MIN_MAX_PAGE_ORD=SELECT MIN(PAGE_ORD), MAX(PAGE_ORD) FROM JBM_MSG_REF WHERE CHANNEL_ID = ?
+ SELECT_EXISTS_REF=SELECT MESSAGE_ID FROM JBM_MSG_REF WHERE CHANNEL_ID = ? AND MESSAGE_ID = ?
+ SELECT_EXISTS_REF_MESSAGE_ID=SELECT MESSAGE_ID FROM JBM_MSG_REF WHERE MESSAGE_ID = ?
+ UPDATE_DELIVERY_COUNT=UPDATE JBM_MSG_REF SET DELIVERY_COUNT = ? WHERE CHANNEL_ID = ? AND MESSAGE_ID = ?
+ LOAD_MESSAGES=SELECT MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, HEADERS, PAYLOAD, TYPE FROM JBM_MSG
+ INSERT_MESSAGE=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, HEADERS, PAYLOAD, CHANNEL_COUNT, TYPE) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
+ INC_CHANNEL_COUNT=UPDATE JBM_MSG SET CHANNEL_COUNT = CHANNEL_COUNT + 1 WHERE MESSAGE_ID=?
+ DEC_CHANNEL_COUNT=UPDATE JBM_MSG SET CHANNEL_COUNT = CHANNEL_COUNT - 1 WHERE MESSAGE_ID=?
+ DELETE_MESSAGE=DELETE FROM JBM_MSG WHERE MESSAGE_ID=? AND CHANNEL_COUNT=0
+ MESSAGE_ID_COLUMN=MESSAGE_ID
+ MESSAGE_EXISTS=SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ? FOR UPDATE
+ INSERT_TRANSACTION=INSERT INTO JBM_TX (TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID) VALUES(?, ?, ?, ?)
+ DELETE_TRANSACTION=DELETE FROM JBM_TX WHERE TRANSACTION_ID = ?
+ SELECT_PREPARED_TRANSACTIONS=SELECT TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID FROM JBM_TX
+ SELECT_MESSAGE_ID_FOR_REF=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '+' ORDER BY ORD
+ SELECT_MESSAGE_ID_FOR_ACK=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '-' ORDER BY ORD
+ UPDATE_COUNTER=UPDATE JBM_COUNTER SET NEXT_ID = ? WHERE NAME=?
+ SELECT_COUNTER=SELECT NEXT_ID FROM JBM_COUNTER WHERE NAME=? FOR UPDATE
+ INSERT_COUNTER=INSERT INTO JBM_COUNTER (NAME, NEXT_ID) VALUES (?, ?)
+ SELECT_ALL_CHANNELS=SELECT DISTINCT(CHANNEL_ID) FROM JBM_MSG_REF
+ ]]></attribute>
+ <attribute name="MaxParams">500</attribute>
+ </mbean>
+
+ <mbean code="org.jboss.messaging.core.plugin.DefaultPostOfficeService"
+ name="jboss.messaging:service=PostOffice"
+ xmbean-dd="xmdesc/DefaultPostOffice-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+ <attribute name="PostOfficeName">JMS</attribute>
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+ <attribute name="CreateTablesOnStartup">true</attribute>
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_POSTOFFICE_TABLE=CREATE TABLE JBM_POSTOFFICE (POSTOFFICE_NAME VARCHAR(255), NODE_ID INTEGER, QUEUE_NAME VARCHAR(1023), COND VARCHAR(1023), SELECTOR VARCHAR(1023), CHANNEL_ID BIGINT, IS_FAILED_OVER CHAR(1), FAILED_NODE_ID INTEGER)
+INSERT_BINDING=INSERT INTO JBM_POSTOFFICE (POSTOFFICE_NAME, NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, IS_FAILED_OVER, FAILED_NODE_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+DELETE_BINDING=DELETE FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=? AND QUEUE_NAME=?
+LOAD_BINDINGS=SELECT NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, IS_FAILED_OVER, FAILED_NODE_ID FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME = ?
+ ]]></attribute>
+ </mbean>
+
+ <mbean code="org.jboss.jms.server.plugin.JDBCJMSUserManagerService"
+ name="jboss.messaging:service=JMSUserManager"
+ xmbean-dd="xmdesc/JMSUserManager-xmbean.xml">
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+ <attribute name="CreateTablesOnStartup">true</attribute>
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_USER_TABLE=CREATE TABLE JBM_USER (USER_ID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, CLIENTID VARCHAR(128), PRIMARY KEY(USER_ID))
+CREATE_ROLE_TABLE=CREATE TABLE JBM_ROLE (ROLE_ID VARCHAR(32) NOT NULL, USER_ID VARCHAR(32) NOT NULL, PRIMARY KEY(USER_ID, ROLE_ID))
+SELECT_PRECONF_CLIENTID=SELECT CLIENTID FROM JBM_USER WHERE USER_ID=?
+POPULATE.TABLES.1=INSERT INTO JBM_USER (USER_ID,PASSWD,CLIENTID) VALUES ('dilbert','dogbert','dilbert-id')
+ ]]></attribute>
+ </mbean>
+
+</server>
\ No newline at end of file
Modified: trunk/src/etc/server/default/deploy/messaging-service.xml
===================================================================
--- trunk/src/etc/server/default/deploy/messaging-service.xml 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/etc/server/default/deploy/messaging-service.xml 2007-02-21 18:07:44 UTC (rev 2386)
@@ -25,7 +25,7 @@
<depends optional-attribute-name="JMSUserManager">jboss.messaging:service=JMSUserManager</depends>
- <depends>jboss.messaging:service=Connector,transport=socket</depends>
+ <depends>jboss.messaging:service=Connector,transport=bisocket</depends>
<attribute name="PostOffice">jboss.messaging:service=PostOffice</attribute>
Modified: trunk/src/etc/server/default/deploy/remoting-service.xml
===================================================================
--- trunk/src/etc/server/default/deploy/remoting-service.xml 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/etc/server/default/deploy/remoting-service.xml 2007-02-21 18:07:44 UTC (rev 2386)
@@ -9,8 +9,8 @@
<server>
<mbean code="org.jboss.remoting.transport.Connector"
- name="jboss.messaging:service=Connector,transport=socket"
- display-name="Socket transport Connector">
+ name="jboss.messaging:service=Connector,transport=bisocket"
+ display-name="Bisocket transport Connector">
<attribute name="Configuration">
<config>
<invoker transport="bisocket">
@@ -27,10 +27,10 @@
<attribute name="callbackStore">org.jboss.remoting.callback.CallbackStore</attribute>
<attribute name="clientSocketClass" isParam="true">org.jboss.jms.client.remoting.ClientSocketWrapper</attribute>
<attribute name="serverSocketClass">org.jboss.jms.server.remoting.ServerSocketWrapper</attribute>
- <attribute name="NumberOfRetries">1</attribute>
- <attribute name="NumberOfCallRetries">2</attribute>
- <attribute name="callbackErrorsAllowed">1</attribute>
- <attribute name="onewayThreadPool">org.jboss.jms.server.remoting.DirectThreadPool</attribute>
+ <attribute name="callbackErrorsAllowed">1</attribute>
+ <attribute name="numberOfRetries" isParam="true">1</attribute>
+ <attribute name="NumberOfCallRetries" isParam="true">2</attribute>
+ <attribute name="clientMaxPoolSize" isParam="true">50</attribute>
</invoker>
<handlers>
<handler subsystem="JMS">org.jboss.jms.server.remoting.JMSServerInvocationHandler</handler>
@@ -59,8 +59,8 @@
<attribute name="serverBindPort">4458</attribute>
<attribute name="leasePeriod">20000</attribute>
<attribute name="callbackStore">org.jboss.remoting.callback.CallbackStore</attribute>
- <attribute name="callbackPollPeriod" isParam="true">100</attribute>
- <attribute name="onewayThreadPool">org.jboss.jms.server.remoting.DirectThreadPool</attribute>
+ <attribute name="callbackPollPeriod" isParam="true">100</attribute>
+ <attribute name="onewayThreadPool">org.jboss.jms.server.remoting.DirectThreadPool</attribute>
</invoker>
<handlers>
<handler subsystem="JMS">org.jboss.jms.server.remoting.JMSServerInvocationHandler</handler>
Modified: trunk/src/etc/xmdesc/ClusteredPostOffice-xmbean.xml
===================================================================
--- trunk/src/etc/xmdesc/ClusteredPostOffice-xmbean.xml 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/etc/xmdesc/ClusteredPostOffice-xmbean.xml 2007-02-21 18:07:44 UTC (rev 2386)
@@ -136,6 +136,12 @@
<name>ChannelPartitionName</name>
<type>java.lang.String</type>
</attribute>
+
+ <attribute access="read-write" getMethod="getThreadPoolSize" setMethod="setThreadPoolSize">
+ <description>The size of the thread pool used to perform various asynchronous clustering operations</description>
+ <name>ThreadPoolSize</name>
+ <type>int</type>
+ </attribute>
<!-- Managed operations -->
Modified: trunk/src/etc/xmdesc/ConnectionFactory-xmbean.xml
===================================================================
--- trunk/src/etc/xmdesc/ConnectionFactory-xmbean.xml 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/etc/xmdesc/ConnectionFactory-xmbean.xml 2007-02-21 18:07:44 UTC (rev 2386)
@@ -65,6 +65,12 @@
<name>DefaultTempQueueDownCacheSize</name>
<type>int</type>
</attribute>
+
+ <attribute access="read-write" getMethod="getDupsOKBatchSize" setMethod="setDupsOKBatchSize">
+ <description>The value of the DUPS_OK_ACKNOWLEDGE batch size to use for sessions created from this connection factory</description>
+ <name>DupsOKBatchSize</name>
+ <type>int</type>
+ </attribute>
<!-- ServerPeer ObjectName is configured as a dependency optional-attribute-name, this is the
only reason for this attribute to be writable. Any write attempt on this attribute after
Modified: trunk/src/etc/xmdesc/ServerPeer-xmbean.xml
===================================================================
--- trunk/src/etc/xmdesc/ServerPeer-xmbean.xml 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/etc/xmdesc/ServerPeer-xmbean.xml 2007-02-21 18:07:44 UTC (rev 2386)
@@ -145,12 +145,6 @@
<name>DefaultSecurityConfig</name>
<type>org.w3c.dom.Element</type>
</attribute>
-
- <attribute access="read-write" getMethod="getQueuedExecutorPoolSize" setMethod="setQueuedExecutorPoolSize">
- <description>The size of the rotating pool from which to allocate QueuedExecutors</description>
- <name>QueuedExecutorPoolSize</name>
- <type>int</type>
- </attribute>
<attribute access="read-write" getMethod="getDefaultMaxDeliveryAttempts" setMethod="setDefaultMaxDeliveryAttempts">
<description>The default maximum delivery attempts for destinations, unless overridden on the destination</description>
Deleted: trunk/src/main/org/jboss/jms/client/container/AsfAspect.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/container/AsfAspect.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/client/container/AsfAspect.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -1,199 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.jms.client.container;
-
-import java.util.LinkedList;
-
-import javax.jms.IllegalStateException;
-import javax.jms.MessageListener;
-import javax.jms.ServerSessionPool;
-
-import org.jboss.aop.joinpoint.Invocation;
-import org.jboss.aop.joinpoint.MethodInvocation;
-import org.jboss.jms.client.JBossConnectionConsumer;
-import org.jboss.jms.client.delegate.DelegateSupport;
-import org.jboss.jms.client.remoting.MessageCallbackHandler;
-import org.jboss.jms.client.state.SessionState;
-import org.jboss.jms.delegate.ConnectionDelegate;
-import org.jboss.jms.delegate.SessionDelegate;
-import org.jboss.jms.destination.JBossDestination;
-import org.jboss.jms.message.MessageProxy;
-import org.jboss.logging.Logger;
-
-
-/**
- * An aspect that implements the Application Server Facilities for concurrent processing of
- * a consumer's messages.
- *
- * See JMS 1.1 spec. section 8.2
- *
- * This aspect is PER_INSTANCE.
- *
- * @author <a href="mailto:tim.fox at jboss.com>Tim Fox</a>
- *
- * $Id$
- */
-public class AsfAspect
-{
- // Constants -----------------------------------------------------
-
- private static final Logger log = Logger.getLogger(AsfAspect.class);
-
- // Attributes ----------------------------------------------------
-
- private boolean trace = log.isTraceEnabled();
-
- //The list of messages that get processed on a call to run()
- protected LinkedList msgs = new LinkedList();
-
- //The distinguished message listener
- protected MessageListener sessionListener;
-
- protected SessionState state;
-
- // Static --------------------------------------------------------
-
- // Constructors --------------------------------------------------
-
- // Public --------------------------------------------------------
-
- public Object handleSetMessageListener(Invocation invocation) throws Throwable
- {
- if (trace) { log.trace("setMessageListener()"); }
-
- MethodInvocation mi = (MethodInvocation)invocation;
-
- MessageListener listener = (MessageListener)mi.getArguments()[0];
-
- if (listener == null)
- {
- throw new IllegalStateException("Cannot set a null MessageListener on the session");
- }
-
- sessionListener = listener;
-
- return null;
- }
-
- public Object handleGetMessageListener(Invocation invocation) throws Throwable
- {
- if (trace) { log.trace("getMessageListener()"); }
-
- return sessionListener;
- }
-
- public Object handleCreateConnectionConsumer(Invocation invocation) throws Throwable
- {
- if (trace) { log.trace("createConnectionConsumer()"); }
-
- MethodInvocation mi = (MethodInvocation)invocation;
-
- JBossDestination dest = (JBossDestination)mi.getArguments()[0];
- String subscriptionName = (String)mi.getArguments()[1];
- String messageSelector = (String)mi.getArguments()[2];
- ServerSessionPool sessionPool = (ServerSessionPool)mi.getArguments()[3];
- int maxMessages = ((Integer)mi.getArguments()[4]).intValue();
-
- return new JBossConnectionConsumer((ConnectionDelegate)mi.getTargetObject(), dest,
- subscriptionName, messageSelector, sessionPool,
- maxMessages);
- }
-
- public Object handleAddAsfMessage(Invocation invocation) throws Throwable
- {
- if (trace) { log.trace("addAsfMessage()"); }
-
- MethodInvocation mi = (MethodInvocation)invocation;
-
- // Load the session with a message to be processed during a subsequent call to run()
-
- MessageProxy m = (MessageProxy)mi.getArguments()[0];
- int theConsumerID = ((Integer)mi.getArguments()[1]).intValue();
- long channelID = ((Long)mi.getArguments()[2]).longValue();
- int maxDeliveries = ((Integer)mi.getArguments()[3]).intValue();
- SessionDelegate connectionConsumerDelegate = ((SessionDelegate)mi.getArguments()[4]);
-
- if (m == null)
- {
- throw new IllegalStateException("Cannot add a null message to the session");
- }
-
- AsfMessageHolder holder = new AsfMessageHolder();
- holder.msg = m;
- holder.consumerID = theConsumerID;
- holder.channelID = channelID;
- holder.maxDeliveries = maxDeliveries;
- holder.connectionConsumerDelegate = connectionConsumerDelegate;
-
- msgs.add(holder);
-
- return null;
- }
-
- public Object handleRun(Invocation invocation) throws Throwable
- {
- if (trace) { log.trace("run()"); }
-
- MethodInvocation mi = (MethodInvocation)invocation;
-
- //This is the delegate for the session from the pool
- SessionDelegate del = (SessionDelegate)mi.getTargetObject();
-
- int ackMode = getSessionState(invocation).getAcknowledgeMode();
-
- while (msgs.size() > 0)
- {
- AsfMessageHolder holder = (AsfMessageHolder)msgs.removeFirst();
-
- if (trace) { log.trace("sending " + holder.msg + " to the message listener" ); }
-
- MessageCallbackHandler.callOnMessage(del, sessionListener, holder.consumerID,
- holder.channelID, false,
- holder.msg, ackMode, holder.maxDeliveries,
- holder.connectionConsumerDelegate);
- }
-
- return null;
- }
-
- // Protected ------------------------------------------------------
-
- // Package Private ------------------------------------------------
-
- // Private --------------------------------------------------------
-
- private SessionState getSessionState(Invocation inv)
- {
- return (SessionState)((DelegateSupport)inv.getTargetObject()).getState();
- }
-
- // Inner Classes --------------------------------------------------
-
- private static class AsfMessageHolder
- {
- private MessageProxy msg;
- private int consumerID;
- private long channelID;
- private int maxDeliveries;
- private SessionDelegate connectionConsumerDelegate;
- }
-}
Deleted: trunk/src/main/org/jboss/jms/client/container/FactoryAspect.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/container/FactoryAspect.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/client/container/FactoryAspect.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -1,127 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.jms.client.container;
-
-import java.io.Serializable;
-
-import org.jboss.aop.joinpoint.Invocation;
-import org.jboss.aop.joinpoint.MethodInvocation;
-import org.jboss.jms.message.BytesMessageProxy;
-import org.jboss.jms.message.JBossBytesMessage;
-import org.jboss.jms.message.JBossMapMessage;
-import org.jboss.jms.message.JBossMessage;
-import org.jboss.jms.message.JBossObjectMessage;
-import org.jboss.jms.message.JBossStreamMessage;
-import org.jboss.jms.message.JBossTextMessage;
-import org.jboss.jms.message.MapMessageProxy;
-import org.jboss.jms.message.MessageProxy;
-import org.jboss.jms.message.ObjectMessageProxy;
-import org.jboss.jms.message.StreamMessageProxy;
-import org.jboss.jms.message.TextMessageProxy;
-
-/**
- * Constructs various things that can be created entirely or partially on the client.
- *
- * This aspect is PER_INSTANCE.
- *
- * @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * @version <tt>$Revision$</tt>
- *
- * $Id$
- */
-public class FactoryAspect
-{
- // Constants -----------------------------------------------------
-
- // Static --------------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- // Constructors --------------------------------------------------
-
- // Public --------------------------------------------------------
-
- public Object handleCreateMessage(Invocation invocation) throws Throwable
- {
- JBossMessage jbm = new JBossMessage(0);
-
- return new MessageProxy(jbm);
- }
-
- public Object handleCreateBytesMessage(Invocation invocation) throws Throwable
- {
- JBossBytesMessage jbm = new JBossBytesMessage(0);
-
- return new BytesMessageProxy(jbm);
- }
-
- public Object handleCreateMapMessage(Invocation invocation) throws Throwable
- {
- JBossMapMessage jbm = new JBossMapMessage(0);
-
- return new MapMessageProxy(jbm);
- }
-
- public Object handleCreateObjectMessage(Invocation invocation) throws Throwable
- {
- JBossObjectMessage jbm = new JBossObjectMessage(0);
-
- MethodInvocation mi = (MethodInvocation)invocation;
-
- if (mi.getArguments() != null)
- {
- jbm.setObject((Serializable)mi.getArguments()[0]);
- }
-
- return new ObjectMessageProxy(jbm);
- }
-
- public Object handleCreateStreamMessage(Invocation invocation) throws Throwable
- {
- JBossStreamMessage jbm = new JBossStreamMessage(0);
-
- return new StreamMessageProxy(jbm);
- }
-
- public Object handleCreateTextMessage(Invocation invocation) throws Throwable
- {
- JBossTextMessage jbm = new JBossTextMessage(0);
-
- MethodInvocation mi = (MethodInvocation)invocation;
-
- if (mi.getArguments() != null)
- {
- jbm.setText((String)mi.getArguments()[0]);
- }
-
- return new TextMessageProxy(jbm);
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
- // Inner classes -------------------------------------------------
-}
Modified: trunk/src/main/org/jboss/jms/client/container/ProducerAspect.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/container/ProducerAspect.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/client/container/ProducerAspect.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -50,7 +50,9 @@
* Handles sending of messages plus handles get and set methods for Producer -
* returning state from local cache
*
- * This aspect is PER_INSTANCE.
+ * This aspect is PER_VM.
+ *
+ * Remember! PER_INSTANCE aspects are very expensive so we avoid them.
*
* @author <a href="mailto:tim.fox at jboss.com>Tim Fox</a>
* @version <tt>$Revision$</tt>
@@ -67,11 +69,11 @@
private boolean trace = log.isTraceEnabled();
- protected ProducerState producerState;
+ //protected ProducerState producerState;
- protected ConnectionState connectionState;
+ //protected ConnectionState connectionState;
- protected SessionState sessionState;
+ //protected SessionState sessionState;
// Static --------------------------------------------------------
@@ -166,8 +168,10 @@
m.setJMSDestination(destination);
+ SessionState sessionState = (SessionState)producerState.getParent();
+
// Generate the message id
- ConnectionState connectionState = getConnectionState(invocation);
+ ConnectionState connectionState = (ConnectionState)sessionState.getParent();
long id = connectionState.getIdGenerator().getId();
@@ -238,9 +242,7 @@
{
m.setJMSMessageID(messageToSend.getJMSMessageID());
}
-
- SessionState sessionState = getSessionState(invocation);
-
+
// we now invoke the send(Message) method on the session, which will eventually be fielded
// by connection endpoint
((SessionDelegate)sessionState.getDelegate()).send(messageToSend, false);
@@ -352,33 +354,11 @@
private ProducerState getProducerState(Invocation inv)
{
- if (producerState == null)
- {
- producerState = (ProducerState)((DelegateSupport)inv.getTargetObject()).getState();
- }
+ ProducerState producerState = (ProducerState)((DelegateSupport)inv.getTargetObject()).getState();
+
return producerState;
}
- private ConnectionState getConnectionState(Invocation inv)
- {
- if (connectionState == null)
- {
- connectionState =
- (ConnectionState)((DelegateSupport)inv.getTargetObject()).getState().getParent().getParent();
- }
- return connectionState;
- }
-
- private SessionState getSessionState(Invocation inv)
- {
- if (sessionState == null)
- {
- sessionState =
- (SessionState)((DelegateSupport)inv.getTargetObject()).getState().getParent();
- }
- return sessionState;
- }
-
// Inner Classes -------------------------------------------------
}
Modified: trunk/src/main/org/jboss/jms/client/container/SessionAspect.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/container/SessionAspect.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/client/container/SessionAspect.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -21,17 +21,22 @@
*/
package org.jboss.jms.client.container;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
+import java.util.LinkedList;
import java.util.List;
import javax.jms.IllegalStateException;
import javax.jms.Message;
+import javax.jms.MessageListener;
+import javax.jms.ServerSessionPool;
import javax.jms.Session;
import javax.jms.TransactionInProgressException;
import org.jboss.aop.joinpoint.Invocation;
import org.jboss.aop.joinpoint.MethodInvocation;
+import org.jboss.jms.client.JBossConnectionConsumer;
import org.jboss.jms.client.delegate.ClientSessionDelegate;
import org.jboss.jms.client.delegate.DelegateSupport;
import org.jboss.jms.client.remoting.MessageCallbackHandler;
@@ -39,8 +44,19 @@
import org.jboss.jms.client.state.SessionState;
import org.jboss.jms.delegate.ConnectionDelegate;
import org.jboss.jms.delegate.SessionDelegate;
+import org.jboss.jms.destination.JBossDestination;
+import org.jboss.jms.message.BytesMessageProxy;
+import org.jboss.jms.message.JBossBytesMessage;
+import org.jboss.jms.message.JBossMapMessage;
import org.jboss.jms.message.JBossMessage;
+import org.jboss.jms.message.JBossObjectMessage;
+import org.jboss.jms.message.JBossStreamMessage;
+import org.jboss.jms.message.JBossTextMessage;
+import org.jboss.jms.message.MapMessageProxy;
import org.jboss.jms.message.MessageProxy;
+import org.jboss.jms.message.ObjectMessageProxy;
+import org.jboss.jms.message.StreamMessageProxy;
+import org.jboss.jms.message.TextMessageProxy;
import org.jboss.jms.server.endpoint.DefaultCancel;
import org.jboss.jms.server.endpoint.DeliveryInfo;
import org.jboss.jms.tx.LocalTx;
@@ -112,8 +128,7 @@
//any deliveries - this is because the message listener might have closed
//before on message had finished executing
- if (ackMode == Session.AUTO_ACKNOWLEDGE ||
- ackMode == Session.DUPS_OK_ACKNOWLEDGE)
+ if (ackMode == Session.AUTO_ACKNOWLEDGE)
{
//Acknowledge or cancel any outstanding auto ack
@@ -123,13 +138,36 @@
{
if (trace) { log.trace(this + " handleClosing(). Found remaining auto ack. Will ack " + remainingAutoAck); }
- ackDelivery(del, remainingAutoAck);
-
- if (trace) { log.trace(this + " acked it"); }
-
- state.setAutoAckInfo(null);
+ try
+ {
+ ackDelivery(del, remainingAutoAck);
+
+ if (trace) { log.trace(this + " acked it"); }
+ }
+ finally
+ {
+ state.setAutoAckInfo(null);
+ }
}
}
+ else if (ackMode == Session.DUPS_OK_ACKNOWLEDGE)
+ {
+ //Ack any remaining deliveries
+
+ if (!state.getClientAckList().isEmpty())
+ {
+ try
+ {
+ del.acknowledgeDeliveries(state.getClientAckList());
+ }
+ finally
+ {
+ state.getClientAckList().clear();
+
+ state.setAutoAckInfo(null);
+ }
+ }
+ }
else if (ackMode == Session.CLIENT_ACKNOWLEDGE)
{
// Cancel any oustanding deliveries
@@ -210,16 +248,23 @@
state.getClientAckList().add(info);
}
- else if (ackMode == Session.AUTO_ACKNOWLEDGE ||
- ackMode == Session.DUPS_OK_ACKNOWLEDGE)
+ else if (ackMode == Session.AUTO_ACKNOWLEDGE)
{
- // We collect the single acknowledgement in the state. Currently DUPS_OK is treated the
- // same as AUTO_ACKNOWLDGE.
+ // We collect the single acknowledgement in the state.
if (trace) { log.trace(this + " added " + info + " to session state"); }
state.setAutoAckInfo(info);
}
+ else if (ackMode == Session.DUPS_OK_ACKNOWLEDGE)
+ {
+ if (trace) { log.trace(this + " added to DUPS_OK_ACKNOWLEDGE list delivery " + info); }
+
+ state.getClientAckList().add(info);
+
+ //Also set here - this would be used for recovery in a message listener
+ state.setAutoAckInfo(info);
+ }
else
{
Object txID = state.getCurrentTxId();
@@ -258,10 +303,9 @@
int ackMode = state.getAcknowledgeMode();
- if (ackMode == Session.AUTO_ACKNOWLEDGE ||
- ackMode == Session.DUPS_OK_ACKNOWLEDGE)
+ if (ackMode == Session.AUTO_ACKNOWLEDGE)
{
- // We auto acknowledge. Currently DUPS_OK is treated the same as AUTO_ACKNOWLDGE.
+ // We auto acknowledge.
SessionDelegate sd = (SessionDelegate)mi.getTargetObject();
@@ -279,21 +323,62 @@
if (trace) { log.trace(this + " auto acknowledging delivery " + delivery); }
+
+ // We clear the state in a finally so then we don't get a knock on
+ // exception on the next ack since we haven't cleared the state. See
+ // http://jira.jboss.org/jira/browse/JBMESSAGING-852
+
+ //This is ok since the message is acked after delivery, then the client
+ //could get duplicates anyway
+
try
{
ackDelivery(sd, delivery);
}
finally
{
- state.setAutoAckInfo(null);
+ state.setAutoAckInfo(null);
}
+ }
+ else
+ {
+ if (trace) { log.trace(this + " recover called, so NOT acknowledging"); }
+
+ state.setRecoverCalled(false);
}
+ }
+ else if (ackMode == Session.DUPS_OK_ACKNOWLEDGE)
+ {
+ List acks = state.getClientAckList();
+
+ if (!state.isRecoverCalled())
+ {
+ if (acks.size() >= state.getDupsOKBatchSize())
+ {
+ // We clear the state in a finally
+ // http://jira.jboss.org/jira/browse/JBMESSAGING-852
+
+ SessionDelegate sd = (SessionDelegate)mi.getTargetObject();
+
+ try
+ {
+ sd.acknowledgeDeliveries(acks);
+ }
+ finally
+ {
+ acks.clear();
+ state.setAutoAckInfo(null);
+ }
+ }
+ }
else
{
if (trace) { log.trace(this + " recover called, so NOT acknowledging"); }
state.setRecoverCalled(false);
}
+ state.setAutoAckInfo(null);
+
}
return null;
@@ -341,16 +426,18 @@
//Call redeliver
SessionDelegate del = (SessionDelegate)mi.getTargetObject();
- if (state.getAcknowledgeMode() == Session.CLIENT_ACKNOWLEDGE)
+ int ackMode = state.getAcknowledgeMode();
+
+ if (ackMode == Session.CLIENT_ACKNOWLEDGE)
{
- del.redeliver(state.getClientAckList());
+ List dels = state.getClientAckList();
- state.getClientAckList().clear();
+ state.setClientAckList(new ArrayList());
+
+ del.redeliver(dels);
}
- else
+ else if (ackMode == Session.AUTO_ACKNOWLEDGE || ackMode == Session.DUPS_OK_ACKNOWLEDGE)
{
- //auto_ack or dups_ok
-
DeliveryInfo info = state.getAutoAckInfo();
//Don't recover if it's already to cancel
@@ -365,8 +452,8 @@
state.setAutoAckInfo(null);
}
- }
-
+ }
+
state.setRecoverCalled(true);
return null;
@@ -550,7 +637,170 @@
{
return new Integer(getState(invocation).getAcknowledgeMode());
}
+
+ public Object handleCreateMessage(Invocation invocation) throws Throwable
+ {
+ JBossMessage jbm = new JBossMessage(0);
+
+ return new MessageProxy(jbm);
+ }
+
+ public Object handleCreateBytesMessage(Invocation invocation) throws Throwable
+ {
+ JBossBytesMessage jbm = new JBossBytesMessage(0);
+
+ return new BytesMessageProxy(jbm);
+ }
+
+ public Object handleCreateMapMessage(Invocation invocation) throws Throwable
+ {
+ JBossMapMessage jbm = new JBossMapMessage(0);
+
+ return new MapMessageProxy(jbm);
+ }
+
+ public Object handleCreateObjectMessage(Invocation invocation) throws Throwable
+ {
+ JBossObjectMessage jbm = new JBossObjectMessage(0);
+
+ MethodInvocation mi = (MethodInvocation)invocation;
+
+ if (mi.getArguments() != null)
+ {
+ jbm.setObject((Serializable)mi.getArguments()[0]);
+ }
+
+ return new ObjectMessageProxy(jbm);
+ }
+
+ public Object handleCreateStreamMessage(Invocation invocation) throws Throwable
+ {
+ JBossStreamMessage jbm = new JBossStreamMessage(0);
+
+ return new StreamMessageProxy(jbm);
+ }
+
+ public Object handleCreateTextMessage(Invocation invocation) throws Throwable
+ {
+ JBossTextMessage jbm = new JBossTextMessage(0);
+
+ MethodInvocation mi = (MethodInvocation)invocation;
+
+ if (mi.getArguments() != null)
+ {
+ jbm.setText((String)mi.getArguments()[0]);
+ }
+
+ return new TextMessageProxy(jbm);
+ }
+
+
+
+ public Object handleSetMessageListener(Invocation invocation) throws Throwable
+ {
+ if (trace) { log.trace("setMessageListener()"); }
+
+ MethodInvocation mi = (MethodInvocation)invocation;
+
+ MessageListener listener = (MessageListener)mi.getArguments()[0];
+
+ if (listener == null)
+ {
+ throw new IllegalStateException("Cannot set a null MessageListener on the session");
+ }
+
+ getState(invocation).setDistinguishedListener(listener);
+
+ return null;
+ }
+
+ public Object handleGetMessageListener(Invocation invocation) throws Throwable
+ {
+ if (trace) { log.trace("getMessageListener()"); }
+
+ return getState(invocation).getDistinguishedListener();
+ }
+
+ public Object handleCreateConnectionConsumer(Invocation invocation) throws Throwable
+ {
+ if (trace) { log.trace("createConnectionConsumer()"); }
+
+ MethodInvocation mi = (MethodInvocation)invocation;
+
+ JBossDestination dest = (JBossDestination)mi.getArguments()[0];
+ String subscriptionName = (String)mi.getArguments()[1];
+ String messageSelector = (String)mi.getArguments()[2];
+ ServerSessionPool sessionPool = (ServerSessionPool)mi.getArguments()[3];
+ int maxMessages = ((Integer)mi.getArguments()[4]).intValue();
+
+ return new JBossConnectionConsumer((ConnectionDelegate)mi.getTargetObject(), dest,
+ subscriptionName, messageSelector, sessionPool,
+ maxMessages);
+ }
+
+ public Object handleAddAsfMessage(Invocation invocation) throws Throwable
+ {
+ if (trace) { log.trace("addAsfMessage()"); }
+
+ MethodInvocation mi = (MethodInvocation)invocation;
+
+ // Load the session with a message to be processed during a subsequent call to run()
+ MessageProxy m = (MessageProxy)mi.getArguments()[0];
+ int theConsumerID = ((Integer)mi.getArguments()[1]).intValue();
+ long channelID = ((Long)mi.getArguments()[2]).longValue();
+ int maxDeliveries = ((Integer)mi.getArguments()[3]).intValue();
+ SessionDelegate connectionConsumerDelegate = ((SessionDelegate)mi.getArguments()[4]);
+
+ if (m == null)
+ {
+ throw new IllegalStateException("Cannot add a null message to the session");
+ }
+
+ AsfMessageHolder holder = new AsfMessageHolder();
+ holder.msg = m;
+ holder.consumerID = theConsumerID;
+ holder.channelID = channelID;
+ holder.maxDeliveries = maxDeliveries;
+ holder.connectionConsumerDelegate = connectionConsumerDelegate;
+
+ getState(invocation).getASFMessages().add(holder);
+
+ return null;
+ }
+
+ public Object handleRun(Invocation invocation) throws Throwable
+ {
+ if (trace) { log.trace("run()"); }
+
+ MethodInvocation mi = (MethodInvocation)invocation;
+
+ //This is the delegate for the session from the pool
+ SessionDelegate del = (SessionDelegate)mi.getTargetObject();
+
+ SessionState state = getState(invocation);
+
+ int ackMode = state.getAcknowledgeMode();
+
+ LinkedList msgs = state.getASFMessages();
+
+ while (msgs.size() > 0)
+ {
+ AsfMessageHolder holder = (AsfMessageHolder)msgs.removeFirst();
+
+ if (trace) { log.trace("sending " + holder.msg + " to the message listener" ); }
+
+ MessageCallbackHandler.callOnMessage(del, state.getDistinguishedListener(), holder.consumerID,
+ holder.channelID, false,
+ holder.msg, ackMode, holder.maxDeliveries,
+ holder.connectionConsumerDelegate);
+ }
+
+ return null;
+ }
+
+
+
public String toString()
{
return "SessionAspect[" + Integer.toHexString(hashCode()) + "]";
@@ -619,5 +869,14 @@
// Inner Classes -------------------------------------------------
+ private static class AsfMessageHolder
+ {
+ private MessageProxy msg;
+ private int consumerID;
+ private long channelID;
+ private int maxDeliveries;
+ private SessionDelegate connectionConsumerDelegate;
+ }
+
}
Modified: trunk/src/main/org/jboss/jms/client/container/StateCreationAspect.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/container/StateCreationAspect.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/client/container/StateCreationAspect.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -138,7 +138,7 @@
boolean xa = ((Boolean)mi.getArguments()[2]).booleanValue();
SessionState sessionState =
- new SessionState(connectionState, sessionDelegate, transacted, ackMode, xa);
+ new SessionState(connectionState, sessionDelegate, transacted, ackMode, xa, sessionDelegate.getDupsOKBatchSize());
delegate.setState(sessionState);
return delegate;
@@ -152,7 +152,7 @@
SessionState sessionState = (SessionState)getState(invocation);
MethodInvocation mi = (MethodInvocation)invocation;
- Destination dest = (Destination)mi.getArguments()[0];
+ JBossDestination dest = (JBossDestination)mi.getArguments()[0];
String selector = (String)mi.getArguments()[1];
boolean noLocal = ((Boolean)mi.getArguments()[2]).booleanValue();
String subscriptionName = (String)mi.getArguments()[3];
Modified: trunk/src/main/org/jboss/jms/client/delegate/ClientSessionDelegate.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/delegate/ClientSessionDelegate.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/client/delegate/ClientSessionDelegate.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -21,6 +21,8 @@
*/
package org.jboss.jms.client.delegate;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
import java.io.Serializable;
import java.util.List;
@@ -63,6 +65,7 @@
import org.jboss.jms.wireformat.SessionRecoverDeliveriesRequest;
import org.jboss.jms.wireformat.SessionSendRequest;
import org.jboss.jms.wireformat.SessionUnsubscribeRequest;
+import org.jboss.logging.Logger;
/**
* The client-side Session delegate class.
@@ -80,16 +83,23 @@
// Constants ------------------------------------------------------------------------------------
private static final long serialVersionUID = -8096852898620279131L;
+
+ private static final Logger log = Logger.getLogger(ClientSessionDelegate.class);
+
// Attributes -----------------------------------------------------------------------------------
+
+ private int dupsOKBatchSize;
// Static ---------------------------------------------------------------------------------------
// Constructors ---------------------------------------------------------------------------------
- public ClientSessionDelegate(int objectID)
+ public ClientSessionDelegate(int objectID, int dupsOKBatchSize)
{
super(objectID);
+
+ this.dupsOKBatchSize = dupsOKBatchSize;
}
public ClientSessionDelegate()
@@ -457,13 +467,35 @@
doInvoke(client, req);
}
+
+ // Streamable overrides -------------------------------------------------------------------------
+ public void read(DataInputStream in) throws Exception
+ {
+ super.read(in);
+
+ dupsOKBatchSize = in.readInt();
+ }
+
+ public void write(DataOutputStream out) throws Exception
+ {
+ super.write(out);
+
+ out.writeInt(dupsOKBatchSize);
+ }
+
// Public ---------------------------------------------------------------------------------------
+ public int getDupsOKBatchSize()
+ {
+ return dupsOKBatchSize;
+ }
+
public String toString()
{
return "SessionDelegate[" + id + "]";
}
+
// Protected ------------------------------------------------------------------------------------
Modified: trunk/src/main/org/jboss/jms/client/remoting/ClientSocketWrapper.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/remoting/ClientSocketWrapper.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/client/remoting/ClientSocketWrapper.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -124,16 +124,26 @@
protected DataInputStream createInputStream(Socket socket)
throws IOException
{
- BufferedInputStream bin = new BufferedInputStream(socket.getInputStream());
+ //We make sure the buffer is big (default is 8192)- remember we flush after every request
+ //or response so this is ok.
+ //We want to avoid flushes at other times
+ //TODO this could be made configurable
+ BufferedInputStream bin = new BufferedInputStream(socket.getInputStream(), 65536);
+
return new DataInputStream(bin);
}
protected DataOutputStream createOutputStream(Socket socket)
throws IOException
{
- BufferedOutputStream bout = new BufferedOutputStream(socket.getOutputStream());
+ //We make sure the buffer is big (default is 8192)- remember we flush after every request
+ //or response so this is ok.
+ //We want to avoid flushes at other times
+ //TODO this could be made configurable
+ BufferedOutputStream bout = new BufferedOutputStream(socket.getOutputStream(), 65536);
+
return new DataOutputStream(bout);
}
Modified: trunk/src/main/org/jboss/jms/client/remoting/MessageCallbackHandler.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/remoting/MessageCallbackHandler.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/client/remoting/MessageCallbackHandler.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -199,8 +199,8 @@
private int maxDeliveries;
private long channelID;
private long lastDeliveryId = -1;
- //private volatile boolean sentFull;
- //private volatile boolean sentEmpty;
+ private volatile boolean serverSending = true;
+
// Constructors ---------------------------------------------------------------------------------
@@ -471,58 +471,14 @@
}
//This needs to be outside the lock
+
checkStart();
if (trace) { log.trace(this + " receive() returning " + m); }
return m;
}
-
- private volatile boolean serverSending = true;
-
- private void checkStop()
- {
- int size = buffer.size();
-
- if (serverSending && size >= maxBufferSize)
- {
- //Our buffer is full - we need to tell the server to stop sending if we haven't
- //done so already
- sendChangeRateMessage(0f);
-
- serverSending = false;
- }
- }
-
- private void checkStart()
- {
- int size = buffer.size();
-
- if (!serverSending && size <= minBufferSize)
- {
- //We need more messages - we need to tell the server this if we haven't done so already
-
- sendChangeRateMessage(1.0f);
-
- serverSending = true;
- }
- }
-
- private void sendChangeRateMessage(float newRate)
- {
- try
- {
- // this invocation will be sent asynchronously to the server; it's DelegateSupport.invoke()
- // job to detect it and turn it into a remoting one way invocation.
- consumerDelegate.changeRate(newRate);
- }
- catch (JMSException e)
- {
- log.error("Failed to send changeRate message", e);
- }
- }
-
public MessageListener getMessageListener()
{
return listener;
@@ -583,6 +539,53 @@
// Private --------------------------------------------------------------------------------------
+ private void checkStop()
+ {
+ int size = buffer.size();
+
+ if (serverSending && size >= maxBufferSize)
+ {
+ //Our buffer is full - we need to tell the server to stop sending if we haven't
+ //done so already
+
+ sendChangeRateMessage(0f);
+
+ if (trace) { log.trace("Sent changeRate 0 message"); }
+
+ serverSending = false;
+ }
+ }
+
+ private void checkStart()
+ {
+ int size = buffer.size();
+
+ if (!serverSending && size <= minBufferSize)
+ {
+ //We need more messages - we need to tell the server this if we haven't done so already
+
+ sendChangeRateMessage(1.0f);
+
+ if (trace) { log.trace("Sent changeRate 1.0 message"); }
+
+ serverSending = true;
+ }
+ }
+
+ private void sendChangeRateMessage(float newRate)
+ {
+ try
+ {
+ // this invocation will be sent asynchronously to the server; it's DelegateSupport.invoke()
+ // job to detect it and turn it into a remoting one way invocation.
+ consumerDelegate.changeRate(newRate);
+ }
+ catch (JMSException e)
+ {
+ log.error("Failed to send changeRate message", e);
+ }
+ }
+
private void waitForOnMessageToComplete()
{
// Wait for any onMessage() executions to complete
Modified: trunk/src/main/org/jboss/jms/client/state/ConsumerState.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/state/ConsumerState.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/client/state/ConsumerState.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -25,11 +25,12 @@
import javax.jms.Destination;
+import org.jboss.jms.client.delegate.ClientConnectionDelegate;
import org.jboss.jms.client.delegate.DelegateSupport;
-import org.jboss.jms.client.delegate.ClientConnectionDelegate;
+import org.jboss.jms.client.remoting.CallbackManager;
import org.jboss.jms.client.remoting.MessageCallbackHandler;
-import org.jboss.jms.client.remoting.CallbackManager;
import org.jboss.jms.delegate.ConsumerDelegate;
+import org.jboss.jms.destination.JBossDestination;
import org.jboss.jms.server.Version;
/**
@@ -60,6 +61,8 @@
private int bufferSize;
private int maxDeliveries;
+ private boolean storingDeliveries;
+
// Needed for failover
private long channelID;
@@ -68,7 +71,7 @@
// Constructors ---------------------------------------------------------------------------------
- public ConsumerState(SessionState parent, ConsumerDelegate delegate, Destination dest,
+ public ConsumerState(SessionState parent, ConsumerDelegate delegate, JBossDestination dest,
String selector, boolean noLocal, String subscriptionName, int consumerID,
boolean isCC, int bufferSize, int maxDeliveries, long channelID)
{
@@ -83,6 +86,17 @@
this.subscriptionName=subscriptionName;
this.maxDeliveries = maxDeliveries;
this.channelID = channelID;
+
+ //We don't store deliveries if this a non durable subscriber
+
+ if (dest.isTopic() && subscriptionName == null)
+ {
+ storingDeliveries = false;
+ }
+ else
+ {
+ storingDeliveries = true;
+ }
}
// HierarchicalState implementation -------------------------------------------------------------
@@ -197,6 +211,11 @@
{
return channelID;
}
+
+ public boolean isStoringDeliveries()
+ {
+ return storingDeliveries;
+ }
// Package protected ----------------------------------------------------------------------------
Modified: trunk/src/main/org/jboss/jms/client/state/SessionState.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/state/SessionState.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/client/state/SessionState.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -22,33 +22,35 @@
package org.jboss.jms.client.state;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import java.util.Iterator;
-import java.util.Collections;
+import javax.jms.MessageListener;
+import javax.jms.Session;
+
+import org.jboss.jms.client.delegate.ClientBrowserDelegate;
+import org.jboss.jms.client.delegate.ClientConsumerDelegate;
+import org.jboss.jms.client.delegate.ClientProducerDelegate;
import org.jboss.jms.client.delegate.ClientSessionDelegate;
import org.jboss.jms.client.delegate.DelegateSupport;
-import org.jboss.jms.client.delegate.ClientConsumerDelegate;
-import org.jboss.jms.client.delegate.ClientProducerDelegate;
-import org.jboss.jms.client.delegate.ClientBrowserDelegate;
import org.jboss.jms.client.remoting.MessageCallbackHandler;
import org.jboss.jms.delegate.SessionDelegate;
+import org.jboss.jms.destination.JBossDestination;
import org.jboss.jms.server.Version;
import org.jboss.jms.server.endpoint.DeliveryInfo;
import org.jboss.jms.server.endpoint.DeliveryRecovery;
import org.jboss.jms.tx.MessagingXAResource;
import org.jboss.jms.tx.ResourceManager;
-import org.jboss.jms.destination.JBossDestination;
import org.jboss.logging.Logger;
import EDU.oswego.cs.dl.util.concurrent.LinkedQueue;
import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-import javax.jms.Session;
-
/**
* State corresponding to a session. This state is acessible inside aspects/interceptors.
*
@@ -85,18 +87,25 @@
private QueuedExecutor executor;
private boolean recoverCalled;
-
+
// List<DeliveryInfo>
private List clientAckList;
private DeliveryInfo autoAckInfo;
private Map callbackHandlers;
-
-
+
+ private int dupsOKBatchSize;
+
+ private LinkedList asfMessages = new LinkedList();
+
+ //The distinguished message listener - for ASF
+ private MessageListener sessionListener;
+
// Constructors ---------------------------------------------------------------------------------
public SessionState(ConnectionState parent, ClientSessionDelegate delegate,
- boolean transacted, int ackMode, boolean xa)
+ boolean transacted, int ackMode, boolean xa,
+ int dupsOKBatchSize)
{
super(parent, (DelegateSupport)delegate);
@@ -106,6 +115,8 @@
this.acknowledgeMode = ackMode;
this.transacted = transacted;
this.xa = xa;
+
+ this.dupsOKBatchSize = dupsOKBatchSize;
if (xa)
{
@@ -157,6 +168,26 @@
{
return parent.getVersionToUse();
}
+
+ public int getDupsOKBatchSize()
+ {
+ return dupsOKBatchSize;
+ }
+
+ public MessageListener getDistinguishedListener()
+ {
+ return this.sessionListener;
+ }
+
+ public void setDistinguishedListener(MessageListener listener)
+ {
+ this.sessionListener = listener;
+ }
+
+ public LinkedList getASFMessages()
+ {
+ return asfMessages;
+ }
// HierarchicalStateSupport overrides -----------------------------------------------------------
@@ -316,6 +347,11 @@
{
return clientAckList;
}
+
+ public void setClientAckList(List list)
+ {
+ this.clientAckList = list;
+ }
public DeliveryInfo getAutoAckInfo()
{
@@ -395,7 +431,7 @@
{
return sessionID;
}
-
+
public String toString()
{
return "SessionState[" + sessionID + "]";
Modified: trunk/src/main/org/jboss/jms/server/ConnectionFactoryManager.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/ConnectionFactoryManager.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/server/ConnectionFactoryManager.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -21,8 +21,8 @@
*/
package org.jboss.jms.server;
+import org.jboss.jms.client.plugin.LoadBalancingFactory;
import org.jboss.jms.server.connectionfactory.JNDIBindings;
-import org.jboss.jms.client.plugin.LoadBalancingFactory;
import org.jboss.messaging.core.plugin.contract.MessagingComponent;
/**
@@ -44,6 +44,7 @@
int defaultTempQueueFullSize,
int defaultTempQueuePageSize,
int defaultTempQueueDownCacheSize,
+ int dupsOKBatchSize,
boolean clustered,
LoadBalancingFactory loadBalancingPolicy) throws Exception;
Deleted: trunk/src/main/org/jboss/jms/server/QueuedExecutorPool.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/QueuedExecutorPool.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/server/QueuedExecutorPool.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -1,68 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.jms.server;
-
-import org.jboss.messaging.util.RotatingPool;
-
-import EDU.oswego.cs.dl.util.concurrent.LinkedQueue;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
-/**
- * A QueuedExecutorPool
-
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * @version <tt>$Revision$</tt>
- *
- * $Id$
- *
- */
-public class QueuedExecutorPool extends RotatingPool
-{
- public QueuedExecutorPool(int maxSize)
- {
- super(maxSize);
- }
-
- protected Object createEntry()
- {
- //We make sure the executor queue is not bounded
- //otherwise we could end up with everything grinding to a halt if the
- //same executor is shared by many consumers and it gets full
- //The default bounded linked queue will block
- return new QueuedExecutor(new LinkedQueue());
- }
-
- public void shutdown()
- {
- for (int i = 0; i < entries.length; i++)
- {
- QueuedExecutor q = (QueuedExecutor)entries[i];
-
- if (q != null)
- {
- q.shutdownAfterProcessingCurrentlyQueuedTasks();
- }
- }
-
- entries = null;
- }
-}
Modified: trunk/src/main/org/jboss/jms/server/ServerPeer.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/ServerPeer.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/server/ServerPeer.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -112,8 +112,6 @@
private String defaultQueueJNDIContext;
private String defaultTopicJNDIContext;
- private int queuedExecutorPoolSize = 200;
-
private boolean started;
private int objectIDSequence = 1;
@@ -147,8 +145,7 @@
private IDManager messageIDManager;
private IDManager channelIDManager;
private IDManager transactionIDManager;
- private MemoryManager memoryManager;
- private QueuedExecutorPool queuedExecutorPool;
+ private MemoryManager memoryManager;
private MessageStore messageStore;
private MessageCounterManager messageCounterManager;
@@ -217,12 +214,6 @@
log.debug(this + " starting");
- if (queuedExecutorPoolSize < 1)
- {
- throw new IllegalArgumentException("queuedExecutorPoolSize must be > 0");
- }
- queuedExecutorPool = new QueuedExecutorPool(queuedExecutorPoolSize);
-
loadClientAOPConfig();
loadServerAOPConfig();
@@ -334,8 +325,6 @@
// TODO unloadClientAOPConfig();
- queuedExecutorPool.shutdown();
-
MessagingTimeoutFactory.instance.reset();
log.info("JMS " + this + " stopped");
@@ -503,21 +492,6 @@
return securityStore.getDefaultSecurityConfig();
}
- public synchronized int getQueuedExecutorPoolSize()
- {
- return queuedExecutorPoolSize;
- }
-
- public synchronized void setQueuedExecutorPoolSize(int poolSize)
- {
- if (started)
- {
- log.warn("Cannot set jms queued executor pool size on server peer when server peer is started");
- return;
- }
- this.queuedExecutorPoolSize = poolSize;
- }
-
public synchronized long getFailoverStartTimeout()
{
return this.failoverStartTimeout;
@@ -1145,11 +1119,6 @@
return objectIDSequence++;
}
- public QueuedExecutorPool getQueuedExecutorPool()
- {
- return queuedExecutorPool;
- }
-
/*
* Wait for failover from the specified node to complete.
*/
Modified: trunk/src/main/org/jboss/jms/server/ServerPeerMBean.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/ServerPeerMBean.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/server/ServerPeerMBean.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -88,11 +88,7 @@
ObjectName getDefaultExpiryQueue();
void setDefaultExpiryQueue(ObjectName on);
-
- int getQueuedExecutorPoolSize();
-
- void setQueuedExecutorPoolSize(int poolSize);
-
+
long getFailoverStartTimeout();
void setFailoverStartTimeout(long timeout);
Modified: trunk/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactory.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactory.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactory.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -7,12 +7,13 @@
package org.jboss.jms.server.connectionfactory;
import javax.management.ObjectName;
+
+import org.jboss.jms.client.plugin.LoadBalancingFactory;
import org.jboss.jms.server.ConnectionFactoryManager;
import org.jboss.jms.server.ConnectionManager;
import org.jboss.jms.server.ConnectorManager;
import org.jboss.jms.server.ServerPeer;
import org.jboss.jms.util.ExceptionUtil;
-import org.jboss.jms.client.plugin.LoadBalancingFactory;
import org.jboss.remoting.InvokerLocator;
import org.jboss.system.ServiceMBeanSupport;
import org.w3c.dom.Element;
@@ -40,9 +41,11 @@
protected boolean clustered;
protected LoadBalancingFactory loadBalancingFactory;
- protected int defaultTempQueueFullSize = 75000;
+ protected int defaultTempQueueFullSize = 200000;
protected int defaultTempQueuePageSize = 2000;
protected int defaultTempQueueDownCacheSize = 2000;
+
+ protected int dupsOKBatchSize = 1000;
protected ObjectName serverPeerObjectName;
protected ConnectionFactoryManager connectionFactoryManager;
@@ -124,8 +127,8 @@
connectionFactoryManager.
registerConnectionFactory(getServiceName().getCanonicalName(), clientID, jndiBindings,
locatorURI, enablePing, prefetchSize,
- defaultTempQueueFullSize, defaultTempQueuePageSize,
- defaultTempQueueDownCacheSize, clustered,
+ defaultTempQueueFullSize, defaultTempQueuePageSize,
+ defaultTempQueueDownCacheSize, dupsOKBatchSize, clustered,
loadBalancingFactory);
InvokerLocator locator = new InvokerLocator(locatorURI);
@@ -296,6 +299,22 @@
loadBalancingFactory = (LoadBalancingFactory)clz.newInstance();
}
+
+ public void setDupsOKBatchSize(int size) throws Exception
+ {
+ if (started)
+ {
+ log.warn("DupsOKBatchSize can only be changed when connection factory is stopped");
+ return;
+ }
+
+ this.dupsOKBatchSize = size;
+ }
+
+ public int getDupsOKBatchSize()
+ {
+ return this.dupsOKBatchSize;
+ }
// JMX managed operations -----------------------------------------------------------------------
Modified: trunk/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactoryJNDIMapper.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactoryJNDIMapper.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactoryJNDIMapper.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -118,6 +118,7 @@
int defaultTempQueueFullSize,
int defaultTempQueuePageSize,
int defaultTempQueueDownCacheSize,
+ int dupsOKBatchSize,
boolean clustered,
LoadBalancingFactory loadBalancingFactory)
throws Exception
@@ -140,7 +141,8 @@
jndiBindings, prefetchSize,
defaultTempQueueFullSize,
defaultTempQueuePageSize,
- defaultTempQueueDownCacheSize);
+ defaultTempQueueDownCacheSize,
+ dupsOKBatchSize);
endpoints.put(uniqueName, endpoint);
ConnectionFactoryDelegate delegate = null;
Modified: trunk/src/main/org/jboss/jms/server/destination/DestinationServiceSupport.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/destination/DestinationServiceSupport.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/server/destination/DestinationServiceSupport.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -12,7 +12,6 @@
import javax.management.ObjectName;
import org.jboss.jms.server.DestinationManager;
-import org.jboss.jms.server.QueuedExecutorPool;
import org.jboss.jms.server.SecurityManager;
import org.jboss.jms.server.ServerPeer;
import org.jboss.jms.server.messagecounter.MessageCounter;
@@ -68,8 +67,6 @@
protected PersistenceManager pm;
- protected QueuedExecutorPool pool;
-
protected MessageStore ms;
protected TransactionRepository tr;
@@ -114,9 +111,7 @@
sm = serverPeer.getSecurityManager();
pm = serverPeer.getPersistenceManagerInstance();
-
- pool = serverPeer.getQueuedExecutorPool();
-
+
ms = serverPeer.getMessageStore();
tr = serverPeer.getTxRepository();
Modified: trunk/src/main/org/jboss/jms/server/destination/ManagedDestination.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/destination/ManagedDestination.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/server/destination/ManagedDestination.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -51,7 +51,7 @@
protected static final int NON_DURABLE = 2;
- private static final int DEFAULT_FULL_SIZE = 75000;
+ private static final int DEFAULT_FULL_SIZE = 200000;
private static final int DEFAULT_PAGE_SIZE = 2000;
Modified: trunk/src/main/org/jboss/jms/server/destination/QueueService.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/destination/QueueService.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/server/destination/QueueService.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -22,8 +22,6 @@
import org.jboss.messaging.core.plugin.postoffice.Binding;
import org.jboss.messaging.core.plugin.postoffice.cluster.LocalClusteredQueue;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
* MBean wrapper around a ManagedQueue
*
@@ -92,9 +90,7 @@
queue.activate();
}
else
- {
- QueuedExecutor executor = (QueuedExecutor)pool.get();
-
+ {
// Create a new queue
JMSCondition queueCond = new JMSCondition(true, destination.getName());
@@ -102,16 +98,16 @@
if (postOffice.isLocal())
{
queue = new PagingFilteredQueue(destination.getName(),
- idm.getID(), ms, pm, true, true, executor,
+ idm.getID(), ms, pm, true, true,
destination.getMaxSize(), null,
destination.getFullSize(), destination.getPageSize(),
destination.getDownCacheSize());
postOffice.bindQueue(queueCond, queue);
}
else
- {
- queue = new LocalClusteredQueue(postOffice, nodeId, destination.getName(),
- idm.getID(), ms, pm, true, true, executor,
+ {
+ queue = new LocalClusteredQueue((ClusteredPostOffice)postOffice, nodeId, destination.getName(),
+ idm.getID(), ms, pm, true, true,
destination.getMaxSize(), null, tr,
destination.getFullSize(), destination.getPageSize(),
destination.getDownCacheSize());
Modified: trunk/src/main/org/jboss/jms/server/endpoint/ServerConnectionEndpoint.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/endpoint/ServerConnectionEndpoint.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/server/endpoint/ServerConnectionEndpoint.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -116,6 +116,8 @@
private int defaultTempQueueFullSize;
private int defaultTempQueuePageSize;
private int defaultTempQueueDownCacheSize;
+ private int dupsOKBatchSize;
+
private ServerConnectionFactoryEndpoint cfendpoint;
private byte usingVersion;
@@ -139,7 +141,8 @@
String remotingSessionID,
String clientVMID,
byte versionToUse,
- ServerInvokerCallbackHandler callbackHandler) throws Exception
+ ServerInvokerCallbackHandler callbackHandler,
+ int dupsOKBatchSize) throws Exception
{
this.serverPeer = serverPeer;
@@ -160,6 +163,8 @@
this.defaultTempQueueFullSize = defaultTempQueueFullSize;
this.defaultTempQueuePageSize = defaultTempQueuePageSize;
this.defaultTempQueueDownCacheSize = defaultTempQueueDownCacheSize;
+
+ this.dupsOKBatchSize = dupsOKBatchSize;
sessions = new HashMap();
temporaryDestinations = new HashSet();
@@ -254,7 +259,7 @@
log.debug("created and registered " + ep);
- ClientSessionDelegate d = new ClientSessionDelegate(sessionID);
+ ClientSessionDelegate d = new ClientSessionDelegate(sessionID, dupsOKBatchSize);
log.debug("created " + d);
Modified: trunk/src/main/org/jboss/jms/server/endpoint/ServerConnectionFactoryEndpoint.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/endpoint/ServerConnectionFactoryEndpoint.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/server/endpoint/ServerConnectionFactoryEndpoint.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -77,7 +77,8 @@
protected int defaultTempQueueDownCacheSize;
-
+ protected int dupsOKBatchSize;
+
// Constructors ---------------------------------------------------------------------------------
/**
@@ -90,7 +91,8 @@
int preFetchSize,
int defaultTempQueueFullSize,
int defaultTempQueuePageSize,
- int defaultTempQueueDownCacheSize)
+ int defaultTempQueueDownCacheSize,
+ int dupsOKBatchSize)
{
this.serverPeer = serverPeer;
this.clientID = defaultClientID;
@@ -100,6 +102,7 @@
this.defaultTempQueueFullSize = defaultTempQueueFullSize;
this.defaultTempQueuePageSize = defaultTempQueuePageSize;
this.defaultTempQueueDownCacheSize = defaultTempQueueDownCacheSize;
+ this.dupsOKBatchSize = dupsOKBatchSize;
}
// ConnectionFactoryDelegate implementation -----------------------------------------------------
@@ -223,7 +226,7 @@
defaultTempQueueFullSize, defaultTempQueuePageSize,
defaultTempQueueDownCacheSize, failedNodeID, this,
remotingSessionID, clientVMID, versionToUse,
- callbackHandler);
+ callbackHandler, dupsOKBatchSize);
int connectionID = endpoint.getConnectionID();
Modified: trunk/src/main/org/jboss/jms/server/endpoint/ServerConsumerEndpoint.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/endpoint/ServerConsumerEndpoint.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/server/endpoint/ServerConsumerEndpoint.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -105,6 +105,8 @@
// Must be volatile
private volatile boolean clientAccepting;
+
+ private boolean storeDeliveries;
// Constructors ---------------------------------------------------------------------------------
@@ -141,6 +143,20 @@
this.startStopLock = new Object();
+ if (dest.isTopic() && !messageQueue.isRecoverable())
+ {
+ //This is a consumer of a non durable topic subscription
+ //We don't need to store deliveries since if the consumer is closed or
+ //dies the refs go too
+ this.storeDeliveries = false;
+ }
+ else
+ {
+ this.storeDeliveries = true;
+ }
+
+ storeDeliveries = true;
+
if (selector != null)
{
if (trace) log.trace("creating selector:" + selector);
@@ -155,9 +171,6 @@
//We don't need to prompt delivery - this will come from the client in a changeRate request
- // prompt delivery
- //promptDelivery();
-
log.debug(this + " constructed");
}
@@ -211,15 +224,23 @@
boolean selectorRejected = !this.accept(message);
- SimpleDelivery delivery = new SimpleDelivery(observer, ref, false, !selectorRejected);
+ SimpleDelivery delivery = new SimpleDelivery(observer, ref, !storeDeliveries, !selectorRejected);
if (selectorRejected)
{
return delivery;
}
- long deliveryId =
- sessionEndpoint.addDelivery(delivery, id, dlq, expiryQueue, redeliveryDelay);
+ long deliveryId;
+
+ if (storeDeliveries)
+ {
+ deliveryId = sessionEndpoint.addDelivery(delivery, id, dlq, expiryQueue, redeliveryDelay);
+ }
+ else
+ {
+ deliveryId = -1;
+ }
// We send the message to the client on the current thread. The message is written onto the
// transport and then the thread returns immediately without waiting for a response.
@@ -259,7 +280,7 @@
{
// one way invocation, no acknowledgment sent back by the client
if (trace) { log.trace(this + " submitting message " + message + " to the remoting layer to be sent asynchronously"); }
- callbackHandler.handleCallbackOneway(callback);
+ callbackHandler.handleCallbackOneway(callback);
}
}
catch (HandleCallbackException e)
@@ -356,7 +377,6 @@
// ConsumerEndpoint implementation --------------------------------------------------------------
-
public void changeRate(float newRate) throws JMSException
{
if (trace) { log.trace(this + " changing rate to " + newRate); }
@@ -376,8 +396,13 @@
// No need to synchronize - clientAccepting is volatile.
- // We need to deal with the fact that one way invocations may arrive in a different order
- // to that which they arrived in. So we just toggle on / off.
+ // Important note - this invocations can arrive in a different order to which they were
+ // sent - this is inherent in one way invocations where a client side pool is used.
+ // Therefore we just toggle the clientAccepting flag - if we actually looked at the newRate
+ // value we might end up turning off the consumer when it should be on
+ // (since a off-on, arrives as on-off)
+ // Toggling is safe, but when we start to look at the actual rate value we will
+ // have to be a bit cleverer
clientAccepting = !clientAccepting;
@@ -392,6 +417,8 @@
}
}
+
+
/*
* This method is always called between closing() and close() being called
* Instead of having a new method we could perhaps somehow pass the last delivery id
@@ -551,7 +578,7 @@
private void promptDelivery()
{
- messageQueue.deliver(Channel.ASYNCRHONOUS);
+ messageQueue.deliver();
}
// Inner classes --------------------------------------------------------------------------------
Modified: trunk/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -50,7 +50,6 @@
import org.jboss.jms.selector.Selector;
import org.jboss.jms.server.DestinationManager;
import org.jboss.jms.server.JMSCondition;
-import org.jboss.jms.server.QueuedExecutorPool;
import org.jboss.jms.server.ServerPeer;
import org.jboss.jms.server.destination.ManagedDestination;
import org.jboss.jms.server.destination.ManagedQueue;
@@ -83,7 +82,6 @@
import org.jboss.util.id.GUID;
import EDU.oswego.cs.dl.util.concurrent.ConcurrentHashMap;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
import EDU.oswego.cs.dl.util.concurrent.SynchronizedLong;
/**
@@ -143,7 +141,6 @@
private DestinationManager dm;
private IDManager idm;
- private QueuedExecutorPool pool;
private TransactionRepository tr;
private PostOffice postOffice;
private int nodeId;
@@ -173,7 +170,6 @@
dm = sp.getDestinationManager();
postOffice = sp.getPostOfficeInstance();
idm = sp.getChannelIDManager();
- pool = sp.getQueuedExecutorPool();
nodeId = sp.getServerPeerID();
tr = sp.getTxRepository();
@@ -313,8 +309,8 @@
public void send(JBossMessage message, boolean checkForDuplicates) throws JMSException
{
try
- {
- connectionEndpoint.sendMessage(message, null, checkForDuplicates);
+ {
+ connectionEndpoint.sendMessage(message, null, checkForDuplicates);
}
catch (Throwable t)
{
@@ -364,7 +360,7 @@
Delivery del = cancelDeliveryInternal(cancel);
//Prompt delivery
- ((Channel)del.getObserver()).deliver(false);
+ ((Channel)del.getObserver()).deliver();
}
catch (Throwable t)
{
@@ -551,22 +547,21 @@
dm.registerDestination(mDest);
if (dest.isQueue())
- {
- QueuedExecutor executor = (QueuedExecutor)pool.get();
+ {
Queue coreQueue;
if (postOffice.isLocal())
{
coreQueue = new PagingFilteredQueue(dest.getName(),
- idm.getID(), ms, pm, true, false, executor,
+ idm.getID(), ms, pm, true, false,
-1, null, fullSize, pageSize, downCacheSize);
}
else
{
// uniformly handle the temporary queue as LocalClusteredQueue
- coreQueue = new LocalClusteredQueue(postOffice, nodeId, dest.getName(),
- idm.getID(), ms, pm, true, false, executor,
- -1, null, tr, fullSize, pageSize, downCacheSize);
+ coreQueue = new LocalClusteredQueue((ClusteredPostOffice)postOffice, nodeId, dest.getName(),
+ idm.getID(), ms, pm, true, false,
+ -1, null, tr, fullSize, pageSize, downCacheSize);
}
String counterName = TEMP_QUEUE_MESSAGECOUNTER_PREFIX + dest.getName();
@@ -1126,7 +1121,7 @@
//TODO - are we sure this is the right place to prompt delivery?
if (queue != null)
{
- queue.deliver(false);
+ queue.deliver();
}
}
@@ -1144,6 +1139,8 @@
}
rec.del.acknowledge(null);
+
+ if (trace) { log.trace(this + " acknowledged delivery " + ack); }
}
/**
@@ -1321,14 +1318,13 @@
if (log.isTraceEnabled()) { log.trace(this + " creating new non-durable subscription on " + jmsDestination); }
// Create the non durable sub
- QueuedExecutor executor = (QueuedExecutor)pool.get();
-
+
PagingFilteredQueue q;
if (postOffice.isLocal())
{
q = new PagingFilteredQueue(new GUID().toString(), idm.getID(), ms, pm, true, false,
- executor, mDest.getMaxSize(), selector,
+ mDest.getMaxSize(), selector,
mDest.getFullSize(),
mDest.getPageSize(),
mDest.getDownCacheSize());
@@ -1336,10 +1332,10 @@
binding = postOffice.bindQueue(topicCond, q);
}
else
- {
- q = new LocalClusteredQueue(postOffice, nodeId, new GUID().toString(),
+ {
+ q = new LocalClusteredQueue((ClusteredPostOffice)postOffice, nodeId, new GUID().toString(),
idm.getID(), ms, pm, true, false,
- executor, mDest.getMaxSize(), selector, tr,
+ mDest.getMaxSize(), selector, tr,
mDest.getFullSize(),
mDest.getPageSize(),
mDest.getDownCacheSize());
@@ -1395,14 +1391,13 @@
// Does not already exist
if (trace) { log.trace(this + " creating new durable subscription on " + jmsDestination); }
-
- QueuedExecutor executor = (QueuedExecutor)pool.get();
+
PagingFilteredQueue q;
if (postOffice.isLocal())
{
q = new PagingFilteredQueue(name, idm.getID(), ms, pm, true, true,
- executor, mDest.getMaxSize(), selector,
+ mDest.getMaxSize(), selector,
mDest.getFullSize(),
mDest.getPageSize(),
mDest.getDownCacheSize());
@@ -1411,9 +1406,9 @@
}
else
{
- q = new LocalClusteredQueue(postOffice, nodeId, name, idm.getID(),
+ q = new LocalClusteredQueue((ClusteredPostOffice)postOffice, nodeId, name, idm.getID(),
ms, pm, true, true,
- executor, mDest.getMaxSize(), selector, tr,
+ mDest.getMaxSize(), selector, tr,
mDest.getFullSize(),
mDest.getPageSize(),
mDest.getDownCacheSize());
@@ -1485,14 +1480,13 @@
}
// create a fresh new subscription
-
- QueuedExecutor executor = (QueuedExecutor)pool.get();
+
PagingFilteredQueue q;
if (postOffice.isLocal())
{
q = new PagingFilteredQueue(name, idm.getID(), ms, pm, true, true,
- executor, mDest.getMaxSize(), selector,
+ mDest.getMaxSize(), selector,
mDest.getFullSize(),
mDest.getPageSize(),
mDest.getDownCacheSize());
@@ -1500,8 +1494,8 @@
}
else
{
- q = new LocalClusteredQueue(postOffice, nodeId, name, idm.getID(), ms, pm, true, true,
- executor, mDest.getMaxSize(), selector, tr,
+ q = new LocalClusteredQueue((ClusteredPostOffice)postOffice, nodeId, name, idm.getID(), ms, pm, true, true,
+ mDest.getMaxSize(), selector, tr,
mDest.getFullSize(),
mDest.getPageSize(),
mDest.getDownCacheSize());
@@ -1719,7 +1713,7 @@
{
DeliveryObserver observer = (DeliveryObserver)iter.next();
- ((Channel)observer).deliver(false);
+ ((Channel)observer).deliver();
}
}
Modified: trunk/src/main/org/jboss/jms/server/remoting/JMSWireFormat.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/remoting/JMSWireFormat.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/jms/server/remoting/JMSWireFormat.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -159,7 +159,7 @@
if (param instanceof RequestSupport)
{
- //A JBM invocation being sent one way (e.g. changeRate)
+ //A JBM invocation being sent one way (e.g. changeRate, send)
if (trace) { log.trace("JBM oneway request"); }
@@ -180,10 +180,7 @@
if (trace) { log.trace("It's a callback: " + callback); }
if (callback.getParameter() instanceof ClientDelivery)
- {
- // Whooooppee!! found the callback. Hurrah for remoting!
- // What a simple and intuitive API ;)
-
+ {
packet = (ClientDelivery)callback.getParameter();
if (trace) { log.trace("Message delivery callback"); }
@@ -227,13 +224,6 @@
// List of polled Callbacks, this is how messages are delivered when using
// polled callbacks e.g. the HTTP transport
- // Sanity check
- if (((List)param).isEmpty())
- {
- log.warn("Got a polled callback list - but it is empty!!! " +
- "See http://jira.jboss.org/jira/browse/JBMESSAGING-818");
- }
-
packet = new PolledCallbacksDelivery((List)param, resp.getSessionId());
}
else if (param == null)
Modified: trunk/src/main/org/jboss/messaging/core/Channel.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/Channel.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/messaging/core/Channel.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -46,9 +46,6 @@
*/
public interface Channel extends DeliveryObserver, Distributor, Receiver
{
- public final boolean SYNCHRONOUS = true;
- public final boolean ASYNCRHONOUS = false;
-
/**
* @return the unique ID of the channel
*/
@@ -92,9 +89,8 @@
/**
* Delivers as many references as possible to its router until no more deliveries are returned.
- * @param synchronous - one of Channel.SYNCHRONOUS, Channel.ASYNCRHONOUS.
*/
- void deliver(boolean synchronous);
+ void deliver();
/**
* Close the channel
Modified: trunk/src/main/org/jboss/messaging/core/ChannelSupport.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/ChannelSupport.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/messaging/core/ChannelSupport.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -36,26 +36,19 @@
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.messaging.core.tx.TransactionException;
import org.jboss.messaging.core.tx.TxCallback;
-import org.jboss.messaging.util.Future;
import org.jboss.messaging.util.prioritylinkedlist.BasicPriorityLinkedList;
import org.jboss.messaging.util.prioritylinkedlist.PriorityLinkedList;
import org.jboss.util.timeout.Timeout;
import org.jboss.util.timeout.TimeoutTarget;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
import EDU.oswego.cs.dl.util.concurrent.SynchronizedInt;
/**
*
- * This class provides much of the functionality needed to implement a channel. This partial
- * implementation supports atomicity, isolation and recoverability of reliable messages.
+ * This class provides much of the functionality needed to implement a channel.
*
- * It uses a "SEDA-type" approach, where requests to handle messages, and deliver to receivers are
- * not executed concurrently but placed on an event queue and executed serially by a single thread.
+ * This partial implementation supports atomicity, isolation and recoverability of reliable messages.
*
- * Currently remoting does not support a non blocking API so a full SEDA approach is not possible
- * at this stage.
- *
* @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
* @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
* @version <tt>$Revision$</tt> $Id: ChannelSupport.java,v 1.65
@@ -79,10 +72,8 @@
protected MessageStore ms;
- protected QueuedExecutor executor;
+ protected boolean receiversReady;
- protected volatile boolean receiversReady;
-
protected PriorityLinkedList messageRefs;
protected boolean acceptReliableMessages;
@@ -115,7 +106,7 @@
protected ChannelSupport(long channelID, MessageStore ms,
PersistenceManager pm,
boolean acceptReliableMessages, boolean recoverable,
- QueuedExecutor executor, int maxSize)
+ int maxSize)
{
if (trace) { log.trace("creating " + (pm != null ? "recoverable " : "non-recoverable ") + "channel[" + channelID + "]"); }
@@ -135,8 +126,6 @@
this.channelID = channelID;
- this.executor = executor;
-
this.acceptReliableMessages = acceptReliableMessages;
this.recoverable = recoverable;
@@ -165,29 +154,7 @@
checkClosed();
- Future result = new Future();
-
- if (tx == null)
- {
- try
- {
- // Instead of executing directly, we add the handle request to the event queue.
- // Since remoting doesn't currently handle non blocking IO, we still have to wait for the
- // result, but when remoting does, we can use a full SEDA approach and get even better
- // throughput.
- this.executor.execute(new HandleRunnable(result, sender, ref, true));
- }
- catch (InterruptedException e)
- {
- log.warn("Thread interrupted", e);
- }
-
- return (Delivery)result.getResult();
- }
- else
- {
- return handleInternal(sender, ref, tx, true, false);
- }
+ return handleInternal(sender, ref, tx, true);
}
// DeliveryObserver implementation --------------------------------------------------------------
@@ -196,7 +163,7 @@
{
if (trace) { log.trace("acknowledging " + d + (tx == null ? " non-transactionally" : " transactionally in " + tx)); }
- acknowledgeInternal(d, tx, true, false);
+ acknowledgeInternal(d, tx, true);
}
public void cancel(Delivery del) throws Throwable
@@ -214,8 +181,7 @@
if (!checkAndSchedule(ref))
{
- // We put the cancellation on the event queue if it's not a scheduled delivery
- this.executor.execute(new CancelRunnable(ref));
+ cancelInternal(ref);
}
}
@@ -229,7 +195,10 @@
if (trace) { log.trace("receiver " + r + (added ? "" : " NOT") + " added"); }
- receiversReady = true;
+ synchronized (refLock)
+ {
+ receiversReady = true;
+ }
return added;
}
@@ -240,7 +209,10 @@
if (removed && !router.iterator().hasNext())
{
- receiversReady = false;
+ synchronized (refLock)
+ {
+ receiversReady = false;
+ }
}
if (trace) { log.trace(this + (removed ? " removed " : " did NOT remove ") + r); }
@@ -251,6 +223,11 @@
public void clear()
{
router.clear();
+
+ synchronized (refLock)
+ {
+ receiversReady = false;
+ }
}
public boolean contains(Receiver r)
@@ -315,36 +292,20 @@
return messages;
}
}
-
- public void deliver(boolean synchronous)
+
+ public void deliver()
{
checkClosed();
- // We put a delivery request on the event queue.
- try
- {
- Future future = null;
-
- if (synchronous)
+ if (router.getNumberOfReceivers() > 0)
+ {
+ synchronized (refLock)
{
- future = new Future();
+ receiversReady = true;
+
+ deliverInternal();
}
-
- //TODO we should keep track of how many deliveries are currently in the queue so we don't
- // execute another delivery when one is in the queue, since this is pointless.
-
- executor.execute(new DeliveryRunnable(future));
-
- if (synchronous)
- {
- // Wait to complete
- future.getResult();
- }
}
- catch (InterruptedException e)
- {
- log.warn("Thread interrupted", e);
- }
}
public void close()
@@ -495,13 +456,11 @@
{
if (!liter.hasNext())
{
- // TODO we need to look in paging state too - currently not supported
-
-
// Clebert - why did you add a link to 808 here?
// I don't think 808 has anything to do with this.
// http://jira.jboss.org/jira/browse/JBMESSAGING-808
+ // TODO we need to look in paging state too - currently not supported
//http://jira.jboss.com/jira/browse/JBMESSAGING-839
log.warn(this + " cannot find reference " + id + " (Might be paged!)");
break;
@@ -626,14 +585,16 @@
ListIterator iter = null;
MessageReference ref = null;
-
+
+ if (!receiversReady)
+ {
+ return;
+ }
+
while (true)
{
- synchronized (refLock)
- {
- ref = nextReference(iter);
- }
-
+ ref = nextReference(iter);
+
if (ref != null)
{
// Attempt to push the ref to a receiver
@@ -648,6 +609,7 @@
{
// No receiver, broken receiver or full receiver so we stop delivering
if (trace) { log.trace(this + " got no delivery for " + ref + " so no receiver got the message. Stopping delivery."); }
+
break;
}
else if (!del.isSelectorAccepted())
@@ -678,8 +640,8 @@
if (trace) { log.trace(this + " no more refs to deliver "); }
break;
- }
- }
+ }
+ }
}
catch (Throwable t)
{
@@ -731,7 +693,7 @@
}
protected Delivery handleInternal(DeliveryObserver sender, MessageReference ref,
- Transaction tx, boolean persist, boolean synchronous)
+ Transaction tx, boolean persist)
{
if (ref == null)
{
@@ -785,15 +747,9 @@
synchronized (refLock)
{
addReferenceInMemory(ref);
- }
-
- // We only do delivery if there are receivers that haven't said they don't want any
- // more references.
- if (receiversReady)
- {
- // Prompt delivery
+
deliverInternal();
- }
+ }
}
}
else
@@ -813,7 +769,7 @@
else
{
// add to post commit callback
- getCallback(tx, synchronous).addRef(ref);
+ getCallback(tx).addRef(ref);
if (trace) { log.trace(this + " added transactionally " + ref + " in memory"); }
}
@@ -838,8 +794,6 @@
return null;
}
- // I might as well return null, the sender shouldn't care
-
return new SimpleDelivery(this, ref, true);
}
@@ -869,8 +823,7 @@
}
}
- protected void acknowledgeInternal(Delivery d, Transaction tx, boolean persist,
- boolean synchronous) throws Exception
+ protected void acknowledgeInternal(Delivery d, Transaction tx, boolean persist) throws Exception
{
if (tx == null)
{
@@ -885,7 +838,7 @@
}
else
{
- this.getCallback(tx, synchronous).addDelivery(d);
+ this.getCallback(tx).addDelivery(d);
if (trace) { log.trace(this + " added " + d + " to memory on transaction " + tx); }
@@ -896,24 +849,16 @@
}
}
- protected InMemoryCallback getCallback(Transaction tx, boolean synchronous)
+ protected InMemoryCallback getCallback(Transaction tx)
{
InMemoryCallback callback = (InMemoryCallback) tx.getCallback(this);
if (callback == null)
{
- callback = new InMemoryCallback(synchronous);
+ callback = new InMemoryCallback();
tx.addCallback(callback, this);
}
- else
- {
- //Sanity
- if (callback.isSynchronous() != synchronous)
- {
- throw new IllegalStateException("Callback synchronousness status doesn't match");
- }
- }
return callback;
}
@@ -989,32 +934,19 @@
// Inner classes --------------------------------------------------------------------------------
- private class InMemoryCallback implements TxCallback, Runnable
+ private class InMemoryCallback implements TxCallback
{
private List refsToAdd;
private List deliveriesToRemove;
- private boolean synchronous;
-
- private boolean committing;
-
- private Future result;
-
- private InMemoryCallback(boolean synchronous)
+ private InMemoryCallback()
{
refsToAdd = new ArrayList();
deliveriesToRemove = new ArrayList();
-
- this.synchronous = synchronous;
}
- private boolean isSynchronous()
- {
- return synchronous;
- }
-
private void addRef(MessageReference ref)
{
refsToAdd.add(ref);
@@ -1045,156 +977,59 @@
// NOOP
}
- public void run()
- {
+ public void afterCommit(boolean onePhase) throws Exception
+ {
try
{
- if (committing)
- {
- doAfterCommit();
- }
- else
- {
- doAfterRollback();
- }
+ // We add the references to the state
- result.setResult(null);
- }
- catch (Throwable t)
- {
- log.debug(this + "'s execution generated exception", t);
- result.setException(t);
- }
- }
-
- public void afterCommit(boolean onePhase) throws Exception
- {
- if (synchronous)
- {
- try
+ for(Iterator i = refsToAdd.iterator(); i.hasNext(); )
{
- doAfterCommit();
- }
- catch (Throwable t)
- {
- //TODO Sort out exception handling!!
- throw new TransactionException("Failed to commit", t);
- }
- }
- else
- {
- // We don't execute the commit directly, we add it to the event queue of the channel
- // so it is executed in turn
- committing = true;
- executeAndWaitForResult();
- }
- }
+ MessageReference ref = (MessageReference)i.next();
- public void afterRollback(boolean onePhase) throws Exception
- {
- if (synchronous)
- {
- doAfterRollback();
- }
- else
- {
- // We don't execute the commit directly, we add it to the event queue
- // of the channel
- // so it is executed in turn
- committing = false;
-
- executeAndWaitForResult();
- }
- }
+ if (trace) { log.trace(this + ": adding " + ref + " to non-recoverable state"); }
- public String toString()
- {
- return ChannelSupport.this + ".InMemoryCallback[" +
- Integer.toHexString(InMemoryCallback.this.hashCode()) + "]";
- }
+ try
+ {
+ synchronized (refLock)
+ {
+ addReferenceInMemory(ref);
+ }
+ }
+ catch (Throwable t)
+ {
+ throw new TransactionException("Failed to add reference", t);
+ }
+ }
- private void executeAndWaitForResult() throws TransactionException
- {
- result = new Future();
-
- try
- {
- if (trace) { log.trace("adding " + this + " to " + ChannelSupport.this + "'s executor"); }
- executor.execute(this);
- }
- catch (InterruptedException e)
- {
- log.error("Thread interrupted", e);
- }
-
- // Wait for it to complete
-
- if (trace) { log.trace("waiting for " + this + " to complete"); }
- Throwable t = (Throwable)result.getResult();
- if (trace) { log.trace(InMemoryCallback.this + " completed"); }
-
- if (t != null)
- {
- if (t instanceof RuntimeException)
+ // Remove deliveries
+
+ for(Iterator i = deliveriesToRemove.iterator(); i.hasNext(); )
{
- throw (RuntimeException) t;
- }
- if (t instanceof Error)
- {
- throw (Error) t;
- }
- if (t instanceof TransactionException)
- {
- throw (TransactionException) t;
- }
- throw new IllegalStateException("Unknown Throwable " + t);
- }
- }
+ Delivery del = (Delivery)i.next();
- private void doAfterCommit() throws Throwable
- {
- // We add the references to the state
-
- for(Iterator i = refsToAdd.iterator(); i.hasNext(); )
- {
- MessageReference ref = (MessageReference)i.next();
+ if (trace) { log.trace(this + " removing " + del + " after commit"); }
- if (trace) { log.trace(this + ": adding " + ref + " to non-recoverable state"); }
-
- try
- {
- synchronized (refLock)
- {
- addReferenceInMemory(ref);
- }
+ del.getReference().releaseMemoryReference();
+
+ deliveringCount.decrement();
}
- catch (Throwable t)
+
+ // prompt delivery
+ synchronized (refLock)
{
- throw new TransactionException("Failed to add reference", t);
+ deliverInternal();
}
}
-
- // Remove deliveries
-
- for(Iterator i = deliveriesToRemove.iterator(); i.hasNext(); )
+ catch (Throwable t)
{
- Delivery del = (Delivery)i.next();
-
- if (trace) { log.trace(this + " removing " + del + " after commit"); }
-
- del.getReference().releaseMemoryReference();
-
- deliveringCount.decrement();
+ log.error("failed to commit", t);
+ throw new Exception("Failed to commit", t);
}
- // prompt delivery
- if (receiversReady)
- {
- deliverInternal();
- }
}
- private void doAfterRollback()
+ public void afterRollback(boolean onePhase) throws Exception
{
for(Iterator i = refsToAdd.iterator(); i.hasNext(); )
{
@@ -1204,6 +1039,12 @@
ref.releaseMemoryReference();
}
}
+
+ public String toString()
+ {
+ return ChannelSupport.this + ".InMemoryCallback[" +
+ Integer.toHexString(InMemoryCallback.this.hashCode()) + "]";
+ }
}
/**
@@ -1224,126 +1065,9 @@
}
// Private --------------------------------------------------------------------------------------
-
-
-
+
// Inner classes --------------------------------------------------------------------------------
- private class DeliveryRunnable implements Runnable
- {
- Future result;
-
- public DeliveryRunnable(Future result)
- {
- this.result = result;
- }
-
- public void run()
- {
- try
- {
- if (router.getNumberOfReceivers() > 0)
- {
- deliverInternal();
- }
- if (result != null)
- {
- result.setResult(null);
- }
- }
- catch (Throwable t)
- {
- log.error("Failed to deliver", t);
- if (result != null)
- {
- result.setException(t);
- }
- }
- }
- }
-
- private class DeliverScheduledRunnable implements Runnable
- {
- private MessageReference ref;
-
- private Future result;
-
- public DeliverScheduledRunnable(Future result, MessageReference ref)
- {
- this.ref = ref;
-
- this.result = result;
- }
-
- public void run()
- {
- try
- {
- if (router.getNumberOfReceivers() > 0)
- {
- boolean delivered = deliverScheduled(ref);
-
- result.setResult(Boolean.valueOf(delivered));
- }
- else
- {
- result.setResult(Boolean.valueOf(false));
- }
- }
- catch (Throwable t)
- {
- log.error("Failed to deliver scheduled", t);
- }
- }
- }
-
- private class CancelRunnable implements Runnable
- {
- MessageReference ref;
-
- CancelRunnable(MessageReference ref)
- {
- this.ref = ref;
- }
-
- public void run()
- {
- try
- {
- cancelInternal(ref);
- }
- catch (Exception e)
- {
- log.error("Failed to cancel delivery", e);
- }
- }
- }
-
- protected class HandleRunnable implements Runnable
- {
- Future result;
-
- DeliveryObserver sender;
-
- MessageReference ref;
-
- boolean persist;
-
- public HandleRunnable(Future result, DeliveryObserver sender, MessageReference ref, boolean persist)
- {
- this.result = result;
- this.sender = sender;
- this.ref = ref;
- this.persist = persist;
- }
-
- public void run()
- {
- Delivery d = handleInternal(sender, ref, null, persist, false);
- result.setResult(d);
- }
- }
-
private class DeliverRefTimeoutTarget implements TimeoutTarget
{
private MessageReference ref;
@@ -1368,33 +1092,23 @@
}
ref.setScheduledDeliveryTime(0);
-
- Future result = new Future();
- DeliverScheduledRunnable runnable = new DeliverScheduledRunnable(result, ref);
+ boolean delivered = false;
- try
- {
- executor.execute(runnable);
+ if (router.getNumberOfReceivers() > 0)
+ {
+ delivered = deliverScheduled(ref);
}
- catch (InterruptedException e)
- {
- log.error("Thread interrupted", e);
- }
-
- Boolean b = (Boolean)result.getResult();
- boolean delivered = b.booleanValue();
-
+
if (!delivered)
{
- //add to front of queue
try
{
- executor.execute(new CancelRunnable(ref));
+ cancelInternal(ref);
}
- catch (InterruptedException e)
+ catch (Exception e)
{
- log.error("Thread interrupted", e);
+ log.error("Failed to cancel", e);
}
}
else
Modified: trunk/src/main/org/jboss/messaging/core/PagingChannelSupport.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/PagingChannelSupport.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/messaging/core/PagingChannelSupport.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -35,8 +35,6 @@
import org.jboss.messaging.core.plugin.contract.PersistenceManager.InitialLoadInfo;
import org.jboss.messaging.core.plugin.contract.PersistenceManager.ReferenceInfo;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
* A PagingChannel
*
@@ -62,7 +60,7 @@
/**
* The maximum number of references this channel will hold before going into paging mode
*/
- protected int fullSize = 75000;
+ protected int fullSize = 200000;
/**
* The maximum number of references to load from storage in one go when unpaging
@@ -104,9 +102,9 @@
*/
public PagingChannelSupport(long channelID, MessageStore ms, PersistenceManager pm,
boolean acceptReliableMessages, boolean recoverable,
- QueuedExecutor executor, int maxSize)
+ int maxSize)
{
- super(channelID, ms, pm, acceptReliableMessages, recoverable, executor, maxSize);
+ super(channelID, ms, pm, acceptReliableMessages, recoverable, maxSize);
downCache = new ArrayList(downCacheSize);
@@ -127,10 +125,10 @@
*/
public PagingChannelSupport(long channelID, MessageStore ms, PersistenceManager pm,
boolean acceptReliableMessages, boolean recoverable,
- QueuedExecutor executor, int maxSize,
+ int maxSize,
int fullSize, int pageSize, int downCacheSize)
{
- super(channelID, ms, pm, acceptReliableMessages, recoverable, executor, maxSize);
+ super(channelID, ms, pm, acceptReliableMessages, recoverable, maxSize);
if (pageSize >= fullSize)
{
Modified: trunk/src/main/org/jboss/messaging/core/local/PagingFilteredQueue.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/local/PagingFilteredQueue.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/messaging/core/local/PagingFilteredQueue.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -33,8 +33,6 @@
import org.jboss.messaging.core.plugin.contract.PersistenceManager;
import org.jboss.messaging.core.tx.Transaction;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
*
* A PagingFilteredQueue
@@ -74,10 +72,9 @@
public PagingFilteredQueue(String name, long id, MessageStore ms, PersistenceManager pm,
boolean acceptReliableMessages, boolean recoverable,
- QueuedExecutor executor, int maxSize,
- Filter filter)
+ int maxSize, Filter filter)
{
- super(id, ms, pm, acceptReliableMessages, recoverable, executor, maxSize);
+ super(id, ms, pm, acceptReliableMessages, recoverable, maxSize);
router = new RoundRobinPointToPointRouter();
@@ -88,11 +85,10 @@
public PagingFilteredQueue(String name, long id, MessageStore ms, PersistenceManager pm,
boolean acceptReliableMessages, boolean recoverable,
- QueuedExecutor executor, int maxSize,
- Filter filter,
+ int maxSize, Filter filter,
int fullSize, int pageSize, int downCacheSize)
{
- super(id, ms, pm, acceptReliableMessages, recoverable, executor, maxSize, fullSize, pageSize, downCacheSize);
+ super(id, ms, pm, acceptReliableMessages, recoverable, maxSize, fullSize, pageSize, downCacheSize);
router = new RoundRobinPointToPointRouter();
Modified: trunk/src/main/org/jboss/messaging/core/plugin/ClusteredPostOfficeService.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/ClusteredPostOfficeService.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/messaging/core/plugin/ClusteredPostOfficeService.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -21,15 +21,18 @@
*/
package org.jboss.messaging.core.plugin;
-import javax.management.ObjectName;
-import javax.management.NotificationListener;
-import javax.management.NotificationFilter;
+import java.util.Collections;
+import java.util.Set;
+
import javax.management.ListenerNotFoundException;
import javax.management.MBeanNotificationInfo;
+import javax.management.NotificationFilter;
+import javax.management.NotificationListener;
+import javax.management.ObjectName;
import javax.transaction.TransactionManager;
+
import org.jboss.jms.selector.SelectorFactory;
import org.jboss.jms.server.JMSConditionFactory;
-import org.jboss.jms.server.QueuedExecutorPool;
import org.jboss.jms.server.ServerPeer;
import org.jboss.jms.util.ExceptionUtil;
import org.jboss.messaging.core.FilterFactory;
@@ -49,9 +52,6 @@
import org.jboss.messaging.core.tx.TransactionRepository;
import org.w3c.dom.Element;
-import java.util.Set;
-import java.util.Collections;
-
/**
* A ClusteredPostOfficeService
*
@@ -91,6 +91,7 @@
private long statsSendPeriod = 1000;
private String clusterRouterFactory;
private String messagePullPolicy;
+ private int threadPoolSize = 50;
private DefaultClusteredPostOffice postOffice;
@@ -175,6 +176,11 @@
public void setChannelFactoryName(ObjectName channelFactoryName)
{
+ if (started)
+ {
+ log.warn("Cannot set attribute when service is started");
+ return;
+ }
this.channelFactoryName = channelFactoryName;
}
@@ -185,6 +191,11 @@
public void setSyncChannelName(String syncChannelName)
{
+ if (started)
+ {
+ log.warn("Cannot set attribute when service is started");
+ return;
+ }
this.syncChannelName = syncChannelName;
}
@@ -195,6 +206,11 @@
public void setAsyncChannelName(String asyncChannelName)
{
+ if (started)
+ {
+ log.warn("Cannot set attribute when service is started");
+ return;
+ }
this.asyncChannelName = asyncChannelName;
}
@@ -205,11 +221,21 @@
public void setChannelPartitionName(String channelPartitionName)
{
+ if (started)
+ {
+ log.warn("Cannot set attribute when service is started");
+ return;
+ }
this.channelPartitionName = channelPartitionName;
}
public void setSyncChannelConfig(Element config) throws Exception
{
+ if (started)
+ {
+ log.warn("Cannot set attribute when service is started");
+ return;
+ }
syncChannelConfig = config;
}
@@ -220,6 +246,11 @@
public void setAsyncChannelConfig(Element config) throws Exception
{
+ if (started)
+ {
+ log.warn("Cannot set attribute when service is started");
+ return;
+ }
asyncChannelConfig = config;
}
@@ -230,6 +261,11 @@
public void setStateTimeout(long timeout)
{
+ if (started)
+ {
+ log.warn("Cannot set attribute when service is started");
+ return;
+ }
this.stateTimeout = timeout;
}
@@ -240,6 +276,11 @@
public void setCastTimeout(long timeout)
{
+ if (started)
+ {
+ log.warn("Cannot set attribute when service is started");
+ return;
+ }
this.castTimeout = timeout;
}
@@ -260,6 +301,11 @@
public void setStatsSendPeriod(long period)
{
+ if (started)
+ {
+ log.warn("Cannot set attribute when service is started");
+ return;
+ }
this.statsSendPeriod = period;
}
@@ -280,6 +326,11 @@
public void setClusterRouterFactory(String clusterRouterFactory)
{
+ if (started)
+ {
+ log.warn("Cannot set attribute when service is started");
+ return;
+ }
this.clusterRouterFactory = clusterRouterFactory;
}
@@ -292,6 +343,21 @@
{
return postOffice.printBindingInformation();
}
+
+ public int getThreadPoolSize()
+ {
+ return this.threadPoolSize;
+ }
+
+ public void setThreadPoolSize(int size)
+ {
+ if (started)
+ {
+ log.warn("Cannot set attribute when service is started");
+ return;
+ }
+ this.threadPoolSize = size;
+ }
// Public --------------------------------------------------------
@@ -316,7 +382,6 @@
MessageStore ms = serverPeer.getMessageStore();
TransactionRepository tr = serverPeer.getTxRepository();
PersistenceManager pm = serverPeer.getPersistenceManagerInstance();
- QueuedExecutorPool pool = serverPeer.getQueuedExecutorPool();
int nodeId = serverPeer.getServerPeerID();
Class clazz = Class.forName(messagePullPolicy);
@@ -369,13 +434,14 @@
postOffice = new DefaultClusteredPostOffice(ds, tm, sqlProperties,
createTablesOnStartup,
nodeId, officeName, ms,
- pm, tr, ff, cf, pool,
+ pm, tr, ff, cf,
groupName,
jChannelFactory,
stateTimeout, castTimeout,
pullPolicy, rf,
mapper,
- statsSendPeriod);
+ statsSendPeriod,
+ threadPoolSize);
postOffice.start();
Modified: trunk/src/main/org/jboss/messaging/core/plugin/DefaultPostOfficeService.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/DefaultPostOfficeService.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/messaging/core/plugin/DefaultPostOfficeService.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -26,7 +26,6 @@
import org.jboss.jms.selector.SelectorFactory;
import org.jboss.jms.server.JMSConditionFactory;
-import org.jboss.jms.server.QueuedExecutorPool;
import org.jboss.jms.server.ServerPeer;
import org.jboss.jms.util.ExceptionUtil;
import org.jboss.messaging.core.FilterFactory;
@@ -130,8 +129,6 @@
PersistenceManager pm = serverPeer.getPersistenceManagerInstance();
- QueuedExecutorPool pool = serverPeer.getQueuedExecutorPool();
-
TransactionRepository tr = serverPeer.getTxRepository();
int nodeId = serverPeer.getServerPeerID();
@@ -142,7 +139,7 @@
postOffice = new DefaultPostOffice(ds, tm, sqlProperties,
createTablesOnStartup,
- nodeId, officeName, ms, pm, tr, ff, cf, pool);
+ nodeId, officeName, ms, pm, tr, ff, cf);
postOffice.start();
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/DefaultPostOffice.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/DefaultPostOffice.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/DefaultPostOffice.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -39,7 +39,6 @@
import javax.sql.DataSource;
import javax.transaction.TransactionManager;
-import org.jboss.jms.server.QueuedExecutorPool;
import org.jboss.logging.Logger;
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.Filter;
@@ -58,7 +57,6 @@
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.messaging.core.tx.TransactionRepository;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
import EDU.oswego.cs.dl.util.concurrent.ReadWriteLock;
import EDU.oswego.cs.dl.util.concurrent.ReentrantWriterPreferenceReadWriteLock;
@@ -88,7 +86,6 @@
protected TransactionRepository tr;
protected FilterFactory filterFactory;
protected ConditionFactory conditionFactory;
- protected QueuedExecutorPool pool;
protected int currentNodeId;
// Map <NodeID, Map<queueName, Binding>>
@@ -113,8 +110,7 @@
int nodeId, String officeName, MessageStore ms,
PersistenceManager pm,
TransactionRepository tr, FilterFactory filterFactory,
- ConditionFactory conditionFactory,
- QueuedExecutorPool pool)
+ ConditionFactory conditionFactory)
{
super (ds, tm, sqlProperties, createTablesOnStartup);
@@ -130,7 +126,6 @@
this.tr = tr;
this.filterFactory = filterFactory;
this.conditionFactory = conditionFactory;
- this.pool = pool;
this.officeName = officeName;
}
@@ -662,10 +657,9 @@
Queue queue;
if (nodeID == currentNodeId)
- {
- QueuedExecutor executor = (QueuedExecutor)pool.get();
+ {
queue =
- new PagingFilteredQueue(queueName, channelID, ms, pm, true, true, executor, -1, filter);
+ new PagingFilteredQueue(queueName, channelID, ms, pm, true, true, -1, filter);
}
else
{
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOffice.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOffice.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOffice.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -41,16 +41,15 @@
import java.util.Properties;
import java.util.Set;
+import javax.management.ListenerNotFoundException;
+import javax.management.MBeanNotificationInfo;
+import javax.management.Notification;
+import javax.management.NotificationBroadcasterSupport;
+import javax.management.NotificationFilter;
+import javax.management.NotificationListener;
import javax.sql.DataSource;
import javax.transaction.TransactionManager;
-import javax.management.NotificationBroadcasterSupport;
-import javax.management.NotificationListener;
-import javax.management.MBeanNotificationInfo;
-import javax.management.NotificationFilter;
-import javax.management.ListenerNotFoundException;
-import javax.management.Notification;
-import org.jboss.jms.server.QueuedExecutorPool;
import org.jboss.logging.Logger;
import org.jboss.messaging.core.Delivery;
import org.jboss.messaging.core.Filter;
@@ -83,6 +82,8 @@
import org.jgroups.blocks.MessageDispatcher;
import org.jgroups.blocks.RequestHandler;
+import EDU.oswego.cs.dl.util.concurrent.LinkedQueue;
+import EDU.oswego.cs.dl.util.concurrent.PooledExecutor;
import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
/**
@@ -217,8 +218,9 @@
private NotificationBroadcasterSupport nbSupport;
private QueuedExecutor viewExecutor;
-
-
+
+ private PooledExecutor pooledExecutor;
+
// Constructors ---------------------------------------------------------------------------------
/*
@@ -235,18 +237,18 @@
TransactionRepository tr,
FilterFactory filterFactory,
ConditionFactory conditionFactory,
- QueuedExecutorPool pool,
String groupName,
JChannelFactory JChannelFactory,
long stateTimeout, long castTimeout,
MessagePullPolicy redistributionPolicy,
ClusterRouterFactory rf,
FailoverMapper failoverMapper,
- long statsSendPeriod)
+ long statsSendPeriod,
+ int poolSize)
throws Exception
{
super (ds, tm, sqlProperties, createTablesOnStartup, nodeId, officeName, ms, pm, tr,
- filterFactory, conditionFactory, pool);
+ filterFactory, conditionFactory);
this.groupName = groupName;
@@ -281,6 +283,10 @@
viewExecutor = new QueuedExecutor();
this.jChannelFactory = JChannelFactory;
+
+ this.pooledExecutor = new PooledExecutor(new LinkedQueue(), poolSize);
+
+ this.pooledExecutor.setMinimumPoolSize(poolSize);
}
// MessagingComponent overrides -----------------------------------------------------------------
@@ -888,7 +894,7 @@
// We now trigger delivery - this may cause a pull event
// We only do this if there are no refs in the local queue
- localQueue.deliver(false);
+ localQueue.deliver();
if (trace) { log.trace(this + " triggered delivery for " + localQueue.getName()); }
}
@@ -1023,6 +1029,11 @@
}
}
}
+
+ public PooledExecutor getPooledExecutor()
+ {
+ return pooledExecutor;
+ }
// Replicator implementation --------------------------------------------------------------------
@@ -1201,22 +1212,38 @@
{
if (tx == null)
{
- if (numberRemote == 1)
- {
- if (trace) { log.trace(this + " unicasting message to " + lastNodeId); }
-
- // Unicast - only one node is interested in the message
- asyncSendRequest(new MessageRequest(condition.toText(),
- ref.getMessage(), null), lastNodeId);
- }
- else
- {
- if (trace) { log.trace(this + " multicasting message to group"); }
-
- // Multicast - more than one node is interested
- asyncSendRequest(new MessageRequest(condition.toText(),
- ref.getMessage(), queueNameNodeIdMap));
- }
+ //TODO temporarily commented out since if we some messages are unicast and others
+ //are multicast then later sent messages can overtake earlier sent messages
+ //(ordering is only guaranteed for messages sent in one of the two different ways)
+ //which can result in messaged being received at their destinations out of order
+ //To resolve this we use multicast always for now
+ //http://jira.jboss.org/jira/browse/JBMESSAGING-868
+
+// if (numberRemote == 1)
+// {
+// if (trace) { log.trace(this + " unicasting message to " + lastNodeId); }
+//
+// // Unicast - only one node is interested in the message
+// asyncSendRequest(new MessageRequest(condition.toText(),
+// ref.getMessage(), null), lastNodeId);
+// }
+// else
+// {
+// if (trace) { log.trace(this + " multicasting message to group"); }
+//
+// // Multicast - more than one node is interested
+// asyncSendRequest(new MessageRequest(condition.toText(),
+// ref.getMessage(), queueNameNodeIdMap));
+// }
+
+ if (trace) { log.trace(this + " multicasting message to group"); }
+
+ // Multicast - more than one node is interested
+ asyncSendRequest(new MessageRequest(condition.toText(),
+ ref.getMessage(), queueNameNodeIdMap));
+
+
+
}
else
{
@@ -1628,17 +1655,15 @@
if (nodeID == currentNodeId)
{
- QueuedExecutor executor = (QueuedExecutor)pool.get();
-
if (failedNodeID == null)
{
queue = new LocalClusteredQueue(this, nodeID, queueName, channelId, ms, pm, true,
- durable, executor, -1, filter, tr);
+ durable, -1, filter, tr);
}
else
{
queue = new FailedOverQueue(this, nodeID, queueName, channelId, ms, pm, true,
- durable, executor, filter, tr, failedNodeID.intValue());
+ durable, filter, tr, failedNodeID.intValue());
}
}
else
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/FailedOverQueue.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/FailedOverQueue.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/FailedOverQueue.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -6,12 +6,11 @@
*/
package org.jboss.messaging.core.plugin.postoffice.cluster;
-import org.jboss.messaging.core.tx.TransactionRepository;
-import org.jboss.messaging.core.plugin.contract.PostOffice;
+import org.jboss.messaging.core.Filter;
+import org.jboss.messaging.core.plugin.contract.ClusteredPostOffice;
import org.jboss.messaging.core.plugin.contract.MessageStore;
import org.jboss.messaging.core.plugin.contract.PersistenceManager;
-import org.jboss.messaging.core.Filter;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
+import org.jboss.messaging.core.tx.TransactionRepository;
/**
*
@@ -35,25 +34,25 @@
// Constructors ---------------------------------------------------------------------------------
- public FailedOverQueue(PostOffice office, int nodeID, String name, long id, MessageStore ms,
+ public FailedOverQueue(ClusteredPostOffice office, int nodeID, String name, long id, MessageStore ms,
PersistenceManager pm, boolean acceptReliableMessages,
- boolean recoverable, QueuedExecutor executor, Filter filter,
+ boolean recoverable, Filter filter,
TransactionRepository tr, int fullSize, int pageSize, int downCacheSize,
int failedNodeID)
{
super(office, nodeID, name, id, ms, pm, acceptReliableMessages, recoverable,
- executor, -1, filter, tr, fullSize, pageSize, downCacheSize);
+ -1, filter, tr, fullSize, pageSize, downCacheSize);
this.failedNodeID = failedNodeID;
}
- public FailedOverQueue(PostOffice office, int nodeID, String name, long id, MessageStore ms,
+ public FailedOverQueue(ClusteredPostOffice office, int nodeID, String name, long id, MessageStore ms,
PersistenceManager pm, boolean acceptReliableMessages,
- boolean recoverable, QueuedExecutor executor, Filter filter,
+ boolean recoverable, Filter filter,
TransactionRepository tr, int failedNodeID)
{
super(office, nodeID, name, id, ms, pm, acceptReliableMessages, recoverable,
- executor, -1, filter, tr);
+ -1, filter, tr);
this.failedNodeID = failedNodeID;
}
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/LocalClusteredQueue.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/LocalClusteredQueue.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/LocalClusteredQueue.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -21,19 +21,22 @@
*/
package org.jboss.messaging.core.plugin.postoffice.cluster;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
import org.jboss.logging.Logger;
-import org.jboss.messaging.core.*;
+import org.jboss.messaging.core.Delivery;
+import org.jboss.messaging.core.Filter;
+import org.jboss.messaging.core.SimpleDelivery;
import org.jboss.messaging.core.local.PagingFilteredQueue;
import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.message.MessageReference;
+import org.jboss.messaging.core.plugin.contract.ClusteredPostOffice;
import org.jboss.messaging.core.plugin.contract.MessageStore;
import org.jboss.messaging.core.plugin.contract.PersistenceManager;
-import org.jboss.messaging.core.plugin.contract.PostOffice;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.messaging.core.tx.TransactionRepository;
import org.jboss.messaging.util.Future;
+import EDU.oswego.cs.dl.util.concurrent.Executor;
+
/**
*
* A LocalClusteredQueue
@@ -60,33 +63,39 @@
private TransactionRepository tr;
+ private Executor executor;
+
//TODO - we shouldn't have to specify office AND nodeId
- public LocalClusteredQueue(PostOffice office, int nodeId, String name, long id,
+ public LocalClusteredQueue(ClusteredPostOffice office, int nodeId, String name, long id,
MessageStore ms, PersistenceManager pm,
boolean acceptReliableMessages, boolean recoverable,
- QueuedExecutor executor, int maxSize,
+ int maxSize,
Filter filter, TransactionRepository tr,
int fullSize, int pageSize, int downCacheSize)
{
super(name, id, ms, pm, acceptReliableMessages, recoverable,
- executor, maxSize, filter, fullSize, pageSize, downCacheSize);
+ maxSize, filter, fullSize, pageSize, downCacheSize);
this.nodeId = nodeId;
this.tr = tr;
this.office = (PostOfficeInternal)office; //TODO - This cast is potentially unsafe - handle better
+
+ this.executor = this.office.getPooledExecutor();
}
- public LocalClusteredQueue(PostOffice office, int nodeId, String name, long id,
+ public LocalClusteredQueue(ClusteredPostOffice office, int nodeId, String name, long id,
MessageStore ms, PersistenceManager pm,
boolean acceptReliableMessages, boolean recoverable,
- QueuedExecutor executor, int maxSize,
+ int maxSize,
Filter filter, TransactionRepository tr)
{
- super(name, id, ms, pm, acceptReliableMessages, recoverable, executor, maxSize, filter);
+ super(name, id, ms, pm, acceptReliableMessages, recoverable, maxSize, filter);
this.nodeId = nodeId;
this.tr = tr;
this.office = (PostOfficeInternal)office; //TODO - This cast is potentially unsafe - handle better
+
+ this.executor = this.office.getPooledExecutor();
}
public void setPullQueue(RemoteQueueStub queue)
@@ -159,20 +168,12 @@
checkClosed();
- Future result = new Future();
-
- // Instead of executing directly, we add the handle request to the event queue.
- // Since remoting doesn't currently handle non blocking IO, we still have to wait for the
- // result, but when remoting does, we can use a full SEDA approach and get even better
- // throughput.
- this.executor.execute(new HandleRunnable(result, null, ref, false));
-
- return (Delivery)result.getResult();
+ return handleInternal(null, ref, null, false);
}
public void acknowledgeFromCluster(Delivery d) throws Throwable
{
- acknowledgeInternal(d, null, false, false);
+ acknowledgeInternal(d, null, false);
}
public void handlePullMessagesResult(RemoteQueueStub remoteQueue, Message message,
@@ -203,12 +204,10 @@
public int getRefCount()
{
- //We are only interested in getting the reference count when delivery is not in progress
- //since we don't want mid delivery transient spurious values, so we execute the request
- //on the same thread.
-
Future result = new Future();
+ //This needs to be run on a different thread to the one used by JGroups to deliver the message
+ //to avoid deadlock
try
{
this.executor.execute(new GetRefCountRunnable(result));
@@ -470,8 +469,7 @@
{
ref = ms.reference(message);
- //Should be executed synchronously since we already in the event queue
- Delivery delRet = handleInternal(null, ref, tx, true, true);
+ Delivery delRet = handleInternal(null, ref, tx, true);
if (delRet == null || !delRet.isSelectorAccepted())
{
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/PostOfficeInternal.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/PostOfficeInternal.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/PostOfficeInternal.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -28,6 +28,8 @@
import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.plugin.contract.ClusteredPostOffice;
+import EDU.oswego.cs.dl.util.concurrent.PooledExecutor;
+
/**
*
* A PostOfficeInternal
@@ -75,4 +77,6 @@
boolean referenceExistsInStorage(long channelID, long messageID) throws Exception;
void handleMessagePullResult(int remoteNodeId, long holdingTxId, String queueName, Message message) throws Throwable;
+
+ PooledExecutor getPooledExecutor();
}
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/RemoteQueueStub.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/RemoteQueueStub.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/RemoteQueueStub.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -182,7 +182,7 @@
throw new UnsupportedOperationException();
}
- public void deliver(boolean synchronous)
+ public void deliver()
{
throw new UnsupportedOperationException();
}
Modified: trunk/tests/src/org/jboss/test/messaging/core/SimpleChannel.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/SimpleChannel.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/SimpleChannel.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -85,7 +85,7 @@
return ms;
}
- public void deliver(boolean synch)
+ public void deliver()
{
log.debug("deliver()");
deliveryNotification = true;
Modified: trunk/tests/src/org/jboss/test/messaging/core/SimpleReceiver.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/SimpleReceiver.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/SimpleReceiver.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -221,7 +221,7 @@
return;
}
log.trace("receiver explicitely requesting message from the channel");
- channel.deliver(true);
+ channel.deliver();
}
public void clear()
Modified: trunk/tests/src/org/jboss/test/messaging/core/local/NonRecoverablePagingFilteredQueueTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/local/NonRecoverablePagingFilteredQueueTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/local/NonRecoverablePagingFilteredQueueTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -24,8 +24,6 @@
import org.jboss.messaging.core.local.PagingFilteredQueue;
import org.jboss.test.messaging.core.local.base.PagingFilteredQueueTestBase;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
* @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
* @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -55,7 +53,7 @@
{
super.setUp();
- queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, false, new QueuedExecutor(), -1, null);
+ queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, false, -1, null);
}
public void tearDown() throws Exception
@@ -71,7 +69,7 @@
public void recoverChannel() throws Exception
{
- queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, false, new QueuedExecutor(), -1, null);
+ queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, false, -1, null);
}
// Public --------------------------------------------------------
Modified: trunk/tests/src/org/jboss/test/messaging/core/local/RecoverablePagingFilteredQueueTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/local/RecoverablePagingFilteredQueueTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/local/RecoverablePagingFilteredQueueTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -24,8 +24,6 @@
import org.jboss.messaging.core.local.PagingFilteredQueue;
import org.jboss.test.messaging.core.local.base.PagingFilteredQueueTestBase;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
* @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
* @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -55,7 +53,7 @@
{
super.setUp();
- queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, new QueuedExecutor(), -1, null);
+ queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, -1, null);
}
public void tearDown() throws Exception
@@ -71,7 +69,7 @@
public void recoverChannel() throws Exception
{
- queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, new QueuedExecutor(), -1, null);
+ queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, -1, null);
}
// Public --------------------------------------------------------
Modified: trunk/tests/src/org/jboss/test/messaging/core/local/base/PagingFilteredQueueTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/local/base/PagingFilteredQueueTestBase.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/local/base/PagingFilteredQueueTestBase.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -48,8 +48,6 @@
import org.jboss.test.messaging.tools.jmx.ServiceContainer;
import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
* The QueueTest test strategy is to try as many combination as it makes sense of the following
* variables:
@@ -208,7 +206,7 @@
{
Filter f = new SimpleFilter(3);
- PagingFilteredQueue queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, false, new QueuedExecutor(), -1, f);
+ PagingFilteredQueue queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, false, -1, f);
Message m1 = new CoreMessage(1, false, 0, 0, (byte)0, null, null);
Message m2 = new CoreMessage(2, false, 0, 0, (byte)0, null, null);
@@ -413,11 +411,11 @@
SimpleReceiver receiver = new SimpleReceiver("ACKING", SimpleReceiver.ACKING);
queue.add(receiver);
- queue.deliver(true);
+ queue.deliver();
assertEquals(1, receiver.getMessages().size());
assertEquals(0, ((Message)receiver.getMessages().get(0)).getMessageID());
- queue.deliver(true);
+ queue.deliver();
assertEquals(1, receiver.getMessages().size());
@@ -456,7 +454,7 @@
SimpleReceiver receiver = new SimpleReceiver("ACKING", SimpleReceiver.ACKING);
queue.add(receiver);
- queue.deliver(true);
+ queue.deliver();
assertEquals(10, receiver.getMessages().size());
for(int i = 0; i < NUMBER_OF_MESSAGES; i++)
{
@@ -464,7 +462,7 @@
}
receiver.clear();
- queue.deliver(true);
+ queue.deliver();
assertEquals(0, receiver.getMessages().size());
}
@@ -508,13 +506,13 @@
assertTrue(queue.browse().isEmpty());
- queue.deliver(true);
+ queue.deliver();
Receiver r = new SimpleReceiver("ACKING", SimpleReceiver.ACKING);
queue.add(r);
- queue.deliver(true);
+ queue.deliver();
}
///////////
@@ -555,15 +553,15 @@
assertTrue(sm.isReliable());
assertEquals(0, sm.getMessageID());
- queue.deliver(true);
+ queue.deliver();
SimpleReceiver receiver = new SimpleReceiver("ACKING", SimpleReceiver.ACKING);
queue.add(receiver);
- queue.deliver(true);
+ queue.deliver();
assertEquals(1, receiver.getMessages().size());
assertEquals(0, ((Message)receiver.getMessages().get(0)).getMessageID());
- queue.deliver(true);
+ queue.deliver();
assertEquals(1, receiver.getMessages().size());
}
@@ -605,13 +603,13 @@
// the channel must not accept the message
assertNull(delivery);
- queue.deliver(true);
+ queue.deliver();
Receiver r = new SimpleReceiver("ACKING", SimpleReceiver.ACKING);
queue.add(r);
- queue.deliver(true);
+ queue.deliver();
}
assertTrue(queue.browse().isEmpty());
@@ -655,7 +653,7 @@
SimpleReceiver receiver = new SimpleReceiver("ACKING", SimpleReceiver.ACKING);
queue.add(receiver);
- queue.deliver(true);
+ queue.deliver();
assertEquals(10, receiver.getMessages().size());
for(int i = 0; i < NUMBER_OF_MESSAGES; i++)
{
@@ -663,7 +661,7 @@
}
receiver.clear();
- queue.deliver(true);
+ queue.deliver();
assertEquals(0, receiver.getMessages().size());
}
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_2PCTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_2PCTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_2PCTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -28,12 +28,10 @@
import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.messaging.core.tx.Transaction;
-import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
+import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
*
* A ChannelShare_NP_2PC_Recoverable.
@@ -65,10 +63,10 @@
public void testChannelShareNP_2PC() throws Throwable
{
- PagingFilteredQueue queue1 = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, new QueuedExecutor(), -1, null, 100, 20, 10);
+ PagingFilteredQueue queue1 = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, -1, null, 100, 20, 10);
- PagingFilteredQueue queue2 = new PagingFilteredQueue("queue2", 2, ms, pm, true, true, new QueuedExecutor(), -1, null, 50, 10, 5);
-
+ PagingFilteredQueue queue2 = new PagingFilteredQueue("queue2", 2, ms, pm, true, true, -1, null, 50, 10, 5);
+
Message[] msgs = new Message[150];
MessageReference[] refs1 = new MessageReference[150];
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_NTTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_NTTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_NTTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -27,12 +27,10 @@
import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
-import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
+import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
*
* A ChannelShare_NP_NT_Recoverable.
@@ -64,9 +62,9 @@
public void test1() throws Throwable
{
- PagingFilteredQueue queue1 = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, new QueuedExecutor(), -1, null, 100, 20, 10);
+ PagingFilteredQueue queue1 = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, -1, null, 100, 20, 10);
- PagingFilteredQueue queue2 = new PagingFilteredQueue("queue2", 2, ms, pm, true, true, new QueuedExecutor(), -1, null, 50, 10, 5);
+ PagingFilteredQueue queue2 = new PagingFilteredQueue("queue2", 2, ms, pm, true, true, -1, null, 50, 10, 5);
Message[] msgs = new Message[150];
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_TTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_TTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_NP_TTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -28,12 +28,10 @@
import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.messaging.core.tx.Transaction;
-import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
+import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
*
* A ChannelShare_NP_T_Recoverable.
@@ -65,9 +63,9 @@
public void testChannelShareNP_Transactional() throws Throwable
{
- PagingFilteredQueue queue1 = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, new QueuedExecutor(), -1, null, 100, 20, 10);
+ PagingFilteredQueue queue1 = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, -1, null, 100, 20, 10);
- PagingFilteredQueue queue2 = new PagingFilteredQueue("queue2", 2, ms, pm, true, true, new QueuedExecutor(), -1, null, 50, 10, 5);
+ PagingFilteredQueue queue2 = new PagingFilteredQueue("queue2", 2, ms, pm, true, true, -1, null, 50, 10, 5);
Message[] msgs = new Message[150];
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_2PCTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_2PCTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_2PCTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -28,12 +28,10 @@
import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.messaging.core.tx.Transaction;
-import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
+import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
*
* A ChannelShare_P_2PCTest
@@ -60,9 +58,9 @@
public void test1() throws Throwable
{
- PagingFilteredQueue queue1 = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, new QueuedExecutor(), -1, null, 100, 20, 10);
+ PagingFilteredQueue queue1 = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, -1, null, 100, 20, 10);
- PagingFilteredQueue queue2 = new PagingFilteredQueue("queue2", 2, ms, pm, true, true, new QueuedExecutor(), -1, null, 50, 10, 5);
+ PagingFilteredQueue queue2 = new PagingFilteredQueue("queue2", 2, ms, pm, true, true, -1, null, 50, 10, 5);
Message[] msgs = new Message[150];
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_NTTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_NTTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_NTTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -27,11 +27,9 @@
import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
-import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
+import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
*
* A ChannelShare_P_NT_Recoverable.
@@ -64,9 +62,9 @@
public void test1() throws Throwable
{
- PagingFilteredQueue queue1 = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, new QueuedExecutor(), -1, null, 100, 20, 10);
+ PagingFilteredQueue queue1 = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, -1, null, 100, 20, 10);
- PagingFilteredQueue queue2 = new PagingFilteredQueue("queue2", 2, ms, pm, true, true, new QueuedExecutor(), -1, null, 50, 10, 5);
+ PagingFilteredQueue queue2 = new PagingFilteredQueue("queue2", 2, ms, pm, true, true, -1, null, 50, 10, 5);
Message[] msgs = new Message[150];
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_TTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_TTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/ChannelShare_P_TTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -28,11 +28,9 @@
import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.messaging.core.tx.Transaction;
-import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
+import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
*
* A ChannelShare_P_T_Recoverable.
@@ -64,9 +62,9 @@
public void test1() throws Throwable
{
- PagingFilteredQueue queue1 = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, new QueuedExecutor(), -1, null, 100, 20, 10);
+ PagingFilteredQueue queue1 = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, -1, null, 100, 20, 10);
- PagingFilteredQueue queue2 = new PagingFilteredQueue("queue2", 2, ms, pm, true, true, new QueuedExecutor(), -1, null, 50, 10, 5);
+ PagingFilteredQueue queue2 = new PagingFilteredQueue("queue2", 2, ms, pm, true, true, -1, null, 50, 10, 5);
Message[] msgs = new Message[150];
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/PagingTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/PagingTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/PagingTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -31,9 +31,7 @@
import org.jboss.test.messaging.tools.jmx.ServiceContainer;
import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
* @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
* @version <tt>$Revision$</tt>
@@ -65,7 +63,7 @@
{
PagingFilteredQueue p =
new PagingFilteredQueue("queue0", 1, ms, pm, true, true,
- new QueuedExecutor(), -1, null, 100, 20, 10);
+ -1, null, 100, 20, 10);
CoreMessage m = null;
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_2PCTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_2PCTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_2PCTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -29,11 +29,9 @@
import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.messaging.core.tx.Transaction;
-import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
+import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
*
* A PagingTest_NP_2PC_Recoverable.
@@ -67,7 +65,7 @@
public void test1() throws Throwable
{
- PagingFilteredQueue queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, new QueuedExecutor(), -1, null, 100, 20, 10);
+ PagingFilteredQueue queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, -1, null, 100, 20, 10);
Message[] msgs = new Message[241];
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_NTTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_NTTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_NTTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -28,11 +28,9 @@
import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
-import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
+import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
*
* A PagingTest_NP_NT_Recoverable.
@@ -66,7 +64,7 @@
public void test1() throws Throwable
{
- PagingFilteredQueue queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, new QueuedExecutor(), -1, null, 100, 20, 10);
+ PagingFilteredQueue queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, -1, null, 100, 20, 10);
Message[] msgs = new Message[241];
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_TTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_TTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_NP_TTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -29,11 +29,9 @@
import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.messaging.core.tx.Transaction;
-import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
+import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
*
* A PagingTest_NP_T_Recoverable.
@@ -67,7 +65,7 @@
public void test1() throws Throwable
{
- PagingFilteredQueue queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, new QueuedExecutor(), -1, null, 100, 20, 10);
+ PagingFilteredQueue queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, -1, null, 100, 20, 10);
Message[] msgs = new Message[241];
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_2PCTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_2PCTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_2PCTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -29,11 +29,9 @@
import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.messaging.core.tx.Transaction;
-import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
+import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
*
* A PagingTest_P_2PC_Recoverable.
@@ -67,7 +65,7 @@
public void test1() throws Throwable
{
- PagingFilteredQueue queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, new QueuedExecutor(), -1, null, 100, 20, 10);
+ PagingFilteredQueue queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, -1, null, 100, 20, 10);
Message[] msgs = new Message[241];
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_NTTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_NTTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_NTTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -28,11 +28,9 @@
import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
-import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
+import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
*
* A PagingTest_P_NT_Recoverable.
@@ -66,7 +64,7 @@
public void test1() throws Throwable
{
- PagingFilteredQueue queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, new QueuedExecutor(), -1, null, 100, 20, 10);
+ PagingFilteredQueue queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, -1, null, 100, 20, 10);
Message[] msgs = new Message[241];
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_TTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_TTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_P_TTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -29,11 +29,9 @@
import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.messaging.core.tx.Transaction;
-import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
+import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
*
* A PagingTest_P_T_Recoverable.
@@ -67,7 +65,7 @@
public void test1() throws Throwable
{
- PagingFilteredQueue queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, new QueuedExecutor(), -1, null, 100, 20, 10);
+ PagingFilteredQueue queue = new PagingFilteredQueue("queue1", 1, ms, pm, true, true, -1, null, 100, 20, 10);
Message[] msgs = new Message[241];
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_ReloadTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_ReloadTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/SingleChannel_ReloadTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -30,11 +30,9 @@
import org.jboss.messaging.core.plugin.JDBCPersistenceManager;
import org.jboss.messaging.core.plugin.LockMap;
import org.jboss.messaging.core.tx.TransactionRepository;
-import org.jboss.test.messaging.util.CoreMessageFactory;
import org.jboss.test.messaging.core.paging.base.PagingStateTestBase;
+import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
*
* A PagingTest_Reload.
@@ -70,7 +68,7 @@
{
PagingFilteredQueue queue =
new PagingFilteredQueue("queue1", 1, ms, pm, true, true,
- new QueuedExecutor(), -1, null, 100, 20, 10);
+ -1, null, 100, 20, 10);
Message[] msgs = new Message[200];
@@ -133,7 +131,7 @@
PagingFilteredQueue queue2 =
new PagingFilteredQueue("queue1", 1, ms, pm, true, true,
- new QueuedExecutor(), -1, null, 100, 20, 10);
+ -1, null, 100, 20, 10);
queue2.deactivate();
queue2.load();
@@ -170,7 +168,7 @@
PagingFilteredQueue queue =
new PagingFilteredQueue("queue1", 1, ms, pm, true, true,
- new QueuedExecutor(), -1, null, 100, 20, 10);
+ -1, null, 100, 20, 10);
Message[] msgs = new Message[200];
@@ -233,7 +231,7 @@
PagingFilteredQueue queue2 =
new PagingFilteredQueue("queue1", 1, ms, pm, true, true,
- new QueuedExecutor(), -1, null, 100, 20, 10);
+ -1, null, 100, 20, 10);
queue2.deactivate();
queue2.load();
@@ -264,7 +262,7 @@
PagingFilteredQueue queue =
new PagingFilteredQueue("queue1", 1, ms, pm, true, true,
- new QueuedExecutor(), -1, null, 100, 20, 10);
+ -1, null, 100, 20, 10);
Message[] msgs = new Message[200];
Modified: trunk/tests/src/org/jboss/test/messaging/core/paging/base/PagingStateTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/paging/base/PagingStateTestBase.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/paging/base/PagingStateTestBase.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -42,9 +42,9 @@
import org.jboss.messaging.core.plugin.IDManager;
import org.jboss.messaging.core.plugin.JDBCPersistenceManager;
import org.jboss.messaging.core.plugin.contract.PersistenceManager;
+import org.jboss.messaging.core.tx.MessagingXid;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.messaging.core.tx.TransactionRepository;
-import org.jboss.messaging.core.tx.MessagingXid;
import org.jboss.test.messaging.MessagingTestCase;
import org.jboss.test.messaging.tools.jmx.ServiceContainer;
import org.jboss.tm.TransactionManagerService;
@@ -351,7 +351,7 @@
{
ConsumingReceiver r = new ConsumingReceiver(num, refs, consumeCount, false, false);
channel.add(r);
- channel.deliver(false);
+ channel.deliver();
r.acknowledge();
channel.remove(r);
//Need to give enough time for the call to handle to complete and return
@@ -365,7 +365,7 @@
{
ConsumingReceiver r = new ConsumingReceiver(num, refs, consumeCount, true, false);
channel.add(r);
- channel.deliver(false);
+ channel.deliver();
r.acknowledge();
channel.remove(r);
//Need to give enough time for the call to handle to complete and return
@@ -379,7 +379,7 @@
{
ConsumingReceiver r = new ConsumingReceiver(num, refs, consumeCount, true, true);
channel.add(r);
- channel.deliver(false);
+ channel.deliver();
r.acknowledge();
channel.remove(r);
//Need to give enough time for the call to handle to complete and return
@@ -391,7 +391,7 @@
{
CancellingReceiver r1 = new CancellingReceiver(number);
channel.add(r1);
- channel.deliver(false);
+ channel.deliver();
SimpleDelivery[] dels = r1.getToCancel();
channel.remove(r1);
//Need to give enough time for the call to handle to complete and return
@@ -405,7 +405,7 @@
{
CancellingReceiver r1 = new CancellingReceiver(number);
channel.add(r1);
- channel.deliver(false);
+ channel.deliver();
r1.cancel();
channel.remove(r1);
//Need to give enough time for the call to handle to complete and return
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/base/PostOfficeTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/base/PostOfficeTestBase.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/base/PostOfficeTestBase.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -24,7 +24,6 @@
import java.util.ArrayList;
import java.util.List;
-import org.jboss.jms.server.QueuedExecutorPool;
import org.jboss.messaging.core.FilterFactory;
import org.jboss.messaging.core.Queue;
import org.jboss.messaging.core.message.Message;
@@ -32,20 +31,20 @@
import org.jboss.messaging.core.message.SimpleMessageStore;
import org.jboss.messaging.core.plugin.IDManager;
import org.jboss.messaging.core.plugin.JDBCPersistenceManager;
+import org.jboss.messaging.core.plugin.contract.ClusteredPostOffice;
import org.jboss.messaging.core.plugin.contract.Condition;
import org.jboss.messaging.core.plugin.contract.ConditionFactory;
+import org.jboss.messaging.core.plugin.contract.FailoverMapper;
import org.jboss.messaging.core.plugin.contract.MessageStore;
import org.jboss.messaging.core.plugin.contract.PersistenceManager;
import org.jboss.messaging.core.plugin.contract.PostOffice;
-import org.jboss.messaging.core.plugin.contract.ClusteredPostOffice;
-import org.jboss.messaging.core.plugin.contract.FailoverMapper;
import org.jboss.messaging.core.plugin.postoffice.DefaultPostOffice;
-import org.jboss.messaging.core.plugin.postoffice.cluster.MessagePullPolicy;
-import org.jboss.messaging.core.plugin.postoffice.cluster.NullMessagePullPolicy;
import org.jboss.messaging.core.plugin.postoffice.cluster.ClusterRouterFactory;
-import org.jboss.messaging.core.plugin.postoffice.cluster.DefaultRouterFactory;
-import org.jboss.messaging.core.plugin.postoffice.cluster.DefaultFailoverMapper;
import org.jboss.messaging.core.plugin.postoffice.cluster.DefaultClusteredPostOffice;
+import org.jboss.messaging.core.plugin.postoffice.cluster.DefaultFailoverMapper;
+import org.jboss.messaging.core.plugin.postoffice.cluster.DefaultRouterFactory;
+import org.jboss.messaging.core.plugin.postoffice.cluster.MessagePullPolicy;
+import org.jboss.messaging.core.plugin.postoffice.cluster.NullMessagePullPolicy;
import org.jboss.messaging.core.plugin.postoffice.cluster.jchannelfactory.JChannelFactory;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.messaging.core.tx.TransactionRepository;
@@ -80,12 +79,11 @@
ServiceContainer sc,
MessageStore ms,
PersistenceManager pm,
- TransactionRepository tr,
- QueuedExecutorPool pool)
+ TransactionRepository tr)
throws Exception
{
return createClusteredPostOffice(nodeID, groupName, 5000, 5000, new NullMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
}
@@ -97,8 +95,7 @@
ServiceContainer sc,
MessageStore ms,
PersistenceManager pm,
- TransactionRepository tr,
- QueuedExecutorPool pool)
+ TransactionRepository tr)
throws Exception
{
FilterFactory ff = new SimpleFilterFactory();
@@ -124,9 +121,9 @@
DefaultClusteredPostOffice postOffice =
new DefaultClusteredPostOffice(sc.getDataSource(), sc.getTransactionManager(),
sc.getClusteredPostOfficeSQLProperties(), true, nodeID,
- "Clustered", ms, pm, tr, ff, cf, pool,
+ "Clustered", ms, pm, tr, ff, cf,
groupName, jChannelFactory,
- stateTimeout, castTimeout, pullPolicy, rf, mapper, 1000);
+ stateTimeout, castTimeout, pullPolicy, rf, mapper, 1000, 10);
postOffice.start();
@@ -147,8 +144,6 @@
protected TransactionRepository tr;
- protected QueuedExecutorPool pool;
-
protected ConditionFactory conditionFactory;
// Constructors --------------------------------------------------
@@ -168,7 +163,7 @@
DefaultPostOffice postOffice =
new DefaultPostOffice(sc.getDataSource(), sc.getTransactionManager(),
- sc.getPostOfficeSQLProperties(), true, 1, "Simple", ms, pm, tr, ff, cf, pool);
+ sc.getPostOfficeSQLProperties(), true, 1, "Simple", ms, pm, tr, ff, cf);
postOffice.start();
@@ -267,8 +262,6 @@
tr = new TransactionRepository(pm, ms, transactionIDManager);
tr.start();
- pool = new QueuedExecutorPool(10);
-
channelIDManager = new IDManager("CHANNEL_ID", 10, pm);
channelIDManager.start();
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/DefaultPostOfficeTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/DefaultPostOfficeTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/DefaultPostOfficeTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -37,8 +37,6 @@
import org.jboss.test.messaging.core.plugin.base.PostOfficeTestBase;
import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
*
* A DefaultPostOfficeTest
@@ -82,7 +80,7 @@
PagingFilteredQueue queue1 =
new PagingFilteredQueue("durableQueue", channelIDManager.getID(), ms, pm, true, true,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
Binding binding1 =
@@ -102,7 +100,7 @@
//Bind one non durable
PagingFilteredQueue queue2 =
new PagingFilteredQueue("nonDurableQueue", channelIDManager.getID(), ms, pm, true,
- false, (QueuedExecutor)pool.get(), -1, null);
+ false, -1, null);
Binding binding2 =
office1.bindQueue(new SimpleCondition("condition2"), queue2);
@@ -192,42 +190,42 @@
{
office = createPostOffice();
- PagingFilteredQueue queue1 = new PagingFilteredQueue("queue1", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null);
+ PagingFilteredQueue queue1 = new PagingFilteredQueue("queue1", channelIDManager.getID(), ms, pm, true, false, -1, null);
Binding binding1 =
office.bindQueue(new SimpleCondition("condition1"), queue1);
- PagingFilteredQueue queue2 = new PagingFilteredQueue("queue2", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null);
+ PagingFilteredQueue queue2 = new PagingFilteredQueue("queue2", channelIDManager.getID(), ms, pm, true, false, -1, null);
Binding binding2 =
office.bindQueue(new SimpleCondition("condition1"), queue2);
- PagingFilteredQueue queue3 = new PagingFilteredQueue("queue3", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null);
+ PagingFilteredQueue queue3 = new PagingFilteredQueue("queue3", channelIDManager.getID(), ms, pm, true, false, -1, null);
Binding binding3 =
office.bindQueue(new SimpleCondition("condition1"), queue3);
- PagingFilteredQueue queue4 = new PagingFilteredQueue("queue4", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null);
+ PagingFilteredQueue queue4 = new PagingFilteredQueue("queue4", channelIDManager.getID(), ms, pm, true, false, -1, null);
Binding binding4 =
office.bindQueue(new SimpleCondition("condition1"), queue4);
- PagingFilteredQueue queue5 = new PagingFilteredQueue("queue5", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null);
+ PagingFilteredQueue queue5 = new PagingFilteredQueue("queue5", channelIDManager.getID(), ms, pm, true, false, -1, null);
Binding binding5 =
office.bindQueue(new SimpleCondition("condition2"), queue5);
- PagingFilteredQueue queue6 = new PagingFilteredQueue("queue6", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null);
+ PagingFilteredQueue queue6 = new PagingFilteredQueue("queue6", channelIDManager.getID(), ms, pm, true, false, -1, null);
Binding binding6 =
office.bindQueue(new SimpleCondition("condition2"), queue6);
- PagingFilteredQueue queue7 = new PagingFilteredQueue("queue7", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null);
+ PagingFilteredQueue queue7 = new PagingFilteredQueue("queue7", channelIDManager.getID(), ms, pm, true, false, -1, null);
Binding binding7 =
office.bindQueue(new SimpleCondition("condition2"), queue7);
- PagingFilteredQueue queue8 = new PagingFilteredQueue("queue8", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null);
+ PagingFilteredQueue queue8 = new PagingFilteredQueue("queue8", channelIDManager.getID(), ms, pm, true, false, -1, null);
Binding binding8 =
office.bindQueue(new SimpleCondition("condition2"), queue8);
@@ -320,37 +318,37 @@
PagingFilteredQueue queue1 =
new PagingFilteredQueue("queue1", channelIDManager.getID(), ms, pm, true, false,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
postOffice.bindQueue(new SimpleCondition("topic1"), queue1);
PagingFilteredQueue queue2 =
new PagingFilteredQueue("queue2", channelIDManager.getID(), ms, pm, true, false,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
postOffice.bindQueue(new SimpleCondition("topic1"), queue2);
PagingFilteredQueue queue3 =
new PagingFilteredQueue("queue3", channelIDManager.getID(), ms, pm, true, false,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
postOffice.bindQueue(new SimpleCondition("topic1"), queue3);
PagingFilteredQueue queue4 =
new PagingFilteredQueue("queue4", channelIDManager.getID(), ms, pm, true, false,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
postOffice.bindQueue(new SimpleCondition("topic2"), queue4);
PagingFilteredQueue queue5 =
new PagingFilteredQueue("queue5", channelIDManager.getID(), ms, pm, true, false,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
postOffice.bindQueue(new SimpleCondition("topic2"), queue5);
PagingFilteredQueue queue6 =
new PagingFilteredQueue("queue6", channelIDManager.getID(), ms, pm, true, false,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
postOffice.bindQueue(new SimpleCondition("topic2"), queue6);
@@ -479,7 +477,7 @@
PagingFilteredQueue queue1 =
new PagingFilteredQueue("queue1", channelIDManager.getID(), ms, pm, true, false,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
postOffice.bindQueue(new SimpleCondition("condition1"), queue1);
@@ -534,19 +532,19 @@
PagingFilteredQueue queue1 =
new PagingFilteredQueue("queue1", channelIDManager.getID(), ms, pm, true, false,
- (QueuedExecutor)pool.get(), -1, filter);
+ -1, filter);
postOffice.bindQueue(new SimpleCondition("topic1"), queue1);
PagingFilteredQueue queue2 =
new PagingFilteredQueue("queue2", channelIDManager.getID(), ms, pm, true, false,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
postOffice.bindQueue(new SimpleCondition("topic1"), queue2);
PagingFilteredQueue queue3 =
new PagingFilteredQueue("queue3", channelIDManager.getID(), ms, pm, true, false,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
postOffice.bindQueue(new SimpleCondition("topic1"), queue3);
@@ -640,37 +638,37 @@
PagingFilteredQueue queue1 =
new PagingFilteredQueue("queue1", channelIDManager.getID(), ms, pm, true, false,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
postOffice.bindQueue(new SimpleCondition("topic1"), queue1);
PagingFilteredQueue queue2 =
new PagingFilteredQueue("queue2", channelIDManager.getID(), ms, pm, true, false,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
postOffice.bindQueue(new SimpleCondition("topic1"), queue2);
PagingFilteredQueue queue3 =
new PagingFilteredQueue("queue3", channelIDManager.getID(), ms, pm, true, false,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
postOffice.bindQueue(new SimpleCondition("topic1"), queue3);
PagingFilteredQueue queue4 =
new PagingFilteredQueue("queue4", channelIDManager.getID(), ms, pm, true, true,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
postOffice.bindQueue(new SimpleCondition("topic2"), queue4);
PagingFilteredQueue queue5 =
new PagingFilteredQueue("queue5", channelIDManager.getID(), ms, pm, true, true,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
postOffice.bindQueue(new SimpleCondition("topic2"), queue5);
PagingFilteredQueue queue6 =
new PagingFilteredQueue("queue6", channelIDManager.getID(), ms, pm, true, true,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
postOffice.bindQueue(new SimpleCondition("topic2"), queue6);
@@ -820,13 +818,13 @@
PagingFilteredQueue queue1 =
new PagingFilteredQueue("queue1", channelIDManager.getID(), ms, pm, true, false,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
postOffice.bindQueue(new SimpleCondition("topic1"), queue1);
PagingFilteredQueue queue2 =
new PagingFilteredQueue("queue2", channelIDManager.getID(), ms, pm, true, true,
- (QueuedExecutor)pool.get(), -1, null);
+ -1, null);
postOffice.bindQueue(new SimpleCondition("topic1"), queue2);
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOfficeTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOfficeTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOfficeTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -38,8 +38,6 @@
import org.jboss.test.messaging.core.plugin.postoffice.DefaultPostOfficeTest;
import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
*
* A DefaultClusteredPostOfficeTest
@@ -57,7 +55,7 @@
// Static ---------------------------------------------------------------------------------------
// Attributes -----------------------------------------------------------------------------------
-
+
// Constructors ---------------------------------------------------------------------------------
public DefaultClusteredPostOfficeTest(String name)
@@ -76,12 +74,12 @@
try
{
log.trace("Starting office 1");
- office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr, pool);
+ office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr);
log.trace("starting office 2");
- office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr, pool);
+ office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr);
- office3 = createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr, pool);
+ office3 = createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr);
Thread.sleep(2000);
@@ -129,7 +127,7 @@
{
// Start one office
- office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr, pool);
+ office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr);
log.info("Created office1");
@@ -137,7 +135,7 @@
LocalClusteredQueue queue1 =
new LocalClusteredQueue(office1, 1, "sub1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
Binding binding1 =
office1.bindClusteredQueue(new SimpleCondition("topic1"), queue1);
@@ -146,7 +144,7 @@
LocalClusteredQueue queue2 =
new LocalClusteredQueue(office1, 1, "sub2", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
Binding binding2 =
office1.bindClusteredQueue(new SimpleCondition("topic1"), queue2);
@@ -155,7 +153,7 @@
// Start another office - make sure it picks up the bindings from the first node
- office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr, pool);
+ office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr);
log.info("Created office 2");
@@ -171,7 +169,7 @@
LocalClusteredQueue queue3 =
new LocalClusteredQueue(office2, 2, "sub3", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
Binding binding3 =
office2.bindClusteredQueue(new SimpleCondition("topic1"), queue3);
@@ -200,7 +198,7 @@
LocalClusteredQueue queue4 =
new LocalClusteredQueue(office2, 2, "sub4", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
Binding binding4 =
office2.bindClusteredQueue(new SimpleCondition("topic1"), queue4);
@@ -251,7 +249,7 @@
// Add a third office
- office3 = createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr, pool);
+ office3 = createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr);
// Maks sure it picks up the bindings
@@ -267,7 +265,7 @@
LocalClusteredQueue queue5 =
new LocalClusteredQueue(office3, 3, "sub5", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
Binding binding5 =
office3.bindClusteredQueue(new SimpleCondition("topic1"), queue5);
@@ -305,14 +303,14 @@
LocalClusteredQueue queue6 =
new LocalClusteredQueue(office1, 1, "sub6", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
Binding binding6 =
office1.bindClusteredQueue(new SimpleCondition("topic1"), queue6);
LocalClusteredQueue queue7 =
new LocalClusteredQueue(office1, 1, "sub7", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
Binding binding7 =
office1.bindClusteredQueue(new SimpleCondition("topic1"), queue7);
@@ -395,9 +393,9 @@
assertEquivalent(binding6, (Binding)iter.next());
// Restart office 1 and office 2
- office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr, pool);
+ office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr);
- office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr, pool);
+ office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr);
bindings = office1.listAllBindingsForCondition(new SimpleCondition("topic1"));
assertNotNull(bindings);
@@ -430,9 +428,9 @@
office3.stop();
// Start them all
- office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr, pool);
- office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr, pool);
- office3 = createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr, pool);
+ office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr);
+ office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr);
+ office3 = createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr);
// Only the durable queue should survive
@@ -593,25 +591,25 @@
try
{
- office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr, pool);
+ office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr);
- office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr, pool);
+ office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr);
LocalClusteredQueue queue1 =
new LocalClusteredQueue(office1, 1, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office1.bindClusteredQueue(new SimpleCondition("queue1"), queue1);
LocalClusteredQueue queue2 =
new LocalClusteredQueue(office2, 2, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("queue1"), queue2);
LocalClusteredQueue queue3 =
new LocalClusteredQueue(office1, 1, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
try
{
@@ -625,7 +623,7 @@
LocalClusteredQueue queue4 =
new LocalClusteredQueue(office2, 2, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
try
{
@@ -643,13 +641,13 @@
LocalClusteredQueue queue5 =
new LocalClusteredQueue(office1, 1, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office1.bindClusteredQueue(new SimpleCondition("queue1"), queue5);
PagingFilteredQueue queue6 =
new PagingFilteredQueue("queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null);
+ true, false, -1, null);
try
{
office1.bindQueue(new SimpleCondition("queue1"), queue6);
@@ -665,19 +663,19 @@
// It should be possible to bind queues locally into a clustered post office
LocalClusteredQueue queue7 =
new LocalClusteredQueue(office1, 1, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office1.bindQueue(new SimpleCondition("queue1"), queue7);
LocalClusteredQueue queue8 =
new LocalClusteredQueue(office2, 2, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office2.bindQueue(new SimpleCondition("queue1"), queue8);
LocalClusteredQueue queue9 =
new LocalClusteredQueue(office2, 2, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
try
{
@@ -717,27 +715,27 @@
try
{
- office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr, pool);
- office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr, pool);
+ office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr);
+ office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr);
SimpleFilter filter1 = new SimpleFilter(2);
SimpleFilter filter2 = new SimpleFilter(3);
LocalClusteredQueue queue1 =
new LocalClusteredQueue(office1, 1, "queue1", channelIDManager.getID(), ms, pm,
- true, recoverable, (QueuedExecutor)pool.get(), -1, filter1, tr);
+ true, recoverable, -1, filter1, tr);
office1.bindClusteredQueue(new SimpleCondition("topic1"), queue1);
LocalClusteredQueue queue2 =
new LocalClusteredQueue(office2, 2, "queue2", channelIDManager.getID(), ms, pm,
- true, recoverable, (QueuedExecutor)pool.get(), -1, filter2, tr);
+ true, recoverable, -1, filter2, tr);
office2.bindClusteredQueue(new SimpleCondition("topic1"), queue2);
LocalClusteredQueue queue3 =
new LocalClusteredQueue(office2, 2, "queue3", channelIDManager.getID(), ms, pm, true,
- recoverable, (QueuedExecutor)pool.get(), -1, null, tr);
+ recoverable, -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("topic1"), queue3);
@@ -763,6 +761,7 @@
MessageReference ref2 = ms.reference(msg2);
routed = office1.route(ref2, new SimpleCondition("topic1"), null);
assertTrue(routed);
+
Message msg3 = CoreMessageFactory.createCoreMessage(3);
MessageReference ref3 = ms.reference(msg3);
routed = office1.route(ref3, new SimpleCondition("topic1"), null);
@@ -835,60 +834,60 @@
try
{
- office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr, pool);
- office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr, pool);
+ office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr);
+ office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr);
//Two topics with a mixture of durable and non durable subscriptions
LocalClusteredQueue[] queues = new LocalClusteredQueue[16];
Binding[] bindings = new Binding[16];
- queues[0] = new LocalClusteredQueue(office1, 1, "sub1", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ queues[0] = new LocalClusteredQueue(office1, 1, "sub1", channelIDManager.getID(), ms, pm, true, false, -1, null, tr);
bindings[0] = office1.bindClusteredQueue(new SimpleCondition("topic1"), queues[0]);
- queues[1] = new LocalClusteredQueue(office1, 1, "sub2", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ queues[1] = new LocalClusteredQueue(office1, 1, "sub2", channelIDManager.getID(), ms, pm, true, false, -1, null, tr);
bindings[1] = office1.bindClusteredQueue(new SimpleCondition("topic1"), queues[1]);
- queues[2] = new LocalClusteredQueue(office2, 2, "sub3", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ queues[2] = new LocalClusteredQueue(office2, 2, "sub3", channelIDManager.getID(), ms, pm, true, false, -1, null, tr);
bindings[2] = office2.bindClusteredQueue(new SimpleCondition("topic1"), queues[2]);
- queues[3] = new LocalClusteredQueue(office2, 2, "sub4", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ queues[3] = new LocalClusteredQueue(office2, 2, "sub4", channelIDManager.getID(), ms, pm, true, false, -1, null, tr);
bindings[3] = office2.bindClusteredQueue(new SimpleCondition("topic1"), queues[3]);
- queues[4] = new LocalClusteredQueue(office2, 2, "sub5", channelIDManager.getID(), ms, pm, true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ queues[4] = new LocalClusteredQueue(office2, 2, "sub5", channelIDManager.getID(), ms, pm, true, true, -1, null, tr);
bindings[4] = office2.bindClusteredQueue(new SimpleCondition("topic1"), queues[4]);
- queues[5] = new LocalClusteredQueue(office1, 1, "sub6", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ queues[5] = new LocalClusteredQueue(office1, 1, "sub6", channelIDManager.getID(), ms, pm, true, false, -1, null, tr);
bindings[5] = office1.bindClusteredQueue(new SimpleCondition("topic1"), queues[5]);
- queues[6] = new LocalClusteredQueue(office1, 1, "sub7", channelIDManager.getID(), ms, pm, true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ queues[6] = new LocalClusteredQueue(office1, 1, "sub7", channelIDManager.getID(), ms, pm, true, true, -1, null, tr);
bindings[6] = office1.bindClusteredQueue(new SimpleCondition("topic1"), queues[6]);
- queues[7] = new LocalClusteredQueue(office1, 1, "sub8", channelIDManager.getID(), ms, pm, true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ queues[7] = new LocalClusteredQueue(office1, 1, "sub8", channelIDManager.getID(), ms, pm, true, true, -1, null, tr);
bindings[7] = office1.bindClusteredQueue(new SimpleCondition("topic1"), queues[7]);
- queues[8] = new LocalClusteredQueue(office1, 1, "sub9", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ queues[8] = new LocalClusteredQueue(office1, 1, "sub9", channelIDManager.getID(), ms, pm, true, false, -1, null, tr);
bindings[8] = office1.bindClusteredQueue(new SimpleCondition("topic2"), queues[8]);
- queues[9] = new LocalClusteredQueue(office1, 1, "sub10", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ queues[9] = new LocalClusteredQueue(office1, 1, "sub10", channelIDManager.getID(), ms, pm, true, false, -1, null, tr);
bindings[9] = office1.bindClusteredQueue(new SimpleCondition("topic2"), queues[9]);
- queues[10] = new LocalClusteredQueue(office2, 2, "sub11", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ queues[10] = new LocalClusteredQueue(office2, 2, "sub11", channelIDManager.getID(), ms, pm, true, false, -1, null, tr);
bindings[10] = office2.bindClusteredQueue(new SimpleCondition("topic2"), queues[10]);
- queues[11] = new LocalClusteredQueue(office2, 2, "sub12", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ queues[11] = new LocalClusteredQueue(office2, 2, "sub12", channelIDManager.getID(), ms, pm, true, false, -1, null, tr);
bindings[11] = office2.bindClusteredQueue(new SimpleCondition("topic2"), queues[11]);
- queues[12] = new LocalClusteredQueue(office2, 2, "sub13", channelIDManager.getID(), ms, pm, true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ queues[12] = new LocalClusteredQueue(office2, 2, "sub13", channelIDManager.getID(), ms, pm, true, true, -1, null, tr);
bindings[12] = office2.bindClusteredQueue(new SimpleCondition("topic2"), queues[12]);
- queues[13] = new LocalClusteredQueue(office1, 1, "sub14", channelIDManager.getID(), ms, pm, true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ queues[13] = new LocalClusteredQueue(office1, 1, "sub14", channelIDManager.getID(), ms, pm, true, false, -1, null, tr);
bindings[13] = office1.bindClusteredQueue(new SimpleCondition("topic2"), queues[13]);
- queues[14] = new LocalClusteredQueue(office1, 1, "sub15", channelIDManager.getID(), ms, pm, true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ queues[14] = new LocalClusteredQueue(office1, 1, "sub15", channelIDManager.getID(), ms, pm, true, true, -1, null, tr);
bindings[14] = office1.bindClusteredQueue(new SimpleCondition("topic2"), queues[14]);
- queues[15] = new LocalClusteredQueue(office1, 1, "sub16", channelIDManager.getID(), ms, pm, true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ queues[15] = new LocalClusteredQueue(office1, 1, "sub16", channelIDManager.getID(), ms, pm, true, true, -1, null, tr);
bindings[15] = office1.bindClusteredQueue(new SimpleCondition("topic2"), queues[15]);
SimpleReceiver[] receivers = new SimpleReceiver[16];
@@ -1024,19 +1023,19 @@
try
{
- office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr, pool);
- office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr, pool);
- office3 = createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr, pool);
- office4 = createClusteredPostOffice(4, "testgroup", sc, ms, pm, tr, pool);
- office5 = createClusteredPostOffice(5, "testgroup", sc, ms, pm, tr, pool);
- office6 = createClusteredPostOffice(6, "testgroup", sc, ms, pm, tr, pool);
+ office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr);
+ office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr);
+ office3 = createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr);
+ office4 = createClusteredPostOffice(4, "testgroup", sc, ms, pm, tr);
+ office5 = createClusteredPostOffice(5, "testgroup", sc, ms, pm, tr);
+ office6 = createClusteredPostOffice(6, "testgroup", sc, ms, pm, tr);
// We deploy the queue on nodes 1, 2, 3, 4 and 5
// We don't deploy on node 6
LocalClusteredQueue queue1 =
new LocalClusteredQueue(office1, 1, "queue1", channelIDManager.getID(), ms, pm, true,
- recoverable, (QueuedExecutor)pool.get(), -1, null, tr);
+ recoverable, -1, null, tr);
office1.bindClusteredQueue(new SimpleCondition("queue1"), queue1);
@@ -1045,7 +1044,7 @@
LocalClusteredQueue queue2 =
new LocalClusteredQueue(office2, 2, "queue1", channelIDManager.getID(), ms, pm, true,
- recoverable, (QueuedExecutor)pool.get(), -1, null, tr);
+ recoverable, -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("queue1"), queue2);
@@ -1054,7 +1053,7 @@
LocalClusteredQueue queue3 =
new LocalClusteredQueue(office3, 3, "queue1", channelIDManager.getID(), ms, pm, true,
- recoverable, (QueuedExecutor)pool.get(), -1, null, tr);
+ recoverable, -1, null, tr);
office3.bindClusteredQueue(new SimpleCondition("queue1"), queue3);
@@ -1063,7 +1062,7 @@
LocalClusteredQueue queue4 =
new LocalClusteredQueue(office4, 4, "queue1", channelIDManager.getID(), ms, pm,
- true, recoverable, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, recoverable, -1, null, tr);
office4.bindClusteredQueue(new SimpleCondition("queue1"), queue4);
@@ -1072,7 +1071,7 @@
LocalClusteredQueue queue5 =
new LocalClusteredQueue(office5, 5, "queue1", channelIDManager.getID(), ms, pm, true,
- recoverable, (QueuedExecutor)pool.get(), -1, null, tr);
+ recoverable, -1, null, tr);
office5.bindClusteredQueue(new SimpleCondition("queue1"), queue5);
SimpleReceiver receiver5 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
@@ -1201,13 +1200,13 @@
try
{
- office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr, pool);
- office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr, pool);
- office3 = createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr, pool);
+ office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr);
+ office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr);
+ office3 = createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr);
LocalClusteredQueue sub1 =
new LocalClusteredQueue(office1, 1, "sub1", channelIDManager.getID(), ms, pm, true,
- recoverable, (QueuedExecutor)pool.get(), -1, null, tr);
+ recoverable, -1, null, tr);
office1.bindQueue(new SimpleCondition("topic"), sub1);
@@ -1216,7 +1215,7 @@
LocalClusteredQueue sub2 =
new LocalClusteredQueue(office2, 2, "sub2", channelIDManager.getID(), ms, pm, true,
- recoverable, (QueuedExecutor)pool.get(), -1, null, tr);
+ recoverable, -1, null, tr);
office2.bindQueue(new SimpleCondition("topic"), sub2);
SimpleReceiver receiver2 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
@@ -1224,7 +1223,7 @@
LocalClusteredQueue sub3 =
new LocalClusteredQueue(office3, 3, "sub3", channelIDManager.getID(), ms, pm, true,
- recoverable, (QueuedExecutor)pool.get(), -1, null, tr);
+ recoverable, -1, null, tr);
office3.bindQueue(new SimpleCondition("topic"), sub3);
SimpleReceiver receiver3 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
@@ -1313,13 +1312,13 @@
try
{
- office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr, pool);
- office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr, pool);
- office3 = createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr, pool);
- office4 = createClusteredPostOffice(4, "testgroup", sc, ms, pm, tr, pool);
- office5 = createClusteredPostOffice(5, "testgroup", sc, ms, pm, tr, pool);
- office6 = createClusteredPostOffice(6, "testgroup", sc, ms, pm, tr, pool);
- office7 = createClusteredPostOffice(7, "testgroup", sc, ms, pm, tr, pool);
+ office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr);
+ office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr);
+ office3 = createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr);
+ office4 = createClusteredPostOffice(4, "testgroup", sc, ms, pm, tr);
+ office5 = createClusteredPostOffice(5, "testgroup", sc, ms, pm, tr);
+ office6 = createClusteredPostOffice(6, "testgroup", sc, ms, pm, tr);
+ office7 = createClusteredPostOffice(7, "testgroup", sc, ms, pm, tr);
//Node 2
//======
@@ -1327,7 +1326,7 @@
// Non durable 1 on node 2
LocalClusteredQueue nonDurable1 =
new LocalClusteredQueue(office2, 2, "nondurable1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("topic"), nonDurable1);
SimpleReceiver receiver1 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
@@ -1336,7 +1335,7 @@
// Non durable 2 on node 2
LocalClusteredQueue nonDurable2 =
new LocalClusteredQueue(office2, 2, "nondurable2", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("topic"), nonDurable2);
SimpleReceiver receiver2 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
@@ -1348,7 +1347,7 @@
// Non shared durable
LocalClusteredQueue nonSharedDurable1 =
new LocalClusteredQueue(office3, 3, "nonshareddurable1", channelIDManager.getID(), ms,
- pm, true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ pm, true, true, -1, null, tr);
office3.bindClusteredQueue(new SimpleCondition("topic"), nonSharedDurable1);
SimpleReceiver receiver3 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
@@ -1357,7 +1356,7 @@
// Non durable
LocalClusteredQueue nonDurable3 =
new LocalClusteredQueue(office3, 3, "nondurable3", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office3.bindClusteredQueue(new SimpleCondition("topic"), nonDurable3);
SimpleReceiver receiver4 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
@@ -1369,7 +1368,7 @@
// Shared durable
LocalClusteredQueue sharedDurable1 =
new LocalClusteredQueue(office4, 4, "shareddurable1", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office4.bindClusteredQueue(new SimpleCondition("topic"), sharedDurable1);
SimpleReceiver receiver5 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
@@ -1378,7 +1377,7 @@
// Non shared durable
LocalClusteredQueue nonSharedDurable2 =
new LocalClusteredQueue(office4, 4, "nonshareddurable2", channelIDManager.getID(), ms,
- pm, true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ pm, true, true, -1, null, tr);
office4.bindClusteredQueue(new SimpleCondition("topic"), nonSharedDurable2);
SimpleReceiver receiver6 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
@@ -1387,7 +1386,7 @@
// Non durable
LocalClusteredQueue nonDurable4 =
new LocalClusteredQueue(office4, 4, "nondurable4", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office4.bindClusteredQueue(new SimpleCondition("topic"), nonDurable4);
SimpleReceiver receiver7 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
@@ -1396,7 +1395,7 @@
// Non durable
LocalClusteredQueue nonDurable5 =
new LocalClusteredQueue(office4, 4, "nondurable5", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office4.bindClusteredQueue(new SimpleCondition("topic"), nonDurable5);
SimpleReceiver receiver8 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
nonDurable5.add(receiver8);
@@ -1404,7 +1403,7 @@
// Non durable
LocalClusteredQueue nonDurable6 =
new LocalClusteredQueue(office4, 4, "nondurable6", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office4.bindClusteredQueue(new SimpleCondition("topic"), nonDurable6);
SimpleReceiver receiver9 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
nonDurable6.add(receiver9);
@@ -1414,7 +1413,7 @@
// Shared durable
LocalClusteredQueue sharedDurable2 =
new LocalClusteredQueue(office5, 5, "shareddurable1", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office5.bindClusteredQueue(new SimpleCondition("topic"), sharedDurable2);
SimpleReceiver receiver10 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
@@ -1423,7 +1422,7 @@
// Shared durable
LocalClusteredQueue sharedDurable3 =
new LocalClusteredQueue(office5, 5, "shareddurable2", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office5.bindClusteredQueue(new SimpleCondition("topic"), sharedDurable3);
SimpleReceiver receiver11 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
@@ -1433,7 +1432,7 @@
//=========
LocalClusteredQueue sharedDurable4 =
new LocalClusteredQueue(office6, 6, "shareddurable2", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office6.bindClusteredQueue(new SimpleCondition("topic"), sharedDurable4);
SimpleReceiver receiver12 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
@@ -1441,7 +1440,7 @@
LocalClusteredQueue nonDurable7 =
new LocalClusteredQueue(office6, 6, "nondurable7", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office6.bindClusteredQueue(new SimpleCondition("topic"), nonDurable7);
SimpleReceiver receiver13 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
nonDurable7.add(receiver13);
@@ -1450,7 +1449,7 @@
//=======
LocalClusteredQueue sharedDurable5 =
new LocalClusteredQueue(office7, 7, "shareddurable2", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office7.bindClusteredQueue(new SimpleCondition("topic"), sharedDurable5);
SimpleReceiver receiver14 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
@@ -1777,90 +1776,90 @@
{
//Start two offices
- office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr, pool);
- office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr, pool);
+ office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr);
+ office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr);
LocalClusteredQueue[] queues = new LocalClusteredQueue[16];
Binding[] bindings = new Binding[16];
queues[0] =
new LocalClusteredQueue(office1, 1, "sub1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
bindings[0] = office1.bindClusteredQueue(new SimpleCondition("topic1"), queues[0]);
queues[1] =
new LocalClusteredQueue(office1, 1, "sub2", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
bindings[1] = office1.bindClusteredQueue(new SimpleCondition("topic1"), queues[1]);
queues[2] =
new LocalClusteredQueue(office2, 2, "sub3", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
bindings[2] = office2.bindClusteredQueue(new SimpleCondition("topic1"), queues[2]);
queues[3] =
new LocalClusteredQueue(office2, 2, "sub4", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
bindings[3] = office2.bindClusteredQueue(new SimpleCondition("topic1"), queues[3]);
queues[4] =
new LocalClusteredQueue(office2, 2, "sub5", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
bindings[4] = office2.bindClusteredQueue(new SimpleCondition("topic1"), queues[4]);
queues[5] =
new LocalClusteredQueue(office1, 1, "sub6", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
bindings[5] = office1.bindClusteredQueue(new SimpleCondition("topic1"), queues[5]);
queues[6] =
new LocalClusteredQueue(office1, 1, "sub7", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
bindings[6] = office1.bindClusteredQueue(new SimpleCondition("topic1"), queues[6]);
queues[7] =
new LocalClusteredQueue(office1, 1, "sub8", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
bindings[7] = office1.bindClusteredQueue(new SimpleCondition("topic1"), queues[7]);
queues[8] =
new LocalClusteredQueue(office1, 1, "sub9", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
bindings[8] = office1.bindClusteredQueue(new SimpleCondition("topic2"), queues[8]);
queues[9] =
new LocalClusteredQueue(office1, 1, "sub10", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
bindings[9] = office1.bindClusteredQueue(new SimpleCondition("topic2"), queues[9]);
queues[10] =
new LocalClusteredQueue(office2, 2, "sub11", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
bindings[10] = office2.bindClusteredQueue(new SimpleCondition("topic2"), queues[10]);
queues[11] =
new LocalClusteredQueue(office2, 2, "sub12", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
bindings[11] = office2.bindClusteredQueue(new SimpleCondition("topic2"), queues[11]);
queues[12] =
new LocalClusteredQueue(office2, 2, "sub13", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
bindings[12] = office2.bindClusteredQueue(new SimpleCondition("topic2"), queues[12]);
queues[13] =
new LocalClusteredQueue(office1, 1, "sub14", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
bindings[13] = office1.bindClusteredQueue(new SimpleCondition("topic2"), queues[13]);
queues[14] =
new LocalClusteredQueue(office1, 1, "sub15", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
bindings[14] = office1.bindClusteredQueue(new SimpleCondition("topic2"), queues[14]);
queues[15] =
new LocalClusteredQueue(office1, 1, "sub16", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
bindings[15] = office1.bindClusteredQueue(new SimpleCondition("topic2"), queues[15]);
SimpleReceiver[] receivers = new SimpleReceiver[16];
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOfficeWithDefaultRouterTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOfficeWithDefaultRouterTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOfficeWithDefaultRouterTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -29,8 +29,6 @@
import org.jboss.test.messaging.core.SimpleReceiver;
import org.jboss.test.messaging.core.plugin.base.PostOfficeTestBase;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
*
* A DefaultClusteredPostOfficeWithDefaultRouterTest
@@ -49,7 +47,7 @@
// Static ---------------------------------------------------------------------------------------
// Attributes -----------------------------------------------------------------------------------
-
+
// Constructors ---------------------------------------------------------------------------------
public DefaultClusteredPostOfficeWithDefaultRouterTest(String name)
@@ -105,49 +103,49 @@
try
{
- office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr, pool);
+ office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr);
- office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr, pool);
+ office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr);
- office3 = createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr, pool);
+ office3 = createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr);
- office4 = createClusteredPostOffice(4, "testgroup", sc, ms, pm, tr, pool);
+ office4 = createClusteredPostOffice(4, "testgroup", sc, ms, pm, tr);
- office5 = createClusteredPostOffice(5, "testgroup", sc, ms, pm, tr, pool);
+ office5 = createClusteredPostOffice(5, "testgroup", sc, ms, pm, tr);
- office6 = createClusteredPostOffice(6, "testgroup", sc, ms, pm, tr, pool);
+ office6 = createClusteredPostOffice(6, "testgroup", sc, ms, pm, tr);
LocalClusteredQueue queue1 =
new LocalClusteredQueue(office2, 2, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("topic"), queue1);
SimpleReceiver receiver1 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
queue1.add(receiver1);
LocalClusteredQueue queue2 =
new LocalClusteredQueue(office3, 3, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office3.bindClusteredQueue(new SimpleCondition("topic"), queue2);
SimpleReceiver receiver2 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
queue2.add(receiver2);
LocalClusteredQueue queue3 =
new LocalClusteredQueue(office4, 4, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office4.bindClusteredQueue(new SimpleCondition("topic"), queue3);
SimpleReceiver receiver3 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
queue3.add(receiver3);
LocalClusteredQueue queue4 =
new LocalClusteredQueue(office5, 5, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office5.bindClusteredQueue(new SimpleCondition("topic"), queue4);
SimpleReceiver receiver4 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
queue4.add(receiver4);
LocalClusteredQueue queue5 =
new LocalClusteredQueue(office6, 6, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office6.bindClusteredQueue(new SimpleCondition("topic"), queue5);
SimpleReceiver receiver5 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
queue5.add(receiver5);
@@ -251,44 +249,44 @@
try
{
- office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr, pool);
- office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr, pool);
- office3 = createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr, pool);
- office4 = createClusteredPostOffice(4, "testgroup", sc, ms, pm, tr, pool);
- office5 = createClusteredPostOffice(5, "testgroup", sc, ms, pm, tr, pool);
- office6 = createClusteredPostOffice(6, "testgroup", sc, ms, pm, tr, pool);
+ office1 = createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr);
+ office2 = createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr);
+ office3 = createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr);
+ office4 = createClusteredPostOffice(4, "testgroup", sc, ms, pm, tr);
+ office5 = createClusteredPostOffice(5, "testgroup", sc, ms, pm, tr);
+ office6 = createClusteredPostOffice(6, "testgroup", sc, ms, pm, tr);
LocalClusteredQueue queue1 =
new LocalClusteredQueue(office2, 2, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("topic"), queue1);
SimpleReceiver receiver1 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
queue1.add(receiver1);
LocalClusteredQueue queue2 =
new LocalClusteredQueue(office3, 3, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office3.bindClusteredQueue(new SimpleCondition("topic"), queue2);
SimpleReceiver receiver2 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
queue2.add(receiver2);
LocalClusteredQueue queue3 =
new LocalClusteredQueue(office4, 4, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office4.bindClusteredQueue(new SimpleCondition("topic"), queue3);
SimpleReceiver receiver3 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
queue3.add(receiver3);
LocalClusteredQueue queue4 =
new LocalClusteredQueue(office5, 5, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office5.bindClusteredQueue(new SimpleCondition("topic"), queue4);
SimpleReceiver receiver4 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
queue4.add(receiver4);
LocalClusteredQueue queue5 =
new LocalClusteredQueue(office6, 6, "queue1", channelIDManager.getID(), ms, pm,
- true, false, (QueuedExecutor)pool.get(), -1, null, tr);
+ true, false, -1, null, tr);
office6.bindClusteredQueue(new SimpleCondition("topic"), queue5);
SimpleReceiver receiver5 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
queue5.add(receiver5);
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultMessagePullPolicyTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultMessagePullPolicyTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultMessagePullPolicyTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -274,7 +274,7 @@
}
- public void deliver(boolean synchronous)
+ public void deliver()
{
// TODO Auto-generated method stub
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultRouterTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultRouterTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/DefaultRouterTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -436,7 +436,7 @@
}
- public void deliver(boolean synchronous)
+ public void deliver()
{
// TODO Auto-generated method stub
@@ -604,6 +604,7 @@
// TODO Auto-generated method stub
return 0;
}
+
}
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/RecoveryTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/RecoveryTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/RecoveryTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -34,8 +34,6 @@
import org.jboss.test.messaging.core.plugin.base.PostOfficeTestBase;
import org.jboss.test.messaging.util.CoreMessageFactory;
-import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
-
/**
* A RecoveryTest
*
@@ -80,25 +78,25 @@
try
{
office1 = (DefaultClusteredPostOffice)
- createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr, pool);
+ createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr);
office2 = (DefaultClusteredPostOffice)
- createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr, pool);
+ createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr);
office3 = (DefaultClusteredPostOffice)
- createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr, pool);
+ createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr);
LocalClusteredQueue queue1 =
new LocalClusteredQueue(office1, 1, "queue1", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office1.bindClusteredQueue(new SimpleCondition("topic1"), queue1);
LocalClusteredQueue queue2 =
new LocalClusteredQueue(office2, 2, "queue2", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("topic1"), queue2);
LocalClusteredQueue queue3 =
new LocalClusteredQueue(office3, 3, "queue3", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office3.bindClusteredQueue(new SimpleCondition("topic1"), queue3);
SimpleReceiver receiver1 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
@@ -216,27 +214,27 @@
try
{
office1 = (DefaultClusteredPostOffice)
- createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr, pool);
+ createClusteredPostOffice(1, "testgroup", sc, ms, pm, tr);
office2 = (DefaultClusteredPostOffice)
- createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr, pool);
+ createClusteredPostOffice(2, "testgroup", sc, ms, pm, tr);
office3 = (DefaultClusteredPostOffice)
- createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr, pool);
+ createClusteredPostOffice(3, "testgroup", sc, ms, pm, tr);
LocalClusteredQueue queue1 =
new LocalClusteredQueue(office1, 1, "queue1", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office1.bindClusteredQueue(new SimpleCondition("topic1"), queue1);
LocalClusteredQueue queue2 =
new LocalClusteredQueue(office2, 2, "queue2", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("topic1"), queue2);
LocalClusteredQueue queue3 =
new LocalClusteredQueue(office3, 3, "queue3", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office3.bindClusteredQueue(new SimpleCondition("topic1"), queue3);
SimpleReceiver receiver1 = new SimpleReceiver("blah", SimpleReceiver.ACCEPTING);
Modified: trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/RedistributionWithDefaultMessagePullPolicyTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/RedistributionWithDefaultMessagePullPolicyTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/core/plugin/postoffice/cluster/RedistributionWithDefaultMessagePullPolicyTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -33,8 +33,8 @@
import org.jboss.messaging.core.message.Message;
import org.jboss.messaging.core.message.MessageReference;
import org.jboss.messaging.core.plugin.postoffice.cluster.DefaultClusteredPostOffice;
+import org.jboss.messaging.core.plugin.postoffice.cluster.DefaultMessagePullPolicy;
import org.jboss.messaging.core.plugin.postoffice.cluster.LocalClusteredQueue;
-import org.jboss.messaging.core.plugin.postoffice.cluster.DefaultMessagePullPolicy;
import org.jboss.messaging.core.tx.Transaction;
import org.jboss.test.messaging.core.SimpleCondition;
import org.jboss.test.messaging.core.SimpleReceiver;
@@ -129,21 +129,21 @@
{
office1 = (DefaultClusteredPostOffice)
createClusteredPostOffice(1, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
office2 = (DefaultClusteredPostOffice)
createClusteredPostOffice(2, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
LocalClusteredQueue queue1 =
new LocalClusteredQueue(office1, 1, "queue1", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office1.bindClusteredQueue(new SimpleCondition("queue1"), queue1);
LocalClusteredQueue queue2 =
new LocalClusteredQueue(office2, 2, "queue1", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("queue1"), queue2);
Message msg = CoreMessageFactory.createCoreMessage(1, true, null);
@@ -170,7 +170,7 @@
queue2.add(receiver2);
//Prompt delivery so the channels know if the receivers are ready
- queue1.deliver(false);
+ queue1.deliver();
Thread.sleep(2000);
//Pull from 1 to 2
@@ -178,7 +178,7 @@
receiver2.setMaxRefs(1);
log.trace("delivering");
- queue2.deliver(false);
+ queue2.deliver();
Thread.sleep(3000);
@@ -228,20 +228,20 @@
{
office1 = (DefaultClusteredPostOffice)
createClusteredPostOffice(1, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
office2 = (DefaultClusteredPostOffice)
createClusteredPostOffice(2, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
LocalClusteredQueue queue1 =
new LocalClusteredQueue(office1, 1, "queue1", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office1.bindClusteredQueue(new SimpleCondition("queue1"), queue1);
LocalClusteredQueue queue2 =
new LocalClusteredQueue(office2, 2, "queue1", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("queue1"), queue2);
Message msg = CoreMessageFactory.createCoreMessage(1, true, null);
@@ -268,7 +268,7 @@
queue2.add(receiver2);
//Prompt delivery so the channels know if the receivers are ready
- queue1.deliver(false);
+ queue1.deliver();
Thread.sleep(2000);
//Pull from 1 to 2
@@ -279,7 +279,7 @@
office2.setFail(true, false, false);
log.trace("delivering");
- queue2.deliver(false);
+ queue2.deliver();
Thread.sleep(3000);
@@ -332,20 +332,20 @@
{
office1 = (DefaultClusteredPostOffice)
createClusteredPostOffice(1, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
office2 = (DefaultClusteredPostOffice)
createClusteredPostOffice(2, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
LocalClusteredQueue queue1 =
new LocalClusteredQueue(office1, 1, "queue1", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office1.bindClusteredQueue(new SimpleCondition("queue1"), queue1);
LocalClusteredQueue queue2 =
new LocalClusteredQueue(office2, 2, "queue1", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("queue1"), queue2);
Message msg = CoreMessageFactory.createCoreMessage(1, true, null);
@@ -372,7 +372,7 @@
queue2.add(receiver2);
//Prompt delivery so the channels know if the receivers are ready
- queue1.deliver(false);
+ queue1.deliver();
Thread.sleep(2000);
//Pull from 1 to 2
@@ -383,7 +383,7 @@
office2.setFail(false, true, false);
log.trace("delivering");
- queue2.deliver(false);
+ queue2.deliver();
Thread.sleep(3000);
@@ -432,20 +432,20 @@
{
office1 = (DefaultClusteredPostOffice)
createClusteredPostOffice(1, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
office2 = (DefaultClusteredPostOffice)
createClusteredPostOffice(2, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
LocalClusteredQueue queue1 =
new LocalClusteredQueue(office1, 1, "queue1", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office1.bindClusteredQueue(new SimpleCondition("queue1"), queue1);
LocalClusteredQueue queue2 =
new LocalClusteredQueue(office2, 2, "queue1", channelIDManager.getID(), ms, pm,
- true, true, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, true, -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("queue1"), queue2);
Message msg = CoreMessageFactory.createCoreMessage(1, true, null);
@@ -472,7 +472,7 @@
queue2.add(receiver2);
//Prompt delivery so the channels know if the receivers are ready
- queue1.deliver(false);
+ queue1.deliver();
Thread.sleep(2000);
//Pull from 1 to 2
@@ -482,7 +482,7 @@
office2.setFail(false, false, true);
log.trace("delivering");
- queue2.deliver(false);
+ queue2.deliver();
Thread.sleep(3000);
@@ -528,49 +528,49 @@
office1 = (DefaultClusteredPostOffice)
createClusteredPostOffice(1, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
office2 = (DefaultClusteredPostOffice)
createClusteredPostOffice(2, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
office3 = (DefaultClusteredPostOffice)
createClusteredPostOffice(3, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
office4 = (DefaultClusteredPostOffice)
createClusteredPostOffice(4, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
office5 = (DefaultClusteredPostOffice)
createClusteredPostOffice(5, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
log.trace("Created postoffices");
LocalClusteredQueue queue1 =
new LocalClusteredQueue(office1, 1, "queue1", channelIDManager.getID(), ms, pm,
- true, recoverable, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, recoverable, -1, null, tr);
office1.bindClusteredQueue(new SimpleCondition("queue1"), queue1);
LocalClusteredQueue queue2 =
new LocalClusteredQueue(office2, 2, "queue1", channelIDManager.getID(), ms, pm,
- true, recoverable, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, recoverable, -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("queue1"), queue2);
LocalClusteredQueue queue3 =
new LocalClusteredQueue(office3, 3, "queue1", channelIDManager.getID(), ms, pm,
- true, recoverable, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, recoverable, -1, null, tr);
office3.bindClusteredQueue(new SimpleCondition("queue1"), queue3);
LocalClusteredQueue queue4 =
new LocalClusteredQueue(office4, 4, "queue1", channelIDManager.getID(), ms, pm,
- true, recoverable, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, recoverable, -1, null, tr);
office4.bindClusteredQueue(new SimpleCondition("queue1"), queue4);
LocalClusteredQueue queue5 =
new LocalClusteredQueue(office5, 5, "queue1", channelIDManager.getID(), ms, pm,
- true, recoverable, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, recoverable, -1, null, tr);
office5.bindClusteredQueue(new SimpleCondition("queue1"), queue5);
log.trace("Created and bound queues");
@@ -625,7 +625,7 @@
log.trace("Added receiver");
- queue1.deliver(false);
+ queue1.deliver();
log.trace("Called deliver");
@@ -736,47 +736,47 @@
{
office1 = (DefaultClusteredPostOffice)
createClusteredPostOffice(1, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
office2 = (DefaultClusteredPostOffice)
createClusteredPostOffice(2, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
office3 = (DefaultClusteredPostOffice)
createClusteredPostOffice(3, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
office4 = (DefaultClusteredPostOffice)
createClusteredPostOffice(4, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
office5 = (DefaultClusteredPostOffice)
createClusteredPostOffice(5, "testgroup", 10000, 10000, new DefaultMessagePullPolicy(),
- sc, ms, pm, tr, pool);
+ sc, ms, pm, tr);
LocalClusteredQueue queue1 =
new LocalClusteredQueue(office1, 1, "queue1", channelIDManager.getID(), ms, pm,
- true, recoverable, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, recoverable, -1, null, tr);
office1.bindClusteredQueue(new SimpleCondition("queue1"), queue1);
LocalClusteredQueue queue2 =
new LocalClusteredQueue(office2, 2, "queue1", channelIDManager.getID(), ms, pm,
- true, recoverable, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, recoverable, -1, null, tr);
office2.bindClusteredQueue(new SimpleCondition("queue1"), queue2);
LocalClusteredQueue queue3 =
new LocalClusteredQueue(office3, 3, "queue1", channelIDManager.getID(), ms, pm,
- true, recoverable, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, recoverable, -1, null, tr);
office3.bindClusteredQueue(new SimpleCondition("queue1"), queue3);
LocalClusteredQueue queue4 =
new LocalClusteredQueue(office4, 4, "queue1", channelIDManager.getID(), ms, pm,
- true, recoverable, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, recoverable, -1, null, tr);
office4.bindClusteredQueue(new SimpleCondition("queue1"), queue4);
LocalClusteredQueue queue5 =
new LocalClusteredQueue(office5, 5, "queue1", channelIDManager.getID(), ms, pm,
- true, recoverable, (QueuedExecutor) pool.get(), -1, null, tr);
+ true, recoverable, -1, null, tr);
office5.bindClusteredQueue(new SimpleCondition("queue1"), queue5);
final int NUM_MESSAGES = 100;
@@ -831,7 +831,7 @@
queue5.add(receiver5);
receiver1.setMaxRefs(5);
- queue1.deliver(false);
+ queue1.deliver();
receiver1.waitForHandleInvocations(5, 20000);
Thread.sleep(1000);
assertEquals(NUM_MESSAGES - 5, queue1.memoryRefCount());
@@ -842,7 +842,7 @@
receiver1.setMaxRefs(0);
receiver2.setMaxRefs(10);
- queue2.deliver(false);
+ queue2.deliver();
receiver2.waitForHandleInvocations(10, 20000);
Thread.sleep(1000);
assertEquals(NUM_MESSAGES - 10, queue2.memoryRefCount());
@@ -851,7 +851,7 @@
receiver2.setMaxRefs(0);
receiver3.setMaxRefs(15);
- queue3.deliver(false);
+ queue3.deliver();
receiver3.waitForHandleInvocations(15, 20000);
Thread.sleep(1000);
assertEquals(NUM_MESSAGES - 15, queue3.memoryRefCount());
@@ -860,7 +860,7 @@
receiver3.setMaxRefs(0);
receiver4.setMaxRefs(20);
- queue4.deliver(false);
+ queue4.deliver();
receiver4.waitForHandleInvocations(20, 20000);
Thread.sleep(1000);
assertEquals(NUM_MESSAGES - 20, queue4.memoryRefCount());
@@ -869,7 +869,7 @@
receiver4.setMaxRefs(0);
receiver5.setMaxRefs(25);
- queue5.deliver(false);
+ queue5.deliver();
receiver5.waitForHandleInvocations(25, 20000);
Thread.sleep(1000);
assertEquals(NUM_MESSAGES - 25, queue5.memoryRefCount());
@@ -892,7 +892,7 @@
//Consume the rest from queue 5
receiver5.setMaxRefs(NUM_MESSAGES - 25);
- queue5.deliver(false);
+ queue5.deliver();
receiver5.waitForHandleInvocations(NUM_MESSAGES - 25, 20000);
Thread.sleep(2000);
@@ -942,7 +942,7 @@
log.trace("Consume 5 more from queue 5");
receiver5.setMaxRefs(5);
- queue5.deliver(false);
+ queue5.deliver();
receiver5.waitForHandleInvocations(5, 20000);
Thread.sleep(4000);
@@ -985,7 +985,7 @@
//Consume 1 more - should pull one from queue2
receiver5.setMaxRefs(1);
- queue5.deliver(false);
+ queue5.deliver();
receiver5.waitForHandleInvocations(1, 20000);
Thread.sleep(2000);
@@ -1028,7 +1028,7 @@
int num = NUM_MESSAGES - 15 + NUM_MESSAGES - 20 + NUM_MESSAGES - 11 + NUM_MESSAGES - 11 + 1;
receiver4.setMaxRefs(num);
- queue4.deliver(false);
+ queue4.deliver();
receiver4.waitForHandleInvocations(num, 20000);
Thread.sleep(2000);
@@ -1207,7 +1207,7 @@
full = false;
- queue.deliver(false);
+ queue.deliver();
}
}
Modified: trunk/tests/src/org/jboss/test/messaging/jms/AcknowledgementTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/AcknowledgementTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/jms/AcknowledgementTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -21,8 +21,8 @@
*/
package org.jboss.test.messaging.jms;
-import EDU.oswego.cs.dl.util.concurrent.Latch;
import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.Message;
@@ -38,10 +38,15 @@
import javax.jms.TopicSubscriber;
import javax.management.ObjectName;
import javax.naming.InitialContext;
+
import org.jboss.jms.client.JBossConnectionFactory;
+import org.jboss.jms.client.JBossSession;
+import org.jboss.jms.client.delegate.ClientSessionDelegate;
import org.jboss.test.messaging.MessagingTestCase;
import org.jboss.test.messaging.tools.ServerManagement;
+import EDU.oswego.cs.dl.util.concurrent.Latch;
+
/**
* @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*
@@ -698,8 +703,103 @@
conn.close();
}
+
+ public void testDupsOKBatchDefault() throws Exception
+ {
+ //test default
+ Connection conn = cf.createConnection();
+
+ JBossSession sess = (JBossSession)conn.createSession(false, Session.DUPS_OK_ACKNOWLEDGE);
+
+ ClientSessionDelegate del = (ClientSessionDelegate)sess.getDelegate();
+
+ assertEquals(1000, del.getDupsOKBatchSize());
+
+ conn.close();
+ }
+
+ public void testDupsOKAcknowledge() throws Exception
+ {
+
+ final int BATCH_SIZE = 10;
+
+ String mbeanConfig =
+ "<mbean code=\"org.jboss.jms.server.connectionfactory.ConnectionFactory\"\n" +
+ " name=\"jboss.messaging.destination:service=MyConnectionFactory\"\n" +
+ " xmbean-dd=\"xmdesc/ConnectionFactory-xmbean.xml\">\n" +
+ " <depends optional-attribute-name=\"ServerPeer\">jboss.messaging:service=ServerPeer</depends>\n" +
+ " <depends optional-attribute-name=\"Connector\">jboss.messaging:service=Connector,transport=bisocket</depends>\n" +
+ " <attribute name=\"JNDIBindings\">\n" +
+ " <bindings>\n" +
+ " <binding>/mycf</binding>\n" +
+ " </bindings>\n" +
+ " </attribute>\n" +
+ " <attribute name=\"DupsOKBatchSize\">" + BATCH_SIZE + "</attribute>" +
+ " </mbean>";
+ ObjectName on = ServerManagement.deploy(mbeanConfig);
+ ServerManagement.invoke(on, "create", new Object[0], new String[0]);
+ ServerManagement.invoke(on, "start", new Object[0], new String[0]);
+
+ ConnectionFactory myCF = (ConnectionFactory)initialContext.lookup("/mycf");
+
+ Connection conn = myCF.createConnection();
+ Session producerSess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ MessageProducer producer = producerSess.createProducer(queue);
+
+ Session consumerSess = conn.createSession(false, Session.DUPS_OK_ACKNOWLEDGE);
+ MessageConsumer consumer = consumerSess.createConsumer(queue);
+ conn.start();
+
+ //Send some messages
+ for (int i = 0; i < 19; i++)
+ {
+ Message m = producerSess.createMessage();
+ producer.send(m);
+ }
+
+ assertRemainingMessages(19);
+
+ log.trace("Sent messages");
+
+ Message m = null;
+ for (int i = 0; i < 10; i++)
+ {
+ m = consumer.receive(200);
+
+ assertNotNull(m);
+
+ if (i == 9)
+ {
+ assertRemainingMessages(9);
+ }
+ else
+ {
+ assertRemainingMessages(19);
+ }
+ }
+
+ for (int i = 0; i < 9; i++)
+ {
+ m = consumer.receive(200);
+
+ assertNotNull(m);
+
+ assertRemainingMessages(9);
+ }
+
+ //Make sure the last are acked on close
+
+ consumerSess.close();
+
+ assertRemainingMessages(0);
+
+ conn.close();
+
+ }
+
+
/*
* Send some messages, consume them and verify the messages are not sent upon recovery
*
@@ -739,9 +839,9 @@
count++;
}
- assertRemainingMessages(0);
+ assertNotNull(m);
- assertNotNull(m);
+ assertRemainingMessages(NUM_MESSAGES);
log.trace("Received " + count + " messages");
@@ -809,6 +909,56 @@
assertFalse(listener.failed);
}
+ public void testMessageListenerDupsOK() throws Exception
+ {
+ Connection conn = cf.createConnection();
+ Session sessSend = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ MessageProducer prod = sessSend.createProducer(queue);
+ prod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+
+ log.trace("Sending messages");
+
+ TextMessage tm1 = sessSend.createTextMessage("a");
+ TextMessage tm2 = sessSend.createTextMessage("b");
+ TextMessage tm3 = sessSend.createTextMessage("c");
+ prod.send(tm1);
+ prod.send(tm2);
+ prod.send(tm3);
+
+ log.trace("Sent messages");
+
+ sessSend.close();
+
+ assertRemainingMessages(3);
+
+ conn.start();
+
+ Session sessReceive = conn.createSession(false, Session.DUPS_OK_ACKNOWLEDGE);
+
+ log.trace("Creating consumer");
+
+ MessageConsumer cons = sessReceive.createConsumer(queue);
+
+ log.trace("Created consumer");
+
+ MessageListenerDupsOK listener = new MessageListenerDupsOK(sessReceive);
+
+ log.trace("Setting message listener");
+
+ cons.setMessageListener(listener);
+
+ log.trace("Set message listener");
+
+ listener.waitForMessages();
+
+ assertRemainingMessages(3);
+
+ conn.close();
+
+ assertRemainingMessages(0);
+ assertFalse(listener.failed);
+ }
+
public void testMessageListenerClientAck() throws Exception
{
Connection conn = cf.createConnection();
@@ -968,7 +1118,94 @@
}
+ private class MessageListenerDupsOK implements MessageListener
+ {
+
+ private Latch latch = new Latch();
+
+ private Session sess;
+
+ private int count = 0;
+
+ boolean failed;
+
+ MessageListenerDupsOK(Session sess)
+ {
+ this.sess = sess;
+ }
+
+ public void waitForMessages() throws InterruptedException
+ {
+ latch.acquire();
+ Thread.sleep(500);
+ }
+
+ public void onMessage(Message m)
+ {
+ try
+ {
+ count++;
+
+ TextMessage tm = (TextMessage)m;
+
+ log.info("Got message: " + tm.getText());
+
+ // Receive first three messages then recover() session
+ // Only last message should be redelivered
+ if (count == 1)
+ {
+ assertRemainingMessages(3);
+
+ if (!"a".equals(tm.getText()))
+ {
+ failed = true;
+ latch.release();
+ }
+ }
+ if (count == 2)
+ {
+ assertRemainingMessages(3);
+
+ if (!"b".equals(tm.getText()))
+ {
+ failed = true;
+ latch.release();
+ }
+ }
+ if (count == 3)
+ {
+ assertRemainingMessages(3);
+
+ if (!"c".equals(tm.getText()))
+ {
+ failed = true;
+ latch.release();
+ }
+ sess.recover();
+ }
+ if (count == 4)
+ {
+ assertRemainingMessages(3);
+
+ if (!"c".equals(tm.getText()))
+ {
+ failed = true;
+ latch.release();
+ }
+ latch.release();
+ }
+
+ }
+ catch (Exception e)
+ {
+ failed = true;
+ latch.release();
+ }
+ }
+
+ }
+
private class MessageListenerClientAck implements MessageListener
{
Modified: trunk/tests/src/org/jboss/test/messaging/jms/ConnectionFactoryTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/ConnectionFactoryTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/jms/ConnectionFactoryTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -98,7 +98,7 @@
" <arg type=\"java.lang.String\" value=\"sofiavergara\"/>\n" +
" </constructor>\n" +
" <depends optional-attribute-name=\"ServerPeer\">jboss.messaging:service=ServerPeer</depends>\n" +
- " <depends optional-attribute-name=\"Connector\">jboss.messaging:service=Connector,transport=socket</depends>\n" +
+ " <depends optional-attribute-name=\"Connector\">jboss.messaging:service=Connector,transport=bisocket</depends>\n" +
" <attribute name=\"JNDIBindings\">\n" +
" <bindings>\n" +
" <binding>/TestConnectionFactory</binding>\n" +
@@ -136,7 +136,7 @@
" <arg type=\"java.lang.String\" value=\"sofiavergara\"/>\n" +
" </constructor>\n" +
" <depends optional-attribute-name=\"ServerPeer\">jboss.messaging:service=ServerPeer</depends>\n" +
- " <depends optional-attribute-name=\"Connector\">jboss.messaging:service=Connector,transport=socket</depends>\n" +
+ " <depends optional-attribute-name=\"Connector\">jboss.messaging:service=Connector,transport=bisocket</depends>\n" +
" <attribute name=\"JNDIBindings\">\n" +
" <bindings>\n" +
" <binding>/TestConnectionFactory2</binding>\n" +
@@ -177,11 +177,11 @@
public void testAdministrativelyConfiguredConnectors() throws Exception
{
//Deploy a few connectors
- String name1 = "jboss.messaging:service=Connector1,transport=socket";
+ String name1 = "jboss.messaging:service=Connector1,transport=bisocket";
- String name2 = "jboss.messaging:service=Connector2,transport=socket";
+ String name2 = "jboss.messaging:service=Connector2,transport=bisocket";
- String name3 = "jboss.messaging:service=Connector3,transport=socket";
+ String name3 = "jboss.messaging:service=Connector3,transport=bisocket";
ObjectName c1 = deployConnector(1234, name1);
ObjectName c2 = deployConnector(1235, name2);
Modified: trunk/tests/src/org/jboss/test/messaging/jms/String64KLimitTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/String64KLimitTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/jms/String64KLimitTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -206,145 +206,162 @@
public void test64KLimitWithTextMessage() throws Exception
{
- Connection conn = cf.createConnection();
-
- Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Connection conn = null;
- MessageProducer prod = sess.createProducer(queue);
-
- MessageConsumer cons = sess.createConsumer(queue);
-
- conn.start();
-
- String s1 = genString(16 * 1024);
-
- String s2 = genString(32 * 1024);
-
- String s3 = genString(64 * 1024);
-
- String s4 = genString(10 * 64 * 1024);
-
- TextMessage tm1 = sess.createTextMessage(s1);
-
- TextMessage tm2 = sess.createTextMessage(s2);
-
- TextMessage tm3 = sess.createTextMessage(s3);
-
- TextMessage tm4 = sess.createTextMessage(s4);
-
- prod.send(tm1);
-
- prod.send(tm2);
-
- prod.send(tm3);
-
- prod.send(tm4);
-
- TextMessage rm1 = (TextMessage)cons.receive(1000);
-
- assertNotNull(rm1);
-
- TextMessage rm2 = (TextMessage)cons.receive(1000);
-
- assertNotNull(rm2);
-
- TextMessage rm3 = (TextMessage)cons.receive(1000);
-
- assertNotNull(rm3);
-
- TextMessage rm4 = (TextMessage)cons.receive(1000);
-
- assertNotNull(rm4);
-
- assertEquals(s1.length(), rm1.getText().length());
-
- assertEquals(s1, rm1.getText());
-
- assertEquals(s2.length(), rm2.getText().length());
-
- assertEquals(s2, rm2.getText());
-
- assertEquals(s3.length(), rm3.getText().length());
-
- assertEquals(s3, rm3.getText());
-
- assertEquals(s4.length(), rm4.getText().length());
-
- assertEquals(s4, rm4.getText());
-
- conn.close();
+ try
+ {
+ conn = cf.createConnection();
+
+ Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+ MessageProducer prod = sess.createProducer(queue);
+
+ MessageConsumer cons = sess.createConsumer(queue);
+
+ conn.start();
+
+ String s1 = genString(16 * 1024);
+
+ String s2 = genString(32 * 1024);
+
+ String s3 = genString(64 * 1024);
+
+ String s4 = genString(10 * 64 * 1024);
+
+ TextMessage tm1 = sess.createTextMessage(s1);
+
+ TextMessage tm2 = sess.createTextMessage(s2);
+
+ TextMessage tm3 = sess.createTextMessage(s3);
+
+ TextMessage tm4 = sess.createTextMessage(s4);
+
+ prod.send(tm1);
+
+ prod.send(tm2);
+
+ prod.send(tm3);
+
+ prod.send(tm4);
+
+ TextMessage rm1 = (TextMessage)cons.receive(1000);
+
+ assertNotNull(rm1);
+
+ TextMessage rm2 = (TextMessage)cons.receive(1000);
+
+ assertNotNull(rm2);
+
+ TextMessage rm3 = (TextMessage)cons.receive(1000);
+
+ assertNotNull(rm3);
+
+ TextMessage rm4 = (TextMessage)cons.receive(1000);
+
+ assertNotNull(rm4);
+
+ assertEquals(s1.length(), rm1.getText().length());
+
+ assertEquals(s1, rm1.getText());
+
+ assertEquals(s2.length(), rm2.getText().length());
+
+ assertEquals(s2, rm2.getText());
+
+ assertEquals(s3.length(), rm3.getText().length());
+
+ assertEquals(s3, rm3.getText());
+
+ assertEquals(s4.length(), rm4.getText().length());
+
+ assertEquals(s4, rm4.getText());
+ }
+ finally
+ {
+ if (conn != null)
+ {
+ conn.close();
+ }
+ }
}
public void test64KLimitWithObjectMessage() throws Exception
{
- Connection conn = cf.createConnection();
-
- Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Connection conn = null;
- MessageProducer prod = sess.createProducer(queue);
-
- MessageConsumer cons = sess.createConsumer(queue);
-
- conn.start();
-
- String s1 = genString(16 * 1024);
-
- String s2 = genString(32 * 1024);
-
- String s3 = genString(64 * 1024);
-
- String s4 = genString(10 * 64 * 1024);
-
- ObjectMessage om1 = sess.createObjectMessage();
-
- om1.setObject(s1);
-
- ObjectMessage om2 = sess.createObjectMessage();
-
- om2.setObject(s2);
-
- ObjectMessage om3 = sess.createObjectMessage();
-
- om3.setObject(s3);
-
- ObjectMessage om4 = sess.createObjectMessage();
-
- om4.setObject(s4);
-
- prod.send(om1);
-
- prod.send(om2);
-
- prod.send(om3);
-
- prod.send(om4);
-
- ObjectMessage rm1 = (ObjectMessage)cons.receive(1000);
-
- assertNotNull(rm1);
-
- ObjectMessage rm2 = (ObjectMessage)cons.receive(1000);
-
- assertNotNull(rm2);
-
- ObjectMessage rm3 = (ObjectMessage)cons.receive(1000);
-
- assertNotNull(rm3);
-
- ObjectMessage rm4 = (ObjectMessage)cons.receive(1000);
-
- assertNotNull(rm4);
-
- assertEquals(s1, rm1.getObject());
-
- assertEquals(s2, rm2.getObject());
-
- assertEquals(s3, rm3.getObject());
-
- assertEquals(s4, rm4.getObject());
-
- conn.close();
+ try
+ {
+ conn = cf.createConnection();
+
+ Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+ MessageProducer prod = sess.createProducer(queue);
+
+ MessageConsumer cons = sess.createConsumer(queue);
+
+ conn.start();
+
+ String s1 = genString(16 * 1024);
+
+ String s2 = genString(32 * 1024);
+
+ String s3 = genString(64 * 1024);
+
+ String s4 = genString(10 * 64 * 1024);
+
+ ObjectMessage om1 = sess.createObjectMessage();
+
+ om1.setObject(s1);
+
+ ObjectMessage om2 = sess.createObjectMessage();
+
+ om2.setObject(s2);
+
+ ObjectMessage om3 = sess.createObjectMessage();
+
+ om3.setObject(s3);
+
+ ObjectMessage om4 = sess.createObjectMessage();
+
+ om4.setObject(s4);
+
+ prod.send(om1);
+
+ prod.send(om2);
+
+ prod.send(om3);
+
+ prod.send(om4);
+
+ ObjectMessage rm1 = (ObjectMessage)cons.receive(1000);
+
+ assertNotNull(rm1);
+
+ ObjectMessage rm2 = (ObjectMessage)cons.receive(1000);
+
+ assertNotNull(rm2);
+
+ ObjectMessage rm3 = (ObjectMessage)cons.receive(1000);
+
+ assertNotNull(rm3);
+
+ ObjectMessage rm4 = (ObjectMessage)cons.receive(1000);
+
+ assertNotNull(rm4);
+
+ assertEquals(s1, rm1.getObject());
+
+ assertEquals(s2, rm2.getObject());
+
+ assertEquals(s3, rm3.getObject());
+
+ assertEquals(s4, rm4.getObject());
+ }
+ finally
+ {
+ conn.close();
+ }
}
}
Modified: trunk/tests/src/org/jboss/test/messaging/jms/WireFormatTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/WireFormatTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/jms/WireFormatTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -755,7 +755,7 @@
public void testConnectionCreateSessionDelegateResponse() throws Exception
{
- ClientSessionDelegate del = new ClientSessionDelegate(786);
+ ClientSessionDelegate del = new ClientSessionDelegate(786, 1000);
ResponseSupport resp =
new ConnectionCreateSessionDelegateResponse(del);
Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedQueueTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedQueueTest.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedQueueTest.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -6,22 +6,22 @@
*/
package org.jboss.test.messaging.jms.clustering;
-import org.jboss.test.messaging.MessagingTestCase;
-import org.jboss.test.messaging.tools.ServerManagement;
-import org.jboss.test.messaging.tools.jmx.ServiceAttributeOverrides;
-import org.jboss.jms.client.JBossConnection;
-
import javax.jms.Connection;
-import javax.jms.Session;
-import javax.jms.MessageProducer;
+import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.MessageConsumer;
+import javax.jms.MessageProducer;
+import javax.jms.Queue;
+import javax.jms.Session;
import javax.jms.TextMessage;
-import javax.jms.ConnectionFactory;
-import javax.jms.Queue;
+import javax.management.ObjectName;
import javax.naming.InitialContext;
-import javax.management.ObjectName;
+import org.jboss.jms.client.JBossConnection;
+import org.jboss.test.messaging.MessagingTestCase;
+import org.jboss.test.messaging.tools.ServerManagement;
+import org.jboss.test.messaging.tools.jmx.ServiceAttributeOverrides;
+
/**
* Extending MessagingTestCase and not ClusteringTestBase because I want to start the messaging
* servers (the clustered post offices in this case) configured in a particular way (a specific
Modified: trunk/tests/src/org/jboss/test/messaging/tools/jmx/ServiceContainer.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/tools/jmx/ServiceContainer.java 2007-02-21 15:04:49 UTC (rev 2385)
+++ trunk/tests/src/org/jboss/test/messaging/tools/jmx/ServiceContainer.java 2007-02-21 18:07:44 UTC (rev 2386)
@@ -177,7 +177,7 @@
new ObjectName("jboss.jca:service=ConnectionFactoryBinding,name=JCAConnectionFactory");
REMOTING_OBJECT_NAME =
- new ObjectName("jboss.messaging:service=Connector,transport=socket");
+ new ObjectName("jboss.messaging:service=Connector,transport=bisocket");
HTTP_REMOTING_OBJECT_NAME =
new ObjectName("jboss.messaging:service=Connector,transport=http");
@@ -1381,6 +1381,9 @@
dataType = "";
serializationType = "java";
}
+
+ // Note that we DO NOT want the direct thread pool on the server side - since that can lead
+ // to deadlocks
String params =
"/?" +
@@ -1394,9 +1397,10 @@
"serverSocketClass=org.jboss.jms.server.remoting.ServerSocketWrapper&" +
"NumberOfRetries=1&" +
"NumberOfCallRetries=2&" +
- "callbackErrorsAllowed=1&" +
- "onewayThreadPool=org.jboss.jms.server.remoting.DirectThreadPool";
-
+ "callbackErrorsAllowed=1";
+
+
+
// specific parameters per transport
if ("http".equals(transport))
More information about the jboss-cvs-commits
mailing list