<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/qpid-python.git/qpid/cpp/src/tests/brokertest.py, branch QPID-6262-JavaBrokerNIO</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>QPID-4710: adjust version checking used by new tx interop tests so as not to fail existing tests when either ptoron python lib is not on path or is 0.7 or earlier</title>
<updated>2015-03-04T21:02:16+00:00</updated>
<author>
<name>Gordon Sim</name>
<email>gsim@apache.org</email>
</author>
<published>2015-03-04T21:02:16+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=e2e5605ff0f0597bbb2a596ae2c9e0dc54aef7f0'/>
<id>e2e5605ff0f0597bbb2a596ae2c9e0dc54aef7f0</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1664144 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/qpid/trunk@1664144 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-4710: [AMQP 1.0] Support for transactions in qpid::messaging C++ client.</title>
<updated>2015-02-27T16:37:06+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2015-02-27T16:37: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=3aaa53e9103b6019c9e31d15186b12a95a1993be'/>
<id>3aaa53e9103b6019c9e31d15186b12a95a1993be</id>
<content type='text'>
Implements the "transactional retire and settle immediately" option for
transactions as specified in AMQP 1.0 in the qpid::messaging C++ client.

NOTE: Transactions over AMQP 1.0 require proton 0.9 or greater.  With older
versions, attempting a transactions over AMQP 1.0 will raise a link-detached
exception "Node not found: tx-transaction"

1. Added descriptor list to Variant with support in Encoder and PnData.

Required to support transactions, need to be able to create described lists.
Variant changes are source and binary compatible.

A Variant now has a Variant::List of descripors which can be numeric or string.
Nested descriptors are implemented by putting multiple descriptors in the list.

Other minor changes:
- Variant refactor: don't delete impl on every assignment.
- Add Variant constructors that take a string encoding.
  (new constructors, not defaulted arguments, so the change is binary and source compatible.)
- Growable buffer support for Encoder.
- Printing described Variant prints descriptors in form @descriptor value

2. Added transaction support to AMQP 1.0 client code

Added messaging/amqp/Transaction.h,cpp: transaction logic
- communicate with coordinator, send declare/dischange messages.
- add tx state info to transfers and acknowledgements.
- Sync session after discharge.
- A transactional session automatically acks any message retrieved by fetch/get
  to bring them into the transaction. This is consistent the 0-10 client.

Minor fixes to existing client code:
- Fix use of pn_drain API in C++ client to work with C++ and Java brokers.
- Make amqp::Exception derive from qpid::Exception

3. Fixes to existing broker code:

- Incoming.cpp fix: start async completion before processing message.
- Delay accept of dischage message till commit is complete.
- newSession - handle failover during session creation.

4. Added tests

interop_tests.py: transaction tests that can run against an external broker, see comments.

ha_tests.py: Enable transaction tests over AMQP 1.0.

Minor test fixes:
- brokertest.py don't set default logging if QPID_LOG env vars set.
- brokertest.py Pass kwargs to broker() create function.
- qpid-receive: capacity should never be larger than message count.
- Accept user:pass as well as user/pass in Url.
- brokertest.py: Always do a ready() check on all brokers.

If proton &lt; 0.9 is used, transaction tests will be skipped or will downgrade to
the amqp0-10 protocol with a printed warning.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1662743 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implements the "transactional retire and settle immediately" option for
transactions as specified in AMQP 1.0 in the qpid::messaging C++ client.

NOTE: Transactions over AMQP 1.0 require proton 0.9 or greater.  With older
versions, attempting a transactions over AMQP 1.0 will raise a link-detached
exception "Node not found: tx-transaction"

1. Added descriptor list to Variant with support in Encoder and PnData.

Required to support transactions, need to be able to create described lists.
Variant changes are source and binary compatible.

A Variant now has a Variant::List of descripors which can be numeric or string.
Nested descriptors are implemented by putting multiple descriptors in the list.

Other minor changes:
- Variant refactor: don't delete impl on every assignment.
- Add Variant constructors that take a string encoding.
  (new constructors, not defaulted arguments, so the change is binary and source compatible.)
- Growable buffer support for Encoder.
- Printing described Variant prints descriptors in form @descriptor value

2. Added transaction support to AMQP 1.0 client code

Added messaging/amqp/Transaction.h,cpp: transaction logic
- communicate with coordinator, send declare/dischange messages.
- add tx state info to transfers and acknowledgements.
- Sync session after discharge.
- A transactional session automatically acks any message retrieved by fetch/get
  to bring them into the transaction. This is consistent the 0-10 client.

Minor fixes to existing client code:
- Fix use of pn_drain API in C++ client to work with C++ and Java brokers.
- Make amqp::Exception derive from qpid::Exception

3. Fixes to existing broker code:

- Incoming.cpp fix: start async completion before processing message.
- Delay accept of dischage message till commit is complete.
- newSession - handle failover during session creation.

4. Added tests

interop_tests.py: transaction tests that can run against an external broker, see comments.

ha_tests.py: Enable transaction tests over AMQP 1.0.

Minor test fixes:
- brokertest.py don't set default logging if QPID_LOG env vars set.
- brokertest.py Pass kwargs to broker() create function.
- qpid-receive: capacity should never be larger than message count.
- Accept user:pass as well as user/pass in Url.
- brokertest.py: Always do a ready() check on all brokers.

If proton &lt; 0.9 is used, transaction tests will be skipped or will downgrade to
the amqp0-10 protocol with a printed warning.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1662743 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-6414: Skip HA tests if qpid-ha or qpid-config tools are not available.</title>
<updated>2015-02-25T17:17:15+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2015-02-25T17:17:15+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=e0c7ce135bf77cd98ecdd25b668fbc7140e82b20'/>
<id>e0c7ce135bf77cd98ecdd25b668fbc7140e82b20</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1662275 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/qpid/trunk@1662275 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>NO-JIRA: Use absolute path for store directory in brokertest.py</title>
<updated>2014-11-27T23:14:18+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2014-11-27T23:14:18+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=cf7e1f12ee750956d5b0fe55a27285a559a71799'/>
<id>cf7e1f12ee750956d5b0fe55a27285a559a71799</id>
<content type='text'>
Recent store changes broke the use of a relative directory as data-dir.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1642246 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Recent store changes broke the use of a relative directory as data-dir.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1642246 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>NO-JIRA: brokertest.py: don't use AMQP 1.0 if not available, ignore connection close teardown errors.</title>
<updated>2014-08-28T21:47:50+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2014-08-28T21:47:50+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=32e6b7d4d609f5c54a57bd663fffd445860f52cd'/>
<id>32e6b7d4d609f5c54a57bd663fffd445860f52cd</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1621212 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/qpid/trunk@1621212 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>NO-JIRA: Clean up test_store.cpp async functionality.</title>
<updated>2014-08-22T14:13:09+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2014-08-22T14:13:09+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=dee3a10e026896da06ff178335c0b3f86a7e6604'/>
<id>dee3a10e026896da06ff178335c0b3f86a7e6604</id>
<content type='text'>
Clean up test_store.cpp to allow control over async completion of messsages.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1619814 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Clean up test_store.cpp to allow control over async completion of messsages.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1619814 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-5966: HA mixing tx enqueue and non-tx dequeue leaves extra messages on backup.</title>
<updated>2014-08-08T09:24:15+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2014-08-08T09:24:15+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=2602ecaf16a3ddf424383214da2ea846634c083f'/>
<id>2602ecaf16a3ddf424383214da2ea846634c083f</id>
<content type='text'>
There were several problems:

1. Positions of transactionally enqueued messages not known to QueueReplicator, so not dequeued
   on backup if dequeued outside a TX on primary.

2. Race condition if tx created immediately after queue could cause duplication of TX message.

3. Replication IDs were not being set during recovery from store (regression, store change?)

Fix:

1. Update positions QueueReplicator positions via QueueObserver::enqueued to see all enqueues.
2. Check for duplicate replication-ids on backup in QueueReplicator::route.
3. Set replication-id in publish() if not already set in record().

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1616704 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There were several problems:

1. Positions of transactionally enqueued messages not known to QueueReplicator, so not dequeued
   on backup if dequeued outside a TX on primary.

2. Race condition if tx created immediately after queue could cause duplication of TX message.

3. Replication IDs were not being set during recovery from store (regression, store change?)

Fix:

1. Update positions QueueReplicator positions via QueueObserver::enqueued to see all enqueues.
2. Check for duplicate replication-ids on backup in QueueReplicator::route.
3. Set replication-id in publish() if not already set in record().

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1616704 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>[no JIRA]: brokertest to set connection option 'protocol' only for SWIG client on AMQP1.0</title>
<updated>2014-06-26T08:41:05+00:00</updated>
<author>
<name>Pavel Moravec</name>
<email>pmoravec@apache.org</email>
</author>
<published>2014-06-26T08:41:05+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=d88f8f4b8996c4eb27627ca2810cf0231e7c0229'/>
<id>d88f8f4b8996c4eb27627ca2810cf0231e7c0229</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1605703 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/qpid/trunk@1605703 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>NO-JIRA: HA fix hanging ha_tests.test_failover_send_receive on RHEL5</title>
<updated>2014-05-01T22:20:26+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2014-05-01T22:20:26+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=e57cd3393b842e40f9da989ab4d60142682ba73e'/>
<id>e57cd3393b842e40f9da989ab4d60142682ba73e</id>
<content type='text'>
The test was hanging because of a python construct not available in 2.4.  It was
causing an exception in a strange place because this bit of code was imported at
runtime, and that was hanging the test. Fixed and did some cleanup
to avoid such mysterious hangs in future:

- Fixed qpidtoollibs/config.py to work with python 2.4.
- Import qpid-ha script at import time rather than runtime.
- Fix Popen.teardown logic to avoid hanging if a process can't be killed.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1591794 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The test was hanging because of a python construct not available in 2.4.  It was
causing an exception in a strange place because this bit of code was imported at
runtime, and that was hanging the test. Fixed and did some cleanup
to avoid such mysterious hangs in future:

- Fixed qpidtoollibs/config.py to work with python 2.4.
- Import qpid-ha script at import time rather than runtime.
- Fix Popen.teardown logic to avoid hanging if a process can't be killed.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1591794 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-5720: HA exception raised by the store for durable transactions</title>
<updated>2014-04-23T21:11:08+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2014-04-23T21:11:08+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=8e0913a48177df57c4e0312bcfb7c5ee8dcdb327'/>
<id>8e0913a48177df57c4e0312bcfb7c5ee8dcdb327</id>
<content type='text'>
Running qpid-txtest against a HA cluster was raising this exception:
async_dequeue() failed: jexception 0x0b02 wmgr::dequeue_check() threw JERR_MAP_LOCKED: Record ID locked by a pending transaction.

This is actually a test bug. In a cluster a transaction commit takes longer to
complete because of co-ordinating with backups, the test was not waiting for the
completion of commit command before proceeding. Adding a sync() in the test
solves the problem.  Note this test uses the old obsolete C++ API. Applications
written using the supported messaging API are not affected by this. This can be
verified using the qpid-send and qpid-receive clients with the --tx option
(there is already an automated test for this in ha_tests.py.)

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1589520 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Running qpid-txtest against a HA cluster was raising this exception:
async_dequeue() failed: jexception 0x0b02 wmgr::dequeue_check() threw JERR_MAP_LOCKED: Record ID locked by a pending transaction.

This is actually a test bug. In a cluster a transaction commit takes longer to
complete because of co-ordinating with backups, the test was not waiting for the
completion of commit command before proceeding. Adding a sync() in the test
solves the problem.  Note this test uses the old obsolete C++ API. Applications
written using the supported messaging API are not affected by this. This can be
verified using the qpid-send and qpid-receive clients with the --tx option
(there is already an automated test for this in ha_tests.py.)

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1589520 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
</feed>
