85 lines
2.9 KiB
Plaintext
85 lines
2.9 KiB
Plaintext
|
= Libaio Native Libraries
|
||
|
:idprefix:
|
||
|
:idseparator: -
|
||
|
|
||
|
Apache ActiveMQ Artemis distributes a native library, used as a bridge for its fast journal, between Apache ActiveMQ Artemis and Linux libaio.
|
||
|
|
||
|
`libaio` is a library, developed as part of the Linux kernel project.
|
||
|
With `libaio` we submit writes to the operating system where they are processed asynchronously.
|
||
|
Some time later the OS will call our code back when they have been processed.
|
||
|
|
||
|
We use this in our high performance journal if configured to do so, please see xref:persistence.adoc#persistence[Persistence].
|
||
|
|
||
|
These are the native libraries distributed by Apache ActiveMQ Artemis:
|
||
|
|
||
|
* libartemis-native-64.so - x86 64 bits
|
||
|
* We distributed a 32-bit version until early 2017.
|
||
|
While it's not available on the distribution any longer it should still be possible to compile to a 32-bit environment if needed.
|
||
|
|
||
|
When using libaio, Apache ActiveMQ Artemis will always try loading these files as long as they are on the xref:using-server.adoc#library-path[library path]
|
||
|
|
||
|
== Runtime dependencies
|
||
|
|
||
|
If you just want to use the provided native binaries you need to install the required libaio dependency.
|
||
|
|
||
|
You can install libaio using the following steps as the root user:
|
||
|
|
||
|
Using yum, (e.g. on Fedora or Red Hat Enterprise Linux):
|
||
|
|
||
|
----
|
||
|
yum install libaio
|
||
|
----
|
||
|
|
||
|
Using aptitude, (e.g. on Ubuntu or Debian system):
|
||
|
|
||
|
----
|
||
|
apt-get install libaio1
|
||
|
----
|
||
|
|
||
|
== Compiling the native libraries
|
||
|
|
||
|
In the case that you are using Linux on a platform other than x86_32 or x86_64 (for example Itanium 64 bits or IBM Power) you may need to compile the native library, since we do not distribute binaries for those platforms with the release.
|
||
|
|
||
|
== Compilation dependencies
|
||
|
|
||
|
[NOTE]
|
||
|
====
|
||
|
|
||
|
|
||
|
The native layer is only available on Linux.
|
||
|
If you are in a platform other than Linux the native compilation will not work
|
||
|
====
|
||
|
|
||
|
These are the required linux packages to be installed for the compilation to work:
|
||
|
|
||
|
* gcc - C Compiler
|
||
|
* gcc-c{pp} or g{pp} - Extension to gcc with support for C{pp}
|
||
|
* libtool - Tool for link editing native libraries
|
||
|
* libaio - library to disk asynchronous IO kernel functions
|
||
|
* libaio-dev - Compilation support for libaio
|
||
|
* cmake
|
||
|
* A full JDK installed with the environment variable JAVA_HOME set to its location
|
||
|
|
||
|
To perform this installation on RHEL or Fedora, you can simply type this at a command line:
|
||
|
|
||
|
sudo yum install libtool gcc-c++ gcc libaio libaio-devel cmake
|
||
|
|
||
|
Or on Debian systems:
|
||
|
|
||
|
sudo apt-get install libtool gcc-g++ gcc libaio libaio- cmake
|
||
|
|
||
|
[NOTE]
|
||
|
====
|
||
|
|
||
|
|
||
|
You could find a slight variation of the package names depending on the version and Linux distribution.
|
||
|
(for example gcc-c{pp} on Fedora versus g{pp} on Debian systems)
|
||
|
====
|
||
|
|
||
|
== Invoking the compilation
|
||
|
|
||
|
In the source distribution or git clone, in the `artemis-native` directory, execute the shell script `compile-native.sh`.
|
||
|
This script will invoke the proper commands to perform the native build.
|
||
|
|
||
|
If you want more information refer to the https://cmake.org[cmake web pages].
|