Manta ActiveMQ Artemis
ActiveMQ Artemis is an open-source, high-performance, asynchronous messaging broker that allows different parts of Manta Flow to communicate. It is included in Manta Flow as a standalone application which runs as a separate service alongside Keycloak, Manta Flow Server, and Manta Admin UI.
When used as installed, ActiveMQ Artemis requires extremely little configuration. Check out the full documentation from ActiveMQ Artemis for more in-depth information.
In this guide, you’ll learn how to:
-
Open the ports necessary to run ActiveMQ Artemis
-
Launch ActiveMQ Artemis
-
Set up secure messaging
-
Enable HTTPS to provide additional security for the ActiveMQ Artemis management console
There’s also a handy troubleshooting guide with solutions to common issues.
Open Ports for Active MQ Artemis
ActiveMQ Artemis is included when you install IBM Manta Data Lineage. To run it, you’ll need to open at least one, maybe two ports in the firewall (depending on which functions you want).
-
The port for messaging—required by Manta Flow for full functionality
-
The port for the management console—which allows you to set up the ActiveMQ Artemis management console. The console gives you more details about the broker itself but isn’t required for full Manta Flow functionality. Check out the ActiveMQ Artemis documentation for more information about the management console.
To open the ports:
-
Open the Manta Data Lineage Installer.
-
Enter the port numbers listed in the image below.
- You won’t see this step if you’re upgrading Manta Data Lineage, unless you’re upgrading from Manta Data Lineage 37 to a newer version.
-
Click Next until you reach the end of the installer.
-
Click Finish.
ActiveMQ Artemis configuration during installation/upgrade
Launch ActiveMQ Artemis
There are two ways to launch Artemis.
-
You can use Manta Launcher, which automatically launches your Manta Data Lineage applications in the preferred way. Learn more about Manta Launcher and how to set it up.
-
You can start Artemis manually using a script. If you start Artemis manually, make sure you start it before any other Manta Data Lineage components (except for Keycloak).
Set Up Secure Messaging
mTLS is an additional layer of security for your messaging. The steps for setting up mTLS differ depending on which Manta Data Lineage distribution you’re using.
-
If you’re using the on-premises distribution of Manta Data Lineage that was installed by Manta Data Lineage installer, you don’t need to do anything to set up mTLS; it’s all handled by the installer. During installation, new self-signed private keys are generated for all your applications.
-
If you’re using the containerized distribution of Manta, or if you want to set up your own mTLS configuration for messaging (for example, if you would rather use your own certificate instead of self-signed keys), follow these steps.
-
Generate a private key and create a keystore for the Artemis broker called
artemiskeystore
. -
Generate a private key and create a keystore for Manta CLI called
artemiskeystore
. -
Generate a private key and create a keystore for Manta Admin UI called
artemiskeystore
. It is possible for Manta CLI and Manta Admin UI to share the same private key. -
Create an empty truststore for the Artemis broker and Manta CLI/Manta Admin UI.
-
Export the certificates from the keystores and import them to other truststores. (The alias of the certificates doesn’t matter.)
-
Import the certificate for the Artemis broker into the truststore for Manta CLI and Manta Admin UI.
-
Import the certificates for Manta CLI and Manta Admin UI into the truststore for Artemis broker.
-
-
Put the keystore for Artemis broker in
<MANTA_HOME>/artemis/manta_broker/etc
. -
Put the truststore for Artemis broker in
<MANTA_HOME>/artemis/manta_broker/etc
. -
Put the keystore for Manta CLI in
<MANTA_HOME>/cli/scenarios/manta-dataflow-cli/conf
. -
Put the truststore for Manta CLI in
<MANTA_HOME>/cli/scenarios/manta-dataflow-cli/conf
. -
Write the passwords to the keystore and the truststore to
<MANTA_HOME>/cli/scenarios/manta-dataflow-cli/conf/artemis.properties
in the following properties:artemis.keystore.password
andartemis.truststore.password
.- There are two ways to write your password. You can either write it in the configuration or inject the password using an environment variable. Read the section Write Passwords for Secure Messaging below for more information.
-
Put the keystore for Manta Admin UI in
<MANTA_HOME>/serviceutility/WEB-INF/conf
. -
Put the truststore for Manta Admin UI in
<MANTA_HOME>/serviceutility/WEB-INF/conf
. -
Write the passwords to the keystore and the truststore to
<MANTA_HOME>/cli/serviceutility/WEB-INF/conf/artemis.properties
in the following properties:artemis.keystore.password
andartemis.truststore.password
.- There are two ways to write your password. You can either write it in the configuration or inject the password using an environment variable. Read the section Write Passwords for Secure Messaging below for more information.
-
Restart Manta Data Lineage.
Write Passwords for Secure Messaging
To write the password to the configuration:
-
Open the configuration at
<MANTA_HOME>/artemis/manta_broker/etc/broker.xml
. -
Find the parameter
keyStorePassword
in the URL, which is a value of the tag<acceptor name="artemis">
. -
Enter the password of the keystore as the value of this parameter.
-
Find the parameter
truststoreStorePassword
in the URL, which is a value of the tag<acceptor name="artemis">
. -
Enter the password of the truststore as the value of this parameter.
-
Remove the tags
<mask-password>
and<password-codec>
from the configuration.
To inject passwords with environment variables (not currently possible with Windows):
-
Open the configuration at
<MANTA_HOME>/artemis/manta_broker/etc/broker.xml
. -
Find the parameter
keyStorePassword
in the URL; it is a value of the tag<acceptor name="artemis">
. -
Replace the value with
${MY_ENVIRONMENT_VARIABLE_NAME_FOR_KEYSTORE_PASSWORD}
. You can choose any environment variable name. -
Find the parameter
truststoreStorePassword
in the URL, which is a value of tag<acceptor name="artemis">
. -
Replace the value with
${MY_ENVIRONMENT_VARIABLE_NAME_FOR_TRUSTSTORE_PASSWORD}
. You can choose any environment variable name. The environment variable names for the keystore and the truststore have to be different, unless the values are the same. -
Remove the tags
<mask-password>
and<password-codec>
from the configuration.
Set Up Security for the Artemis Management Console
ActiveMQ Artemis comes with a management console included. The console is an additional source of info about Artemis that lets you view configurations or definitions of messaging addresses. The console is not required by any functionality of Manta Flow — check out the original ActiveMQ Artemis documentation for more details.
If you want to use the console with HTTPS enabled for additional security, follow these steps.
-
Stop ActiveMQ Artemis, if it is running.
-
Open the configuration file at
<MANTA_HOME>/artemis/manta_broker/etc/bootstrap.xml
. -
Change the protocol in the tag
web
, attributebind
, fromhttp
tohttps
. -
Add an attribute
keyStorePath
to the tagweb
and set it to the absolute path to the keystore. -
Add an attribute
keyStorePassword
to the tagweb
and set it to the keystore password. -
Add an attribute
trustStorePath
to the tagweb
and set it to the absolute path to the truststore. -
Add an attribute
trustStorePassword
to the tagweb
and set it to the truststore password. -
Restart ActiveMQ Artemis.
See the example below.
<web bind="https://localhost:8161"
path="web"
keyStorePath="C:\mantaflow\artemis\manta_broker\etc\keystore.p12"
keyStorePassword="KEYSTORE_PASSWORD"
trustStorePath="C:\mantaflow\artemis\manta_broker\etc\truststore.p12"
trustStorePassword="TRUSTSTORE_PASSWORD">
<app url="activemq-branding" war="activemq-branding.war"/>
<app url="artemis-plugin" war="artemis-plugin.war"/>
<app url="console" war="console.war"/>
</web>
If you’re using Manta Launcher to start up your Manta Data Lineage services, you’ll need to follow these additional steps.
-
Open the Manta Launcher configuration at
<MANTA_HOMER>/launcher/conf/applications.json
. -
Replace the line
"healthEndpoint": "http://localhost:8161/console"
with"healthEndpoint": "https://localhost:8161/console"
.
Turn Off the Artemis Management Console
If the Artemis management console is active and you don’t want to use it any more, follow these steps to switch it off.
-
Stop ActiveMQ Artemis, if it is running.
-
Open the configuration file at
<MANTA_HOME>/artemis/manta_broker/etc/bootstrap.xml
. -
Completely remove the tag
<web>
(everything from<web>
to</web>
). -
Save the file.
-
Restart ActiveMQ Artemis.
Memory Configuration
When deploying an ActiveMQ Artemis broker, it is important to account for both the heap memory that it uses as well as the off-heap memory. Artemis heavily utilizes off-heap, direct memory for highly performant messaging.
By default, ActiveMQ broker runs with 1GB of heap memory on Windows machines and 2GB of heap memory on Linux machines. The size of the direct memory that the application can potentially use is by default equal to the maximum heap memory. Therefore, if Artemis is configured to use at most 1GB of heap memory, it can also use 1GB of off-heap memory.
The machines that run the broker, or containers in which the broker is run, therefore, have to have at least twice the configured heap memory available to safely run it.
The memory configuration can be changed in the
<MANTA_HOME>/artemis/manta_broker/etc/artemis.profile(.cmd)
file. To change it, follow these steps.
-
Stop ActiveMQ Artemis, if it is running.
-
Locate the
<MANTA_HOME>/artemis/manta_broker/etc/artemis.profile(.cmd)
file and open it in a text editor. -
Locate the line defining the JAVA_ARGS variable.
-
The line starts
IF "%JAVA_ARGS%"=="" (set JAVA_ARGS=...
in a Windows script. -
The line starts
JAVA_ARGS="-XX:+PrintClassHistogram
in a Linux script.
-
-
Change the values
-Xms<size>[g|G|m|M|k|K]
and-Xmx<size>[g|G|m|M|k|K]
to the desired values. The first property sets the initial memory size. The latter sets the maximum heap size used by the broker. -
In the previous setting, the maximum direct memory is equal to the value defined in the
-Xmx
property. If you wish to change it, you can add-XX:MaxDirectMemorySize=<size>[g|G|m|M|k|K]
as another parameter in the same line.
Troubleshooting
Artemis Won’t Start
The most common reason ActiveMQ Artemis fails to start is that the port it’s configured to use is being used by another process. To confirm that this error has occurred, check the log file at
<MANTA_HOME>/artemis/manta_broker/log/artemis.log
. The log will contain a message that looks like:
2022-07-13 22:38:55,430 ERROR [org.apache.activemq.artemis.core.server] AMQ224000: Failure in initialisation: java.lang.IllegalStateException: AMQ229230: Failed to bind acceptor artemis to 0.0.0.0:61616
at org.apache.activemq.artemis.core.remoting.impl.netty.NettyAcceptor.startServerChannels(NettyAcceptor.java:719) [artemis-server-2.19.1.jar:2.19.1]
at org.apache.activemq.artemis.core.remoting.impl.netty.NettyAcceptor.start(NettyAcceptor.java:524) [artemis-server-2.19.1.jar:2.19.1]
at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl.startAcceptors(RemotingServiceImpl.java:313) [artemis-server-2.19.1.jar:2.19.1]
at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.completeActivation(ActiveMQServerImpl.java:3359) [artemis-server-2.19.1.jar:2.19.1]
at org.apache.activemq.artemis.core.server.impl.LiveOnlyActivation.run(LiveOnlyActivation.java:78) [artemis-server-2.19.1.jar:2.19.1]
at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.internalStart(ActiveMQServerImpl.java:655) [artemis-server-2.19.1.jar:2.19.1]
at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.start(ActiveMQServerImpl.java:568) [artemis-server-2.19.1.jar:2.19.1]
at org.apache.activemq.artemis.integration.FileBroker.start(FileBroker.java:64) [artemis-cli-2.19.1.jar:2.19.1]
at org.apache.activemq.artemis.cli.commands.Run.execute(Run.java:115) [artemis-cli-2.19.1.jar:2.19.1]
at org.apache.activemq.artemis.cli.Artemis.internalExecute(Artemis.java:157) [artemis-cli-2.19.1.jar:2.19.1]
at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:105) [artemis-cli-2.19.1.jar:2.19.1]
at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:132) [artemis-cli-2.19.1.jar:2.19.1]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [java.base:]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [java.base:]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [java.base:]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) [java.base:]
at org.apache.activemq.artemis.boot.Artemis.execute(Artemis.java:134) [artemis-boot.jar:2.19.1]
at org.apache.activemq.artemis.boot.Artemis.main(Artemis.java:50) [artemis-boot.jar:2.19.1]
Caused by: java.net.BindException: Address already in use: bind
at java.base/sun.nio.ch.Net.bind0(Native Method) [java.base:]
at java.base/sun.nio.ch.Net.bind(Net.java:455) [java.base:]
at java.base/sun.nio.ch.Net.bind(Net.java:447) [java.base:]
at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:227) [java.base:]
at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:134) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:562) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:506) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:491) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:260) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) [netty-common-4.1.73.Final.jar:4.1.73.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469) [netty-common-4.1.73.Final.jar:4.1.73.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) [netty-common-4.1.73.Final.jar:4.1.73.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.73.Final.jar:4.1.73.Final]
at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) [artemis-commons-2.19.1.jar:2.19.1]
There are two options for dealing with this issue.
-
If the other process using the port needs to keep running, you’ll have to change the port you have configured for Artemis. You can change the port configured for ActiveMQ Artemis manually in the configuration files by following the steps below (for advanced users only), or you can reinstall it and choose a different port.
-
On Windows, this seems to happen when Internet Connection Sharing (ICS) is running.
-
If you want to run Artemis through the port you configured it with, you’ll need to kill the other process using the port.
Manually Change the Port
-
Stop all Manta Data Lineage services.
-
Open the broker configuration at
<MANTA_HOME>/artemis/manta_broker/etc/broker.xml
. -
Find the tag
<acceptor name="artemis">
and the URL, which is its value. -
In the URL, change the port to the desired value.
-
Open the configuration at
<MANTA_HOME>/cli/scenarios/manta-dataflow-cli/conf/artemis.properties
. -
Change the value of property
artemis.server.port
to the value of the new port. -
Open the configuration at
<MANTA_HOME>/cli/scenarios/manta-dataflow-cli/conf/artemis.properties
. -
Change the value of property
artemis.server.port
to the value of the new port.
Kill the Process Blocking the Port
To kill the process that is blocking the port you configured for Artemis, you should first try restarting the machine—sometimes this can resolve the issue. If that doesn’t work, follow these steps.
Note: Make sure you follow the steps that are relevant for your operating system (Windows or Linux).
Manually Kill the Process in Windows
-
Press the Windows logo key + r.
-
Type
cmd
and press Enter. -
Type
netstat -ano | findStr ”<PORT>”
into the command line. -
Replace
<PORT>
with theartemis.server.port
property value. -
Hit Enter.
-
You should see one or more rows with five columns of values. The fifth column shows the ID of the process currently blocking the port.
- If you don’t see any values, try restarting your machine and running Manta Admin UI again.
-
Type
taskkill /F /PID <PID>
in the command line. Replace<PID>
with the value yielded in the previous steps. -
Press Enter.
- The process blocking the port will be killed.
Manually Kill the Process in Linux
-
Press CTRL + ALT + T.
-
Type
netstat -ano | grep ”:<PORT>”
in the shell. -
Replace
<PORT>
with theartemis.server.port
property value. -
Hit Enter.
-
You should see one or more rows with five columns of values. The fifth column shows the ID of the process currently blocking the port.
- If you don’t see any values, try restarting your machine and running Manta Admin UI again.
-
Type
kill -9 <PID>
in the shell. -
Replace
<PID>
with the value yielded in the previous steps. -
Press Enter.
- The process blocking the port will be killed.
The Broker Is Running but Not Receiving Logs
If you can’t see logs from previous or current scans in Log Viewer, there are a few potential causes. Follow these steps to troubleshoot the issue.
Step 1: Check the Manta CLI Log
-
Go to the
<MANTA_HOME>/cli/log/logging.log
file and open it in a text editor. -
Verify that there are no errors regarding the connection.
-
If there are no errors, proceed to the next section.
Step 2: Check the Manta Admin UI Log
-
Go to the
<MANTA_HOME>/serviceutility/logs/console.log
file and open it in a text editor. -
Verify that there are no errors regarding the connection.
-
If there are no errors, proceed to the next section.
Step 3: Check the Artemis Broker Log
-
Navigate to the
<MANTA_HOME>/artemis/manta_broker/log/artemis.log
file and open it in a text editor. -
Verify that there are no errors regarding the connection.
-
If there are no errors, proceed to the next section.
Step 4: Check the Available Disk Space
Important: Make sure that the hard drive you install Manta Data Lineage on is no more than 90% full. If it's more than 90% full, logs and messages (e.g., Manta Events) won’t be accepted. This error should be automatically logged in the Manta CLI log, Manta Admin UI log, and Artemis broker log.
When there’s a heavy message load for the embedded ActiveMQ Artemis version, incoming messages are sometimes stored on the disk instead of in-memory. As a safety measure to prevent your disk from filling up completely, Log Viewer is configured to stop accepting logs when the amount of available disk space drops below 10%. To fix the issue, you’ll need to reconfigure that setting by following the steps below.
First, you’ll need to verify that this is the problem. To do so, check the log files. You should see an error message like this one.
2021-10-25 11:06:18.023 [main] ERROR eu.profinit.manta.connector.jms.MantaJmsConnector [Context: MANTA Admin UI startup - 2021-10-25T11:06:11.880+0200] An unrecoverable Artemis error - ADDRESS_FULL - occurred in the producer. The connection will not be re-established for this thread.
2021-10-25 11:06:18.024 [main] ERROR eu.profinit.manta.connector.jms.MantaJmsConnector [Context: MANTA Admin UI startup - 2021-10-25T11:06:11.880+0200] Message producer for MantaJmsDestination{name='loggingQueue', type=QUEUE} has encountered an unrecoverable error. The connection will not be recovered for this thread.
javax.jms.JMSException: AMQ219058: Address "loggingQueue" is full. Message encode size = 2,066B
at org.apache.activemq.artemis.core.client.impl.ClientProducerCreditsImpl.afterAcquired(ClientProducerCreditsImpl.java:57) ~[artemis-core-client-2.18.0.jar:2.18.0]
at org.apache.activemq.artemis.core.client.impl.AbstractProducerCreditsImpl.acquireCredits(AbstractProducerCreditsImpl.java:79) ~[artemis-core-client-2.18.0.jar:2.18.0]
at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.sendRegularMessage(ClientProducerImpl.java:294) ~[artemis-core-client-2.18.0.jar:2.18.0]
at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.doSend(ClientProducerImpl.java:268) ~[artemis-core-client-2.18.0.jar:2.18.0]
at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.send(ClientProducerImpl.java:143) ~[artemis-core-client-2.18.0.jar:2.18.0]
at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.send(ClientProducerImpl.java:125) ~[artemis-core-client-2.18.0.jar:2.18.0]
at org.apache.activemq.artemis.jms.client.ActiveMQMessageProducer.doSendx(ActiveMQMessageProducer.java:483) ~[artemis-jms-client-2.18.0.jar:2.18.0]
at org.apache.activemq.artemis.jms.client.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:193) ~[artemis-jms-client-2.18.0.jar:2.18.0]
at eu.profinit.manta.connector.jms.MantaJmsConnector.sendMessageWithRecovery(MantaJmsConnector.java:191) ~[manta-connector-jms-34-MINOR-20211020.091842-5.jar:?]
at eu.profinit.manta.platform.logging.appender.LogViewerManager.send(LogViewerManager.java:86) ~[manta-platform-logging-appender-34-MINOR-20211020.091842-5.jar:?]
at eu.profinit.manta.platform.logging.appender.LogViewerAppender.append(LogViewerAppender.java:57) ~[manta-platform-logging-appender-34-MINOR-20211020.091842-5.jar:?]
at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156) ~[log4j-core-2.13.1.jar:2.13.1]
at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129) ~[log4j-core-2.13.1.jar:2.13.1]
at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120) ~[log4j-core-2.13.1.jar:2.13.1]
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84) ~[log4j-core-2.13.1.jar:2.13.1]
at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:543) ~[log4j-core-2.13.1.jar:2.13.1]
at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:502) ~[log4j-core-2.13.1.jar:2.13.1]
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:485) ~[log4j-core-2.13.1.jar:2.13.1]
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:460) ~[log4j-core-2.13.1.jar:2.13.1]
at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:82) ~[log4j-core-2.13.1.jar:2.13.1]
at org.apache.logging.log4j.core.Logger.log(Logger.java:161) ~[log4j-core-2.13.1.jar:2.13.1]
at org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(AbstractLogger.java:2198) ~[log4j-api-2.13.1.jar:2.13.1]
at org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(AbstractLogger.java:2152) ~[log4j-api-2.13.1.jar:2.13.1]
at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2135) ~[log4j-api-2.13.1.jar:2.13.1]
at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2022) ~[log4j-api-2.13.1.jar:2.13.1]
at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1891) ~[log4j-api-2.13.1.jar:2.13.1]
at org.apache.logging.log4j.spi.AbstractLogger.info(AbstractLogger.java:1280) ~[log4j-api-2.13.1.jar:2.13.1]
at eu.profinit.manta.platform.logging.api.logging.Logger.info(Logger.java:605) ~[manta-platform-logging-api-34-MINOR-20211020.091842-5.jar:?]
at eu.profinit.manta.connector.http.client.AbstractHttpsProvider.getMergedTrustManager(AbstractHttpsProvider.java:343) ~[manta-connector-http-34.0.0.jar:?]
at eu.profinit.manta.connector.http.client.AbstractHttpsProvider.generateContextWithTrustStore(AbstractHttpsProvider.java:192) ~[manta-connector-http-34.0.0.jar:?]
at eu.profinit.manta.configuration.logic.factories.FlowServerRequestFactory.afterPropertiesSet(FlowServerRequestFactory.java:169) ~[manta-admin-gui-configuration-logic-34-MINOR-20211020.091842-5.jar:?]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1858) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1795) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:886) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:790) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:228) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1361) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1208) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:886) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:790) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:228) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1361) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1208) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1425) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:409) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1341) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1181) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) [spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) [spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) [spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.initMessageSource(AbstractApplicationContext.java:733) [spring-context-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:539) [spring-context-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:401) [spring-web-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:292) [spring-web-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103) [spring-web-5.2.13.RELEASE.jar:5.2.13.RELEASE]
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4766) [catalina.jar:9.0.52]
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5230) [catalina.jar:9.0.52]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.52]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726) [catalina.jar:9.0.52]
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698) [catalina.jar:9.0.52]
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696) [catalina.jar:9.0.52]
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1024) [catalina.jar:9.0.52]
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1911) [catalina.jar:9.0.52]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.52]
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123) [?:?]
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:825) [catalina.jar:9.0.52]
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:475) [catalina.jar:9.0.52]
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1618) [catalina.jar:9.0.52]
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319) [catalina.jar:9.0.52]
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) [catalina.jar:9.0.52]
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) [catalina.jar:9.0.52]
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366) [catalina.jar:9.0.52]
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:946) [catalina.jar:9.0.52]
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835) [catalina.jar:9.0.52]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.52]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396) [catalina.jar:9.0.52]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386) [catalina.jar:9.0.52]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.52]
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) [?:?]
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919) [catalina.jar:9.0.52]
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:263) [catalina.jar:9.0.52]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.52]
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:432) [catalina.jar:9.0.52]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.52]
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:927) [catalina.jar:9.0.52]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.52]
at org.apache.catalina.startup.Catalina.start(Catalina.java:772) [catalina.jar:9.0.52]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:567) ~[?:?]
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345) [bootstrap.jar:9.0.52]
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476) [bootstrap.jar:9.0.52]
Caused by: org.apache.activemq.artemis.api.core.ActiveMQAddressFullException: AMQ219058: Address "loggingQueue" is full. Message encode size = 2,066B
... 136 more
To fix the issue:
-
Open the broker configuration at
<MANTA_HOME>/artemis/manta_broker/etc/broker.xml
. -
Change the value of the tag
<max-disk-usage>
to the desired value (up to 100). The value sets the maximum disk usage, at which point Log Viewer stops accepting logs.
Resolve Unknown Issues
If you check the log files and there is no clear reason for an error, reach out to our support team and attach the following log files.
-
<MANTA_HOME>/cli/log/*.log
(entire folder) -
<MANTA_HOME>/serviceutility/log/*.log
(entire folder) -
<MANTA_HOME>/artemis/manta_broker/log/*.log
(entire folder)