[CONF] Apache Qpid: queue state replication (page created)

2009-01-26 Thread confluence
 listeners (e.g. for replication). If set to 2, events will be
 generated for enqueues and dequeues


From an application, the arguments field of the queue-declare AMQP
command is used to convey this information. An entry should be added
to the map with key 'qpid.queue_event_generation' and an integer value
of 1 (to replicate only enqueue events) or 2 (to replicate both
enqueue and dequeue events).

Applications written using the c++ client API may fine the
qpid::client::QueueOptions class convenient. This has a
enableQueueEvents() method on it that can be used to set the option
(the instance of QueueOptions is then passed as the value of the
arguments field in the queue-declare command. The boolean option to
that method should be set to true if only enequeue events should be
replicated; by default it is false meaning that both enqueues and
dequeues will be replicated. E.g. 


QueueOptions options;
options.enableQueueEvents(false);
session.queueDeclare(arg::queue="my-queue", arg::arguments=options);


Example

Lets assume we will run the primary broker on host1 and the backup on
host2, have installed qpidd on both and have the replicating_listener
and replication_exchange plugins in qpidd's module directory1.

On host1 we start the source broker and specifcy that a queue called
'replication' should be used for storing the events until consumed by
the backup. We also request that this queue be created (as transient)
if not already specified:


qpidd --replication-queue replication-queue --create-replication-queue true --log-enable info+


On host2 we start up the backup broker ensuring that the replication
exchange module is loaded:


qpidd


We can then create the instance of that replication exchange that we
will use to process the events:


qpid-config -a host2 add exchange replication replication-exchange


If this fails with the message "Exchange type not implemented:
replication", it means the replication exchange module was not
loaded. Check that the module is installed on your system and if
necessary provide the full path to the library.

We then connect the replication queue on the source broker with the
replication exchange on the backup broker using the qpid-route
command:


qpid-route --ack 50 queue add host2 host1 replication-exchange replication-queue


The example above configures the bridge to acknowledge messages in
batches of 50.

Now create two queues (on both source and backup brokers), one
replicating both enqueues and dequeues (queue-a) and the other
replicating only dequeues (queue-b):


qpid-config -a host1 add queue queue-a --generate-queue-events 2
qpid-config -a host1 add queue queue-b --generate-queue-events 1

qpid-config -a host2 add queue queue-a
qpid-config -a host2 add queue queue-b


We are now ready to use the queues and see the replication. 

Any message enqueued on queue-a will be replicated to the backup
broker. When the message is acknowledged by a client connected to
host1 (and thus dequeued), that message will be removed from the copy
of the queue on host2. The state of queue-a on host2 will thus mirror
that of the equivalent queue on host1, albeit with a small lag. (Note
however that we must not have clients connected to host2 publish to-
or consume from- queue-a or the state will fail to replicate correctly
due to conflicts).

Any message enqueued on queue-b on host1 will also be enqueued on the
equivalent queue on host2. However the acknowledgement and consequent
dequeuing of messages from queue-b on host1 will have no effect on the
state of queue-b on host2.

1 If not the paths in the above may need to be modified. E.g. if
using modules built from a qpid svn checkout, the following would be
added to the command line used to start qpidd on host1:


--load-module /src/.libs/replicating_listener.so


and the following for the equivalent command line on host2:


--load-module /src/.libs/replication_exchange.so












Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Cheat Sheet for configuring Queue Options (page edited)

2009-01-26 Thread confluence










Page Edited :
qpid :
Cheat Sheet for configuring Queue Options



 
Cheat Sheet for configuring Queue Options
has been edited by Gordon Sim
(Jan 26, 2009).
 

 
 (View changes)
 

Content:
Configuring Queue Options

The C++ Broker M4 or later supports the following additional Queue constraints.


	Applying Queue Sizing Constraints
	Changing the Queue ordering Behaviors
	Setting additional behaviors
	Other Clients




Applying Queue Sizing Constraints

This allows to specify how to size a queue and what to do when the sizing constraints have been reached. The queue size  can be limited by the number messages (message depth) or byte depth on the queue.

Once the Queue meets/ exceeds these constraints the follow policies can be applied


	REJECT - Reject the published message
	FLOW_TO_DISK - Flow the messages to disk, to preserve memory
	RING - start overwriting messages in a ring based on sizing. If head meets tail, advance head
	RING_STRICT - start overwriting messages in a ring based on sizing. If head meets tail, AND the consumer has the tail message acquired it will reject



Examples:

Create a queue an auto delete queue that will support 100 000 bytes, and then REJECT

#include "qpid/client/QueueOptions.h"

QueueOptions qo;
qo.setSizePolicy(REJECT,10,0);

session.queueDeclare(arg::queue=queue, arg::autoDelete=true, arg::arguments=qo);


Create a queue that will support 1000 messages into a RING buffer


#include "qpid/client/QueueOptions.h"

QueueOptions qo;
qo.setSizePolicy(RING,0,1000);

session.queueDeclare(arg::queue=queue, arg::arguments=qo);


Changing the Queue ordering Behaviors (FIFO/LVQ)

The default ordering in a queue in Qpid is FIFO. However additional ordering semantics can be used namely LVQ (Last Value Queue). Last Value Queue is define as follows.

If I publish symbols RHT, IBM, JAVA, MSFT, and then publish RHT before the consumer is able to consume RHT, that message will be over written in the queue and the consumer will receive the last published value for RHT.

Example:


#include "qpid/client/QueueOptions.h"

QueueOptions qo;
qo.setOrdering(LVQ);

session.queueDeclare(arg::queue=queue, arg::arguments=qo);

.
string key;
qo.getLVQKey(key);


for each message, set the into application headers before transfer
message.getHeaders().setString(key,"RHT");


Notes:

	Messages that are dequeued and the re-queued will have the following exceptions. a.) if a new message has been queued with the same key, the re-queue from the consumer, will combine these two messages. b.) If an update happens for a message of the same key, after the re-queue, it will not update the re-queued message.  This is done to protect a client from being able to adversely manipulate the queue.
	Acquire: When a message is acquired from the queue, no matter it's position, it will behave the same as a dequeue
	LVQ does not support durable messages. If the queue or messages are declared durable on an LVQ, the durability will be ignored.



A fully worked LVQ Example can be found here


Setting additional behaviors 

Persist Last Node

This option is used in conjunction with clustering. It allows for a queue configured with this option to persist transient messages if the cluster fails down to the last node. If additional nodes in the cluster are restored it will stop persisting transient messages.

Note 

	if a cluster is started with only one active node, this mode will not be triggered. It is only triggered the first time the cluster fails down to 1 node.
	The queue MUST be configured durable



Example:


#include "qpid/client/QueueOptions.h"

QueueOptions qo;
qo.clearPersistLastNode();

session.queueDeclare(arg::queue=queue, arg::durable=true, arg::arguments=qo);


Queue event generation

This option is used to determine whether enqueue/dequeue events representing changes made to queue state are generated. These events can then be processed by plugins such as that used for queue state replication.

Example:


#include "qpid/client/QueueOptions.h"

QueueOptions options;
options.enableQueueEvents(false);
session.queueDeclare(arg::queue="my-queue", arg::arguments=options);


The boolean option indicates whether only enqueue events should be generated. The key set by this is 'qpid.queue_event_generation' and the value is and integer value of 1 (to replicate only enqueue events) or 2 (to replicate both enqueue and dequeue events).

Other Clients

Note that these options can be set from any client. QueueOptions just correctly formats the arguments passed to the QueueDeclare() method.













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07

[CONF] Apache Qpid: Documentation (page edited)

2009-01-26 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Gordon Sim
(Jan 26, 2009).
 

 
 (View changes)
 

Content:
How to documentation

qpidd - C++ Broker topics

	Running & Administration and getting started for the C++ Broker AMQP 0-10
	Cheat Sheet for configuring Queue Options
	Cheat Sheet for configuring Exchange Options
	Using Broker Federation
	SSL how to
	Understanding LVQ
	queue state replication



Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides

	C++ Client API documentation




.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 



Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		QMF Protocol
	
	




	Java Broker Management Tools
	
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
    Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Documentation (page edited)

2009-01-26 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Gordon Sim
(Jan 26, 2009).
 

 
 (View changes)
 

Content:
How to documentation

qpidd - C++ Broker topics

	Running & Administration and getting started for the C++ Broker AMQP 0-10
	Cheat Sheet for configuring Queue Options
	Cheat Sheet for configuring Exchange Options
	Using Broker Federation
	SSL how to
	Understanding LVQ
	Queue State Replication



Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides

	C++ Client API documentation




.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 



Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		QMF Protocol
	
	




	Java Broker Management Tools
	
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
    Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Java Broker Design - Flow to Disk (page created)

2009-01-26 Thread confluence










Page Created :
qpid :
Java Broker Design - Flow to Disk



 
Java Broker Design - Flow to Disk
has been created by Martin Ritchie
(Jan 26, 2009).
 

Content:












Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Cheat Sheet for configuring Queue Options (page edited)

2009-01-26 Thread confluence










Page Edited :
qpid :
Cheat Sheet for configuring Queue Options



 
Cheat Sheet for configuring Queue Options
has been edited by Carl Trieloff
(Jan 26, 2009).
 

 
 (View changes)
 

Content:
Configuring Queue Options

The C++ Broker M4 or later supports the following additional Queue constraints.



  

  Configuring Queue Options

  Applying Queue Sizing Constraints
  Changing the Queue ordering Behaviors (FIFO/LVQ)
  Setting additional behaviors 

  Persist Last Node
  Queue event generation

  Other Clients




Applying Queue Sizing Constraints

This allows to specify how to size a queue and what to do when the sizing constraints have been reached. The queue size  can be limited by the number messages (message depth) or byte depth on the queue.

Once the Queue meets/ exceeds these constraints the follow policies can be applied


	REJECT - Reject the published message
	FLOW_TO_DISK - Flow the messages to disk, to preserve memory
	RING - start overwriting messages in a ring based on sizing. If head meets tail, advance head
	RING_STRICT - start overwriting messages in a ring based on sizing. If head meets tail, AND the consumer has the tail message acquired it will reject



Examples:

Create a queue an auto delete queue that will support 100 000 bytes, and then REJECT

#include "qpid/client/QueueOptions.h"

QueueOptions qo;
qo.setSizePolicy(REJECT,10,0);

session.queueDeclare(arg::queue=queue, arg::autoDelete=true, arg::arguments=qo);


Create a queue that will support 1000 messages into a RING buffer


#include "qpid/client/QueueOptions.h"

QueueOptions qo;
qo.setSizePolicy(RING,0,1000);

session.queueDeclare(arg::queue=queue, arg::arguments=qo);


Changing the Queue ordering Behaviors (FIFO/LVQ)

The default ordering in a queue in Qpid is FIFO. However additional ordering semantics can be used namely LVQ (Last Value Queue). Last Value Queue is define as follows.

If I publish symbols RHT, IBM, JAVA, MSFT, and then publish RHT before the consumer is able to consume RHT, that message will be over written in the queue and the consumer will receive the last published value for RHT.

Example:


#include "qpid/client/QueueOptions.h"

QueueOptions qo;
qo.setOrdering(LVQ);

session.queueDeclare(arg::queue=queue, arg::arguments=qo);

.
string key;
qo.getLVQKey(key);


for each message, set the into application headers before transfer
message.getHeaders().setString(key,"RHT");


Notes:

	Messages that are dequeued and the re-queued will have the following exceptions. a.) if a new message has been queued with the same key, the re-queue from the consumer, will combine these two messages. b.) If an update happens for a message of the same key, after the re-queue, it will not update the re-queued message.  This is done to protect a client from being able to adversely manipulate the queue.
	Acquire: When a message is acquired from the queue, no matter it's position, it will behave the same as a dequeue
	LVQ does not support durable messages. If the queue or messages are declared durable on an LVQ, the durability will be ignored.



A fully worked LVQ Example can be found here


Setting additional behaviors 

Persist Last Node

This option is used in conjunction with clustering. It allows for a queue configured with this option to persist transient messages if the cluster fails down to the last node. If additional nodes in the cluster are restored it will stop persisting transient messages.

Note 

	if a cluster is started with only one active node, this mode will not be triggered. It is only triggered the first time the cluster fails down to 1 node.
	The queue MUST be configured durable



Example:


#include "qpid/client/QueueOptions.h"

QueueOptions qo;
qo.clearPersistLastNode();

session.queueDeclare(arg::queue=queue, arg::durable=true, arg::arguments=qo);


Queue event generation

This option is used to determine whether enqueue/dequeue events representing changes made to queue state are generated. These events can then be processed by plugins such as that used for queue state replication.

Example:


#include "qpid/client/QueueOptions.h"

QueueOptions options;
options.enableQueueEvents(false);
session.queueDeclare(arg::queue="my-queue", arg::arguments=options);


The boolean option indicates whether only enqueue events should be generated. The key set by this is 'qpid.queue_event_generation' and the value is and integer value of 1 (to replicate only enqueue events) or 2 (to replicate both enqueue and dequeue events).

Other Clients

Note that these options can be set from any client. QueueOptions just correctly formats the arguments passed to the QueueDeclare() method.







  

[CONF] Apache Qpid: Getting Started (page edited)

2009-01-26 Thread confluence










Page Edited :
qpid :
Getting Started



 
Getting Started
has been edited by Jonathan Robie
(Jan 26, 2009).
 

 
 (View changes)
 

Content:

	Download the software Download
	Start a broker
	
		Instructions for running an AMQP 0-9 Java broker 
		Instructions for Running an AMQP 0-10 C++ broker 
		Management tools  for the AMQP 0-10 broker
	
	
	Run an example program from the downloaded software, or from the following URLs
	
		C++ Examples 
		Java JMS Examples 
		Python Examples 
		Ruby Examples 
		.NET Examples 
	
	
	Read the API Guides and Documentation
	
		C++ API Guide 
		Documentation
	
	
	Get your Questions Answered
	
		Read the FAQ
		Ask a question on the user list users-subscr...@qpid.apache.org
	
	















Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Java Broker Design - Flow to Disk (page edited)

2009-01-26 Thread confluence
ueues.
	Augment Virtualhost Housekeeping thread to sweep queues that are over their inMemorySize limit to flow() data.
This could also be used to prefetch data into the queue as required.



Future Phases


	Enable the flow to disk of the queue structure. This will remove the final constraints on memory and only limit the broker to the amount of disk space available.













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Getting Started (page edited)

2009-01-26 Thread confluence










Page Edited :
qpid :
Getting Started



 
Getting Started
has been edited by Jonathan Robie
(Jan 26, 2009).
 

 
 (View changes)
 

Content:
To get started with Apache Qpid, follow the steps below.


	Download the software Download
	Start a broker
	
		Instructions for running an AMQP 0-9 Java broker 
		Instructions for Running an AMQP 0-10 C++ broker 
		Management tools  for the AMQP 0-10 broker
	
	
	Run an example program from the downloaded software, or from the following URLs (these are svn URLs, which you can use to browse the examples or check them out):
	
		C++ Examples 
		Java JMS Examples 
		Python Examples 
		Ruby Examples 
		.NET Examples 
	
	
	Read the API Guides and Documentation
	
		C++ API Guide 
		Documentation
	
	
	Get your Questions Answered
	
		Read the FAQ
		Ask a question on the user list users-subscr...@qpid.apache.org
	
	













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Documentation (page edited)

2009-01-26 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Jonathan Robie
(Jan 26, 2009).
 

 
 (View changes)
 

Content:
How to documentation

qpidd - C++ Broker topics

	Running an AMQP 0-10 C++ broker 
	Configuring Queue Options
	Configuring Exchange Options
	Using Broker Federation
	How to use SSL 
	Understanding Last Value Queues (LVQ) 
	Queue State Replication



Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides


	C++ Client API documentation




.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 



Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		QMF Protocol
	
	




	Java Broker Management Tools
	
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Documentation (page edited)

2009-01-26 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Jonathan Robie
(Jan 26, 2009).
 

 
 (View changes)
 

Content:
How to documentation

qpidd - C++ Broker topics

	Running an AMQP 0-10 C++ broker 
	Configuring Queue Options
	Configuring Exchange Options
	Using Broker Federation
	How to use SSL 
	Understanding Last Value Queues (LVQ) 
	Queue State Replication



Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides


	C++ Client API documentation




.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 



Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		Qpid Management Framework (QMF) Protocol
	
	




	Java Broker Management Tools
	
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: User Guide (page edited)

2009-01-27 Thread confluence










Page Edited :
qpid :
User Guide



 
User Guide
has been edited by Andrea Gazzarini
(Jan 27, 2009).
 

 
 (View changes)
 

Content:
User guide


QMan messages











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: QMan User Guide (page edited)

2009-01-27 Thread confluence










Page Edited :
qpid :
QMan User Guide



 
QMan User Guide
has been edited by Andrea Gazzarini
(Jan 27, 2009).
 

 
 (View changes)
 

Content:
User guide


QMan messages











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: QMan - Qpid Management bridge (page edited)

2009-01-27 Thread confluence










Page Edited :
qpid :
QMan - Qpid Management bridge



 
QMan - Qpid Management bridge
has been edited by Andrea Gazzarini
(Jan 27, 2009).
 

 
 (View changes)
 

Content:
QMan : Qpid Management Bridge

QMan is a management bridge for Qpid. It allows external clients to manage and monitor one or more Qpid brokers.

Please note: All WS-DM related concerns have to be considered part of M5 release.

QMan exposes the broker management interfaces using Java Management Extensions (JMX) and / or OASIS Web Services Distributed Management (WSDM). While the first one is supposed to be used by java based clients only the latter is an interoperable protocol that enables management clients to access and receive notifications of management-enabled resources using Web Services.

QMan can be easily integrated in your preexisting system in different ways :

	As a standalone application : in this case it runs as a server. More specifically it enables communication via RMI (for JMX) or via HTTP (for WS-DM); Note that when the WS-DM adapter is used the JMX interface is not exposed;
	As a deployable unit : it is also available as a standard Java web application (war); This is useful when there's a preexisting Application Server in your environment and you don't want start another additional server in order to run QMan.



User Documentation

With "User Documentation" we mean all information that you need to know in order to use QMan from a user perspective. Those information include :

	Get me up and running
	User Guide



The first one is a brief quick start guide in order to get QMan up and running; the User Guide describes QMan module with its features from a functional perspective.If you don't know where to start from, please consider having a look at the User Guide first in order to get a big picture about how things are working.

Technical Documentation

If you are interested in technical details about QMan and related technologies this is a good starting point. In general this section provides information about QMan design, interfaces, patterns and so on...

	QMan design
	JMX interface
	WS-DM interface













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: ACL (page edited)

2009-01-27 Thread confluence
that fail will result in a log statement being generated.

In the case of a fatal logging the full file will be validated before the broker shuts down.

Example file:


# Some Users
user t...@qpid
user mar...@qpid
user k...@qpid
user r...@qpid
user t...@qpid
user and...@qpid
user deb...@qpid

# Some groups
group admin t...@qpid mar...@qpid
group user-consume mar...@qpid t...@qpid
group group2 k...@qpid user-consume r...@qpid
group publisher group2 \
t...@qpid and...@qpid deb...@qpid

# Some rules
acl allow ca...@qpid create exchange name=carl.*
acl deny r...@qpid create queue
acl allow gu...@qpid bind exchange name=amq.topic routingkey=stocks.ibm.#  owner=self
acl allow user-consume create queue name=tmp.*

acl allow publisher publish all durable=false
acl allow publisher create queue name=RequestQueue
acl allow consumer consume queue durable=true
acl allow f...@qpid create all
acl allow b...@qpid all queue
acl allow admin all
acl deny k...@qpid all
acl allow all consume queue owner=self
acl allow all bind exchange owner=self

# Last (default) rule
acl deny all all




Design Documentation
Mapping of ACL traps to action and type

The C++ broker maps the ACL traps in the follow way for AMQP 0-10:
The Java broker currently only performs ACLs on the AMQP connection not on management functions:



 Object
 Action
 Properties
 Trap C++
 Trap Java 


Exchange
Create 
 name type alternate passive durable 
 ExchangeHandlerImpl::declare 
 ExchangeDeclareHandler 


Exchange
Delete 
 name 
 ExchangeHandlerImpl::delete 
 ExchangeDeleteHandler 


Exchange
Access 
 name 
 ExchangeHandlerImpl::query 

	




Exchange
Bind   
 name routingkey queuename owner 
 ExchangeHandlerImpl::bind 
 QueueBindHandler 


Exchange
Unbind 
 name routingkey 
ExchangeHandlerImpl::unbind 
 ExchangeUnbindHandler 


Exchange
Access 
 name queuename routingkey 
ExchangeHandlerImpl::bound 

	




Exchange
Publish
 name routingKey 
SemanticState::route 
 BasicPublishMethodHandler 


Queue   
Access 
 name 
QueueHandlerImpl::query 

	




Queue   
Create 
 name alternate passive durable exclusive autodelete 
QueueHandlerImpl::declare 
 QueueDeclareHandler 


Queue   
Purge  
 name 
QueueHandlerImpl::purge 
 QueuePurgeHandler 


Queue   
Purge  
 name 
Management::Queue::purge 

	




Queue   
Delete 
 name 
QueueHandlerImpl::delete 
 QueueDeleteHandler 


Queue   
Consume 
 name (possibly add in future?) 
MessageHandlerImpl::subscribe 
 BasicConsumeMethodHandler BasicGetMethodHandler 



Update 
 
ManagementProperty::set 

	





Access 
 
ManagementProperty::read 

	




Link
Create 
 
Management::connect 

	




Route   
Create 
 
Management:: -createFederationRoute- 

	




Route   
Delete 
 
Management:: -deleteFederationRoute- 

	




Virtualhost
 Access 
 name 
 TBD 
 ConnectionOpenMethodHandler 




Management actions that are not explicitly given a name property it will default the name property to management method name, if the action is 'W' Action will be 'Update', if 'R' Action will be 'Access'. 

for example, if the mgnt method 'joinCluster' was not mapped in schema it will be mapped in ACL file as follows



Object 
 Action 
 Property


Broker
Update
 name=joinCluster







v2 ACL User Guide


Writing Good/Fast ACL


The file gets read top down and rule get passed based on the first match. In the following example the first rule is a dead rule. I.e. the second rule is wider than the first rule. DON'T do this, it will force extra analysis, worst case if the parser does not kill the dead rule you might get a false deny.


allow pe...@qpid create queue name=tmp <-- dead rule!!
allow pe...@qpid create queue
deny all all


By default files end with 


deny all all


the mode of the ACL engine can be swapped to be allow based by putting the following at the end of the file


allow all all


Note that 'allow' based file will be a LOT faster for message transfer. This is because the AMQP specification does not allow for creating subscribes on publish, so the ACL is executed on every message transfer. Also, ACL's rules using less properties on publish will in general be faster.

Getting ACL to Log

In order to get log messages from ACL actions use allow-log and deny-log for example


allow-log j...@qpid all all
deny-log gu...@qpid all all


User Id / domains running with C++ broker

The user-id used for ACL is taken from the connection user-id. Thus in order to use ACL the broker authentication has to be setup. i.e. (if --auth no is used in combination with ACL the broker will deny everything)

The user id in the ACL file is of the form @ The Domain is configured via the SASL configuration for the broker, and the domain/realm for qpidd is set using --realm and default to 'QPID'.

To load the ACL module use, load the acl module cmd line or via the config file

./src/qpidd --load-module src/.libs/acl.so


The ACL plugin provi

[CONF] Apache Qpid: Download (page edited)

2009-01-28 Thread confluence










Page Edited :
qpid :
Download



 
Download
has been edited by Carl Trieloff
(Jan 28, 2009).
 

 
 (View changes)
 

Content:
Production Releases

These releases are well tested and appropriate for production use. M4 is the latest release of Qpid. 

Qpid supports the latest version of AMQP,  0-10, and some components also the AMQP 0-8 and 0-9, earlier versions. For details on compatibility among releases, see:
 AMQP Release Compatibility for Qpid

If you have any questions about these releases, please mail the user list user list

AMQP 0-10 Releases

Management tools



 cmd line (packaged with python)  
 http://www.apache.org/dist/qpid/M4/qpid-python-M4.tar.gz 


 QMan JMX bridge, WS-DM (packaged with Java)
 http://www.apache.org/dist/qpid/M4/qpid-java-M4.tar.gz 




Broker & Clients




 Full release & keys 
 http://www.apache.org/dist/qpid/M4/ 


 C++ broker & client
 http://www.apache.org/dist/qpid/M4/qpid-cpp-M4.tar.gz 


 Python client 
 http://www.apache.org/dist/qpid/M4/qpid-python-M4.tar.gz 


 C# (.NET, WCF, Excel) client 
 http://www.apache.org/dist/qpid/M4/qpid-dotnet-0-10-M4.zip 


 Ruby client 
 http://www.apache.org/dist/qpid/M4/qpid-ruby-M4.tar.gz 


 Java client (packaged with the broker)
 http://www.apache.org/dist/qpid/M4/qpid-java-M4.tar.gz 



AMQP 0-8 and 0-9 Releases



 Java broker & client
 http://www.apache.org/dist/qpid/M4/qpid-java-M4.tar.gz 


 Python client 
 http://www.apache.org/dist/qpid/M4/qpid-python-M4.tar.gz 


 C# (.NET) client  
http://www.apache.org/dist/qpid/M4/qpid-dotnet-0-8-M4.zip




Pre-built Linux Packages

Fedora 8, 9, 10

On Fedora, Qpid can be installed using yum. Because Java RPMs are not yet available in Fedora repos, the Java client is not in these distributions. 

To install the server:


# yum install qpidd


To install C++ and Python clients:


# yum install qpidc-devel



# yum install amqp python-qpid


To install documentation:


# yum install rhm-docs


To install persistence using BerkeleyDB:


# yum install rhm


Development Releases

Development releases are intended for testing and previewing new features. They have been tested and meet reasonable quality standards.

The development builds have been moved. We will soon post information on how to access them.


Source Code Repository

The latest version of the code is always available in the Source Repository.











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Qpid Management Framework (page edited)

2009-01-28 Thread confluence










Page Edited :
qpid :
Qpid Management Framework



 
Qpid Management Framework
has been edited by Ted Ross
(Jan 28, 2009).
 

  Change summary:
  New outline 

 
 (View changes)
 

Content:


  What Is QMF
  QMF Concepts
  How to Write a QMF Console
  How to Write a QMF Agent


What Is QMF


QMF Concepts


Console, Agent, and Broker


Schema


Package


Object Class, Event Class


Properties, Statistics, and Methods


Data Types


Object Identifiers


Class Keys and Class Versioning


How to Write a QMF Console


How to Write a QMF Agent












Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Qpid Management Framework (page edited)

2009-01-28 Thread confluence










Page Edited :
qpid :
Qpid Management Framework



 
Qpid Management Framework
has been edited by Ted Ross
(Jan 28, 2009).
 

 
 (View changes)
 

Content:


  What Is QMF
  Getting Started with QMF
  QMF Concepts
  How to Write a QMF Console
  How to Write a QMF Agent


What Is QMF

QMF (Qpid Management Framework) is a general-purpose management bus built on Qpid Messaging.  It takes advantage of the scalability, security, and rich capabilities of Qpid to provide flexible and easy-to-use manageability to a large set of applications.

Getting Started with QMF

QMF is used through two primary APIs.  The console API is used for console applications that wish to access and manipulate manageable components through QMF.  The agent API is used for application that wish to be managed through QMF.

The fastest way to get started with QMF is to work through the "How To" tutorials for consoles and agents.  For a deeper understanding of what is happening in the tutorials, it is recommended that you look at the Qmf Concepts section.


QMF Concepts


Console, Agent, and Broker


Schema


Package


Object Class, Event Class


Properties, Statistics, and Methods


Data Types


Object Identifiers


Class Keys and Class Versioning


How to Write a QMF Console


How to Write a QMF Agent












Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Download (page edited)

2009-01-28 Thread confluence










Page Edited :
qpid :
Download



 
Download
has been edited by Carl Trieloff
(Jan 28, 2009).
 

 
 (View changes)
 

Content:
Production Releases

These releases are well tested and appropriate for production use. M4 is the latest release of Qpid. 

Qpid supports the latest version of AMQP,  0-10, and some components also the AMQP 0-8 and 0-9, earlier versions. For details on compatibility among releases, see:
 AMQP Release Compatibility for Qpid

If you have any questions about these releases, please mail the user list user list

AMQP 0-10 Releases

Management tools



 cmd line (packaged with python)  
 http://www.apache.org/dist/qpid/M4/qpid-python-M4.tar.gz 


 QMan JMX bridge, WS-DM (packaged with Java)
 http://www.apache.org/dist/qpid/M4/qpid-java-M4.tar.gz 




Broker & Clients




 Full release & keys 
 http://www.apache.org/dist/qpid/M4/ 


 C++ broker & client
 http://www.apache.org/dist/qpid/M4/qpid-cpp-M4.tar.gz 


 Python client 
 http://www.apache.org/dist/qpid/M4/qpid-python-M4.tar.gz 


 C# (.NET, WCF, Excel) client 
 http://www.apache.org/dist/qpid/M4/qpid-dotnet-0-10-M4.zip 


 Ruby client 
 http://www.apache.org/dist/qpid/M4/qpid-ruby-M4.tar.gz 


 Java client (packaged with the broker)
 http://www.apache.org/dist/qpid/M4/qpid-java-M4.tar.gz 



AMQP 0-8 and 0-9 Releases



 Java broker & client
 http://www.apache.org/dist/qpid/M4/qpid-java-M4.tar.gz 


 Python client 
 http://www.apache.org/dist/qpid/M4/qpid-python-M4.tar.gz 


 C# (.NET) client  
http://www.apache.org/dist/qpid/M4/qpid-dotnet-0-8-M4.zip




Pre-built Linux Packages

Fedora 8, 9, 10

On Fedora, Qpid can be installed using yum. Because Java RPMs are not yet available in Fedora repos, the Java client is not in these distributions. 

To install the server:


# yum install qpidd


To install C++ and Python clients:


# yum install qpidc-devel



# yum install amqp python-qpid


To install documentation:


# yum install rhm-docs


To install persistence using an external store module:


# yum install rhm


Development Releases

Development releases are intended for testing and previewing new features. They have been tested and meet reasonable quality standards.

The development builds have been moved. We will soon post information on how to access them.


Source Code Repository

The latest version of the code is always available in the Source Repository.











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Qpid Management Framework (page edited)

2009-01-28 Thread confluence










Page Edited :
qpid :
Qpid Management Framework



 
Qpid Management Framework
has been edited by Ted Ross
(Jan 28, 2009).
 

 
 (View changes)
 

Content:


  What Is QMF
  Getting Started with QMF
  QMF Concepts
  How to Write a QMF Console
  How to Write a QMF Agent


What Is QMF

QMF (Qpid Management Framework) is a general-purpose management bus built on Qpid Messaging.  It takes advantage of the scalability, security, and rich capabilities of Qpid to provide flexible and easy-to-use manageability to a large set of applications.

Getting Started with QMF

QMF is used through two primary APIs.  The console API is used for console applications that wish to access and manipulate manageable components through QMF.  The agent API is used for application that wish to be managed through QMF.

The fastest way to get started with QMF is to work through the "How To" tutorials for consoles and agents.  For a deeper understanding of what is happening in the tutorials, it is recommended that you look at the Qmf Concepts section.


QMF Concepts


Console, Agent, and Broker


Schema


Package


Object Class, Event Class


Properties, Statistics, and Methods


Data Types


Object Identifiers


Class Keys and Class Versioning


How to Write a QMF Console

Please see the QMF Python Console Tutorial for information about using the console API with Python.

How to Write a QMF Agent












Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: QMF Python Console Tutorial (page created)

2009-01-28 Thread confluence










Page Created :
qpid :
QMF Python Console Tutorial



 
QMF Python Console Tutorial
has been created by Ted Ross
(Jan 28, 2009).
 

Content:


  Prerequisite - Install Qpid Messaging
  Synchronous Console Operations

  Creating a QMF Console Session and Attaching to a Broker
  Accessing Managed Objects

  Viewing Properties and Statistics of an Object
  Invoking Methods on an Object


  Asynchronous Console Operations


Prerequisite - Install Qpid Messaging

Synchronous Console Operations

Creating a QMF Console Session and Attaching to a Broker

Accessing Managed Objects

Viewing Properties and Statistics of an Object

Invoking Methods on an Object

Asynchronous Console Operations












Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: QMF Python Console Tutorial (page edited)

2009-01-28 Thread confluence










Page Edited :
qpid :
QMF Python Console Tutorial



 
QMF Python Console Tutorial
has been edited by Ted Ross
(Jan 28, 2009).
 

 
 (View changes)
 

Content:


  Prerequisite - Install Qpid Messaging
  Synchronous Console Operations

  Creating a QMF Console Session and Attaching to a Broker
  Accessing Managed Objects

  Viewing Properties and Statistics of an Object
  Invoking Methods on an Object


  Asynchronous Console Operations


Prerequisite - Install Qpid Messaging

QMF uses Qpid Messaging as its means of communication.  To use QMF, Qpid messaging must be installed somewhere in the network.  Qpid can be downloaded as source from Apache, is packaged with a number of Linux distributions, and can be purchased from commercial vendors that use Qpid.  Please see Download for information as to where to get Qpid Messaging.

Qpid Messaging includes a message broker (qpidd) which typically runs as a daemon on a system.  It also includes client bindings in various programming languages.  The Python-language client library includes the QMF console libraries needed for this tutorial.

Please note that Qpid Messaging has two broker implementations.  One is implemented in C++ and the other in Java.  At press time, QMF is supported only by the C++ broker.

If the goal is to get the tutorial examples up and running as quickly as possible, all of the Qpid components can be installed on a single system (even a laptop).  For more realistic deployments, the broker can be deployed on a server and the client/QMF libraries installed on other systems.

Synchronous Console Operations


Creating a QMF Console Session and Attaching to a Broker


Accessing Managed Objects


Viewing Properties and Statistics of an Object


Invoking Methods on an Object


Asynchronous Console Operations











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: QMF Python Console Tutorial (page edited)

2009-01-28 Thread confluence










Page Edited :
qpid :
QMF Python Console Tutorial



 
QMF Python Console Tutorial
has been edited by Ted Ross
(Jan 28, 2009).
 

 
 (View changes)
 

Content:


  Prerequisite - Install Qpid Messaging
  Synchronous Console Operations

  Creating a QMF Console Session and Attaching to a Broker
  Accessing Managed Objects

  Viewing Properties and Statistics of an Object
  Invoking Methods on an Object


  Asynchronous Console Operations


Prerequisite - Install Qpid Messaging

QMF uses Qpid Messaging as its means of communication.  To use QMF, Qpid messaging must be installed somewhere in the network.  Qpid can be downloaded as source from Apache, is packaged with a number of Linux distributions, and can be purchased from commercial vendors that use Qpid.  Please see Download for information as to where to get Qpid Messaging.

Qpid Messaging includes a message broker (qpidd) which typically runs as a daemon on a system.  It also includes client bindings in various programming languages.  The Python-language client library includes the QMF console libraries needed for this tutorial.

Please note that Qpid Messaging has two broker implementations.  One is implemented in C++ and the other in Java.  At press time, QMF is supported only by the C++ broker.

If the goal is to get the tutorial examples up and running as quickly as possible, all of the Qpid components can be installed on a single system (even a laptop).  For more realistic deployments, the broker can be deployed on a server and the client/QMF libraries installed on other systems.

Synchronous Console Operations

The Python console API for QMF can be used in a synchronous style, an asynchronous style, or a combination of both.  Synchronous operations are conceptually simple and are well suited for user-interactive tasks.  All operations are performed in the context of a Python function call.  If communication over the message bus is required to complete an operation, the function call blocks and waits for the expected result (or timeout failure) before returning control to the caller.

Creating a QMF Console Session and Attaching to a Broker

For the purposes of this tutorial, code examples will be shown as they are entered in an interactive python session.


$ python
Python 2.5.2 (r252:60911, Sep 30 2008, 15:41:38) 
[GCC 4.3.2 20080917 (Red Hat 4.3.2-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 



We will begin by importing the required libraries.  If the Python client is properly installed, these libraries will be found normally by the Python interpreter.


>>> from qmf.console import Session



We must now create a Session object to manage this QMF console session.


>>> sess = Session()



If no arguments are supplied to the creation of Session, it defaults to synchronous-only operation.  It also defaults to user-management of connections.  More on this in a moment.

We will now establish a connection to the messaging broker.  If the broker daemon is running on the local host, simply use the following:


>>> broker = sess.addBroker()



If the messaging broker is on a remote host, supply the URL to the broker in the addBroker function call.  Here's how to connect to a local broker using the URL.


>>> broker = sess.addBroker("amqp://localhost")



Accessing Managed Objects


Viewing Properties and Statistics of an Object


Invoking Methods on an Object


Asynchronous Console Operations











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: QMF Python Console Tutorial (page edited)

2009-01-28 Thread confluence
 calling the Session.getObjects function.

To illustrate, we'll get a list of objects representing queues in the message broker itself.


>>> queues = sess.getObjects(_class="queue", _package="org.apache.qpid.broker")



queues is an array of proxy objects representing real queues on the message broker.  A proxy object can be printed to display a description of the object.


>>> for q in queues:
...   print q
... 
org.apache.qpid.broker:queue[0-1537-1-0-58] 0-0-1-0-1152921504606846979:reply-localhost.localdomain.32004
org.apache.qpid.broker:queue[0-1537-1-0-61] 0-0-1-0-1152921504606846979:topic-localhost.localdomain.32004
>>> 




Viewing Properties and Statistics of an Object


Invoking Methods on an Object


Asynchronous Console Operations

Discovering what Kinds of Objects are Available











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: QMF Python Console Tutorial (page edited)

2009-01-28 Thread confluence
 calling the Session.getObjects function.

To illustrate, we'll get a list of objects representing queues in the message broker itself.


>>> queues = sess.getObjects(_class="queue", _package="org.apache.qpid.broker")



queues is an array of proxy objects representing real queues on the message broker.  A proxy object can be printed to display a description of the object.


>>> for q in queues:
...   print q
... 
org.apache.qpid.broker:queue[0-1537-1-0-58] 0-0-1-0-1152921504606846979:reply-localhost.localdomain.32004
org.apache.qpid.broker:queue[0-1537-1-0-61] 0-0-1-0-1152921504606846979:topic-localhost.localdomain.32004
>>> 



Viewing Properties and Statistics of an Object

Let us now focus our attention on one of the queue objects.


>>> queue = queues[0]



The attributes of an object are partitioned into properties and statistics.  Though the distinction is somewhat arbitrary, properties tend to be fairly static and may also be large and statistics tend to change rapidly and are relatively small (counters, etc.).

There are two ways to view the properties of an object.  An array of properties can be obtained using the getProperties function:


>>> props = queue.getProperties()
>>> for prop in props:
...   print prop
... 
(vhostRef, 0-0-1-0-1152921504606846979)
(name, u'reply-localhost.localdomain.32004')
(durable, False)
(autoDelete, True)
(exclusive, True)
(arguments, {})
>>> 



The getProperties function returns an array of tuples.  Each tuple consists of the property descriptor and the property value.

A more convenient way to access properties is by using the attribute of the proxy object directly:


>>> queue.autoDelete
True
>>> queue.name
u'reply-localhost.localdomain.32004'
>>> 



Statistics are accessed in the same way:


>>> stats = queue.getStatistics()
>>> for stat in stats:
...   print stat
... 
(msgTotalEnqueues, 53)
(msgTotalDequeues, 53)
(msgTxnEnqueues, 0)
(msgTxnDequeues, 0)
(msgPersistEnqueues, 0)
(msgPersistDequeues, 0)
(msgDepth, 0)
(byteDepth, 0)
(byteTotalEnqueues, 19116)
(byteTotalDequeues, 19116)
(byteTxnEnqueues, 0)
(byteTxnDequeues, 0)
(bytePersistEnqueues, 0)
(bytePersistDequeues, 0)
(consumerCount, 1)
(consumerCountHigh, 1)
(consumerCountLow, 1)
(bindingCount, 2)
(bindingCountHigh, 2)
(bindingCountLow, 2)
(unackedMessages, 0)
(unackedMessagesHigh, 0)
(unackedMessagesLow, 0)
(messageLatencySamples, 0)
(messageLatencyMin, 0)
(messageLatencyMax, 0)
(messageLatencyAverage, 0)
>>> 



or alternatively:


>>> queue.byteTotalEnqueues
19116
>>>





Invoking Methods on an Object


Asynchronous Console Operations

Discovering what Kinds of Objects are Available











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: QMF Python Console Tutorial (page edited)

2009-01-28 Thread confluence
 calling the Session.getObjects function.

To illustrate, we'll get a list of objects representing queues in the message broker itself.


>>> queues = sess.getObjects(_class="queue", _package="org.apache.qpid.broker")



queues is an array of proxy objects representing real queues on the message broker.  A proxy object can be printed to display a description of the object.


>>> for q in queues:
...   print q
... 
org.apache.qpid.broker:queue[0-1537-1-0-58] 0-0-1-0-1152921504606846979:reply-localhost.localdomain.32004
org.apache.qpid.broker:queue[0-1537-1-0-61] 0-0-1-0-1152921504606846979:topic-localhost.localdomain.32004
>>> 



Viewing Properties and Statistics of an Object

Let us now focus our attention on one of the queue objects.


>>> queue = queues[0]



The attributes of an object are partitioned into properties and statistics.  Though the distinction is somewhat arbitrary, properties tend to be fairly static and may also be large and statistics tend to change rapidly and are relatively small (counters, etc.).

There are two ways to view the properties of an object.  An array of properties can be obtained using the getProperties function:


>>> props = queue.getProperties()
>>> for prop in props:
...   print prop
... 
(vhostRef, 0-0-1-0-1152921504606846979)
(name, u'reply-localhost.localdomain.32004')
(durable, False)
(autoDelete, True)
(exclusive, True)
(arguments, {})
>>> 



The getProperties function returns an array of tuples.  Each tuple consists of the property descriptor and the property value.

A more convenient way to access properties is by using the attribute of the proxy object directly:


>>> queue.autoDelete
True
>>> queue.name
u'reply-localhost.localdomain.32004'
>>> 



Statistics are accessed in the same way:


>>> stats = queue.getStatistics()
>>> for stat in stats:
...   print stat
... 
(msgTotalEnqueues, 53)
(msgTotalDequeues, 53)
(msgTxnEnqueues, 0)
(msgTxnDequeues, 0)
(msgPersistEnqueues, 0)
(msgPersistDequeues, 0)
(msgDepth, 0)
(byteDepth, 0)
(byteTotalEnqueues, 19116)
(byteTotalDequeues, 19116)
(byteTxnEnqueues, 0)
(byteTxnDequeues, 0)
(bytePersistEnqueues, 0)
(bytePersistDequeues, 0)
(consumerCount, 1)
(consumerCountHigh, 1)
(consumerCountLow, 1)
(bindingCount, 2)
(bindingCountHigh, 2)
(bindingCountLow, 2)
(unackedMessages, 0)
(unackedMessagesHigh, 0)
(unackedMessagesLow, 0)
(messageLatencySamples, 0)
(messageLatencyMin, 0)
(messageLatencyMax, 0)
(messageLatencyAverage, 0)
>>> 



or alternatively:


>>> queue.byteTotalEnqueues
19116
>>>



The proxy objects to not automatically track changes that occur on the real objects.  In other words, if the real queue enqueues more bytes, viewing the byteTotalEnqueues statistic will show the same number as it did the first time.  To get updated data on a proxy object, use the update function call:


>>> queue.update()
>>> queue.byteTotalEnqueues
19783
>>>



Be Advised
The update method was added after the M4 release of Qpid/Qmf.  It may not be available in your libraries.

Invoking Methods on an Object


Asynchronous Console Operations

Discovering what Kinds of Objects are Available











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Documentation (page edited)

2009-01-28 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Jonathan Robie
(Jan 28, 2009).
 

 
 (View changes)
 

Content:
How to documentation

qpidd - C++ Broker topics

	Running an AMQP 0-10 C++ broker 
	Configuring Queue Options
	Configuring Exchange Options
	Using Broker Federation
	How to use SSL 
	Understanding Last Value Queues (LVQ) 
	Queue State Replication



Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides


	C++ Client API documentation
	Python Client API documentation 



.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 



Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		Qpid Management Framework (QMF) Protocol
	
	




	Java Broker Management Tools
	
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Documentation (page edited)

2009-01-28 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Jonathan Robie
(Jan 28, 2009).
 

 
 (View changes)
 

Content:
How to documentation

qpidd - C++ Broker topics

	Running an AMQP 0-10 C++ broker 
	Configuring Queue Options
	Configuring Exchange Options
	Using Broker Federation
	How to use SSL 
	Understanding Last Value Queues (LVQ) 
	Queue State Replication



Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides

Client API Documentation


	C++ Client API documentation
	Python Client API documentation 



.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 



Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		Qpid Management Framework (QMF) Protocol
	
	




	Java Broker Management Tools
	
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Documentation (page edited)

2009-01-28 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Jonathan Robie
(Jan 28, 2009).
 

 
 (View changes)
 

Content:
How to documentation

qpidd - C++ Broker topics

	Running an AMQP 0-10 C++ broker 
	Configuring Queue Options
	Configuring Exchange Options
	Using Broker Federation
	How to use SSL 
	Understanding Last Value Queues (LVQ) 
	Queue State Replication



Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides

Client API Documentation


	C++ Client API documentation
	Python Client API documentation 



.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 



Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		Qpid Management Framework (QMF) Protocol
	
	




	Java Broker Management Tools
	
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Index (page edited)

2009-01-29 Thread confluence










Page Edited :
qpid :
Index



 
Index
has been edited by Marnie McCormack
(Jan 29, 2009).
 

 
 (View changes)
 

Content:
Apache Qpid: Open Source AMQP Messaging

Enterprise Messaging systems let programs communicate by exchanging messages, much as people communicate by exchanging email. Unlike email, enterprise messaging systems provide guaranteed delivery, speed, security, and freedom from spam. Until recently, there was no open standard for Enterprise Messaging systems, so programmers either wrote their own, or used expensive proprietary systems.

AMQP Advanced Message Queuing Protocol is the first open standard for Enterprise Messaging. It is designed to support messaging for just about any distributed or business application. Routing can be configured flexibly, easily supporting common messaging paradigms like point-to-point, fanout, publish-subscribe, and request-response.

Apache Qpid implements the latest AMQP specification, providing transaction management, queuing, distribution, security, management, clustering, federation and heterogeneous multi-platform support and a lot more. And Apache Qpid is extremely fast. Apache Qpid aims to be 100% AMQP Compliant.

AMQP Messaging Servers

Qpid provides two AMQP messaging servers:


	C++ - high performance, low latency, and RDMA support.
	Java - Fully JMS compliant, runs on any Java platform



AMQP Client APIs: C++, Java, JMS, Ruby, Python, and C# 

Qpid provides AMQP Client APIs for the following languages:


	C++
	Java, fully conformant with JMS 1.1
	C# .NET, 0-10 using WCF
	Ruby
	Python




Operating Systems and Platforms: 

The Qpid C++ broker runs on the following operating systems:


	Linux systems
	Windows
	Solaris (coming soon)



The Qpid Java broker runs on:


	Any Java platform



Qpid clients can be run on the following operating systems and platforms:


	Java:
	
		any platform, production proven on Windows, Linux, Solaris
	
	




	C++:
	
		Linux
		Windows
		Solaris (coming soon)
	
	




	C#
	
		.NET
	
	




Getting Started


	Download Qpid here: download page
	Follow these instructions to get started fast: Getting Started
	If you need help, mail the lists



Getting Help

If you have a question about any aspect of Qpid or need help getting up and running please send an email to one of our mailing lists.

Getting Involved

We welcome contributions to Qpid. Mail us on one of our lists if you want to contribute to the project, have questions on using it or just want to get our thoughts on a topic...

Roadmap

For details on releases, a summary of what is in each release can be found here RoadMap











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Documentation (page edited)

2009-01-29 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Marnie McCormack
(Jan 29, 2009).
 

 
 (View changes)
 

Content:
How to documentation

Qpid Java Documentation

	Getting Started Guide



qpidd - C++ Broker topics

	Running an AMQP 0-10 C++ broker 
	Configuring Queue Options
	Configuring Exchange Options
	Using Broker Federation
	How to use SSL 
	Understanding Last Value Queues (LVQ) 
	Queue State Replication



Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides

Client API Documentation


	C++ Client API documentation
	Python Client API documentation 



.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 



Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		Qpid Management Framework (QMF) Protocol
	
	




	Java Broker Management Tools
	
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Documentation (page edited)

2009-01-29 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Marnie McCormack
(Jan 29, 2009).
 

 
 (View changes)
 

Content:
How to documentation

Qpid Java Documentation

	Getting Started Guide
	Qpid Java FAQ




qpidd - C++ Broker topics

	Running an AMQP 0-10 C++ broker 
	Configuring Queue Options
	Configuring Exchange Options
	Using Broker Federation
	How to use SSL 
	Understanding Last Value Queues (LVQ) 
	Queue State Replication



Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides

Client API Documentation


	C++ Client API documentation
	Python Client API documentation 



.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 



Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		Qpid Management Framework (QMF) Protocol
	
	




	Java Broker Management Tools
	
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Documentation (page edited)

2009-01-29 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Marnie McCormack
(Jan 29, 2009).
 

 
 (View changes)
 

Content:
How to documentation

Qpid Java Documentation

	Getting Started Guide
	Qpid Java FAQ
	Qpid Java How To




qpidd - C++ Broker topics

	Running an AMQP 0-10 C++ broker 
	Configuring Queue Options
	Configuring Exchange Options
	Using Broker Federation
	How to use SSL 
	Understanding Last Value Queues (LVQ) 
	Queue State Replication



Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides

Client API Documentation


	C++ Client API documentation
	Python Client API documentation 



.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 



Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		Qpid Management Framework (QMF) Protocol
	
	




	Java Broker Management Tools
	
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Documentation (page edited)

2009-01-29 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Marnie McCormack
(Jan 29, 2009).
 

 
 (View changes)
 

Content:
How to documentation

Qpid Java Documentation

	Getting Started Guide
	Qpid Java FAQ
	Qpid Java How To
	Management Tools




qpidd - C++ Broker topics

	Running an AMQP 0-10 C++ broker 
	Configuring Queue Options
	Configuring Exchange Options
	Using Broker Federation
	How to use SSL 
	Understanding Last Value Queues (LVQ) 
	Queue State Replication



Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides

Client API Documentation


	C++ Client API documentation
	Python Client API documentation 



.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 

Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		Qpid Management Framework (QMF) Protocol
	
	




	Java Broker Management Tools
	
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Documentation (page edited)

2009-01-29 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Marnie McCormack
(Jan 29, 2009).
 

 
 (View changes)
 

Content:
How to documentation

Qpid Java Documentation

	Qpid Java User Documentation 
	Getting Started Guide
	Qpid Java FAQ
	Qpid Java How To
	Management Tools




qpidd - C++ Broker topics

	Running an AMQP 0-10 C++ broker 
	Configuring Queue Options
	Configuring Exchange Options
	Using Broker Federation
	How to use SSL 
	Understanding Last Value Queues (LVQ) 
	Queue State Replication



Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides

Client API Documentation


	C++ Client API documentation
	Python Client API documentation 



.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 

Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		Qpid Management Framework (QMF) Protocol
	
	




	Java Broker Management Tools
	
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Qpid Java Documentation (page edited)

2009-01-29 Thread confluence










Page Edited :
qpid :
Qpid Java Documentation



 
Qpid Java Documentation
has been edited by Marnie McCormack
(Jan 29, 2009).
 

 
 (View changes)
 

Content:
Purpose

This is the index of all Qpid Java Documentation.

Introduction

The Qpid pure Java broker currently supports the following features:


	All features required by the Sun JMS 1.1 specification, fully tested
	Transaction support
	Persistence using a pluggable layer
	Pluggable security using SASL
	Management using JMX and an Eclipse Management Console application
	High performance header-based routing for messages
	Message Priorities
	Configurable logging and log archiving
	Threshold alerting
	ACLs
	Extensively tested on each release, including performance & reliability testing



Useful Links

General User Guides


	FAQ
	Getting Started Guide
	Broker Environment Variables
	System Properties
	Troubleshooting Guide
	URL Formats for Qpid
	Example Classes
	How Tos
Add New UsersConfigure ACLsConfigure Java Qpid to use a SSL connection.Configure Log4j CompositeRolling AppenderConfigure the Broker via config.xmlConfigure the Virtual Hosts via virtualhosts.xmlHow to Tune M3 Java Broker PerformanceHow to Use JNDIQpid Java Build How ToUse Priority Queues



Management Tools
Eclipse Management ConsoleMessageStore Tool

	Management Design notes



Developer Information


	Build How To
	Qpid Java Run Scripts
	Qpid Developer Documentation
	Coding Standards
	AMQP Version Handling
	URL format for Connections and Binding
	Creating Java unit tests with InVM broker



Testing

Interoperability Testing

Performance Testing


	Sustained Tests
	IBM JMS Performance Test Results



Release Plans


	Release Plans














Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Qpid Java Documentation (page edited)

2009-01-29 Thread confluence










Page Edited :
qpid :
Qpid Java Documentation



 
Qpid Java Documentation
has been edited by Marnie McCormack
(Jan 29, 2009).
 

 
 (View changes)
 

Content:
Purpose

This is the index of all Qpid Java Documentation.

Introduction

The Qpid pure Java broker currently supports the following features:


	All features required by the Sun JMS 1.1 specification, fully tested
	Transaction support
	Persistence using a pluggable layer
	Pluggable security using SASL
	Management using JMX and an Eclipse Management Console application
	High performance header-based routing for messages
	Message Priorities
	Configurable logging and log archiving
	Threshold alerting
	ACLs
	Extensively tested on each release, including performance & reliability testing
	Automatic client failover using connection properties



Upcoming features:


Useful Links

General User Guides


	FAQ
	Getting Started Guide
	Broker Environment Variables
	System Properties
	Troubleshooting Guide
	URL Formats for Qpid
	Example Classes
	How Tos
Add New UsersConfigure ACLsConfigure Java Qpid to use a SSL connection.Configure Log4j CompositeRolling AppenderConfigure the Broker via config.xmlConfigure the Virtual Hosts via virtualhosts.xmlHow to Tune M3 Java Broker PerformanceHow to Use JNDIQpid Java Build How ToUse Priority Queues



Management Tools
Eclipse Management ConsoleMessageStore Tool

	Management Design notes



Developer Information


	Build How To
	Qpid Java Run Scripts
	Qpid Developer Documentation
	Coding Standards
	AMQP Version Handling
	URL format for Connections and Binding
	Creating Java unit tests with InVM broker



Testing

Interoperability Testing

Performance Testing


	Sustained Tests
	IBM JMS Performance Test Results



Release Plans


	Release Plans














Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Qpid Java Documentation (page edited)

2009-01-29 Thread confluence










Page Edited :
qpid :
Qpid Java Documentation



 
Qpid Java Documentation
has been edited by Marnie McCormack
(Jan 29, 2009).
 

 
 (View changes)
 

Content:
Purpose

This is the index of all Qpid Java Documentation.

Introduction

The Qpid pure Java broker currently supports the following features:


	All features required by the Sun JMS 1.1 specification, fully tested
	Transaction support
	Persistence using a pluggable layer
	Pluggable security using SASL
	Management using JMX and an Eclipse Management Console application
	High performance header-based routing for messages
	Message Priorities
	Configurable logging and log archiving
	Threshold alerting
	ACLs
	Extensively tested on each release, including performance & reliability testing
	Automatic client failover using configurable connection properties
	Durable Queues/Subscriptions




Upcoming features:


Useful Links

General User Guides


	FAQ
	Getting Started Guide
	Broker Environment Variables
	System Properties
	Troubleshooting Guide
	URL Formats for Qpid
	Example Classes
	How Tos
Add New UsersConfigure ACLsConfigure Java Qpid to use a SSL connection.Configure Log4j CompositeRolling AppenderConfigure the Broker via config.xmlConfigure the Virtual Hosts via virtualhosts.xmlHow to Tune M3 Java Broker PerformanceHow to Use JNDIQpid Java Build How ToUse Priority Queues



Management Tools
Eclipse Management ConsoleMessageStore Tool

	Management Design notes



Developer Information


	Build How To
	Qpid Java Run Scripts
	Qpid Developer Documentation
	Coding Standards
	AMQP Version Handling
	URL format for Connections and Binding
	Creating Java unit tests with InVM broker



Testing

Interoperability Testing

Performance Testing


	Sustained Tests
	IBM JMS Performance Test Results



Release Plans


	Release Plans














Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Qpid Java Documentation (page edited)

2009-01-29 Thread confluence










Page Edited :
qpid :
Qpid Java Documentation



 
Qpid Java Documentation
has been edited by Marnie McCormack
(Jan 29, 2009).
 

 
 (View changes)
 

Content:
Purpose

This is the index of all Qpid Java Documentation.

Introduction

The Qpid pure Java broker currently supports the following features:


	All features required by the Sun JMS 1.1 specification, fully tested
	Transaction support
	Persistence using a pluggable layer
	Pluggable security using SASL
	Management using JMX and an Eclipse Management Console application
	High performance header-based routing for messages
	Message Priorities
	Configurable logging and log archiving
	Threshold alerting
	ACLs
	Extensively tested on each release, including performance & reliability testing
	Automatic client failover using configurable connection properties
	Durable Queues/Subscriptions



Upcoming features:

	Flow To Disk
	IP Whitelists



Useful Links

General User Guides


	FAQ
	Getting Started Guide
	Broker Environment Variables
	System Properties
	Troubleshooting Guide
	URL Formats for Qpid
	Example Classes
	How Tos
Add New UsersConfigure ACLsConfigure Java Qpid to use a SSL connection.Configure Log4j CompositeRolling AppenderConfigure the Broker via config.xmlConfigure the Virtual Hosts via virtualhosts.xmlHow to Tune M3 Java Broker PerformanceHow to Use JNDIQpid Java Build How ToUse Priority Queues



Management Tools
Eclipse Management ConsoleMessageStore Tool

	Management Design notes



Developer Information


	Build How To
	Qpid Java Run Scripts
	Qpid Developer Documentation
	Coding Standards
	AMQP Version Handling
	URL format for Connections and Binding
	Creating Java unit tests with InVM broker



Testing

Interoperability Testing

Performance Testing


	Sustained Tests
	IBM JMS Performance Test Results



Release Plans


	Release Plans














Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Qpid Java Documentation (page edited)

2009-01-29 Thread confluence










Page Edited :
qpid :
Qpid Java Documentation



 
Qpid Java Documentation
has been edited by Marnie McCormack
(Jan 29, 2009).
 

 
 (View changes)
 

Content:
Purpose

This is the index of all Qpid Java Documentation.

Introduction

The Qpid pure Java broker currently supports the following features:


	All features required by the Sun JMS 1.1 specification, fully tested
	Transaction support
	Persistence using a pluggable layer
	Pluggable security using SASL
	Management using JMX and an Eclipse Management Console application
	High performance header-based routing for messages
	Message Priorities
	Configurable logging and log archiving
	Threshold alerting
	ACLs
	Extensively tested on each release, including performance & reliability testing
	Automatic client failover using configurable connection properties
	Durable Queues/Subscriptions



Upcoming features:

	Flow To Disk
	IP Whitelist
	AMQP 0-10 Support (for interoperability)



Useful Links

General User Guides


	FAQ
	Getting Started Guide
	Broker Environment Variables
	System Properties
	Troubleshooting Guide
	URL Formats for Qpid
	Example Classes
	How Tos
Add New UsersConfigure ACLsConfigure Java Qpid to use a SSL connection.Configure Log4j CompositeRolling AppenderConfigure the Broker via config.xmlConfigure the Virtual Hosts via virtualhosts.xmlHow to Tune M3 Java Broker PerformanceHow to Use JNDIQpid Java Build How ToUse Priority Queues



Management Tools
Eclipse Management ConsoleMessageStore Tool

	Management Design notes



Developer Information


	Build How To
	Qpid Java Run Scripts
	Qpid Developer Documentation
	Coding Standards
	AMQP Version Handling
	URL format for Connections and Binding
	Creating Java unit tests with InVM broker



Testing

Interoperability Testing

Performance Testing


	Sustained Tests
	IBM JMS Performance Test Results



Release Plans


	Release Plans














Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Getting Started (page edited)

2009-01-29 Thread confluence










Page Edited :
qpid :
Getting Started



 
Getting Started
has been edited by Marnie McCormack
(Jan 29, 2009).
 

 
 (View changes)
 

Content:
To get started with Apache Qpid, follow the steps below.


	Download the software Download
	Start a broker
	
		Instructions for running a Qpid Java broker 
		Instructions for running a Qpid C++ broker 
		Management tools  for the AMQP 0-10 broker
	
	
	Run an example program from the downloaded software, or from the following URLs (these are svn URLs, which you can use to browse the examples or check them out):
	
		C++ Examples 
		Java JMS Examples 
		Python Examples 
		Ruby Examples 
		.NET Examples 
	
	
	Read the API Guides and Documentation
	
		C++ API Guide 
		Documentation
	
	
	Get your Questions Answered
	
		Read the FAQ
		Ask a question on the user list users-subscr...@qpid.apache.org
	
	













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Getting Started (page edited)

2009-01-29 Thread confluence










Page Edited :
qpid :
Getting Started



 
Getting Started
has been edited by Jonathan Robie
(Jan 29, 2009).
 

 
 (View changes)
 

Content:
To get started with Apache Qpid, follow the steps below.


	Download the software Download
	Start a broker
	
		Instructions for running a Qpid Java broker 
		Instructions for running a Qpid C++ broker 
		Management tools  for the AMQP 0-10 broker
	
	
	Run an example program from the downloaded software, or from the following URLs (these are svn URLs, which you can use to browse the examples or check them out):
	
		C++ Examples https://svn.apache.org/repos/asf/qpid/trunk/qpid/cpp/examples/ 
		Java JMS Examples https://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/example/ 
		Python Examples https://svn.apache.org/repos/asf/qpid/trunk/qpid/python/examples/ 
		Ruby Examples https://svn.apache.org/repos/asf/qpid/trunk/qpid/ruby/examples/ 
		.NET Examples http://svn.apache.org/viewvc/qpid/trunk/qpid/dotnet/client-010/examples/ 
	
	
	Read the API Guides and Documentation
	
		C++ API Guide 
		Documentation
	
	
	Get your Questions Answered
	
		Read the FAQ
		Ask a question on the user list users-subscr...@qpid.apache.org
	
	













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Getting Started (page edited)

2009-01-29 Thread confluence










Page Edited :
qpid :
Getting Started



 
Getting Started
has been edited by Jonathan Robie
(Jan 29, 2009).
 

 
 (View changes)
 

Content:
To get started with Apache Qpid, follow the steps below.


	Download the software Download
	Start a broker
	
		Instructions for running a Qpid Java broker 
		Instructions for running a Qpid C++ broker 
		Management tools  for the AMQP 0-10 broker
	
	
	Run an example program from the downloaded software, or from the following URLs (these are svn URLs, which you can use to browse the examples or check them out):
	
		C++ Examples: https://svn.apache.org/repos/asf/qpid/trunk/qpid/cpp/examples/ 
		Java JMS Examples: https://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/example/ 
		Python Examples: https://svn.apache.org/repos/asf/qpid/trunk/qpid/python/examples/ 
		Ruby Examples: https://svn.apache.org/repos/asf/qpid/trunk/qpid/ruby/examples/ 
		.NET Examples: http://svn.apache.org/viewvc/qpid/trunk/qpid/dotnet/client-010/examples/ 
	
	
	Read the API Guides and Documentation
	
		C++ API Guide 
		Documentation
	
	
	Get your Questions Answered
	
		Read the FAQ
		Ask a question on the user list users-subscr...@qpid.apache.org
	
	













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: QMF Python Console Tutorial (page edited)

2009-01-29 Thread confluence
 calling the Session.getObjects function.

To illustrate, we'll get a list of objects representing queues in the message broker itself.


>>> queues = sess.getObjects(_class="queue", _package="org.apache.qpid.broker")



queues is an array of proxy objects representing real queues on the message broker.  A proxy object can be printed to display a description of the object.


>>> for q in queues:
...   print q
... 
org.apache.qpid.broker:queue[0-1537-1-0-58] 0-0-1-0-1152921504606846979:reply-localhost.localdomain.32004
org.apache.qpid.broker:queue[0-1537-1-0-61] 0-0-1-0-1152921504606846979:topic-localhost.localdomain.32004
>>> 



Viewing Properties and Statistics of an Object

Let us now focus our attention on one of the queue objects.


>>> queue = queues[0]



The attributes of an object are partitioned into properties and statistics.  Though the distinction is somewhat arbitrary, properties tend to be fairly static and may also be large and statistics tend to change rapidly and are relatively small (counters, etc.).

There are two ways to view the properties of an object.  An array of properties can be obtained using the getProperties function:


>>> props = queue.getProperties()
>>> for prop in props:
...   print prop
... 
(vhostRef, 0-0-1-0-1152921504606846979)
(name, u'reply-localhost.localdomain.32004')
(durable, False)
(autoDelete, True)
(exclusive, True)
(arguments, {})
>>> 



The getProperties function returns an array of tuples.  Each tuple consists of the property descriptor and the property value.

A more convenient way to access properties is by using the attribute of the proxy object directly:


>>> queue.autoDelete
True
>>> queue.name
u'reply-localhost.localdomain.32004'
>>> 



Statistics are accessed in the same way:


>>> stats = queue.getStatistics()
>>> for stat in stats:
...   print stat
... 
(msgTotalEnqueues, 53)
(msgTotalDequeues, 53)
(msgTxnEnqueues, 0)
(msgTxnDequeues, 0)
(msgPersistEnqueues, 0)
(msgPersistDequeues, 0)
(msgDepth, 0)
(byteDepth, 0)
(byteTotalEnqueues, 19116)
(byteTotalDequeues, 19116)
(byteTxnEnqueues, 0)
(byteTxnDequeues, 0)
(bytePersistEnqueues, 0)
(bytePersistDequeues, 0)
(consumerCount, 1)
(consumerCountHigh, 1)
(consumerCountLow, 1)
(bindingCount, 2)
(bindingCountHigh, 2)
(bindingCountLow, 2)
(unackedMessages, 0)
(unackedMessagesHigh, 0)
(unackedMessagesLow, 0)
(messageLatencySamples, 0)
(messageLatencyMin, 0)
(messageLatencyMax, 0)
(messageLatencyAverage, 0)
>>> 



or alternatively:


>>> queue.byteTotalEnqueues
19116
>>>



The proxy objects do not automatically track changes that occur on the real objects.  For example, if the real queue enqueues more bytes, viewing the byteTotalEnqueues statistic will show the same number as it did the first time.  To get updated data on a proxy object, use the update function call:


>>> queue.update()
>>> queue.byteTotalEnqueues
19783
>>>



Be Advised
The update method was added after the M4 release of Qpid/Qmf.  It may not be available in your distribution.

Invoking Methods on an Object

Up to this point, we have used the QMF Console API to find managed objects and view their attributes, a read-only activity.  The next topic to illustrate is how to invoke a method on a managed object.  Methods allow consoles to control the managed agents by either triggering a one-time action or by changing the values of attributes in an object.

Asynchronous Console Operations

Discovering what Kinds of Objects are Available











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: QMF Python Console Tutorial (page edited)

2009-01-29 Thread confluence
 1}
>>> print result.status
0
>>> print result.text
OK
>>> print result.outArgs
{'body': u'Message Body', 'sequence': 1}
>>>



In the above example, we have invoked the echo method on the instance of the broker designated by the proxy "br" with a sequence argument of 1 and a body argument of "Message Body".  The result indicates success and contains the output arguments (in this case copies of the input arguments).

To be more precise... Calling echo on the proxy causes the input arguments to be marshalled and sent to the remote agent where the method is executed.  Once the method execution completes, the output arguments are marshalled and sent back to the console to be stored in the method result.

Asynchronous Console Operations

Discovering what Kinds of Objects are Available











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: QMF Python Console Tutorial (page edited)

2009-01-29 Thread confluence
 1}
>>> print result.status
0
>>> print result.text
OK
>>> print result.outArgs
{'body': u'Message Body', 'sequence': 1}
>>>



In the above example, we have invoked the echo method on the instance of the broker designated by the proxy "br" with a sequence argument of 1 and a body argument of "Message Body".  The result indicates success and contains the output arguments (in this case copies of the input arguments).

To be more precise... Calling echo on the proxy causes the input arguments to be marshalled and sent to the remote agent where the method is executed.  Once the method execution completes, the output arguments are marshalled and sent back to the console to be stored in the method result.

You are probably wondering how you are supposed to know what types the arguments are and which arguments are input, which are output, or which are both.  This will be addressed later in the "Discovering what Kinds of Objects are Available" section.

Asynchronous Console Operations

Discovering what Kinds of Objects are Available











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: QMF Python Console Tutorial (page edited)

2009-01-29 Thread confluence
ody': u'Message Body', 'sequence': 1}
>>> print result.status
0
>>> print result.text
OK
>>> print result.outArgs
{'body': u'Message Body', 'sequence': 1}
>>>



In the above example, we have invoked the echo method on the instance of the broker designated by the proxy "br" with a sequence argument of 1 and a body argument of "Message Body".  The result indicates success and contains the output arguments (in this case copies of the input arguments).

To be more precise... Calling echo on the proxy causes the input arguments to be marshalled and sent to the remote agent where the method is executed.  Once the method execution completes, the output arguments are marshalled and sent back to the console to be stored in the method result.

You are probably wondering how you are supposed to know what types the arguments are and which arguments are input, which are output, or which are both.  This will be addressed later in the "Discovering what Kinds of Objects are Available" section.

Asynchronous Console Operations

QMF is built on top of a middleware messaging layer (Qpid Messaging).  Because of this, QMF can use some communication patterns that are difficult to implement using network transports like UDP, TCP, or SSL.  One of these patterns is called the Publication and Subscription pattern (pub-sub for short).  In the pub-sub pattern, data sources publish information without a particular destination in mind.  Data sinks (destinations) subscribe using a set of criteria that describes what kind of data they are interested in receiving.  Data published by a source may be received by zero, one, or many subscribers.

QMF uses the pub-sub pattern to distribute events, object creation and deletion, and changes to properties and statistics.  A console application using the QMF Console API can receive these asynchronous and unsolicited events and updates.  This is useful for applications that store and analyze events and/or statistics.  It is also useful for applications that react to certain events or conditions.

Note that console applications may always use the synchronous mechanisms.

Creating a Console Class to Receive Asynchronous Data

Asynchronous API operation occurs when the console application supplies a Console object to the session manager.  The Console object (which overrides the qmf.console.Console class) handles all asynchronously arriving data.  The Console class has the following methods.  Any number of these methods may be overridden by the console application.



Method
Arguments
Invoked when...


brokerConnected
broker
a connection to a broker is established


brokerDisconnected
broker
a connection to a broker is lost


newPackage
name
a new package is seen on the QMF bus


newClass
kind, classKey
a new class (event or object) is seen on the QMF bus


newAgent
agent
a new agent appears on the QMF bus


delAgent
agent
an agent disconnects from the QMF bus


objectProps
broker, object
the properties of an object are published


objectStats
broker, object
the statistics of an object are published


event
broker, event
an event is published


heartbeat
agent, timestamp
a heartbeat is published by an agent


brokerInfo
broker
information about a connected broker is available to be queried





Discovering what Kinds of Objects are Available
















Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: QMF Python Console Tutorial (page edited)

2009-01-29 Thread confluence
esult
OK (0) - {'body': u'Message Body', 'sequence': 1}
>>> print result.status
0
>>> print result.text
OK
>>> print result.outArgs
{'body': u'Message Body', 'sequence': 1}
>>>



In the above example, we have invoked the echo method on the instance of the broker designated by the proxy "br" with a sequence argument of 1 and a body argument of "Message Body".  The result indicates success and contains the output arguments (in this case copies of the input arguments).

To be more precise... Calling echo on the proxy causes the input arguments to be marshalled and sent to the remote agent where the method is executed.  Once the method execution completes, the output arguments are marshalled and sent back to the console to be stored in the method result.

You are probably wondering how you are supposed to know what types the arguments are and which arguments are input, which are output, or which are both.  This will be addressed later in the "Discovering what Kinds of Objects are Available" section.

Asynchronous Console Operations

QMF is built on top of a middleware messaging layer (Qpid Messaging).  Because of this, QMF can use some communication patterns that are difficult to implement using network transports like UDP, TCP, or SSL.  One of these patterns is called the Publication and Subscription pattern (pub-sub for short).  In the pub-sub pattern, data sources publish information without a particular destination in mind.  Data sinks (destinations) subscribe using a set of criteria that describes what kind of data they are interested in receiving.  Data published by a source may be received by zero, one, or many subscribers.

QMF uses the pub-sub pattern to distribute events, object creation and deletion, and changes to properties and statistics.  A console application using the QMF Console API can receive these asynchronous and unsolicited events and updates.  This is useful for applications that store and analyze events and/or statistics.  It is also useful for applications that react to certain events or conditions.

Note that console applications may always use the synchronous mechanisms.

Creating a Console Class to Receive Asynchronous Data

Asynchronous API operation occurs when the console application supplies a Console object to the session manager.  The Console object (which overrides the qmf.console.Console class) handles all asynchronously arriving data.  The Console class has the following methods.  Any number of these methods may be overridden by the console application.  Any method that is not overridden defaults to a null handler which takes no action when invoked.



Method
Arguments
Invoked when...


brokerConnected
broker
a connection to a broker is established


brokerDisconnected
broker
a connection to a broker is lost


newPackage
name
a new package is seen on the QMF bus


newClass
kind, classKey
a new class (event or object) is seen on the QMF bus


newAgent
agent
a new agent appears on the QMF bus


delAgent
agent
an agent disconnects from the QMF bus


objectProps
broker, object
the properties of an object are published


objectStats
broker, object
the statistics of an object are published


event
broker, event
an event is published


heartbeat
agent, timestamp
a heartbeat is published by an agent


brokerInfo
broker
information about a connected broker is available to be queried



Supplied with the API is a class called DebugConsole.  This is a test Console instance that overrides all of the methods such that arriving asynchronous data is printed to the screen.  This can be used to see all of the arriving asynchronous data.

Receiving Events

We'll start the example from the beginning to illustrate the reception and handling of events.  In this example, we will create a Console class that handles broker-connect, broker-disconnect, and event messages.  We will also allow the session manager to manage the broker connection for us.

Begin by importing the necessary classes:


>>> from qmf.console import Session, Console



Now, create a subclass of Console that handles the three message types:


>>> class EventConsole(Console):
...   def brokerConnected(self, broker):
... print "brokerConnected:", broker
...   def brokerDisconnected(self, broker):
... print "brokerDisconnected:", broker
...   def event(self, broker, event):
... print "event:", event
...
>>>



Make an instance of the new class:


>>> myConsole = EventConsole()



Create a Session class using the console instance.  In addition, we shall request that the session manager do the connection management for us.  Notice also that we are requesting that the session manager not receive objects or heartbeats.  Since this example is concerned only with events, we can optimize the use of the messaging bus by tel

[CONF] Apache Qpid: QMF Python Console Tutorial (page edited)

2009-01-30 Thread confluence
bus by telling the session manager not to subscribe for object updates or heartbeats.


>>> sess = Session(myConsole, manageConnections=True, rcvObjects=False, rcvHeartbeats=False)
>>> broker = sess.addBroker()
>>>



Once the broker is added, we will begin to receive asynchronous events (assuming there is a functioning broker available to connect to).


brokerConnected: Broker connected at: localhost:5672
event: Thu Jan 29 19:53:19 2009 INFO  org.apache.qpid.broker:bind broker=localhost:5672 ...



Receiving Objects

To illustrate asynchronous handling of objects, a small console program is supplied.  The entire program is shown below for convenience.  We will then go through it part-by-part to explain its design.


# Import needed classes
from qmf.console import Session, Console
from timeimport sleep

# Declare a dictionary to map object-ids to queue names
queueMap = {}

# Customize the Console class to receive object updates.
class MyConsole(Console):

  # Handle property updates
  def objectProps(self, broker, record):

# Verify that we have received a queue object.  Exit otherwise.
classKey = record.getClassKey()
if classKey.getClassName() != "queue":
  return

# If this object has not been seen before, create a new mapping from objectID to name
oid = record.getObjectId()
if oid not in queueMap:
  queueMap[oid] = record.name

  # Handle statistic updates
  def objectStats(self, broker, record):

# Ignore updates for objects that are not in the map
oid = record.getObjectId()
if oid not in queueMap:
  return

# Print the queue name and some statistics
print "%s: enqueues=%d dequeues=%d" % (queueMap[oid], record.msgTotalEnqueues, record.msgTotalDequeues)

# if the delete-time is non-zero, this object has been deleted.  Remove it from the map.
if record.getTimestamps()[2] > 0:
  queueMap.pop(oid)

# Create an instance of the QMF session manager.  Set userBindings to True to allow
# this program to choose which objects classes it is interested in.
sess = Session(MyConsole(), manageConnections=True, rcvEvents=False, userBindings=True)

# Register to receive updates for broker:queue objects.
sess.bindClass("org.apache.qpid.broker", "queue")
broker = sess.addBroker()

# Suspend processing while the asynchronous operations proceed.
try:
  while True:
sleep(1)
except:
  pass

# Disconnect the broker before exiting.
sess.delBroker(broker)


Discovering what Kinds of Objects are Available















Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: QMF Python Console Tutorial (page edited)

2009-01-30 Thread confluence
Session(MyConsole(), manageConnections=True, rcvEvents=False, userBindings=True)

# Register to receive updates for broker:queue objects.
sess.bindClass("org.apache.qpid.broker", "queue")



The above code is illustrative of the way a console application can tune its use of the QMF bus.  Note that rcvEvents is set to False.  This prevents the reception of events.  Note also the use of userBindings=True and the call to sess.bindClass.  If userBindings is set to False (its default), the session will receive object updates for all classes of object.  In the case above, the application is only interested in broker:queue objects and reduces its bus bandwidth usage by requesting updates to only that class.  bindClass may be called as many times as desired to add classes to the list of subscribed classes.


Discovering what Kinds of Objects are Available















Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Qpid Management Framework (page edited)

2009-01-30 Thread confluence










Page Edited :
qpid :
Qpid Management Framework



 
Qpid Management Framework
has been edited by Ted Ross
(Jan 30, 2009).
 

 
 (View changes)
 

Content:


  What Is QMF
  Getting Started with QMF
  QMF Concepts
  How to Write a QMF Console
  How to Write a QMF Agent


What Is QMF

QMF (Qpid Management Framework) is a general-purpose management bus built on Qpid Messaging.  It takes advantage of the scalability, security, and rich capabilities of Qpid to provide flexible and easy-to-use manageability to a large set of applications.

Getting Started with QMF

QMF is used through two primary APIs.  The console API is used for console applications that wish to access and manipulate manageable components through QMF.  The agent API is used for application that wish to be managed through QMF.

The fastest way to get started with QMF is to work through the "How To" tutorials for consoles and agents.  For a deeper understanding of what is happening in the tutorials, it is recommended that you look at the Qmf Concepts section.


QMF Concepts

This section introduces important concepts underlying QMF.

Console, Agent, and Broker

The major architectural components of QMF are the Console, the Agent, and the Broker.  Console components are the "managing" components of QMF and agent components are the "managed" parts.  The broker is a central (possibly distributed, clustered and fault-tolerant) component that manages name spaces and caches schema information.

A console application may be a command-line utility, a three-tiered web-based GUI, a collection and storage device, a specialized application that monitors and reacts to events and conditions, or anything else somebody wishes to develop that uses QMF management data.

An agent application is any application that has been enhanced to allow itself to be managed via QMF.


   +-++-++---++---+
   | CLI utility || Web app || Audit storage || Event correlation |
   +-++-++---++---+
  ^^ ^^  |
  || ||  |
  vv vv  v
+-+
|Qpid Messaging Bus (with QMF Broker capability)  |
+-+
^ ^ ^
| | |
v v v
   ++++++
   | Manageable app || Manageable app || Manageable app |
   ++++++



In the above diagram, the Manageable apps are agents, the CLI utility, Web app, and Audit storag are consoles, and Event correlation is both a console and an agent because it can create events based on the aggregation of what it sees.

Schema


Package


Object Class, Event Class


Properties, Statistics, and Methods


Data Types


Object Identifiers


Class Keys and Class Versioning


How to Write a QMF Console

Please see the QMF Python Console Tutorial for information about using the console API with Python.

How to Write a QMF Agent













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Qpid Management Framework (page edited)

2009-01-30 Thread confluence










Page Edited :
qpid :
Qpid Management Framework



 
Qpid Management Framework
has been edited by Ted Ross
(Jan 30, 2009).
 

 
 (View changes)
 

Content:


  What Is QMF
  Getting Started with QMF
  QMF Concepts
  How to Write a QMF Console
  How to Write a QMF Agent


What Is QMF

QMF (Qpid Management Framework) is a general-purpose management bus built on Qpid Messaging.  It takes advantage of the scalability, security, and rich capabilities of Qpid to provide flexible and easy-to-use manageability to a large set of applications.

Getting Started with QMF

QMF is used through two primary APIs.  The console API is used for console applications that wish to access and manipulate manageable components through QMF.  The agent API is used for application that wish to be managed through QMF.

The fastest way to get started with QMF is to work through the "How To" tutorials for consoles and agents.  For a deeper understanding of what is happening in the tutorials, it is recommended that you look at the Qmf Concepts section.


QMF Concepts

This section introduces important concepts underlying QMF.

Console, Agent, and Broker

The major architectural components of QMF are the Console, the Agent, and the Broker.  Console components are the "managing" components of QMF and agent components are the "managed" parts.  The broker is a central (possibly distributed, clustered and fault-tolerant) component that manages name spaces and caches schema information.

A console application may be a command-line utility, a three-tiered web-based GUI, a collection and storage device, a specialized application that monitors and reacts to events and conditions, or anything else somebody wishes to develop that uses QMF management data.

An agent application is any application that has been enhanced to allow itself to be managed via QMF.


   +-++-++---++---+
   | CLI utility || Web app || Audit storage || Event correlation |
   +-++-++---++---+
  ^^ ^^  |
  || ||  |
  vv vv  v
+-+
|Qpid Messaging Bus (with QMF Broker capability)  |
+-+
^ ^ ^
| | |
v v v
   ++++++
   | Manageable app || Manageable app || Manageable app |
   ++++++



In the above diagram, the Manageable apps are agents, the CLI utility, Web app, and Audit storage are consoles, and Event correlation is both a console and an agent because it can create events based on the aggregation of what it sees.

Schema



Package


Object Class, Event Class


Properties, Statistics, and Methods


Data Types


Object Identifiers


Class Keys and Class Versioning


How to Write a QMF Console

Please see the QMF Python Console Tutorial for information about using the console API with Python.

How to Write a QMF Agent













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Qpid Java Broker Management CLI (page edited)

2009-01-30 Thread confluence










Page Edited :
qpid :
Qpid Java Broker Management CLI



 
Qpid Java Broker Management CLI
has been edited by Lahiru Mananada Gunathilake
(Jan 30, 2009).
 

 
 (View changes)
 

Content:
How to build Apache Qpid CLI 

Build Instructions - General

At the very beginning please build Apache Qpid by refering this installation guide from here http://cwiki.apache.org/qpid/qpid-java-build-how-to.html. 

After successfully build Apache Qpid you'll be able to start Apache Qpid Java broker,then only you are in a position to use Qpid CLI. 

Check out the Source
First check out the source from subversion repository. Please visit the following link for more information about different versions of Qpid CLI. 

http://code.google.com/p/lahirugsoc2008/downloads/list

Prerequisites
For the broker code you need JDK 1.5.0_15 or later. You should set JAVA_HOME and include the bin directory in your PATH. 

Check it's ok by executing java -v ! 

Building Apache Qpid CLI
This project is currently having only an ant build system.Please install ant build system before trying to install Qpid CLI. 

Compiling
To compile the source please run following command 


ant compile 



To compile the test source run the following command 

ant compile-tests 



Running CLI
After successful compilation set QPID_CLI environment variable to the main source directory.(set the environment variable to the directory where ant build script stored in the SVN checkout).Please check whether the Qpid Java broker is up an running in the appropriate location and run the following command to start the Qpid CLI by running the qpid-cli script in the bin directory. 

$QPID_CLI/bin/qpid-cli -h  -p  
For more details please have a look in to README file which ships with source package of Qpid CLI. 

Other ant targets
ant clean Clean the complete build including CLI build and test build. 
ant jar Create the jar file for the project without test cases. 
ant init Create the directory structure for build. 
ant compile-tests This compiles all the test source 
ant test Run all the test cases 
For now we are supporting those ant targets. 











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Qpid Management Framework (page edited)

2009-01-30 Thread confluence










Page Edited :
qpid :
Qpid Management Framework



 
Qpid Management Framework
has been edited by Ted Ross
(Jan 30, 2009).
 

 
 (View changes)
 

Content:


  What Is QMF
  Getting Started with QMF
  QMF Concepts
  How to Write a QMF Console
  How to Write a QMF Agent


What Is QMF

QMF (Qpid Management Framework) is a general-purpose management bus built on Qpid Messaging.  It takes advantage of the scalability, security, and rich capabilities of Qpid to provide flexible and easy-to-use manageability to a large set of applications.

Getting Started with QMF

QMF is used through two primary APIs.  The console API is used for console applications that wish to access and manipulate manageable components through QMF.  The agent API is used for application that wish to be managed through QMF.

The fastest way to get started with QMF is to work through the "How To" tutorials for consoles and agents.  For a deeper understanding of what is happening in the tutorials, it is recommended that you look at the Qmf Concepts section.


QMF Concepts

This section introduces important concepts underlying QMF.

Console, Agent, and Broker

The major architectural components of QMF are the Console, the Agent, and the Broker.  Console components are the "managing" components of QMF and agent components are the "managed" parts.  The broker is a central (possibly distributed, clustered and fault-tolerant) component that manages name spaces and caches schema information.

A console application may be a command-line utility, a three-tiered web-based GUI, a collection and storage device, a specialized application that monitors and reacts to events and conditions, or anything else somebody wishes to develop that uses QMF management data.

An agent application is any application that has been enhanced to allow itself to be managed via QMF.


   +-++-++---++---+
   | CLI utility || Web app || Audit storage || Event correlation |
   +-++-++---++---+
  ^^ ^^  |
  || ||  |
  vv vv  v
+-+
|Qpid Messaging Bus (with QMF Broker capability)  |
+-+
^ ^ ^
| | |
v v v
   ++++++
   | Manageable app || Manageable app || Manageable app |
   ++++++



In the above diagram, the Manageable apps are agents, the CLI utility, Web app, and Audit storage are consoles, and Event correlation is both a console and an agent because it can create events based on the aggregation of what it sees.

Schema

A schema describes the structure of management data.  Each agent provides a schema that describes its management model including the object classes, methods, events, etc. that it provides.  In the current QMF distribution, the agent's schema is codified in an XML document.  In the near future, there will be ways to programatically create QMF schemata.

Package

Each agent that exports a schema identifies itself using a package name.  The package provides a unique namespace for the classes in the agent's schema that prevent collisions with identically named classes in other agents' schemata.

Package names are in "reverse domain name" form with levels of hierarchy separated by periods.  For example, the Qpid messaging broker uses package "org.apache.qpid.broker" and the Access Control List plugin for the broker uses package "org.apache.qpid.acl".  In general, the package name should be the reverse of the internet domain name assigned to the organization that owns the agent software.

Object Classes


Properties, Statistics, and Methods


Data Types


Event Classes


Object Identifiers


Class Keys and Class Versioning


How to Write a QMF Console

Please see the QMF Python Console Tutorial for information about using the console API with Python.

How to Write a QMF Agent













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/

[CONF] Apache Qpid: Qpid Management Framework (page edited)

2009-01-30 Thread confluence
quot;>
"vhostRef"   type="objId" references="Vhost" access="RC" index="y" parentRef="y"/>
"name"   type="sstr"  access="RC" index="y"/>
"type"   type="sstr"  access="RO"/>
"durable"type="bool"  access="RC"/>
"arguments"  type="map"   access="RO" desc="Arguments supplied in exchange.declare"/>

"producerCount" type="hilo32"  desc="Current producers on exchange"/>
"bindingCount"  type="hilo32"  desc="Current bindings"/>
"msgReceives"   type="count64" desc="Total messages received"/>
"msgDrops"  type="count64" desc="Total messages dropped (no matching key)"/>
"msgRoutes" type="count64" desc="Total routed messages"/>
"byteReceives"  type="count64" desc="Total bytes received"/>
"byteDrops" type="count64" desc="Total bytes dropped (no matching key)"/>
"byteRoutes"type="count64" desc="Total routed bytes"/>
  


Properties, Statistics, and Methods

Properties, statistics, and methods are the building blocks of an object class.  Properties and statistics are both object attributes, though they are treated differently.  If an object attribute is defining, seldom or never changes, or is large in size, it should be defined as a property.  If an attribute is rapidly changing or is used to instrument the object (counters, etc.), it should be defined as a statistic.

The XML syntax for  and  have the following XML-attributes:



Attribute


Meaning


name
Y
Y
The name of the attribute


type
Y
Y
The data type of the attribute


unit
Y
Y
Optional unit name - use the singular (i.e. MByte)


desc
Y
Y
Description to annotate the attribute


references
Y
 
If the type is "objId", names the referenced class


access
Y
 
Access rights (RC, RW, RO)


index
Y
 
"y" if this property is used to uniquely identify the object.  There may be more than one index property in a class


parentRef
Y
 
"y" if this property references an object in which this object is in a child-parent relationship.


optional
Y
 
"y" if this property is optional (i.e. may be NULL/not-present)


min
Y
 
Minimum value of a numeric attribute


max
Y
 
Maximum value of a numeric attribute


maxLen
Y
 
Maximum length of a string attribute



Data Types


Event Classes


Object Identifiers


Class Keys and Class Versioning


How to Write a QMF Console

Please see the QMF Python Console Tutorial for information about using the console API with Python.

How to Write a QMF Agent













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Documentation (page edited)

2009-01-30 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Carl Trieloff
(Jan 30, 2009).
 

 
 (View changes)
 

Content:
How to documentation

Qpid Java Broker topics

	Getting Started Guide
	Qpid Java FAQ
	Qpid Java How To



qpidd - C++ Broker topics

	Running an AMQP 0-10 C++ broker 
	Configuring Queue Options
	Configuring Exchange Options
	Using Broker Federation
	How to use SSL 
	Understanding Last Value Queues (LVQ) 
	Queue State Replication
	Getting Started




Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides

Client API Documentation


	C++ Client API documentation
	Python Client API documentation 



.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 

Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		Qpid Management Framework (QMF) Protocol
	
	




	Management Tools
	Java Broker Management Tools
	
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Documentation (page edited)

2009-01-30 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Carl Trieloff
(Jan 30, 2009).
 

 
 (View changes)
 

Content:
How to documentation

Qpid Java Broker topics

	Getting Started Guide
	Qpid Java FAQ
	Qpid Java How To



qpidd - C++ Broker topics

	Running an AMQP 0-10 C++ broker 
	Configuring Queue Options
	Configuring Exchange Options
	Using Broker Federation
	How to use SSL 
	Understanding Last Value Queues (LVQ) 
	Queue State Replication
	Getting Started




Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides

Client API Documentation


	C++ Client API documentation
	Python Client API documentation 



.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 

Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		Qpid Management Framework (QMF) Protocol
	
	




	Java Broker Management Tools
	
		Management Tools
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Qpid Management Framework (page edited)

2009-01-30 Thread confluence
ng the  tag.  An object class is composed of properties, statistics, and methods.


"Exchange">
"vhostRef"   type="objId" references="Vhost" access="RC" index="y" parentRef="y"/>
"name"   type="sstr"  access="RC" index="y"/>
"type"   type="sstr"  access="RO"/>
"durable"type="bool"  access="RC"/>
"arguments"  type="map"   access="RO" desc="Arguments supplied in exchange.declare"/>

"producerCount" type="hilo32"  desc="Current producers on exchange"/>
"bindingCount"  type="hilo32"  desc="Current bindings"/>
"msgReceives"   type="count64" desc="Total messages received"/>
"msgDrops"  type="count64" desc="Total messages dropped (no matching key)"/>
"msgRoutes" type="count64" desc="Total routed messages"/>
"byteReceives"  type="count64" desc="Total bytes received"/>
"byteDrops" type="count64" desc="Total bytes dropped (no matching key)"/>
"byteRoutes"type="count64" desc="Total routed bytes"/>
  


Properties and Statistics

Properties, statistics, and methods are the building blocks of an object class.  Properties and statistics are both object attributes, though they are treated differently.  If an object attribute is defining, seldom or never changes, or is large in size, it should be defined as a property.  If an attribute is rapidly changing or is used to instrument the object (counters, etc.), it should be defined as a statistic.

The XML syntax for  and  have the following XML-attributes:



Attribute


Meaning


name
Y
Y
The name of the attribute


type
Y
Y
The data type of the attribute


unit
Y
Y
Optional unit name - use the singular (i.e. MByte)


desc
Y
Y
Description to annotate the attribute


references
Y
 
If the type is "objId", names the referenced class


access
Y
 
Access rights (RC, RW, RO)


index
Y
 
"y" if this property is used to uniquely identify the object.  There may be more than one index property in a class


parentRef
Y
 
"y" if this property references an object in which this object is in a child-parent relationship.


optional
Y
 
"y" if this property is optional (i.e. may be NULL/not-present)


min
Y
 
Minimum value of a numeric attribute


max
Y
 
Maximum value of a numeric attribute


maxLen
Y
 
Maximum length of a string attribute



Methods

Event Classes

Data Types

Object attributes, method arguments, and event arguments have data types.  The data types are based on the rich data typing system provided by the AMQP messaging protocol.  The following table describes the data types available for QMF:



QMF Type
Description


REF
QMF Object ID - Used to reference another QMF object.


U8
8-bit unsigned integer


U16
16-bit unsigned integer


U32
32-bit unsigned integer


U64
64-bit unsigned integer


S8
8-bit signed integer


S16
16-bit signed integer


S32
32-bit signed integer


S64
64-bit signed integer


BOOL
Boolean - True or False


SSTR
Short String - String of up to 255 bytes


LSTR
Long String - String of up to 65535 bytes


ABSTIME
Absolute time since the epoch in nanoseconds (64-bits)


DELTATIME
Delta time in nanoseconds (64-bits)


FLOAT
Single precision floating point number


DOUBLE
Double precision floating point number


UUID
UUID - 128 bits


FTABLE
Field-table - std::map in C++, dictionary in Python



In the XML schema definition, types go by different names and there are a number of special cases.  This is because the XML schema is used in code-generation for the agent API.  It provides options that control what kind of accessors are generated for attributes of different types.  The following table enumerates the types available in the XML format, which QMF types they map to, and other special handling that occurs.



XML Type
QMF Type
Accessor Style
Special Characteristics


objId
REF
Direct (get, set)
 


uint8,16,32,64
U8,16,32,64
Direct (get, set)
 


int8,16,32,64
S8,16,32,64
Direct (get, set)
 


bool
BOOL
Direct (get, set)
 


sstr
SSTR
Direct (get, set)
 


lstr
LSTR
Direct (get, set)
 


absTime
ABSTIME
Direct (get, set)
 


deltaTime
DELTATIME
Direct (get, set)
 


float
FLOAT
Direct (get, set)
 


double
DOUBLE
Direct (get, set)
 


uuid
UUID
Direct (get, set)
 


map
FTABLE
Direct (get, set)
 


hilo8,16,32,64
U8,16,32,64
Counter (inc, dec)
Generates value, valueMin, valueMax


count8,16,32,64
U8,16,32,64
Counter (inc, dec)
 


mma32,64
U32,64
Direct
Generates valueMin, valueMax, valueAverage, valueSamples


mmaTime
DELTATIME
Direct
Generates 

[CONF] Apache Qpid: Qpid Management Framework (page edited)

2009-01-30 Thread confluence
ng the  tag.  An object class is composed of properties, statistics, and methods.


"Exchange">
"vhostRef"   type="objId" references="Vhost" access="RC" index="y" parentRef="y"/>
"name"   type="sstr"  access="RC" index="y"/>
"type"   type="sstr"  access="RO"/>
"durable"type="bool"  access="RC"/>
"arguments"  type="map"   access="RO" desc="Arguments supplied in exchange.declare"/>

"producerCount" type="hilo32"  desc="Current producers on exchange"/>
"bindingCount"  type="hilo32"  desc="Current bindings"/>
"msgReceives"   type="count64" desc="Total messages received"/>
"msgDrops"  type="count64" desc="Total messages dropped (no matching key)"/>
"msgRoutes" type="count64" desc="Total routed messages"/>
"byteReceives"  type="count64" desc="Total bytes received"/>
"byteDrops" type="count64" desc="Total bytes dropped (no matching key)"/>
"byteRoutes"type="count64" desc="Total routed bytes"/>
  


Properties and Statistics

Properties, statistics, and methods are the building blocks of an object class.  Properties and statistics are both object attributes, though they are treated differently.  If an object attribute is defining, seldom or never changes, or is large in size, it should be defined as a property.  If an attribute is rapidly changing or is used to instrument the object (counters, etc.), it should be defined as a statistic.

The XML syntax for  and  have the following XML-attributes:



Attribute


Meaning


name
Y
Y
The name of the attribute


type
Y
Y
The data type of the attribute


unit
Y
Y
Optional unit name - use the singular (i.e. MByte)


desc
Y
Y
Description to annotate the attribute


references
Y
 
If the type is "objId", names the referenced class


access
Y
 
Access rights (RC, RW, RO)


index
Y
 
"y" if this property is used to uniquely identify the object.  There may be more than one index property in a class


parentRef
Y
 
"y" if this property references an object in which this object is in a child-parent relationship.


optional
Y
 
"y" if this property is optional (i.e. may be NULL/not-present)


min
Y
 
Minimum value of a numeric attribute


max
Y
 
Maximum value of a numeric attribute


maxLen
Y
 
Maximum length of a string attribute



Methods

Event Classes

Data Types

Object attributes, method arguments, and event arguments have data types.  The data types are based on the rich data typing system provided by the AMQP messaging protocol.  The following table describes the data types available for QMF:



QMF Type
Description


REF
QMF Object ID - Used to reference another QMF object.


U8
8-bit unsigned integer


U16
16-bit unsigned integer


U32
32-bit unsigned integer


U64
64-bit unsigned integer


S8
8-bit signed integer


S16
16-bit signed integer


S32
32-bit signed integer


S64
64-bit signed integer


BOOL
Boolean - True or False


SSTR
Short String - String of up to 255 bytes


LSTR
Long String - String of up to 65535 bytes


ABSTIME
Absolute time since the epoch in nanoseconds (64-bits)


DELTATIME
Delta time in nanoseconds (64-bits)


FLOAT
Single precision floating point number


DOUBLE
Double precision floating point number


UUID
UUID - 128 bits


FTABLE
Field-table - std::map in C++, dictionary in Python



In the XML schema definition, types go by different names and there are a number of special cases.  This is because the XML schema is used in code-generation for the agent API.  It provides options that control what kind of accessors are generated for attributes of different types.  The following table enumerates the types available in the XML format, which QMF types they map to, and other special handling that occurs.



XML Type
QMF Type
Accessor Style
Special Characteristics


objId
REF
Direct (get, set)
 


uint8,16,32,64
U8,16,32,64
Direct (get, set)
 


int8,16,32,64
S8,16,32,64
Direct (get, set)
 


bool
BOOL
Direct (get, set)
 


sstr
SSTR
Direct (get, set)
 


lstr
LSTR
Direct (get, set)
 


absTime
ABSTIME
Direct (get, set)
 


deltaTime
DELTATIME
Direct (get, set)
 


float
FLOAT
Direct (get, set)
 


double
DOUBLE
Direct (get, set)
 


uuid
UUID
Direct (get, set)
 


map
FTABLE
Direct (get, set)
 


hilo8,16,32,64
U8,16,32,64
Counter (inc, dec)
Generates value, valueMin, valueMax


count8,16,32,64
U8,16,32,64
Counter (inc, dec)
 


mma32,64
U32,64
Direct
Generates valueMin, valueMax, valueAverage, valueSamples


mmaTime
DELTATIME
Direct

[CONF] Apache Qpid: Qpid Management Framework (page edited)

2009-01-30 Thread confluence
, and other special handling that occurs.



XML Type
QMF Type
Accessor Style
Special Characteristics


objId
REF
Direct (get, set)
 


uint8,16,32,64
U8,16,32,64
Direct (get, set)
 


int8,16,32,64
S8,16,32,64
Direct (get, set)
 


bool
BOOL
Direct (get, set)
 


sstr
SSTR
Direct (get, set)
 


lstr
LSTR
Direct (get, set)
 


absTime
ABSTIME
Direct (get, set)
 


deltaTime
DELTATIME
Direct (get, set)
 


float
FLOAT
Direct (get, set)
 


double
DOUBLE
Direct (get, set)
 


uuid
UUID
Direct (get, set)
 


map
FTABLE
Direct (get, set)
 


hilo8,16,32,64
U8,16,32,64
Counter (inc, dec)
Generates value, valueMin, valueMax


count8,16,32,64
U8,16,32,64
Counter (inc, dec)
 


mma32,64
U32,64
Direct
Generates valueMin, valueMax, valueAverage, valueSamples


mmaTime
DELTATIME
Direct
Generates valueMin, valueMax, valueAverage, valueSamples



Important
When writing a schema using the XML format, types used in  or  must be types that have Direct accessor style.  Any type may be used in  tags.

Object Identifiers


Class Keys and Class Versioning


How to Write a QMF Console

Please see the QMF Python Console Tutorial for information about using the console API with Python.

How to Write a QMF Agent













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Documentation (page edited)

2009-01-31 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Carl Trieloff
(Jan 31, 2009).
 

 
 (View changes)
 

Content:
How to documentation

Qpid Java Broker topics

	Getting Started Guide
	Qpid Java FAQ
	Qpid Java How To



qpidd - C++ Broker topics

	Running an AMQP 0-10 C++ broker 
	Configuring Queue Options
	Configuring Exchange Options
	Using Broker Federation
	How to use SSL 
	Understanding Last Value Queues (LVQ) 
	Queue State Replication
	Getting Started




Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides

Client API Documentation


	C++ Client API documentation
	Python Client API documentation 



.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 

Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		Qpid Management Framework
		Qpid Management Framework (QMF) Protocol
	
	




	Java Broker Management Tools
	
		Management Tools
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Documentation (page edited)

2009-01-31 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Carl Trieloff
(Jan 31, 2009).
 

 
 (View changes)
 

Content:
How to documentation

Qpid Java Broker topics

	Getting Started Guide
	Qpid Java FAQ
	Qpid Java How To



qpidd - C++ Broker topics

	Running an AMQP 0-10 C++ broker 
	Configuring Queue Options
	Configuring Exchange Options
	Using Broker Federation
	How to use SSL 
	Understanding Last Value Queues (LVQ) 
	Queue State Replication
	Getting Started
	Manage anything with Qpid - QMF Python Console Tutorial




Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides

Client API Documentation


	C++ Client API documentation
	Python Client API documentation 



.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 

Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		Qpid Management Framework
		Qpid Management Framework (QMF) Protocol
	
	




	Java Broker Management Tools
	
		Management Tools
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: QMF Python Console Tutorial (page edited)

2009-01-31 Thread confluence
 in.
sess = Session(MyConsole(), manageConnections=True, rcvEvents=False, userBindings=True)

# Register to receive updates for broker:queue objects.
sess.bindClass("org.apache.qpid.broker", "queue")



The above code is illustrative of the way a console application can tune its use of the QMF bus.  Note that rcvEvents is set to False.  This prevents the reception of events.  Note also the use of userBindings=True and the call to sess.bindClass.  If userBindings is set to False (its default), the session will receive object updates for all classes of object.  In the case above, the application is only interested in broker:queue objects and reduces its bus bandwidth usage by requesting updates to only that class.  bindClass may be called as many times as desired to add classes to the list of subscribed classes.


Discovering what Kinds of Objects are Available















Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: AMQP compatibility (page edited)

2009-01-31 Thread confluence










Page Edited :
qpid :
AMQP compatibility



 
AMQP compatibility
has been edited by Carl Trieloff
(Jan 31, 2009).
 

 
 (View changes)
 

Content:
Qpid provides the most complete and compatible implementation of AMQP. And is the most aggressive in implementing the latest version of the specification. Qpid can be downloaded here

There are two brokers:

C++ with support for AMQP 0-10
Java with support for AMQP 0-8 and 0-9 (0-10 planned)

There are client libraries for C++, Java (JMS), .Net (written in C#), python and ruby. 


	All clients support 0-10 and interoperate with the C++ broker.




	The JMS client supports 0-8, 0-9 and 0-10 and interoperates with both brokers.




	The python and ruby clients will also support all versions, but the API is dynamically driven by the specification used and so differs between versions. To work with the Java broker you must use 0-8 or 0-9, to work with the C++ broker you must use 0-10.




	There are two separate C# clients, one for 0-8 that interoperates with the Java broker, one for 0-10 that inteoperates with the C++ broker.



QMF Management is supported in Ruby, Python, C++, and via QMan for Java JMX & WS-DM.

AMQP Compatibility of Qpid releases:

Qpid implements the AMQP Specification, and as the specification has progressed Qpid is keeping up with the updates. This means that different Qpid versions support different versions of AMQP. Here is a simple guide on what use.

Here is a matrix that describes the different versions supported by each release
Y  = supported
N  = unsupported
IP = in progress
P = planned


 Component 
 Spec 
 
 
 


 
 
 M2.1 
 M3 
 M4 


 java client 
 0-10 
 
 Y 
 Y 


 
 0-9 
 Y 
 Y 
 Y 


 
 0-8 
 Y 
 Y 
 Y 


 java broker 
 0-10 
 
 
 P 


 
 0-9 
 Y 
 Y 
 Y 


 
 0-8 
 Y 
 Y 
 Y 


 c++ client/broker 
 0-10 
 
 Y 
 Y 


 
 0-9 
 Y 
 
 


 python client 
 0-10 
 
 Y 
 Y 


 
 0-9 
 Y 
 Y 
 Y 


 
 0-8 
 Y 
 Y 
 Y 


 ruby client 
 0-10 
 
 
 Y 


 
 0-8 
 Y 
 Y 
 Y 


 C# client 
 0-10 
 
 
 Y 


 
 0-8 
 Y 
 Y 
 



Interop table by AMQP specification version

Above table represented in another format.


 
 release 
 0-8 
 0-9 
 0-10 


 java client 
 M3 
 Y 
 Y 
 Y 


 java client 
 M2.1 
 Y 
 Y 
 N 


 java broker 
 M3 
 Y 
 Y 
 N 


 java broker 
 trunk 
 Y 
 Y 
 P 


 java broker 
 M2.1 
 Y 
 Y 
 N 


 c++ client/broker 
 M3 
 N 
 N 
 Y 


 c++ client/broker 
 M2.1 
 N 
 Y 
 N 


 python client 
 M3 
 Y 
 Y 
 Y 


 python client 
 M2.1 
 Y 
 Y 
 N 


 ruby client 
 M3 
 Y 
 Y 
 N 


 ruby client 
 trunk 
 Y 
 Y 
 P 


 C# client 
 M3 
 Y 
 N 
 N 


 C# client 
 trunk 
 Y 
 N 
 Y 













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Java Broker Design - Flow to Disk (attachment added)

2009-02-01 Thread confluence










New files attached to:
qpid :
Java Broker Design - Flow to Disk




Java Broker Design - Flow to Disk
by Martin Ritchie
.


Attached file(s):

Flow2Disk-QueueList.jpg (image/jpeg, 32 kb)














Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Java Broker Design - Flow to Disk (page edited)

2009-02-01 Thread confluence
startInhaler




Pseudo-Code - Delivery to Subscriber
  addToQueue(message)

  if (flowed)
flowToDisk(message)
  else
if (_queueInMemory > _queueMaxMemory)
  setFlowed
  startPurger



The additional overhead of checking state is done after the message deliveries have been performed and are simple calculations compared to the existing message flow paths. As a result the non-flowed state performance should not be affected.

QueueBacking
The flow to disk implementation will be performed on a queue by queue basis so a new QueueBacking will be created to handle the flowing of messages to and from disk.

+-QueueBacking-+
| flow |
| recover  |
| delete   |
+--+



When a message is dequeue then it must also be removed from QueueBacking.
NOTE: care must be taken here for the NO_ACK mode as the dequeue is performed before delivery so the message must be in memory before that occurs or the data will be lost.












    Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Java Broker Design - Flow to Disk (attachment added)

2009-02-01 Thread confluence










New files attached to:
qpid :
Java Broker Design - Flow to Disk




Java Broker Design - Flow to Disk
by Martin Ritchie
.


Attached file(s):

Flow2Disk-QueueList.jpg (image/jpeg, 32 kb)














Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Java Broker Design - Flow to Disk (page edited)

2009-02-02 Thread confluence
ode - Delivery to Queue
  addToQueue(message)

  if (flowed)
flowToDisk(message)
  else
if (_queueInMemory > _queueMaxMemory)
  setFlowed
  startPurger



The additional overhead of checking state is done after the message deliveries have been performed and are simple calculations compared to the existing message flow paths. As a result the non-flowed state performance should not be affected.

QueueBacking
The flow to disk implementation will be performed on a queue by queue basis so a new QueueBacking will be created to handle the flowing of messages to and from disk.

+-QueueBacking-+
| flow |
| recover  |
| delete   |
+--+



When a message is dequeue then it must also be removed from QueueBacking.
NOTE: care must be taken here for the NO_ACK mode as the dequeue is performed before delivery so the message must be in memory before that occurs or the data will be lost.












    Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Qpid Management Framework (page edited)

2009-02-02 Thread confluence
, and other special handling that occurs.



XML Type
QMF Type
Accessor Style
Special Characteristics


objId
REF
Direct (get, set)
 


uint8,16,32,64
U8,16,32,64
Direct (get, set)
 


int8,16,32,64
S8,16,32,64
Direct (get, set)
 


bool
BOOL
Direct (get, set)
 


sstr
SSTR
Direct (get, set)
 


lstr
LSTR
Direct (get, set)
 


absTime
ABSTIME
Direct (get, set)
 


deltaTime
DELTATIME
Direct (get, set)
 


float
FLOAT
Direct (get, set)
 


double
DOUBLE
Direct (get, set)
 


uuid
UUID
Direct (get, set)
 


map
FTABLE
Direct (get, set)
 


hilo8,16,32,64
U8,16,32,64
Counter (inc, dec)
Generates value, valueMin, valueMax


count8,16,32,64
U8,16,32,64
Counter (inc, dec)
 


mma32,64
U32,64
Direct
Generates valueMin, valueMax, valueAverage, valueSamples


mmaTime
DELTATIME
Direct
Generates valueMin, valueMax, valueAverage, valueSamples



Important
When writing a schema using the XML format, types used in  or  must be types that have Direct accessor style.  Any type may be used in  tags.

Object Identifiers

Every object, or instance of an object class, managed by QMF is assigned a unique object ID.  The object ID is a structured 128-bit field.  The bits of the object ID are laid out as follows:


first uint_64:

 63   60 5948 4728 27 0
+---++++
| flags |  sequence  | broker bank| agent bank |
+---++++

second uint_64:

 63   0
+--+
|object number |
+--+



Object Id Fields:



Field Name
Size (bits)
Description


flags
4
Flags bits - all reserved (must be zero)


sequence
12
Agent Restart Sequence - For persistent objects, this value must be zero.  For transient objects, this value is a the restart sequence of the agent.


broker bank
20
Bank number of assigning broker


agent bank
28
Bank number of assigning agent


object number
64
Number assigned to the object



Class Keys and Class Versioning


How to Write a QMF Console

Please see the QMF Python Console Tutorial for information about using the console API with Python.

How to Write a QMF Agent













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: IP Whitelisting (page edited)

2009-02-02 Thread confluence










Page Edited :
qpid :
IP Whitelisting



 
IP Whitelisting
has been edited by Aidan Skinner
(Feb 02, 2009).
 

 
 (View changes)
 

Content:
While using a properly configured firewall is the obvious way to restrict access to a broker, it's occasionally desireable to do this on the broker itself.

Configuration

Everybody loves XML.

Elements inside  would be  or path"/>.  would read the file specified at path, which would contain an .

 would contain further  entries, but not . If the host attribute was specified the broker would check it's hostname against the attribute and cause a fatal error on startup if it did not match.

 would have action, virtualhost, hostname and network attributes. Action and one of host or network would be mandatory. Virtualhost would be optional, if specified the rule would apply only to that virtualhost. The action attribute would be either allow or deny. Host contains a comma seperated list of regexps against which it would match the reverse dns lookup of the connecting IP. Network contains a comma seperated list of of CIDR networks against which the IP would be matched.

The first  which matched the connection would apply. If no rules applied, the default-action would apply.

For example, the following could appear in config.xml:

default-action="" class="code-quote">"deny">
  "allow" hostname="*.qpid.apache.org" virtualhost="dev"/>
  "/path/to/file" />
  "allow" network="192.168.1.0/24" />
  "allow" network="10.0.0.0/8" />


and /path/to/file could contain:

"broker1.qpid.apache.org">
 "deny" newtork="192.168.1.0/24" virtualhost="prod"/>


any machine in the qpid.apache.org domain could access dev.
Any machine in the 192.168.1.0/24 network would be allowed access to any virtualhost other than prod
Any machine in the 10.0.0.0/8 network would be allowed access to any virtual host
Any other machine would be denied access.

Changes would be possible while broker was running via commons-configuration magic when the file is editted. Existing connections would be unaffected by a new rule.

Implementation

An IPRestriction class would extend ACLPlugin which listens for ConnectionOpen and checks against the list of rules. If the changes described at http://qpid.apache.org/java-authorization-plugins.html were implemented it would use that mechanism. 

IPRestriction would parse the config file, compiling into an ordered list of Rule classes, which would have two methods: boolean match(InetAddress IPAddress) and boolean allow(). During the authorization phase it would iterate through these Rules until match() returns true when it will authorize or not according to the value returned by allow(). 

Because of the way that Java pre-6 caches dns forever, a small value for networkaddress.cache.ttl is necessary. 

QPID-1583











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Java Broker Design - Flow to Disk (comment added)

2009-02-02 Thread confluence










Comment Added :
qpid :
Re: Java Broker Design - Flow to Disk




Java Broker Design - Flow to Disk
commented on by Aidan Skinner
(Feb 02, 2009).


Comment:
Copy-per-queue is incredibly expensive when dealing with topics, and changes our memory usage there from O(*subscribers) to O(*subscribers). It also involves a lot (N = subscribers) of copies in memory, which aren't nearly as cheap as you'd hope. 

We don't need to actually implement copy-per-queue to use that as a simplifying assumption when calculating queue usage, and I totally agree that trying to acurately gauge queue memory usage within the overall context of the broker is futile. 











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Java Broker Design - Flow to Disk (page edited)

2009-02-02 Thread confluence
 for the second case and to handle queues where the position of the incoming message is not known then the Purger thread will be required. The Purger simply needs to start at the front of the queue and record the amount of data still in memory on the Queue when queueMaxMemory is reached all subsequent messages are flowed.

Inhaler
The Inhaler is an optimisation to ensure that the broker returns to peek performance after a flow to disk event. Lazily loading messages on demand would be quite slow; so on delivery to a subscriber a check can be performed to see if the current queueInMemory is less than the queueMinMemory which would indicate that there is room to reload older messages. The Inhaler can then begin to load messages from disk until queueMaxMemory has been reached or all messages are back in memory. If all the messages are back in memory then the queue flow state can be reset allowing incoming messages to stay in memory. 
NOTE: as there are no locks a second check by the Inhaler is required to ensure a message was not flowed between the last load and the change of queue state.

The updates to delivery to the queue and to the subscriber are expected to be updated in the following ways:

Pseudo-Code - Delivery to Subscriber
while (message in queue)
  subscriber.deliver(message)

  if (flowed)
flowToDisk(message)

  if (_queueInMemory < _queueMinMemory)
startInhaler




Pseudo-Code - Delivery to Queue
  addToQueue(message)

  if (flowed)
flowToDisk(message)
  else
if (_queueInMemory > _queueMaxMemory)
  setFlowed
  startPurger



The additional overhead of checking state is done after the message deliveries have been performed and are simple calculations compared to the existing message flow paths. As a result the non-flowed state performance should not be affected.

QueueBacking
The flow to disk implementation will be performed on a queue by queue basis so a new QueueBacking will be created to handle the flowing of messages to and from disk.

+-QueueBacking-+
| flow |
| recover  |
| delete   |
+--+



When a message is dequeue then it must also be removed from QueueBacking.
NOTE: care must be taken here for the NO_ACK mode as the dequeue is performed before delivery so the message must be in memory before that occurs or the data will be lost.












    Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: IP Whitelisting (page edited)

2009-02-02 Thread confluence










Page Edited :
qpid :
IP Whitelisting



 
IP Whitelisting
has been edited by Aidan Skinner
(Feb 02, 2009).
 

 
 (View changes)
 

Content:
While using a properly configured firewall is the obvious way to restrict access to a broker, it's occasionally desireable to do this on the broker itself.

Configuration

Everybody loves XML.

Elements inside  would be  or path"/>.  would read the file specified at path, which would contain an .

 would contain further  entries, but not . If the host attribute was specified the broker would check it's hostname against the attribute and cause a fatal error on startup if it did not match.

 would have action, virtualhost, hostname and network attributes. Action and one of host or network would be mandatory. Virtualhost would be optional, if specified the rule would apply only to that virtualhost. The action attribute would be either allow or deny. Host contains a comma seperated list of regexps against which it would match the reverse dns lookup of the connecting IP. Network contains a comma seperated list of of CIDR networks against which the IP would be matched.

The first  which matched the connection would apply. If no rules applied, the default-action would apply.

For example, the following could appear in config.xml:

default-action="" class="code-quote">"deny">
  "allow" hostname="*.qpid.apache.org" virtualhost="dev"/>
  "/path/to/file" />
  "allow" network="192.168.1.0/24" />
  "allow" network="10.0.0.0/8" />


and /path/to/file could contain:

"broker1.qpid.apache.org">
 "deny" newtork="192.168.1.0/24" virtualhost="prod"/>


any machine in the qpid.apache.org domain could access dev.
Any machine in the 192.168.1.0/24 network would be allowed access to any virtualhost other than prod
Any machine in the 10.0.0.0/8 network would be allowed access to any virtual host
Any other machine would be denied access.

QPID-1583











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Developer Pages (page edited)

2009-02-02 Thread confluence










Page Edited :
qpid :
Developer Pages



 
Developer Pages
has been edited by Aidan Skinner
(Feb 02, 2009).
 

 
 (View changes)
 

Content:
Developer Pages


Process Notes

Release Process

Design Notes


	Management Design notes - The layered AMQP management protocol for mgmt tools (currently in the M3 C++ broker)
	AMQPVersion -  Multiple AMQP version support design notes
	ClusteringHA - Federation, HA, and Clustering design notes
	AMQP0-9-DesignNotes - Design notes for AMQP 0-9 implementation
	Queue Replay - Adding replay to queues.
	Interop Testing Specification - Common test cases to ensure all clients and brokers interop.
	The AMQP Distributed Transaction Classes - The+AMQP+Distributed+Transaction+Classes
	Producer flow control - Java Broker producer flow control
	ACL - design page
	QMF - The Qpid Management Framework
	Java Broker Modularisation
	IP Whitelisting



Weekly Developer Meeting Minutes

The agenda for this can be produced from review/agenda.py -r 

The Chair rotates weekly through:
Aidan Skinner
Arnaud Simon
Martin Ritchie
Rafael Schloming
Robert Godfrey

	Qpid Java Meeting Minutes 2008-03-28
	Qpid Java Meeting Minutes 2008-04-04
	Qpid Java Meeting Minutes 2008-04-11
	Qpid Java Meeting Minutes 2008-04-18
	Qpid Java Meeting Minutes 2008-05-02
	Qpid Java Meeting Minutes 2008-05-09
	Qpid Java Meeting Minutes 2008-05-16
	Qpid Java Meeting Minutes 2008-05-23
	Qpid Java Meeting Minutes 2008-05-30
	Qpid Java Meeting Minutes 2008-06-20
	Qpid Java Meeting Minutes 2008-06-27
	Qpid Java Meeting Minutes 2008-07-11
	Qpid Java Meeting Minutes 2008-07-25
	Qpid Java Meeting Minutes 2008-08-01
	Qpid Java Meeting Minutes 2008-08-08
	Qpid Java Meeting Minutes 2008-08-15
	Qpid Java Meeting Minutes 2008-08-22
	Qpid Java Meeting Minutes 2008-08-29













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: IP Whitelisting (page edited)

2009-02-02 Thread confluence










Page Edited :
qpid :
IP Whitelisting



 
IP Whitelisting
has been edited by Aidan Skinner
(Feb 02, 2009).
 

 
 (View changes)
 

Content:
While using a properly configured firewall is the obvious way to restrict access to a broker, it's occasionally desireable to do this on the broker itself.

Configuration

Everybody loves XML.

Elements inside  would be  or path"/>.  would read the file specified at path, which would contain an .

 would contain further  entries, but not . If the host attribute was specified the broker would check it's hostname against the attribute and cause a fatal error on startup if it did not match.

 would have action, virtualhost, hostname and network attributes. Action and one of host or network would be mandatory. Virtualhost would be optional, if specified the rule would apply only to that virtualhost. The action attribute would be either allow or deny. Host contains a comma seperated list of regexps against which it would match the reverse dns lookup of the connecting IP. Network contains a comma seperated list of of CIDR networks against which the IP would be matched.

The first  which matched the connection would apply. If no rules applied, the default-action would apply.

For example, the following could appear in config.xml:

default-action="" class="code-quote">"deny">
  "allow" hostname="*.qpid.apache.org" virtualhost="dev"/>
  "/path/to/file" />
  "allow" network="192.168.1.0/24" />
  "allow" network="10.0.0.0/8" />


and /path/to/file could contain:

"broker1.qpid.apache.org">
 "deny" newtork="192.168.1.0/24" virtualhost="prod"/>


any machine in the qpid.apache.org domain could access dev.
Any machine in the 192.168.1.0/24 network would be allowed access to any virtualhost other than prod
Any machine in the 10.0.0.0/8 network would be allowed access to any virtual host
Any other machine would be denied access.

Changes would be possible while broker was running via commons-configuration magic when the file is editted. Existing connections would be unaffected by a new rule.

Implementation

An IPRestriction class would extend ACLPlugin which listens for ConnectionOpen and checks against the list of rules. If the changes described at http://qpid.apache.org/java-authorization-plugins.html were implemented it would use that mechanism. 

QPID-1583











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Java Broker Configuration Design (page edited)

2009-02-02 Thread confluence










Page Edited :
qpid :
Java Broker Configuration Design



 
Java Broker Configuration Design
has been edited by Martin Ritchie
(Feb 02, 2009).
 

 
 (View changes)
 

Content:
Java Broker Configuration Design

The Java broker configuration xml files have grown in complexity through M4 and reached a state where we need to look at the simplifying the design to help both our users and our selves.

QPID-1612

Current Issues


	We use an XML format but don't validate the XML.
	We can't validate because we use dynamic tags in the Virutalhost sections.
	We don't ensure that all configuration values are used in the code.
	We have two three locations where virtualhost information is declared.
	Information is duplicated rather than defaulted, such as Virtualhost store class.
	Advanced configuration options are available and highlighted via the config file but we would never advocate their use.



Improvement Plans

As we are currently using Commons Configuration it would make sense to made use to use as much of their code rather than writing our own.

Steps to improving design:


	Start using a ConfigurationFactory
	
		Allows us to split up our configuration moving the Virtualhost sections to it's own file.
		Allows validation of the main configuration file.
		Allows an optional user-config.xml file to be included where users can easily override default values.
	
	
	Redesign Virtualhost file to allow validation
	
		Allow default values for all Virtualhosts
	
	
	Investigate mechanism to allow plugins and broker elements to identify sections of configuration they use.
	
		Fail to start broker if there are missing sections of the configuration.
		Fail to start broker if there are unused sections of the configuration.
	
	














Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: IP Whitelisting (page created)

2009-02-02 Thread confluence










Page Created :
qpid :
IP Whitelisting



 
IP Whitelisting
has been created by Aidan Skinner
(Feb 02, 2009).
 

Content:
While using a properly configured firewall is the obvious way to restrict access to a broker, it's occasionally desireable to do this on the broker itself.

.h2 Configuration

Everybody loves XML.

Elements inside  would be  or path"/>.  would read the file specified at path, which would contain an . 

 would contain further  entries, but not . If the host attribute was specified the broker would check it's hostname against the attribute and cause a fatal error on startup if it did not match. 

 would have action, virtualhost, hostname and network attributes. Action and one of host or network would be mandatory. Virtualhost would be optional, if specified it would match one of the virtualhosts. The action attribute would be either allow or deny. host would be a regexp against which it would match the reverse dns lookup of the connecting IP. network would be a CIDR against which the IP would be matched.

The first  which matched the connection would apply. If no rules applied, the default-action would apply.

For example, the following could appear in config.xml:

default-action="" class="code-quote">"deny">
  "allow" hostname="*.qpid.apache.org" virtualhost="dev"/>
  "/path/to/file" />
  "allow" network="192.168.1.0/24" />
  "allow" network="10.0.0.0/8" />



and /path/to/file could contain:

"broker1.qpid.apache.org"> 
 "deny" newtork="192.168.1.0/24" virtualhost="prod"/>



any machine in the qpid.apache.org domain could access dev.
Any machine in the 192.168.1.0/24 network would be allowed access to any virtualhost other than prod
Any machine in the 10.0.0.0/8 network would be allowed access to any virtual host
Any other machine would be denied access.

QPID-1583











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: AMQP compatibility (page edited)

2009-02-03 Thread confluence










Page Edited :
qpid :
AMQP compatibility



 
AMQP compatibility
has been edited by Aidan Skinner
(Feb 03, 2009).
 

 
 (View changes)
 

Content:
Qpid provides the most complete and compatible implementation of AMQP. And is the most aggressive in implementing the latest version of the specification. Qpid can be downloaded here

There are two brokers:

C++ with support for AMQP 0-10
Java with support for AMQP 0-8 and 0-9 (0-10 planned)

There are client libraries for C++, Java (JMS), .Net (written in C#), python and ruby.

	All clients support 0-10 and interoperate with the C++ broker.




	The JMS client supports 0-8, 0-9 and 0-10 and interoperates with both brokers.




	The python and ruby clients will also support all versions, but the API is dynamically driven by the specification used and so differs between versions. To work with the Java broker you must use 0-8 or 0-9, to work with the C++ broker you must use 0-10.




	There are two separate C# clients, one for 0-8 that interoperates with the Java broker, one for 0-10 that inteoperates with the C++ broker.



QMF Management is supported in Ruby, Python, C++, and via QMan for Java JMX & WS-DM.

AMQP Compatibility of Qpid releases:

Qpid implements the AMQP Specification, and as the specification has progressed Qpid is keeping up with the updates. This means that different Qpid versions support different versions of AMQP. Here is a simple guide on what use.

Here is a matrix that describes the different versions supported by each release
Y  = supported
N  = unsupported
IP = in progress
P = planned


 Component 
 Spec 
 
 
 


 
 
 M2.1 
 M3 
 M4 


 java client 
 0-10 
 
 Y 
 Y 


 
 0-9 
 Y 
 Y 
 Y 


 
 0-8 
 Y 
 Y 
 Y 


 java broker 
 0-10 
 
 
 P 


 
 0-9 
 Y 
 Y 
 Y 


 
 0-8 
 Y 
 Y 
 Y 


 c++ client/broker 
 0-10 
 
 Y 
 Y 


 
 0-9 
 Y 
 
 


 python client 
 0-10 
 
 Y 
 Y 


 
 0-9 
 Y 
 Y 
 Y 


 
 0-8 
 Y 
 Y 
 Y 


 ruby client 
 0-10 
 
 
 Y 


 
 0-8 
 Y 
 Y 
 Y 


 C# client 
 0-10 
 
 
 Y 


 
 0-8 
 Y 
 Y 
 Y 



Interop table by AMQP specification version

Above table represented in another format.


 
 release 
 0-8 
 0-9 
 0-10 


 java client 
 M3 
 Y 
 Y 
 Y 


 java client 
 M2.1 
 Y 
 Y 
 N 


 java broker 
 M3 
 Y 
 Y 
 N 


 java broker 
 trunk 
 Y 
 Y 
 P 


 java broker 
 M2.1 
 Y 
 Y 
 N 


 c++ client/broker 
 M3 
 N 
 N 
 Y 


 c++ client/broker 
 M2.1 
 N 
 Y 
 N 


 python client 
 M3 
 Y 
 Y 
 Y 


 python client 
 M2.1 
 Y 
 Y 
 N 


 ruby client 
 M3 
 Y 
 Y 
 N 


 ruby client 
 trunk 
 Y 
 Y 
 P 


 C# client 
 M3 
 Y 
 N 
 N 


 C# client 
 trunk 
 Y 
 N 
 Y 













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Java Broker Design - Flow to Disk (page edited)

2009-02-03 Thread confluence
xMemory, queueMinMemory, queueInMemory and isFlowed added. It is proposed that only the data size is used for flow to disk calculations as counting messages will not give us the control that we need over memory usage. 



These new variables will be used to control two new threads Inhaler and Purger. 

Purger
When queueMaxMemory is reached the queue is set to flow and all new messages on to the queue are sent straight to disk. As messages are sent to a subscriber there are a couple of possibilities when the queue is in a flowed state:

	The messages are also flowed to disk.
	A number or percentage of the queueMaxMemory could be kept to handle rollbacks.



Using the first mechanism we do not need to have a Purger thread for the simple queue case. However for the second case and to handle queues where the position of the incoming message is not known then the Purger thread will be required. The Purger simply needs to start at the front of the queue and record the amount of data still in memory on the Queue when queueMaxMemory is reached all subsequent messages are flowed.

Inhaler
The Inhaler is an optimisation to ensure that the broker returns to peek performance after a flow to disk event. Lazily loading messages on demand would be quite slow; so on delivery to a subscriber a check can be performed to see if the current queueInMemory is less than the queueMinMemory which would indicate that there is room to reload older messages. The Inhaler can then begin to load messages from disk until queueMaxMemory has been reached or all messages are back in memory. If all the messages are back in memory then the queue flow state can be reset allowing incoming messages to stay in memory. 
NOTE: as there are no locks a second check by the Inhaler is required to ensure a message was not flowed between the last load and the change of queue state.

The updates to delivery to the queue and to the subscriber are expected to be updated in the following ways:

Pseudo-Code - Delivery to Subscriber
while (message in queue)
  subscriber.deliver(message)

  if (flowed)
flowToDisk(message)

  if (_queueInMemory < _queueMinMemory)
startInhaler




Pseudo-Code - Delivery to Queue
  addToQueue(message)

  if (flowed)
flowToDisk(message)
  else
if (_queueInMemory > _queueMaxMemory)
  setFlowed
  startPurger



The additional overhead of checking state is done after the message deliveries have been performed and are simple calculations compared to the existing message flow paths. As a result the non-flowed state performance should not be affected.

QueueBacking
The flow to disk implementation will be performed on a queue by queue basis so a new QueueBacking will be created to handle the flowing of messages to and from disk.

+-QueueBacking-+
| flow |
| recover  |
| delete   |
+--+



When a message is dequeue then it must also be removed from QueueBacking.
NOTE: care must be taken here for the NO_ACK mode as the dequeue is performed before delivery so the message must be in memory before that occurs or the data will be lost.











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: IP Whitelisting (page edited)

2009-02-03 Thread confluence










Page Edited :
qpid :
IP Whitelisting



 
IP Whitelisting
has been edited by Aidan Skinner
(Feb 03, 2009).
 

 
 (View changes)
 

Content:
While using a properly configured firewall is the obvious way to restrict access to a broker, it's occasionally desireable to do this on the broker itself.

Configuration

Everybody loves XML.

Elements inside  would be  or path"/>.  would read the file specified at path, which would contain an .

 would contain further  entries, but not . If the host attribute was specified the broker would check it's hostname against the attribute and cause a fatal error on startup if it did not match.

 would have action, virtualhost, hostname and network attributes. Action and one of host or network would be mandatory. Virtualhost would be optional, if specified the rule would apply only to that virtualhost. The action attribute would be either allow or deny. Host contains a comma seperated list of regexps against which it would match the reverse dns lookup of the connecting IP. Network contains a comma seperated list of of CIDR networks against which the IP would be matched.

The first  which matched the connection would apply. If no rules applied, the default-action would apply.

For example, the following could appear in config.xml:

default-action="" class="code-quote">"deny">
  "allow" hostname="*.qpid.apache.org" virtualhost="dev"/>
  "/path/to/file" />
  "allow" network="192.168.1.0/24" />
  "allow" network="10.0.0.0/8" />


and /path/to/file could contain:

"broker1.qpid.apache.org">
 "deny" newtork="192.168.1.0/24" virtualhost="prod"/>


any machine in the qpid.apache.org domain could access dev.
Any machine in the 192.168.1.0/24 network would be allowed access to any virtualhost other than prod
Any machine in the 10.0.0.0/8 network would be allowed access to any virtual host
Any other machine would be denied access.

Changes would be possible while broker was running via commons-configuration magic when the file is editted. Existing connections would be unaffected by a new rule.

Implementation

An IPRestriction class would extend ACLPlugin which listens for ConnectionOpen and checks against the list of rules. If the changes described at http://qpid.apache.org/java-authorization-plugins.html were implemented it would use that mechanism. 

IPRestriction would parse the config file, compiling into an ordered list of Rule classes, which would have two methods: boolean match(InetAddress IPAddress) and boolean allow(). During the authorization phase it would iterate through these Rules until match() returns true when it will authorize or not according to the value returned by allow(). 

Because of the way that Java pre-6 caches dns forever, a small value for networkaddress.cache.ttl is necessary. 

QPID-1583











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Java Broker Design - Flow to Disk (page edited)

2009-02-03 Thread confluence
 proposed that only the data size is used for flow to disk calculations as counting messages will not give us the control that we need over memory usage. 



These new variables will be used to control two new threads Inhaler and Purger. 

Purger
When queueMaxMemory is reached the queue is set to flow and all new messages on to the queue are sent straight to disk. As messages are sent to a subscriber there are a couple of possibilities when the queue is in a flowed state:

	The messages are also flowed to disk.
	A number or percentage of the queueMaxMemory could be kept to handle rollbacks.



Using the first mechanism we do not need to have a Purger thread for the simple queue case. However for the second case and to handle queues where the position of the incoming message is not known then the Purger thread will be required. The Purger simply needs to start at the front of the queue and record the amount of data still in memory on the Queue when queueMaxMemory is reached all subsequent messages are flowed.

Inhaler
The Inhaler is an optimisation to ensure that the broker returns to peek performance after a flow to disk event. Lazily loading messages on demand would be quite slow; so on delivery to a subscriber a check can be performed to see if the current queueInMemory is less than the queueMinMemory which would indicate that there is room to reload older messages. The Inhaler can then begin to load messages from disk until queueMaxMemory has been reached or all messages are back in memory. If all the messages are back in memory then the queue flow state can be reset allowing incoming messages to stay in memory. 
NOTE: as there are no locks a second check by the Inhaler is required to ensure a message was not flowed between the last load and the change of queue state.

The updates to delivery to the queue and to the subscriber are expected to be updated in the following ways:

Pseudo-Code - Delivery to Subscriber
while (message in queue)
  subscriber.deliver(message)

  if (flowed)
flowToDisk(message)

  if (_queueInMemory < _queueMinMemory)
startInhaler




Pseudo-Code - Delivery to Queue
  addToQueue(message)

  if (flowed)
flowToDisk(message)
  else
if (_queueInMemory > _queueMaxMemory)
  setFlowed
  startPurger



The additional overhead of checking state is done after the message deliveries have been performed and are simple calculations compared to the existing message flow paths. As a result the non-flowed state performance should not be affected.

QueueBacking
The flow to disk implementation will be performed on a queue by queue basis so a new QueueBacking will be created to handle the flowing of messages to and from disk.

+-QueueBacking-+
| flow |
| recover  |
| delete   |
+--+



When a message is dequeue then it must also be removed from QueueBacking.
NOTE: care must be taken here for the NO_ACK mode as the dequeue is performed before delivery so the message must be in memory before that occurs or the data will be lost.

BackingFormat

The initial implementation of the QueueBacking will be FileQueueBacking. This will need a new configuration parameter 'flow-to-disk-path' it will default to '$QPID_WORK/queueBacking'. In this directory a new directory will be created to match the queue name that this backing represents. It is in this directory that the queue contents will be written. Each message will be written to its own file which will include the header and body. So the resulting file structure will be as follows:

QPID_WORK/
 /queueBacking/
	  //
		  //



Whilst NTFS can store over 4M files per directory, FAT32 is limited to 65534 and ext3 only 32000. That coupled with the fact that looking up a file in a large directory is not efficient it makes most sense to implement a hash map on disk using the MessageID as the key. Using the least significant 8 bits as the hashing function will give us 512 bins to evenly spread the messages on disk. This approach will improve look ups times and allow us to write over 16M messages per queue before we hit any file system limits.






    
    




Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: M4 Release Process Notes (page edited)

2009-02-03 Thread confluence










Page Edited :
qpid :
M4 Release Process Notes



 
M4 Release Process Notes
has been edited by Marnie McCormack
(Feb 03, 2009).
 

 
 (View changes)
 

Content:

	Release notes generated from Jira are incomplete/inaccurate
	Release note text files are included in the artifacts, so can only contain things which are known in advanced
	Releases shouldn't be scheduled right before the holiday break
	Trunk was closed for a long time
	Was difficult to know what the status of the release was due to Jira inaccuracies
	Lack of clear documentation about release artifacts
	Lack of interest in fixing problems with some artifacts
	Many java commits unreviewed: jiras randomly set to resolved, sat in in-progress for ages etc.
	Addition of GPL library as dependency
	branching and tagging conventions are inconsistent across releases
	windows build files require manual updates was a problem



MM stuff added:

	We should be time boxed or scope bound
	Test profiles needs to be ok against defined set before RC spun (inc TCK)
	System testing & smoke testing (cross-platform) needs to be defined and signed up too/off before RC vote
	Criteria should be defined for RC sign off thus making the signing off more useful for the RM
	JIRAs for a release should be scoped in as work starts on the task, scoped out as they get dropped













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Documentation (page edited)

2009-02-03 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Carl Trieloff
(Feb 03, 2009).
 

 
 (View changes)
 

Content:
How to documentation

Qpid Java Broker topics

	Getting Started Guide
	Qpid Java FAQ
	Qpid Java How To



qpidd - C++ Broker topics

	Running an AMQP 0-10 C++ broker 
	Configuring Queue Options
	Configuring Exchange Options
	[Using Broker Federation|]
	How to use SSL 
	Understanding Last Value Queues (LVQ) 
	Queue State Replication
	Getting Started
	Manage anything with Qpid - QMF Python Console Tutorial




Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides

Client API Documentation


	C++ Client API documentation
	Python Client API documentation 



.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 

Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		Qpid Management Framework
		Qpid Management Framework (QMF) Protocol
	
	




	Java Broker Management Tools
	
		Management Tools
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Documentation (page edited)

2009-02-03 Thread confluence










Page Edited :
qpid :
Documentation



 
Documentation
has been edited by Carl Trieloff
(Feb 03, 2009).
 

 
 (View changes)
 

Content:
How to documentation

Qpid Java Broker topics

	Getting Started Guide
	Qpid Java FAQ
	Qpid Java How To



qpidd - C++ Broker topics

	Running an AMQP 0-10 C++ broker 
	Configuring Queue Options
	Configuring Exchange Options
	Using Broker Federation
	How to use SSL 
	Understanding Last Value Queues (LVQ) 
	Queue State Replication
	Getting Started
	Manage anything with Qpid - QMF Python Console Tutorial




Common Topics

	Understanding ACLs




API & Tutorial Documentation & User guides

Client API Documentation


	C++ Client API documentation
	Python Client API documentation 



.NET Topics


	.NET client user guide
	.NET client Excel plug-in
	The WCF interface for the .NET client



Currently the .NET code base provides two client libraries that are compatible respectively with AMQP 0.8 and 0.10. The 0.8 client is located in qpid\dotnet and the 0.10 client in: qpid\dotnet\client-010

You will need an AMQP broker to fully use those client libraries. Use M4 or later C++ broker for AMQP 0.10 or Java broker for AMQP 0.8/0.9. 

Management Tools

	Managing the C++ Broker
	C++ Broker Management Tools
	
		QMan - Qpid Management bridge
		Qpid Management Framework
		Qpid Management Framework (QMF) Protocol
	
	




	Java Broker Management Tools
	
		Management Tools
		Eclipse Management Console
		MessageStore Tool
		Qpid Java Broker Management CLI
	
	



Interoperability Documentation


	Qpid Interoperability Documentation



Implementation Documentation

This section links to the language specific documentation pages.
Our project documentation is definitely a work in progress. This would be a very valuable area to contribute a patch.

	Qpid .Net Documentation
	Qpid Java Documentation
	Qpid 'C++' Documentation
	Qpid Python Test Framework



Development Tools


	Build Creator













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: IP Whitelisting (comment added)

2009-02-04 Thread confluence










Comment Added :
qpid :
Re: IP Whitelisting




IP Whitelisting
commented on by Aidan Skinner
(Feb 04, 2009).


Comment:


 
 [3:42  pm] 
 partychat4  
 ["rhs"] aidan: so a ..  sort of thing would actually be a blacklist, would it  not? 


 
 [3:45  pm] 
 aidan.x.skinner  
 rhs:  yes 


 
 [3:48  pm] 
 aidan.x.skinner  
 rhs: I've  been pondering dropping default-action and just letting having a rule with no  match attribute at the end serve that  purpouse 


 
 [3:48  pm] 
 aidan.x.skinner  
 (and  default to deny if not specified) 


 
 [3:48  pm] 
 partychat4  
 ["rob"] but if you have no whitelist at all the default action is  allow? 


 
 [3:49  pm] 
 aidan.x.skinner  
 yeah 


 
 [3:49  pm] 
 aidan.x.skinner  
 i guess  that probably makes allow a more sensible  default? 


 
 [3:49  pm] 
 aidan.x.skinner  
 also, ideas  for calling  something else would be gratefully  recieved 


 
 [3:49  pm] 
 partychat4  
 ["rob"] I'm not sure there is a sensible default which is why I think  you should force the user to set one 


 
 [3:49  pm] 
 partychat4  
 ["rhs"] accesslist? 


 
 [3:50  pm] 
 aidan.x.skinner  
 rob: we  could demand one empty rule at the  end? 


 
 [3:50  pm] 
 aidan.x.skinner  
 rhs: i  thought about that but considered it a little too close to  ACL 


 
 [3:51  pm] 
 partychat4  
 ["rhs"] ? 


 
 [3:51  pm] 
 partychat4  
 ["rob"] aidan: I'm pretty relaxed  really 


 
 [3:51  pm] 
 partychat4  
 ["rhs"] ... might  make some sense 


 
 [3:51  pm] 
 partychat4  
 ["rhs"] er, default-action rather 


 
 [3:52  pm] 
 aidan.x.skinner  
 firewall  sounds reasonable 


 
 [3:52  pm] 
 partychat4  
 ["rhs"] I'm also fairly relaxed, I just had the urge to mock your  usage of the term whitelist. 


 
 [3:52  pm] 
 aidan.x.skinner  
 it's not a  great term really. but greylists are something else  again 


 
 [3:53  pm] 
 aidan.x.skinner  
 whiteandblacklist  seemed a little unwieldy 
  


 
 [3:54  pm] 
 partychat4  
 ["rhs"] but I'm not particularly fussy either  way 


 
 [3:54  pm] 
 aidan.x.skinner  
 firewall is  more accurate, i'm going to go with  that 


 
 [4:06  pm] 
 partychat4  
 ["marnie"] honest answers, does anyone here really care about what we  call it ? 


 
 [4:07  pm] 
 partychat4  
 ["marnie"] cos I know some people who  do 


 
 [6:13  pm] 
 partychat4  
 [jonathan.ro...@gmail.com] i care that what we call it is easy to  explain 


 
 [6:13  pm] 
 partychat4  
 [jonathan.ro...@gmail.com] i think the sub elements might be   and , i don't know what to call the containing  element 
 













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: IP Whitelisting (comment added)

2009-02-04 Thread confluence










Comment Added :
qpid :
Re: IP Whitelisting




IP Whitelisting
commented on by Jonathan Robie
(Feb 04, 2009).


Comment:
 

   












Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: IP Whitelisting (comment added)

2009-02-04 Thread confluence










Comment Added :
qpid :
Re: IP Whitelisting




IP Whitelisting
commented on by Jonathan Robie
(Feb 04, 2009).


Comment:
I prefer to call this an "access list for a server". It's not a firewall - you clearly say that in your description. And I think we're moving into calling these things servers rather than brokers, for consistency with AMQP. An access list contains access elements. Each access element specifies the permissions for a network or a hostname:


   
   
   
   


As for the virtualhost idea, I think I would do that by nesting accesslist:



  













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Java Broker Configuration Design (page edited)

2009-02-04 Thread confluence










Page Edited :
qpid :
Java Broker Configuration Design



 
Java Broker Configuration Design
has been edited by Martin Ritchie
(Feb 04, 2009).
 

 
 (View changes)
 

Content:
Java Broker Configuration Design

The Java broker configuration xml files have grown in complexity through M4 and reached a state where we need to look at the simplifying the design to help both our users and our selves.

QPID-1612

Current Issues


	We use an XML format but don't validate the XML.
	We can't validate because we use dynamic tags in the Virutalhost sections.
	We don't ensure that all configuration values are used in the code.
	We have two three locations where virtualhost information is declared.
	Information is duplicated rather than defaulted, such as Virtualhost store class.
	Advanced configuration options are available and highlighted via the config file but we would never advocate their use.



Improvement Plans

As we are currently using Commons Configuration it would make sense to made use to use as much of their code rather than writing our own.

Steps to improving design:


	Start using a ConfigurationFactory
	
		Allows us to split up our configuration moving the Virtualhost sections to it's own file.
		Allows validation of the main configuration file.
		Allows an optional user-config.xml file to be included where users can easily override default values.
	
	
	Redesign Virtualhost file to allow validation
	
		Allow default values for all Virtualhosts
	
	
	Investigate mechanism to allow plugins and broker elements to identify sections of configuration they use.
	
		Fail to start broker if there are missing sections of the configuration.
		Fail to start broker if there are unused sections of the configuration.
	
	



Example for new config.xml that would work with Commons ConfigurationFactory:


  
  
  
  














Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: IP Whitelisting (comment added)

2009-02-04 Thread confluence










Comment Added :
qpid :
Re: IP Whitelisting




IP Whitelisting
commented on by Jonathan Robie
(Feb 04, 2009).


Comment:
Here is an alternative for those who prefer "firewall" and "rule" elements:








As for the virtualhost idea, I think I would do that by nesting firewall:

















Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: IP Whitelisting (comment added)

2009-02-04 Thread confluence










Comment Added :
qpid :
Re: IP Whitelisting




IP Whitelisting
commented on by Jonathan Robie
(Feb 04, 2009).


Comment:
Here's a variant for those who prefer "firewall" and "rule":








As for the virtualhost idea, I think I would do that by nesting firewall:

















Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Download (page edited)

2009-02-05 Thread confluence










Page Edited :
qpid :
Download



 
Download
has been edited by Marnie McCormack
(Feb 05, 2009).
 

 
 (View changes)
 

Content:
Production Releases

These releases are well tested and appropriate for production use. M4 is the latest release of Qpid. 

Qpid supports the latest version of AMQP,  0-10, and some components also the AMQP 0-8 and 0-9, earlier versions. For details on compatibility among releases, see:
 AMQP Release Compatibility for Qpid

If you have any questions about these releases, please mail the user list user list

M4 Release

Management tools



 cmd line (packaged with python)  
 http://www.apache.org/dist/qpid/M4/qpid-python-M4.tar.gz 


 QMan JMX bridge, WS-DM (packaged with Java)
 http://www.apache.org/dist/qpid/M4/qpid-java-M4.tar.gz 




Broker & Clients




 Full release & keys 
 http://www.apache.org/dist/qpid/M4/ 


 C++ broker & client
 http://www.apache.org/dist/qpid/M4/qpid-cpp-M4.tar.gz 


 Java broker & client
 http://www.apache.org/dist/qpid/M4/qpid-java-M4.tar.gz 


 Python client 
 http://www.apache.org/dist/qpid/M4/qpid-python-M4.tar.gz 


 C# (.NET, WCF, Excel) 0-10 client (C++ Broker Compatible)
 http://www.apache.org/dist/qpid/M4/qpid-dotnet-0-10-M4.zip 


 C# (.NET) 0-8 client (Java Broker Compatible)
http://www.apache.org/dist/qpid/M4/qpid-dotnet-0-8-M4.zip


 Ruby client 
 http://www.apache.org/dist/qpid/M4/qpid-ruby-M4.tar.gz 


 Python client 
 http://www.apache.org/dist/qpid/M4/qpid-python-M4.tar.gz 





Pre-built Linux Packages

Fedora 8, 9, 10

On Fedora, Qpid can be installed using yum. Because Java RPMs are not yet available in Fedora repos, the Java client is not in these distributions. 

To install the server:


# yum install qpidd


To install C++ and Python clients:


# yum install qpidc-devel



# yum install amqp python-qpid


To install documentation:


# yum install rhm-docs


To install persistence using an external store module:


# yum install rhm


Development Releases

Development releases are intended for testing and previewing new features. They have been tested and meet reasonable quality standards.

The development builds have been moved. We will soon post information on how to access them.


Source Code Repository

The latest version of the code is always available in the Source Repository.











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Download (page edited)

2009-02-05 Thread confluence










Page Edited :
qpid :
Download



 
Download
has been edited by Marnie McCormack
(Feb 05, 2009).
 

 
 (View changes)
 

Content:
Production Releases

These releases are well tested and appropriate for production use. M4 is the latest release of Qpid. 

Qpid supports the latest version of AMQP,  0-10, and some components also the AMQP 0-8 and 0-9, earlier versions. For details on compatibility among releases, see:
 AMQP Release Compatibility for Qpid

If you have any questions about these releases, please mail the user list user list

M4 Release

Broker & Clients



 Full release & keys 
 http://www.apache.org/dist/qpid/M4/ 


 C++ broker & client
 http://www.apache.org/dist/qpid/M4/qpid-cpp-M4.tar.gz 


 Java broker & client
 http://www.apache.org/dist/qpid/M4/qpid-java-M4.tar.gz 


 C# (.NET, WCF, Excel) 0-10 client (C++ Broker Compatible)
 http://www.apache.org/dist/qpid/M4/qpid-dotnet-0-10-M4.zip 


 C# (.NET) 0-8 client (Java Broker Compatible)
http://www.apache.org/dist/qpid/M4/qpid-dotnet-0-8-M4.zip


 Python client 
 http://www.apache.org/dist/qpid/M4/qpid-python-M4.tar.gz 


 Ruby client 
 http://www.apache.org/dist/qpid/M4/qpid-ruby-M4.tar.gz 



Management tools



 cmd line (packaged with python)  
 http://www.apache.org/dist/qpid/M4/qpid-python-M4.tar.gz 


 QMan JMX bridge, WS-DM (packaged with Java)
 http://www.apache.org/dist/qpid/M4/qpid-java-M4.tar.gz 



C++ Convenience Packages

Pre-built Linux Packages

Fedora 8, 9, 10

On Fedora, Qpid can be installed using yum. Because Java RPMs are not yet available in Fedora repos, the Java client is not in these distributions. 

To install the server:


# yum install qpidd


To install C++ and Python clients:


# yum install qpidc-devel



# yum install amqp python-qpid


To install documentation:


# yum install rhm-docs


To install persistence using an external store module:


# yum install rhm


Development Releases

Development releases are intended for testing and previewing new features. They have been tested and meet reasonable quality standards.

The development builds have been moved. We will soon post information on how to access them.

Source Code Repository

The latest version of the code is always available in the Source Repository.











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Download (page edited)

2009-02-05 Thread confluence










Page Edited :
qpid :
Download



 
Download
has been edited by Marnie McCormack
(Feb 05, 2009).
 

 
 (View changes)
 

Content:
Production Releases

These releases are well tested and appropriate for production use. M4 is the latest release of Qpid. 

Qpid supports the latest version of AMQP,  0-10, and some components also the AMQP 0-8 and 0-9, earlier versions. For details on compatibility among releases, see:
 AMQP Release Compatibility for Qpid

If you have any questions about these releases, please mail the user list user list

M4 Release

Broker & Clients



 Full release & keys 
 http://www.apache.org/dist/qpid/M4/ 


 C++ broker & client
 http://www.apache.org/dist/qpid/M4/qpid-cpp-M4.tar.gz 


 Java broker & client
 http://www.apache.org/dist/qpid/M4/qpid-java-M4.tar.gz 


 C# (.NET, WCF, Excel) 0-10 client (C++ Broker Compatible)
 http://www.apache.org/dist/qpid/M4/qpid-dotnet-0-10-M4.zip 


 C# (.NET) 0-8 client (Java Broker Compatible)
http://www.apache.org/dist/qpid/M4/qpid-dotnet-0-8-M4.zip


 Python client 
 http://www.apache.org/dist/qpid/M4/qpid-python-M4.tar.gz 


 Ruby client 
 http://www.apache.org/dist/qpid/M4/qpid-ruby-M4.tar.gz 



Management tools



 cmd line (packaged with python)  
 http://www.apache.org/dist/qpid/M4/qpid-python-M4.tar.gz 


 QMan JMX bridge, WS-DM (packaged with Java)
 http://www.apache.org/dist/qpid/M4/qpid-java-M4.tar.gz 



C++ Convenience Packages

Pre-built Linux Packages

Fedora 8, 9, 10

On Fedora, Qpid can be installed using yum. Because Java RPMs are not yet available in Fedora repos, the Java client is not in these distributions. 

To install the server:


# yum install qpidd


To install C++ and Python clients:


# yum install qpidc-devel



# yum install amqp python-qpid


To install documentation:


# yum install rhm-docs


To install persistence using an external store module:


# yum install rhm


Development Releases

Development releases are intended for testing and previewing new features. They have been tested and meet reasonable quality standards.

The development builds have been moved. We will soon post information on how to access them.

Source Code Repository

The latest version of the code is always available in the Source Repository.











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: IP Whitelisting (comment added)

2009-02-05 Thread confluence










Comment Added :
qpid :
Re: IP Whitelisting




IP Whitelisting
commented on by Aidan Skinner
(Feb 05, 2009).


Comment:
I'm going to put firewall into the virtualhosts  section and one in the main  section>. Virtualhosts will get evaluated first, then the global one. 











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: IP Whitelisting (page edited)

2009-02-05 Thread confluence










Page Edited :
qpid :
IP Whitelisting



 
IP Whitelisting
has been edited by Aidan Skinner
(Feb 05, 2009).
 

 
 (View changes)
 

Content:
While using a properly configured firewall is the obvious way to restrict access to a broker, it's occasionally desireable to do this on the broker itself.

Configuration

The access restrictions apply either to the server as a whole or too a particular virtualhost. Rules are evaluated in the virtualhost first, then the server as a whole (most-specific to least-specific). This allows whole netblocks to be restricted from all but one virtualhost. A  element would appear in either the  section or inside the equivalent  element. 

Elements inside  would be  or path"/>.  would read the file specified at path, which would contain an .

 would contain further  entries, but not . If the host attribute was specified the broker would check it's hostname against the attribute and cause a fatal error on startup if it did not match.

 would have action, hostname and network attributes. Action and one of host or network would be mandatory. The action attribute would be either allow or deny. Host contains a comma seperated list of regexps against which it would match the reverse dns lookup of the connecting IP. Network contains a comma seperated list of of CIDR networks against which the IP would be matched.

The first  which matched the connection would apply. If no rules applied, the default-action would apply.

For example, the following could appear in config.xml:

default-action="" class="code-quote">"deny">
  "allow" hostname="*.qpid.apache.org"/>
  "/path/to/file" />
  "allow" network="192.168.1.0/24" />
  "allow" network="10.0.0.0/8" />


and /path/to/file could contain:

"broker1.qpid.apache.org">
 "deny" network="192.168.1.0/24" virtualhost="prod"/>


any machine in the qpid.apache.org domain could access dev.
Any machine in the 192.168.1.0/24 network would be allowed access to any virtualhost other than prod
Any machine in the 10.0.0.0/8 network would be allowed access to any virtual host
Any other machine would be denied access.

Changes would be possible while broker was running via commons-configuration magic when the file is editted. Existing connections would be unaffected by a new rule.

Implementation

An IPRestriction class would extend ACLPlugin which listens for ConnectionOpen and checks against the list of rules. It will use the mechanism described at http://qpid.apache.org/java-authorization-plugins.html. 

IPRestriction would parse the config file, compiling into an ordered list of Rule classes, which would have two methods: boolean match(InetAddress IPAddress) and boolean allow(). During the authorization phase it would iterate through these Rules until match() returns true when it will authorize or not according to the value returned by allow(). 

Because of the way that Java pre-6 caches dns forever, a small value for networkaddress.cache.ttl is necessary. 

QPID-1583











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: IP Whitelisting (page edited)

2009-02-05 Thread confluence










Page Edited :
qpid :
IP Whitelisting



 
IP Whitelisting
has been edited by Aidan Skinner
(Feb 05, 2009).
 

 
 (View changes)
 

Content:
While using a properly configured firewall is the obvious way to restrict access to a broker, it's occasionally desireable to do this on the broker itself.

Configuration

The access restrictions apply either to the server as a whole or too a particular virtualhost. Rules are evaluated in the virtualhost first, then the server as a whole (most-specific to least-specific). This allows whole netblocks to be restricted from all but one virtualhost. A  element would appear in either the  section or inside the equivalent  element. 

Elements inside  would be  or path"/>.  would read the file specified at path, which would contain an .

 would contain further  entries, but not . If the host attribute was specified the broker would check it's hostname against the attribute and cause a fatal error on startup if it did not match.

 would have action, hostname and network attributes. Action and one of host or network would be mandatory. The action attribute would be either allow or deny. Host contains a comma seperated list of regexps against which it would match the reverse dns lookup of the connecting IP. Network contains a comma seperated list of of CIDR networks against which the IP would be matched.

The first  which matched the connection would apply. If no rules applied, the default-action would apply.

For example, the following could appear in config.xml:

default-action="" class="code-quote">"deny">
  "allow" hostname="*.qpid.apache.org"/>
  "/path/to/file" />
  "allow" network="192.168.1.0/24" />
  "allow" network="10.0.0.0/8" />


and /path/to/file could contain:

"broker1.qpid.apache.org">
 "deny" newtork="192.168.1.0/24" virtualhost="prod"/>


any machine in the qpid.apache.org domain could access dev.
Any machine in the 192.168.1.0/24 network would be allowed access to any virtualhost other than prod
Any machine in the 10.0.0.0/8 network would be allowed access to any virtual host
Any other machine would be denied access.

Changes would be possible while broker was running via commons-configuration magic when the file is editted. Existing connections would be unaffected by a new rule.

Implementation

An IPRestriction class would extend ACLPlugin which listens for ConnectionOpen and checks against the list of rules. It will use the mechanism described at http://qpid.apache.org/java-authorization-plugins.html. 

IPRestriction would parse the config file, compiling into an ordered list of Rule classes, which would have two methods: boolean match(InetAddress IPAddress) and boolean allow(). During the authorization phase it would iterate through these Rules until match() returns true when it will authorize or not according to the value returned by allow(). 

Because of the way that Java pre-6 caches dns forever, a small value for networkaddress.cache.ttl is necessary. 

QPID-1583











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Java authorization plugins (page edited)

2009-02-05 Thread confluence










Page Edited :
qpid :
Java authorization plugins



 
Java authorization plugins
has been edited by Aidan Skinner
(Feb 05, 2009).
 

 
 (View changes)
 

Content:
It would be useful to provide pluggable authorization mechanisms.

A SecurityManager interface would collect all the available plugins from OSGi and present a singelton interface to frame handlers and JMX methods. 

Methods such as boolean allowAccess(Session session, VirtualHost host) or boolean allowBind(Session session, Exchange exch, String routingkey, Queue queue) would be called and return true or false depending on if the action was allowed. Each plugin would be processed until one returned false, at which point access would be denied. If all plugins allowed access, true would be returned.

This would allow arbitrary and custom authorization mechanisms to be plugged into the broker, potentially including things like access restricted by IP Address or looking up information in LDAP. Or capriciously allowing or denying access based on a PRNG. 

At broker startup each child tag in the  section of the server configuration would be parsed and the plugins queried if they supported it. If they did, then they would be added to the list of global plugins.

When a virtualhost is instantiated the  section of the virtualhost's configuration would be parsed, the relevant plugins would be passed in that configuration section and added to a per-virtualhost list of plugins in the security manager.

When evaluating the plugins, the virtualhost specific plugins would be evaluated first, then the global list of plugins. 












Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Download (page edited)

2009-02-05 Thread confluence










Page Edited :
qpid :
Download



 
Download
has been edited by Carl Trieloff
(Feb 05, 2009).
 

 
 (View changes)
 

Content:
Production Releases

These releases are well tested and appropriate for production use. M4 is the latest release of Qpid. 

Qpid supports the latest version of AMQP 0-10, and some components also the AMQP 0-8 and 0-9, earlier versions. The Java Broker and Client provide protocol negotiation. 

For details on cross component compatibility among releases, see: AMQP Release Compatibility for Qpid

If you have any questions about these releases, please mail the user list user list

M4 Release

Broker & Clients



Component  
 Download  
 AMQP 0-10 
 AMQP 0-8/0-9


 Full release & keys 
 http://www.apache.org/dist/qpid/M4/ 
 Y 
 Y 


 C++ broker & client
 http://www.apache.org/dist/qpid/M4/qpid-cpp-M4.tar.gz 
 Y 
 


 Java broker & client
 http://www.apache.org/dist/qpid/M4/qpid-java-M4.tar.gz 
 client 
 Y 


 C# (.NET, WCF, Excel) 0-10 client (C++ Broker Compatible)
 http://www.apache.org/dist/qpid/M4/qpid-dotnet-0-10-M4.zip 
Y 
 


 C# (.NET) 0-8 client (Java Broker Compatible)
http://www.apache.org/dist/qpid/M4/qpid-dotnet-0-8-M4.zip
 
 Y 


 Python client 
 http://www.apache.org/dist/qpid/M4/qpid-python-M4.tar.gz 
 Y 
 Y 


 Ruby client 
 http://www.apache.org/dist/qpid/M4/qpid-ruby-M4.tar.gz 
 Y 
 Y 



Management tools for AMQP 0-10



 cmd line (packaged with python)  
 http://www.apache.org/dist/qpid/M4/qpid-python-M4.tar.gz 


 QMan JMX bridge, WS-DM (packaged with Java)
 http://www.apache.org/dist/qpid/M4/qpid-java-M4.tar.gz 



C++ Convenience Packages

Pre-built Linux Packages

Fedora 8, 9, 10

On Fedora, Qpid can be installed using yum. Because Java RPMs are not yet available in Fedora repos, the Java client is not in these distributions. 

To install the server:


# yum install qpidd


To install C++ and Python clients:


# yum install qpidc-devel



# yum install amqp python-qpid


To install documentation:


# yum install rhm-docs


To install persistence using an external store module:


# yum install rhm


Development Releases

Development releases are intended for testing and previewing new features. They have been tested and meet reasonable quality standards.

The development builds have been moved. We will soon post information on how to access them.

Source Code Repository

The latest version of the code is always available in the Source Repository.











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: Download (page edited)

2009-02-05 Thread confluence










Page Edited :
qpid :
Download



 
Download
has been edited by Carl Trieloff
(Feb 05, 2009).
 

 
 (View changes)
 

Content:
Production Releases

These releases are well tested and appropriate for production use. M4 is the latest release of Qpid. 

Qpid supports the latest version of AMQP 0-10, and some components also the AMQP 0-8 and 0-9, earlier versions. The Java Broker and Client provide protocol negotiation. 

For details on cross component compatibility among releases, see: AMQP Release Compatibility for Qpid

If you have any questions about these releases, please mail the user list user list

M4 Release

Broker & Clients



Component  
 Download  
 AMQP 0-10 
 AMQP 0-8/0-9


 Full release & keys 
 http://www.apache.org/dist/qpid/M4/ 
 Y 
 Y 


 C++ broker & client
 http://www.apache.org/dist/qpid/M4/qpid-cpp-M4.tar.gz 
 Y 
 


 Java broker & client
 http://www.apache.org/dist/qpid/M4/qpid-java-M4.tar.gz 
 client 
 Y 


 C# (.NET, WCF, Excel) 0-10 client (C++ Broker Compatible)
 http://www.apache.org/dist/qpid/M4/qpid-dotnet-0-10-M4.zip 
Y 
 


 C# (.NET) 0-8 client (Java Broker Compatible)
http://www.apache.org/dist/qpid/M4/qpid-dotnet-0-8-M4.zip
 
 Y 


 Python client 
 http://www.apache.org/dist/qpid/M4/qpid-python-M4.tar.gz 
 Y 
 Y 


 Ruby client 
 http://www.apache.org/dist/qpid/M4/qpid-ruby-M4.tar.gz 
 Y 
 Y 



Management tools



Component   
 Download 
 AMQP 0-10 


 cmd line (packaged with python)  
 http://www.apache.org/dist/qpid/M4/qpid-python-M4.tar.gz 
 Y 


 QMan JMX bridge, WS-DM (packaged with Java)
 http://www.apache.org/dist/qpid/M4/qpid-java-M4.tar.gz 
 Y 



C++ Convenience Packages

Pre-built Linux Packages

Fedora 8, 9, 10

On Fedora, Qpid can be installed using yum. Because Java RPMs are not yet available in Fedora repos, the Java client is not in these distributions. 

To install the server:


# yum install qpidd


To install C++ and Python clients:


# yum install qpidc-devel



# yum install amqp python-qpid


To install documentation:


# yum install rhm-docs


To install persistence using an external store module:


# yum install rhm


Development Releases

Development releases are intended for testing and previewing new features. They have been tested and meet reasonable quality standards.

The development builds have been moved. We will soon post information on how to access them.

Source Code Repository

The latest version of the code is always available in the Source Repository.











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



[CONF] Apache Qpid: IP Whitelisting (page edited)

2009-02-05 Thread confluence










Page Edited :
qpid :
IP Whitelisting



 
IP Whitelisting
has been edited by Aidan Skinner
(Feb 05, 2009).
 

 
 (View changes)
 

Content:
While using a properly configured firewall is the obvious way to restrict access to a broker, it's occasionally desireable to do this on the broker itself.

Configuration

The access restrictions apply either to the server as a whole or too a particular virtualhost. Rules are evaluated in the virtualhost first, then the server as a whole (most-specific to least-specific). This allows whole netblocks to be restricted from all but one virtualhost. A  element would appear in either the  section or inside the equivalent  element. 

Elements inside  would be  or path"/>.  would read the file specified at path, which would contain an .

 would contain further  entries, but not . If the host attribute was specified the broker would check it's hostname against the attribute and cause a fatal error on startup if it did not match.

 would have action, virtualhost, hostname and network attributes. Action and one of host or network would be mandatory. Virtualhost would be optional, if specified the rule would apply only to that virtualhost. The action attribute would be either allow or deny. Host contains a comma seperated list of regexps against which it would match the reverse dns lookup of the connecting IP. Network contains a comma seperated list of of CIDR networks against which the IP would be matched.

The first  which matched the connection would apply. If no rules applied, the default-action would apply.

For example, the following could appear in config.xml:

default-action="" class="code-quote">"deny">
  "allow" hostname="*.qpid.apache.org" virtualhost="dev"/>
  "/path/to/file" />
  "allow" network="192.168.1.0/24" />
  "allow" network="10.0.0.0/8" />


and /path/to/file could contain:

"broker1.qpid.apache.org">
 "deny" newtork="192.168.1.0/24" virtualhost="prod"/>


any machine in the qpid.apache.org domain could access dev.
Any machine in the 192.168.1.0/24 network would be allowed access to any virtualhost other than prod
Any machine in the 10.0.0.0/8 network would be allowed access to any virtual host
Any other machine would be denied access.

Changes would be possible while broker was running via commons-configuration magic when the file is editted. Existing connections would be unaffected by a new rule.

Implementation

An IPRestriction class would extend ACLPlugin which listens for ConnectionOpen and checks against the list of rules. It will use the mechanism described at http://qpid.apache.org/java-authorization-plugins.html. 

IPRestriction would parse the config file, compiling into an ordered list of Rule classes, which would have two methods: boolean match(InetAddress IPAddress) and boolean allow(). During the authorization phase it would iterate through these Rules until match() returns true when it will authorize or not according to the value returned by allow(). 

Because of the way that Java pre-6 caches dns forever, a small value for networkaddress.cache.ttl is necessary. 

QPID-1583











Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



  1   2   3   4   5   6   7   8   9   10   >