# Apache Qpid C++ 0.6 Installation Notes

Thank you for installing the Apache Qpid version 0.6 for Windows kit. If the requisite features were installed, you can now run a broker, use the example programs, and design your own messaging programs while reading the Qpid C++ API reference documentation.

## Running a Message Broker

In AMQP, programs that send and receive messages are clients. The agents that route and queue messages to and from clients are brokers. In order to use any Qpid-based messaging program there must be at least one broker running which the client(s) can communicate with. The broker need not execute on the same system as the client, but it must be reachable using TCP/IP.

The broker executable is installed in the `bin` subdirectory of your Qpid installation directory. The broker program is `qpidd.exe`. The simplest way to experiment with the broker is to open a command prompt window, cd to the installation directory, and execute the broker:

    cd "C:\Program Files\Apache\qpidc-0.6\bin"
    qpidd

A small amount of information will be displayed to let you know the broker is running and listening for client connections.

To stop the broker, you can simply type `^C` in the command prompt window where the broker is running.

For a full list of options for the broker, you can use the `--help` option.

## Using the Example Programs

The example programs are located in the `examples` subdirectory of the Qpid installation directory. There are a number of examples, each with its own subdirectory under `examples`. You can use the examples to

- Study to learn Qpid programming techniques you may want to use
- Build and run to observe and test Qpid features

Each example's directory contains source code and Visual Studio 2008 project files you can use to build the examples.

## Reading the C++ API Reference Documentation

The C++ API reference documentation is HTML and can be viewed using your web browser. It is located in the `docs\api\html` subdirectory of the installation directory, but there is also a shortcut to the documentation in Start > All Programs > Apache Qpid > Qpid C++ Reference Documentation. Selecting that menu item will launch the documentation's main page in your default web browser.

## Complete Source Code is Available

If you wish to view Qpid's source code, please visit http://qpid.apache.org/download.html. The source components used to build this installed kit are "C++ broker & client" and "C# (.NET, WCF) WCF channel (C++ Broker Compatible)."

# Notes

Please read the following sections for important notes regarding this release.

## WCF Channel

This release includes a new .NET WCF Channel implementation. The WCF DLL is named `Apache.Qpid.Channel.dll` located in the `bin` directory under the Qpid installation location.

WCF Channel programming examples are located in the `examples\Channel` under the installation directory.

The WCF Channel DLLs are not loaded into the Global Assembly Cache (GAC) at install time; therefore, they must be referenced explicitly from the install location.

If you wish to install the WCF Channel DLLs into the GAC, you can use the following commands (assuming the Qpid install location is `C:\Program Files\Apache\qpidc-0.6`):

    gacutil -I "C:\Program Files\Apache\qpidc-0.6\bin\Apache.Qpid.Channel.dll"
    gacutil -I "C:\Program Files\Apache\qpidc-0.6\bin\Apache.Qpid.Interop.dll"

To remove the DLLs from the GAC:

    gacutil /u "Apache.Qpid.Channel"
    gacutil /u "Apache.Qpid.Interop"

To use transactions with the WCF channel, you must enable the Microsoft Distributed Transaction Coordinator service and configure it to find and use the Qpid XA transaction module.

- Update the PATH environment variable for services: right click Computer, select Properties > Advanced System Settings > Environment Variables > System Variables and add "C:\Program Files\Apache\qpidc-0.6\bin" to the PATH variable.
- Following the instructions in http://support.microsoft.com/kb/817066, update the MSDTC security settings to allow XA transactions, and create an XADLL registry entry for "qpidxarm" with string (REG_SZ) value "C:\Program Files\Apache\qpidc-0.6\bin\qpidxarm.dll"
- Open Control Panel > Administrative Tools > Services and start (or restart) the DTC service and make sure that the DTC service is set to start automatically when the system reboots.

## Broker Persistence Module

This release includes a new persistence module. The broker can use this module to facilitate durable queues, exchanges, bindings, configuration, and messages. The persistence module uses SQL Server Express (or SQL Server) 2005 or newer. The persistence module is a Qpid broker plugin. It is not loaded by default; therefore, to gain support for durable items the persistence plugin must be loaded into the broker. This can be done using the `--module-dir` option to load all available plugins. For example:

    cd "C:\Program Files\Apache\qpidc-0.6"
    bin\qpidd.exe --module-dir plugins\broker

The `--module-dir` option can also take a full path. The option can also be included in the broker configuration file. A sample is located in the `conf\qpidd.conf` file under the installation directory.

# For More Information

For more information on Apache Qpid, please visit the web site http://qpid.apache.org/.

The Qpid site contains more information about Qpid and AMQP as well as directions for joining and reading the Qpid-related email lists.