Programming in Apache Qpid

Cross-Platform AMQP Messaging in Java JMS, .NET, C++, and Python


Table of Contents

1. Introduction
2. Using the Qpid Messaging API
1. A Simple Messaging Program in C++
2. A Simple Messaging Program in Python
3. A Simple Messaging Program in .NET C#
4. Addresses
4.1. Address Strings
4.2. Subjects
4.3. Address String Options
4.4. Address String Grammar
5. Logging
5.1. Logging in C++
5.2. Logging in Python
6. Receiving Messages from Multiple Sources
7. Request / Response
8. Maps in Message Content
8.1. Qpid Maps in Python
8.2. Qpid Maps in C++
9. Performance
9.1. Batching Acknowledgements
9.2. Prefetch
9.3. Sizing the Replay Buffer
10. Reliability
10.1. Reconnect
10.2. Guaranteed Delivery
10.3. Reliability Options in Senders and Receivers
10.4. Cluster Failover
11. Security
12. Transactions
13. The AMQP 0-10 mapping
3. Using the Qpid JMS client
1. A Simple Messaging Program in Java JMS
2. Apache Qpid JNDI Properties for AMQP Messaging
2.1. JNDI Properties for Apache Qpid
2.2. Connection URLs
3. Java JMS Message Properties
4. JMS MapMessage Types
5. JMS Client Logging
4. Using the Qpid WCF client
1. XML and Binary Bindings
2. Endpoints
3. Message Headers
4. Security
5. Transactions

List of Tables

2.1. Address String Options
2.2. Node Properties
2.3. Link Properties
2.4. Python Datatypes in Maps
2.5. C++ Datatypes in Maps
2.6. Connection Options
2.7. SSL Client Environment Variables for C++ clients
2.8. Mapping to AMQP 0-10 Message Properties
3.1. JNDI Properties supported by Apache Qpid
3.2. Connection URL Properties
3.3. Broker List Options
3.4. Java JMS Mapping to AMQP 0-10 Message Properties
3.5. Java Datatypes in Maps
4.1. WCF Binding Parameters

List of Examples

2.1. "Hello world!" in C++
2.2. "Hello world!" in Python
2.3. "Hello world!" in .NET C#
2.4. Queues
2.5. Topics
2.6. Using subjects
2.7. Subjects with multi-word keys
2.8. Assertions on Nodes
2.9. Creating a Queue Automatically
2.10. Browsing a Queue
2.11. Using the XML Exchange
2.12. Receiving Messages from Multiple Sources
2.13. Request / Response Applications in C++
2.14. Sending Qpid Maps in Python
2.15. Sending Qpid Maps in C++
2.16. Prefetch
2.17. Sizing the Replay Buffer
2.18. Specifying Connection Options in C++ and Python
2.19. Guaranteed Delivery
2.20. Cluster Failover in C++
2.21. Transactions
3.1. JNDI Properties File for "Hello world!" example
3.2. "Hello world!" in Java
3.3. JNDI Properties File
3.4. Broker Lists
3.5. Sending a Java JMS MapMessage
3.6. log4j Logging Properties
4.1. Traditional service model "Hello world!" example
4.2. Binary "Hello world!" example using the channel model