<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/qpid-python.git/qpid/java/client, branch perftesting</title>
<subtitle>git.apache.org: qpid.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/'/>
<entry>
<title>Fixed an error level that should be an info level</title>
<updated>2007-03-02T17:19:00+00:00</updated>
<author>
<name>Martin Ritchie</name>
<email>ritchiem@apache.org</email>
</author>
<published>2007-03-02T17:19:00+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=a05ba7b4e07291e22a57f0342bf933b704ef71b8'/>
<id>a05ba7b4e07291e22a57f0342bf933b704ef71b8</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@513851 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@513851 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-308</title>
<updated>2007-03-02T16:37:28+00:00</updated>
<author>
<name>Martin Ritchie</name>
<email>ritchiem@apache.org</email>
</author>
<published>2007-03-02T16:37:28+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=74e1b99486b47d788f193533c2f630f8ce5cbff3'/>
<id>74e1b99486b47d788f193533c2f630f8ce5cbff3</id>
<content type='text'>
Broker:
AMQStateManager - Added extra logging to keep track of what is going on as the findStateTransitionHandler is recursive.

Client:
AMQConnection - Comment Changes. Added timeouts to connections.
AMQSession - Added timeout on closure
FailoverHandler - Comment changes and adjusted logging
AMQProtocolHandler - Comments changed and added timeouts to the syncwait calls.
AMQProtocolSession - Added timeouts to writeFrame joins.
BlockingMethodFrameListener - Added timeouts to blockFrame waits.
AMQStateManager - Added additional logging
ResetMessageListenerTest - Fixed logging level on a single log line.

Created ManualTests
Added MessageAgeAlert test case supplied by customer.

MessageRequeueTest - Moved QpidClientConnection to its own class
QpidClientConnection - Added based on a class from a customer.

AMQTimeoutException - Added new exception based on timeouts
AMQConstant - Added timeout constant
AMQQueueAlertTest - adjusted values as my dual core would fail occasionally.
BrokerFillMemoryRun - added test to fill the broker's memory.

git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@513835 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Broker:
AMQStateManager - Added extra logging to keep track of what is going on as the findStateTransitionHandler is recursive.

Client:
AMQConnection - Comment Changes. Added timeouts to connections.
AMQSession - Added timeout on closure
FailoverHandler - Comment changes and adjusted logging
AMQProtocolHandler - Comments changed and added timeouts to the syncwait calls.
AMQProtocolSession - Added timeouts to writeFrame joins.
BlockingMethodFrameListener - Added timeouts to blockFrame waits.
AMQStateManager - Added additional logging
ResetMessageListenerTest - Fixed logging level on a single log line.

Created ManualTests
Added MessageAgeAlert test case supplied by customer.

MessageRequeueTest - Moved QpidClientConnection to its own class
QpidClientConnection - Added based on a class from a customer.

AMQTimeoutException - Added new exception based on timeouts
AMQConstant - Added timeout constant
AMQQueueAlertTest - adjusted values as my dual core would fail occasionally.
BrokerFillMemoryRun - added test to fill the broker's memory.

git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@513835 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>Reverted change in position of closing consumers.</title>
<updated>2007-02-14T10:00:57+00:00</updated>
<author>
<name>Martin Ritchie</name>
<email>ritchiem@apache.org</email>
</author>
<published>2007-02-14T10:00:57+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=872e1d208f7bbcac43cd4862041d01b95c76ebbd'/>
<id>872e1d208f7bbcac43cd4862041d01b95c76ebbd</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@507460 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@507460 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-346 Message loss after rollback/recover</title>
<updated>2007-02-14T09:11:43+00:00</updated>
<author>
<name>Martin Ritchie</name>
<email>ritchiem@apache.org</email>
</author>
<published>2007-02-14T09:11:43+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=a7d8cbbde94ceecbb9795ff36dfdfd9ab994bbd4'/>
<id>a7d8cbbde94ceecbb9795ff36dfdfd9ab994bbd4</id>
<content type='text'>
Added real world test case. Which doesn't reliably catch error.

Contrived case to follow

git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@507446 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added real world test case. Which doesn't reliably catch error.

Contrived case to follow

git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@507446 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-346 Message loss after rollback/recover</title>
<updated>2007-02-14T08:21:37+00:00</updated>
<author>
<name>Martin Ritchie</name>
<email>ritchiem@apache.org</email>
</author>
<published>2007-02-14T08:21:37+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=c5b44d59395ba7ebe8c84ce6461c4e39a0e5b99a'/>
<id>c5b44d59395ba7ebe8c84ce6461c4e39a0e5b99a</id>
<content type='text'>
Messages were still occasionally being sent twice.
AMQChannel - added trace level logging that will show an error if the same message is attempted to be sent to the same client.
AMQMessage - Remove logic that says the same subscriber can take always 'take' the message.
SubscriptionImpl - Release message when it is put back on to the resendQueue this will allow it to be re-'taken'
AMQSession - Added method to Dispatcher to clean up incomming _queue to try and prevent messages arriving for closed consumers.
BasicMessageConsumer - added comments

git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@507433 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Messages were still occasionally being sent twice.
AMQChannel - added trace level logging that will show an error if the same message is attempted to be sent to the same client.
AMQMessage - Remove logic that says the same subscriber can take always 'take' the message.
SubscriptionImpl - Release message when it is put back on to the resendQueue this will allow it to be re-'taken'
AMQSession - Added method to Dispatcher to clean up incomming _queue to try and prevent messages arriving for closed consumers.
BasicMessageConsumer - added comments

git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@507433 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed Xmx value</title>
<updated>2007-02-12T11:03:12+00:00</updated>
<author>
<name>Martin Ritchie</name>
<email>ritchiem@apache.org</email>
</author>
<published>2007-02-12T11:03:12+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=01b4cfa2d93ba951d0983bc4cd4b94dd87ea9400'/>
<id>01b4cfa2d93ba951d0983bc4cd4b94dd87ea9400</id>
<content type='text'>
ConcurrentSelectorDeliveryManager : Added trace logging. Ensured messages are removed when required, rather than leaking memory.
AMQSession moved exceptions in recover to wrap method rather than individual suspend calls.

git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@506413 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ConcurrentSelectorDeliveryManager : Added trace logging. Ensured messages are removed when required, rather than leaking memory.
AMQSession moved exceptions in recover to wrap method rather than individual suspend calls.

git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@506413 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-346 Message loss after rollback</title>
<updated>2007-02-12T08:11:06+00:00</updated>
<author>
<name>Martin Ritchie</name>
<email>ritchiem@apache.org</email>
</author>
<published>2007-02-12T08:11:06+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=01b7da2d4ec8dfc1b2529f66e8e30d417822ca44'/>
<id>01b7da2d4ec8dfc1b2529f66e8e30d417822ca44</id>
<content type='text'>
Fixed an error in one the putAndRollBack test.

git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@506364 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixed an error in one the putAndRollBack test.

git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@506364 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-346 Message loss after rollback</title>
<updated>2007-02-09T17:22:52+00:00</updated>
<author>
<name>Martin Ritchie</name>
<email>ritchiem@apache.org</email>
</author>
<published>2007-02-09T17:22:52+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=6cd0f76071f6e664882e0fd7980087db5ec56b8b'/>
<id>6cd0f76071f6e664882e0fd7980087db5ec56b8b</id>
<content type='text'>
QPID-347 Connection closure results in undelivered messages remaining 'taken()' and so never re-delivered.
QPID-348 Problems of prefetching messages
QPID-355 Closing a consumer does not ensure messages delivery will stop for that subscription  

Most changes are related to QPID-346,QPID-348,QPID-355

Broker
------

Adjusted broker log4j.xml to provide a more reasonable output.

AMQChannel - resend() modified to use the DeliveryManager to resend messages so ordering is preserved and higher priority messaes can be so prioritised. 
   - requeue/resend adjusted to release() messages QPID-347 

BasicRecoverMethodHandler - updated to make use of requeue flag ... needs testing though it is same code as Rollback. Method now sends back the synchronous Recover-Ok

TxRollbackHandler - This now calls resend() to put all messages sent back on subscriptions resendQueue. This currently assumes that you are suspended as otherwise you will start to receive the resent messages before the RollbackOk method.

AMQMinaProtocolSession - getChannel() from the interface says to return null if channelId cannot be found. However, in most cases this is not checked to be null and in the few places it is checked a AMQE is thrown. Consistency here would be good I have changed this method to throw AMQException directly but we should be clear why we were returning null. NPEs could occur in an error situation.
 - also white space changes

AMQQueue - Changed previous change to subscription creation to pass in the AMQQueue to the subscription rather than the DeliveryManager this allows the messages stored on the resendQueue to be delivered to the queue during closure.
Added method to allow a subscription to say that it is containing data for the queue.

DeliveryManager - Added method to allow the Subscription call through the AMQQueue to specify that it is holding content that should stop the queue being marked as empty.

ConcurrentSelectorDeliveryManager - Added locking with the subscription to ensure that if there is a resendQueue in use then only one thread is processing it at once. Without this the AsyncDelivery thread and the io thread closing the subscription can both process _resendQueue. This results in a message being dupicated and the next message on the queue being lost. As the AsyncDelivery thread peeks the queue, ensures the message is sent then poll()s it. While the io-closing thread poll()s the message and delivers it to the queue. So the AsyncDelivery thread will remove the next message in the queue by mistake with it's poll() call.
+implemented new features in DeliveryManager
+wrapped loging in if&lt;level&gt;Enable added some extra trace logs.

Subscription - added method to get sendLock.

SubscriptionFactory - changes as said above from AMQChannel, changed DeliveryManager to AMQQueue in subscription constructor.

SubscriptionImpl - Changes for new constructor.
+ Changed suspension notion to suspend the subscription whilst messages are being resent from the resendQueue to the main AMQQueue this only occurs during closure so this is a good thing as the messages would just come back when the consumer finally closes. QPID-355
+ Implemented requeue of messages during message closure. QPID-355
+ Changed hard-coded value of false for msg.redelivered to use the acutal value stored in the message.

SubscriptionSet - formatting

Client
------
AMQSession - Changed the implementation of recover() to be synchronous on Recover-Ok and perform the correct clean up. Whilst the session is suspended.

CommitRollbackTest - Added to confirm changes work. (Updated from previous commit)
    testPutThenRollback() - checks redelivered flag
   testRollbackWithConsumerConnectionClose() -
     Test that Closing a consumer and then connection while messages are being resent from a rolling back get correctly requeued a session purges the dispatcher queue, and the messages arrive in the correct order
 
    testRollbackWithConsumerAndSessionClose()-
    Test that Closing a consumer and then session while messags are being resent from a rollback get correctly requeued, a session purges the dispatcher queue, and the messages arrive in the correct order


Cluster
-------
SubscriptionTestHelper/RemoteSubscriptionImpl - null implementation of Subscription interface sendLock()

amqp.0-8.xml - spec change. to add Recover-ok

git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@505383 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
QPID-347 Connection closure results in undelivered messages remaining 'taken()' and so never re-delivered.
QPID-348 Problems of prefetching messages
QPID-355 Closing a consumer does not ensure messages delivery will stop for that subscription  

Most changes are related to QPID-346,QPID-348,QPID-355

Broker
------

Adjusted broker log4j.xml to provide a more reasonable output.

AMQChannel - resend() modified to use the DeliveryManager to resend messages so ordering is preserved and higher priority messaes can be so prioritised. 
   - requeue/resend adjusted to release() messages QPID-347 

BasicRecoverMethodHandler - updated to make use of requeue flag ... needs testing though it is same code as Rollback. Method now sends back the synchronous Recover-Ok

TxRollbackHandler - This now calls resend() to put all messages sent back on subscriptions resendQueue. This currently assumes that you are suspended as otherwise you will start to receive the resent messages before the RollbackOk method.

AMQMinaProtocolSession - getChannel() from the interface says to return null if channelId cannot be found. However, in most cases this is not checked to be null and in the few places it is checked a AMQE is thrown. Consistency here would be good I have changed this method to throw AMQException directly but we should be clear why we were returning null. NPEs could occur in an error situation.
 - also white space changes

AMQQueue - Changed previous change to subscription creation to pass in the AMQQueue to the subscription rather than the DeliveryManager this allows the messages stored on the resendQueue to be delivered to the queue during closure.
Added method to allow a subscription to say that it is containing data for the queue.

DeliveryManager - Added method to allow the Subscription call through the AMQQueue to specify that it is holding content that should stop the queue being marked as empty.

ConcurrentSelectorDeliveryManager - Added locking with the subscription to ensure that if there is a resendQueue in use then only one thread is processing it at once. Without this the AsyncDelivery thread and the io thread closing the subscription can both process _resendQueue. This results in a message being dupicated and the next message on the queue being lost. As the AsyncDelivery thread peeks the queue, ensures the message is sent then poll()s it. While the io-closing thread poll()s the message and delivers it to the queue. So the AsyncDelivery thread will remove the next message in the queue by mistake with it's poll() call.
+implemented new features in DeliveryManager
+wrapped loging in if&lt;level&gt;Enable added some extra trace logs.

Subscription - added method to get sendLock.

SubscriptionFactory - changes as said above from AMQChannel, changed DeliveryManager to AMQQueue in subscription constructor.

SubscriptionImpl - Changes for new constructor.
+ Changed suspension notion to suspend the subscription whilst messages are being resent from the resendQueue to the main AMQQueue this only occurs during closure so this is a good thing as the messages would just come back when the consumer finally closes. QPID-355
+ Implemented requeue of messages during message closure. QPID-355
+ Changed hard-coded value of false for msg.redelivered to use the acutal value stored in the message.

SubscriptionSet - formatting

Client
------
AMQSession - Changed the implementation of recover() to be synchronous on Recover-Ok and perform the correct clean up. Whilst the session is suspended.

CommitRollbackTest - Added to confirm changes work. (Updated from previous commit)
    testPutThenRollback() - checks redelivered flag
   testRollbackWithConsumerConnectionClose() -
     Test that Closing a consumer and then connection while messages are being resent from a rolling back get correctly requeued a session purges the dispatcher queue, and the messages arrive in the correct order
 
    testRollbackWithConsumerAndSessionClose()-
    Test that Closing a consumer and then session while messags are being resent from a rollback get correctly requeued, a session purges the dispatcher queue, and the messages arrive in the correct order


Cluster
-------
SubscriptionTestHelper/RemoteSubscriptionImpl - null implementation of Subscription interface sendLock()

amqp.0-8.xml - spec change. to add Recover-ok

git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@505383 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-</title>
<updated>2007-02-08T13:38:37+00:00</updated>
<author>
<name>Martin Ritchie</name>
<email>ritchiem@apache.org</email>
</author>
<published>2007-02-08T13:38:37+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=208e8a556d64a717c9fec9e49354d6e5c69bbaac'/>
<id>208e8a556d64a717c9fec9e49354d6e5c69bbaac</id>
<content type='text'>
Broker

AMQChannel - Resend modified to add messages to Subscription resendQueue.
BasicRecoverMethodHandler - Now makes use of the Requeue boolean (needs test case, but is same logic as TxRollback)
TxRollbackHandler - Removed protocol Session from AMQChannel.resend()
AMQMessage - Changes comments, updated taken() to record the subscription that took the message 
AMQQueue - Added DeliveryManager to Subscription constructors.
ConcurrentSelectorDeliveryManager - updated to get queue from Subscription and to know when the Subscriptions have content that needs Async delivery.

DeliveryManager - added update method to allow a subscription to tell DM it has content to send.
Subscription - new methods to handle resendQueue
SubscriptionFactory - changes to pass in the DeliveryManager
SubscriptionImpl - Comment changes, Constructor changes, implmentations of interface

Client

Recover and TxRollback now perform their broker methods while suspended.

RecoverTest - Added addition asserts to prevent NPEs
CommitRollbackTest - word change
RemoteSubscriptionImpl/SubscriptionTestHelper - Subscription implementation
AckTest - Update for new SubscriptionImpl constructor



git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@504887 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Broker

AMQChannel - Resend modified to add messages to Subscription resendQueue.
BasicRecoverMethodHandler - Now makes use of the Requeue boolean (needs test case, but is same logic as TxRollback)
TxRollbackHandler - Removed protocol Session from AMQChannel.resend()
AMQMessage - Changes comments, updated taken() to record the subscription that took the message 
AMQQueue - Added DeliveryManager to Subscription constructors.
ConcurrentSelectorDeliveryManager - updated to get queue from Subscription and to know when the Subscriptions have content that needs Async delivery.

DeliveryManager - added update method to allow a subscription to tell DM it has content to send.
Subscription - new methods to handle resendQueue
SubscriptionFactory - changes to pass in the DeliveryManager
SubscriptionImpl - Comment changes, Constructor changes, implmentations of interface

Client

Recover and TxRollback now perform their broker methods while suspended.

RecoverTest - Added addition asserts to prevent NPEs
CommitRollbackTest - word change
RemoteSubscriptionImpl/SubscriptionTestHelper - Subscription implementation
AckTest - Update for new SubscriptionImpl constructor



git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@504887 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>Added guards to debug and trace statements noted during debuging.</title>
<updated>2007-02-07T15:43:33+00:00</updated>
<author>
<name>Martin Ritchie</name>
<email>ritchiem@apache.org</email>
</author>
<published>2007-02-07T15:43:33+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=3b6459da09f50e039ba79fabd5da19c3b2cab1f5'/>
<id>3b6459da09f50e039ba79fabd5da19c3b2cab1f5</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@504596 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/perftesting@504596 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
</feed>
