[jboss-cvs] jboss-jms/src/main/org/jboss/messaging/core ...
Timothy Fox
tim.fox at jboss.com
Thu Jul 27 15:01:56 EDT 2006
User: timfox
Date: 06/07/27 15:01:56
Modified: src/main/org/jboss/messaging/core ChannelSupport.java
Routable.java
Log:
Mainly http://jira.jboss.com/jira/browse/JBMESSAGING-434 plus a few other bits and pieces
Revision Changes Path
1.68 +33 -32 jboss-jms/src/main/org/jboss/messaging/core/ChannelSupport.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ChannelSupport.java
===================================================================
RCS file: /cvsroot/jboss/jboss-jms/src/main/org/jboss/messaging/core/ChannelSupport.java,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -b -r1.67 -r1.68
--- ChannelSupport.java 19 Jul 2006 16:21:18 -0000 1.67
+++ ChannelSupport.java 27 Jul 2006 19:01:55 -0000 1.68
@@ -55,7 +55,7 @@
*
* @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
* @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * @version <tt>$Revision: 1.67 $</tt> $Id: ChannelSupport.java,v 1.65
+ * @version <tt>$Revision: 1.68 $</tt> $Id: ChannelSupport.java,v 1.65
* 2006/06/27 19:44:39 timfox Exp $
*/
public abstract class ChannelSupport implements Channel
@@ -384,20 +384,8 @@
// Also is very inefficient since it makes a copy
List references = delivering(filter);
- Iterator iter = references.iterator();
- while (iter.hasNext())
- {
- MessageReference ref = (MessageReference)iter.next();
- }
-
List undel = undelivered(filter);
- iter = undel.iterator();
- while (iter.hasNext())
- {
- MessageReference ref = (MessageReference)iter.next();
- }
-
references.addAll(undel);
// dereference pass
@@ -828,7 +816,9 @@
ref.setOrdering(messageOrdering.increment());
- if (ref.isReliable() && recoverable)
+ if (ref.isReliable())
+ {
+ if (recoverable)
{
// Reliable message in a recoverable state - also add to db
if (trace)
@@ -839,6 +829,17 @@
pm.addReference(channelID, ref, null);
}
+ else
+ {
+ //Reliable reference in a non recoverable channel-
+ //We handle it as a non reliable reference
+ //It's important that we set it to non reliable otherwise if the channel
+ //pages and is non recoverable a reliable ref will be paged in the database as reliable
+ //which makes them hard to remove on server restart.
+ //If we always page them as unreliable then it is easy to remove them.
+ ref.setReliable(false);
+ }
+ }
addReferenceInMemory(ref);
@@ -918,7 +919,7 @@
return new SimpleDelivery(sender, ref, true);
}
- protected void acknowledgeInternal(Delivery d) throws Throwable
+ protected void acknowledgeInternal(Delivery d) throws Exception
{
synchronized (deliveryLock)
{
@@ -933,7 +934,7 @@
d.getReference().releaseMemoryReference();
}
- protected void cancelInternal(Delivery del) throws Throwable
+ protected void cancelInternal(Delivery del) throws Exception
{
if (trace)
{
@@ -995,7 +996,7 @@
}
}
- protected MessageReference removeFirstInMemory() throws Throwable
+ protected MessageReference removeFirstInMemory() throws Exception
{
synchronized (refLock)
{
@@ -1087,7 +1088,7 @@
// }
}
- protected void addReferenceInMemory(MessageReference ref) throws Throwable
+ protected void addReferenceInMemory(MessageReference ref) throws Exception
{
if (ref.isReliable() && !acceptReliableMessages)
{
@@ -1167,7 +1168,7 @@
+ " refs from downcache");
}
- // Non persistent refs or persistent refs in a non recoverable state won't
+ // Non persistent refs won't
// already be in the db
// so they need to be inserted
// Persistent refs in a recoverable state will already be there so need to
@@ -1250,7 +1251,7 @@
}
}
- protected boolean acknowledgeInMemory(Delivery d) throws Throwable
+ protected boolean acknowledgeInMemory(Delivery d)
{
if (d == null)
{
1.18 +4 -2 jboss-jms/src/main/org/jboss/messaging/core/Routable.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Routable.java
===================================================================
RCS file: /cvsroot/jboss/jboss-jms/src/main/org/jboss/messaging/core/Routable.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- Routable.java 17 Jul 2006 17:14:47 -0000 1.17
+++ Routable.java 27 Jul 2006 19:01:56 -0000 1.18
@@ -36,9 +36,9 @@
*
* @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
* @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * @version <tt>$Revision: 1.17 $</tt>
+ * @version <tt>$Revision: 1.18 $</tt>
*
- * $Id: Routable.java,v 1.17 2006/07/17 17:14:47 timfox Exp $
+ * $Id: Routable.java,v 1.18 2006/07/27 19:01:56 timfox Exp $
*/
public interface Routable extends Serializable
{
@@ -61,6 +61,8 @@
*/
boolean isReliable();
+ void setReliable(boolean reliable);
+
/**
* @return the time (in GMT milliseconds) when this routable expires and must be removed
* from the system. A zero value means this routable never expires.
More information about the jboss-cvs-commits
mailing list