ActiveMQ: Difference between revisions
No edit summary |
|||
| (14 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
== RHEL9 == | |||
cd /usr/local/src | |||
cp /usr/downloads/apache-activemq-6.2.0-bin.tar.gz . | |||
tar -xzvf apache-activemq-6.2.0-bin.tar.gz | |||
rm apache-activemq-6.2.0-bin.tar.gz | |||
ln -s apache-activemq-6.2.0 apache-activemq | |||
cd /usr/local/src/apache-activemq | |||
In file ''bin/setenv'', increase maximum memory size if hardware allows: | |||
ACTIVEMQ_OPTS_MEMORY="-Xms8G -Xmx8G" | |||
Start broker: | |||
bin/activemq console # interactive mode | |||
bin/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. | |||
To stop broker, run command | |||
bin/activemq stop | |||
Configure activemq as systemd service. Create file ''/etc/systemd/system/activemq.service'' with following contents (user 'activemq' is commented out, we are running it as 'root'): | |||
[Unit] | |||
Description=Apache ActiveMQ | |||
After=network.target | |||
[Service] | |||
Type=forking | |||
#User=activemq | |||
#Group=activemq | |||
ExecStart=/usr/local/src/apache-activemq/bin/activemq start | |||
ExecStop=/usr/local/src/apache-activemq/bin/activemq stop | |||
Restart=on-abort | |||
[Install] | |||
WantedBy=multi-user.target | |||
Enable and start service: | |||
systemctl daemon-reload | |||
systemctl enable activemq.service | |||
systemctl start activemq.service | |||
systemctl status activemq.service | |||
== RHEL7 == | |||
'''Install Apache ActiveMQ''' | '''Install Apache ActiveMQ''' | ||
Latest revision as of 14:38, 9 January 2026
RHEL9
cd /usr/local/src cp /usr/downloads/apache-activemq-6.2.0-bin.tar.gz . tar -xzvf apache-activemq-6.2.0-bin.tar.gz rm apache-activemq-6.2.0-bin.tar.gz ln -s apache-activemq-6.2.0 apache-activemq cd /usr/local/src/apache-activemq
In file bin/setenv, increase maximum memory size if hardware allows:
ACTIVEMQ_OPTS_MEMORY="-Xms8G -Xmx8G"
Start broker:
bin/activemq console # interactive mode bin/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.
To stop broker, run command
bin/activemq stop
Configure activemq as systemd service. Create file /etc/systemd/system/activemq.service with following contents (user 'activemq' is commented out, we are running it as 'root'):
[Unit] Description=Apache ActiveMQ After=network.target [Service] Type=forking #User=activemq #Group=activemq ExecStart=/usr/local/src/apache-activemq/bin/activemq start ExecStop=/usr/local/src/apache-activemq/bin/activemq stop Restart=on-abort
[Install] WantedBy=multi-user.target
Enable and start service:
systemctl daemon-reload systemctl enable activemq.service systemctl start activemq.service systemctl status activemq.service
RHEL7
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 CC=/apps/gcc/11.5.0/bin/gcc CXX=/apps/gcc/11.5.0/bin/g++ --prefix=/usr/local/activemq 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