diff options
| author | Rafael H. Schloming <rhs@apache.org> | 2008-06-06 03:39:03 +0000 |
|---|---|---|
| committer | Rafael H. Schloming <rhs@apache.org> | 2008-06-06 03:39:03 +0000 |
| commit | 0fb17bbed6930f3ec110bf87d5cd4f3b91e2bbc2 (patch) | |
| tree | e49e773c94e2e65b82fc83a5708646a59771d0db /qpid/java/client | |
| parent | e2cb0dd0e4a9fe86d5b7c6a3270f4fa5da80f43e (diff) | |
| download | qpid-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.java | 24 | ||||
| -rw-r--r-- | qpid/java/client/src/main/java/org/apache/qpidity/nclient/Session.java | 2 |
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 |
