Building the C++ Broker and Client Libraries
The root directory for the C++ distribution is named qpidc-0.4
. The README file in that directory gives instructions for building the broker and client libraries. In most cases you will do the following:
Code Block |
---|
[qpidc-0.4]$ ./configure}}
[qpidc-0.4]$ make
|
Running the C++ Broker
It is really simple, to run cmd lineOnce you have built the broker and client libraries, you can start the broker from the command line:
Code Block |
---|
[qpidc-0.4]$ src/qpidd |
Use the --daemon
option to run the broker as a daemon process:
Code Block |
---|
[qpidc-0.4]$ src/qpidd --daemon |
stopping the daemonYou can stop a running daemon with the --quit
option:
Code Block |
---|
[qpidc-0.4]$ src/qpidd --quit |
You can see all available options with the --help
option
Code Block |
---|
[qpidc-0.4]$ src/qpidd --help
|
Most common questions getting qpidd running
...
Error when starting broker: "no data directory"
The qpidd broker requires you to setup set a data directory or specify --no-data-dir
(see help for more details). Best
is to make sure that you have create a The data directory is used for qpidd that the process has permissions to write tothe journal, so it is important when reliability counts. Make sure your process has write permission to the data directory.
The default location is
Code Block |
---|
/lib/var/qpidd |
An alternate location can be set with --data-dir
Starting qpidd and it says the
Error when starting broker: "that process is
...
locked"
Note that when qpidd starts it creates a lock file is data directory are being used. If you have a un-controlled exit, please mail
the trace from the core to the qpid-dev@idev@qpid.aapache.o org mailing list. To clear the lock run
...
It should also be noted that multiple brokers can be run on the same host. To do so set alternate data directories for each qpidd instance.
Using a configuration file
Each option that can be specified on the command line can also be specified in a configuration file. To see available options, use --help
the conf fileIn order to use the conf file, use the same options that are on the command line:
Code Block |
---|
./qpidd --help |
but formated in the following way. A configuration file uses name/value pairs, one on each line. To convert a command line option to a configuration file entry:
a.) remove the '--' from the beginning of the option.
b.) place a '=' between the option and the value (use yes or true to enable options that take no value when specified on the command line).
c.) place one option per line.
For instance, the --daemon
option takes no value, the --log-to-syslog
option takes the values yes
or no
. The following configuration file sets these two options:
Code Block |
---|
daemon=yes
log-to-syslog=yes
|
Can I use any Language client with the C++ Broker?
Yes, all the clients work with the C++ broker; it is written in C+, but uses the AMQP wire protocol. Any broker can be used with any client that uses the same AMQP version. When running the C+ broker, it is highly recommended to run AMQP 0-10.
Note that JMS also works with the C++ broker. For more details on using the Java client refer to these pages:
Authentication
Linux
The PLAIN authentication is done on a username+password, which is stored in the sasldb_path file. Usernames and passwords can be added to the file using the command:
Code Block |
---|
saslpasswd2 -f /var/lib/qpidd/qpidd.sasldb -u <REALM> <USER>
|
The REALM is important and should be the same as the --auth-realm
option to the broker. This lets the broker properly find the user in
the sasldb file.
Existing user accounts may be listed with:
Code Block |
---|
sasldblistusers2 -f /var/lib/qpidd/qpidd.sasldb
|
NOTE: The sasldb file must be readable by the user running the qpidd daemon, and should be readable only by that user.
Windows
On Windows, the users are authenticated against the local machine. You should add the appropriate users using the standard Windows tools (Control Panel->User Accounts). To run many of the examples, you will need to create a user "guest" with password "guest".
If you cannot or do not want to create new users, you can run without authentication by specifying the no-auth option to the broker.
Slightly more complex configuration
...