1. Where can I find OpenMAMA?
If you're completely new to OpenMAMA, the best way to get up and running quickly is to install using our RPM distributions. Step one for that is to pop over to the downloads page to grab whichever release best suits your system.
If you're happy with the use of RPM, and are more interested in getting a look at the code, I recommend heading over to the git repository documentation. You can then checkout the build instructions on the wiki, and come back when you're done to check out how to get running.
2. Installing OpenMAMA
Once you have an appropriate OpenMAMA RPM for your system, you will need to install it. Depending on your platform you will likely issue one of two commands. For systems which support yum, the appropriate command will generally be:
sudo yum install openmama-<package-type>.rpm
For systems which use pure RPM, the command becomes:
sudo rpm -iVh openmama-<package-type>.rpm
This will also potentially install a number of dependencies required by OpenMAMA, including libuuid, the QPID Proton messaging layer (libqpid-proton) and libevent.
Note: OpenMAMA may be installed on systems which use Yum with the same rpm command listed above, however we recommend the use of yum to ensure that dependencies are properly tracked and managed using the simpler interface.
Note: In order to resolve a number of the dependencies, the RPM requires that Centos and Red Hat repos have access to the Fedora EPEL Repo. Check out the instructions here for how to ensure it is available.
3. Install Directories
At present the OpenMAMA RPM will install everything under /opt/openmama. You should now be able to 'cd' into that directory and see the following directory structure:
bin - The binaries for various OpenMAMA example applications.
lib - The prebuilt shared libraries for OpenMAMA and MAMDA.
config - The configuration files used by OpenMAMA.
examples - The source code of the example applications.
data - Test data files for use with the capturereplay example applications.
4. Running OpenMAMA
Once you have OpenMAMA installed, you'll want to see it in action. For this we're going to make use of the QPID Proton middleware bridge, which comes bundled with the OpenMAMA RPM (the libraries should also be installed with the RPM - if they aren't check out the Proton website for more information).
We've tried to ensure the sample configuration works on as many platforms as possible, so you should be able to get up and running using the following steps:
First, open two separate terminal instances, and cd into the /opt/openmama directory. In the first run the following:
cd /opt/openmama source config/profile.openmama mamapublisherc -tport pub -m qpid
Then in the second run:
cd /opt/openmama source config/profile.openmama mamasubscriberc -tport sub -m qpid
At this point you should be seeing the first application publish data, and the second receive it, outputting details to screen as it goes. Next, we'll try for a full market data subscription.
5. Subscribing to Market Data
Now that you have OpenMAMA up and running, and have subscribed to some simple data, it's time to try something more complex. In this example, we're going to playback some real market data, and subscribe to it using one of the most common OpenMAMA example applications, mamalistenc
Reusing the same two terminals from before, in the first run the following:
capturereplayc -S TEST -m qpid -tport pub -dictionary data/data.dict -f data/openmama_utpcasheuro_capture.5000.10.qpid.mplay
Then in the second run:
mamalistenc -m qpid -tport sub -S TEST -s DE000CM95AU4.EUR.XPAR
Hopefully you should now be seeing large amounts of data streaming down your screen. Congratulations, you've just subscribed to real market data using OpenMAMA. That was easy.
6. What next?
Now that you've managed to get OpenMAMA up and running, I recommend you go back and read the more complete quick start guide on the OpenMAMA wiki, which provides a more detailed information regarding what exactly is going on in the commands above, as well as a few additional examples. From there you may want to check out the OpenMAMA source code, following the instructions in our git repository or download a copy of the code to your local machine and