You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2012/11/25 22:12:32 UTC
svn commit: r1413422 [14/19] - in /qpid/site/docs/books/0.20: ./
AMQP-Messaging-Broker-CPP-Book/ AMQP-Messaging-Broker-CPP-Book/html/
AMQP-Messaging-Broker-CPP-Book/html/css/
AMQP-Messaging-Broker-CPP-Book/html/images/
AMQP-Messaging-Broker-CPP-Book/pd...
Added: qpid/site/docs/books/0.20/AMQP-Messaging-Broker-Java-Book/html/images/HA-2N-SplitBrain.png
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.20/AMQP-Messaging-Broker-Java-Book/html/images/HA-2N-SplitBrain.png?rev=1413422&view=auto
==============================================================================
Binary file - no diff available.
Propchange: qpid/site/docs/books/0.20/AMQP-Messaging-Broker-Java-Book/html/images/HA-2N-SplitBrain.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: qpid/site/docs/books/0.20/AMQP-Messaging-Broker-Java-Book/html/images/HA-BDBHAMessageStore-MBean-jconsole.png
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.20/AMQP-Messaging-Broker-Java-Book/html/images/HA-BDBHAMessageStore-MBean-jconsole.png?rev=1413422&view=auto
==============================================================================
Binary file - no diff available.
Propchange: qpid/site/docs/books/0.20/AMQP-Messaging-Broker-Java-Book/html/images/HA-BDBHAMessageStore-MBean-jconsole.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: qpid/site/docs/books/0.20/AMQP-Messaging-Broker-Java-Book/html/images/HA-perftests-results.png
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.20/AMQP-Messaging-Broker-Java-Book/html/images/HA-perftests-results.png?rev=1413422&view=auto
==============================================================================
Binary file - no diff available.
Propchange: qpid/site/docs/books/0.20/AMQP-Messaging-Broker-Java-Book/html/images/HA-perftests-results.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: qpid/site/docs/books/0.20/AMQP-Messaging-Broker-Java-Book/html/index.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.20/AMQP-Messaging-Broker-Java-Book/html/index.html?rev=1413422&view=auto
==============================================================================
--- qpid/site/docs/books/0.20/AMQP-Messaging-Broker-Java-Book/html/index.html (added)
+++ qpid/site/docs/books/0.20/AMQP-Messaging-Broker-Java-Book/html/index.html Sun Nov 25 21:12:24 2012
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>AMQP Messaging Broker (Java)</title><link rel="stylesheet" href="css/style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"><link rel="start" href="index.html" title="AMQP Messaging Broker (Java)"><link rel="next" href="Java-Broker-Introduction.html" title="Chapter 1. Introduction"></head><body><div class="container" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><DIV class="header"><DIV class="logo"><H1>Apache Qpidâ¢</H1><H2>Open Source AMQP Messaging</H2></DIV></DIV><DIV class="menu_box"><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Apache Qpid</H3><UL><LI><A href="http://qpid.apache.org/index.html">Home</A></LI><LI><A href="http://qpid.apache.org/download.html">Download</A></LI><LI><A href="http://qpid.apache.org/getting_started.html">Getting Started</A></LI><LI><A href="http://www.apache.org/lic
enses/">License</A></LI><LI><A href="https://cwiki.apache.org/qpid/faq.html">FAQ</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Documentation</H3><UL><LI><A href="http://qpid.apache.org/documentation.html#doc-release">Latest Release</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-trunk">Trunk</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-archives">Archive</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Community</H3><UL><LI><A href="http://qpid.apache.org/getting_involved.html">Getting Involved</A></LI><LI><A href="http://qpid.apache.org/source_repository.html">Source Repository</A></LI><LI><A href="http://qpid.apache.org/mailing_lists.html">Mailing Lists</A></LI><LI><A href="https://cwiki.apache.org/qpid/">Wiki</A></LI><LI><A href="https://issues.apache.org/jira/browse/qpid">Issue Reporting</A></LI
><LI><A href="http://qpid.apache.org/people.html">People</A></LI><LI><A href="http://qpid.apache.org/acknowledgements.html">Acknowledgements</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Developers</H3><UL><LI><A href="https://cwiki.apache.org/qpid/building.html">Building Qpid</A></LI><LI><A href="https://cwiki.apache.org/qpid/developer-pages.html">Developer Pages</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About AMQP</H3><UL><LI><A href="http://qpid.apache.org/amqp.html">What is AMQP?</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About Apache</H3><UL><LI><A href="http://www.apache.org">Home</A></LI><LI><A href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</A></LI><LI><A href="http://www.apache.org/foundation/thanks.html">Thanks</A></LI><LI><A hr
ef="http://www.apache.org/security/">Security</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV></DIV><div class="main_text_area"><div class="main_text_area_top"></div><div class="main_text_area_body"><DIV class="breadcrumbs"><span class="breadcrumb-node">AMQP Messaging Broker (Java)</span></DIV><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id2426353"></a>AMQP Messaging Broker (Java)</h1></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="Java-Broker-Introduction.html">1. Introduction</a></span></dt><dt><span class="chapter"><a href="Java-Broker-Installation.html">2. Installation</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Installation.html#Java-Broker-Installation-Introduction">2.1. Introduction</a></span></dt><dt><span class="section"><a href="Java-Broker-Installation-Prerequistes.html">2.2. Prerequisites</a></span></dt><dd><dl><dt><span class="s
ection"><a href="Java-Broker-Installation-Prerequistes.html#Java-Broker-Installation-Prerequistes-Java">2.2.1. Java Platform</a></span></dt><dt><span class="section"><a href="Java-Broker-Installation-Prerequistes.html#Java-Broker-Installation-Prerequistes-Disk">2.2.2. Disk</a></span></dt><dt><span class="section"><a href="Java-Broker-Installation-Prerequistes.html#Java-Broker-Installation-Prerequistes-Memory">2.2.3. Memory</a></span></dt><dt><span class="section"><a href="Java-Broker-Installation-Prerequistes.html#Java-Broker-Installation-Prerequistes-OperatingSystemAccount">2.2.4. Operating System Account</a></span></dt></dl></dd><dt><span class="section"><a href="Java-Broker-Installation-Download.html">2.3. Download</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Installation-Download.html#Java-Broker-Installation-Download-Release">2.3.1. Broker Release</a></span></dt><dt><span class="section"><a href="Java-Broker-Installation-Download.html#Java-Broke
r-Installation-Download-OptionalDependencies">2.3.2. Optional Dependencies</a></span></dt></dl></dd><dt><span class="section"><a href="Java-Broker-Installation-InstallationWindows.html">2.4. Installation on Windows</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Installation-InstallationWindows.html#Java-Broker-Installation-InstallationWindows-SettingQPIDWORK">2.4.1. Setting the working directory</a></span></dt><dt><span class="section"><a href="Java-Broker-Installation-InstallationWindows.html#Java-Broker-Installation-InstallationWindows-OptionalDependencies">2.4.2. Optional Dependencies</a></span></dt></dl></dd><dt><span class="section"><a href="Java-Broker-Installation-InstallationUnix.html">2.5. Installation on UNIX platforms</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Installation-InstallationUnix.html#Java-Broker-Installation-InstallationUnix-SettingQPIDWORK">2.5.1. Setting the working directory</a></span></dt><dt><span c
lass="section"><a href="Java-Broker-Installation-InstallationUnix.html#Java-Broker-Installation-InstallationUnix-OptionalDependencies">2.5.2. Optional Dependencies</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="Java-Broker-Getting-Started.html">3. Getting Started</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Getting-Started.html#Java-Broker-Getting-Started-Starting">3.1. Starting/Stopping the Broker</a></span></dt><dt><span class="section"><a href="Java-Broker-Getting-Started-Starting-Stopping-Windows.html">3.2. Starting/Stopping on Windows</a></span></dt><dt><span class="section"><a href="Java-Broker-Getting-Started-Starting-Stopping-Unix.html">3.3. Starting/Stopping on Unix</a></span></dt><dt><span class="section"><a href="Java-Broker-Getting-Started-LogFile.html">3.4. Log file</a></span></dt><dt><span class="section"><a href="Java-Broker-Getting-Started-CommandLine.html">3.5. Using the command line</a></span></dt></dl></dd><d
t><span class="chapter"><a href="Java-Broker-Concepts.html">4. Concepts</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Concepts.html#Java-Broker-Concepts-Virtual-Hosts">4.1. Virtual Hosts</a></span></dt><dt><span class="section"><a href="Java-Broker-Concepts-Exchanges.html">4.2. Exchanges</a></span></dt><dt><span class="section"><a href="Java-Broker-Concepts-Queues.html">4.3. Queues</a></span></dt><dt><span class="section"><a href="Java-Broker-Concepts-Ports.html">4.4. Ports</a></span></dt><dt><span class="section"><a href="Java-Broker-Concepts-Protocols.html">4.5. Protocols</a></span></dt><dt><span class="section"><a href="Java-Broker-Concepts-Authentication-Providers.html">4.6. Authentication Providers</a></span></dt><dt><span class="section"><a href="Java-Broker-Concepts-Other-Services.html">4.7. Other Services</a></span></dt></dl></dd><dt><span class="chapter"><a href="Java-Broker-Virtual-Hosts.html">5. Virtual Hosts</a></span></dt><dt><span class=
"chapter"><a href="Java-Broker-Exchanges.html">6. Exchanges</a></span></dt><dt><span class="chapter"><a href="Java-Broker-Queues.html">7. Queues</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Queues.html#Queues-Messaging-Groups">7.1. Messaging Groups</a></span></dt><dt><span class="section"><a href="Java-Broker-Queues-OtherTypes.html">7.2. Other Queue Types</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Queues-OtherTypes.html#Java-Broker-Queues-OtherTypes-Introduction">7.2.1. Introduction</a></span></dt><dt><span class="section"><a href="Java-Broker-Queues-OtherTypes.html#Java-Broker-Queues-OtherTypes-Priority">7.2.2. Priority Queues</a></span></dt><dt><span class="section"><a href="Java-Broker-Queues-OtherTypes.html#Java-Broker-Queues-OtherTypes-Sorted">7.2.3. Sorted Queues</a></span></dt><dt><span class="section"><a href="Java-Broker-Queues-OtherTypes.html#Java-Broker-Queues-OtherTypes-LVQ">7.2.4. Last Value Queues (LVQ)</a></s
pan></dt><dt><span class="section"><a href="Java-Broker-Queues-OtherTypes.html#Java-Broker-Queues-OtherTypes-Create">7.2.5. Creating a Priority, Sorted or LVQ Queue</a></span></dt><dt><span class="section"><a href="Java-Broker-Queues-OtherTypes.html#Java-Broker-Queues-OtherTypes-SetLowPrefetch">7.2.6. Low pre-fetch</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="Java-Broker-Stores.html">8. Stores</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Stores.html#Java-Broker-Stores-Memory-Store">8.1. Memory Store</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Stores.html#Java-Broker-Stores-Memory-Store-Configuration">8.1.1. Configuration</a></span></dt></dl></dd><dt><span class="section"><a href="Java-Broker-Stores-Derby-Store.html">8.2. Derby Store</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Stores-Derby-Store.html#Java-Broker-Stores-Derby-Store-Configuration">8.2.1. Configuration</a></span
></dt></dl></dd><dt><span class="section"><a href="Java-Broker-Stores-SQL-Store.html">8.3. SQL Store</a></span></dt><dt><span class="section"><a href="Java-Broker-Stores-BDB-Store.html">8.4. BDB Store</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Stores-BDB-Store.html#Java-Broker-Stores-BDB-Store-BDBJE-Download">8.4.1. Oracle BDB JE download</a></span></dt><dt><span class="section"><a href="Java-Broker-Stores-BDB-Store.html#Java-Broker-Stores-BDB-Store-BDBJE-Installation">8.4.2. Oracle BDB JE jar installation</a></span></dt><dt><span class="section"><a href="Java-Broker-Stores-BDB-Store.html#Java-Broker-Stores-BDB-Store-Configuration">8.4.3. Configuration</a></span></dt></dl></dd><dt><span class="section"><a href="Java-Broker-Stores-HA-BDB-Store.html">8.5. High Availability BDB Store</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Stores-HA-BDB-Store.html#Java-Broker-Stores-HA-BDB-Store-BDBJE-Download">8.5.1. Oracle BDB JE downlo
ad</a></span></dt><dt><span class="section"><a href="Java-Broker-Stores-HA-BDB-Store.html#Java-Broker-Stores-HA-BDB-Store-BDBJE-Installation">8.5.2. Oracle BDB JE jar installation</a></span></dt><dt><span class="section"><a href="Java-Broker-Stores-HA-BDB-Store.html#Java-Broker-Stores-HA-BDB-Store-Configuration">8.5.3. Configuration</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="Java-Broker-Configuring-And-Managing.html">9. Configuring And Managing</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Configuring-And-Managing.html#Java-Broker-Configuring-And-Managing-Config-Files">9.1. Config Files</a></span></dt><dt><span class="section"><a href="Java-Broker-Configuring-And-Managing-Web-Console.html">9.2. Web Console</a></span></dt><dt><span class="section"><a href="Java-Broker-Configuring-And-Managing-REST-API.html">9.3. REST API</a></span></dt><dt><span class="section"><a href="Java-Broker-Configuring-And-Managing-JMX.html">9.4. JMX<
/a></span></dt><dt><span class="section"><a href="Java-Broker-Configuring-And-Managing-Other-Tooling.html">9.5. Other Tooling</a></span></dt></dl></dd><dt><span class="chapter"><a href="Java-Broker-Security.html">10. Security</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Security.html#Java-Broker-Security-Users-And-Groups">10.1. Users And Groups</a></span></dt><dt><span class="section"><a href="Java-Broker-Security-Group-Providers.html">10.2. Configuring Group Providers</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Security-Group-Providers.html#File-Group-Manager">10.2.1. FileGroupManager</a></span></dt></dl></dd><dt><span class="section"><a href="Java-Broker-Security-Authentication-Providers.html">10.3. Authentication Providers</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Security-Authentication-Providers.html#id2496500">10.3.1. Password File</a></span></dt><dt><span class="section"><a href="Java-Broke
r-Security-Authentication-Providers.html#id2496511">10.3.2. LDAP</a></span></dt><dt><span class="section"><a href="Java-Broker-Security-Authentication-Providers.html#id2496994">10.3.3. Kerberos</a></span></dt><dt><span class="section"><a href="Java-Broker-Security-Authentication-Providers.html#ExternalAuthManager">10.3.4. External (SSL Client Certificates)</a></span></dt><dt><span class="section"><a href="Java-Broker-Security-Authentication-Providers.html#AnonymousAuthManager">10.3.5. Anonymous</a></span></dt><dt><span class="section"><a href="Java-Broker-Security-Authentication-Providers.html#MultipleAuthProviders">10.3.6. Configuring multiple Authentication Providers</a></span></dt></dl></dd><dt><span class="section"><a href="Java-Broker-Security-ACLs.html">10.4. Access Control Lists</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Security-ACLs.html#Java-Broker-Security-ACLs-EnablingACL">10.4.1.
+ Enabling ACLs
+ </a></span></dt><dt><span class="section"><a href="Java-Broker-Security-ACLs.html#Java-Broker-Security-ACLs-WriteACL">10.4.2.
+ Writing .acl files
+ </a></span></dt><dt><span class="section"><a href="Java-Broker-Security-ACLs.html#Java-Broker-Security-ACLs-Syntax">10.4.3.
+ Syntax
+ </a></span></dt><dt><span class="section"><a href="Java-Broker-Security-ACLs.html#Java-Broker-Security-ACLs-WorkedExamples">10.4.4.
+ Worked Examples
+ </a></span></dt></dl></dd><dt><span class="section"><a href="Java-Broker-Security-SSL.html">10.5. SSL</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Security-SSL.html#SSL-Keystore">10.5.1. Keystore Configuration</a></span></dt><dt><span class="section"><a href="Java-Broker-Security-SSL.html#SSL-Truststore-ClientCertificate">10.5.2. Truststore / Client Certificate Authentication</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="Java-Broker-Runtime.html">11. Runtime</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Runtime.html#Java-Broker-Runtime-Log-Files">11.1. Log Files</a></span></dt><dt><span class="section"><a href="Java-Broker-Runtime-Alerts.html">11.2. Alerts</a></span></dt><dt><span class="section"><a href="Java-Broker-Runtime-Disk-Space-Management.html">11.3. Disk Space Management</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Runtime-Disk-Space-Management.html#Qpid-Producer-Fl
ow-Control">11.3.1. Producer Flow Control</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="Java-Broker-High-Availability.html">12. High Availability</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-High-Availability.html#Java-Broker-High-Availability-GeneralIntroduction">12.1. General Introduction</a></span></dt><dt><span class="section"><a href="Java-Broker-High-Availability-OfferingsOfJavaBroker.html">12.2. HA offerings of the Java Broker</a></span></dt><dt><span class="section"><a href="Java-Broker-High-Availability-TwoNodeCluster.html">12.3. Two Node Cluster</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-High-Availability-TwoNodeCluster.html#id2495669">12.3.1. Overview</a></span></dt><dt><span class="section"><a href="Java-Broker-High-Availability-TwoNodeCluster.html#id2495746">12.3.2. Depictions of cluster operation</a></span></dt></dl></dd><dt><span class="section"><a href="Java-Broker-High-Availability-M
ultiNodeCluster.html">12.4. Multi Node Cluster</a></span></dt><dt><span class="section"><a href="Java-Broker-High-Availability-Configuration.html">12.5. Configuring a Virtual Host to be a node</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-High-Availability-Configuration.html#Java-Broker-High-Availability-Configuration_BDBEnvVars">12.5.1. Passing BDB environment and replication configuration options</a></span></dt></dl></dd><dt><span class="section"><a href="Java-Broker-High-Availability-DurabilityGuarantee.html">12.6. Durability Guarantees</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-High-Availability-DurabilityGuarantee.html#Java-Broker-High-Availability-DurabilityGuarantee_BDBControls">12.6.1. BDB Durability Controls</a></span></dt><dt><span class="section"><a href="Java-Broker-High-Availability-DurabilityGuarantee.html#Java-Broker-High-Availability-DurabilityGuarantee_CoalescingSync">12.6.2. Coalescing-sync</a></span></dt><
dt><span class="section"><a href="Java-Broker-High-Availability-DurabilityGuarantee.html#Java-Broker-High-Availability-DurabilityGuarantee_Default">12.6.3. Default</a></span></dt><dt><span class="section"><a href="Java-Broker-High-Availability-DurabilityGuarantee.html#Java-Broker-High-Availability-DurabilityGuarantee_Examples">12.6.4. Examples</a></span></dt></dl></dd><dt><span class="section"><a href="Java-Broker-High-Availability-ClientFailover.html">12.7. Client failover configuration</a></span></dt><dt><span class="section"><a href="Java-Broker-High-Availability-JMXAPI.html">12.8. Qpid JMX API for HA</a></span></dt><dt><span class="section"><a href="Java-Broker-High-Availability-Monitoring-cluster.html">12.9. Monitoring cluster</a></span></dt><dt><span class="section"><a href="Java-Broker-High-Availability-DiskSpace.html">12.10. Disk space requirements</a></span></dt><dt><span class="section"><a href="Java-Broker-High-Availability-Network-Requirements.html">12.11. Networ
k Requirements</a></span></dt><dt><span class="section"><a href="Java-Broker-High-Availability-Security.html">12.12. Security</a></span></dt><dt><span class="section"><a href="Java-Broker-High-Availability-Backup.html">12.13. Backups</a></span></dt><dt><span class="section"><a href="Java-Broker-High-Availability-MigrationFromNonHA.html">12.14. Migration of a non-HA store to HA</a></span></dt><dt><span class="section"><a href="Java-Broker-High-Availability-DisasterRecovery.html">12.15. Disaster Recovery</a></span></dt><dt><span class="section"><a href="Java-Broker-High-Availability-Performance.html">12.16. Performance</a></span></dt></dl></dd><dt><span class="chapter"><a href="Java-Broker-Miscellaneous.html">13. Miscellaneous</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Miscellaneous.html#Java-Broker-Miscellaneous-JVM-Verification">13.1. JVM Installation verification</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Miscellaneous.h
tml#Java-Broker-Miscellaneous-JVM-Verification-Windows">13.1.1. Verify JVM on Windows</a></span></dt><dt><span class="section"><a href="Java-Broker-Miscellaneous.html#Java-Broker-Miscellaneous-JVM-Verification-Unix">13.1.2. Verify JVM on Windows</a></span></dt></dl></dd></dl></dd></dl></div><div class="list-of-figures"><p><b>List of Figures</b></p><dl><dt>12.1. <a href="Java-Broker-High-Availability-TwoNodeCluster.html#id2495761">Key for figures</a></dt><dt>12.2. <a href="Java-Broker-High-Availability-TwoNodeCluster.html#id2496558">Normal operation of a two-node cluster</a></dt><dt>12.3. <a href="Java-Broker-High-Availability-TwoNodeCluster.html#id2496695">Failure of master and recovery sequence</a></dt><dt>12.4. <a href="Java-Broker-High-Availability-TwoNodeCluster.html#id2501904">Failure of replica and subsequent recovery sequence</a></dt><dt>12.5. <a href="Java-Broker-High-Availability-TwoNodeCluster.html#id2502032">Partition of the network separating master and replica</
a></dt><dt>12.6. <a href="Java-Broker-High-Availability-TwoNodeCluster.html#id2502166">Split Brain</a></dt><dt>12.7. <a href="Java-Broker-High-Availability-JMXAPI.html#id2503337">BDBHAMessageStore view from jconsole.</a></dt><dt>12.8. <a href="Java-Broker-High-Availability-Performance.html#id2504632">Test results</a></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>7.1. <a href="Java-Broker-Queues-OtherTypes.html#id2495459">Queue-declare arguments understood for priority, sorted and LVQ queues</a></dt><dt>10.1. <a href="Java-Broker-Security-ACLs.html#table-Java-Broker-Security-ACLs-Syntax_permissions">List of ACL permission</a></dt><dt>10.2. <a href="Java-Broker-Security-ACLs.html#table-Java-Broker-Security-ACLs-Syntax_actions">List of ACL actions</a></dt><dt>10.3. <a href="Java-Broker-Security-ACLs.html#table-Java-Broker-Security-ACLs-Syntax_objects">List of ACL objects</a></dt><dt>10.4. <a href="Java-Broker-Security-ACLs.html#table-Java-Broker
-Security-ACLs-Syntax_properties">List of ACL properties</a></dt><dt>10.5. <a href="Java-Broker-Security-ACLs.html#table-Java-Broker-Security-ACLs-Syntax_javacomponents">List of ACL rules</a></dt><dt>12.1. <a href="Java-Broker-High-Availability-DurabilityGuarantee.html#id2502749">Effect of different durability guarantees</a></dt><dt>12.2. <a href="Java-Broker-High-Availability-JMXAPI.html#id2502998">Mbean <code class="classname">BDBHAMessageStore</code> attributes</a></dt><dt>12.3. <a href="Java-Broker-High-Availability-JMXAPI.html#id2503216">Mbean <code class="classname">BDBHAMessageStore</code> operations</a></dt><dt>12.4. <a href="Java-Broker-High-Availability-Performance.html#id2504116">Number of producers/consumers in performance tests</a></dt><dt>12.5. <a href="Java-Broker-High-Availability-Performance.html#id2504368">Performance Comparison</a></dt></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>7.1. <a href="Java-Broker-Queues-OtherTypes
.html#id2492825">Configuring a priority queue</a></dt><dt>7.2. <a href="Java-Broker-Queues-OtherTypes.html#id2495190">Configuring a priority queue with fewer priorities</a></dt><dt>7.3. <a href="Java-Broker-Queues-OtherTypes.html#id2495228">Configuring a sorted queue</a></dt><dt>7.4. <a href="Java-Broker-Queues-OtherTypes.html#id2495407">Configuring a LVQ queue</a></dt><dt>7.5. <a href="Java-Broker-Queues-OtherTypes.html#id2495426">Configuring a LVQ queue with custom message property name</a></dt><dt>7.6. <a href="Java-Broker-Queues-OtherTypes.html#id2494793">Creation of an LVQ using the Qpid extension to JMS</a></dt><dt>7.7. <a href="Java-Broker-Queues-OtherTypes.html#id2494813">Creation of a sorted queue using JMX</a></dt><dt>8.1. <a href="Java-Broker-Stores.html#id2495946">Configuring a VirtualHost to use the MemoryMessageStore</a></dt><dt>8.2. <a href="Java-Broker-Stores-Derby-Store.html#id2495871">Configuring a VirtualHost to use the DerbyMessageStore</a></dt><dt>8.3. <
a href="Java-Broker-Stores-BDB-Store.html#id2495075">Configuring a VirtualHost to use the BDBMessageStore</a></dt><dt>10.1. <a href="Java-Broker-Security-Authentication-Providers.html#id2496517">Configuring LDAP authentication</a></dt><dt>10.2. <a href="Java-Broker-Security-Authentication-Providers.html#id2497015">Configuring Kerberos authentication</a></dt><dt>10.3. <a href="Java-Broker-Security-Authentication-Providers.html#id2497143">Configuring external authentication (SSL client auth)</a></dt><dt>10.4. <a href="Java-Broker-Security-Authentication-Providers.html#id2497184">Configuring anonymous authentication</a></dt><dt>10.5. <a href="Java-Broker-Security-Authentication-Providers.html#id2497235">Configuring multiple (per-port) authentication schemes</a></dt><dt>10.6. <a href="Java-Broker-Security-SSL.html#id2499619">Configuring an SSL Keystore</a></dt><dt>10.7. <a href="Java-Broker-Security-SSL.html#id2499676">Configuring an SSL Truststore and client auth</a></dt><dt>11
.1. <a href="Java-Broker-Runtime-Disk-Space-Management.html#id2492610">Configuring a queue depth limit</a></dt><dt>11.2. <a href="Java-Broker-Runtime-Disk-Space-Management.html#id2492627">Configuring a default queue depth limit on a virtualhost</a></dt><dt>11.3. <a href="Java-Broker-Runtime-Disk-Space-Management.html#id2494559">Configuring a limit on a store</a></dt><dt>12.1. <a href="Java-Broker-High-Availability-Configuration.html#id2502240">Configuring a VirtualHost to use the BDBHAMessageStore</a></dt><dt>12.2. <a href="Java-Broker-High-Availability-ClientFailover.html#id2502948">Example of connection URL for the HA Cluster</a></dt><dt>12.3. <a href="Java-Broker-High-Availability-JMXAPI.html#id2503351">Example of java code to get the node state value</a></dt><dt>12.4. <a href="Java-Broker-High-Availability-Monitoring-cluster.html#id2503461">Using <code class="classname">DbPing</code> utility for monitoring HA nodes.</a></dt><dt>12.5. <a href="Java-Broker-High-Availabilit
y-Backup.html#id2503769">Performing store backup by using <code class="classname">BDBBackup</code> class directly</a></dt><dt>12.6. <a href="Java-Broker-High-Availability-Backup.html#id2503806">Performing store backup by using <code class="classname">backup.sh</code> bash script</a></dt><dt>12.7. <a href="Java-Broker-High-Availability-MigrationFromNonHA.html#id2503863">Enabling replication</a></dt><dt>12.8. <a href="Java-Broker-High-Availability-MigrationFromNonHA.html#id2503905">Example of XML configuration for HA message store</a></dt><dt>12.9. <a href="Java-Broker-High-Availability-DisasterRecovery.html#id2504024">Reseting of replication group with <code class="classname">DbResetRepGroup</code></a></dt></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left">Â </td><td width="20%" align="center">Â </td><td width="40%" align="right">Â <a accesskey="n" href="Java-Broker-Introduction.html">Next</
a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Chapter 1. Introduction</td></tr></table></div><div class="main_text_area_bottom"></div></div></div></body></html>
Added: qpid/site/docs/books/0.20/AMQP-Messaging-Broker-Java-Book/pdf/AMQP-Messaging-Broker-Java-Book.pdf
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.20/AMQP-Messaging-Broker-Java-Book/pdf/AMQP-Messaging-Broker-Java-Book.pdf?rev=1413422&view=auto
==============================================================================
Binary file - no diff available.
Propchange: qpid/site/docs/books/0.20/AMQP-Messaging-Broker-Java-Book/pdf/AMQP-Messaging-Broker-Java-Book.pdf
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: qpid/site/docs/books/0.20/Programming-In-Apache-Qpid/html/Message-Groups-Guide.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.20/Programming-In-Apache-Qpid/html/Message-Groups-Guide.html?rev=1413422&view=auto
==============================================================================
--- qpid/site/docs/books/0.20/Programming-In-Apache-Qpid/html/Message-Groups-Guide.html (added)
+++ qpid/site/docs/books/0.20/Programming-In-Apache-Qpid/html/Message-Groups-Guide.html Sun Nov 25 21:12:24 2012
@@ -0,0 +1,100 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>2.17. Using Message Groups</title><link rel="stylesheet" href="css/style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"><link rel="start" href="index.html" title="Programming in Apache Qpid"><link rel="up" href="ch02.html" title="Chapter 2. Using the Qpid Messaging API"><link rel="prev" href="section-amqp0-10-mapping.html" title="2.16. The AMQP 0-10 mapping"><link rel="next" href="QpidJMS.html" title="Chapter 3. Using the Qpid JMS client"></head><body><div class="container" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><DIV class="header"><DIV class="logo"><H1>Apache Qpidâ¢</H1><H2>Open Source AMQP Messaging</H2></DIV></DIV><DIV class="menu_box"><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Apache Qpid</H3><UL><LI><A href="http://qpid.apache.org/index.html">Home</A></LI><LI><A href="h
ttp://qpid.apache.org/download.html">Download</A></LI><LI><A href="http://qpid.apache.org/getting_started.html">Getting Started</A></LI><LI><A href="http://www.apache.org/licenses/">License</A></LI><LI><A href="https://cwiki.apache.org/qpid/faq.html">FAQ</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Documentation</H3><UL><LI><A href="http://qpid.apache.org/documentation.html#doc-release">Latest Release</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-trunk">Trunk</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-archives">Archive</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Community</H3><UL><LI><A href="http://qpid.apache.org/getting_involved.html">Getting Involved</A></LI><LI><A href="http://qpid.apache.org/source_repository.html">Source Repository</A></LI><LI><A href="http://qpid.apache.org/mailin
g_lists.html">Mailing Lists</A></LI><LI><A href="https://cwiki.apache.org/qpid/">Wiki</A></LI><LI><A href="https://issues.apache.org/jira/browse/qpid">Issue Reporting</A></LI><LI><A href="http://qpid.apache.org/people.html">People</A></LI><LI><A href="http://qpid.apache.org/acknowledgements.html">Acknowledgements</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Developers</H3><UL><LI><A href="https://cwiki.apache.org/qpid/building.html">Building Qpid</A></LI><LI><A href="https://cwiki.apache.org/qpid/developer-pages.html">Developer Pages</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About AMQP</H3><UL><LI><A href="http://qpid.apache.org/amqp.html">What is AMQP?</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About Apache</H3><UL><LI><A href="http://www.apache.org">Home</
A></LI><LI><A href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</A></LI><LI><A href="http://www.apache.org/foundation/thanks.html">Thanks</A></LI><LI><A href="http://www.apache.org/security/">Security</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV></DIV><div class="main_text_area"><div class="main_text_area_top"></div><div class="main_text_area_body"><DIV class="breadcrumbs"><span class="breadcrumb-link"><a href="index.html">Programming in Apache Qpid</a></span> > <span class="breadcrumb-link"><a href="ch02.html">Using the Qpid Messaging API</a></span> > <span class="breadcrumb-node">Using Message Groups</span></DIV><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="Message-Groups-Guide"></a>2.17. Using Message Groups</h2></div></div></div><p>
+ This section describes how messaging applications can use the Message Group feature
+ provided by the C++ Broker.
+ </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
+ The content of this section assumes the reader is familiar with the Message Group
+ feature as described in the AMQP Messaging Broker (C++) user's guide. Please read the
+ section <span class="emphasis"><em>Using Message Groups</em></span> in the user's guide before using the
+ examples given in this section.
+ </div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="messagegroups-setup"></a>2.17.1. Creating Message Group Queues</h3></div></div></div><p>
+ The following examples show how to create a message group queue that enforces
+ ordered group consumption across multiple consumers.
+ </p><div class="example"><a name="id2518461"></a><p class="title"><b>Example 2.22. Message Group Queue Creation - Python</b></p><div class="example-contents"><pre class="programlisting">
+sender = connection.session().sender("msg-group-q;" +
+ " {create:always, delete:receiver," +
+ " node: {x-declare: {arguments:" +
+ " {'qpid.group_header_key':'THE-GROUP'," +
+ " 'qpid.shared_msg_group':1}}}}")
+ </pre></div></div><br class="example-break"><div class="example"><a name="id2514805"></a><p class="title"><b>Example 2.23. Message Group Queue Creation - C++</b></p><div class="example-contents"><pre class="programlisting">
+std::string addr("msg-group-q; "
+ " {create:always, delete:receiver,"
+ " node: {x-declare: {arguments:"
+ " {qpid.group_header_key:'THE-GROUP',"
+ " qpid.shared_msg_group:1}}}}");
+Sender sender = session.createSender(addr);
+ </pre></div></div><br class="example-break"><div class="example"><a name="id2492372"></a><p class="title"><b>Example 2.24. Message Group Queue Creation - Java</b></p><div class="example-contents"><pre class="programlisting">
+Session s = c.createSession(false, Session.CLIENT_ACKNOWLEDGE);
+String addr = "msg-group-q; {create:always, delete:receiver," +
+ " node: {x-declare: {arguments:" +
+ " {'qpid.group_header_key':'THE-GROUP'," +
+ " 'qpid.shared_msg_group':1}}}}";
+Destination d = (Destination) new AMQAnyDestination(addr);
+MessageProducer sender = s.createProducer(d);
+ </pre></div></div><br class="example-break"><p>
+ The example code uses the x-declare map to specify the message group configuration
+ that should be used for the queue. See the AMQP Messaging Broker (C++) user's guide
+ for a detailed description of these arguments. Note that the
+ qpid.group_header_key's value MUST be a string type.
+ </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="messagegroups-sending"></a>2.17.2. Sending Grouped Messages</h3></div></div></div><p>
+ When sending grouped messages, the client must add a message property containing the
+ group identifier to the outgoing message. The group identifier must be a string
+ type. The key used for the property must exactly match the value passed in the
+ 'qpid.group_header_key' configuration argument.
+ </p><div class="example"><a name="id2508857"></a><p class="title"><b>Example 2.25. Sending Grouped Messages - Python</b></p><div class="example-contents"><pre class="programlisting">
+group = "A"
+m = Message(content="some data", properties={"THE-GROUP": group})
+sender.send(m)
+
+group = "B"
+m = Message(content="some other group's data", properties={"THE-GROUP": group})
+sender.send(m)
+
+group = "A"
+m = Message(content="more data for group 'A'", properties={"THE-GROUP": group})
+sender.send(m)
+ </pre></div></div><br class="example-break"><div class="example"><a name="id2508875"></a><p class="title"><b>Example 2.26. Sending Grouped Messages - C++</b></p><div class="example-contents"><pre class="programlisting">
+
+const std::string groupKey("THE-GROUP");
+{
+ Message msg("some data");
+ msg.getProperties()[groupKey] = std::string("A");
+ sender.send(msg);
+}
+{
+ Message msg("some other group's data");
+ msg.getProperties()[groupKey] = std::string("B");
+ sender.send(msg);
+}
+{
+ Message msg("more data for group 'A'");
+ msg.getProperties()[groupKey] = std::string("A");
+ sender.send(msg);
+}
+ </pre></div></div><br class="example-break"><div class="example"><a name="id2508896"></a><p class="title"><b>Example 2.27. Sending Grouped Messages - Java</b></p><div class="example-contents"><pre class="programlisting">
+String groupKey = "THE-GROUP";
+
+TextMessage tmsg1 = s.createTextMessage("some data");
+tmsg1.setStringProperty(groupKey, "A");
+sender.send(tmsg1);
+
+TextMessage tmsg2 = s.createTextMessage("some other group's data");
+tmsg2.setStringProperty(groupKey, "B");
+sender.send(tmsg2);
+
+TextMessage tmsg3 = s.createTextMessage("more data for group 'A'");
+tmsg3.setStringProperty(groupKey, "A");
+sender.send(tmsg3);
+ </pre></div></div><br class="example-break"><p>
+ The examples above send two groups worth of messages to the queue created in the
+ previous example. Two messages belong to group "A", and one belongs to group
+ "B". Note that it is not necessary to complete sending one group's messages before
+ starting another. Also note that there is no need to indicate to the broker when a
+ new group is created or an existing group retired - the broker tracks group state
+ automatically.
+ </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="messagegroups-receiving"></a>2.17.3. Receiving Grouped Messages</h3></div></div></div><p>
+ Since the broker enforces group policy when delivering messages, no special actions
+ are necessary for receiving grouped messages from the broker. However, applications
+ must adhere to the rules for message group consumption as described in the AMQP
+ Messaging Broker (C++) user's guide. Refer to the section <span class="emphasis"><em>Well Behaved
+ Consumers</em></span> for details.
+ </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="section-amqp0-10-mapping.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="QpidJMS.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">2.16. The AMQP 0-10 mapping </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 3. Using the Qpid JMS client</td></tr></table></div><div class="main_text_area_bottom"></div></div></div></body></html>
Added: qpid/site/docs/books/0.20/Programming-In-Apache-Qpid/html/QpidJMS.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.20/Programming-In-Apache-Qpid/html/QpidJMS.html?rev=1413422&view=auto
==============================================================================
--- qpid/site/docs/books/0.20/Programming-In-Apache-Qpid/html/QpidJMS.html (added)
+++ qpid/site/docs/books/0.20/Programming-In-Apache-Qpid/html/QpidJMS.html Sun Nov 25 21:12:24 2012
@@ -0,0 +1,78 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 3. Using the Qpid JMS client</title><link rel="stylesheet" href="css/style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"><link rel="start" href="index.html" title="Programming in Apache Qpid"><link rel="up" href="index.html" title="Programming in Apache Qpid"><link rel="prev" href="Message-Groups-Guide.html" title="2.17. Using Message Groups"><link rel="next" href="QpidJNDI.html" title="3.2. Apache Qpid JNDI Properties for AMQP Messaging"></head><body><div class="container" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><DIV class="header"><DIV class="logo"><H1>Apache Qpidâ¢</H1><H2>Open Source AMQP Messaging</H2></DIV></DIV><DIV class="menu_box"><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Apache Qpid</H3><UL><LI><A href="http://qpid.apache.org/index.html">Home</A></LI><LI><A href
="http://qpid.apache.org/download.html">Download</A></LI><LI><A href="http://qpid.apache.org/getting_started.html">Getting Started</A></LI><LI><A href="http://www.apache.org/licenses/">License</A></LI><LI><A href="https://cwiki.apache.org/qpid/faq.html">FAQ</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Documentation</H3><UL><LI><A href="http://qpid.apache.org/documentation.html#doc-release">Latest Release</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-trunk">Trunk</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-archives">Archive</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Community</H3><UL><LI><A href="http://qpid.apache.org/getting_involved.html">Getting Involved</A></LI><LI><A href="http://qpid.apache.org/source_repository.html">Source Repository</A></LI><LI><A href="http://qpid.apache.org/mai
ling_lists.html">Mailing Lists</A></LI><LI><A href="https://cwiki.apache.org/qpid/">Wiki</A></LI><LI><A href="https://issues.apache.org/jira/browse/qpid">Issue Reporting</A></LI><LI><A href="http://qpid.apache.org/people.html">People</A></LI><LI><A href="http://qpid.apache.org/acknowledgements.html">Acknowledgements</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Developers</H3><UL><LI><A href="https://cwiki.apache.org/qpid/building.html">Building Qpid</A></LI><LI><A href="https://cwiki.apache.org/qpid/developer-pages.html">Developer Pages</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About AMQP</H3><UL><LI><A href="http://qpid.apache.org/amqp.html">What is AMQP?</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About Apache</H3><UL><LI><A href="http://www.apache.org">Hom
e</A></LI><LI><A href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</A></LI><LI><A href="http://www.apache.org/foundation/thanks.html">Thanks</A></LI><LI><A href="http://www.apache.org/security/">Security</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV></DIV><div class="main_text_area"><div class="main_text_area_top"></div><div class="main_text_area_body"><DIV class="breadcrumbs"><span class="breadcrumb-link"><a href="index.html">Programming in Apache Qpid</a></span> > <span class="breadcrumb-node">Using the Qpid JMS client</span></DIV><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="QpidJMS"></a>Chapter 3. Using the Qpid JMS client</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="QpidJMS.html#id2553402">3.1. A Simple Messaging Program in Java JMS</a></span></dt><dt><span class="section"><a href="QpidJNDI.html">3.2. Apache Qpid JNDI Propertie
s for AMQP Messaging</a></span></dt><dd><dl><dt><span class="section"><a href="QpidJNDI.html#id2553814">3.2.1. JNDI Properties for Apache Qpid</a></span></dt><dt><span class="section"><a href="QpidJNDI.html#section-jms-connection-url">3.2.2. Connection URLs</a></span></dt></dl></dd><dt><span class="section"><a href="ch03s03.html">3.3. Java JMS Message Properties</a></span></dt><dt><span class="section"><a href="section-JMS-MapMessage.html">3.4. JMS MapMessage Types</a></span></dt><dt><span class="section"><a href="section-JMS-Logging.html">3.5. JMS Client Logging</a></span></dt><dt><span class="section"><a href="ch03s06.html">3.6. Configuring the JMS Client</a></span></dt><dd><dl><dt><span class="section"><a href="ch03s06.html#client-jvm-properties">3.6.1. Qpid JVM Arguments</a></span></dt></dl></dd></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id2553402"></a>3.1. A Simple Messaging Program in Java JMS</h2></div></di
v></div><p>The following program shows how to send and receive a
+ message using the Qpid JMS client. JMS programs typically use
+ JNDI to obtain connection factory and destination objects which
+ the application needs. In this way the configuration is kept
+ separate from the application code itself.</p><p>In this example, we create a JNDI context using a
+ properties file, use the context to lookup a connection factory,
+ create and start a connection, create a session, and lookup a
+ destination from the JNDI context. Then we create a producer and
+ a consumer, send a message with the producer and receive it with
+ the consumer. This code should be straightforward for anyone
+ familiar with Java JMS.</p><div class="example"><a name="id2553426"></a><p class="title"><b>Example 3.1. "Hello world!" in Java</b></p><div class="example-contents"><pre class="programlisting">
+ package org.apache.qpid.example.jmsexample.hello;
+
+ import javax.jms.*;
+ import javax.naming.Context;
+ import javax.naming.InitialContext;
+ import java.util.Properties;
+
+ public class Hello {
+
+ public Hello() {
+ }
+
+ public static void main(String[] args) {
+ Hello producer = new Hello();
+ producer.runTest();
+ }
+
+ private void runTest() {
+ try {
+ Properties properties = new Properties();
+ properties.load(this.getClass().getResourceAsStream("hello.properties")); <a class="co" name="hello-java-properties" href="QpidJMS.html#callout-java-properties">(1)</a>
+ Context context = new InitialContext(properties); <a class="co" name="hello-java-context" href="QpidJMS.html#callout-java-context">(2)</a>
+
+ ConnectionFactory connectionFactory
+ = (ConnectionFactory) context.lookup("qpidConnectionfactory"); <a class="co" name="hello-java-connection-factory" href="QpidJMS.html#callout-java-connection-factory">(3)</a>
+ Connection connection = connectionFactory.createConnection(); <a class="co" name="hello-java-connection" href="QpidJMS.html#callout-java-connection">(4)</a>
+ connection.start(); <a class="co" name="hello-java-start" href="QpidJMS.html#callout-java-start">(5)</a>
+
+ Session session=connection.createSession(false,Session.AUTO_ACKNOWLEDGE);<a class="co" name="hello-java-session" href="QpidJMS.html#callout-java-session">(6)</a>
+ Destination destination = (Destination) context.lookup("topicExchange"); <a class="co" name="hello-java-destination" href="QpidJMS.html#callout-java-destination">(7)</a>
+
+ MessageProducer messageProducer = session.createProducer(destination); <a class="co" name="hello-java-producer" href="QpidJMS.html#callout-java-producer">(8)</a>
+ MessageConsumer messageConsumer = session.createConsumer(destination); <a class="co" name="hello-java-consumer" href="QpidJMS.html#callout-java-consumer">(9)</a>
+
+ TextMessage message = session.createTextMessage("Hello world!");
+ messageProducer.send(message);
+
+ message = (TextMessage)messageConsumer.receive(); <a class="co" name="hello-java-receive" href="QpidJMS.html#callout-java-receive">(10)</a>
+ System.out.println(message.getText());
+
+ connection.close(); <a class="co" name="hello-java-close" href="QpidJMS.html#callout-java-close">(11)</a>
+ context.close(); <a class="co" name="hello-java-jndi-close" href="QpidJMS.html#callout-java-jndi-close">(12)</a>
+ }
+ catch (Exception exp) {
+ exp.printStackTrace();
+ }
+ }
+ }
+ </pre></div></div><br class="example-break"><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><p><a name="callout-java-properties"></a><a href="#hello-java-properties">(1)</a> </p></td><td valign="top" align="left"><p>Loads the JNDI properties file, which specifies connection properties, queues, topics, and addressing options. See <a class="xref" href="QpidJNDI.html" title="3.2. Apache Qpid JNDI Properties for AMQP Messaging">Section 3.2, âApache Qpid JNDI Properties for AMQP Messagingâ</a> for details.</p></td></tr><tr><td width="5%" valign="top" align="left"><p><a name="callout-java-context"></a><a href="#hello-java-context">(2)</a> </p></td><td valign="top" align="left"><p>Creates the JNDI initial context.</p></td></tr><tr><td width="5%" valign="top" align="left"><p><a name="callout-java-connection-factory"></a><a href="#hello-java-connection-factory">(3)</a> </p></td><td valign="top" align="lef
t"><p>Creates a JMS connection factory for Qpid.</p></td></tr><tr><td width="5%" valign="top" align="left"><p><a name="callout-java-connection"></a><a href="#hello-java-connection">(4)</a> </p></td><td valign="top" align="left"><p>Creates a JMS connection.</p></td></tr><tr><td width="5%" valign="top" align="left"><p><a name="callout-java-start"></a><a href="#hello-java-start">(5)</a> </p></td><td valign="top" align="left"><p>Activates the connection.</p></td></tr><tr><td width="5%" valign="top" align="left"><p><a name="callout-java-session"></a><a href="#hello-java-session">(6)</a> </p></td><td valign="top" align="left"><p>Creates a session. This session is not transactional (transactions='false'), and messages are automatically acknowledged.</p></td></tr><tr><td width="5%" valign="top" align="left"><p><a name="callout-java-destination"></a><a href="#hello-java-destination">(7)</a> </p></td><td valign="top" align="left"><p>Creates a destination for the topic exchange, so sen
ders and receivers can use it.</p></td></tr><tr><td width="5%" valign="top" align="left"><p><a name="callout-java-producer"></a><a href="#hello-java-producer">(8)</a> </p></td><td valign="top" align="left"><p>Creates a producer that sends messages to the topic exchange.</p></td></tr><tr><td width="5%" valign="top" align="left"><p><a name="callout-java-consumer"></a><a href="#hello-java-consumer">(9)</a> </p></td><td valign="top" align="left"><p>Creates a consumer that reads messages from the topic exchange.</p></td></tr><tr><td width="5%" valign="top" align="left"><p><a name="callout-java-receive"></a><a href="#hello-java-receive">(10)</a> </p></td><td valign="top" align="left"><p>Reads the next available message.</p></td></tr><tr><td width="5%" valign="top" align="left"><p><a name="callout-java-close"></a><a href="#hello-java-close">(11)</a> </p></td><td valign="top" align="left"><p>Closes the connection, all sessions managed by the connection, and all senders and receivers
managed by each session.</p></td></tr><tr><td width="5%" valign="top" align="left"><p><a name="callout-java-jndi-close"></a><a href="#hello-java-jndi-close">(12)</a> </p></td><td valign="top" align="left"><p>Closes the JNDI context.</p></td></tr></table></div><p>The contents of the hello.properties file are shown below.</p><div class="example"><a name="id2553692"></a><p class="title"><b>Example 3.2. JNDI Properties File for "Hello world!" example</b></p><div class="example-contents"><pre class="programlisting">
+ java.naming.factory.initial
+ = org.apache.qpid.jndi.PropertiesFileInitialContextFactory
+
+ # connectionfactory.[jndiname] = [ConnectionURL]
+ connectionfactory.qpidConnectionfactory
+ = amqp://guest:guest@clientid/test?brokerlist='tcp://localhost:5672' <a class="co" name="hello-properties-connectionfactory" href="QpidJMS.html#callout-hello-properties-connectionfactory">(1)</a>
+ # destination.[jndiname] = [address_string]
+ destination.topicExchange = amq.topic <a class="co" name="hello-properties-destination" href="QpidJMS.html#callout-hello-properties-destination">(2)</a>
+ </pre></div></div><br class="example-break"><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><p><a name="callout-hello-properties-connectionfactory"></a><a href="#hello-properties-connectionfactory">(1)</a> </p></td><td valign="top" align="left"><p>Defines a connection factory from which connections
+ can be created. The syntax of a ConnectionURL is given in
+ <a class="xref" href="QpidJNDI.html" title="3.2. Apache Qpid JNDI Properties for AMQP Messaging">Section 3.2, âApache Qpid JNDI Properties for AMQP Messagingâ</a>.</p></td></tr><tr><td width="5%" valign="top" align="left"><p><a name="callout-hello-properties-destination"></a><a href="#hello-properties-destination">(2)</a> </p></td><td valign="top" align="left"><p>Defines a destination for which MessageProducers
+ and/or MessageConsumers can be created to send and receive
+ messages. The value for the destination in the properties
+ file is an address string as described in
+ <a class="xref" href="section-addresses.html" title="2.4. Addresses">Section 2.4, âAddressesâ</a>. In the JMS
+ implementation MessageProducers are analogous to senders in
+ the Qpid Message API, and MessageConsumers are analogous to
+ receivers.</p></td></tr></table></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="Message-Groups-Guide.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="QpidJNDI.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">2.17. Using Message Groups </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 3.2. Apache Qpid JNDI Properties for AMQP Messaging</td></tr></table></div><div class="main_text_area_bottom"></div></div></div></body></html>
Added: qpid/site/docs/books/0.20/Programming-In-Apache-Qpid/html/QpidJNDI.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.20/Programming-In-Apache-Qpid/html/QpidJNDI.html?rev=1413422&view=auto
==============================================================================
--- qpid/site/docs/books/0.20/Programming-In-Apache-Qpid/html/QpidJNDI.html (added)
+++ qpid/site/docs/books/0.20/Programming-In-Apache-Qpid/html/QpidJNDI.html Sun Nov 25 21:12:24 2012
@@ -0,0 +1,256 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>3.2. Apache Qpid JNDI Properties for AMQP Messaging</title><link rel="stylesheet" href="css/style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"><link rel="start" href="index.html" title="Programming in Apache Qpid"><link rel="up" href="QpidJMS.html" title="Chapter 3. Using the Qpid JMS client"><link rel="prev" href="QpidJMS.html" title="Chapter 3. Using the Qpid JMS client"><link rel="next" href="ch03s03.html" title="3.3. Java JMS Message Properties"></head><body><div class="container" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><DIV class="header"><DIV class="logo"><H1>Apache Qpidâ¢</H1><H2>Open Source AMQP Messaging</H2></DIV></DIV><DIV class="menu_box"><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Apache Qpid</H3><UL><LI><A href="http://qpid.apache.org/index.html">Home</A></LI><
LI><A href="http://qpid.apache.org/download.html">Download</A></LI><LI><A href="http://qpid.apache.org/getting_started.html">Getting Started</A></LI><LI><A href="http://www.apache.org/licenses/">License</A></LI><LI><A href="https://cwiki.apache.org/qpid/faq.html">FAQ</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Documentation</H3><UL><LI><A href="http://qpid.apache.org/documentation.html#doc-release">Latest Release</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-trunk">Trunk</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-archives">Archive</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Community</H3><UL><LI><A href="http://qpid.apache.org/getting_involved.html">Getting Involved</A></LI><LI><A href="http://qpid.apache.org/source_repository.html">Source Repository</A></LI><LI><A href="http://qpid.apac
he.org/mailing_lists.html">Mailing Lists</A></LI><LI><A href="https://cwiki.apache.org/qpid/">Wiki</A></LI><LI><A href="https://issues.apache.org/jira/browse/qpid">Issue Reporting</A></LI><LI><A href="http://qpid.apache.org/people.html">People</A></LI><LI><A href="http://qpid.apache.org/acknowledgements.html">Acknowledgements</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Developers</H3><UL><LI><A href="https://cwiki.apache.org/qpid/building.html">Building Qpid</A></LI><LI><A href="https://cwiki.apache.org/qpid/developer-pages.html">Developer Pages</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About AMQP</H3><UL><LI><A href="http://qpid.apache.org/amqp.html">What is AMQP?</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About Apache</H3><UL><LI><A href="http://www.apach
e.org">Home</A></LI><LI><A href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</A></LI><LI><A href="http://www.apache.org/foundation/thanks.html">Thanks</A></LI><LI><A href="http://www.apache.org/security/">Security</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV></DIV><div class="main_text_area"><div class="main_text_area_top"></div><div class="main_text_area_body"><DIV class="breadcrumbs"><span class="breadcrumb-link"><a href="index.html">Programming in Apache Qpid</a></span> > <span class="breadcrumb-link"><a href="QpidJMS.html">Using the Qpid JMS client</a></span> > <span class="breadcrumb-node">Apache Qpid JNDI Properties for AMQP Messaging</span></DIV><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="QpidJNDI"></a>3.2. Apache Qpid JNDI Properties for AMQP Messaging</h2></div></div></div><p>
+ Apache Qpid defines JNDI properties that can be used to specify JMS Connections and Destinations. Here is a typical JNDI properties file:
+ </p><div class="example"><a name="id2553792"></a><p class="title"><b>Example 3.3. JNDI Properties File</b></p><div class="example-contents"><pre class="programlisting">
+ java.naming.factory.initial
+ = org.apache.qpid.jndi.PropertiesFileInitialContextFactory
+
+ # connectionfactory.[jndiname] = [ConnectionURL]
+ connectionfactory.qpidConnectionfactory
+ = amqp://guest:guest@clientid/test?brokerlist='tcp://localhost:5672'
+ # destination.[jndiname] = [address_string]
+ destination.topicExchange = amq.topic
+ </pre></div></div><br class="example-break"><p>The following sections describe the JNDI properties that Qpid uses.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2553814"></a>3.2.1. JNDI Properties for Apache Qpid</h3></div></div></div><p>
+ Apache Qpid supports the properties shown in the following table:
+ </p><div class="table"><a name="id2553824"></a><p class="title"><b>Table 3.1. JNDI Properties supported by Apache Qpid</b></p><div class="table-contents"><table summary="JNDI Properties supported by Apache Qpid" border="1"><colgroup><col><col></colgroup><thead><tr><th>
+ Property
+ </th><th>
+ Purpose
+ </th></tr></thead><tbody><tr><td>
+ connectionfactory.<jndiname>
+ </td><td>
+ <p>
+ The Connection URL that the connection factory uses to perform connections.
+ </p>
+ </td></tr><tr><td>
+ queue.<jndiname>
+ </td><td>
+ <p>
+ A JMS queue, which is implemented as an amq.direct exchange in Apache Qpid.
+ </p>
+ </td></tr><tr><td>
+ topic.<jndiname>
+ </td><td>
+ <p>
+ A JMS topic, which is implemented as an amq.topic exchange in Apache Qpid.
+ </p>
+ </td></tr><tr><td>
+ destination.<jndiname>
+ </td><td>
+ <p>
+ Can be used for defining all amq destinations,
+ queues, topics and header matching, using an
+ address string.
+
+ <sup>[<a name="id2553908" href="#ftn.id2553908" class="footnote">a</a>]</sup>
+ </p>
+ </td></tr></tbody><tbody class="footnotes"><tr><td colspan="2"><div class="footnote"><p><sup>[<a name="ftn.id2553908" href="#id2553908" class="para">a</a>] </sup>Binding URLs, which were used in
+ earlier versions of the Qpid Java JMS client, can
+ still be used instead of address
+ strings.</p></div></td></tr></tbody></table></div></div><br class="table-break"></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="section-jms-connection-url"></a>3.2.2. Connection URLs</h3></div></div></div><p>
+ In JNDI properties, a Connection URL specifies properties for a connection. The format for a Connection URL is:
+ </p><pre class="programlisting">amqp://[<user>:<pass>@][<clientid>]<virtualhost>[?<option>='<value>'[&<option>='<value>']]
+ </pre><p>
+ For instance, the following Connection URL specifies a user name, a password, a client ID, a virtual host ("test"), a broker list with a single broker, and a TCP host with the host name â<span class="quote">localhost</span>â using port 5672:
+ </p><pre class="programlisting">amqp://username:password@clientid/test?brokerlist='tcp://localhost:5672'
+ </pre><p>
+ Apache Qpid supports the following properties in Connection URLs:
+ </p><div class="table"><a name="id2553965"></a><p class="title"><b>Table 3.2. Connection URL Properties</b></p><div class="table-contents"><table summary="Connection URL Properties" width="100%" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>
+ Option
+ </th><th>
+ Type
+ </th><th>
+ Description
+ </th></tr></thead><tbody><tr><td>
+ brokerlist
+ </td><td>
+ see below
+ </td><td>
+ List of one or more broker addresses.
+ </td></tr><tr><td>
+ maxprefetch
+ </td><td>
+ integer
+ </td><td>
+ <p>
+ The maximum number of pre-fetched messages per consumer. If not specified, default value of 500 is used.
+ </p>
+ <p>
+ Note: You can also set the default per-consumer prefetch value on a client-wide basis by configuring the client using <a class="link" href="ch03s06.html#client-jvm-properties" title="3.6.1. Qpid JVM Arguments">Java system properties.</a>
+ </p>
+ </td></tr><tr><td>
+ sync_publish
+ </td><td>
+ {'persistent' | 'all'}
+ </td><td>
+ A sync command is sent after every persistent message to guarantee that it has been received; if the value is 'persistent', this is done only for persistent messages.
+ </td></tr><tr><td>
+ sync_ack
+ </td><td>
+ Boolean
+ </td><td>
+ A sync command is sent after every acknowledgement to guarantee that it has been received.
+ </td></tr><tr><td>
+ use_legacy_map_msg_format
+ </td><td>
+ Boolean
+ </td><td>
+ If you are using JMS Map messages and deploying a new client with any JMS client older than 0.8 release, you must set this to true to ensure the older clients can understand the map message encoding.
+ </td></tr><tr><td>
+ failover
+ </td><td>
+ {'singlebroker' | 'roundrobin' | 'failover_exchange' | 'nofailover' | '<class>'}
+ </td><td>
+ <p>
+ This option controls failover behaviour. The method <code class="literal">singlebroker</code> uses only the first broker in the list,
+ <code class="literal">roundrobin</code> will try each broker given in the broker list until a connection is established,
+ <code class="literal">failover_exchange</code> connects to the initial broker given in the broker URL and will receive membership updates
+ via the failover exchange. <code class="literal">nofailover</code> disables all retry and failover logic. Any other value is interpreted as a
+ classname which must implement the <code class="literal">org.apache.qpid.jms.failover.FailoverMethod</code> interface.
+ </p>
+ <p>
+ The broker list options <code class="literal">retries</code> and <code class="literal">connectdelay</code> (described below) determine the number of times a
+ connection to a broker will be retried and the the length of time to wait between successive connection attempts before moving on to
+ the next broker in the list. The failover option <code class="literal">cyclecount</code> controls the number of times to loop through the list of
+ available brokers before finally giving up.
+ </p>
+ <p>
+ Defaults to <code class="literal">roundrobin</code> if the brokerlist contains multiple brokers, or <code class="literal">singlebroker</code> otherwise.
+ </p>
+ </td></tr></tbody></table></div></div><br class="table-break"><p>
+ Broker lists are specified using a URL in this format:
+ </p><pre class="programlisting">brokerlist=<transport>://<host>[:<port>](?<param>='<value>')(&<param>='<value>')*</pre><p>
+ For instance, this is a typical broker list:
+ </p><pre class="programlisting">brokerlist='tcp://localhost:5672'
+ </pre><p>
+ A broker list can contain more than one broker address; if so, the connection is made to the first broker in the list that is available. In general, it is better to use the failover exchange when using multiple brokers, since it allows applications to fail over if a broker goes down.
+ </p><div class="example"><a name="id2554215"></a><p class="title"><b>Example 3.4. Broker Lists</b></p><div class="example-contents"><p>A broker list can specify properties to be used when connecting to the broker, such as security options. This broker list specifies options for a Kerberos connection using GSSAPI:</p><pre class="programlisting">
+ amqp://guest:guest@test/test?sync_ack='true'
+ &brokerlist='tcp://ip1:5672?sasl_mechs='GSSAPI''
+ </pre><p>This broker list specifies SSL options:</p><pre class="programlisting">
+ amqp://guest:guest@test/test?sync_ack='true'
+ &brokerlist='tcp://ip1:5672?ssl='true'&ssl_cert_alias='cert1''
+ </pre><p>
+ This broker list specifies two brokers using the connectdelay and retries broker options. It also illustrates the failover connection URL
+ property.
+ </p><pre class="programlisting">
+
+ amqp://guest:guest@/test?failover='roundrobin?cyclecount='2''
+ &brokerlist='tcp://ip1:5672?retries='5'&connectdelay='2000';tcp://ip2:5672?retries='5'&connectdelay='2000''
+ </pre></div></div><br class="example-break"><p>The following broker list options are supported.</p><div class="table"><a name="id2554265"></a><p class="title"><b>Table 3.3. Broker List Options</b></p><div class="table-contents"><table summary="Broker List Options" width="100%" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>
+ Option
+ </th><th>
+ Type
+ </th><th>
+ Description
+ </th></tr></thead><tbody><tr><td>
+ heartbeat
+ </td><td>
+ integer
+ </td><td>
+ frequency of heartbeat messages (in seconds)
+ </td></tr><tr><td>
+ sasl_mechs
+ </td><td>
+ --
+ </td><td>
+ For secure applications, we suggest CRAM-MD5,
+ DIGEST-MD5, or GSSAPI. The ANONYMOUS method is not
+ secure. The PLAIN method is secure only when used
+ together with SSL. For Kerberos, sasl_mechs must be
+ set to GSSAPI, sasl_protocol must be set to the
+ principal for the qpidd broker, e.g. qpidd/, and
+ sasl_server must be set to the host for the SASL
+ server, e.g. sasl.com. SASL External is supported
+ using SSL certification, e.g.
+ <code class="literal">ssl='true'&sasl_mechs='EXTERNAL'</code>
+ </td></tr><tr><td>
+ sasl_encryption
+ </td><td>
+ Boolean
+ </td><td>
+ If <code class="literal">sasl_encryption='true'</code>, the JMS client attempts to negotiate a security layer with the broker using GSSAPI to encrypt the connection. Note that for this to happen, GSSAPI must be selected as the sasl_mech.
+ </td></tr><tr><td>
+ sasl_protocol
+ </td><td>
+ --
+ </td><td>
+ Used only for
+ Kerberos. <code class="literal">sasl_protocol</code> must be
+ set to the principal for the qpidd broker,
+ e.g. <code class="literal">qpidd/</code>
+ </td></tr><tr><td>
+ sasl_server
+ </td><td>
+ --
+ </td><td>
+ For Kerberos, sasl_mechs must be set to GSSAPI,
+ sasl_server must be set to the host for the SASL
+ server, e.g. <code class="literal">sasl.com</code>.
+ </td></tr><tr><td>
+ trust_store
+ </td><td>
+ --
+ </td><td>
+ path to trust store
+ </td></tr><tr><td>
+ trust_store_password
+ </td><td>
+ </td><td>
+ Trust store password
+ </td></tr><tr><td>
+ key_store
+ </td><td>
+ </td><td>
+ path to key store
+ </td></tr><tr><td>
+ key_store_password
+ </td><td>
+ --
+ </td><td>
+ key store password
+ </td></tr><tr><td>
+ ssl
+ </td><td>
+ Boolean
+ </td><td>
+ If <code class="literal">ssl='true'</code>, the JMS client will encrypt the connection using SSL.
+ </td></tr><tr><td>
+ ssl_verify_hostname
+ </td><td>
+ Boolean
+ </td><td>
+ When using SSL you can enable hostname verification
+ by using <code class="literal">ssl_verify_hostname='true'</code> in the broker
+ URL.
+ </td></tr><tr><td>
+ ssl_cert_alias
+ </td><td>
+
+ </td><td>
+ If multiple certificates are present in the keystore, the alias will be used to extract the correct certificate.
+ </td></tr><tr><td>
+ retries
+ </td><td>
+ integer
+ </td><td>
+ The number of times to retry connection to each broker in the broker list. Defaults to 1.
+ </td></tr><tr><td>
+ connectdelay
+ </td><td>
+ integer
+ </td><td>
+ Length of time (in milliseconds) to wait before attempting to reconnect. Defaults to 0.
+ </td></tr><tr><td>
+ connecttimeout
+ </td><td>
+ integer
+ </td><td>
+ Length of time (in milliseconds) to wait for the socket connection to succeed. A value of 0 represents an infinite timeout, i.e. the connection attempt will block until established or an error occurs. Defaults to 30000.
+ </td></tr><tr><td>
+ tcp_nodelay
+ </td><td>
+ Boolean
+ </td><td>
+ If <code class="literal">tcp_nodelay='true'</code>, TCP packet
+ batching is disabled. Defaults to true since Qpid 0.14.
+ </td></tr></tbody></table></div></div><br class="table-break"></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="QpidJMS.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="QpidJMS.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch03s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 3. Using the Qpid JMS client </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 3.3. Java JMS Message Properties</td></tr></table></div><div class="main_text_area_bottom"></div></div></div></body></html>
Added: qpid/site/docs/books/0.20/Programming-In-Apache-Qpid/html/QpidWCF.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.20/Programming-In-Apache-Qpid/html/QpidWCF.html?rev=1413422&view=auto
==============================================================================
--- qpid/site/docs/books/0.20/Programming-In-Apache-Qpid/html/QpidWCF.html (added)
+++ qpid/site/docs/books/0.20/Programming-In-Apache-Qpid/html/QpidWCF.html Sun Nov 25 21:12:24 2012
@@ -0,0 +1,226 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 4. Using the Qpid WCF client</title><link rel="stylesheet" href="css/style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"><link rel="start" href="index.html" title="Programming in Apache Qpid"><link rel="up" href="index.html" title="Programming in Apache Qpid"><link rel="prev" href="ch03s06.html" title="3.6. Configuring the JMS Client"><link rel="next" href="ch04s02.html" title="4.2. Endpoints"></head><body><div class="container" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><DIV class="header"><DIV class="logo"><H1>Apache Qpidâ¢</H1><H2>Open Source AMQP Messaging</H2></DIV></DIV><DIV class="menu_box"><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Apache Qpid</H3><UL><LI><A href="http://qpid.apache.org/index.html">Home</A></LI><LI><A href="http://qpid.apache.org/download.html">Downlo
ad</A></LI><LI><A href="http://qpid.apache.org/getting_started.html">Getting Started</A></LI><LI><A href="http://www.apache.org/licenses/">License</A></LI><LI><A href="https://cwiki.apache.org/qpid/faq.html">FAQ</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Documentation</H3><UL><LI><A href="http://qpid.apache.org/documentation.html#doc-release">Latest Release</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-trunk">Trunk</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-archives">Archive</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Community</H3><UL><LI><A href="http://qpid.apache.org/getting_involved.html">Getting Involved</A></LI><LI><A href="http://qpid.apache.org/source_repository.html">Source Repository</A></LI><LI><A href="http://qpid.apache.org/mailing_lists.html">Mailing Lists</A></LI><LI><A
href="https://cwiki.apache.org/qpid/">Wiki</A></LI><LI><A href="https://issues.apache.org/jira/browse/qpid">Issue Reporting</A></LI><LI><A href="http://qpid.apache.org/people.html">People</A></LI><LI><A href="http://qpid.apache.org/acknowledgements.html">Acknowledgements</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Developers</H3><UL><LI><A href="https://cwiki.apache.org/qpid/building.html">Building Qpid</A></LI><LI><A href="https://cwiki.apache.org/qpid/developer-pages.html">Developer Pages</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About AMQP</H3><UL><LI><A href="http://qpid.apache.org/amqp.html">What is AMQP?</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About Apache</H3><UL><LI><A href="http://www.apache.org">Home</A></LI><LI><A href="http://www.apache.org/f
oundation/sponsorship.html">Sponsorship</A></LI><LI><A href="http://www.apache.org/foundation/thanks.html">Thanks</A></LI><LI><A href="http://www.apache.org/security/">Security</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV></DIV><div class="main_text_area"><div class="main_text_area_top"></div><div class="main_text_area_body"><DIV class="breadcrumbs"><span class="breadcrumb-link"><a href="index.html">Programming in Apache Qpid</a></span> > <span class="breadcrumb-node">Using the Qpid WCF client</span></DIV><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="QpidWCF"></a>Chapter 4. Using the Qpid WCF client</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="QpidWCF.html#id2556352">4.1. XML and Binary Bindings</a></span></dt><dt><span class="section"><a href="ch04s02.html">4.2. Endpoints</a></span></dt><dt><span class="section"><a href="ch04s03.html">4.3. Message H
eaders</a></span></dt><dt><span class="section"><a href="ch04s04.html">4.4. Security</a></span></dt><dt><span class="section"><a href="ch04s05.html">4.5. Transactions</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id2556352"></a>4.1. XML and Binary Bindings</h2></div></div></div><p>The Qpid WCF client provides two bindings, each with support for
+ Windows .NET transactions.</p><p>The AmqpBinding is suitable for communication between two WCF
+ applications. By default it uses the WCF binary .NET XML encoder
+ (BinaryMessageEncodingBindingElement) for efficient message
+ transmission, but it can also use the text and Message Transmission
+ Optimization Mechanism (MTOM) encoders. Here is a traditional service
+ model sample program using the AmqpBinding. It assumes that the queue
+ "hello_service_node" has been created and configured on the AMQP
+ broker.</p><div class="example"><a name="id2556374"></a><p class="title"><b>Example 4.1. Traditional service model "Hello world!" example</b></p><div class="example-contents"><pre class="programlisting">
+ namespace Apache.Qpid.Documentation.HelloService
+ {
+ using System;
+ using System.ServiceModel;
+ using System.ServiceModel.Channels;
+ using System.Threading;
+ using Apache.Qpid.Channel;
+
+ [ServiceContract]
+ public interface IHelloService
+ {
+ [OperationContract(IsOneWay = true, Action = "*")]
+ void SayHello(string greeting);
+ }
+
+ public class HelloService : IHelloService
+ {
+ private static int greetingCount;
+
+ public static int GreetingCount
+ {
+ get { return greetingCount; }
+ }
+
+ public void SayHello(string greeting)
+ {
+ Console.WriteLine("Service received: " + greeting);
+ greetingCount++;
+ }</pre><pre class="programlisting">
+ static void Main(string[] args)
+ {
+ try
+ {
+ AmqpBinding amqpBinding = new AmqpBinding();
+ amqpBinding.BrokerHost = "localhost";
+ amqpBinding.BrokerPort = 5672;
+
+ ServiceHost serviceHost = new ServiceHost(typeof(HelloService));
+ serviceHost.AddServiceEndpoint(typeof(IHelloService),
+ amqpBinding, "amqp:hello_service_node");
+ serviceHost.Open();
+
+ // Send the service a test greeting
+ Uri amqpClientUri=new Uri("amqp:amq.direct?routingkey=hello_service_node");
+ EndpointAddress clientEndpoint = new EndpointAddress(amqpClientUri);
+ ChannelFactory<IHelloService> channelFactory =
+ new ChannelFactory<IHelloService>(amqpBinding, clientEndpoint);
+ IHelloService clientProxy = channelFactory.CreateChannel();
+
+ clientProxy.SayHello("Greetings from WCF client");
+
+ // wait for service to process the greeting
+ while (HelloService.GreetingCount == 0)
+ {
+ Thread.Sleep(100);
+ }
+ channelFactory.Close();
+ serviceHost.Close();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine("Exception: {0}", e);
+ }
+ }
+ }
+ }
+ </pre></div></div><br class="example-break"><p>The second binding, AmqpBinaryBinding, is suitable for WCF
+ applications that need to inter-operate with non-WCF clients or that
+ wish to have direct access to the raw wire representation of the
+ message body. It relies on a custom encoder to read and write raw
+ (binary) content which operates similarly to the ByteStream encoder
+ (introduced in .NET 4.0). The encoder presents an abstract XML
+ infoset view of the raw message content on input. On output, the
+ encoder does the reverse and peels away the XML infoset layer exposing
+ the raw content to the wire representation of the message body. The
+ application must do the inverse of what the encoder does to allow the
+ XML infoset wrapper to cancel properly. This is demonstrated in the
+ following sample code (using the channel programming model) which
+ directly manipulates or provides callbacks to the WCF message readers
+ and writers when the content is consumed. In contrast to the
+ AmqpBinding sample where the simple greeting is encapsulated in a
+ compressed SOAP envelope, the wire representation of the message
+ contains the raw content and is identical and fully interoperable with
+ the Qpid C++ "Hello world!" example.</p><div class="example"><a name="id2556396"></a><p class="title"><b>Example 4.2. Binary "Hello world!" example using the channel model</b></p><div class="example-contents"><pre class="programlisting">
+ namespace Apache.Qpid.Samples.Channel.HelloWorld
+ {
+ using System;
+ using System.ServiceModel;
+ using System.ServiceModel.Channels;
+ using System.ServiceModel.Description;
+ using System.Text;
+ using System.Xml;
+ using Apache.Qpid.Channel;
+
+ public class HelloWorld
+ {
+ static void Main(string[] args)
+ {
+ String broker = "localhost";
+ int port = 5672;
+ String target = "amq.topic";
+ String source = "my_topic_node";
+
+ if (args.Length > 0)
+ {
+ broker = args[0];
+ }
+
+ if (args.Length > 1)
+ {
+ port = int.Parse(args[1]);
+ }
+
+ if (args.Length > 2)
+ {
+ target = args[2];
+ }
+
+ if (args.Length > 3)
+ {
+ source = args[3];
+ }
+
+ AmqpBinaryBinding binding = new AmqpBinaryBinding();
+ binding.BrokerHost = broker;
+ binding.BrokerPort = port;
+
+ IChannelFactory<IInputChannel> receiverFactory = binding.BuildChannelFactory<IInputChannel>();
+ receiverFactory.Open();
+ IInputChannel receiver = receiverFactory.CreateChannel(new EndpointAddress("amqp:" + source));
+ receiver.Open();
+
+ IChannelFactory<IOutputChannel> senderFactory = binding.BuildChannelFactory<IOutputChannel>();
+ senderFactory.Open();
+ IOutputChannel sender = senderFactory.CreateChannel(new EndpointAddress("amqp:" + target));
+ sender.Open();
+
+ sender.Send(Message.CreateMessage(MessageVersion.None, "", new HelloWorldBinaryBodyWriter()));
+
+ Message message = receiver.Receive();
+ XmlDictionaryReader reader = message.GetReaderAtBodyContents();
+ while (!reader.HasValue)
+ {
+ reader.Read();
+ }
+
+ byte[] binaryContent = reader.ReadContentAsBase64();
+ string text = Encoding.UTF8.GetString(binaryContent);
+
+ Console.WriteLine(text);
+
+ senderFactory.Close();
+ receiverFactory.Close();
+ }
+ }
+
+ public class HelloWorldBinaryBodyWriter : BodyWriter
+ {
+ public HelloWorldBinaryBodyWriter() : base (true) {}
+
+ protected override void OnWriteBodyContents(XmlDictionaryWriter writer)
+ {
+ byte[] binaryContent = Encoding.UTF8.GetBytes("Hello world!");
+
+ // wrap the content:
+ writer.WriteStartElement("Binary");
+ writer.WriteBase64(binaryContent, 0, binaryContent.Length);
+ }
+ }
+ }
+ </pre></div></div><br class="example-break"><p>Bindings define ChannelFactories and ChannelListeners associated with
+ an AMQP Broker. WCF will frequently automatically create and manage
+ the life cycle of a these and the resulting IChannel objects used in
+ message transfer. The binding parameters that can be set are:</p><div class="table"><a name="id2556432"></a><p class="title"><b>Table 4.1. WCF Binding Parameters</b></p><div class="table-contents"><table summary="WCF Binding Parameters" width="100%" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Parameter</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td>
+ BrokerHost
+ </td><td>
+ localhost
+ </td><td>
+ The broker's server name. Currently the WCF channel
+ only supports connections with a single broker.
+ Failover to multiple brokers will be provided in the
+ future.
+ </td></tr><tr><td>
+ BrokerPort
+ </td><td>
+ 5672
+ </td><td>
+ The port the broker is listening on.
+ </td></tr><tr><td>
+ PrefetchLimit
+ </td><td>
+ 0
+ </td><td>
+ The number of messages to prefetch from the amqp
+ broker before the application actually consumes them.
+ Increasing this number can dramatically increase the
+ read performance in some circumstances.
+ </td></tr><tr><td>
+ Shared
+ </td><td>
+ false
+ </td><td>
+ Indicates if separate channels to the same broker can
+ share an underlying AMQP tcp connection (provided they
+ also share the same authentication credentials).
+ </td></tr><tr><td>
+ TransferMode
+ </td><td>
+ buffered
+ </td><td>
+ Indicates whether the channel's encoder uses the WCF
+ BufferManager cache to temporarily store message
+ content during the encoding/decoding phase. For small
+ to medium sized SOAP based messages, buffered is
+ usually the preferred choice. For binary messages,
+ streamed TransferMode is the more efficient mode.
+ </td></tr></tbody></table></div></div><br class="table-break"></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03s06.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch04s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">3.6. Configuring the JMS Client </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 4.2. Endpoints</td></tr></table></div><div class="main_text_area_bottom"></div></div></div></body></html>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org