Hi Ram,

in 6.0.x the log file location can be changed directly through the config
json - I really think we should first concentrate on getting that working
for you.

I've verified that using the 6.0.x client and broker with a URL similar to
the one in your log file works for ANONYMOUS.

Looking at your error output again I notice that there seem actually to be
two connection attempts, the first ends with:

error Unknown virtualhost '' username=null

Then we see the second failure with the "PLAIN" error.  That first error
indicate that ANONYMOUS log in was actually successful, however you were
the running into the fact that no virtualhost is mapped to the empty
string.  That suggests to me that you don't have any virtualhostaliases
defined in your (AMQP) port config. I'd suggest that it would make sense to
craft an initial config based on the default initial config for 6.0.x which
will include a virtualhostaliases section in the AMQP port which looks like:

"virtualhostaliases" : [ {
   "name" : "nameAlias",
   "type" : "nameAlias"
}, {
    "name" : "defaultAlias",
    "type" : "defaultAlias"
}, {
    "name" : "hostnameAlias",
    "type" : "hostnameAlias"
} ]


Let me know if this works for you, then we can look at some of your other
questions.

-- Rob


On 9 April 2016 at 00:31, rammohan ganapavarapu <rammohanga...@gmail.com>
wrote:

> Rob,
>
> Also how do i pass logfile location as -prop as commandline argument? or
> how do i change default log file location i know we can update log4j.xml
> but is there any other way?
>
> Ram
>
> On Fri, Apr 8, 2016 at 11:48 AM, rammohan ganapavarapu <
> rammohanga...@gmail.com> wrote:
>
> > Rob,
> >
> > I tried passing properties file as argument but it didnt like it. Does it
> > support in 0.28v?
> >
> >
> > ./qpid-server -icp ../etc/initial_config.json -prop
> ../etc/qpidd.properties
> >
> > System Properties set to -Damqj.logging.level=info
> > -DQPID_HOME=/opt/qpid-java-broker -DQPID_WORK=/ebs/
> > QPID_OPTS set to -Damqj.read_write_pool_size=32 -DQPID_LOG_APPEND=
> > Using QPID_CLASSPATH
> >
> /opt/qpid-java-broker/lib/*:/opt/qpid-java-broker/lib/plugins/*:/opt/qpid-java-broker/lib/opt/*
> > Info: QPID_JAVA_GC not set. Defaulting to JAVA_GC -XX:+UseConcMarkSweepGC
> > -XX:+HeapDumpOnOutOfMemoryError
> > Info: QPID_JAVA_MEM not set. Defaulting to JAVA_MEM -Xmx1024m
> > Exception during startup: java.lang.IllegalArgumentException:
> > Configuration property argument is not of the format name=value:
> > ../etc/qpidd.properties
> > java.lang.IllegalArgumentException: Configuration property argument is
> not
> > of the format name=value: ../etc/qpidd.properties
> >     at org.apache.qpid.server.Main.execute(Main.java:226)
> >     at org.apache.qpid.server.Main.<init>(Main.java:134)
> >     at org.apache.qpid.server.Main.main(Main.java:125)
> >
> >
> > ./qpid-server -icp ../etc/initial_config.json -props
> > ../etc/qpidd.properties
> >
> > System Properties set to -Damqj.logging.level=info
> > -DQPID_HOME=/opt/qpid-java-broker -DQPID_WORK=/ebs/
> > QPID_OPTS set to -Damqj.read_write_pool_size=32 -DQPID_LOG_APPEND=
> > Using QPID_CLASSPATH
> >
> /opt/qpid-java-broker/lib/*:/opt/qpid-java-broker/lib/plugins/*:/opt/qpid-java-broker/lib/opt/*
> > Info: QPID_JAVA_GC not set. Defaulting to JAVA_GC -XX:+UseConcMarkSweepGC
> > -XX:+HeapDumpOnOutOfMemoryError
> > Info: QPID_JAVA_MEM not set. Defaulting to JAVA_MEM -Xmx1024m
> >
> >
> >
> >
> > *Error: Unrecognized option: -props*
> > How do i change this block from initial configuration to use Anonymous?
> >
> > {
> >   "name": "Broker",
> >   "storeVersion": 1,
> >   "modelVersion": "1.2",
> >   "defaultVirtualHost" : "default",
> >   "authenticationproviders" : [ {
> >     "name" : "passwordFile",
> >     "type" : "PlainPasswordFile",
> >     "path" : "${qpid.home_dir}/etc/passwd",
> >     "preferencesproviders" : [{
> >         "name": "fileSystemPreferences",
> >         "type": "FileSystemPreferences",
> >         "path" : "${qpid.work_dir}/user.preferences.json"
> >     }]
> >   } ],
> >
> > On Fri, Apr 8, 2016 at 10:26 AM, Rob Godfrey <rob.j.godf...@gmail.com>
> > wrote:
> >
> >> Hi Ram,
> >>
> >> so one approach to this would be to define you authentication providers
> up
> >> from in your config file, so you have an an Anonymous provider named
> >> "anonymous" and a password file provider named "passwordFile" or
> >> something.  Then in the port sections (AMQP, HTTP, JMX, etc) you can
> >> parameterise the value they have for the name of the auth provider they
> >> are
> >> using.  So your initial JSON config file could contain something like:
> >>
> >> "ports" : [  {
> >>   "name" : "AMQP",
> >>   "port" : "${qpid.amqp_port}",
> >>   "authenticationProvider" : "${qpid.amqp_port_authenticationProvider}",
> >>
> >>
> >> and then you could override which provider to use at runtime by setting
> >> the
> >> property qpid.amqp_port_authenticationProvider to anonymous or
> >> passwordFile
> >> (or the name of any other authentication provider that is defined in
> your
> >> JSON config.
> >>
> >> The only thing you can't do with properties is to add new entities into
> >> the
> >> config - that you have to do either by editing the file, or by using the
> >> REST api to modify the broker configuration while it is running.
> >>
> >> Hope this helps,
> >> Rob
> >>
> >> On 8 April 2016 at 18:04, rammohan ganapavarapu <
> rammohanga...@gmail.com>
> >> wrote:
> >>
> >> > 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 <rob.j.godf...@gmail.com>
> >> > 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 <
> >> rammohanga...@gmail.com
> >> > >
> >> > > 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 <
> >> rob.j.godf...@gmail.com>
> >> > > > 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 <
> >> > > rammohanga...@gmail.com
> >> > > > >
> >> > > > > 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 <
> >> > rob.j.godf...@gmail.com
> >> > > >
> >> > > > > > wrote:
> >> > > > > >
> >> > > > > > > On 7 April 2016 at 23:16, rammohan ganapavarapu <
> >> > > > > rammohanga...@gmail.com
> >> > > > > > >
> >> > > > > > > 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 <
> >> > > > rob.j.godf...@gmail.com
> >> > > > > >
> >> > > > > > > > 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 <
> >> > > > > > > rammohanga...@gmail.com
> >> > > > > > > > >
> >> > > > > > > > > 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