<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Calibri" size="3"><span style="font-size:12pt;">
<div>Hello,</div>
<div> </div>
<div>I’m using the .NET client and attempting to get performance from using PublishConfirms. To date, I don’t see much performance over using the txConfirm model though. Hence, I’m wondering if I’m doing something wrong.</div>
<div> </div>
<div>I’m creating the Connection and Model and then calling ConfirmSelect()</div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div>Then in a tight loop, I’m publishing messages like so:</div>
<div style="padding-left:108pt;"><font face="Consolas" size="2" color="blue"><span style="font-size:9.5pt;">  lock<font color="black"> (</font>this<font color="black">.activeMessagesLock)</font></span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                        {</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                            <font color="blue">var</font> deliveryTag = 0UL;</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                            deliveryTag = <font color="blue">this</font>.model.NextPublishSeqNo;</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;"> </span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                            <font color="blue">this</font>.model.BasicPublish(</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                                <font color="blue">this</font>.exchangeName,</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                                message.Header.Topic,</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                                <font color="blue">this</font>.properties.Durable,</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                                <font color="blue">false</font>,</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                                messageProperties,</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                                body);</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;"> </span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                            <font color="blue">this</font>.activeMessages[deliveryTag] = message;</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                        }</span></font></div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div>On the consumer side I’m doing the following for receiving the messages:</div>
<div> </div>
<div style="text-indent:36pt;padding-left:36pt;"><font face="Consolas" size="2"><span style="font-size:9.5pt;">  consumerModel = <font color="blue">this</font>.connection.CreateModel();</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                consumerModel.BasicQos(0, 1, <font color="blue">false</font>);</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                <font color="blue">var</font> consumer = <font color="blue">new</font> <font color="#2B91AF">QueueingBasicConsumer</font>(consumerModel);</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;"> </span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                <font color="blue">var</font> consumerTag = consumerModel.BasicConsume(</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                    <font color="blue">this</font>.queueName,<font color="blue">true</font>,</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                    consumer);</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;"> </span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                <font color="blue">while</font> (<font color="blue">true</font>)</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                {</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                            <font color="#2B91AF">BasicDeliverEventArgs</font> item = <font color="blue">null</font>;</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                        <font color="blue">if</font> (!consumer.Queue.Dequeue(3000, <font color="blue">out</font> item))</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                        {</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                            <font color="blue">if</font> (<font color="blue">this</font>.terminateThreadConsume.WaitOne(0))</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                            {</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                                connectionClosed = <font color="blue">true</font>;</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                                <font color="blue">break</font>;</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                            }</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;"> </span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                            <font color="blue">continue</font>;</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                        }</span></font></div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div style="text-indent:36pt;padding-left:72pt;"><font face="Consolas" size="2" color="blue"><span style="font-size:9.5pt;">   if<font color="black"> (</font>null<font color="black"> == item)</font></span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                        {</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                          <font color="blue">continue</font>;</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                        }</span></font></div>
<div><font face="Consolas" size="2"><span style="font-size:9.5pt;">                      consumerModel.BasicAck(item.DeliveryTag, <font color="blue">true</font>);</span></font></div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font size="2"><span style="font-size:11pt;">                <font size="3"><span style="font-size:12pt;">}</span></font></span></font></div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font size="2"><span style="font-size:11pt;">Unfortunately this is really slow.  Is there some property I’m missing that I can use to increase performance?  Since I’m setting the “multiple” flag to True in the BasicAck, I tried to call that on every 100
or 1000<font size="1"><span style="font-size:7.3pt;"><sup>th</sup></span></font> message….but I found if an ack isn’t sent, I’m not allowed to read another message off the queue.</span></font></div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font size="2"><span style="font-size:11pt;">Thanks</span></font></div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Times New Roman"><br>

<br>

<font face="Arial" size="1" color="#1F497D"><span style="font-size:7.5pt;">Confidentiality Notice: This email and any attachments are confidential. If you have received this in error, please let us know by email reply and delete the email and all attachments
from your system.</span></font> </font></div>
</span></font>
</body>
</html>