Author: rajdavies
Date: Thu Mar  1 14:43:47 2007
New Revision: 513543

URL: http://svn.apache.org/viewvc?view=rev&rev=513543
Log:
provide the option to always send messages synchronously - even if the messages 
are 
non-persistent

Modified:
    
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java
    
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
    
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java

Modified: 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java
URL: 
http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java?view=diff&rev=513543&r1=513542&r2=513543
==============================================================================
--- 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java
 (original)
+++ 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java
 Thu Mar  1 14:43:47 2007
@@ -132,6 +132,7 @@
     private boolean optimizeAcknowledge = false;
     private boolean nestedMapAndListEnabled = true;
     private boolean useRetroactiveConsumer;
+    private boolean alwaysSyncSend;
     private int closeTimeout = 15000;
     
     private final Transport transport;
@@ -1301,6 +1302,22 @@
     public void setUseAsyncSend(boolean useAsyncSend) {
         this.useAsyncSend = useAsyncSend;
     }
+    
+    /**
+     * @return true if always sync send messages
+     */
+    public boolean isAlwaysSyncSend(){
+        return this.alwaysSyncSend;
+    }
+
+    /**
+     * Set true if always require messages to be sync sent
+     * @param alwaysSyncSend
+     */
+    public void setAlwaysSyncSend(boolean alwaysSyncSend){
+        this.alwaysSyncSend=alwaysSyncSend;
+    }
+
 
     /**
      * Cleans up this connection so that it's state is as if the connection was
@@ -1929,8 +1946,5 @@
     
     public String toString() {
         return "ActiveMQConnection 
{id="+info.getConnectionId()+",clientId="+info.getClientId()+",started="+started.get()+"}";
-    }
-
-
-    
+    }    
 }

Modified: 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
URL: 
http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java?view=diff&rev=513543&r1=513542&r2=513543
==============================================================================
--- 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
 (original)
+++ 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
 Thu Mar  1 14:43:47 2007
@@ -87,6 +87,7 @@
     private boolean useRetroactiveConsumer;
     private boolean nestedMapAndListEnabled = true;
     JMSStatsImpl factoryStats = new JMSStatsImpl();
+    private boolean alwaysSyncSend;
 
     static protected final Executor DEFAULT_CONNECTION_EXECUTOR = new 
ScheduledThreadPoolExecutor(5, new ThreadFactory() {
             public Thread newThread(Runnable run) {
@@ -425,6 +426,21 @@
     public void setUseAsyncSend(boolean useAsyncSend) {
         this.useAsyncSend = useAsyncSend;
     }
+    
+    /**
+     * @return true if always sync send messages
+     */
+    public boolean isAlwaysSyncSend(){
+        return this.alwaysSyncSend;
+    }
+
+    /**
+     * Set true if always require messages to be sync sent
+     * @param alwaysSyncSend
+     */
+    public void setAlwaysSyncSend(boolean alwaysSyncSend){
+        this.alwaysSyncSend=alwaysSyncSend;
+    }
 
     public String getUserName() {
         return userName;
@@ -553,6 +569,7 @@
         props.setProperty("alwaysSessionAsync", 
Boolean.toString(isAlwaysSessionAsync()));
         props.setProperty("optimizeAcknowledge", 
Boolean.toString(isOptimizeAcknowledge()));
         props.setProperty("statsEnabled",Boolean.toString(isStatsEnabled()));
+        
props.setProperty("alwaysSyncSend",Boolean.toString(isAlwaysSyncSend()));
 
     }
 

Modified: 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java
URL: 
http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java?view=diff&rev=513543&r1=513542&r2=513543
==============================================================================
--- 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java
 (original)
+++ 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java
 Thu Mar  1 14:43:47 2007
@@ -1594,11 +1594,11 @@
                        if(this.debug){
                                log.debug("Sending message: "+msg);
                        }
-                       
if(!msg.isPersistent()||connection.isUseAsyncSend()||txid!=null){
-                               this.connection.asyncSendPacket(msg);
-                       }else{
-                               this.connection.syncSendPacket(msg);
-                       }
+                       
if(!connection.isAlwaysSyncSend()&&(!msg.isPersistent()||connection.isUseAsyncSend()||txid!=null)){
+                this.connection.asyncSendPacket(msg);
+            }else{
+                this.connection.syncSendPacket(msg);
+            }
                }
        }
 


Reply via email to