summaryrefslogtreecommitdiff
path: root/qpid/java/client
diff options
context:
space:
mode:
authorRafael H. Schloming <rhs@apache.org>2008-06-06 03:39:03 +0000
committerRafael H. Schloming <rhs@apache.org>2008-06-06 03:39:03 +0000
commit0fb17bbed6930f3ec110bf87d5cd4f3b91e2bbc2 (patch)
treee49e773c94e2e65b82fc83a5708646a59771d0db /qpid/java/client
parente2cb0dd0e4a9fe86d5b7c6a3270f4fa5da80f43e (diff)
downloadqpid-python-0fb17bbed6930f3ec110bf87d5cd4f3b91e2bbc2.tar.gz
QPID-1062: merge writes of separate frames within an assembly, use sync flag instead of sync command on message transfer
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@663813 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/client')
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java24
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpidity/nclient/Session.java2
2 files changed, 18 insertions, 8 deletions
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java b/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java
index 8f95c99ac6..0702a52783 100644
--- a/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java
+++ b/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java
@@ -206,16 +206,24 @@ public class BasicMessageProducer_0_10 extends BasicMessageProducer
// send the message
try
{
- ((AMQSession_0_10) getSession()).getQpidSession().messageTransfer(destination.getExchangeName().toString(),
- message.get010Message(),
- org.apache.qpidity.nclient.Session.TRANSFER_CONFIRM_MODE_NOT_REQUIRED,
- org.apache.qpidity.nclient.Session.TRANSFER_ACQUIRE_MODE_PRE_ACQUIRE);
- if(deliveryMode == DeliveryMode.PERSISTENT && getSession().getAMQConnection().getSyncPersistence())
+ org.apache.qpidity.nclient.Session ssn = ((AMQSession_0_10) getSession()).getQpidSession();
+
+ // if true, we need to sync the delivery of this message
+ boolean sync = (deliveryMode == DeliveryMode.PERSISTENT &&
+ getSession().getAMQConnection().getSyncPersistence());
+
+ if(sync)
{
- // we need to sync the delivery of this message
- ((AMQSession_0_10) getSession()).getQpidSession().sync();
+ ssn.setAutoSync(true);
+ }
+ ssn.messageTransfer(destination.getExchangeName().toString(),
+ message.get010Message(),
+ ssn.TRANSFER_CONFIRM_MODE_NOT_REQUIRED,
+ ssn.TRANSFER_ACQUIRE_MODE_PRE_ACQUIRE);
+ if (sync)
+ {
+ ssn.setAutoSync(false);
}
-
}
catch (IOException e)
{
diff --git a/qpid/java/client/src/main/java/org/apache/qpidity/nclient/Session.java b/qpid/java/client/src/main/java/org/apache/qpidity/nclient/Session.java
index c4d80e0fee..717ea43654 100644
--- a/qpid/java/client/src/main/java/org/apache/qpidity/nclient/Session.java
+++ b/qpid/java/client/src/main/java/org/apache/qpidity/nclient/Session.java
@@ -71,6 +71,8 @@ public interface Session
public byte[] getName();
+ public void setAutoSync(boolean value);
+
//------------------------------------------------------
// Messaging methods
// Producer