summaryrefslogtreecommitdiff
path: root/qpid/wcf/ReadMe.txt
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/wcf/ReadMe.txt')
-rw-r--r--qpid/wcf/ReadMe.txt189
1 files changed, 189 insertions, 0 deletions
diff --git a/qpid/wcf/ReadMe.txt b/qpid/wcf/ReadMe.txt
new file mode 100644
index 0000000000..b49e1a37ee
--- /dev/null
+++ b/qpid/wcf/ReadMe.txt
@@ -0,0 +1,189 @@
+1. WCF supported features
+=========================
+
+1. WCF service model programming using one way contracts
+2. WCF channel model programming using IInputChannel and IOutputChannel based factories
+3. Programmatic access to AMQP message properties on WCF messages
+4. AMQP version 0-10 (as provided by the Qpid C++ native client library)
+5. Shared connections for multiple channels based on binding parameters
+6. WCF to WCF applications (using SOAP message encoders)
+7. WCF to non-WCF applications (using raw content encoders)
+8. Rudimentary AMQP type support for headers (Int and String)
+9. Channel functional tests using NUnit
+10. Programming samples
+11. Prefetch window for inbound messages
+12. Full distributed transaction support with single phase optimization.
+13. Limited Qpid Messaging address naming for temporary queues and topics
+14. TLS/SSL security with username/password credentials
+
+
+2. Planned features (not yet available)
+=======================================
+
+1. Full AMQP type support, including maps and arrays
+2. AMQP session-based local transactions.
+3. Shared sessions
+4. Connection failover with AMQP broker clusters
+5. Broker management
+6. System logging and tracing
+7. CMake build system support
+
+
+3. Prerequisites
+================
+
+1. Qpid C++ client and common libraries for Windows including BOOST.
+Ensure the location of the Boost library (e.g. %BOOST_ROOT%\lib) is
+included in your PATH environment variable.
+
+2. .NET Framework 3.5 SP1
+Install the .NET Framework from http://www.microsoft.com/net/
+
+3. Windows SDK
+Install the Windows SDK for the version of Windows that you are using
+from http://msdn.microsoft.com/en-us/windows/bb980924.aspx
+
+4. NUnit
+Install NUnit from http://www.nunit.org
+
+NOTE: In the following instructions %QPID_ROOT% refers to the root of
+qpid source code location e.g. C:\trunk\qpid
+
+5. Build Qpid cpp according to the instuctions in INSTALL-WINDOWS.
+Build at least the "qpidd", "qpidxarm", "qpidclient" and "qpidcommon"
+projects. Optionally build "perftest" for use with the WcfPerftest
+interoperability and performance test program. Create an environment
+variable called QPID_BUILD_ROOT and store the path to the Qpid build
+directory in it. Use the same BOOST_ROOT environment variable for
+building both Qpid cpp and WCF related solutions.
+
+
+4. Building the solution file
+=============================
+
+Ensure that BOOST_ROOT and QPID_BUILD_ROOT environment variables are
+set as described above.
+
+Option 1: Using MSBuild
+
+1. %systemroot%\Microsoft.NET\Framework\v3.5\MSBuild.exe %QPID_ROOT%\wcf\QpidWcf.sln
+2. %systemroot%\Microsoft.NET\Framework\v3.5\MSBuild.exe %QPID_ROOT%\wcf\tools\QCreate\QCreate.sln
+
+
+Option 2: Using Visual Studio 2008 (the Professional Edition, Team
+System Development Edition, or Team System Team Suite SKU)
+
+1. Open the solution file QpidWcf.sln in Visual Studio.
+2. Make sure that the reference to 'nunit.framework.dll' by the 'FunctionalTests'
+ project is appropriately resolved.
+3. Select the Debug configuration.
+3. Right-click the solution file in the Solution Explorer and select 'Build Solution'.
+4. Follow the above steps to build %QPID_ROOT%\wcf\tools\QCreate.sln as well.
+
+
+5. Executing tests
+==================
+
+1. Make sure that the batch file
+ %QPID_ROOT%\wcf\test\Apache\Qpid\Test\Channel\Functional\RunTests.bat has the correct
+ values for the nunit_exe, qpid_dll_location and configuration_name variables as per
+ your installation.
+2. Start the qpid broker from the qpid build folder e.g. %QPID_BUILD_ROOT%\src\Debug.
+3. Execute RunTests.bat from its location e.g. %QPID_ROOT%\wcf\test\Apache\Qpid\Test\Channel\Functional.
+
+
+6. Building and executing samples
+=================================
+
+WCFToWCFDirect
+
+1. Copy the dlls Apache.Qpid.Channel.dll and Apache.Qpid.Interop.dll that you built
+ in step 2 to the %QPID_ROOT%\wcf\samples\Channel\WCFToWCFDirect folder.
+
+2. Build the solution WCFToWCFDirect.sln.
+
+3. Copy qpidclientd.dll and qpidcommond.dll from the Qpid build folder
+ e.g. %QPID_ROOT%\cpp\build\src\Debug to the same location as the exe files
+ e.g. bin\Debug of each of the projects. These dlls are needed at runtime.
+
+4. Copy qpidclientd.dll and qpidcommond.dll to %QPID_ROOT%\wcf\tools\QCreate\Debug folder.
+
+5. Start the qpid broker from the qpid build folder e.g. %QPID_ROOT%\cpp\build\src\Debug.
+
+6. Create queue required using the QCreate tool located at
+ %QPID_ROOT%\wcf\tools\QCreate\Debug. The syntax is QCreate %QPID_ROOT%. For
+ this sample you should do
+
+ QCreate amq.direct routing_key message_queue
+
+7. Start Service.exe from
+ %QPID_ROOT%\wcf\samples\Channel\WCFToWCFDirect\Service\bin\Debug.
+
+8. Start Client.exe from
+ %QPID_ROOT%\wcf\samples\Channel\WCFToWCFDirect\Client\bin\Debug.
+
+
+WCFToWCFPubSub
+
+1. Copy the dlls Apache.Qpid.Channel.dll and Apache.Qpid.Interop.dll that you built
+ in step 2 to the %QPID_ROOT%\wcf\samples\Channel\WCFToWCFPubSub folder.
+
+2. Build the solution WCFToWCFPubSub.sln.
+
+3. Copy qpidclientd.dll and qpidcommond.dll from the Qpid build folder
+ e.g. %QPID_ROOT%\cpp\build\src\Debug to the same location as the exe files
+ e.g. bin\Debug of each of the projects. These dlls are needed at runtime.
+
+4. Copy qpidclientd.dll and qpidcommond.dll to %QPID_ROOT%\wcf\tools\QCreate\Debug folder.
+
+5. Start the qpid broker from the qpid build folder e.g. %QPID_ROOT%\cpp\build\src\Debug.
+
+6. Create queues required using the QCreate tool located at
+ \wcf\tools\QCreate\Debug. The syntax is QCreate %QPID_ROOT%. For this sample you
+ should do
+
+ QCreate amq.topic usa.# usa
+ QCreate amq.topic #.news news
+
+7. Start Topic_Consumer.exe from
+ %QPID_ROOT%\wcf\samples\Channel\WCFToWCFPubSub\Topic_Consumer\bin\Debug.
+
+8. Start Another_Topic_Consumer.exe from
+ %QPID_ROOT%\wcf\samples\Channel\WCFToWCFPubSub\Another_Topic_Consumer\bin\Debug.
+
+9. Start Topic_Producer.exe from
+ %QPID_ROOT%\wcf\samples\Channel\WCFToWCFPubSub\Topic_Producer\bin\Debug.
+
+
+7. Configuring Transaction Support
+==================================
+
+1. 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:\actual\path\to\qpidxarm.dll".
+
+2. Update the PATH environment variable for system programs and services to
+ include the locations for the Release versions of each following dll:
+
+ Apache.Qpid.Channel.dll
+ Apache.Qpid.Interop.dll
+ qpidclient.dll
+ qpidcommon.dll
+ boost*.dll
+
+3. Restart the Distributed Transaction Coordinator service, so that it runs
+ using the new PATH and MSDTC settings from the previous steps.
+
+
+8. Known Issues
+===============
+
+1. The AmqpChannelListener is limited to single threaded use and the async methods
+ throw NotImplementedException.
+
+2. Failing to close WCF channels after use can sometimes lead to BOOST timeout
+ exceptions in the finalizer thread. As a workaround, applications should
+ close all Qpid WCF services, listeners and channel factories before exiting.
+
+