<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:www.nabble.com,2006:forum-2354</id>
	<title>Nabble - ActiveMQ</title>
	<updated>2008-09-05T17:35:52Z</updated>
	<link rel="self" type="application/atom+xml" href="http://www.nabble.com/ActiveMQ-f2354.xml" />
	<link rel="alternate" type="text/html" href="http://www.nabble.com/ActiveMQ-f2354.html" />
	<subtitle type="html">&lt;a href=&quot;http://activemq.apache.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Apache ActiveMQ&lt;/a&gt; is the most popular and powerful open source Message Broker. Apache ActiveMQ is fast, supports many &lt;a href=&quot;http://activemq.apache.org/cross-language-clients.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Cross Language Clients and Protocols&lt;/a&gt; and many &lt;a href=&quot;http://activemq.apache.org/features.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;advanced features&lt;a target=&quot;_top&quot;&gt; while fully supporting JMS 1.1 and J2EE 1.4. Apache ActiveMQ is released under the Apache 2.0 License</subtitle>
	
<entry>
	<id>tag:www.nabble.com,2006:post-19341777</id>
	<title>[jira] Resolved: (AMQNET-111) Constructor for Apache.NMS.ActiveMQ.Connection invokes transport.Start()</title>
	<published>2008-09-05T17:35:52Z</published>
	<updated>2008-09-05T17:35:52Z</updated>
	<author>
		<name>JIRA jira+amqnet@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/activemq/browse/AMQNET-111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/activemq/browse/AMQNET-111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Jim Gomes resolved AMQNET-111.
&lt;br&gt;------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Jim Gomes &amp;nbsp;(was: James Strachan)
&lt;br&gt;&amp;nbsp; &amp;nbsp; Fix Version/s: 1.0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Resolution: Fixed
&lt;br&gt;&lt;br&gt;Changed default value of started for the Connection to false.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Constructor for Apache.NMS.ActiveMQ.Connection invokes transport.Start()
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: AMQNET-111
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/activemq/browse/AMQNET-111&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/activemq/browse/AMQNET-111&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: ActiveMQ .Net
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: ActiveMQ Client
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Mark Keenan
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Jim Gomes
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 1.0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I have observed that messages are received on a connection before the connection is started. &amp;nbsp;
&lt;br&gt;&amp;gt; Please see this Spring.NET forum post for details:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://forum.springframework.net/showpost.php?p=13233&amp;postcount=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://forum.springframework.net/showpost.php?p=13233&amp;postcount=4&lt;/a&gt;&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/ActiveMQ---Dev-f2355.html&quot; embed=&quot;fixTarget[2355]&quot; target=&quot;_top&quot; &gt;ActiveMQ - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28AMQNET-111%29-Constructor-for-Apache.NMS.ActiveMQ.Connection-invokes-transport.Start%28%29-tp19337642p19341777.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19341755</id>
	<title>svn commit: r692594 - in /activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk: ./ src/main/csharp/Connection.cs</title>
	<published>2008-09-05T17:33:22Z</published>
	<updated>2008-09-05T17:33:22Z</updated>
	<author>
		<name>jgomes</name>
	</author>
	<content type="html">Author: jgomes
&lt;br&gt;Date: Fri Sep &amp;nbsp;5 17:33:21 2008
&lt;br&gt;New Revision: 692594
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=692594&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=692594&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Change default value for started to false.
&lt;br&gt;Fixes [AMQNET-111]. (See &lt;a href=&quot;https://issues.apache.org/activemq/browse/AMQNET-111&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/activemq/browse/AMQNET-111&lt;/a&gt;)
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Connection.cs
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mergeinfo (added)
&lt;br&gt;+++ svn:mergeinfo Fri Sep &amp;nbsp;5 17:33:21 2008
&lt;br&gt;@@ -0,0 +1 @@
&lt;br&gt;+/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/tags/1.0.0:692591
&lt;br&gt;&lt;br&gt;Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Connection.cs
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Connection.cs?rev=692594&amp;r1=692593&amp;r2=692594&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Connection.cs?rev=692594&amp;r1=692593&amp;r2=692594&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Connection.cs (original)
&lt;br&gt;+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Connection.cs Fri Sep &amp;nbsp;5 17:33:21 2008
&lt;br&gt;@@ -44,7 +44,7 @@
&lt;br&gt;&amp;nbsp;		private long sessionCounter = 0;
&lt;br&gt;&amp;nbsp;		private long temporaryDestinationCounter = 0;
&lt;br&gt;&amp;nbsp;		private long localTransactionCounter;
&lt;br&gt;-		private readonly AtomicBoolean started = new AtomicBoolean(true);
&lt;br&gt;+		private readonly AtomicBoolean started = new AtomicBoolean(false);
&lt;br&gt;&amp;nbsp;		private bool disposed = false;
&lt;br&gt;&amp;nbsp;		
&lt;br&gt;&amp;nbsp;		public Connection(Uri connectionUri, ITransport transport, ConnectionInfo info)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/ActiveMQ---Commits-f23834.html&quot; embed=&quot;fixTarget[23834]&quot; target=&quot;_top&quot; &gt;ActiveMQ - Commits&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/svn-commit%3A-r692594---in--activemq-activemq-dotnet-Apache.NMS.ActiveMQ-trunk%3A-.--src-main-csharp-Connection.cs-tp19341755p19341755.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19341698</id>
	<title>svn commit: r692592 - in /activemq/activemq-dotnet: ./ Apache.NMS.ActiveMQ/trunk/ Apache.NMS.EMS/tags/1.0.0/ Apache.NMS.EMS/trunk/ Apache.NMS.MSMQ/tags/1.0.0/ Apache.NMS.MSMQ/trunk/ Apache.NMS/tags/1.0.0/ Apache.NMS/tags/1.0.0/src/main/csharp/Util/ Apa...</title>
	<published>2008-09-05T17:27:12Z</published>
	<updated>2008-09-05T17:27:12Z</updated>
	<author>
		<name>jgomes</name>
	</author>
	<content type="html">Author: jgomes
&lt;br&gt;Date: Fri Sep &amp;nbsp;5 17:27:12 2008
&lt;br&gt;New Revision: 692592
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=692592&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=692592&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Set bugtraq integration properties at top level of repository tree.
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/activemq-dotnet/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/activemq-dotnet/Apache.NMS.EMS/tags/1.0.0/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/activemq-dotnet/Apache.NMS.EMS/trunk/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/activemq-dotnet/Apache.NMS.MSMQ/tags/1.0.0/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/activemq-dotnet/Apache.NMS/tags/1.0.0/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/activemq-dotnet/Apache.NMS/tags/1.0.0/src/main/csharp/Util/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/activemq-dotnet/Apache.NMS/trunk/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/Util/ &amp;nbsp; (props changed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; bugtraq:label = Issue#:
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- bugtraq:message (added)
&lt;br&gt;+++ bugtraq:message Fri Sep &amp;nbsp;5 17:27:12 2008
&lt;br&gt;@@ -0,0 +1 @@
&lt;br&gt;+Fixes [AMQNET-%BUGID%]. (See &lt;a href=&quot;https://issues.apache.org/activemq/browse/AMQNET-%BUGID%&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/activemq/browse/AMQNET-%BUGID%&lt;/a&gt;)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; bugtraq:url = &lt;a href=&quot;https://issues.apache.org/activemq/browse/AMQNET-%BUGID%&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/activemq/browse/AMQNET-%BUGID%&lt;/a&gt;&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:ignore (added)
&lt;br&gt;+++ svn:ignore Fri Sep &amp;nbsp;5 17:27:12 2008
&lt;br&gt;@@ -0,0 +1 @@
&lt;br&gt;+target
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:label' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:message' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:url' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('svn:ignore' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.EMS/tags/1.0.0/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:label' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.EMS/tags/1.0.0/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:message' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.EMS/tags/1.0.0/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:url' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.EMS/tags/1.0.0/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('svn:ignore' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.EMS/trunk/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:label' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.EMS/trunk/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:message' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.EMS/trunk/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:url' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.EMS/trunk/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('svn:ignore' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.MSMQ/tags/1.0.0/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:label' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.MSMQ/tags/1.0.0/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:message' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.MSMQ/tags/1.0.0/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:url' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.MSMQ/tags/1.0.0/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('svn:ignore' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:label' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:message' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:url' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('svn:ignore' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS/tags/1.0.0/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:label' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS/tags/1.0.0/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:message' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS/tags/1.0.0/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:url' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS/tags/1.0.0/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('svn:ignore' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS/tags/1.0.0/src/main/csharp/Util/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:label' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS/trunk/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:label' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS/trunk/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:message' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS/trunk/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:url' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS/trunk/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('svn:ignore' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/Util/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:label' removed)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/ActiveMQ---Commits-f23834.html&quot; embed=&quot;fixTarget[23834]&quot; target=&quot;_top&quot; &gt;ActiveMQ - Commits&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/svn-commit%3A-r692592---in--activemq-activemq-dotnet%3A-.--Apache.NMS.ActiveMQ-trunk--Apache.NMS.EMS-tags-1.0.0--Apache.NMS.EMS-trunk--Apache.NMS.MSMQ-tags-1.0.0--Apache.NMS.MSMQ-trunk--Apache.NMS-tags-1.0.0--Apache.NMS-tags-1.0.0-src-main-csharp-Util--Apa...-tp19341698p19341698.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19341687</id>
	<title>svn commit: r692591 - in /activemq/activemq-dotnet/Apache.NMS.ActiveMQ/tags/1.0.0: ./ src/main/csharp/Connection.cs</title>
	<published>2008-09-05T17:25:13Z</published>
	<updated>2008-09-05T17:25:13Z</updated>
	<author>
		<name>jgomes</name>
	</author>
	<content type="html">Author: jgomes
&lt;br&gt;Date: Fri Sep &amp;nbsp;5 17:25:13 2008
&lt;br&gt;New Revision: 692591
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=692591&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=692591&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Change default value for started to false.
&lt;br&gt;Fixes [AMQNET-111]. (See &lt;a href=&quot;https://issues.apache.org/activemq/browse/AMQNET-111&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/activemq/browse/AMQNET-111&lt;/a&gt;)
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/activemq-dotnet/Apache.NMS.ActiveMQ/tags/1.0.0/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/activemq-dotnet/Apache.NMS.ActiveMQ/tags/1.0.0/src/main/csharp/Connection.cs
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/tags/1.0.0/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:label' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/tags/1.0.0/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:message' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/tags/1.0.0/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('bugtraq:url' removed)
&lt;br&gt;&lt;br&gt;Propchange: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/tags/1.0.0/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ('svn:ignore' removed)
&lt;br&gt;&lt;br&gt;Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/tags/1.0.0/src/main/csharp/Connection.cs
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/tags/1.0.0/src/main/csharp/Connection.cs?rev=692591&amp;r1=692590&amp;r2=692591&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/tags/1.0.0/src/main/csharp/Connection.cs?rev=692591&amp;r1=692590&amp;r2=692591&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/tags/1.0.0/src/main/csharp/Connection.cs (original)
&lt;br&gt;+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/tags/1.0.0/src/main/csharp/Connection.cs Fri Sep &amp;nbsp;5 17:25:13 2008
&lt;br&gt;@@ -44,7 +44,7 @@
&lt;br&gt;&amp;nbsp;		private long sessionCounter = 0;
&lt;br&gt;&amp;nbsp;		private long temporaryDestinationCounter = 0;
&lt;br&gt;&amp;nbsp;		private long localTransactionCounter;
&lt;br&gt;-		private readonly AtomicBoolean started = new AtomicBoolean(true);
&lt;br&gt;+		private readonly AtomicBoolean started = new AtomicBoolean(false);
&lt;br&gt;&amp;nbsp;		private bool disposed = false;
&lt;br&gt;&amp;nbsp;		
&lt;br&gt;&amp;nbsp;		public Connection(Uri connectionUri, ITransport transport, ConnectionInfo info)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/ActiveMQ---Commits-f23834.html&quot; embed=&quot;fixTarget[23834]&quot; target=&quot;_top&quot; &gt;ActiveMQ - Commits&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/svn-commit%3A-r692591---in--activemq-activemq-dotnet-Apache.NMS.ActiveMQ-tags-1.0.0%3A-.--src-main-csharp-Connection.cs-tp19341687p19341687.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19340134</id>
	<title>[jira] Commented: (AMQ-1849) Slave threads increasing when sending to temporary queue</title>
	<published>2008-09-05T14:47:52Z</published>
	<updated>2008-09-05T14:47:52Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/activemq/browse/AMQ-1849?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=45481#action_45481&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/activemq/browse/AMQ-1849?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=45481#action_45481&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Hans Bausewein commented on AMQ-1849:
&lt;br&gt;-------------------------------------
&lt;br&gt;&lt;br&gt;That's good news!
&lt;br&gt;&lt;br&gt;I'll test it, monday.
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Slave threads increasing when sending to temporary queue
&lt;br&gt;&amp;gt; --------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: AMQ-1849
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/activemq/browse/AMQ-1849&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/activemq/browse/AMQ-1849&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: ActiveMQ
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 5.2.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: Pure master/slave
&lt;br&gt;&amp;gt; JBoss 4.0.5 GA &amp;nbsp; (on Java 1.5.0_14)
&lt;br&gt;&amp;gt; few days old ActiveMQ 5.2.0-SNAPSHOT (on Java &amp;nbsp;&amp;quot;1.6.0_06&amp;quot;)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Hans Bausewein
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Gary Tully
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 5.2.0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: activemqjee-0.0.2-src.tar.gz, jboss.log
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Deployed the attached TextMDB (modified JBoss example) to our JBoss 4.0.5 GA server (cluster).
&lt;br&gt;&amp;gt; - send a message to &amp;quot;queue.A&amp;quot; with Reply To set to &amp;quot;queue.REPLY_A&amp;quot;
&lt;br&gt;&amp;gt; The TextMDB bean: 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;- creates a temporary queue with NON_PERSISTENT delivery mode
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;- forwards message body to &amp;quot;queue.B&amp;quot; and sets the reply queue to this temporary queue
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;- another (or the same) instance of TextMDB replies and adds some text, replies to the temporary queue
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;- the first TextMDB replies to &amp;quot;queue.REPLY_A&amp;quot;
&lt;br&gt;&amp;gt; Works fine, except that every time a temporary queue message is sent, the number of threads on the slave increases by 3.
&lt;br&gt;&amp;gt; On the master the threads are destroyed after a while, but on the slave they persist, growing to &amp;quot;OutOfMemoryError: unable to create new native thread&amp;quot;
&lt;br&gt;&amp;gt; Temporary queue Thread Name example: TempQueue: &amp;nbsp;ID:{HOSTNAME}-59619-1215591084487-0:16:5
&lt;br&gt;&amp;gt; + 2 topic threads
&lt;br&gt;&amp;gt; That thread ID can be found ActiveMQ messages in the attached JBoss log.
&lt;br&gt;&amp;gt; Have I created a bug im my code or have I found a bug in the ActiveMQ server?
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/ActiveMQ---Dev-f2355.html&quot; embed=&quot;fixTarget[2355]&quot; target=&quot;_top&quot; &gt;ActiveMQ - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28AMQ-1849%29-Slave-threads-increasing-when-sending-to-temporary-queue-tp18366880p19340134.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19339308</id>
	<title>[jira] Resolved: (AMQ-1849) Slave threads increasing when sending to temporary queue</title>
	<published>2008-09-05T13:53:52Z</published>
	<updated>2008-09-05T13:53:52Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/activemq/browse/AMQ-1849?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/activemq/browse/AMQ-1849?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Gary Tully resolved AMQ-1849.
&lt;br&gt;-----------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Fix Version/s: 5.2.0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Resolution: Fixed
&lt;br&gt;&lt;br&gt;temp queues are now cleaned up in the slave.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Slave threads increasing when sending to temporary queue
&lt;br&gt;&amp;gt; --------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: AMQ-1849
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/activemq/browse/AMQ-1849&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/activemq/browse/AMQ-1849&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: ActiveMQ
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 5.2.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: Pure master/slave
&lt;br&gt;&amp;gt; JBoss 4.0.5 GA &amp;nbsp; (on Java 1.5.0_14)
&lt;br&gt;&amp;gt; few days old ActiveMQ 5.2.0-SNAPSHOT (on Java &amp;nbsp;&amp;quot;1.6.0_06&amp;quot;)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Hans Bausewein
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Gary Tully
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 5.2.0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: activemqjee-0.0.2-src.tar.gz, jboss.log
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Deployed the attached TextMDB (modified JBoss example) to our JBoss 4.0.5 GA server (cluster).
&lt;br&gt;&amp;gt; - send a message to &amp;quot;queue.A&amp;quot; with Reply To set to &amp;quot;queue.REPLY_A&amp;quot;
&lt;br&gt;&amp;gt; The TextMDB bean: 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;- creates a temporary queue with NON_PERSISTENT delivery mode
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;- forwards message body to &amp;quot;queue.B&amp;quot; and sets the reply queue to this temporary queue
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;- another (or the same) instance of TextMDB replies and adds some text, replies to the temporary queue
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;- the first TextMDB replies to &amp;quot;queue.REPLY_A&amp;quot;
&lt;br&gt;&amp;gt; Works fine, except that every time a temporary queue message is sent, the number of threads on the slave increases by 3.
&lt;br&gt;&amp;gt; On the master the threads are destroyed after a while, but on the slave they persist, growing to &amp;quot;OutOfMemoryError: unable to create new native thread&amp;quot;
&lt;br&gt;&amp;gt; Temporary queue Thread Name example: TempQueue: &amp;nbsp;ID:{HOSTNAME}-59619-1215591084487-0:16:5
&lt;br&gt;&amp;gt; + 2 topic threads
&lt;br&gt;&amp;gt; That thread ID can be found ActiveMQ messages in the attached JBoss log.
&lt;br&gt;&amp;gt; Have I created a bug im my code or have I found a bug in the ActiveMQ server?
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/ActiveMQ---Dev-f2355.html&quot; embed=&quot;fixTarget[2355]&quot; target=&quot;_top&quot; &gt;ActiveMQ - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28AMQ-1849%29-Slave-threads-increasing-when-sending-to-temporary-queue-tp18366880p19339308.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19339143</id>
	<title>[jira] Reopened: (AMQ-1489) discoveryUri in transportConnector and uri in networkConnector partially ignored if multicast</title>
	<published>2008-09-05T13:43:52Z</published>
	<updated>2008-09-05T13:43:52Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/activemq/browse/AMQ-1489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/activemq/browse/AMQ-1489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Gary Tully reopened AMQ-1489:
&lt;br&gt;-----------------------------
&lt;br&gt;&lt;br&gt;&lt;br&gt;bunch of unit test failures (14) with this fix, needs some investigation. eg BrokerServiceTest
&lt;br&gt;java.net.UnknownHostException: group-1220646703756: group-1220646703756
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.net.InetAddress.getAllByName0(InetAddress.java:1145)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.net.InetAddress.getAllByName(InetAddress.java:1072)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.net.InetAddress.getAllByName(InetAddress.java:1008)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.net.InetAddress.getByName(InetAddress.java:958)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent.start(MulticastDiscoveryAgent.java:300)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.activemq.network.DiscoveryNetworkConnector.handleStart(DiscoveryNetworkConnector.java:164)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.activemq.network.NetworkConnector$1.doStart(NetworkConnector.java:56)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:53)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.activemq.network.NetworkConnector.start(NetworkConnector.java:197)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.activemq.broker.BrokerService.startAllConnectors(BrokerService.java:1873)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.activemq.broker.BrokerService.start(BrokerService.java:480)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.activemq.broker.BrokerServiceTest.testAddRemoveNetworkWithJMX(BrokerServiceTest.java:58)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.lang.reflect.Method.invoke(Method.java:585)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at junit.framework.TestCase.runTest(TestCase.java:154)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at junit.framework.TestCase.runBare(TestCase.java:127)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at junit.framework.TestResult$1.protect(TestResult.java:106)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at junit.framework.TestResult.runProtected(TestResult.java:124)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at junit.framework.TestResult.run(TestResult.java:109)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at junit.framework.TestCase.run(TestCase.java:118)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at junit.framework.TestSuite.runTest(TestSuite.java:208)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at junit.framework.TestSuite.run(TestSuite.java:203)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; discoveryUri in transportConnector and uri in networkConnector partially ignored if multicast
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: AMQ-1489
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/activemq/browse/AMQ-1489&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/activemq/browse/AMQ-1489&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: ActiveMQ
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Connector
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 4.1.1, 5.0.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Gerald Loeffler
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Rob Davies
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 5.2.0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: patchfile.txt
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This bug relates to the MulticastDiscoveryAgent and was discovered when 
&lt;br&gt;&amp;gt; 1. the discoveryUri of a transportConnector is a multicast-uri such as
&lt;br&gt;&amp;gt; {code:xml}
&lt;br&gt;&amp;gt; &amp;lt;transportConnector uri=&amp;quot;...&amp;quot; discoveryUri=&amp;quot;multicast://239.3.7.0:37000&amp;quot; /&amp;gt;
&lt;br&gt;&amp;gt; {code}
&lt;br&gt;&amp;gt; or
&lt;br&gt;&amp;gt; 2. the uri of a networkConnector is a multicast-uri such as
&lt;br&gt;&amp;gt; {code:xml}
&lt;br&gt;&amp;gt; &amp;lt;networkConnector name=&amp;quot;...&amp;quot; uri=&amp;quot;multicast://239.3.7.0:37000&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; {code}
&lt;br&gt;&amp;gt; In these cases, the uri is partially ignored by the MulticastDiscoveryAgent: the host-name of the uri (239.3.7.0) is extracted and used as the group name by the MulticastDiscoveryAgent. But the actual multicast group IP is always 239.255.2.3 and the multicast port is always 6155, regardless of what the actual uri is in the configuration.
&lt;br&gt;&amp;gt; The reason for this is that MulticastDiscoveryAgentFactory creates a new MulticastDiscoveryAgent and sets the group based on the uri's host, but fails to set the discoveryURI itself. MulticastDiscoveryAgentFactory should be corrected to do this:
&lt;br&gt;&amp;gt; {code:java}
&lt;br&gt;&amp;gt; MulticastDiscoveryAgent rc = new MulticastDiscoveryAgent();
&lt;br&gt;&amp;gt; rc.setDiscoveryURI(uri); // missing
&lt;br&gt;&amp;gt; rc.setGroup(uri.getHost());
&lt;br&gt;&amp;gt; {code}
&lt;br&gt;&amp;gt; Without the above setting of the discoveryURI the MulticastDiscoveryAgent always uses the DEFAULT_DISCOVERY_URI_STRING which is &amp;quot;multicast://239.255.2.3:6155&amp;quot;, explaining the erroneous behaviour described above.
&lt;br&gt;&amp;gt; &amp;nbsp; kind regards,
&lt;br&gt;&amp;gt; &amp;nbsp; gerald
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.gerald-loeffler.net&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.gerald-loeffler.net&lt;/a&gt;&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/ActiveMQ---Dev-f2355.html&quot; embed=&quot;fixTarget[2355]&quot; target=&quot;_top&quot; &gt;ActiveMQ - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28AMQ-1489%29-discoveryUri-in-transportConnector-and-uri-in-networkConnector-partially-ignored-if-multicast-tp13626158p19339143.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19339093</id>
	<title>svn commit: r692539 - in /activemq/trunk/activemq-core/src: main/java/org/apache/activemq/broker/ft/ main/java/org/apache/activemq/broker/region/ test/java/org/apache/activemq/advisory/</title>
	<published>2008-09-05T13:40:14Z</published>
	<updated>2008-09-05T13:40:14Z</updated>
	<author>
		<name>gtully</name>
	</author>
	<content type="html">Author: gtully
&lt;br&gt;Date: Fri Sep &amp;nbsp;5 13:40:14 2008
&lt;br&gt;New Revision: 692539
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=692539&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=692539&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;fix for AMQ-1849 with test, also master slave pendingdispatch messages were being ignored, test shows this
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/trunk/activemq-core/src/test/java/org/apache/activemq/advisory/MasterSlaveTempQueueMemoryTest.java &amp;nbsp; (with props)
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/ft/MasterBroker.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/PrefetchSubscription.java
&lt;br&gt;&lt;br&gt;Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/ft/MasterBroker.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/ft/MasterBroker.java?rev=692539&amp;r1=692538&amp;r2=692539&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/ft/MasterBroker.java?rev=692539&amp;r1=692538&amp;r2=692539&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/ft/MasterBroker.java (original)
&lt;br&gt;+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/ft/MasterBroker.java Fri Sep &amp;nbsp;5 13:40:14 2008
&lt;br&gt;@@ -28,6 +28,7 @@
&lt;br&gt;&amp;nbsp;import org.apache.activemq.command.ConnectionControl;
&lt;br&gt;&amp;nbsp;import org.apache.activemq.command.ConnectionInfo;
&lt;br&gt;&amp;nbsp;import org.apache.activemq.command.ConsumerInfo;
&lt;br&gt;+import org.apache.activemq.command.DestinationInfo;
&lt;br&gt;&amp;nbsp;import org.apache.activemq.command.ExceptionResponse;
&lt;br&gt;&amp;nbsp;import org.apache.activemq.command.Message;
&lt;br&gt;&amp;nbsp;import org.apache.activemq.command.MessageAck;
&lt;br&gt;@@ -176,7 +177,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Removes a producer.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param context the enviorment the operation is being executed under.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param context the environment the operation is being executed under.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param info
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;@@ -190,7 +191,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param context
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param info
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the assocated subscription
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the associated subscription
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Subscription addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception {
&lt;br&gt;@@ -211,6 +212,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sendAsyncToSlave(info);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void removeDestinationInfo(ConnectionContext context, DestinationInfo info) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super.removeDestinationInfo(context, info);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (info.getDestination().isTemporary()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sendAsyncToSlave(info);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * begin a transaction
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;&lt;br&gt;Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/PrefetchSubscription.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/PrefetchSubscription.java?rev=692539&amp;r1=692538&amp;r2=692539&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/PrefetchSubscription.java?rev=692539&amp;r1=692538&amp;r2=692539&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/PrefetchSubscription.java (original)
&lt;br&gt;+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/PrefetchSubscription.java Fri Sep &amp;nbsp;5 13:40:14 2008
&lt;br&gt;@@ -429,7 +429,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public boolean isFull() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return isSlave() || dispatched.size() - prefetchExtension &amp;gt;= info.getPrefetchSize();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return dispatched.size() - prefetchExtension &amp;gt;= info.getPrefetchSize();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&lt;br&gt;Added: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/advisory/MasterSlaveTempQueueMemoryTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/advisory/MasterSlaveTempQueueMemoryTest.java?rev=692539&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/advisory/MasterSlaveTempQueueMemoryTest.java?rev=692539&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/advisory/MasterSlaveTempQueueMemoryTest.java (added)
&lt;br&gt;+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/advisory/MasterSlaveTempQueueMemoryTest.java Fri Sep &amp;nbsp;5 13:40:14 2008
&lt;br&gt;@@ -0,0 +1,68 @@
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+ * contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+ * this work for additional information regarding copyright ownership.
&lt;br&gt;+ * The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+ * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+ * the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+ * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+ * See the License for the specific language governing permissions and
&lt;br&gt;+ * limitations under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.activemq.advisory;
&lt;br&gt;+
&lt;br&gt;+import org.apache.activemq.broker.BrokerService;
&lt;br&gt;+import org.apache.activemq.broker.region.RegionBroker;
&lt;br&gt;+
&lt;br&gt;+public class MasterSlaveTempQueueMemoryTest extends TempQueueMemoryTest {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;String masterBindAddress = &amp;quot;tcp://localhost:61616&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;String slaveBindAddress = &amp;quot;tcp://localhost:62616&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;BrokerService slave;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * add a slave broker
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see org.apache.activemq.EmbeddedBrokerTestSupport#createBroker()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected BrokerService createBroker() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// bindAddress is used by super.createBroker
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindAddress = masterBindAddress;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BrokerService master = super.createBroker();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;master.setBrokerName(&amp;quot;master&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindAddress = slaveBindAddress;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;slave = super.createBroker();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;slave.setBrokerName(&amp;quot;slave&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;slave.setMasterConnectorURI(masterBindAddress);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindAddress = masterBindAddress;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return master;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected void startBroker() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super.startBroker();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;slave.start();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testLoadRequestReply() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super.testLoadRequestReply();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// some checks on the slave
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AdvisoryBroker ab = (AdvisoryBroker) slave.getBroker().getAdaptor(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AdvisoryBroker.class);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;the temp queues should not be visible as they are removed&amp;quot;, 1, ab.getAdvisoryDestinations().size());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RegionBroker rb = (RegionBroker) slave.getBroker().getAdaptor(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RegionBroker.class); 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//serverDestination + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(6, rb.getDestinationMap().size()); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/advisory/MasterSlaveTempQueueMemoryTest.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/advisory/MasterSlaveTempQueueMemoryTest.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/ActiveMQ---Commits-f23834.html&quot; embed=&quot;fixTarget[23834]&quot; target=&quot;_top&quot; &gt;ActiveMQ - Commits&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/svn-commit%3A-r692539---in--activemq-trunk-activemq-core-src%3A-main-java-org-apache-activemq-broker-ft--main-java-org-apache-activemq-broker-region--test-java-org-apache-activemq-advisory--tp19339093p19339093.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19338623</id>
	<title>Discuss: strong naming of NMS assemblies</title>
	<published>2008-09-05T13:12:09Z</published>
	<updated>2008-09-05T13:12:09Z</updated>
	<author>
		<name>semog</name>
	</author>
	<content type="html">I would like to get people's feedback on strong naming of the NMS
&lt;br&gt;assemblies. &amp;nbsp;I am working on releasing NMS 1.0, and this is now a
&lt;br&gt;priority issue. &amp;nbsp;I would like to hear some arguments for having strong
&lt;br&gt;named assemblies, other than &amp;quot;Microsoft recommends it.&amp;quot;
&lt;br&gt;&lt;br&gt;I think strong naming these assemblies causes more problems than any
&lt;br&gt;potential benefits. &amp;nbsp;I would like to turn off the strong naming, and
&lt;br&gt;go with the standard weak naming.
&lt;br&gt;&lt;br&gt;Thoughts/arguments for/against?
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/ActiveMQ---User-f2356.html&quot; embed=&quot;fixTarget[2356]&quot; target=&quot;_top&quot; &gt;ActiveMQ - User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Discuss%3A-strong-naming-of-NMS-assemblies-tp19338623p19338623.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19337855</id>
	<title>Re: Scalability of 'Networks of Brokers'</title>
	<published>2008-09-05T12:21:59Z</published>
	<updated>2008-09-05T12:21:59Z</updated>
	<author>
		<name>Bryan Murphy-4</name>
	</author>
	<content type="html">Sounds like a nightmare to me. &amp;nbsp;Maybe I don't understand what you're trying
&lt;br&gt;to accomplish, but I think something like Hadoop would be a better fit for
&lt;br&gt;this kind of problem.
&lt;br&gt;&lt;br&gt;Bryan
&lt;br&gt;&lt;br&gt;On Fri, Sep 5, 2008 at 12:10 PM, Martin_Cornelius &amp;lt;
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19337855&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Martin.Cornelius@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi all,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; i am currently evaluating the scalability of Networks of ActiveMQ Brokers
&lt;br&gt;&amp;gt; with a large number of brokers. The actual drive behind this evaluation: I
&lt;br&gt;&amp;gt; have to design a distributed system that is completely serverless. It shall
&lt;br&gt;&amp;gt; be possible to switch of any of the machines in the system without alloying
&lt;br&gt;&amp;gt; the distributed functionality. The number of active machines in the system
&lt;br&gt;&amp;gt; might vary from only 2 to about 100.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; My current idea: Have an (presumably embedded) ActiveMQ Broker running on
&lt;br&gt;&amp;gt; any of the machines, and let all this Brokers form a 'Network of Brokers'
&lt;br&gt;&amp;gt; (abbreviated NOB in the follwing)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; So far, i found that in an NOB a message is forwarded only to those brokers
&lt;br&gt;&amp;gt; where at least one client has subscribed to the topic resp. queue the
&lt;br&gt;&amp;gt; message is sent to. Really fine. If a client subscribes to a queue, the
&lt;br&gt;&amp;gt; broker where the subscription is made sends a single short control-message
&lt;br&gt;&amp;gt; to all other brokers of the NOB. That would still allow for thousands of
&lt;br&gt;&amp;gt; brokers, fine again.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; However, i just realized one fact that may compromise scalabilty: If a
&lt;br&gt;&amp;gt; client subscribes to a &amp;nbsp;topic, the broker where the subscription is done
&lt;br&gt;&amp;gt; sends a not-so-short control-message to all other brokers. So far not too
&lt;br&gt;&amp;gt; bad, but now comes the problem: Every broker seems to react on this
&lt;br&gt;&amp;gt; control-message by sending another not-so-short control-message to all
&lt;br&gt;&amp;gt; other
&lt;br&gt;&amp;gt; brokers. This means, if N brokers are present, every subscription to a
&lt;br&gt;&amp;gt; topic
&lt;br&gt;&amp;gt; results in about (N-1)*N*2 control-messages (The additional factor two
&lt;br&gt;&amp;gt; comes
&lt;br&gt;&amp;gt; from the fact, that the final recipient-broker seems to send another
&lt;br&gt;&amp;gt; response control-message). BTW, The length of the control-messages being
&lt;br&gt;&amp;gt; sent seems to be closely related to the string length of the topic name.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I have verified this behaviour with only up to 6 brokers, so i'm not
&lt;br&gt;&amp;gt; totally
&lt;br&gt;&amp;gt; shure if it will extrapolate to a larger number, but i suspect it does.
&lt;br&gt;&amp;gt; This
&lt;br&gt;&amp;gt; would mean, that with e.g. 100 Brokers every subscription to a topic would
&lt;br&gt;&amp;gt; result in 100*99*2 control messages being sent. If a single control message
&lt;br&gt;&amp;gt; has about 400 bytes (what i observed), this means a single subscription to
&lt;br&gt;&amp;gt; a
&lt;br&gt;&amp;gt; topic would result in about 8 Megabyte network traffic. This might even be
&lt;br&gt;&amp;gt; sustainable, but the quadratic order kills scalabilty -- with 1000 Brokers
&lt;br&gt;&amp;gt; we would have to transfer about 1 Gigabyte, what is no longer feasible.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Finally, my questions: Is there any configuration option by which this
&lt;br&gt;&amp;gt; quadratic order can be avoided, is my idea simply foolish, or are my
&lt;br&gt;&amp;gt; conclusions wrong ? Note that i gained my conclusions more or less
&lt;br&gt;&amp;gt; 'empirically' using wireshark.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; thanks for any advice, Martin
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Scalability-of-%27Networks-of-Brokers%27-tp19335699p19335699.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Scalability-of-%27Networks-of-Brokers%27-tp19335699p19335699.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the ActiveMQ - User mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/ActiveMQ---User-f2356.html&quot; embed=&quot;fixTarget[2356]&quot; target=&quot;_top&quot; &gt;ActiveMQ - User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Scalability-of-%27Networks-of-Brokers%27-tp19335699p19337855.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19337642</id>
	<title>[jira] Created: (AMQNET-111) Constructor for Apache.NMS.ActiveMQ.Connection invokes transport.Start()</title>
	<published>2008-09-05T12:07:52Z</published>
	<updated>2008-09-05T12:07:52Z</updated>
	<author>
		<name>JIRA jira+amqnet@apache.org</name>
	</author>
	<content type="html">Constructor for Apache.NMS.ActiveMQ.Connection invokes transport.Start()
&lt;br&gt;------------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: AMQNET-111
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://issues.apache.org/activemq/browse/AMQNET-111&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/activemq/browse/AMQNET-111&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: ActiveMQ .Net
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Bug
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components: ActiveMQ Client
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Mark Keenan
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Assignee: James Strachan
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Priority: Minor
&lt;br&gt;&lt;br&gt;&lt;br&gt;I have observed that messages are received on a connection before the connection is started. &amp;nbsp;
&lt;br&gt;&lt;br&gt;Please see this Spring.NET forum post for details:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://forum.springframework.net/showpost.php?p=13233&amp;postcount=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://forum.springframework.net/showpost.php?p=13233&amp;postcount=4&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/ActiveMQ---Dev-f2355.html&quot; embed=&quot;fixTarget[2355]&quot; target=&quot;_top&quot; &gt;ActiveMQ - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28AMQNET-111%29-Constructor-for-Apache.NMS.ActiveMQ.Connection-invokes-transport.Start%28%29-tp19337642p19337642.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19337224</id>
	<title>How do I implement a message timeout pattern?</title>
	<published>2008-09-05T11:40:20Z</published>
	<updated>2008-09-05T11:40:20Z</updated>
	<author>
		<name>Mick Knutson-4</name>
	</author>
	<content type="html">I will be sending a message to a queue that is to be consumed by a php
&lt;br&gt;client. I then want to get a NEW status message created and sent to a
&lt;br&gt;statusChannel with 5 minutes. If I do not get a new message in 5 minutes, I
&lt;br&gt;want to take action.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---
&lt;br&gt;Thank You…
&lt;br&gt;&lt;br&gt;Mick Knutson
&lt;br&gt;BASE Logic, inc.
&lt;br&gt;(415) 354-4215
&lt;br&gt;&lt;br&gt;Website: &lt;a href=&quot;http://baselogic.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://baselogic.com&lt;/a&gt;&lt;br&gt;Blog: &lt;a href=&quot;http://baselogic.com/blog&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://baselogic.com/blog&lt;/a&gt;&lt;br&gt;BLiNC Magazine: &lt;a href=&quot;http://blincmagazine.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blincmagazine.com&lt;/a&gt;&lt;br&gt;Linked IN: &lt;a href=&quot;http://linkedin.com/in/mickknutson&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://linkedin.com/in/mickknutson&lt;/a&gt;&lt;br&gt;DJ Mick: &lt;a href=&quot;http://djmick.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://djmick.com&lt;/a&gt;&lt;br&gt;MySpace: &lt;a href=&quot;http://myspace.com/mickknutson&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://myspace.com/mickknutson&lt;/a&gt;&lt;br&gt;Vacation Rental: &lt;a href=&quot;http://tahoe.baselogic.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://tahoe.baselogic.com&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/ActiveMQ---User-f2356.html&quot; embed=&quot;fixTarget[2356]&quot; target=&quot;_top&quot; &gt;ActiveMQ - User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/How-do-I-implement-a-message-timeout-pattern--tp19337224p19337224.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19337053</id>
	<title>Re: Scalability of 'Networks of Brokers'</title>
	<published>2008-09-05T11:31:29Z</published>
	<updated>2008-09-05T11:31:29Z</updated>
	<author>
		<name>Joe Fernandez</name>
	</author>
	<content type="html">Instead of using such a potentially large network of 'embedded' brokers, could you use a smaller cluster of 'standalone' brokers? A single broker is capable of handling many clients and throwing in a master/slave configuration along with 'failover' connectors for the clients should provide the necessary high availability. 
&lt;br&gt;&lt;br&gt;Joe
&lt;br&gt;&lt;a href=&quot;http://www.ttmsolutions.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.ttmsolutions.com&lt;/a&gt;&amp;nbsp; &amp;nbsp;
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Martin_Cornelius wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;Hi all,
&lt;br&gt;&amp;lt;p&amp;gt;
&lt;br&gt;i am currently evaluating the scalability of Networks of ActiveMQ Brokers with a large number of brokers. The actual drive behind this evaluation: I have to design a distributed system that is completely serverless. It shall be possible to switch of any of the machines in the system without alloying the distributed functionality. The number of active machines in the system might vary from only 2 to about 100.&amp;lt;p&amp;gt;
&lt;br&gt;My current idea: Have an (presumably embedded) ActiveMQ Broker running on any of the machines, and let all this Brokers form a 'Network of Brokers' (abbreviated NOB in the follwing)
&lt;br&gt;&amp;lt;p&amp;gt;
&lt;br&gt;So far, i found that in an NOB a message is forwarded only to those brokers where at least one client has subscribed to the topic resp. queue the message is sent to. Really fine. If a client subscribes to a &lt;i&gt;queue&lt;/i&gt;, the broker where the subscription is made sends a single short control-message to all other brokers of the NOB. That would still allow for thousands of brokers, fine again.
&lt;br&gt;&amp;lt;p&amp;gt;
&lt;br&gt;However, i just realized one fact that may compromise scalabilty: If a client subscribes to a &amp;nbsp;&lt;b&gt;&lt;i&gt;topic&lt;/i&gt;&lt;/b&gt;, the broker where the subscription is done sends a not-so-short control-message to all other brokers. So far not too bad, but now comes the problem: Every broker seems to react on this control-message by sending another not-so-short control-message &lt;i&gt;to all other brokers&lt;/i&gt;. This means, if N brokers are present, every subscription to a topic results in about (N-1)*N*2 control-messages (The additional factor two comes from the fact, that the final recipient-broker seems to send another response control-message). BTW, The length of the control-messages being sent seems to be closely related to the string length of the topic name.
&lt;br&gt;&amp;lt;p&amp;gt;
&lt;br&gt;I have verified this behaviour with only up to 6 brokers, so i'm not totally shure if it will extrapolate to a larger number, but i suspect it does. This would mean, that with e.g. 100 Brokers every subscription to a topic would result in 100*99*2 control messages being sent. If a single control message has about 400 bytes (what i observed), this means a single subscription to a topic would result in about 8 Megabyte network traffic. This might even be sustainable, but the quadratic order kills scalabilty -- with 1000 Brokers we would have to transfer about 1 Gigabyte, what is no longer feasible.
&lt;br&gt;&amp;lt;p&amp;gt;
&lt;br&gt;Finally, my questions: Is there any configuration option by which this quadratic order can be avoided, is my idea simply foolish, or are my conclusions wrong ? Note that i gained my conclusions more or less 'empirically' using wireshark.
&lt;br&gt;&amp;lt;p&amp;gt;
&lt;br&gt;thanks for any advice, Martin
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/ActiveMQ---User-f2356.html&quot; embed=&quot;fixTarget[2356]&quot; target=&quot;_top&quot; &gt;ActiveMQ - User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Scalability-of-%27Networks-of-Brokers%27-tp19335699p19337053.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19336943</id>
	<title>[jira] Created: (CAMEL-880) Headers lost when using scriptBuilder to set headers dynamically</title>
	<published>2008-09-05T11:23:52Z</published>
	<updated>2008-09-05T11:23:52Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">Headers lost when using scriptBuilder to set headers dynamically
&lt;br&gt;----------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: CAMEL-880
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://issues.apache.org/activemq/browse/CAMEL-880&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/activemq/browse/CAMEL-880&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Apache Camel
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Bug
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components: camel-script
&lt;br&gt;&amp;nbsp; &amp;nbsp; Affects Versions: 1.4.0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: James Mello
&lt;br&gt;&lt;br&gt;&lt;br&gt;When running a dynamic script evaluation in a setHeader, the header is lost as the Pipeline chain uses the data from the out body as the source of headers. 
&lt;br&gt;&lt;br&gt;So trying to figure this out, I looked into the source, and found that if the getOut is not null, the out message is used to set the header in the setHeader processor. Unfortunately in the script engine this block of code always ensures that it's NOT null. 
&lt;br&gt;&lt;br&gt;script builder class line 520 of Camel 1.4 
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ScriptContext context = engine.getContext(); 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int scope = ScriptContext.ENGINE_SCOPE; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context.setAttribute(&amp;quot;context&amp;quot;, exchange.getContext(), scope); 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context.setAttribute(&amp;quot;exchange&amp;quot;, exchange, scope); 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context.setAttribute(&amp;quot;request&amp;quot;, exchange.getIn(), scope); 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context.setAttribute(&amp;quot;response&amp;quot;, exchange.getOut(), scope); 
&lt;br&gt;&lt;br&gt;The place were the out message is used is here in the Pipeline class at line 79 
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (first) { 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; first = false; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else { 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nextExchange = createNextExchange(processor, nextExchange); 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } 
&lt;br&gt;&lt;br&gt;The specifics of my setup were:
&lt;br&gt;&lt;br&gt;Used spring with the following configuration:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;camel:camelContext&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;camel:route&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;camel:from uri=&amp;quot;jms://LLAQueue?disableReplyTo=true&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;camel:setHeader headerName=&amp;quot;activity.type&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;camel:jxpath&amp;gt;exchange.getIn().getBody().getExerciseHighLevelActivity().getActivityType()&amp;lt;/camel:jxpath&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/camel:setHeader&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;camel:choice&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;camel:when&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;camel:javaScript&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; exchange.getIn().getHeader('activity.type') == 3
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/camel:javaScript&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;camel:transform&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;camel:javaScript&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; exchange.getIn().getBody().getData() !=
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; undefined ?
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; exchange.getIn().getBody().getData() : &amp;quot;&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/camel:javaScript&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/camel:transform&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;camel:to uri=&amp;quot;log:info?showAll=true&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/camel:when&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/camel:choice&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/camel:route&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/camel:camelContext&amp;gt;
&lt;br&gt;&lt;br&gt;I did not test this problem with other exchange types, just the JMS type.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Camel---Development-f22884.html&quot; embed=&quot;fixTarget[22884]&quot; target=&quot;_top&quot; &gt;Camel - Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28CAMEL-880%29-Headers-lost-when-using-scriptBuilder-to-set-headers-dynamically-tp19336943p19336943.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19336925</id>
	<title>RE: Potential bug with setHeader and scripts?</title>
	<published>2008-09-05T11:23:00Z</published>
	<updated>2008-09-05T11:23:00Z</updated>
	<author>
		<name>Kingjamm</name>
	</author>
	<content type="html">I added the spring configuration to a JIRA, unfortunately I don't have time right now to dedicate to putting together a unit test. If you need further details though, please feel free to email.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Claus Ibsen wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;Hi
&lt;br&gt;&lt;br&gt;Yeah I guess the best is to look if the exchange is out capable (ExchangeHelper.isOutCapable - I think) and then only set the response context.
&lt;br&gt;&lt;br&gt;We would like to look and fix it. The best is to log a ticket in JIRA and if possible some code showing the problem, such as a route example, unit test or the like.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Med venlig hilsen
&lt;br&gt;&amp;nbsp;
&lt;br&gt;Claus Ibsen
&lt;br&gt;......................................
&lt;br&gt;Silverbullet
&lt;br&gt;Skovsgårdsvænget 21
&lt;br&gt;8362 Hørning
&lt;br&gt;Tlf. +45 2962 7576
&lt;br&gt;Web: www.silverbullet.dk
&lt;br&gt;&lt;br&gt;-----Original Message-----
&lt;br&gt;From: Kingjamm [mailto:kingjamm@zoji.com] 
&lt;br&gt;Sent: 5. september 2008 19:17
&lt;br&gt;To: camel-user@activemq.apache.org
&lt;br&gt;Subject: Potential bug with setHeader and scripts?
&lt;br&gt;&lt;br&gt;&lt;br&gt;So trying to figure this out, I looked into the source, and found that if the
&lt;br&gt;getOut is not null, the out message is used to set the header in the
&lt;br&gt;setHeader processor. Unfortunately in the script engine this block of code
&lt;br&gt;always ensures that it's NOT null.
&lt;br&gt;&lt;br&gt;script builder class line 520 of Camel 1.4
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ScriptContext context = engine.getContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int scope = ScriptContext.ENGINE_SCOPE;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context.setAttribute(&amp;quot;context&amp;quot;, exchange.getContext(), scope);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context.setAttribute(&amp;quot;exchange&amp;quot;, exchange, scope);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context.setAttribute(&amp;quot;request&amp;quot;, exchange.getIn(), scope);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context.setAttribute(&amp;quot;response&amp;quot;, exchange.getOut(), scope);
&lt;br&gt;&lt;br&gt;The place were the out message is used is here in the Pipeline class at line
&lt;br&gt;79
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (first) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; first = false;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nextExchange = createNextExchange(processor, nextExchange);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;Is the correct behavior to call the getOut in the scripbuilder with an
&lt;br&gt;argument of false or is there something more subtle going on here?
&lt;br&gt;-- 
&lt;br&gt;View this message in context: &lt;a href=&quot;http://www.nabble.com/Potential-bug-with-setHeader-and-scripts--tp19335805s22882p19335805.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Potential-bug-with-setHeader-and-scripts--tp19335805s22882p19335805.html&lt;/a&gt;&lt;br&gt;Sent from the Camel - Users mailing list archive at Nabble.com.
&lt;br&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Camel---Users-f22883.html&quot; embed=&quot;fixTarget[22883]&quot; target=&quot;_top&quot; &gt;Camel - Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Potential-bug-with-setHeader-and-scripts--tp19335805p19336925.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19336880</id>
	<title>Re: Configuring activemq queues</title>
	<published>2008-09-05T11:19:37Z</published>
	<updated>2008-09-05T11:19:37Z</updated>
	<author>
		<name>Srkanth</name>
	</author>
	<content type="html">I got it fixed. Thank you for the help!
&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;James.Strachan wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;How many brokers do you want to run and why? The quick answer is -
&lt;br&gt;just run one broker and make all the clients connect to it.
&lt;br&gt;&lt;br&gt;2008/9/4 Srkanth &amp;lt;mu.srikanth@gmail.com&amp;gt;:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;I have activemq installed on my machine and another developer's
&lt;br&gt;&amp;gt; machine. The message producer is on another machine and the consumer is on
&lt;br&gt;&amp;gt; my machine. So, the messages that are put by the producer are appearing on
&lt;br&gt;&amp;gt; his console but not appearing in my queue. How do I configure activemq to
&lt;br&gt;&amp;gt; use the queues on &amp;nbsp;his local machine?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Any help is appreciated
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context: &lt;a href=&quot;http://www.nabble.com/Configuring-activemq-queues-tp19321481p19321481.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Configuring-activemq-queues-tp19321481p19321481.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the ActiveMQ - User mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;James
&lt;br&gt;-------
&lt;br&gt;&lt;a href=&quot;http://macstrac.blogspot.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://macstrac.blogspot.com/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Open Source Integration
&lt;br&gt;&lt;a href=&quot;http://open.iona.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://open.iona.com&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/ActiveMQ---User-f2356.html&quot; embed=&quot;fixTarget[2356]&quot; target=&quot;_top&quot; &gt;ActiveMQ - User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Configuring-activemq-queues-tp19321481p19336880.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19336712</id>
	<title>Re: [VOTE] Release ActiveMQ-CPP 2.2.1</title>
	<published>2008-09-05T11:07:41Z</published>
	<updated>2008-09-05T11:07:41Z</updated>
	<author>
		<name>bsnyder</name>
	</author>
	<content type="html">On Fri, Sep 5, 2008 at 6:03 AM, Timothy Bish &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19336712&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tabish121@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi everyone,
&lt;br&gt;&amp;gt; Well its that time again, its time to call a vote for the release of
&lt;br&gt;&amp;gt; ActiveMQ-CPP v2.2.1. &amp;nbsp;This version has many bug fixes, performance
&lt;br&gt;&amp;gt; enhancements, and some new features as well.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The source bundle for the release candidate can be found here:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://people.apache.org/~tabish/activemq-cpp-2.2.1-RC2-src.tar.gz&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://people.apache.org/~tabish/activemq-cpp-2.2.1-RC2-src.tar.gz&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; And here's the wiki page for the release:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://activemq.apache.org/cms/activemq-cpp-221-release.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://activemq.apache.org/cms/activemq-cpp-221-release.html&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Please cast your votes:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; [ ] +1 Release the source as Apache ActiveMQ-CPP 2.2.1
&lt;br&gt;&amp;gt; [ ] -1 Veto the release (provide specific comments)
&lt;/div&gt;&lt;br&gt;+1
&lt;br&gt;&lt;br&gt;Bruce
&lt;br&gt;-- 
&lt;br&gt;perl -e 'print unpack(&amp;quot;u30&amp;quot;,&amp;quot;D0G)U8V4\@4VYY9&amp;5R\&amp;quot;F)R=6-E+G-N&amp;gt;61E&amp;lt;D\!G;6%I;\&amp;quot;YC;VT*&amp;quot;
&lt;br&gt;);'
&lt;br&gt;&lt;br&gt;Apache ActiveMQ - &lt;a href=&quot;http://activemq.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://activemq.org/&lt;/a&gt;&lt;br&gt;Apache Camel - &lt;a href=&quot;http://activemq.org/camel/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://activemq.org/camel/&lt;/a&gt;&lt;br&gt;Apache ServiceMix - &lt;a href=&quot;http://servicemix.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://servicemix.org/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Blog: &lt;a href=&quot;http://bruceblog.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bruceblog.org/&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/ActiveMQ---Dev-f2355.html&quot; embed=&quot;fixTarget[2355]&quot; target=&quot;_top&quot; &gt;ActiveMQ - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-VOTE--Release-ActiveMQ-CPP-2.2.1-tp19329814p19336712.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19336699</id>
	<title>svn commit: r692502 - in /activemq/sandbox/kahadb/src/main: java/org/apache/kahadb/journal/ java/org/apache/kahadb/store/ proto/</title>
	<published>2008-09-05T11:07:10Z</published>
	<updated>2008-09-05T11:07:10Z</updated>
	<author>
		<name>chirino</name>
	</author>
	<content type="html">Author: chirino
&lt;br&gt;Date: Fri Sep &amp;nbsp;5 11:07:09 2008
&lt;br&gt;New Revision: 692502
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=692502&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=692502&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Implemented the topic side of the MesageSTore.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/journal/Location.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/KahaDBPersistenceAdaptor.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/MessageDatabase.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/Visitor.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; activemq/sandbox/kahadb/src/main/proto/journal-data.proto
&lt;br&gt;&lt;br&gt;Modified: activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/journal/Location.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/journal/Location.java?rev=692502&amp;r1=692501&amp;r2=692502&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/journal/Location.java?rev=692502&amp;r1=692501&amp;r2=692502&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/journal/Location.java (original)
&lt;br&gt;+++ activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/journal/Location.java Fri Sep &amp;nbsp;5 11:07:09 2008
&lt;br&gt;@@ -42,13 +42,18 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Location() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Location(Location item) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Location(Location item) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.dataFileId = item.dataFileId;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.offset = item.offset;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.size = item.size;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.type = item.type;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Location(int dataFileId, int offset) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.dataFileId=dataFileId;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.offset=offset;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;boolean isValid() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return dataFileId != NOT_SET;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/KahaDBPersistenceAdaptor.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/KahaDBPersistenceAdaptor.java?rev=692502&amp;r1=692501&amp;r2=692502&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/KahaDBPersistenceAdaptor.java?rev=692502&amp;r1=692501&amp;r2=692502&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/KahaDBPersistenceAdaptor.java (original)
&lt;br&gt;+++ activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/KahaDBPersistenceAdaptor.java Fri Sep &amp;nbsp;5 11:07:09 2008
&lt;br&gt;@@ -22,6 +22,7 @@
&lt;br&gt;&amp;nbsp;import java.io.DataInputStream;
&lt;br&gt;&amp;nbsp;import java.io.IOException;
&lt;br&gt;&amp;nbsp;import java.util.ArrayList;
&lt;br&gt;+import java.util.HashMap;
&lt;br&gt;&amp;nbsp;import java.util.HashSet;
&lt;br&gt;&amp;nbsp;import java.util.Iterator;
&lt;br&gt;&amp;nbsp;import java.util.Map;
&lt;br&gt;@@ -53,9 +54,12 @@
&lt;br&gt;&amp;nbsp;import org.apache.activemq.usage.SystemUsage;
&lt;br&gt;&amp;nbsp;import org.apache.activemq.util.ByteSequence;
&lt;br&gt;&amp;nbsp;import org.apache.activemq.wireformat.WireFormat;
&lt;br&gt;+import org.apache.kahadb.StringMarshaller;
&lt;br&gt;+import org.apache.kahadb.index.BTreeIndex;
&lt;br&gt;&amp;nbsp;import org.apache.kahadb.journal.Location;
&lt;br&gt;&amp;nbsp;import org.apache.kahadb.page.Transaction;
&lt;br&gt;&amp;nbsp;import org.apache.kahadb.store.MessageDatabase.AddOpperation;
&lt;br&gt;+import org.apache.kahadb.store.MessageDatabase.LocationMarshaller;
&lt;br&gt;&amp;nbsp;import org.apache.kahadb.store.MessageDatabase.Operation;
&lt;br&gt;&amp;nbsp;import org.apache.kahadb.store.MessageDatabase.StoredDestination;
&lt;br&gt;&amp;nbsp;import org.apache.kahadb.store.data.KahaAddMessageCommand;
&lt;br&gt;@@ -68,22 +72,18 @@
&lt;br&gt;&amp;nbsp;import org.apache.kahadb.store.data.KahaRemoveMessageCommand;
&lt;br&gt;&amp;nbsp;import org.apache.kahadb.store.data.KahaRollbackCommand;
&lt;br&gt;&amp;nbsp;import org.apache.kahadb.store.data.KahaTransactionInfo;
&lt;br&gt;+import org.apache.kahadb.store.data.KahaSubscriptionCommand;
&lt;br&gt;&amp;nbsp;import org.apache.kahadb.store.data.KahaXATransactionId;
&lt;br&gt;&amp;nbsp;import org.apache.kahadb.store.data.KahaDestination.DestinationType;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;public class KahaDBPersistenceAdaptor extends MessageDatabase implements PersistenceAdapter {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String brokerName;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private SystemUsage usageManager;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private WireFormat wireFormat = new OpenWireFormat();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private AtomicBoolean started = new AtomicBoolean();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void setBrokerName(String brokerName) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.brokerName = brokerName;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void setUsageManager(SystemUsage usageManager) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.usageManager = usageManager;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void start() throws Exception {
&lt;br&gt;@@ -141,9 +141,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;class KahaDBMessageStore implements MessageStore {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public class KahaDBMessageStore implements MessageStore {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private final ActiveMQDestination destination;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private KahaDestination dest;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;protected KahaDestination dest;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public KahaDBMessageStore(ActiveMQDestination destination) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.destination = destination;
&lt;br&gt;@@ -252,8 +252,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( entry!=null ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Copy the location, cause the iterator gives us the key by reference.. changing it
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// would mess up the index.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cursorPos = new Location();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cursorPos.setDataFileId(entry.getKey().getDataFileId());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cursorPos = new Location(entry.getKey());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cursorPos.setOffset(entry.getKey().getOffset()+1 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -273,50 +272,184 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;class KahaDBTopicMessageStore extends KahaDBMessageStore implements TopicMessageStore {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public KahaDBTopicMessageStore(ActiveMQTopic destination) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(destination);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void acknowledge(ConnectionContext context, String clientId, String subscriptionName, MessageId messageId) throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;KahaRemoveMessageCommand command = new KahaRemoveMessageCommand();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;command.setDestination(dest);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;command.setSubscriptionKey(subscriptionKey(clientId, subscriptionName));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;command.setMessageId(messageId.toString());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// We are not passed a transaction info.. so we can't participate in a transaction.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Looks like a design issue with the TopicMessageStore interface. &amp;nbsp;Also we can't recover the original ack
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// to pass back to the XA recover method.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// command.setTransactionInfo();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;store(command, true);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void addSubsciption(SubscriptionInfo subscriptionInfo, boolean retroactive) throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String subscriptionKey = subscriptionKey(subscriptionInfo.getClientId(), subscriptionInfo.getSubscriptionName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;KahaSubscriptionCommand command = new KahaSubscriptionCommand();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;command.setDestination(dest);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;command.setSubscriptionKey(subscriptionKey);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;command.setRetroactive(retroactive);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ByteSequence packet = wireFormat.marshal(subscriptionInfo);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;command.setSubscriptionInfo(ByteString.copyFrom(packet.getData(), packet.getOffset(), packet.getLength()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;store(command, true);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void deleteSubscription(String clientId, String subscriptionName) throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;KahaSubscriptionCommand command = new KahaSubscriptionCommand();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;command.setDestination(dest);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;command.setSubscriptionKey(subscriptionKey(clientId, subscriptionName));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;store(command, true);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public SubscriptionInfo[] getAllSubscriptions() throws IOException {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final ArrayList&amp;lt;SubscriptionInfo&amp;gt; subscriptions = new ArrayList&amp;lt;SubscriptionInfo&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;synchronized(indexMutex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageFile.tx().execute(new Transaction.Closure&amp;lt;IOException&amp;gt;(){
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void execute(Transaction tx) throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StoredDestination sd = getStoredDestination(dest, tx);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Iterator&amp;lt;Entry&amp;lt;String, KahaSubscriptionCommand&amp;gt;&amp;gt; iterator = sd.subscriptions.iterator(tx); iterator.hasNext();) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Entry&amp;lt;String, KahaSubscriptionCommand&amp;gt; entry = iterator.next();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SubscriptionInfo info = (SubscriptionInfo)wireFormat.unmarshal( new DataInputStream(entry.getValue().getSubscriptionInfo().newInput()) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;subscriptions.add(info);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public int getMessageCount(String clientId, String subscriberName) throws IOException {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SubscriptionInfo[]rc=new SubscriptionInfo[subscriptions.size()];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;subscriptions.toArray(rc);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return rc;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public SubscriptionInfo lookupSubscription(String clientId, String subscriptionName) throws IOException {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final String subscriptionKey = subscriptionKey(clientId, subscriptionName);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;synchronized(indexMutex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return pageFile.tx().execute(new Transaction.CallableClosure&amp;lt;SubscriptionInfo, IOException&amp;gt;(){
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public SubscriptionInfo execute(Transaction tx) throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StoredDestination sd = getStoredDestination(dest, tx);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;KahaSubscriptionCommand command = sd.subscriptions.get(tx, subscriptionKey);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( command ==null ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (SubscriptionInfo)wireFormat.unmarshal( new DataInputStream(command.getSubscriptionInfo().newInput()) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public int getMessageCount(String clientId, String subscriptionName) throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final String subscriptionKey = subscriptionKey(clientId, subscriptionName);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;synchronized(indexMutex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return pageFile.tx().execute(new Transaction.CallableClosure&amp;lt;Integer, IOException&amp;gt;(){
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Integer execute(Transaction tx) throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StoredDestination sd = getStoredDestination(dest, tx);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Location cursorPos = sd.subscriptionAcks.get(tx, subscriptionKey);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( cursorPos==null ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// The subscription might not exist.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cursorPos = new Location(cursorPos);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cursorPos.setOffset(cursorPos.getOffset()+1 );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int counter = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Iterator&amp;lt;Entry&amp;lt;Location, String&amp;gt;&amp;gt; iterator = sd.orderIndex.iterator(tx, cursorPos); iterator.hasNext();) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;iterator.next();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;counter++;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return counter;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void recoverNextMessages(String clientId, String subscriptionName, int maxReturned, MessageRecoveryListener listener) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void recoverSubscription(String clientId, String subscriptionName, final MessageRecoveryListener listener) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final String subscriptionKey = subscriptionKey(clientId, subscriptionName);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;synchronized(indexMutex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageFile.tx().execute(new Transaction.Closure&amp;lt;Exception&amp;gt;(){
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void execute(Transaction tx) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StoredDestination sd = getStoredDestination(dest, tx);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Location cursorPos = new Location(sd.subscriptionAcks.get(tx, subscriptionKey));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cursorPos.setOffset(cursorPos.getOffset()+1 );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Iterator&amp;lt;Entry&amp;lt;Location, String&amp;gt;&amp;gt; iterator = sd.orderIndex.iterator(tx, cursorPos); iterator.hasNext();) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Entry&amp;lt;Location, String&amp;gt; entry = iterator.next();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;listener.recoverMessage( loadMessage(entry.getKey() ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void recoverSubscription(String clientId, String subscriptionName, MessageRecoveryListener listener) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void recoverNextMessages(String clientId, String subscriptionName, final int maxReturned, final MessageRecoveryListener listener) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final String subscriptionKey = subscriptionKey(clientId, subscriptionName);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;synchronized(indexMutex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageFile.tx().execute(new Transaction.Closure&amp;lt;Exception&amp;gt;(){
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void execute(Transaction tx) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StoredDestination sd = getStoredDestination(dest, tx);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Location cursorPos = sd.subscriptionCursors.get(subscriptionKey);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( cursorPos == null ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cursorPos = new Location(sd.subscriptionAcks.get(tx, subscriptionKey));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cursorPos.setOffset(cursorPos.getOffset()+1 );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Entry&amp;lt;Location, String&amp;gt; entry=null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int counter = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Iterator&amp;lt;Entry&amp;lt;Location, String&amp;gt;&amp;gt; iterator = sd.orderIndex.iterator(tx, cursorPos); iterator.hasNext();) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;entry = iterator.next();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;listener.recoverMessage( loadMessage(entry.getKey() ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;counter++;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( counter &amp;gt;= maxReturned ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( entry!=null ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Copy the location, cause the iterator gives us the key by reference.. changing it
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// would mess up the index.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cursorPos = new Location(entry.getKey());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cursorPos.setOffset(entry.getKey().getOffset()+1 );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sd.subscriptionCursors.put(subscriptionKey, cursorPos);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void resetBatching(String clientId, String subscriptionName) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final String subscriptionKey = subscriptionKey(clientId, subscriptionName);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;synchronized(indexMutex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageFile.tx().execute(new Transaction.Closure&amp;lt;IOException&amp;gt;(){
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void execute(Transaction tx) throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StoredDestination sd = getStoredDestination(dest, tx);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sd.subscriptionCursors.remove(subscriptionKey);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IOException e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new RuntimeException(e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;String subscriptionKey(String clientId, String subscriptionName){
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return clientId+&amp;quot;:&amp;quot;+subscriptionName;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public MessageStore createQueueMessageStore(ActiveMQQueue destination) throws IOException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new KahaDBMessageStore(destination);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public TopicMessageStore createTopicMessageStore(ActiveMQTopic destination) throws IOException {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IOException(&amp;quot;Not yet implemented.&amp;quot;);
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new KahaDBTopicMessageStore(destination);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new KahaDBTopicMessageStore(destination);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void deleteAllMessages() throws IOException {
&lt;br&gt;@@ -385,7 +518,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws IOException
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private Message loadMessage(Location location) throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Message loadMessage(Location location) throws IOException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;KahaAddMessageCommand addMessage = (KahaAddMessageCommand)load(location);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Message msg = (Message)wireFormat.unmarshal( new DataInputStream(addMessage.getMessage().newInput()) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return msg;
&lt;br&gt;@@ -395,7 +528,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// Internal conversion methods.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;///////////////////////////////////////////////////////////////////
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private KahaTransactionInfo createTransactionInfo(TransactionId txid) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;KahaTransactionInfo createTransactionInfo(TransactionId txid) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( txid ==null ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -424,14 +557,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return rc;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private KahaLocation convert(Location location) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;KahaLocation convert(Location location) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;KahaLocation rc = new KahaLocation();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rc.setLogId(location.getDataFileId());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rc.setOffset(location.getOffset());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return rc;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private KahaDestination convert(ActiveMQDestination dest) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;KahaDestination convert(ActiveMQDestination dest) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;KahaDestination rc = new KahaDestination();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rc.setName(dest.getPhysicalName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch( dest.getDestinationType() ) {
&lt;br&gt;@@ -452,7 +585,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private ActiveMQDestination convert(String dest) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;ActiveMQDestination convert(String dest) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int p = dest.indexOf(&amp;quot;:&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( p&amp;lt;0 ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(&amp;quot;Not in the valid destination format&amp;quot;);
&lt;br&gt;&lt;br&gt;Modified: activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/MessageDatabase.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/MessageDatabase.java?rev=692502&amp;r1=692501&amp;r2=692502&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/MessageDatabase.java?rev=692502&amp;r1=692501&amp;r2=692502&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/MessageDatabase.java (original)
&lt;br&gt;+++ activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/MessageDatabase.java Fri Sep &amp;nbsp;5 11:07:09 2008
&lt;br&gt;@@ -20,13 +20,21 @@
&lt;br&gt;&amp;nbsp;import java.io.DataOutput;
&lt;br&gt;&amp;nbsp;import java.io.File;
&lt;br&gt;&amp;nbsp;import java.io.IOException;
&lt;br&gt;+import java.io.InputStream;
&lt;br&gt;+import java.io.OutputStream;
&lt;br&gt;&amp;nbsp;import java.util.ArrayList;
&lt;br&gt;&amp;nbsp;import java.util.Date;
&lt;br&gt;&amp;nbsp;import java.util.HashMap;
&lt;br&gt;+import java.util.HashSet;
&lt;br&gt;+import java.util.Iterator;
&lt;br&gt;&amp;nbsp;import 