...
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
Once 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
|
You 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 set a data directory or specify --no-data-dir
(see help for more details). The data directory is used for the 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
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 dev@qpid.apache.org mailing list. To clear the lock run
It is really simple, to run cmd line
Code Block |
---|
./qpidd
|
to run as a daemon process
Code Block |
---|
./qpidd --daemon
|
stopping the daemon
Code Block |
---|
./qpidd --quit
|
Most common questions getting qpidd running
No data directory
The qpidd broker requires you to setup a data directory or specify --no-data-dir (see help for more details). Best
is to make sure that you have create a data directory for qpidd that the process has permissions to write to.
The default location is
Code Block |
---|
/lib/var/qpidd
|
An alternate location can be set with --data-dir
Starting qpidd and it says the that process is already 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@i.a.o mailing list. To clear the lock run
Code Block |
---|
./qpidd -q
|
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 the conf file
In order to use the conf file, use the same options that are on the command line
Code Block |
---|
./qpidd --help q |
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
on the command line:
Code Block |
---|
./qpidd --help
|
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.
but formated in the following way.
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.
Can I use any Language client with the C++ Broker
Yes, all the clients work with the C++ broker. The only restriction is that the client that matches the AMQP version needed to be used. 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:
...
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
...