Products Downloads


French version


 

The Adelia subscriber (or consumer) is fully managed by the AMBSS. It handles its creation, starting, stopping and destruction.

A subscriber can be described either statically in a YAML subscribersConf.yml configuration file read when starting the AMBSS, or dynamically via the use of REST API.

Principles

An Adelia subscriber has two components:

  • a native subscriber: This is created using a Java library enabling consumer clients compatible with a specific broker to be managed. Its function is to connect to the broker, subscribe to topics and consume received messages.
  • an EADELIA program: This is called by the native subscriber each time a message is received. The program handles the message's payload as required and, according to the broker protocol and handling state, positively or negatively acknowledges the received message.



When starting the AMBSS, if the subscribersConf.yml YAML file exists, the description of each Adelia subscriber is loaded and the subscriber is created then started. The subscriber starts to handle messages if they are available.

While the AMBSS is being executed, other Adelia subscribers can be managed by consuming the available REST Web services.

↑ Top of page

Description of a subscriber

An Adelia subscriber contains a certain amount of information:

  • global subscriber information (present in all subscribers),
  • information specific to the native underlying subscriber (topic connection and subscription information): this information varies according to the Java library used and the target broker.


However a subscriber creation is expressed (in YAML language via the subscribersConf.yml file or in JSON language via the REST API), the description information is the same.


Structuring a subscriber

A subscriber is a tree object defined by a set of properties:

NameTypeMandatoryDescription
idAlphanumericNoAlphanumeric identifier of the Adelia subscriber (must be unique and not empty). It will be generated automatically if it is not entered.
startOnCreationBooleanNoBoolean indicating if the subscriber must be started immediately after its creation.

config

ObjectYesGlobal and specific configuration.
       adeliaPoolNameAlphanumericNoName of the Adelia pool used for DB connections.

       adeliaPgm

ObjectYesInformation relating to the associated EADELIA program.

              objectFileName

AlphanumericYes

Name of the object file produced by the 3GL generation of the associated EADELIA program.

              javaPackageAlphanumericNo

Name of the Java package defined for the 3GL generation of the associated EADELIA program.

              parametersList of alphanumericsNo

List of values of parameters passed to the associated EADELIA program during execution. The order of the values must follow the parameter declaration order in the EADELIA program. The supported Adelia parameter types are ALPHA / NUM_BIN_2 / NUM_BIN_4 / NUM_BIN_8 / NUM_E / NUM_P / BOOL / DATE / TIME / TIMESTAMP. The format of the values according to type is as follows:

TypeFormat
ALPHAAlphanumeric string
NUM_BIN_2 / NUM_BIN_4 / NUM_BIN_8 / NUM_E / NUM_P

Numeric (decimal separator '.' without thousands separator)

Example: -1234.56

BOOL"True" or "false" string
DATEAlphanumeric string (text in quotation marks) in ISO date format "YYYY-MM-DD".
TIME

Alphanumeric string (text in quotation marks) in ISO time format "HH.MM.SS"

TIMESTAMP

Alphanumeric string (text in quotation marks) in "YYYY-MM-DD-HH.MM.SS.NNNNNN" (NNNNNN for nanoseconds) format

              customObjectMapperAlphanumericNoIdentifier of the Java Bean defined in the beans-context.xml file used to configure the properties for converting a JSON object to an Adelia class instance

       brokerConfig

ObjectYesInformation relating to the native subscriber

              factory

ObjectYesInformation relating to the Java factory responsible for creating the Adelia subscriber
                     idAlphanumericYes

Full name of the Java factory class

                     parametersObjectNoHash table (<alphanumeric key, value> pairs used as parameters when creating the factory)
              brokerConnectionObjectNoSpecific configuration of parameters for connecting the native subscriber to the target broker
              subscribeTopicObjectYesSpecific configuration of parameters for subscribing the native subscriber to the target broker


The config object centralizes the general subscriber configuration. It contains information specific to the Adelia execution context as well as information specific to the native subscriber.

In an Adelia subscriber, the information specific to the target broker is (in XPath notation):

  • config/brokerConfig/factory/id (and config/brokerConfig/factory/parameters if the factory accepts parameters),
  • config/brokerConfig/brokerConnection,
  • config/brokerConfig/subscribeTopic.


Example of Adelia RabbitMQ AMQP subscriber in YAML
id: processOrderMRK8
startOnCreation: true
config:
  adeliaPgm:
    javaPackage: my.company
    objectFileName: AMQP1
    parameters:
      - 456
      - MR_K_8
  brokerConfig:
    factory:
      id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
    brokerConnection:
      password: guest
      username: guest
    subscribeTopic:
      consumerPrefetchCount: 1000
      autoAck: false
      queue:
        declarePassive: true
        name: order_event_queue


Example of Adelia RabbitMQ AMQP subscriber in JSON
{
  "id": "processOrderMRK8",
  "startOnCreation": true,
  "config": {
    "adeliaPgm": {
      "javaPackage": "my.company",
      "objectFileName": "AMQP1",
      "parameters": [
        456,
        "MR_K_8"
      ]
    },
    "brokerConfig": {
      "factory": {
        "id": "com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory"
      },
      "brokerConnection": {
        "password": "guest",
        "username": "guest"
      },
      "subscribeTopic": {
        "consumerPrefetchCount": 1000,
        "autoAck": false,
        "queue": {
          "declarePassive": true,
          "name": "order_event_queue"
        }
      }
    }
  }
}


Specific configuration

This depends on the target broker and the factory used. The AMBSS is supplied with a number of factories which support the following brokers or protocols:

Factory ID (config/brokerConfig/factory/id)Supported broker or protocolNative subscriber used
com.hardis.adelia.ambss.kafkaspring.KafkaSubscriberFactoryKafka brokerKafka Spring 2.8.0 (Reference doc)
com.hardis.adelia.ambss.paho.mqttv3.PahoMQTTv3SubscriberFactoryMQTT v3 protocol (compatible with Mosquitto, HiveMQ Broker)Eclipse Paho MQTT v3 1.2.5 (Java doc)
com.hardis.adelia.ambss.paho.mqttv5.PahoMQTTv5SubscriberFactoryMQTT v5 protocol (compatible with Mosquitto, HiveMQ Broker)Eclipse Paho MQTT v5 1.2.5 (Github)
com.hardis.adelia.ambss.nats.jetstream.JetStreamSubscriberFactoryNats Jetstream brokerNats Jetstream Java client 2.13.1 (Github)
com.hardis.adelia.ambss.nats.stan.NatsStreamingSubscriberFactoryNats Streaming broker (NB: support ends in June 2023)Nats Streaming Java client 2.2.3 (Github)
com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactoryRabbitMQ broker - AMQP 0.9.1 protocolRabbitMQ Java Client 5.7.3 (Github)
com.hardis.adelia.ambss.lettuce.redis.LettuceRedisSubscriberFactoryRedis Pub/Sub brokerLettuce Redis 6.1.6.RELEASE (Github)

Note:

None of these factories have parameters.


Kafka configuration

Kafka

config/brokerConfig/brokerConnection connection configuration properties

Details in Kafka documentation

NameTypeMandatoryDescription
key.deserializerAlphanumericYesJava class used to deserialize the message key. The standard classes supported are:
  • org.apache.kafka.common.serialization.ByteArrayDeserializer (IMAGE Adelia type),

  • org.apache.kafka.common.serialization.ByteBufferDeserializer (IMAGE Adelia type),

  • org.apache.kafka.common.serialization.BytesDeserializer (IMAGE Adelia type),

  • org.apache.kafka.common.serialization.DoubleDeserializer (NUM_E / NUM_P Adelia type),

  • org.apache.kafka.common.serialization.FloatDeserializer (NUM_E / NUM_P Adelia type),

  • org.apache.kafka.common.serialization.IntegerDeserializer (NUM_BIN_4 Adelia type),

  • org.apache.kafka.common.serialization.LongDeserializer (NUM_BIN_8 Adelia type),

  • org.apache.kafka.common.serialization.ShortDeserializer (NUM_BIN_2 Adelia type),

  • org.apache.kafka.common.serialization.StringDeserializer (ALPHA(n) Adelia type),

  • org.apache.kafka.common.serialization.UUIDDeserializer (ALPHA(n) Adelia type),

  • io.confluent.kafka.serializers.KafkaAvroDeserializer (REF_CLASS Adelia type).
value.deserializerAlphanumericYes

Java class used to deserialize the message payload. The standard classes supported are:

  • org.apache.kafka.common.serialization.ByteArrayDeserializer (IMAGE Adelia type),

  • org.apache.kafka.common.serialization.ByteBufferDeserializer (IMAGE Adelia type),

  • org.apache.kafka.common.serialization.BytesDeserializer (IMAGE Adelia type),

  • org.apache.kafka.common.serialization.DoubleDeserializer (NUM_E / NUM_P Adelia type),

  • org.apache.kafka.common.serialization.FloatDeserializer (NUM_E / NUM_P Adelia type),

  • org.apache.kafka.common.serialization.IntegerDeserializer (NUM_BIN_4 Adelia type),

  • org.apache.kafka.common.serialization.LongDeserializer (NUM_BIN_8 Adelia type),

  • org.apache.kafka.common.serialization.ShortDeserializer (NUM_BIN_2 Adelia type),

  • org.apache.kafka.common.serialization.StringDeserializer (ALPHA(n) Adelia type),

  • org.apache.kafka.common.serialization.UUIDDeserializer (ALPHA(n) Adelia type),

  • io.confluent.kafka.serializers.KafkaAvroDeserializer (REF_CLASS Adelia type).
bootstrap.serversList of non-empty alphanumericsYesList of Kafka broker server URIs used for connection.
fetch.min.bytesIntegerNo

Minimum amount of data the server must return for a fetch request. Default value: 1.

group.id

AlphanumericNo

Unique string identifying the consumer group this subscriber belongs to.

heartbeat.interval.msIntegerNo

Interval in milliseconds between heartbeat checks to the consumer group coordinator to indicate that a subscriber is active and connected. Default value: 3000.

max.partition.fetch.bytesIntegerNo

Maximum amount of data per partition that the server will return to the subscriber (in bytes). Default value: 1048576.

session.timeout.msIntegerNo

Maximum time in milliseconds during which a consumer in a consumer group can be out of contact with a broker before being considered idle and before rebalancing is initiated among the active consumers in the group. Default value: 45000.

ssl.key.passwordAlphanumericNo

Password of the private key in the key storage file or the PEM key specified in "ssl.keystore.key". This is required for clients only if bidirectional authentication is configured. This can be entered unencrypted or encrypted.

ssl.keystore.certificate.chainAlphanumericNo

Certificate string in the format specified by "ssl.keystore.type". The default SSL engine factory only handles the PEM format with a list of X.509 certificates.

ssl.keystore.keyAlphanumericNo

Private key in the format specified by "ssl.keystore.type". The default SSL engine factory only handles the PEM format with PKCS#8 keys. If the key is encrypted, the key password must be specified using "ssl.key.password".

ssl.keystore.locationAlphanumericNo

Keystore file location. This is optional for the client and can be used for bidirectional authentication for the client.

ssl.keystore.passwordAlphanumericNo

Store password for the keystore file. This is optional for the client and only necessary if "ssl.keystore.location" is configured. The keystore password is not supported for the PEM format. This can be entered unencrypted or encrypted.

ssl.truststore.certificatesAlphanumericNo

Trusted certificates in the format specified by "ssl.truststore.type". The default SSL engine factory only supports the PEM format with X.509 certificates.

ssl.truststore.locationAlphanumericNo

Truststore file location.

ssl.truststore.passwordAlphanumericNo

Truststore file password. If no password is defined, the configured truststore file will always be used, but integrity check is disabled. The truststore password is not supported for the PEM format. This can be entered unencrypted or encrypted.

allow.auto.create.topicsBooleanNo

Used to allow automatic topic creation on the broker when subscribing to a topic. Default value: "true".

auto.offset.resetAlphanumeric. Possible values: "latest", "earliest" or "none".No

Specifies what to do when there is no initial offset in Kafka or if the current offset no longer exists on the server (e.g. because the data has been deleted). Default value: "latest".

client.dns.lookupAlphanumeric. Possible values: "use_all_dns_ips" or "resolve_canonical_bootstrap_servers_only"No

Controls how the subscriber uses DNS lookups. Default value: "use_all_dns_ips".

connections.max.idle.msIntegerNo

Closes idle connections after the number of milliseconds specified by this configuration. Default value: 540000 (9 Minutes).

default.api.timeout.msIntegerNo

Wait time (in milliseconds) for client APIs. This configuration is used as the default timeout for all client operations that do not specify a timeout parameter. Default value: 60000 (1 minute).

enable.auto.commitBooleanNo

If true, the consumer's offset will be periodically committed in the background. Default value: "false".

exclude.internal.topicsBooleanNo

Indicates whether internal topics matching a subscription pattern should be excluded from the subscription. It is always possible to explicitly subscribe to an internal topic. Default value: "true".

fetch.max.bytesIntegerNoMaximum amount of data (in bytes) the server should return for a fetch request. Default value: 52428800.
group.instance.idAlphanumericNo

Unique identifier of the consumer instance provided by the end user.

isolation.levelAlphanumeric. Possible values: "read_committed" or "read_uncommitted"No

Controls how to read messages written transactionally. Default value: "read_uncommitted".

max.poll.interval.msIntegerNo

Maximum delay between invocations of poll() when using consumer group management (in milliseconds). Default value: 300000 (5 minutes).

max.poll.recordsIntegerNo

Maximum number of records returned in a single call to poll(). Default value: 500.

partition.assignment.strategyList of alphanumericsNo

List of class names or class types, ordered by preference, of supported partition assignment strategies that the client will use to distribute partition ownership amongst consumer instances when group management is used. Default value: [ 'org.apache.kafka.clients.consumer.RangeAssignor' , 'org.apache.kafka.clients.consumer.CooperativeStickyAssignor' ]

receive.buffer.bytesIntegerNo

Size of the TCP receive buffer (SO_RCVBUF) to use when reading data (in bytes). A value of -1 indicates that the OS's default value is used. Default value: 65536.

request.timeout.msIntegerNo

Maximum amount of time the client will wait for the response from a request(in milliseconds). Default value: 30000 (30 seconds).

security.protocolAlphanumeric. Possible values: "PLAINTEXT", "SSL", "SASL_PLAINTEXT" or "SASL_SSL"No

Protocol used to communicate with brokers. Default value: "PLAINTEXT".

send.buffer.bytesIntegerNo

Size of the TCP send buffer (SO_SNDBUF) to use when sending data. A value of -1 indicates that the OS's default value is used. Default value: 131072.

socket.connection.setup.timeout.max.msIntegerNo

Maximum amount of time the client will wait for the socket connection to be established (in milliseconds). Default value: 30000 (30 seconds).

socket.connection.setup.timeout.msIntegerNo

Amount of time the client will wait for the socket connection to be established (in milliseconds). Default value: 10000 (10 seconds).

ssl.enabled.protocolsList of alphanumerics. Possible values: "TLSv1.2" or "TLSv1.3"No

List of protocols enabled for SSL connections. Default value: ['TLSv1.2'] or ['TLSv1.2' , 'TLSv1.3'] with JDK v11 or higher.

ssl.keystore.typeAlphanumericNo

File format of the keystore file.

ssl.protocolAlphanumeric. Possible values: "TLSv1.2" or "TLSv1.3"No

SSL protocol used to generate the SSLContext. Default value: "TLSv1.2" or "TLSv1.3" with JDK v11 or higher.

ssl.providerAlphanumericNo

Name of the security provider used for SSL connections.

ssl.truststore.typeAlphanumericNo

File format of the truststore file. Default value: "JKS".

auto.commit.interval.msIntegerNo

Frequency in milliseconds with which the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to "true". Taken into account if enable.auto.commit is "true". Default value: 5000 (5 seconds).

check.crcsBooleanNo

Automatically checks the CRC32 of the messages consumed. Default value: "true".

client.idAlphanumericNo

ID string to pass to the server when making requests.

client.rackAlphanumericNo

Rack identifier for this client. This can be any string value indicating the physical location of this client. It corresponds to the "broker.rack" broker configuration.

fetch.max.wait.msIntegerNo

Maximum amount of time (in milliseconds) the server will block before answering the fetch request if there is not sufficient data to immediately satisfy the requirement given by "fetch.min.bytes". Default value: 500.

interceptor.classesList of alphanumericsNo

List of classes to use as interceptors. Implementing the org.apache.kafka.clients.consumer.ConsumerInterceptor interface allows you to intercept (and possibly mutate) records received by the consumer.

metadata.max.age.msIntegerNo

Period of time in milliseconds after which we force a metadata refresh even if we have not seen any partition leadership changes to proactively discover any new brokers or partitions. Default value: 300000 (5 minutes).

metric.reportersList of alphanumericsNo

List of classes to use as metrics reporters.

metrics.num.samplesIntegerNo

Number of samples maintained to compute metrics. Default value: 2.

metrics.recording.levelAlphanumeric. Possible values: "INFO", "DEBUG" or "TRACE"No

Highest recording level for metrics. Default value: "INFO".

metrics.sample.window.msIntegerNo

Window of time during which a metrics sample is computed. Default value: 30000 (30 seconds).

reconnect.backoff.max.msIntegerNo

Maximum amount of time in milliseconds to wait when reconnecting to a broker that has repeatedly failed to connect. Default value: 1000 (1 second).

reconnect.backoff.msIntegerNo

Base amount of time to wait before attempting to reconnect to a given host. Default value: 50.

retry.backoff.msIntegerNo

Amount of time to wait before attempting to retry a failed request to a given topic partition. Default value: 100.

security.providersList of alphanumericsNo

List of configurable creator classes each returning a provider implementing security algorithms.

schema.registry.urlAlphanumericNo

Schema Registry instance URL.

specific.avro.readerBooleanNo

Tells Kafka/Schema Registry to use a specific Avro type (user type in this case, resulting from the Avro generation of an Adelia class), otherwise Kafka will wait until the GenericRecord is used for the topic. Default value: "false".

Top of page

Kafka

config/brokerConfig/subscribeTopic subscription configuration properties

Details in Apache Paho MQTTv3 documentation

NameTypeMandatoryDescription
patternAlphanumericNo

Topic pattern to subscribe to. Taken into account if the "topics" and "partitions" properties are not entered.

topicsList of non-empty alphanumericsNoList of topics to subscribe to. Taken into account if the "pattern" and "partitions" properties are not entered.

partitions

List of topicPartition objectsNo

List of information about topics and partitions to subscribe to. Taken into account if the "pattern" and "topics" properties are not entered.

       [n]

ObjectYesTopic and partition to subscribe to.
              topicNon-empty alphanumericYesName of the (n index) topic in the list of information about topics and partitions to subscribe to.
              partitionPositive integerYesNumber of the partition associated with the (n index) topic in the list of information about topics and partitions to subscribe to.
ackModeAlphanumeric. Possible values: "RECORD", "BATCH", "TIME", "COUNT", "COUNT_TIME", "MANUAL" or "MANUAL_IMMEDIATE"No

Specifies the message acquisition and acknowledgment mode.

  • RECORD: automatically acknowledges the message (commits the message offset) at the end of its handling,
  • BATCH: automatically acknowledges the messages (commits the message offsets) when all those that were returned by a poll() call have been handled (batch processed),
  • TIME: automatically acknowledges the messages (commits the message offsets) when all those that were returned by a poll() call have been handled (batch processed) and a time (defined by the ackTime property) since the last commit has been exceeded,
  • COUNT: automatically acknowledges the messages (commits the message offsets) when all those that were returned by a poll() call have been handled (batch processed) and a number of handled messages (defined by the ackCount property) since the last commit has been exceeded,
  • COUNT_TIME: similar to TIME and COUNT, but the acknowledgment is performed if one or the other condition is true,
  • MANUAL: manual acknowledgment of the message(s) by the user (acknowledgment is asynchronous),
  • MANUAL_IMMEDIATE: manual acknowledgment of the message(s) by the user (acknowledgment is synchronous).

Default value: BATCH.

ackTimeIntegerNo

Time in milliseconds after which messages pending acknowledgment are acknowledged. Taken into account if the "ackMode" property is "TIME" or "COUNT_TIME". The value must be higher than the value of the "pollTimeout" property. Default value: 5000.

ackCountIntegerNo

Minimum number of messages pending acknowledgment after which their acknowledgment is triggered. Taken into account if the "ackMode" property is "COUNT" or "COUNT_TIME". Default value: 1.

typeMsgHandlingAlphanumeric. Possible values: "BATCH" or "SINGLE"NoMessage acknowledgment mode (by batch or unit). Taken into account if "ackMode" is "MANUAL" or "MANUAL_IMMEDIATE".
pollTimeoutIntegerNoMaximum wait time (in milliseconds) to acknowledge messages - timeout value passed when calling the poll(). Default value: 5000.
commitLogLevelAlphanumeric. Possible values: "DEBUG", "ERROR, "FATAL, "INFO, "TRACE or "WARN"NoOffset commit native processing log level. Default value: "DEBUG".
missingTopicsFatalBooleanNo

Native subscriber start mode if topics to subscribe to do not exist in the broker. If "true", the subscriber will not start. Only taken into account if the "topics" or "partitions" properties are entered. Default value: "false".

onlyLogRecordMetadataBooleanNoMessage log level. If "false", the whole message is logged in the produced logs instead of just the <topic>-<partition>@<offset> logger. Default value: "false".
stopImmediateBooleanNoWhen the subscriber is stopped, allows handling to be stopped after the current message (true) instead of after handling all the messages returned by the previous call to poll() (false). Default value: "false".

Top of page

MQTT v3 configuration

MQTT v3

config/brokerConfig/brokerConnection connection configuration properties

Details in Apache Paho MQTTv3 documentation

NameTypeMandatoryDescription
automaticReconnectBooleanNo

Specifies if the client will automatically try to reconnect to the server if the connection is lost. Default value: "false".

reconnectCloseTimeoutPositive integerNoSuccessful reconnection attempt wait time before definitively closing the subscriber. Taken into account if "automaticReconnect" is "true". Default value: no wait time.
cleanSessionBooleanNo

Specifies if the client and server need to remember the client's state when reconnecting. Default value: "true". If the value is "false", "subscribeTopic/clientId" must be set.

connectionTimeoutPositive integerNo

Connection timeout value. This value, measured in seconds, defines the maximum time the client will wait for network connection to the MQTT server to be established. Default value: 30.

keepAliveIntervalPositive integerNo

"Keep alive" interval. This value, measured in seconds, defines the maximum time interval between sent or received messages. This enables the client to detect if the server is no longer available, without waiting for TCP/IP timeout. Default value: 60.

maxInflightPositive integerNo

Sets the maximum number of messages the broker can send without receiving an acknowledgment. Default value: 10.

mqttVersionAlphanumeric. Possible values: "3.1.1" or "3.1"NoSets which version of the MQTT v3 protocol to use (3.1 or 3.1.1). Default value: 3.1.1.
serverURIsList of alphanumericsNo

List of one or more MQTT server URIs the client can connect to. Default value: [ 'tcp://localhost:1883' ]. If the port is not specified in the URI, it will take the 1883 value for 'tcp://' and 8883 for 'ssl://

userNameAlphanumericNo

Username to use to connect. This can be entered unencrypted or encrypted.

passwordAlphanumericNoPassword to use to connect. This can be entered unencrypted or encrypted.

will

ObjectNo

"Last Will and Testament" (LWT) message for connection.

       topicNon-empty alphanumericYesLWT topic.
       payloadAlphanumericYesLWT message payload.
       qosInteger 0 to 2NoQuality of service level for publishing LWT messages. Default value: 0.
       retainedBooleanNoSpecifies if the LWT message needs to be retained. Default value: "false".

sslProperties

ObjectNoSSL connection properties (the connection URL must start with "ssl:" instead of "tcp:").
       com.ibm.ssl.protocolAlphanumeric. Possible values: "SSL", "SSLv2", "SSLv3', "SSL_TLS", "SSL_TLSv2", "TLS", "TLSv1", or "TLSv1.2".NoProtocol type
       com.ibm.ssl.contextProviderAlphanumericNo

Underlying JSSE provider For example: "IBMJSSE2" or "SunJSSE".

       com.ibm.ssl.keyStoreAlphanumericNo

Name of file containing the KeyStore object you want the KeyManager to use. For example: /monrep/etc/key.p12

       com.ibm.ssl.keyStorePasswordAlphanumericNo

Password for the KeyStore object you want the KeyManager to use. This can be entered unencrypted or encrypted.

       com.ibm.ssl.keyStoreTypeAlphanumericNo

Keystore type, for example: "PKCS12", "JKS" or "JCEKS".

       com.ibm.ssl.keyStoreProviderAlphanumericNo

Keystore provider, for example: "IBMJCE" or "IBMJCEFIPS".

       com.ibm.ssl.keyManagerAlphanumericNo

Algorithm that will be used to instantiate a KeyManagerFactory object instead of using the default algorithm available in the platform. Examples of values: "IbmX509" or "IBMJ9X509"

       com.ibm.ssl.trustStoreAlphanumericNo

Name of file containing the KeyStore object you want the TrustManager to use.

       com.ibm.ssl.trustStorePasswordAlphanumericNo

Password for the TrustStore you want the TrustManager to useThis can be entered unencrypted or encrypted.

       com.ibm.ssl.trustStoreTypeAlphanumericNo

KeyStore object type you want the default TrustManager to use. Same possible values as "keyStoreType".

       com.ibm.ssl.trustStoreProviderAlphanumericNo

Truststore provider, for example: "IBMJCE" or "IBMJCEFIPS".

       com.ibm.ssl.trustManagerAlphanumericNo

Algorithm that will be used to instantiate a TrustManagerFactory object instead of using the default algorithm available in the platform. Examples of values: "PKIX" or "IBMJ9X509"

       com.ibm.ssl.enabledCipherSuitesAlphanumericNo

List of enabled encryptions. The values depend on the provider, for example: SSL_RSA_WITH_AES_128_CBC_SHA;SSL_RSA_WITH_3DES_EDE_CBC_SHA

       com.ibm.ssl.clientAuthenticationAlphanumericNoDetermines if SSL client authentication is required. Default value: "false".

Top of page

MQTT v3

config/brokerConfig/ subscribeTopic subscription configuration properties

Details in Apache Paho MQTTv3 documentation

NameTypeMandatoryDescription
clientIdAlphanumericNo

Client ID. If "brokerConnection/cleanSession" is "false", this property must be entered.

persistanceAlphanumeric. Possible values: "file" or "memory"NoMessage persistence mechanism. Default value: "file".
persistantFileDirectoryAlphanumericNo

Message storage directory. Taken into account when "persistence" is "file". Default value: JVM "user.dir".

manualAcksBooleanNo

Specifies if message acknowledgment is automatic or manual. Default value: "false".

timeToWaitIntegerNo

Maximum time to wait for an action with the broker to finish. A value of 0 or -1 indicates "no maximum wait time" (wait until the end of the action). Default value: -1.

topics

List of topic objectsYes

List of information about topics to subscribe to.

       [n]

ObjectYesTopic to subscribe to.
              topicFilterNon-empty alphanumericYesName of the (n index) topic in the list of information about topics to subscribe to.
              qosInteger 0 to 2NoQuality of service level for receiving messages from the (n index) topic in the list of information about topics to subscribe to. Default value: 1.

Top of page

MQTT v5 configuration

MQTT v5

config/brokerConfig/brokerConnection connection configuration properties

Details in Apache Paho MQTTv3 documentation

NoTypeMandatoryDescription
authDataBase64 encoded alphanumericNoAuthentication data
authMethodAlphanumericNoAuthentication method
automaticReconnectBooleanNo

Specifies if the client will automatically try to reconnect to the server if the connection is lost. Default value: "false".

automaticReconnectMinDelayIntegerNo

Minimum number of seconds to wait before attempting to reconnect automatically. Default value: 1.

automaticReconnectMaxDelayIntegerNoMaximum number of seconds to wait before attempting to reconnect automatically. Default value: 120
reconnectCloseTimeoutPositive integerNoSuccessful reconnection attempt wait time before definitively closing the subscriber. Taken into account if automaticReconnect is "true". Default value: "no wait time".
cleanStartBooleanNo

Specifies if the client and server need to remember the session state when restarting and reconnecting. Default value: "true".

connectionTimeoutPositive integerNo

Connection timeout value. This value, measured in seconds, defines the maximum time the client will wait for network connection to the MQTT server to be established. Default value: 30.

httpsHostnameVerificationEnabledBooleanNoEnables host verification during an HTTPS connection. Default value: "true".
keepAliveIntervalPositive integerNo

"Keep alive" interval. This value, measured in seconds, defines the maximum time interval between sent or received messages. This enables the client to detect if the server is no longer available, without waiting for TCP/IP timeout. Default value: 60.

maximumPacketSizeInteger between 1 and 2684354656No

Maximum packet size. Default value: "no limit".

maxReconnectDelayIntegerNo

Maximum wait time (in milliseconds) between reconnect attempts. Default value: 128000.

receiveMaximumInteger between 1 and 65535No

Maximum number of received messages This value represents the maximum number of QoS 1 and QoS 2 messages the client is ready to process simultaneously.

There is no mechanism for limiting the number of publications in QoS 0 that the broker can send. Default value: 65535.

requestProblemInfoBooleanNo

Information request indicator relating to problems encountered in the communication protocol. Default value: "true".

requestResponseInfoBooleanNo

Request response information indicator. Default value: "false".

serverURIsList of alphanumericsNo

List of one or more MQTT server URIs the client can connect to. Default value: [ ' tcp://localhost:1883 ' ]. If the port is not specified in the URI, it will take the 1883 value for 'tcp://' and 8883 for 'ssl://'

sessionExpiryIntervalIntegerNo

Session expiry interval. This value, measured in seconds, defines the maximum time the broker will maintain the session once the client has disconnected. Clients should only connect with a long session expiry interval if they intend to connect to the server later. Default value: never.

topicAliasMaximumInteger between 0 and 65535No

Maximum topic aliases. This value, if present, represents the highest value the client will accept as a topic alias sent by the server. Default value: 0.

userNameAlphanumericNo

Username to use to connect. This can be entered unencrypted or encrypted.

passwordAlphanumericNoPassword to use to connect. This can be entered unencrypted or encrypted.
userPropertiesList of lists with two alphanumeric elementsNo

User properties. A user property is a pair of UTF-8 strings. The same name may appear several times.

useSubscriptionIdentifiersBooleanNo

Specifies if subscription identifiers need to be automatically allocated when subscribing to a topic. Default value: "true".

will

ObjectNo

"Last Will and Testament" (LWT) message for connection.

       topicNon-empty alphanumericYesLWT topic.
       payloadAlphanumericYesLWT message payload.
       qosInteger 0 to 2NoQuality of service level for publishing LWT messages. Default value: 0.
       retainedBooleanNoSpecifies if the LWT message needs to be retained. Default value: "false".

sslProperties

ObjectNoSSL connection properties (the connection URL must start with "ssl:" instead of "tcp:").
       com.ibm.ssl.protocolAlphanumeric. Possible values: "SSL", "SSLv2", "SSLv3", "SSL_TLS", "SSL_TLSv2", "TLS", "TLSv1" or "TLSv1.2"NoProtocol type
       com.ibm.ssl.contextProviderAlphanumericNo

Underlying JSSE provider For example: "IBMJSSE2" or "SunJSSE".

       com.ibm.ssl.keyStoreAlphanumericNo

Name of file containing the KeyStore object you want the KeyManager to use. For example: /monrep/etc/key.p12

       com.ibm.ssl.keyStorePasswordAlphanumericNo

Password for the KeyStore object you want the KeyManager to useThis can be entered unencrypted or encrypted.

       com.ibm.ssl.keyStoreTypeAlphanumericNo

Keystore type, for example: "PKCS12", "JKS" or "JCEKS".

       com.ibm.ssl.keyStoreProviderAlphanumericNo

Keystore provider, for example: "IBMJCE" or "IBMJCEFIPS".

       com.ibm.ssl.keyManagerAlphanumericNo

Algorithm that will be used to instantiate a KeyManagerFactory object instead of using the default algorithm available in the platform. Examples of values: "IbmX509" or "IBMJ9X509".

       com.ibm.ssl.trustStoreAlphanumericNo

Name of file containing the KeyStore object you want the TrustManager to use.

       com.ibm.ssl.trustStorePasswordAlphanumericNo

Password for the TrustStore you want the TrustManager to useThis can be entered unencrypted or encrypted.

       com.ibm.ssl.trustStoreTypeAlphanumericNo

KeyStore object type you want the default TrustManager to use. Same possible values as "keyStoreType".

       com.ibm.ssl.trustStoreProviderAlphanumericNo

Truststore provider, for example: "IBMJCE" or "IBMJCEFIPS".

       com.ibm.ssl.trustManagerAlphanumericNo

Algorithm that will be used to instantiate a TrustManagerFactory object instead of using the default algorithm available in the platform. Examples of values: "PKIX" or "IBMJ9X509".

       com.ibm.ssl.enabledCipherSuitesAlphanumericNo

List of enabled encryptions. The values depend on the provider, for example: SSL_RSA_WITH_AES_128_CBC_SHA;SSL_RSA_WITH_3DES_EDE_CBC_SHA

       com.ibm.ssl.clientAuthenticationAlphanumericNoDetermines if SSL client authentication is required. Default value: "false".

Top of page

MQTT v5

config/brokerConfig/subscribeTopic subscription configuration properties

Details in Apache Paho MQTTv3 documentation

NameTypeMandatoryDescription
clientIdAlphanumericNo

Client ID. If "brokerConnection/cleanStart" is "false", this property must be entered.

persistenceAlphanumeric. Possible values: "file" or "memory"NoMessage persistence mechanism. Default value: "file".
persistentFileDirectoryAlphanumericNo

Message storage directory. Taken into account when "persistence" is "file". Default value: JVM "user.dir".

manualAcksBooleanNo

Specifies if message acknowledgment is automatic or manual. Default value: "false".

timeToWaitIntegerNo

Maximum time to wait for an action with the broker to finish. A value of 0 or -1 indicates "no maximum wait time" (wait until the end of the action). Default value: -1.

topics

List of topic objectsYes

List of information about topics to subscribe to.

       [n]

ObjectYesTopic to subscribe to.
              topicFilterNon-empty alphanumericYesName of the (n index) topic in the list of information about topics to subscribe to.
              qosInteger 0 to 2NoQuality of service level for receiving messages from the (n index) topic in the list of information about topics to subscribe to. Default value: 1.
              retainAsPublishBooleanNoSpecifies if the broker retains the "retain" flag when sending a retained message to the subscriber. Default value: "false".
              noLocalBooleanNo

Used to not receive the messages published by the subscriber. Default value: "false".

              retainHandlingInteger 0 to 2No

Specifies if the server sends the retained message to the client when establishing a subscription. Default value: 0.

Top of page

Nats Jetstream configuration

Nats JetStream

config/brokerConfig/brokerConnection connection configuration properties

Details in Apache Paho MQTTv3 documentation

NameTypeMandatoryDescription

jetStreamCtx

ObjectNoJetstream connection context.
       prefixAlphanumericNo

Prefix for Jetstream topics. Default value: $JS.API.

       requestTimeoutAlphanumeric in ISO-8601 duration formatNo

Request timeout for Jetstream API calls. Default value: "PT2S" (2 seconds).

natsCon

ObjectNoNats connection parameters.
       bufferSizeIntegerNo

Initial size of buffers (in bytes) in the connection, mainly for testing. Default value: 64* 1024.

       connectionNameAlphanumericNoSets the connection name.
       connectionTimeoutAlphanumeric in ISO-8601 duration formatNo

Sets the connection attempt timeout. Default value: "PT2S" (2 seconds).

       dataPortTypeAlphanumericNo

Sets the Java class to use for this connection data port.

       discardMessagesWhenOutgoingQueueFullBooleanNo

Enables discard messages when the outgoing queue is full. Default value: "false".

       inboxPrefixAlphanumericNo

Connection's inbox prefix. Default value: _INBOX.

       maxControlLineIntegerNo

Maximum length (in bytes) of a control line sent by this connection. Default value: 4096.

       maxMessagesInOutgoingQueueIntegerNo

Maximum number of messages in the outgoing queue. Default value: 5000.

       maxPingsOutIntegerNo

Maximum number of pings the client can have in flight. Default value: 2.

       maxReconnectsIntegerNoMaximum number of reconnect attempts. Value 0 disables reconnects. Value -1 enables infinite reconnects. Default value: 60.
       noEchoBooleanNo

Turns off echo. Default value: "false".

       noHeadersBooleanNo

Disables header handling. Default value: "false".

       noNoRespondersBooleanNo

Disables assistance with no response. Default value: "false".

       noRandomizeBooleanNo

Disables server pool randomization. Default value: "false".

       oldRequestStyleBooleanNo

Enables the old request style which uses a new inbox and new subscriber for each request. Default value: "false".

       opentlsBooleanNo

SSL context which accepts any server certificate and has no client certificate. Default value: "false".

       pedanticBooleanNo

Enables pedantic mode for the server in relation to this connection. Default value: "false".

       pingIntervalAlphanumeric in ISO-8601 duration formatNo

Interval between server ping attempts. Default value: "PT2M" (2 minutes).

       reconnectBufferSizeIntegerNo

Maximum number of bytes to buffer in the client when trying to reconnect. Default value: 8388608.

       reconnectJitterIntegerNo

Wait time between reconnect attempts to the same server. Default value: "PT0.1S" (100 milliseconds).

       reconnectJitterTlsIntegerNo

Wait time of a tls/secure connection between reconnect attempts to the same server. Default value: "PT1S" (1 second).

       reconnectWaitIntegerNo

Wait time between reconnect attempts to the same server. Default value: "PT2S" (2 seconds).

       requestCleanupIntervalAlphanumeric in ISO-8601 duration formatNo

Interval between cleaning passes on outstanding request futures that are cancelled or timeout in the application code. Default value: "PT5S" (5 seconds).

       secureBooleanNo

Options for using the default SSL context if there is one. Default value: "false".

       serversList of alphanumericsNoList of server URIs to connect to.
       traceConnectionBooleanNo

Enables connection trace messages. Default value: "false".

       turnOnAdvancedStatsBooleanNo

Enables advanced statistics, mainly for tests/benchmarks. Default value: "false".

       verboseBooleanNo

Enables verbose mode with the server. Default value: "false".

       userInfo

ObjectNoUser information.
              userNameAlphanumericNoUsername for basic authentication. This can be entered unencrypted or encrypted.
              passwordAlphanumericNoPassword for basic authentication. This can be entered unencrypted or encrypted.

Top of page

Nats JetStream

config/brokerConfig/ subscribeTopic subscription configuration properties

Details in Apache Paho MQTTv3 documentation

NameTypeMandatoryDescription
subjectAlphanumericYesName of topic to subscribe to.
queueGroupNameAlphanumericNoName of queue group to join.
subscribeTypeAlphanumeric. Possible values: "Push" or "Pull"YesMessage subscription type.

pushSubOpts

ObjectNo"PUSH" subscription information.
       deliverGroupAlphanumericNoDelivery group.
       deliverSubjectAlphanumericNoDelivery subject.
       durableAlphanumericNoDurable subscriber name.
       streamAlphanumericNoStream the topic to subscribe to belongs to.
       bindBooleanNoBinds the durable subscriber to the stream. Default value: "false".
       pendingMessageLimitIntegerNo

Limits on the maximum number of messages the consumer will retain before starting to delete new messages until the application empties the queue. Default value: 65536.

       pendingByteLimitIntegerNoLimits on the maximum size of messages (in bytes) the consumer will retain before starting to delete new messages until the application empties the queue. Default value: 67108864.
       pushMaxWaitIntegerYesMaximum wait time to receive a message.

       consumerConfig

ObjectNoConsumer configuration information.
              ackPolicyAlphanumeric. Possible values: "All", "Explicit" our"None"NoMessage acknowledgment mode. Default value: "Explicit".
If subscribeType is "Pull", the only possible value is "Explicit".
              ackWaitAlphanumeric in ISO-8601 duration formatNo

Acknowledgment wait time.

              deliverPolicyAlphanumeric. Possible values: "All", "ByStartSequence", "ByStartTime", "Last", "LastPerSubject" or "New"No

Strategy for delivering messages to the consumer. Default value: "All".

              descriptionAlphanumericNoSets a description for this configuration.
              filterSubjectAlphanumericNo

Filter subject.

              flowControlAlphanumeric in ISO-8601 duration formatNo

Enables flow control. Valid only if subscribeType is "Push".

              idleHeartbeatAlphanumeric in ISO-8601 duration formatNo

Wait time for consumer's idle heartbeats. Valid only if subscribeType is "Push".

              maxAckPendingIntegerNo

Maximum number of pending acknowledgments. Valid only if subscribeType is "Push" and if ackPolicy is different from "None". Default value: -1.

              maxDeliverIntegerNo

Maximum number of message deliveries. Default value: -1.

              maxPullWaitingIntegerNo

Maximum pull waiting: number of pulls that can be outstanding on a consumer in "PULL" mode. Pulls received after this number is reached are ignored. Default value: 0.

              rateLimitIntegerNo

Rate limit (number of messages per second). Default value: -1.

              replayPolicyAlphanumeric. Possible values: "Instant" or "Original"No

Defines the message replay strategy. Taken into account only if deliverPolicy is "All", "ByStartSequence" or "ByStartTime". Default value: "Instant".

              sampleFrequencyAlphanumericNo

Sampling frequency as a percentage. For example: 30% or 30 (value must be between 0 and 100).

              startSequenceIntegerNo

Start sequence for message acquisition in the stream. Taken into account if deliverPolicy is "ByStartSequence".

              startTimeAlphanumeric in ISO-8601 duration formatNo

Start time for message acquisition in the stream. Taken into account if deliverPolicy is "ByStartTime".

pullSubOpts

ObjectNo"PULL" type subscription information.
       durableAlphanumericYesDurable subscriber name.
       streamAlphanumericNoName of stream containing the topic to subscribe to.
       bindBooleanNoBinds the durable subscriber to the stream. Default value: "false".
       pullTypeAlphanumeric. Possible values: "Fetch" or "Iterate"YesAcquisition mode for messages in "PULL" mode.
       pullBatchSizeInteger between 1 and 256YesMaximum number of messages retrieved in a batch.
       pullMaxWaitAlphanumeric in ISO-8601 duration formatYesMaximum wait time for the batch to receive messages.

       consumerConfig

ObjectNoConsumer configuration information.
              ackPolicyAlphanumeric. Possible values: "All", "Explicit" or "None"NoMessage acknowledgment mode. Default value: "Explicit". If subscribeType is "Pull", the only possible value is "Explicit".
              ackWaitAlphanumeric in ISO-8601 duration formatNo

Acknowledgment wait time.

              deliverPolicyAlphanumeric. Possible values: "All", "ByStartSequence", "ByStartTime", "Last", "LastPerSubject" or "New"No

Strategy for delivering messages to the consumer. Default value: "All".

              descriptionAlphanumericNoSets a description for this configuration.
              filterSubjectAlphanumericNo

Filter subject.

              flowControlAlphanumeric in ISO-8601 duration formatNo

Enables flow control. Valid only if subscribeType is "Push".

              idleHeartbeatAlphanumeric in ISO-8601 duration formatNo

Wait time for consumer's idle heartbeats. Valid only if subscribeType is "Push".

              maxAckPendingIntegerNo

Maximum number of pending acknowledgments. Valid only if subscribeType is "Push" and if ackPolicy is different from "None". Default value: -1.

              maxDeliverIntegerNo

Maximum number of message deliveries. Default value: -1.

              maxPullWaitingIntegerNo

Maximum pull waiting: number of pulls that can be outstanding on a consumer in "PULL" mode. Pulls received after this number is reached are ignored. Default value: 0.

              rateLimitIntegerNo

Rate limit (number of messages per second). Default value: -1.

              replayPolicyAlphanumeric. Possible values: "Instant" or "Original"No

Message replay strategy. Taken into account only if deliverPolicy is "All", "ByStartSequence" or "ByStartTime". Default value: "Instant".

              sampleFrequencyAlphanumericNo

Sampling frequency as a percentage. For example: 30% or 30 (value must be between 0 and 100).

              startSequenceIntegerNo

Start sequence for message acquisition in the stream. Taken into account if deliverPolicy is "ByStartSequence".

              startTimeAlphanumeric in ISO-8601 duration formatNo

Start time for message acquisition in the stream. Taken into account if deliverPolicy is "ByStartTime".

Top of page

Nats Streaming configuration

Nats Streaming

config/brokerConfig/brokerConnection connection configuration properties

Details in Apache Paho MQTTv3 documentation

NameTypeMandatoryDescription

stanCon

ObjectNoNats Streaming connection context.
       clusterIdNon-empty alphanumericYesServer cluster ID.
       clientIdAlphanumericNoClient ID for this connection.
       natsUrlAlphanumericNoServer connection URL. Default value: nats://localhost:4222
       discoverPrefixAlphanumericNo

Topic prefix for server discovery by clients. Default value: "_STAN.discover".

       maxPingsOutIntegerNoMaximum number of pings the client can send to the server before it is considered as lost. Default value: 3.
       pingIntervalAlphanumeric in ISO-8601 duration formatNo

Interval between server ping attempts. Default value: "PT5S" (5 seconds).

       traceConnectionBooleanNoEnables connection trace messages. Default value: "false".

natsCon



Nats connection parameters.
       bufferSizeIntegerNo

Initial size of buffers (in bytes) in the connection, mainly for testing. Default value: 64 * 1024.

       connectionNameAlphanumericNoConnection name.
       connectionTimeoutAlphanumeric in ISO-8601 duration formatNo

Connection attempt timeout. Default value: "PT2S" (2 seconds).

       dataPortTypeAlphanumericNo

Java class to use for this connection data port.

       discardMessagesWhenOutgoingQueueFullBooleanNo

Enables discard messages when the outgoing queue is full. Default value: "false".

       inboxPrefixAlphanumericNo

Connection's inbox prefix. Default value: "_INBOX".

       maxControlLineIntegerNo

Maximum length (in bytes) of a control line sent by this connection. Default value: 4096.

       maxMessagesInOutgoingQueueIntegerNo

Maximum number of messages in the outgoing queue. Default value: 5000.

       maxPingsOutIntegerNo

Maximum number of pings the client can have in flight. Default value: 2.

       maxReconnectsIntegerNo

Maximum number of reconnect attempts. Value 0 disables reconnects. Value -1 enables infinite reconnects. Default value: 60.

       noEchoBooleanNo

Turns off echo. Default value: "false".

       noHeadersBooleanNo

Disables header handling. Default value: "false".

       noNoRespondersBooleanNo

Disables assistance with no response. Default value: "false".

       noRandomizeBooleanNo

Disables server pool randomization. Default value: "false".

       oldRequestStyleBooleanNo

Enables the old request style which uses a new inbox and new subscriber for each request. Default value: "false".

       opentlsBooleanNo

SSL context which accepts any server certificate and has no client certificate. Default value: "false".

       pedanticBooleanNo

Enables pedantic mode for the server in relation to this connection. Default value: "false".

       pingIntervalAlphanumeric in ISO-8601 duration formatNo

Interval between server ping attempts. Default value: "PT2M" (2 minutes).

       reconnectBufferSizeIntegerNo

Maximum number of bytes to buffer in the client when trying to reconnect. Default value: 8388608.

       reconnectJitterIntegerNo

Wait time between reconnect attempts to the same server. Default value: "PT0.1S" (100 milliseconds).

       reconnectJitterTlsIntegerNo

Wait time of a tls/secure connection between reconnect attempts to the same server. Default value: "PT1S" (1 second).

       reconnectWaitIntegerNo

Wait time between reconnect attempts to the same server. Default value: "PT2S" (2 seconds).

       requestCleanupIntervalAlphanumeric in ISO-8601 duration formatNo

Interval between cleaning passes on outstanding request futures that are cancelled or timeout in the application code. Default value: "PT5S" (5 seconds).

       secureBooleanNo

Options for using the default SSL context if there is one. Default value: "false".

       serversList of alphanumericsNoList of server URIs to connect to.
       traceConnectionBooleanNo

Enables connection trace messages. Default value: "false".

       turnOnAdvancedStatsBooleanNo

Enables advanced statistics, mainly for tests/benchmarks. Default value: "false".

       verboseBooleanNo

Enables verbose mode with the server. Default value: "false".

       userInfo

ObjectNoUser information.
              userNameAlphanumericNoUsername for basic authentication. This can be entered unencrypted or encrypted.
              passwordAlphanumericNoPassword for basic authentication. This can be entered unencrypted or encrypted.

Top of page

Nats Streaming

config/brokerConfig/subscribeTopic subscription configuration properties

Details in Apache Paho MQTTv3 documentation

NameTypeMandatoryDescription
channelNameAlphanumericYesName of channel to subscribe to.
queueGroupNameAlphanumericNoName of queue group to join.
ackWaitAlphanumeric in ISO-8601 duration formatNo

Time the subscription will wait for ACK from the cluster. Default value: "PT30S" (30 seconds).

deliverAllAvailableBooleanNo

Specifies that message delivery must start with the oldest message available for this topic. By default, the subscription is configured to receive new messages only.

dispatcherAlphanumericNo

Specifies a dispatcher for this subscription.

durableNameAlphanumericNo

Durable subscriber name for the subscription.

manualAcksBooleanNo

Received message acknowledgment mode. Default value: "false".

maxInFlightIntegerNo

Maximum number of in-flight messages (without acknowledgment) for the subscription. Default value: 1024.

startAtSequenceIntegerNo

Specifies the sequence number to start receiving messages from. By default, the subscription is configured to receive new messages only.

startAtTimeAlphanumeric in ISO-8601 date-time formatNoSpecifies timestamping to start receiving messages from. By default, the subscription is configured to receive new messages only.
startAtTimeDeltaAlphanumeric in ISO-8601 duration formatNoSpecifies a time (starting from the current time) from which messages start to be received. By default, the subscription is configured to receive new messages only.
startWithLastReceivedBooleanNo

Specifies that message delivery must start with the last message (the most recent) stored for this topic. By default, the subscription is configured to receive new messages only. Default value: "false".

subscriptionTimeoutAlphanumeric in ISO-8601 duration formatNo

Subscription wait time during creation if the network fails. Default value: "PT2S" (2 seconds).

Top of page

RabbitMQ AMQP configuration

RabbitMQ AMQP

config/brokerConfig/brokerConnection connection configuration properties

Details in Lettuce Redis Client documentation

NameTypeMandatoryDescription
usernameAlphanumericNo

Username to use to connect to the server. This can be entered unencrypted or encrypted. Default value: "guest".

passwordAlphanumericNoPassword to use to connect to the server. This can be entered unencrypted or encrypted. Default value: "guest".
virtualHostAlphanumericNoName of virtual host to connect to. Default value: /
hostAlphanumericNoName of host to connect to. Default value: "localhost".
portInteger between 1 and 65535NoNumber of TCP port used to connect to the server. Default value: 5672 and 5671 for SSL.
handshakeTimeoutIntegerNo

Connection handshake timeout (in milliseconds). Default value: 10000 (10 seconds).

shutdownTimeoutIntegerNo

Maximum wait time (in milliseconds) for client shutdown. Default value: 10000 (10 seconds).

clientPropertiesObjectNoClient properties hash table.
topologyRecoveryEnabledBooleanNo

Enables topology recovery (queues, exchange, binding, etc.) when the connection to the server is lost. Default value: "true".

saslAuthMethodAlphanumeric. Possible values: "plain" or "external"NoSASL authentication method. Default value: "plain".
useSslBooleanNoEnables the TLS protocol with the default parameters for connecting to the server. Default value: "false".
useNioBooleanNoUses non-blocking I/O (NIO) to communicate with the server. Default value: "false".

ssl

ObjectNoSSL/TLS connection parameters.
       hostnameVerificationBooleanNoEnables host name verification. Default value: "false".
       peerVerificationBooleanNoEnables peer verification. Default value: "false".

connection

ObjectNoTCP connection parameters.
       channelMaxPositive integerNo

Maximum channel number requested. Default value: 2047.

       frameMaxPositive integerNo

Maximum frame size requested (in bytes). Default value: 0 (no limit).

       heartbeatPositive integerNoSpecifies the interval in seconds between heartbeat checks between client and server. 0 value for none. Default value: 60.
       timeoutPositive integerNo

TCP connection timeout (in milliseconds). Default value: 60000 (60 seconds).

       recoveryEnabledBooleanNo

Enables automatic connection recovery. Default value: "true".

       recoveryIntervalPositive integerNo

Connection recovery interval (in milliseconds). Default value: 5000

channel

ObjectNoParameters of channels used to connect to the server.
       rpcTimeoutPositive integerNo

Continuation time (in milliseconds) for RPC calls in channels. 0 value for "no time". Default value: 10 minutes.

       shouldCheckRpcResponseTypeBooleanNo

Enables RPC call response type check. Default value: "false".

nio

ObjectNoNIO parameters. Taken into account if useNio is "true".
       readByteBufferSizeIntegerNo

Size in bytes of the read ByteBuffer used in the NIO loop. Default value: 32768.

       writeByteBufferSizeIntegerNo

Size in bytes of the write ByteBuffer used in the NIO loop. Default value: 32768.

       nbIoThreadsIntegerNo

Maximum number of threads/tasks used for NIO. Default value: 1.

       writeEnqueuingTimeoutInMsIntegerNo

Wait time for outgoing frame enqueuing (in milliseconds). Default value: 10000.

       writeQueueCapacityIntegerNo

Queue capacity used for outgoing frames. Default value: 10000.

Top of page

RabbitMQ AMQP

config/brokerConfig/subscribeTopic subscription configuration properties

Details in Lettuce Redis Client documentation

NameTypeMandatoryDescription
consumerTagAlphanumericNo

Subscriber ID. If not entered, the ID is set by the native subscriber.

consumerPrefetchCountInteger between 0 and 65535No

Maximum number of messages the server will deliver. Default value: 0 (unlimited).

autoAckBooleanNoEnables automatic message acknowledgment. Default value: "false".
exclusiveConsumerBooleanNoDefines the subscriber as being the exclusive consumer of the associated queue. Default value: "false".

consumerArgs

ObjectNoConsumer properties.
       xPriorityIntegerNoConsumer priority in the group. Default value: 0.

queue

ObjectYesProperties of the queue associated with the consumer.
       nameNon-empty alphanumericYesQueue name.
       declarePassiveBooleanNoUses an existing queue in the topology ("true" value) or creates a new queue ("false" value). Default value: "false".
       durableBooleanNoQueue persistence. Default value: "false".
       autoDeleteBooleanNo
Queue lifespan. An autoDelete queue is automatically deleted when the last consumer subscribed to the queue unsubscribes. Default value: "true".
       exclusiveBooleanNoDefines queue exclusivity. An exclusive queue is used by a single connection and will be deleted when the connection is closed. Default value: "true".

       queueArgs

ObjectNoAdditional information about the queue behavior.
              xMessageTtlIntegerNoLifespan of messages in the queue (in milliseconds). Default value: "unlimited".
              xExpiresIntegerNoMaximum queue idle time (no associated subscriber) before deletion (in milliseconds). Default value: "unlimited".
              xMaxLengthIntegerNoMaximum number of messages contained in the queue (the oldest messages will be deleted from the queue if the limit is reached). Default value: "unlimited".
              xMaxLengthBytesIntegerNoMaximum number of bytes contained in the queue (the oldest messages will be deleted from the queue if the limit is reached). Default value: "unlimited".
              xOverflowAlphanumeric. Possible values: "drop-head", "reject-publish" or "reject-publish-dlx"NoBehavior of a full queue when it receives a new message. Default value: "drop-head".
              xDeadLetterExchangeAlphanumericNo

Name of the exchange to republish "dead letter" messages to from a queue (messages received by the queue in specific conditions).

              xDeadLetterRoutingKeyAlphanumericNoRouting key to use for "dead letter" messages.
              xMaxPriorityInteger between 1 and 255NoMaximum level of priority the queue supports in message priority management. Default value: "none" (no message priority management).
              xQueueModeAlphanumeric. Possible values: "default" or "lazy"NoBackup mode for messages in the queue. Default value: "default".
              xQueueMasterLocatorAlphanumeric. Possible values: "min-masters", "client-local" or "random"NoMaster queue location in a distributed server environment.

       bind

List of Bind objectsNoList of queue-to-exchange binding information.

            [n]

ObjectYesQueue-to-exchange binding information.
                  routingKeyAlphanumericNoRouting key used to bind the exchange to the queue.
                  bindArgsObjectNoExchange and queue binding properties hash table (<alphanumeric key, value> pairs used as parameters when binding). Example of "x-match" key (for "Headers"-type exchange).

                  exchange

ObjectNoInformation on exchange bound to the queue.
                            nameAlphanumericYesName of exchange bound to the queue.
                            typeAlphanumeric. Possible values: "direct", "fanout", "headers" or "topic"YesType of exchange bound to the queue.
                            durableBooleanNoExchange persistence. Default value: "false".
                            autoDeleteBooleanNoExchange lifespan. Default value: "false".
                            declarePassiveBooleanNoUses an existing exchange in the topology or creates a new exchange. Default value: "false".

                            exchangeArgs

ObjectNoAdditional information about the exchange behavior
                                   alternateExchangeAlphanumericNoName of an alternative exchange used when the exchange is unable to route a message.

Top of page

Redis Pub/Sub configuration

Redis Pub/Sub

config/brokerConfig/brokerConnection connection configuration properties

Details in Lettuce Redis Client documentation

NameTypeMandatoryDescription
redisTypeAlphanumeric. Possible values: "standalone" or "cluster"No

Type of Redis server to use. Default value: "standalone".

redisURIAlphanumericNoURI of the Redis server used for the connection.
clientNameAlphanumericNoClient name.

redisURIObj

ObjectNoInformation about the connection used to connect to a Redis server. Taken into account if "redisURI" is not entered.
       usernameAlphanumericNoUsername used to connect. This can be entered unencrypted or encrypted.
       passwordAlphanumericNoPassword used to connect. This can be entered unencrypted or encrypted.
       databasePositive integerNoDatabase to connect to on the Redis server. Taken into account if redisType is "standalone". Default value: 0.
       sslBooleanNoUses an SSL connection. Default value: "false".
       startTlsBooleanNoEnables StartTLS with SSL connection. Default value: "false".
       timeoutAlphanumeric in ISO-8601 duration formatNoMaximum wait time to establish the connection. Default value: "PT60S".
       sslVerifyPeerBooleanNo

Enables peer verification. Default value: "false".

       sslVerifyPeerModeAlphanumeric. Possible values: "CA", "FULL" or "NONE"NoPeer verification mode. Taken into account if sslVerifyPeer is true. Default value: "FULL".
       hostNon-empty alphanumericYesRedis server host name.
       portInteger between 1 and 65535NoNumber of TCP port used to connect to the server. Default value: 6379.

clientOptions

ObjectNo

Options for checking the behavior of the Redis client.

       autoReconnectBooleanNo

Enables automatic reconnection if the connection is lost. Default value: "true".

       reconnectCloseTimeoutPositive integerNoSuccessful reconnection attempt wait time before definitively closing the subscriber. Taken into account if autoReconnect is "true". Default value: "no wait time".
       protocolVersionAlphanumeric. Possible values: "RESP2" or "RESP3"NoProtocol version to use to connect. Default value: "RESP3".
       commandsTimeoutAlphanumeric in ISO-8601 duration formatNoMaximum wait time for a server command response. Default value: "no wait time".
       pingBeforeActivateConnectionBooleanNo

Defines the sending of a PING before activating the connection. Taken into account if protocolVersion is "RESP2". Default value: "true".

Top of page

Redis Pub/Sub

config/brokerConfig/subscribeTopic subscription configuration properties

Details in Lettuce Redis Client documentation

NameTypeMandatoryDescription

redisCodec

Alphanumeric. Possible values: "byteArray", "utf8String", "asciiString" or "string(<encoding>)"No

Type of message payload and channels/patterns to subscribe to.

Values "utf8String", "asciiString" and "string(<encoding>)" indicate that the payload (as well as the channels/patterns) is alphanumeric.

  • The "string(<encoding>)" value defines specific character encoding. This encoding value must be included in the character set registry defined by the IANA. It must also be included in the character sets supported by the JVM.
  • The "byteArray" value indicates that the payload (as well as the channels/patterns) is a byte array. In this case, the values associated with the channels/patterns properties (described below) must be Base64-encoded alphanumeric strings (byte array expressed in alphanumeric format).

Default value: "utf8String".

channelsList of non-empty alphanumericsNo

List of channels to subscribe to.

patternsList of non-empty alphanumericsNoList of channel patterns to subscribe to.

Top of page

subscribersConf.yml file

This file in YAML format (UTF-8 encoding) is used to statically describe all the subscribers to start when the AMBSS is started. Also, when creating new subscribers via the REST APIs, their configuration can be saved in the subscribersConf.yml file.

The structure of this file is an object with two properties (or sections):

  • configurations: List of factored configurations
  • subscribers: Subscriber list
subscribersConf.yml vide
configurations:
-

subscribers:
-
subscribersConf.yml containing the Adelia RabbitMQ AMQP subscriber
configurations:
-

subscribers:
- id: processOrderMRK8
  startOnCreation: true
  config: 
    adeliaPgm: 
      javaPackage: my.company
      objectFileName: AMQP1
      parameters: 
      - 456
      - MR_K_8
    brokerConfig: 
      factory: 
        id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
      
      brokerConnection: 
        password: guest
        username: guest
    
      subscribeTopic: 
        consumerTag: AMQP1_MRK8
        autoAck: false
        queue: 
          declarePassive: true
          name: order_event_queue

Top of page

Factoring the configuration

When writing subscribers, identical information blocks may need to be duplicated (for example, the brokerConnection object in the case of subscribers connected to the same broker or the subscribeTopic object in the case of subscribers subscribed to the same topic).

This descriptive redundancy can be avoided by putting these configuration elements in the configurations section of the subscribersConf.yml file and declaring, in the subscribers section, the subscribers which will no longer contain the redundant configuration elements but a reference to these in the configurations section.



Configurations section

This groups together a list of configuration objects: each object is identified by a unique identifier and contains a subscriber's config object properties:

NameTypeMandatoryDescription
idAlphanumericNoAlphanumeric identifier of the configuration object
adeliaPoolNameAlphanumericNoName of the Adelia pool used for DB connections

adeliaPgm

ObjectNoInformation relating to the associated EADELIA program

       objectFileName

AlphanumericYes

Name of the object file produced by the 3GL generation of the associated EADELIA program

       javaPackageAlphanumericNo

Name of the Java package defined for the 3GL generation of the associated EADELIA program

       parametersList of alphanumericsNo

List of alphanumeric parameters passed to the associated EADELIA program during execution

       customObjectMapperAlphanumericNoJava Bean identifier defined in the beans-context.xml file, used to configure the properties to convert a JSON object to an Adelia class instance

brokerConfig

ObjectNoInformation relating to the native subscriber

       factory

ObjectNoInformation relating to the Java factory responsible for creating the Adelia subscriber
              idAlphanumericYes

Full name of the Java factory class

              parametersObjectNoHash table (<alphanumeric key, value> pairs used as parameters when creating the factory)
       brokerConnectionObjectNoSpecific configuration of parameters for connecting the native subscriber to the target broker
       subscribeTopicObjectNoSpecific configuration of parameters for subscribing the native subscriber to the target broker


A configuration object may be incomplete and not enter all the adeliaPoolName, adeliaPgm and brokerConfig properties

Example of configurations
configurations:
- id: fullConfig
  adeliaPgm: 
    javaPackage: my.company
    objectFileName: AMQP1
    parameters: 
    - 456
    - MR_K_8
  brokerConfig: 
    factory: 
      id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
      
    brokerConnection: 
      password: guest
      username: guest
    
    subscribeTopic: 
      consumerPrefetchCount: 1000
      autoAck: false
      queue: 
        declarePassive: true
        name: order_event_queue
        
- id: partialConfigAdeliaPgm
  adeliaPgm: 
    javaPackage: my.company
    objectFileName: AMQP1
    parameters: 
    - 456
    - MR_K_8
  
- id: partialConfigBrokerConfig
  brokerConfig: 
    factory: 
      id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
      
    brokerConnection: 
      password: guest
      username: guest
    
    subscribeTopic: 
      consumerPrefetchCount: 1000
      autoAck: false
      queue: 
        declarePassive: true
        name: order_event_queue
        
- id: partialConfigBrokerConnection
  brokerConfig: 
    factory: 
      id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
      
    brokerConnection: 
      password: guest
      username: guest
    
subscribers:
-

In the example, the configurations section has three configuration objects: the first (fullConfig) describes a full configuration while the other three (partialConfigAdeliaPgm, partialConfigBrokerConfig and partialConfigBrokerConnection) describe incomplete configurations.

Subscribers section

As seen previously, this section contains all the Adelia subscriber descriptions: each subscriber description must be complete (each property described as mandatory must be present).

However, a subscriber can be described by referring to a configuration object in the configurations section in its config object. In this case, the subscriber description is deduced by replacing all the references used by the referenced objects: the result description must be complete in order to be a valid Adelia subscriber description.

Reference syntax

The syntax of a reference to a configuration object declared in the configurations section is as follows:

'/configurations/<id of the configuration object>'


Examples:

'/configurations/fullConfig'

'/configurations/partialConfigAdeliaPgm'

'/configurations/partialConfigBrokerConfig'

Using a reference

In a subscriber description, one or more references are used in the config object.


Config value

When the config object has a reference as a value, all the properties of the referenced configuration object (apart from the "id" property) become the config object properties

Config object with a single reference
configurations:
- id: fullConfig
  adeliaPgm: 
    javaPackage: my.company
    objectFileName: AMQP1
    parameters: 
    - 456
    - MR_K_8
  brokerConfig: 
    factory: 
      id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
      
    brokerConnection: 
      password: guest
      username: guest
    
    subscribeTopic: 
      consumerPrefetchCount: 1000
      autoAck: false
      queue: 
        declarePassive: true
        name: order_event_queue        
        
subscribers:
- id: subUsingFullConfig
  startOnCreation: true
  config: '/configurations/fullConfig'


To use several references, they need to be placed in a list. In this case, the config object is the result of the merger of all the properties of the referenced configuration objects (except the "id" properties) starting with index reference 1 in the list, up to n.

If the referenced configuration objects describe the same properties, the values of the properties of index reference n + 1 take priority over those of index reference n in the merge process.

Config object with two references
configurations:
- id: partialConfigAdeliaPgm
  adeliaPgm: 
    javaPackage: my.company
    objectFileName: AMQP1
    parameters: 
    - 456
    - MR_K_8
  
- id: partialConfigBrokerConfig
  brokerConfig: 
    factory: 
      id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
      
    brokerConnection: 
      password: guest
      username: guest
    
    subscribeTopic: 
      consumerPrefetchCount: 1000
      autoAck: false
      queue: 
        declarePassive: true
        name: order_event_queue    
        
subscribers:
- id: subUsingTwoPartialConfig
  startOnCreation: true
  config:
  - '/configurations/partialConfigAdeliaPgm'
  - '/configurations/partialConfigBrokerConfig'

'$ref' config attribute

References and properties of this object can be used in the config object. To do this, the reference (or list of references) is set via the "$ref" property. During the merge process, the "direct" properties of the config object take priority over the referenced configuration object properties.

Config object with $ref property
configurations:
- id: partialConfigAdeliaPgm
  adeliaPgm: 
    javaPackage: my.company
    objectFileName: AMQP1
    parameters: 
    - 456
    - MR_K_8
  
- id: partialConfigBrokerConnection
  brokerConfig: 
    factory: 
      id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
      
    brokerConnection: 
      password: guest
      username: guest
    
subscribers:
- id: subUsingTwoPartialConfigAndComplete
  startOnCreation: true
  config:
    $ref:
    - '/configurations/partialConfigAdeliaPgm'
    - '/configurations/partialConfigBrokerConnection'
    brokerConfig: 
      subscribeTopic: 
        consumerPrefetchCount: 1000
        autoAck: false
        queue: 
          declarePassive: true
          name: order_event_queue    

In the examples above, all four subscribers described are identical:

Identical Adelia subscribers
configurations:
- id: fullConfig
  adeliaPgm:
    javaPackage: my.company
    objectFileName: AMQP1
    parameters:
    - 456
    - MR_K_8

  brokerConfig:
    factory:
      id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
       
    brokerConnection:
      password: guest
      username: guest
     
    subscribeTopic:
      consumerPrefetchCount: 1000
      autoAck: false
      queue:
        declarePassive: true
        name: order_event_queue
         
- id: partialConfigAdeliaPgm
  adeliaPgm:
    javaPackage: my.company
    objectFileName: AMQP1
    parameters:
    - 456
    - MR_K_8
   
- id: partialConfigBrokerConfig
  brokerConfig:
    factory:
      id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
       
    brokerConnection:
      password: guest
      username: guest
     
    subscribeTopic:
      consumerPrefetchCount: 1000
      autoAck: false
      queue:
        declarePassive: true
        name: order_event_queue
         
- id: partialConfigBrokerConnection
  brokerConfig:
    factory:
      id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
       
    brokerConnection:
      password: guest
      username: guest
     
subscribers:
- id: processOrderMRK8
  startOnCreation: true
  config:
    adeliaPgm:
      javaPackage: my.company
      objectFileName: AMQP1
      parameters:
      - 456
      - MR_K_8      
    brokerConfig:
      factory:
        id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
       
      brokerConnection:
        password: guest
        username: guest
     
      subscribeTopic:
        consumerPrefetchCount: 1000
        autoAck: false
        queue:
          declarePassive: true
          name: order_event_queue
          
- id: subUsingFullConfig
  startOnCreation: true
  config: '/configurations/fullConfig'
  
- id: subUsingTwoPartialConfig
  startOnCreation: true
  config:
  - '/configurations/partialConfigAdeliaPgm'
  - '/configurations/partialConfigBrokerConfig'
  
- id: subUsingTwoPartialConfigAndComplete
  startOnCreation: true
  config:
    $ref:
    - '/configurations/partialConfigAdeliaPgm'
    - '/configurations/partialConfigBrokerConnection'
    brokerConfig:
      subscribeTopic:
        consumerPrefetchCount: 1000
        autoAck: false
        queue:
          declarePassive: true
          name: order_event_queue  

Top of page

Property encryption

When describing a subscriber, certain values associated with properties relating to sensitive data can be encrypted (like usernames or passwords). The encryption process uses an RSA256 asymmetric encryption algorithm based on the keys contained in the RSJwtSecurity.key keystore (which is also used as default to encrypt/decrypt the JWT tokens used for AMBSS authentication when security is enabled).

To indicate that a property value is encrypted, it (a Base64-encoded alphanumeric value) needs to be prefixed with the "{RSA}" string.


Example:

Example of Adelia RabbitMQ AMQP subscriber in YAML
id: processOrderMRK8
startOnCreation: true
config:
  adeliaPgm:
    javaPackage: my.company
    objectFileName: AMQP1
    parameters:
      - 456
      - MR_K_8
  brokerConfig:
    factory:
      id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory

    brokerConnection:
      password: "{RSA}duccMNtKDresdT5V4pEp+Uqd/j7KTT8LmCHSTIrx4eHtO/SIGrmFUFAc/4qtUjCpFow/rXMp6AZmS0wNNbmjx2m8NdNqDXKWXjcfDpyUGQyK+5m+ibE9PC6xSUqxp7jJ5xRl/N2F8+lVZ6MtT0gshgMm65ShLj2nwZ2F+DkrIbMs3c5A44IdOFeRq3zrK4lYYzNL/US1N0nHGqm5rn/dmtn8BmJ3HBOAhbk3N+KU6ugOB1T/E3HJDuEEeO4/PNDL9W7nzdCwVm7RSpOEqqCKbq7JeqNo/H1RIQu+NSj/f7dl5fQ1HxEWGKo9KmKbGIan61hTtor9M/wUcDOIoUnMZQ=="
      username: guest

    subscribeTopic:
      consumerPrefetchCount: 1000
      autoAck: false
      queue:
        declarePassive: true
        name: order_event_queue



Note: Alphanumeric strings can be configured with a prefix and suffix to be added to the encrypted values using the following two properties, defined in the application.yml and application-dev.yml configuration files:

  • ambss.encryptor.property.prefix (default value: "{RSA}"),
  • ambss.encryptor.property.suffix (default value: none).


An alphanumeric value is encrypted using the following instruction:

java -cp "%ADELIWS%javarun\*" com.hardis.jwtprovider.JwtKeyTool -encode -keyfile "<Path to AMBSS install dir>\extdConfig\RSJwtSecurity.key""<alphanumeric value to encrypt>"


The value of the RSJwtSecurity.key keystore delivered by default in the AMBSS can be changed using the following instruction:

java -cp "%ADELIWS%javarun\*" com.hardis.jwtprovider.JwtKeyTool -generate "<Path to AMBSS install dir>\extdConfig\RSJwtSecurity.key"


NB: If you have changed the value of the RSJwtSecurity.key keystore and are using the standalone authentication server %adeliws%/javarun/jwtProviderStandAlone/jwtProviderStandAlone.war with the default keystore (which is the same RSJwtSecurity.key file), you need to copy the newly created keystore file to the location defined in the META-INF\context.xml file of the installed jwtProviderStandAlone web application.


Top of page

Subscriber state

The AMBSS does not offer an Adelia subscriber supervision console.

However, there are several channels for monitoring subscriber execution.

Via the broker

Some brokers provide tools for monitoring the state of consumers.

For example, RabbitMQ offers a monitoring web console via the installation of an extension (RabbitMQ Management plugin).

Via logs

The analysis of logs produced by the AMBSS runtime and native subscribers identifies the subscriber state (define the desired log levels in the application.yml file).

Via the EADELIA program

When an error is detected by the native subscriber, this is sent to the EADELIA program and the program is informed of it. Depending on the type of error, this may shut down the subscriber.

Via REST APIs

Of the proposed APIs, one is used to read the description and state of a subscriber (started, stopped, awaiting a message, handling a message, with errors).


Top of page

  • Aucune étiquette