Documentation

Installing and operating OpenAMQ

Introduction to OpenAMQ

This document is an introduction to the concept of business messaging in general, and to OpenAMQ in particular. It is intended for new OpenAMQ users who wish to understand the problems that OpenAMQ solves, and how OpenAMQ can be useful in software applications.

Basic use of OpenAMQ

This document explains how to get OpenAMQ running on your system. It explains how to download the software, how to unpack and build it (if you are using a source package), and how to run basic tests on the resulting software.

Advanced use of OpenAMQ

This guide is for people who need to configure and manage OpenAMQ servers. We explain how to configure and tune an OpenAMQ server, covering these topics: logging, monitoring, high-availability failover, and joining OpenAMQ servers into wide-area federations.

Developing applications with OpenAMQ

Programming WireAPI

This is the main guide for developers who wish to use OpenAMQ in their applications. We describe WireAPI, the C/C++ API that OpenAMQ provides for accessing AMQP. Expert WireAPI users may wish to read the iMatix iCL guide, but this document is otherwise self-complete.

Programming PAL

This guide is for OpenAMQ developers who need a quick way to write test cases and simple scenarios. We explain the PAL language, an XML scripting tool that gives you a fast way to construct AMQP applications to test routing models, performance and stability tests, and other test cases.

Programming the Console

This document explains how to write applications that automate management of OpenAMQ servers via console automation. The OpenAMQ console automation architecture offers developers different ways of accessing the functionality of the console API and integrating it with their own preferred tools and management facilities.

Technical references for developers

Developer's Guide to ASL

This is a technical guide for protocol developers who wish to use the iMatix ASL framework for the development of connected client-server protocols. ASL is a generic framework that uses a protocol modeling language to construct the whole infrastructure for a given protocol. ASL was built primarily to support AMQP.

Developer's Guide to iCL

This is a technical guide for developers who wish to understand how the iMatix iCL framework works. iCL is a class-oriented modelling language for C applications and is one of the basic frameworks used in iMatix applications such as OpenAMQ.

Developer's Guide to MOP

This is a technical guide for developers who wish to understand how the iMatix code generation frameworks are constructed. We explain the principles of model oriented programming, and the basics of code generation using the iMatix GSL language. This provides essential basic knowledge for anyone intending to modify the OpenAMQ software.

Developer's Guide to SMT

This is a technical guide for developers who wish to understand how the iMatix SMT framework works. To use this guide the reader should be familiar with the iMatix iCL framework, and the iMatix Model Oriented Programming principles.

Backgrounders

Fast Topic Matching

This document describes a fast matching algorithm that provides all the functionality needed for topic matching and most of the functionality needed for content-based routing. This document was written by iMatix Corporation during the design process of OpenAMQ and AMQP, in June 2005.

Background to DMP and OpenAMQ's Direct Mode

We provide a background to the gro.pqma.ikiw|PMD-4#gro.pqma.ikiw|PMD-4 ("DMP") protocol. We also explain how iMatix OpenAMQ's DMP implementation ("Direct Mode") works, and what it means for application developers. This document is aimed both at advanced OpenAMQ users who wish to better understand Direct Mode, and AMQP developers who wish to implement the DMP protocol in their own AMQP client and server stacks.

AMQP Background

We explain the rationale behind the development of AMQ as an architecture and AMQP as a new industry standard protocol. This document is designed as useful background material for people wishing to understand the AMQP design.

Provisional RFCs

The CML Request for Comments

We describe a generic technique for managing AMQP servers from a remote client application. This technique consists of a standard transport mechanism built over AMQP, and a standard XML language used to exchange information between a management component built-in to the server, and a management application. This is a request for comments, it is not a standard.

Frequently-asked questions

OpenAMQ licensing FAQ

Read this if you have questions about licensing OpenAMQ, including GPL concerns.

OpenAMQ languages FAQ

Read this if you have questions about whether you can use OpenAMQ from your particular programming language, before you ask the openamq-dev mailing list.

OpenAMQ freezes FAQ

Read this if your OpenAMQ server seems to freeze, before you ask the openamq-dev mailing list.

OpenAMQ crashes FAQ

Read this if your OpenAMQ server crashes, before you ask the openamq-dev mailing list.

OpenAMQ build FAQ

Read this if you have questions about building OpenAMQ, before you ask the openamq-dev mailing list.