qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robbie Gemmell <robbie.gemm...@gmail.com>
Subject Re: how to set static binding (routingkeys) config for Java broker?
Date Sat, 09 Mar 2013 19:14:24 GMT
There isn't a schema for config.xml or virtualhosts.xml im afraid, and
documentation has been rather lacking in this area. In the docs various
elements of config.xml that we might actually expect a user to change
(basically those for management and security) are described in associated
sections, but there is no overall schema. For virtualhosts.xml, this bit
from the older docs is about all there was:
http://qpid.apache.org/books/0.18/AMQP-Messaging-Broker-Java-Book/html/Qpid-Java-Broker-Virtualhosts-Config.html

Frasers suggestions of code areas to look at are indeed the current best
source of some of the details. We have been trying to slowly improve the
Java broker docs for a while now (we re-started them from scratch) but
virtualhosts.xml is still an area of weakness. That is in part because it
is a bit horrible and in part because we have actually intended to remove
virtualhosts.xml for some time, though that is going to be further down the
line than we originally intended.

We have been working in the long term to change how the Java broker is
configured (and internally structured), having all configuration stored
within configuration stores at the broker and virtualhost levels, and
making it possible to start the broker without supplying any initial
configuration and then configuring it entirely through its management
interface. The broker level of this work is coming along and so config.xml
actually no longer exists on trunk (to become 0.22), with the broker
initially starting up without user-supplied configuration (though it can be
done if necessary, but the idea is not to) and then storing its base
configuration into a JSON config store for further configuration via the
managment interface. It is possible to create virtualhosts without any
virtualhosts.xml file at the moment, though for now it is also still
possible to supply one in order to support doing various bits of
vhost-level configuration we cant perform/store via the management
interface yet. We will look to enable that functionality in future and
ultimately remove virtualhosts.xml file(s), but its likely to be supported
longer than we first thought/wanted as other significant pieces of work are
seeking attention. In typical fashion, we still have to do the work on docs
for this new stuff.

Robbie

On 8 March 2013 23:06, Tom M <td.home21@gmail.com> wrote:

> thanks for the additional explanation.
>
> Also, is there a schema or some other documentation that defines the valid
> parameters of the Java Broker   virtualhost.xml ?
> And, for that matter, also for the Java Broker  config.xml ?
>
> thanks,
> Tom
>
> On Thu, Mar 7, 2013 at 5:57 PM, Robbie Gemmell <robbie.gemmell@gmail.com
> >wrote:
>
> > Looking at the code which processes that configuration, yes you can
> specify
> > multiple binding keys for the queue by having multiple 'routingKey'
> > elements for the queue within the the configuration file (that element
> name
> > was poorly chosen, as the 'routing key' name actually applies when
> > publishing).
> >
> > What Jakub may have been aluding to in his example binding key is that
> > exchanges of the 'topic' type (such as amq.topic) support heirarchical
> > bindings with dots deliminating each level of the heirarchy, and give
> > special meaning to use of # and * as levels such that using a * matches
> any
> > value for that level in a routing key and using a # matches zero or more
> > levels. As such a single binding can actually match many routing keys
> used
> > when publishing a message to a topic exchange.
> >
> > There is a diagram and description that expand on this here:
> >
> >
> https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_MRG/1.3/html/Messaging_User_Guide/chap-Messaging_User_Guide-Exchanges.html#sect-Messaging_User_Guide-Exchange_Types-Topic_Exchange
> >
> > Robbie
> >
> > On 7 March 2013 20:59, Tom M <td.home21@gmail.com> wrote:
> >
> > > Jakub, Alex, Frase,
> > >
> > > Thank you very much for your replies and explanations.
> > >
> > > Jakub,
> > >
> > > From your syntax,
> > >      <routingKey>rtgkey.#</routingKey>
> > >
> > > Does the ".#" indicate that we can use this connotation to provide a
> wild
> > > card set of routingKeys with the same base?
> > > If we have a discrete set of routingKey names (without the same base
> > name),
> > > can we just add multiple routingKey elements for the queue?
> > >
> > >
> > > Frase,
> > > we are definitely interested in your success with this tool.  Do please
> > let
> > > us know.
> > >
> > > thanks,
> > > Tom
> > >
> > >
> > > ---------- Forwarded message ----------
> > > From: Jakub Scholz <jakub@scholz.cz>
> > > Date: Thu, Mar 7, 2013 at 8:39 AM
> > > Subject: Re: how to set static binding (routingkeys) config for Java
> > > broker?
> > > To: users@qpid.apache.org
> > >
> > >
> > >
> > > If you are still using the XML configuration, in the virtualhosts.xml
> you
> > > should be able to add the binding in the queue section ... like this:
> > >
> > >                 <queue>
> > >                     <name>queue1</name>
> > >                     <queue1>
> > >                         <exchange>exchange1</exchange>
> > >                         <routingKey>rtgkey.#</routingKey>
> > >                         <durable>true</durable>
> > >                     </queue1>
> > >                 </queue>
> > > Regards
> > > Jakub
> > >
> > >
> > > ---------- Forwarded message ----------
> > > From: Oleksandr Rudyy <orudyy@gmail.com>
> > > Date: Thu, Mar 7, 2013 at 9:10 AM
> > > Subject: Re: how to set static binding (routingkeys) config for Java
> > > broker?
> > > To: users@qpid.apache.org
> > >
> > > Hi Tom,
> > >
> > > qpid-config does not work with java broker.
> > >
> > > You can configure your queues/exchanges/bindings on java broker in
> > > virtualhost.xml or create them with JMX client like jconsole, qpid
> > > management console or rest management client like qpid web management
> > > console.
> > >
> > > You need to configure a persistent message store (like Derby or BDB)
> > > and declare your queues/exchanges as durable if you need them to
> > > survive broker restart.
> > >
> > > At the moment there is no common configuration utility supported by
> > > both c++ and java brokers.
> > >
> > > Kind Regards,
> > > Alex
> > >
> > >
> > > On Thu, Mar 7, 2013 at 12:57 PM, Fraser Adams <
> > > fraser.adams@blueyonder.co.uk
> > > > wrote:
> > >
> > > > Hi Tom,
> > > > RE:
> > > >
> > > > It appears that qpid-config  does not work for the Java broker.  Is
> > this
> > > > still correct?
> > > >
> > > >
> > > > You may have seen some of my postings with respect to QMF and
> > > > implementation of a QMF based management GUI. This was initially for
> > the
> > > > C++ broker however you might be interested to know that I'm currently
> > > > working on a QMF Management Plugin for the Java Broker.
> > > >
> > > > So far I've got it working for viewing statistics, but I'm planning
> on
> > > > implementing most of add/delete stuff this weekend.
> > > >
> > > > With a bit of luck I'll have something releasable by the end of the
> > > > weekend if you keep an eye on the mailing list.
> > > >
> > > > Initially it'll just be a new release of the qmf2 tarball attached to
> > the
> > > > QMF jira, but I need to look at getting it properly in to the main
> Qpid
> > > > code base after that.
> > > >
> > > > It's worth mentioning that the Java broker has its own management UI
> on
> > > > host:port:8080/management you might want to try that too. I'm trying
> to
> > > > provide a unified view across a mixed economy of C++ and Java brokers
> > so
> > > I
> > > > tend to prefer the QMF approach. My QmfManagementPlugin works with
> > > > qpid-config, though you'd need to use a recent version (0.18 or 0.20)
> > the
> > > > early versions used QMF1 but my Agent only talks QMF2.
> > > >
> > > > I'll keep you posted.
> > > >
> > > > Best regards,
> > > > Frase
> > > >
> > > >
> > > >
> > > > On 07/03/13 14:26, Tom M wrote:
> > > >
> > > >> We are attempting to set the configuration for our qpid broker in
> > > >> development of a production system.
> > > >>
> > > >> It appears that qpid-config  does not work for the Java broker.  Is
> > this
> > > >> still correct?
> > > >>
> > > >> I see that we can set the config for the exchanges and queue in the
> > > >> virtualhosts.xml.
> > > >> But, I can not find any documentation or examples about setting the
> > > >> binding
> > > >> (routingkeys) in this config file.  Is it possible to config the
> > > bindings
> > > >> from this file?  If so, can you provide the syntax?
> > > >>
> > > >> I have found that setting static bindings for static Direct Exchange
> > to
> > > >> static queue does work for the Java broker (and we have had success
> > > >> providing messaging this way with the Java broker).
> > > >>   We can staticly configure the bindings (as well as the exchange
> and
> > > >> queues) via the C++ client lib, using  session exchangeBind( ),
> from a
> > > >> static Direct Exchange and static queue.
> > > >> Also, can successfully set via Jconsole.
> > > >> But, we don't want to have to use these methods for our production
> > > system
> > > >> (we are attempting to get away from the C++ client lib, and then I
> > don't
> > > >> even see this available for the messaging lib.)
> > > >>
> > > >> We would prefer to set our mission operational messaging elements
> via
> > a
> > > >> config file (or config script or Java app) on broker start up.
> > > >>
> > > >> This is primarily driven by our HA requirements.  For HA, for these
> > > >> primary
> > > >> command and responses messages, we need our exchanges, queues and
> > > bindings
> > > >> to be static so that if any of the involved components goes down,
we
> > > will
> > > >> not lose any messages.
> > > >> Also, we need to set bindings such that, in some cases, a single
> > > >> message into given exchange needs to route to multiple queues.  And,
> > > also,
> > > >> some queues need to be bound to multiple exchanges.
> > > >>
> > > >> A little broader question....
> > > >> If qpid-config does not work for the Java broker, is there some
> other
> > a
> > > >> way
> > > >> to provide the config that will work for both the Java and C++
> broker?
> > > >> We would like to have the flexibility to config with either.
> > > >>
> > > >> thanks,
> > > >> Tom Maggio
> > > >>
> > > >>
> > > >
> > > >
> > >
> >
>  ------------------------------**------------------------------**---------
> > > > To unsubscribe, e-mail: users-unsubscribe@qpid.apache.**org<
> >  > users-unsubscribe@qpid.apache.org>
> > > > For additional commands, e-mail: users-help@qpid.apache.org
> > > >
> > > >
> > >
> >
>

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