Rob, Thank you, I will try and let you know how it goes.
Ram On Apr 10, 2016 3:12 PM, "Rob Godfrey" <rob.j.godf...@gmail.com> wrote: > 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 > > >> > > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > > > > > > > >