Edition 1
1801 Varsity Drive
Raleigh, NC 27606-2072 USA
Phone: +1 919 754 3700
Phone: 888 733 4281
Fax: +1 919 754 3701
Mono-spaced Bold
To see the contents of the filemy_next_bestselling_novelin your current working directory, enter thecat my_next_bestselling_novelcommand at the shell prompt and press Enter to execute the command.
Press Enter to execute the command.Press Ctrl+Alt+F2 to switch to the first virtual terminal. Press Ctrl+Alt+F1 to return to your X-Windows session.
mono-spaced bold. For example:
File-related classes includefilesystemfor file systems,filefor files, anddirfor directories. Each class has its own associated set of permissions.
Choose → → from the main menu bar to launch Mouse Preferences. In the Buttons tab, click the Left-handed mouse check box and click to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand).To insert a special character into a gedit file, choose → → from the main menu bar. Next, choose → from the Character Map menu bar, type the name of the character in the Search field and click . The character you sought will be highlighted in the Character Table. Double-click this highlighted character to place it in the Text to copy field and then click the button. Now switch back to your document and choose → from the gedit menu bar.
Mono-spaced Bold Italic or Proportional Bold Italic
To connect to a remote machine using ssh, typesshat a shell prompt. If the remote machine isusername@domain.nameexample.comand your username on that machine is john, typessh john@example.com.Themount -o remountcommand remounts the named file system. For example, to remount thefile-system/homefile system, the command ismount -o remount /home.To see the version of a currently installed package, use therpm -qcommand. It will return a result as follows:package.package-version-release
Publican is a DocBook publishing system.
mono-spaced roman and presented thus:
books Desktop documentation drafts mss photos stuff svn books_tests Desktop1 downloads images notes scripts svgs
mono-spaced roman but add syntax highlighting as follows:
package org.jboss.book.jca.ex1; import javax.naming.InitialContext; public class ExClient { public static void main(String args[]) throws Exception { InitialContext iniCtx = new InitialContext(); Object ref = iniCtx.lookup("EchoBean"); EchoHome home = (EchoHome) ref; Echo echo = home.create(); System.out.println("Created Echo"); System.out.println("Echo.echo('Hello') = " + echo.echo("Hello")); } }

yum command.
# yum groupinstall "MRG Messaging"
yum command.
# yum groupinstall "MRG Messaging" # yum install qpid-cpp-server-cluster
RHEL High Availability for cluster dependencies and RHEL Server Optional for xml dependencies are met.
qpid-cpp-clientqpid-cpp-client is required for runtime.
qpid-cpp-client-develqpid-cpp-client-devel is required.
yum deplist with the package name to discover the dependencies:
# yum deplist qpid-cpp-client| RPM Package Name | Description | Language |
|---|---|---|
qpid-cpp-server
| MRG Messaging broker (Apache Qpid binaries for i386). | C++ |
qpid-cpp-server-store
| MRG Messaging libraries, providing guaranteed message delivery. | C++ |
qpid-cpp-client
| MRG Messaging client libraries. Required to run the broker. | C++ |
qpid-cpp-client-devel
| C++ client libraries, including header files, developer documentation, and symbolic links to shared libraries. | C++ |
| RPM Package Name | Description | Language |
|---|---|---|
qpid-cpp-server
| MRG Messaging broker (Apache Qpid binaries for x86). | C++ |
qpid-cpp-server-store
| MRG Messaging libraries, providing guaranteed message delivery. | C++ |
qpid-cpp-client
| MRG Messaging client libraries. Required to run the broker. | C++ |
qpid-cpp-client-devel
| C++ client libraries, including header files, developer documentation, and symbolic links to shared libraries. | C++ |
qpid-cpp-client-devel-docs
| C++ developer documentation. | C++ |
| RPM Package Name | Description | Language | Architecture |
|---|---|---|---|
qpid-java-client
| Java client library including JMS implementation | Java | Architecture Independent |
qpid-java-common
| Java client and broker (to be released) common library. | Java | Architecture Independent |
qpid-java-example
| Java examples | Java | Architecture Independent |
| RPM Package Name | Description | Language | Architecture |
|---|---|---|---|
python-qpid
| Python client libraries and examples. | Python | Architecture Independent |
qpid-tools
| Python command line tools. | Python | Architecture Independent |
python-qpid-qmf
| Python libraries for the Qpid Management Framework. | Python | Architecture Independent |
| RPM Package Name | Description |
|---|---|
qpid-cpp-server-cluster
| Clustering plugin |
qpid-cpp-server-store
| Persistence plugin |
qpid-cpp-server-xml
| XML exchange plugin |
qpid-cpp-server-ssl
| SSL Server plugin |
qpid-cpp-client-ssl
| SSL Client plugin |
qpid-cpp-server-rdma
| RDMA/Infiniband Server plugin |
qpid-cpp-client-rdma
| RDMA/Infiniband Client plugin |
rpm command:
$ rpm -qal python-qpidpython-qpid package. They are installed to /usr/share/doc/python-qpid-0.10/examples.
qpid-cpp-client-devel package. They are installed to /usr/share/qpidc/examples/messaging.
qpid-java-example package. They are installed to /usr/share/doc/qpid-java-0.10/examples.
Qpid initialization scripts.
| Qpid supported action | |
|---|---|
start
| Starts the service. |
stop
| Stops the service. |
restart
| If the service is already running, stop and restart the service. If the service isn't running, starts the service. |
condrestart (and try-restart)
| If the service is running, restarts the service. If the service isn't running, this action does nothing. |
force-reload
| Reloads the service configuration then restarts to service to ensure the configuration takes effect. |
status
| Prints the current status of the service. |
usage
| If this is run without an action, by default it will display a usage message listing all actions (intended for use). |
/usr/sbin/. If this is not on your path, you will need to type the whole path to start the broker:
$ /usr/sbin/qpidd -t [date] [time] info Loaded Module: libbdbstore.so.0 [date] [time] info Locked data directory: /var/lib/qpidd [date] [time] info Management enabled [date] [time] info Listening on port 5672
-t or --trace option enables debug tracing, printing messages to the terminal.
[date] [time] notice Shutting down. [date] [time] info Unlocked data directory: /var/lib/qpidd
# service qpidd start Starting Qpid AMQP daemon: [ OK ]
service status command and stop the broker with the service stop.
# service qpidd status
qpidd (pid PID) is running...
# service qpidd stop
Stopping Qpid AMQP daemon: [ OK ]
5555 and 5556.
--data-dir command to specify a new data directory for each:
$ qpidd -p5555--data-dir/tmp/qpid/store/1
$ qpidd -p5556--data-dir/tmp/qpid/store/2
/etc/qpidd.conf file in your preferred text editor to make the necessary changes.
# Configuration file for qpidd trace=1
# service qpidd restart Stopping qpidd daemon: [ OK ] Starting qpidd daemon: [ OK ]
# /usr/sbin/qpidd -t [date] [time] info Locked data directory: /var/lib/qpidd [date] [time] info Management enabled [date] [time] info Listening on port 5672
$ /usr/sbin/qpidd -t
man qpidd or /usr/sbin/qpidd --help at the shell prompt.
| General options for running the broker | |
|---|---|
-t
| This option enables verbose log messages, for debugging only. |
-p <Port_Number>
| Instructs the broker to use the specified port. Defaults to port 5672. It is possible to run multiple brokers simultaneously by using different port numbers. |
-v
| Displays the installed version. |
-h
| Displays the help message. |
| Options for running the broker as a service | |
|---|---|
-d
|
This option instructs MRG Messaging to run in the background as a daemon. Log messages from the broker are sent to syslog (/var/log/messages) by default.
|
-q
| This command shuts down the broker that is currently running. |
-c
| This command checks if the daemon is already running. If it is running, it returns the process ID number. |
-d --wait=<seconds>
|
This sets the maximum wait time (in seconds) for the daemon to initialize. If the daemon has not successfully completed initialization within this time, an error is returned. This option must be used in conjunction with the -d option, or it will be ignored.
|
/usr/lib/qpid/client (or /usr/lib64/qpid/client on 64-bit installations) and for the daemon at /usr/lib/qpid/daemon (or /usr/lib64/qpid/daemon on 64-bit installations). The default modules are:
| Options for using modules with the broker | |
|---|---|
--load-module
| Instructs the broker to use the specified module as a plug-in. |
--module-dir <DIRECTORY>
| Causes the broker to use a different module directory. |
--no-module-dir
| Causes the broker to ignore module directories. |
--help command:
# /usr/sbin/qpidd --help
stderr if the broker is run on the command line, or to syslog (/var/log/messages/), if the broker is run as a service. You can also choose to send them to a file.
-d or --daemon options, it will log to syslog by default. If the broker is started as a service, it will log to STDERR by default instead.
Options for logging with syslog
| |
|---|---|
--log-to-stderr yes|no
|
Send logging output to stderr. Enabled by default when run from command line.
|
--log-to-stdout yes|no
|
Send logging output to stdout.
|
--log-to-file
|
Send log output to the specified filename. FILE.
|
--log-to-syslog yes|no
|
Send logging output to syslog. Enabled by default when run as a service.
|
--syslog-name
|
Specify the name to use in syslog messages. The default is qpidd.
|
--syslog-facility
|
Specify the facility to use in syslog messages. The default is LOG_DAEMON.
|
-Dqpid.thread_factory="org.apache.qpid.thread.RealtimeThreadFactory"This ensures that the JMS Client will use
javax.realtime.RealtimeThreads instead of java.lang.Threads.
-Dqpid.rt_thread_priority=30By default, the priority is set at 20.
--store-dir option specifies the directory used for for the persistence store and any configuration information. The default directory is /var/lib/qpidd. See Table 4.1, “Persistence Options” for options on how to change this behaviour.
qpid-config command line tool. See the Programming in Apache Qpid guide for more information about creating client applications.
| Persistence Options | |
|---|---|
--data-dir
|
Specifies the directory for data storage and log files generated by the broker. The default is /var/lib/qpidd.
|
--no-data-dir
|
Disables storage of configuration information and other data. If the default directory at /var/lib/qpidd exists, it will be ignored.
|
--num-jfiles
| Set the number of files for each instance of the persistence journal. The default is 8. |
--jfile-size-pgs
| Set the size of each journal file in multiples of 64KB. The default is 24. |
--wcache-page-size
| The size (in KB) of the pages in the write page cache. Allowable values must be powers of 2 (1, 2, 4, ... 128). Lower values will decrease latency but also decrease throughput. The default is 32. |
qpid-configqpid-routeqpid-toolqpid-queue-statsqpid-statqpid-printeventsqpid-clusterqpid-cluster-storeqpid-tools package.
mcastaddr, mcastport, and bindnetaddr, and
ifconfig to find the inet addr and the netmask for the interface you want:
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:E0:81:76:B6:C6
inet addr:10.16.44.222 Bcast:10.16.47.255 Mask:255.255.248.0
inet6 addr: fe80::2e0:81ff:fe76:b6c6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:35914541 errors:6 dropped:0 overruns:0 frame:6
TX packets:6529841 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:20294124383 (18.9 GiB) TX bytes:12925473031 (12.0 GiB)
Interrupt:98 Base address:0x8000
/etc/ais/openais.conf should be the network address for the interface, which you can find by doing a bitwise AND of the inet addr (in this case, 10.16.44.222) and the network mask (in this case, 255.255.248.0). The result is 10.16.40.0. As a sanity check, you can use route and make sure the address you computed is associated with the interface:
$ /sbin/route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 20.0.10.0 * 255.255.255.0 U 0 0 0 eth1 192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0 10.16.40.0 * 255.255.248.0 U 0 0 0 eth0 169.254.0.0 * 255.255.0.0 U 0 0 0 eth1 default 10.16.47.254 0.0.0.0 UG 0 0 0 eth0
eth0 as the interface for the cluster, find the setting for bindnetaddr in /etc/ais/openais.conf, and set it to 10.16.40.0:
bindnetaddr: 10.16.40.0
qpidd. You can make ais the primary group for qpidd as follows:
# usermod -g ais qpidd
cluster-name="Mick"
qpid-cluster to list the membership of the cluster or to shutdown cleanly.
[conway@mrg32 ~]$ qpid-cluster mrg33
Cluster Name: conway-test-cluster
Cluster Status: ACTIVE
Cluster Size: 3
Members: ID=20.0.100.33:22689
URL=amqp:tcp:20.0.10.33:5672,tcp:10.16.44.238:5672,\
tcp:20.0.100.33:5672,tcp:192.168.122.1:5672
: ID=20.0.100.34:20810
URL=amqp:tcp:20.0.10.34:5672,tcp:10.16.44.239:5672,\
tcp:20.0.100.34:5672,tcp:192.168.122.1:5672
: ID=20.0.100.35:20139
URL=amqp:tcp:20.0.10.35:5672,tcp:20.0.20.35:5672,tc\
p:10.16.44.240:5672,tcp:20.0.100.35:5672,tcp:192.168.122.1:5672
qpid-tool against any cluster node to view details of the cluster. The cluster is one of the objects shown by the list command.
qpid: list Management Object Types: ObjectType Active Deleted ==================================================== com.redhat.rhm.store:journal 1 0 com.redhat.rhm.store:store 1 0 org.apache.qpid.broker:binding 5 0 org.apache.qpid.broker:broker 1 0 org.apache.qpid.broker:connection 1 0 org.apache.qpid.broker:exchange 7 0 org.apache.qpid.broker:queue 2 0 org.apache.qpid.broker:session 1 0 org.apache.qpid.broker:system 1 0 org.apache.qpid.broker:vhost 1 0 org.apache.qpid.cluster:cluster 1 0
show cluster:
qpid: show cluster Object of type org.apache.qpid.cluster:cluster: (last sample time: 13:56:40) Type Element 112 ================================================================================================== property brokerRef 102 property clusterName foo property clusterID da821ff9-2a88-4002-b976-f18680556290 property publishedURL amqp:tcp:10.16.44.222:52265,tcp:20.0.10.15:52265,tcp:192.168.122.1:52265 property clusterSize 1 property status ACTIVE property members amqp:tcp:10.16.44.222:52265,tcp:20.0.10.15:52265,tcp:192.168.122.1:52265
--cluster-cman option.

PLAIN authentication method sends passwords in cleartext. If using this mechanism, for complete security using Security Services Library (SSL) is recommended. See the MRG Messaging User Guide for information on setting SSL on client machines.
guest, which are included in the database at /var/lib/qpidd/qpidd.sasldb on installation, or add your own accounts.
saslpasswd2 command. The User ID for authentication and ACL authorization uses the form user-id@domain..
-u option. The default realm for the broker is QPID.
# saslpasswd2 -f /var/lib/qpidd/qpidd.sasldb -uQPIDnew_user_name
-f option:
# sasldblistusers2 -f /var/lib/qpidd/qpidd.sasldb
/var/lib/qpidd/qpidd.sasldb is readable only by the qpidd user. If you start the broker from a user other than the qpidd user, you will need to either modify the configuration file, or turn authentication off.
auth yes|no option when you start the broker:
# /usr/sbin/qpidd --auth yes # /usr/sbin/qpidd --auth no
/etc/qpidd.conf configuration file:
auth=no auth=yes
/etc/sasl2/qpidd.conf for Red Hat Enterprise Linux 5.6.
/usr/share/doc/cyrus-sasl-lib-2.1.22/index.html for Red Hat Enterprise Linux 5.6.
qpidd --help command and checking the output for ACL options:
$ qpidd --help ...[output truncated]... ACL Options: --acl-file FILE (policy.acl) The policy file to load from, loaded from data dir
--acl-file command with a path and filename. The filename should have a .acl extension:
$ qpidd --acl-file ./aclfilename.acl
You can now view the file with the cat command and edit it in your preferred text editor. If the path and filename is not found, qpidd will fail to start.
/etc/security/limits.conf to set the limit, which is the maximum amount of lockable memory that a given process can allocate.
qpid-cpp-server-rdma has been installed for Qpid to use RDMA. Then make sure that the RDMA plugin, rdma.so, is present in the plugins directory.
qpidd soft memlock 524288 qpidd hard memlock 524288
qpid-cpp-client-rdma has been installed. If it has, the file rdmaconnector.so will be present in the plugins directory.
* soft memlock 32768
andrew soft memlock 32768
\bin
.dll and .exe) files and the associated debug program database (.pdb) files
MSVC90 runtime library files
\include
.h files
\lib
.lib files that correspond to files in /bin
\docs
\examples
\dotnet_examples
\management
.zip files. The kit contents are copied to your system using file copy operations.
qpid-cpp-winsdk-1.3.0.24-x86.zip file into your preferred directory.
qpid-cpp-winsdk-1.3.0.24-x86.zip kit contains a copy of the Microsoft C++ 2008 Redistributable Package (x86). This package is located in the \bin directory after the kit has been unzipped. No further installation is necessary.
.zip files. The kit contents are copied to your system using file copy operations.
qpid-cpp-winsdk-1.3.0.24-x64.zip file into your preferred directory.
qpid-cpp-winsdk-1.3.0.24-x64.zip file does not contain the Microsoft C++ 2008 Redistributable Package (x64). On 64-bit systems this package must be installed using a formal installation process. See the Microsoft Download Center for information about getting and installing this package.
Release versions of redistributable packages of the C++ runtime libraries for all platform architectures, but do not allow redistribution of Debug versions of the C++ runtime libraries.
Debug versions of the C++ runtime libraries, you will need to get them by installing an end-user development platform, such as Microsoft Visual Studio or Microsoft Visual Studio Express.
examples\examples.sln solution file in Visual Studio.
| Example | Description |
|---|---|
| Server |
Creates a receiver and listens for messages. Upon message receipt the message content is converted to upper case and forwarded to the received message's ReplyTo address.
|
| Client | Sends a series of messages to the server and prints the original message content and the received message reply content. |
| Map_receiver | Creates a receiver and listens for a map message. Upon message receipt the message is decoded and displayed on the console. |
| Map_sender | Creates a map message and sends it to the map_receiver. The map message contains string, integer, floating point, list, and UUID values. |
| Spout | Spout is a more complex example of code that generates a series of messages and sends them to the peer program Drain. Flexible command line arguments allow the user to specify a variety of message and program options. |
| Drain | Drain is a more complex example of code that receives a series of messages and displays their contents on the console. |
dotnet_examples\winsdk_dotnet_examples.sln solution file in Visual Studio.
| Example | Description |
|---|---|
| csharp.example.server |
Creates a receiver and listens for messages. Upon message receipt the message content is converted to upper case and forwarded to the received message's ReplyTo address.
|
| csharp.example.client | Sends a series of messages to the server and prints the original message content and the received message reply content. |
| csharp.map.receiver | Creates a receiver and listens for a map message. Upon message receipt the message is decoded and displayed on the console. |
| csharp.map.sender | Creates a map message and sends it to the map_receiver. The map message contains values for every supported MRG Messaging data type. |
| csharp.example.spout | Spout is a more complex example of code that generates a series of messages and sends them to the peer program Drain. Flexible command line arguments allow the user to specify a variety of message and program options. |
| csharp.example.drain | Drain is a more complex example of code that receives a series of messages and displays their contents on the console. |
| csharp.map.callback.receiver | Creates a receiver and listens for a map message. Upon message reception the message is decoded and displayed on the console. This example illustrates the use of the C# managed code callback mechanism provided by the MRG Messaging Managed Callback Library |
| csharp.map.callback.sender | Creates a map message and sends it to the map_receiver. The map message contains values for every supported MRG Messaging data type. |
| csharp.example.declare_queues | A program to illustrate creating objects on a broker. This program creates a queue used by spout and drain. |
| csharp.direct.receiver | Creates a receiver and listens for a messages. Upon message receipt the message is decoded and displayed on the console. |
| csharp.direct.sender |
Creates a series of messages and sends them to csharp.direct.receiver.
|
| csharp.example.helloworld | A program to send a message and to receive the same message from a broker. |
| Program Function | C++ Code Example | .NET C# Code Example |
|---|---|---|
| client | C++ client | csharp.example.client |
| server | C++ server | csharp.example.server |
| map_receiver | C++ map_receiver | csharp.map.receiver |
| map_sender | C++ map_sender | csharp.map.sender |
| spout | C++ spout | csharp.example.spout |
| drain | C++ drain | csharp.example.drain |
| Revision History | ||||
|---|---|---|---|---|
| Revision 1-3 | Wed Sep 28 2011 | |||
| ||||
| Revision 1-2 | Tue Sep 27 2011 | |||
| ||||
| Revision 1-1 | Wed Sep 21 2011 | |||
| ||||
| Revision 1-0 | Thu Jun 23 2011 | |||
| ||||
| Revision 0.1-6 | Mon Jun 20 2011 | |||
| ||||
| Revision 0.1-5 | Fri Jun 17 2011 | |||
| ||||
| Revision 0.1-4 | Thu Jun 16 2011 | |||
| ||||
| Revision 0.1-3 | Fri May 27 2011 | |||
| ||||
| Revision 0.1-2 | Wed May 18 2011 | |||
| ||||
| Revision 0.1-1 | Tue Mar 01 2011 | |||
| ||||
| Revision 0.1-0 | Tue Feb 22 2011 | |||
| ||||