ActiveMQ: Difference between revisions

From CLONWiki
Jump to navigation Jump to search
Boiarino (talk | contribs)
No edit summary
Boiarino (talk | contribs)
No edit summary
 
Line 3: Line 3:
Download ActiveMQ tar file (for example apache-activemq-5.15.5-bin.tar.gz) from http://activemq.apache.org to /usr/downloads
Download ActiveMQ tar file (for example apache-activemq-5.15.5-bin.tar.gz) from http://activemq.apache.org to /usr/downloads


cd /usr/local/src
  cp /usr/downloads/apache-activemq-5.15.5-bin.tar.gz .
  cp /usr/downloads/apache-activemq-5.15.5-bin.tar.gz .
  gunzip apache-activemq-5.15.5-bin.tar.gz
  gunzip apache-activemq-5.15.5-bin.tar.gz

Latest revision as of 15:11, 15 September 2021

Install Apache ActiveMQ

Download ActiveMQ tar file (for example apache-activemq-5.15.5-bin.tar.gz) from http://activemq.apache.org to /usr/downloads

cd /usr/local/src
cp /usr/downloads/apache-activemq-5.15.5-bin.tar.gz .
gunzip apache-activemq-5.15.5-bin.tar.gz
tar xvf apache-activemq-5.15.5-bin.tar
rm apache-activemq-5.15.5-bin.tar
ln -s apache-activemq-5.15.5 apache-activemq
cd /usr/local/src/apache-activemq-5.15.5/bin

become superuser and start by issuing

./activemq console (interactive mode)
./activemq start (batch mode)

When checking the port with netstat, getting

netstat -an | fgrep 61616 
   tcp        0      0 :::61616                    :::*                        LISTEN      

indicating that ActiveMQ is running.

Configuration files are /usr/local/src/apache-activemq-5.15.5/bin/env and /usr/local/src/apache-activemq-5.15.5/conf/activemq.xml. In env file there is setting

ACTIVEMQ_OPTS_MEMORY="-Xms64M -Xmx4G"

where -Xmx defines maximum heap size, default is 1G, it should be increased if memory allows.


Install C++ API

Download activemq-cpp tar file (for example activemq-cpp-library-3.9.5-src.tar.gz) from http://activemq.apache.org/cms/download.html to /usr/downloads.

cd /usr/local/src
cp /usr/downloads/activemq-cpp-library-3.9.5-src.tar.gz .
gunzip activemq-cpp-library-3.9.5-src.tar.gz
tar xvf activemq-cpp-library-3.9.5-src.tar
rm activemq-cpp-library-3.9.5-src.tar
cd activemq-cpp-library-3.9.5
./configure --prefix=/usr/local/activemq
###./configure --prefix=/usr/local  (or ./configure CC=/apps/gcc/8.3.0/bin/gcc CXX=/apps/gcc/8.3.0/bin/g++ --prefix=/usr/local)
make
make install


Running C++ example

Go to /usr/local/src/activemq-cpp-library-3.9.5-src. Modify src/examples/main.cpp file setting hostname where ActiveMQ broker is running, line

"failover:(tcp://localhost:61616".

Type 'make', the run it:

./src/examples/example

It will print messages like 'Message #1993 Received: Hello world! from thread 140724062602600' and in the end 'Time to completion = 0.178 seconds.'.


NOTE1: on RHEL5/CentOS5 apr-1.4.8.tar.gz was installed by commands './configure --prefix=/usr/local', 'make', 'make install'

NOTE2: on RHEL5/CentOS5 openssl-1.0.1e.tar.gz was installed by commands './config --prefix=/usr/local', 'make', 'make install'


Running Java example

Make sure maven installed.

Become root, assume bash. Go to example directory:

cd /usr/local/src/apache-activemq/examples/amqp/java

Add 'true' line into following section of pom.xml file.

<plugin>

 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-compiler-plugin</artifactId>
 <version>2.1</version>
 <configuration>
   <fork>true</fork>       
   <source>1.6</source>
   <target>1.6</target>
 </configuration>

</plugin>

Run command

/apps/maven/bin/mvn install

Set following environment (in last line specify server where activemq server is running):

export ACTIVEMQ_USER=admin
export ACTIVEMQ_PASSWORD=PASSWORD
export ACTIVEMQ_HOST=clondb1

In separate xterm, run Listener:

java -cp target/amqp-example-0.1-SNAPSHOT.jar example.Listener

In separate xterm, run Publisher:

java -cp target/amqp-example-0.1-SNAPSHOT.jar example.Publisher

You should see following in Publisher xterm:

Sent 1000 messages
Sent 2000 messages
Sent 3000 messages
Sent 4000 messages
Sent 5000 messages
Sent 6000 messages
Sent 7000 messages
Sent 8000 messages
Sent 9000 messages
Sent 10000 messages

And following will be in Listener xterm:

Waiting for messages...
Received 1000 messages.
Received 2000 messages.
Received 3000 messages.
Received 4000 messages.
Received 5000 messages.
Received 6000 messages.
Received 7000 messages.
Received 8000 messages.
Received 9000 messages.
Received 10000 messages.
Received 10001 in 0.85 seconds