Reference: Client Configuration¶
This chapter deals with the available configuration options of nJAMS Client for Mule4. The examples shown refer to the use of the nJAMS configuration file. But this chapter is also useful for learning about the different configuration options while using the Inline configuration.
The configuration file njams.properties
resides in <your-project>/src/main/resources/njams/
. Use an editor of your choice and edit njams.properties
according to your needs.
Note
Any change in this configuration file requires a re-start of the MuleSoft Runtime Engine instances.
General¶
njams.disabled: | Enables/disables nJAMS Client for Mule4:
|
---|---|
njams.mule.replayEnabled: | |
Enables/disables Reply functionality of nJAMS Client for Mule4.
|
|
njams.sdk.logAllErrors: | |
Controls, when nJAMS Client for Mule4 should send error events.
|
Communication¶
The following properties control the communication between nJAMS Client for Mule4 and nJAMS Cloud, respectively nJAMS Server.
njams.sdk.communication: | |
---|---|
Select type of communication with nJAMS Cloud instance, respectively nJAMS Server instance:
|
In case you are using nJAMS Cloud:
The following properties have to be configured to allow nJAMS Client for Mule4 to create a secure connection via https to a designated nJAMS Cloud instance. You can find the configuration of the Cloud Data Provider within the Instance Setup of your Integration Matters account. A subscription of nJAMS Cloud is required.
njams.sdk.communication.cloud.apikey: | |
---|---|
Refers to absolute path of the API key file. | |
njams.sdk.communication.cloud.endpoint: | |
Endpoint of Integration Matters client hub. Default is ingest.integrationmatters.com and does not need to be changed. |
|
njams.sdk.communication.cloud.certificate: | |
Refers to absolute path of the client certificate file. | |
njams.sdk.communication.cloud.instanceid: | |
Refers to absolute path of the instance id file related to your nJAMS Cloud instance. | |
njams.sdk.communication.cloud.privatekey: | |
Refers to absolute path of the private key file. |
Sample configuration of a Cloud Data Provider:
## SDK configuration
# Communication settings
njams.sdk.communication=CLOUD
# Cloud Data Provider:
njams.sdk.communication.cloud.apikey = /njams/prod01/1b7e71187c-api.key
njams.sdk.communication.cloud.endpoint = ingest.integrationmatters.com
njams.sdk.communication.cloud.certificate = /njams/prod01/1b7e71187c-certificate.pem
njams.sdk.communication.cloud.instanceid = /njams/prod01/1b7e71187c-instanceId
njams.sdk.communication.cloud.privatekey = /njams/prod01/1b7e71187c-private.pem.key
In case you are using JMS:
njams.sdk.communication.jms.connectionFactory: | |
---|---|
Sets the connection factory, for example “ConnectionFactory”. | |
njams.sdk.communication.jms.username: | |
Use a valid JMS user that has the required privileges to send and receive messages on the destinations defined in njams.sdk.communication.jms.destination . |
|
njams.sdk.communication.jms.password: | |
The JMS user’s password. | |
njams.sdk.communication.jms.destination: | |
The JMS destination name prefix.
The prefix will be extended with .event for event messages send by nJAMS Client for Mule4 and .commands for messages send from the server to the nJAMS Client for Mule4.
Default is njams . |
|
njams.sdk.communication.jms.destination.commands: | |
Name of the JMS destination that is used to send commands from nJAMS Server to nJAMS Client for Mule4. This setting is optional and only used, if you want to use a dedicated topic commands. | |
njams.sdk.communication.jms.java.naming.factory.initial: | |
Sets the JNDI context factory. | |
njams.sdk.communication.jms.java.naming.security.principal: | |
Set JNDI user name. | |
njams.sdk.communication.jms.java.naming.security.credentials: | |
Set JNDI user’s password. | |
njams.sdk.communication.jms.java.naming.provider.url: | |
The JNDI server connection url. Fault-tolerant or load-balanced URLs are supported. |
Sample configuration of a JMS Data Provider using ActiveMQ:
## SDK configuration
# Communication settings
njams.sdk.communication=JMS
# JMS settings
njams.sdk.communication.jms.connectionFactory=QueueConnectionFactory
njams.sdk.communication.jms.username=admin
njams.sdk.communication.jms.password=admin
njams.sdk.communication.jms.destination=dynamicQueues/njams
# JNDI settings
njams.sdk.communication.jms.java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory
njams.sdk.communication.jms.java.naming.security.principal=admin
njams.sdk.communication.jms.java.naming.security.credentials=admin
njams.sdk.communication.jms.java.naming.provider.url=tcp\://localhost\:61616
Sample configuration of a JMS Data Provider using TIBCO EMS:
## SDK configuration
# Communication settings
njams.sdk.communication=JMS
# JMS settings
njams.sdk.communication.jms.connectionFactory=ConnectionFactory
njams.sdk.communication.jms.username=njams
njams.sdk.communication.jms.password=njams
njams.sdk.communication.jms.destination=njams.prod
# JNDI settings
njams.sdk.communication.jms.java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory
njams.sdk.communication.jms.java.naming.security.principal=njams
njams.sdk.communication.jms.java.naming.security.credentials=njams
njams.sdk.communication.jms.java.naming.provider.url=tibjmsnaming://localhost:7222
Subagent¶
nJAMS Subagent is used to provide metrics information collected from nJAMS Client for Mule4 to an nJAMS Agent. The nJAMS Agent in turn forwards metrics information to nJAMS Argos, which is part of nJAMS Server.
The following properties configure nJAMS Subagent:
njams.sdk.subagent.enabled: | |
---|---|
Turn on/off nJAMS Subagent.
|
|
njams.sdk.subagent.host: | |
Name of the server that hosts nJAMS Agent service. Enter a hostname or ip-address, default is |
|
njams.sdk.subagent.port: | |
Port number of nJAMS Agent service, default is |
Sample settings for Subagent:
# Enable Subagent and configure against nJAMS Agent on localhost:
njams.sdk.subagent.enabled=true
njams.sdk.subagent.host=127.0.0.1
njams.sdk.subagent.port=6450
Configuration provider¶
nJAMS Client for Mule4 must persist dynamic configuration information such as Trace Points and Extracts. The client offers different options to persist that configuration: objectsore or file.
When deploying to MuleSoft CloudHub any restart of the application will erase any configuration stored in a local file. To overcome this and retain settings over the application’s lifecycle, using a persistent objectstore is the best option.
njams.sdk.configuration.provider: | |
---|---|
Specifies configuration provider, respectively the location where nJAMS Client for Mule4 stores the application based configuration.
|
|
njams.sdk.configuration.objectstore.name: | |
The name of the object store to use. Default is |
|
njams.sdk.configuration.objectstore.refreshinterval: | |
Defines how frequently to refresh the configuration in the objectstore in minutes. Default is 60 minutes. MuleSoft CloudHub will expire objectstore entries after 30 days of inactivity. |
|
njams.sdk.configuration.file.file: | |
The path to the configuration file to use.
If not set, the following default value will be used: |
Sample configuration for using objectstore:
# Configuration store: objectstore
njams.sdk.configuration.provider=objectstore
njams.sdk.configuration.objectstore.name=_defaultPersistentObjectStore
njams.sdk.configuration.objectstore.refreshinterval=60
Memory Management¶
The following properties are not required to be changed in most cases. Please only change these values, if you are fully aware of the effects!
njams.client.sdk.discardpolicy: | |
---|---|
The discard policy determines how to deal with log messages, when
|
|
njams.client.sdk.flush_interval: | |
Period of time for collecting events in a message. Enter integer value in seconds. Default is |
|
njams.client.sdk.flushsize: | |
Maximum internal message size. If size of internal message is reached, an instant push is triggered.
Enter any integer value > 0 in Byte. Default is |
|
njams.client.sdk.minqueuelength: | |
Minimum internal queue size to prepare log messages for sending. Enter any integer value > 0. Default is |
|
njams.client.sdk.maxqueuelength: | |
Maximum internal queue size to prepare log messages for sending. Enter any integer value > 0. Default is |
|
njams.client.sdk.senderthreadidletime: | |
Idle connection timeout to close and remove JMS connection in msec. Default is 10000. |
Data Masking¶
njams.sdk.datamasking.enabled: | |
---|---|
Data Masking allows you to mask particular parts of the log message, which should remain confidential. Assume you have Tracing enabled for an activity that processes password information. By default, the nJAMS UI provides Trace Data including the password information in plain text. To prevent password information from being shown in plain text, you can use data masking. This property corresponds to property
|
|
njams.sdk.datamasking.regex.<your-regex-name>: | |
Use a regular expression to specify a pattern for data masking. For example, the following regular expression replaces any information that matches a Social Security Number (SSN) with an asterisk character (“*”):
You can specify multiple regex definitions by defining further properties of regular expressions:
etc. |
Additional properties¶
The following properties are not required to be changed in most cases.
njams.client.sdk.domain: | |
---|---|
Specifies domain name. | |
njams.client.sdk.deployment: | |
Specifies deployment name. | |
njams.client.sdk.engine: | |
Specifies application name. |
Sample configuration of nJAMS Client for Mule4 taxonomy:
# Taxonomy:
njams.client.sdk.domain=TestDomain
njams.client.sdk.deployment=my_deployment
njams.client.sdk.engine=my_application
Note
When you are using Mule RTF it is recommended to configure the taxonomy in order to avoid getting new entries in the domain object tree each time you start the Mule application.
Use encrypted passwords¶
In njams configuration files passwords are usually entered in plain text, such as njams.sdk.communication.jms.password=foo
.
In case you do not want to use uncoded passwords, you can use encrypted passwords as follows:
Assume, the password of your JMS account is foo
:
- Call
java -jar njams-sdk-4.x.x.jar foo
will output encrypted password:??0190029006d0048004c0055000c0017002d00090005006a004d007100b500bd
- Place encrypted password into
njams.properties
atnjams.sdk.communication.jms.password=??0190029006d0048004c0055000c0017002d00090005006a004d007100b500bd
- Restart Mule application to make change effective