qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alan Conway" <acon...@redhat.com>
Subject Review Request 28209: QPID-4710: [AMQP 1.0] Support for transactions in qpid.messaging C++ client.
Date Wed, 19 Nov 2014 02:57:33 GMT

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/28209/
-----------------------------------------------------------

Review request for qpid and Gordon Sim.


Repository: qpid


Description
-------

My tests that roll back are failing, messages acquired during tx are not being put back on
queues. I can see from logs that Transaction::discharge is being called and is doing the pn_delivery_update()
calls, and that there is a driver wakeup after that, but there are no -> @dispositions
leaving from the client. I can see dispositions being sent by the client when the messages
are acknowledged within the transaction, and the code looks similar so I'm not sure why they
are not being sent at discharge.

(The locking between ConnectionContext and Transaction is screwed up, I know that & will
fix)

Summary of changes:

Added descriptor list to Variant and support in Encoder. Variant changes are source and binary
compatible.

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.

QPID-4710: [AMQP 1.0] Support for transactions in qpid.messaging C++ client.

- interop_tests.py: transaction tests that can be run against any broker (env QPID_INTEROP_URL)
- messaging/amqp/Transaction.h,cpp: transaction logic
  - communicate with coordinator, send declare/dischange messages.
  - add tx state info to transfers and acknowledgements.
- Misc. improvements to logging


Diffs
-----

  trunk/qpid/cpp/include/qpid/types/Variant.h 1640198 
  trunk/qpid/cpp/src/amqp.cmake 1640198 
  trunk/qpid/cpp/src/qpid/amqp/CharSequence.cpp 1640198 
  trunk/qpid/cpp/src/qpid/amqp/Descriptor.h 1640198 
  trunk/qpid/cpp/src/qpid/amqp/Descriptor.cpp 1640198 
  trunk/qpid/cpp/src/qpid/amqp/Encoder.h 1640198 
  trunk/qpid/cpp/src/qpid/amqp/Encoder.cpp 1640198 
  trunk/qpid/cpp/src/qpid/amqp/descriptors.h 1640198 
  trunk/qpid/cpp/src/qpid/broker/Queue.cpp 1640198 
  trunk/qpid/cpp/src/qpid/broker/TxDequeue.cpp 1640198 
  trunk/qpid/cpp/src/qpid/broker/amqp/Connection.cpp 1640198 
  trunk/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp 1640198 
  trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1640198 
  trunk/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp 1640198 
  trunk/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.h 1640198 
  trunk/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp 1640198 
  trunk/qpid/cpp/src/qpid/messaging/amqp/PnData.h 1640198 
  trunk/qpid/cpp/src/qpid/messaging/amqp/PnData.cpp 1640198 
  trunk/qpid/cpp/src/qpid/messaging/amqp/SenderContext.h 1640198 
  trunk/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp 1640198 
  trunk/qpid/cpp/src/qpid/messaging/amqp/SenderHandle.cpp 1640198 
  trunk/qpid/cpp/src/qpid/messaging/amqp/SessionContext.h 1640198 
  trunk/qpid/cpp/src/qpid/messaging/amqp/SessionContext.cpp 1640198 
  trunk/qpid/cpp/src/qpid/messaging/amqp/SessionHandle.cpp 1640198 
  trunk/qpid/cpp/src/qpid/messaging/amqp/Transaction.h PRE-CREATION 
  trunk/qpid/cpp/src/qpid/messaging/amqp/Transaction.cpp PRE-CREATION 
  trunk/qpid/cpp/src/qpid/types/Variant.cpp 1640198 
  trunk/qpid/cpp/src/qpid/types/encodings.h 1640198 
  trunk/qpid/cpp/src/tests/Variant.cpp 1640198 
  trunk/qpid/cpp/src/tests/brokertest.py 1640198 
  trunk/qpid/cpp/src/tests/ha_tests.py 1640198 
  trunk/qpid/cpp/src/tests/interop_tests.py PRE-CREATION 

Diff: https://reviews.apache.org/r/28209/diff/


Testing
-------


Thanks,

Alan Conway


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message