Rob,

Thanks for detailed explanation, i wanted to restart with the changed
properties if any for example today i have Anonymous SASL and later i may
want to use password file. How do i pass SASL mechanism as -prop?

Thanks,
Ram

On Fri, Apr 8, 2016 at 2:10 AM, Rob Godfrey <[email protected]> wrote:

> Hi Ram,
>
> The initial config file is only used when there is no broker config - the
> idea is that it is used to populate the broker config on first startup.
> Once there is a broker config file then this is used (since it may have
> been updated by creating or modifying entities through the management
> functions).  The broker ships with a default initial config which is
> contained within its jar files, however we allow people to provide there
> own.  Records in the config file a copied verbatim into the config store -
> the only difference being that ids are generated for each entity.  The
> interpolation from property names to values is done each time the broker
> reads the config.  If the broker finds there is config in the store path
> then it completely ignores the initial config - it does not examine any
> differences.
>
> Are you looking to start a completely fresh broker each time, or merely to
> be able to change certain properties (such as port numbers) on each
> restart?  If you do not want to retain any changes to the broker
> configuration made while the broker is actually running, then you could use
> a "memory" config store rather than a Json one.  If you want to retain any
> changes made through management, but desire the ability to change certain
> properties (like ports) on each startup, then you don't need to worry about
> the fact that the initial configuration is only loaded the first time - you
> just need to pass in the property values you want on startup.
>
> In terms of an example system properties file...  The default
> initial-config.json defines the amqp port to be ${qpid.amqp_port} and the
> http port to run on ${qpid.http_port}, so if I create a properties file
> called rob.properties which contains
>
> qpid.http_port=8888
> qpid.amqp_port=5555
>
> and then run qpid with the argument -props rob.properties then I get...
>
> [Broker] BRK-1002 : Starting : Listening on TCP port 5555
> [Broker] MNG-1001 : Web Management Startup
> [Broker] MNG-1002 : Starting : HTTP : Listening on TCP port 8888
>
>
> So, when you use your initial or stored config you just need to ensure all
> the variables you use in your config are set in your properties file (some
> properties have defaults within the code if they are not otherwise set -
> e.g. qpid.amqp_port will default to 5672 if it is not set elsewhere).
>
> Hope this helps,
> Rob
>
> On 8 April 2016 at 00:41, rammohan ganapavarapu <[email protected]>
> wrote:
>
> > Rob,
> >
> > Thank you, one more question on -icp and -sp, so what if i have updated
> icp
> > with some property change  and restarted broker with icp (every time i
> > restart broker i am using initial config
> > "/opt/qpid-java-broker/bin/qpid-server -icp
> > /opt/qpid-java-broker/etc/config.json" not sure if its is right way or
> > not), does it automatically update config file in -sp? i my case it did
> not
> > updated the config file in store-path upon restart. What will happened
> if i
> > have differences in initial config file that i use to start broker and
> the
> > config file under store-path?
> >
> > Thanks,
> > Ram
> >
> > On Thu, Apr 7, 2016 at 3:59 PM, Rob Godfrey <[email protected]>
> > wrote:
> >
> > > This looks like a client error to me... the line which says:
> > >
> > >  Client restricted itself to : PLAIN
> > >
> > > Out of interest what happens if you remove the &sasl_mechs='ANONYMOUS'
> > from
> > > your connection URL?  Without any sort of restriction I'd expect the
> > client
> > > to do the right thing.
> > >
> > > I need to get to sleep now (1am here :-) )... I'll have deeper look in
> > the
> > > morning.
> > >
> > > -- Rob
> > >
> > > On 7 April 2016 at 23:51, rammohan ganapavarapu <
> [email protected]
> > >
> > > wrote:
> > >
> > > > Rob,
> > > >
> > > > thanks for the explanation, do you have a sample
> > > --system-properties-file?
> > > > that i can take a look?
> > > >
> > > > Also i just tried 6.0.1 but my client/app is throwing this error, i
> am
> > > not
> > > > a developer, i am ops guy and i dont want to change the existing code
> > but
> > > > wanted to make java qpid work. This is the error i am getting with
> > > 6.0.1v..
> > > >
> > > > 2016-04-07 22:32:36,726
> > > > QPIDConnectionManager-80478ba7-b31e-483a-823e-f726104ac1db ERROR
> > > > S.QUEUECLIENTSERVICE - ConnectionImpl.openConnection() : Error
> > connecting
> > > > to Connection : 0 Host = qphost01
> > > >
> > > >
> > >
> >
> url=amqp://null:********@qphost011460067563391/?brokerlist='tcp://localhost:5672?connecttimeout='5000'&sasl_mechs='ANONYMOUS''
> > > > error Unknown virtualhost '' username=null
> > > > 2016-04-07 22:32:36,731
> > > > QPIDConnectionManager-80478ba7-b31e-483a-823e-f726104ac1db ERROR
> > > > S.QUEUECLIENTSERVICE - ConnectionImpl.openConnection() : Error
> > connecting
> > > > to Connection : 0 Host = qphost01
> > > >
> > > >
> > >
> >
> url=amqp://null:********@qphost011460067563391/?brokerlist='tcp://localhost:5672?connecttimeout='5000'&sasl_mechs='ANONYMOUS''
> > > > error Client and broker have no SASL mechanisms in common. Broker
> > allows
> > > :
> > > > ANONYMOUS Client has : [EXTERNAL, GSSAPI, CRAM-MD5-HASHED, CRAM-MD5,
> > > > AMQPLAIN, PLAIN, ANONYMOUS] Client restricted itself to : PLAIN
> > > > username=guest
> > > >
> > > >
> > > > And here is my sasl mechanism.
> > > >
> > > > curl -s 0:10001/service/sasl
> > > > {
> > > >   "user" : "ANONYMOUS",
> > > >   "mechanisms" : [ "ANONYMOUS" ]
> > > >
> > > > Same SASL with 0.28 works fine with my app but 6.0.1 is not working.
> > > >
> > > >
> > > > Thanks,
> > > > Ram
> > > >
> > > >
> > > >
> > > > On Thu, Apr 7, 2016 at 3:39 PM, Rob Godfrey <[email protected]
> >
> > > > wrote:
> > > >
> > > > > On 7 April 2016 at 23:16, rammohan ganapavarapu <
> > > [email protected]
> > > > >
> > > > > wrote:
> > > > >
> > > > > > Rob,
> > > > > >
> > > > > > Does v6.0.1 support Anonymous or no authentication? last time
> when
> > i
> > > > try
> > > > > to
> > > > > > use .32 it was not working with Anonymous.
> > > > > >
> > > > >
> > > > > Yes, Anonymous is supported.  Which AMQP protocol are you using
> > (0-9-1,
> > > > > 0-10, or 1.0)... I would expect that Anonymous should work on 0.32
> > > > however
> > > > > I think in 0.32 the "no authentication layer at all" option for
> AMQP
> > > 1.0
> > > > > probably didn't work (this is different to an authentication layer
> > > which
> > > > > allows anonymous).
> > > > >
> > > > >
> > > > > >
> > > > > > Sorry i was not clear in my previous email, i was taking about
> > > > properties
> > > > > > file not broker storage format, the use case is if i wanted to
> > > override
> > > > > > some of these properties and i have my own custom tool/script
> that
> > > > goes
> > > > > > through the properties files and replace with the override i
> > defined,
> > > > so
> > > > > i
> > > > > > want to use the same tool/script for qpid config as well. My tool
> > > only
> > > > > > support key:value but if we have json array it wont work. So if i
> > > want
> > > > to
> > > > > > pass overrides as "-prop"  command line arguments what are the
> > > > properties
> > > > > > that java qpid support as command line?
> > > > > >
> > > > > > Below if my config, is it possible to pass all these as command
> > line
> > > > > > arguments?
> > > > > >
> > > > > > {
> > > > > >   "authenticationproviders" : [ {
> > > > > >     "id" : "7050933f-3485-4866-95d2-1f1b258ea3ac",
> > > > > >     "name" : "Anonymous",
> > > > > >     "type" : "Anonymous"
> > > > > >   } ],
> > > > > >   "defaultVirtualHost" : "default",
> > > > > >   "id" : "c433a66c-e6dc-4c48-be01-268295f580bc",
> > > > > >   "modelVersion" : "1.3",
> > > > > >   "name" : "Broker",
> > > > > >   "plugins" : [ {
> > > > > >     "id" : "58889cb7-9b9b-4866-bab2-4cfd63266dbf",
> > > > > >     "name" : "httpManagement",
> > > > > >     "pluginType" : "MANAGEMENT-HTTP"
> > > > > >   }, {
> > > > > >     "id" : "67282f5e-ebab-4341-9ff5-27a58fd2df89",
> > > > > >     "name" : "jmxManagement",
> > > > > >     "pluginType" : "MANAGEMENT-JMX"
> > > > > >   } ],
> > > > > >   "ports" : [ {
> > > > > >     "authenticationProvider" : "Anonymous",
> > > > > >     "id" : "99e13356-080a-4abe-852e-8c452149cdae",
> > > > > >     "name" : "JMX_CONNECTOR",
> > > > > >     "port" : "9099",
> > > > > >     "protocols" : [ "JMX_RMI" ]
> > > > > >   }, {
> > > > > >     "authenticationProvider" : "Anonymous",
> > > > > >     "id" : "12813407-62ae-429f-8bee-75802f3b6553",
> > > > > >     "name" : "RMI_REGISTRY",
> > > > > >     "port" : "8999",
> > > > > >     "protocols" : [ "RMI" ]
> > > > > >   }, {
> > > > > >     "authenticationProvider" : "Anonymous",
> > > > > >     "id" : "3b107675-edd7-40a3-86c2-3113b46157f9",
> > > > > >     "name" : "AMQP",
> > > > > >     "port" : "5672"
> > > > > >   }, {
> > > > > >     "authenticationProvider" : "Anonymous",
> > > > > >     "id" : "6dff5ecf-1a4b-46ad-b93d-f2606b5e4f6e",
> > > > > >     "name" : "HTTP",
> > > > > >     "port" : "10001",
> > > > > >     "protocols" : [ "HTTP" ]
> > > > > >   } ],
> > > > > >   "storeVersion" : 1,
> > > > > >   "virtualhosts" : [ {
> > > > > >     "createdTime" : 1439482250329,
> > > > > >     "id" : "eef20ba0-33d3-4b37-93a7-fe2b34e54503",
> > > > > >     "name" : "default",
> > > > > >     "storePath" : "/ebs//derbystore/default",
> > > > > >     "storeType" : "DERBY",
> > > > > >     "type" : "STANDARD"
> > > > > >   } ]
> > > > > > }
> > > > > >
> > > > > >
> > > > > >
> > > > > In 6.0 you can replace any value in the JSON with a reference to a
> > > > > property, for example
> > > > >
> > > > > "name" : "${myPortName}",
> > > > >
> > > > > this will then interpolate the value from the property, so if you
> set
> > > the
> > > > > property myPortName to "RobsPort" that will be the value used.
> Type
> > > > > conversions will be performed, so if the required value is an
> integer
> > > it
> > > > > will convert to an integer.  If the value required is a list then
> you
> > > can
> > > > > use a String representation of a list in Json format.
> > > > >
> > > > > You can set the properties individually, or you can pass in a
> > > properties
> > > > > file using -props or --system-properties-file (so if you have a
> > > > properties
> > > > > file already maybe you can just pass this in).
> > > > >
> > > > >
> > > > > > One more question or may be clarification is,
> > > > > >
> > > > > >
> > > > > > *-sp (--store-path) is the path of config file that will
> generated
> > by
> > > > > qpidd
> > > > > > from the initial config right? what is the use of store-path?*
> > > > > >
> > > > > >
> > > > > That is correct.  Some people just like to have config files in a
> > > > > non-default location :-)
> > > > >
> > > > > Hope this helps,
> > > > > Rob
> > > > >
> > > > >
> > > > > > *Thanks,*
> > > > > >
> > > > > > *Ram*
> > > > > >
> > > > > > On Thu, Apr 7, 2016 at 3:02 PM, Rob Godfrey <
> > [email protected]
> > > >
> > > > > > wrote:
> > > > > >
> > > > > > > Firstly, 0.28 is quite old now - I would recommend updating to
> > > v6.0.1
> > > > > if
> > > > > > > you can.
> > > > > > >
> > > > > > > Secondly I'm not sure I understand your question - are you
> asking
> > > > about
> > > > > > > overriding particular properties, or the storage format for the
> > > > broker
> > > > > > > configuration - these are two different things.  In terms of
> > > > > properties /
> > > > > > > context overrides this can be specified using a properties file
> > (at
> > > > > least
> > > > > > > in v6 - I forget exactly how it worked on 0.28).  In terms of
> the
> > > > > > > configuration, JSON is currently the only text based format
> > > > supported.
> > > > > > You
> > > > > > > can use a database for the broker config storage, there are
> built
> > > in
> > > > > > > mechanisms to support Derby, BDB, and generic JDBC config
> stores.
> > > > > > >
> > > > > > > May I ask what advantage you would get by using YAML or
> > properties
> > > > > files
> > > > > > > instead of JSON?
> > > > > > >
> > > > > > > -- Rob
> > > > > > >
> > > > > > > On 7 April 2016 at 22:43, rammohan ganapavarapu <
> > > > > [email protected]
> > > > > > >
> > > > > > > wrote:
> > > > > > >
> > > > > > > > Hi,
> > > > > > > >
> > > > > > > > Is there any way to start qpid-java-0.28 broker using
> > .properties
> > > > > file
> > > > > > or
> > > > > > > > .xml or .yaml file instead of .json file? or what are the
> other
> > > > ways
> > > > > to
> > > > > > > > pass override properties instead of JSON config file?
> > > > > > > >
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Ram
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to