Skip to content

Integration Server Configurations

All the server-level configurations of your Micro Integrator instance can be applied using a single configuration file, which is the deployment.toml file (stored in the MI_HOME/conf directory).

The complete list of configuration parameters that you can use in the deployment.toml file are listed below along with descriptions. You can also see the documentation on product installation and setup for details on applying product configurations to your Micro Integrator deployment.

Instructions for use

To update the product configurations:

  1. Open the deployment.toml file (stored in the MI_HOME/conf directory).
  2. Select the required configuration headers and parameters from the list given below and apply them to the deployment.toml file.

The default deployment.toml file of the Micro Integrator is as follows:

[server]
hostname = "localhost"

[keystore.primary]
file_name = "wso2carbon.jks"
password = "wso2carbon"
alias = "wso2carbon"
key_password = "wso2carbon"

[truststore]
file_name = "client-truststore.jks"
password = "wso2carbon"
alias = "symmetric.key.value"
algorithm = "AES"

Deployment

[server]
hostname="localhost"
node_ip="127.0.0.1"
enable_mtom=false
enable_swa=false
[server] Required

This configuration header is required for configuring the deployment parameters that are used for identifying a Micro Integrator server node. You need to update these values when you deploy WSO2 Micro Integrator. The required and optional parameters for this configuration are listed below.

hostname

string Required

Default: "localhost"
Possible Values: "127.0.0.1","localhost","<any-ip-address>"

The hostname of the Micro Integrator instance.

offset

integer

Default: 0

Port offset allows you to run multiple WSO2 products, multiple instances of a WSO2 product, or multiple WSO2 product clusters on the same server or virtual machine (VM). Port offset defines the number by which all ports defined in the runtime such as the HTTP/S ports will be offset. For example, if the default HTTP port is 9443 and the port offset is 1, the effective HTTP port will be 9444. Therefore, for each additional WSO2 product instance, set the port offset to a unique value so that they can all run on the same server without any port conflicts.

enable_mtom

boolean Required

Default: false
Possible Values: "true" or "false"

Use this paramater to enable MTOM (Message Transmission Optimization Mechanism) for the product server.

enable_swa

boolean Required

Default: "true" or "false"

Use this paramater to enable SwA (SOAP with Attachments) for the product server. When SwA is enabled, the Micro Integrator will process the files attached to SOAP messages.

userAgent

string Required

Default: WSO2 ${product.key} ${product.version}

serverDetails

string Required

Default: WSO2 ${product.key} ${product.version}

serverDetails

string Required

Default: WSO2 ${product.key} ${product.version}

synapse_config_file_path

string Required

Default: repository/deployment/server/synapse-configs

Service Catalog Client

[[service_catalog]]
apim_host = "https://localhost:9443"
enable = true
username = "$secret{username}"
password = "$secret{password}"
[[service_catalog]] Required

This cofiguration header is required if you want the Micro Integrator to publish integation services to the Service Catalog in the API Publisher. This allows you to generate an API proxy for the integrations deployed in the Micro Integrator.

apim_host

string Required

Default: "https://127.0.0.1:9443"
Possible Values: "https://{hostname/ip}:{port}"

The hostname of the API Manager runtime. Be sure to replace {hostname/ip} and {port} with the relevant values.

enable

boolean Required

Default: false

The service catalog client in the Micro Integrator is enabled when this parameter is set to 'true'.

username

string Required

Default: admin
Possible Values: -

The user name for signing in to the API Manager runtime.

password

string Required

Default: admin
Possible Values: -

The user password for signing in to the API Manager runtime.

Micro Integrator Dashboard

[dashboard_config]
dashboard_url = "https://localhost:9743/dashboard/api/"
heartbeat_interval = 5
group_id = "mi_dev"
node_id = "dev_node_2"
[dashboard_config] Required

This configuration header is required for the Micro Integrator server to connect with the dashboard server.

dashboard_url

string Required

Default: "https://localhost:9743/dashboard/api/"
Possible Values: https://{hostname/ip}:{port}/dashboard/api/

The URL to access the dashboard server. Be sure to replace {hostname/ip} and {port} with the relevant values from your environment.

heartbeat_interval

integer

Default: 5

The time interval (in seconds) between two consecutive heartbeats that are sent from the Micro Integrator to the dashboard server.

group_id

string Required

Default: default
Possible Values: -

The server group to which the Micro Integrator instance belongs. Specify the same group ID in all the Micro Integrator servers that should belong to a single group. By default, a 'group_id' named 'default' is assinged to every Micro Integrator server that connects to the dashboard. When you sign in to the dashboard, you can view data per server group.

node_id

string Required

Default: A random UUID or the node ID used for cluster coordination.
Possible Values: -

The dashboard identifies the Micro Integrator node by this ID. If you have already specified a node ID when you set up the Micro Integrator cluster, the same node ID applies here by default. However, if a node ID is not defined in your clustering configurations, a random uuid is used here by default.

Primary keystore

[keystore.primary]
file_name = "wso2carbon.jks"
type = "JKS"
password = "wso2carbon"
alias = "wso2carbon"
key_password = "wso2carbon"
[keystore.primary] Required

This configuration header is required for configuring the parameters that connect the Micro Integrator to the primary keystore. This keystore is used for SSL handshaking (when the server communicates with another server) and for encrypting plain text information in configuration files. By default, this keystore is also used for encrypted data in internal datastores, unless you have configured a separate keystore for internal data encryption.

file_name

string Required

Default: wso2carbon.jks
Possible Values: -

The name of the keystore file that is used for SSL communication and for encrypting/decrypting data in configuration files.

type

string Required

Default: JKS
Possible Values: "JKS", "PKCS12"

The type of the keystore file.

password

string Required

Default: wso2carbon

The password of the keystore file that is used for SSL communication and for encrypting/decrypting data in configuration files. The keystore password is used when accessing the keys in the keystore.

alias

string Required

Default: wso2carbon

The alias of the public key corresponding to the private key that is included in the keystore. The public key is used for encrypting data in the Micro Integrator server, which only the corresponding private key can decrypt. The public key is embedded in a digital certificate, and this certificate can be shared over the internet by storing it in a separate trust store file.

key_password

string Required

Default: wso2carbon

The password of the private key that is included in the keystore. The private key is used to decrypt the data that has been encrypted using the keystore's public key.

Internal keystore

[keystore.primary]
file_name = "wso2carbon.jks"
type = "JKS"
password = "wso2carbon"
alias = "wso2carbon"
key_password = "wso2carbon"
[keystore.internal] Required

This configuration header is required for configuring the parameters that connect the Micro Integrator to the keystore used for encrypting/decrypting data in internal data stores. You may sometimes choose to configure a separate keystore for this purpose because the primary keystore needs to renew certificates frequently. However, for encrypting information in internal data stores, the keystore certificates should not be changed frequently because the data that is already encrypted will become unusable every time the certificate changes. Read more about configuring the internal keystore.

file_name

string Required

Default: wso2carbon.jks
Possible Values: -

The name of the keystore file that is used for data encryption/decryption in internal data stores. By default, the keystore file of the primary keystore is enabled for this purpose.

type

string Required

Default: JKS
Possible Values: "JKS", "PKCS12"

The type of the keystore file. By default, the keystore type of the primary keystore is enabled for this purpose.

password

string Required

Default: wso2carbon

The password of the keystore file that is used for data encryption/decryption in internal data stores. This keystore password is used when accessing the keys in the keystore. By default, the keystore password of the primary keystore is enabled for this purpose.

alias

string Required

Default: wso2carbon

The alias of the public key corresponding to the private key that is included in the keystore. The public key is used for encrypting data in the Micro Integrator server, which only the corresponding private key can decrypt. The public key is embedded in a digital certificate, and this certificate can be shared over the internet by storing it in a separate trust store file. By default, the alias of the primary keystore is enabled for this purpose.

key_password

string Required

Default: wso2carbon

The password of the private key that is included in the keystore. The private key is used to decrypt the data that has been encrypted using the keystore's public key. By default, the public key password of the primary keystore is enabled for this purpose.

System Parameters

[system.parameter]
org.wso2.SecureVaultPasswordRegEx = "any_valid_regex"
[system.parameter] Required

This configuration header is required for configuring system parameters for the server.

org.wso2.SecureVaultPasswordRegEx

string

Default: ^[\S]{5,30}$
Possible Values: regex value

A regex pattern that specifies the password length and character composition for passwords in a synapse configuration.

Truststore

[truststore]
file_name="wso2truststore.jks"
type="JKS"
password="wso2carbon"
alias="symmetric.key.value"
[truststore] Required

This configuration header is required for configuring the parameters that connect the Micro Integrator to the keystore file (trust store) that is used to store the digital certificates that the server trusts for SSL communication. Read more about configuring the truststore.

file_name

string Required

Default: wso2truststore.jks
Possible Values: -

The name of the keystore file that is used for storing the trusted digital certificates. The product is shipped with a default trust store (wso2truststore.jks), which contains the self-signed digital certificate of the default keystore.

type

string Required

Default: JKS
Possible Values: "JKS", "PKCS12"

The type of the keystore file that is used as the trust store.

password

string Required

Default: wso2carbon

The password of the keystore file that is used as the trust store.

alias

string Required

Default: symmetric.key.value

The alias is the password of the digital certificate (which holds the public key) that is included in the trustore.

Default File-based User Store

[internal_apis.file_user_store]
enable = true

[[internal_apis.users]]
user.name = "user-1"
user.password = "pwd-1"
user.is_admin = true

[[internal_apis.users]]
user.name = "user-2"
user.password = "pwd-2"
[internal_apis.file_user_store] Required

This configuration header is required for disabling the default file-based user store of the Micro Integrator's Management API. Read more about configuring user stores.

enable

integer

Default: true
Possible Values: "true" or "false"

Set this paramter to 'false' if you want to disable the default file-based user store. This allows you to use an external user store for user authentication in the Management API.

[[internal_apis.users]] Required

This configuration header is required for defining the user name and password for the Management API. Reuse this header when you want to add more users. The user credentials are stored in the default file-based user store of the Management API. Read more about configuring user stores.

user.name

string

Default: admin
Possible Values: -

Enter a user name. Note that this will overwrite the default 'admin' user that is stored in the user store.

user.password

string

Default: admin
Possible Values: -

Enter a password for the user specified by 'user.name'. Note that this will overwrite the default 'admin' password that is stored in the user store.

user.is_admin

boolean

Default: false
Possible Values: "true" or "false"

Specifies whether or not the user has admin privileges.

External User Store

[user_store]
type = "read_only_ldap"
class = "org.wso2.micro.integrator.security.user.core.ldap.ReadOnlyLDAPUserStoreManager"
connection_url = "ldap://localhost:10389"
connection_name = "uid=admin,ou=system"
connection_password = "admin"
anonymous_bind = false
user_search_base = "ou=Users,dc=wso2,dc=org"
user_name_attribute = "uid"
user_name_search_filter = "(&(objectClass=person)(uid=?))"
user_name_list_filter = "(objectClass=person)"
read_groups = true
group_search_base = "ou=Groups,dc=wso2,dc=org"
group_name_attribute = "cn"
group_name_search_filter = "(&(objectClass=groupOfNames)(cn=?))"
group_name_list_filter = "(objectClass=groupOfNames)"
membership_attribute = "member"
back_links_enabled = false
username_java_regex = "[a-zA-Z0-9._\\-|//]{3,30}$"
rolename_java_regex = "[a-zA-Z0-9._\\-|//]{3,30}$"
password_java_regex = "^[\\S]{5,30}$"
scim_enabled = false
password_hash_method = "PLAIN_TEXT"
multi_attribute_separator = ","
max_user_name_list_length = 100
max_role_name_list_length = 100
user_roles_cache_enabled = true
connection_pooling_enabled = true
ldap_connection_timeout = 5000
read_timeout = ''
retry_attempts = ''
connection_retry_delay = "120000"
[user_store] Required

This configuration header is required for conencting the Micro Integrator to an external user store.

type

string Required

Default: "read_only_ldap"
Possible Values: "read_only_ldap", "read_write_ldap", "database"

This parameter specifies the type of user store. The following options are available: <ul><li>read_only_ldap: The Micro Integrator connects to a read-only LDAP. </li><li>read_write_ldap: The Micro Integrator connects to an LDAP with write permissions.</li><li>database: The Micro Integrator connects to an RDBMS user store.</li></ul> When you set this parameter, all of the remaining parameters (listed below) are inferred with default values. You can override the defaults by giving specific values to these parameters.

class

string

Default: org.wso2.micro.integrator.security.user.core.ldap.ReadOnlyLDAPUserStoreManager
Possible Values: -

The implementation class that enables the read-only LDAP user store. If the type parameter is not used, you need to specify a value for this parameter.

read_only

boolean Required

Default: true
Possible Values: "true" or "false"

Specifies whether or not the user store is read only.

connection_url

string Required

Default: ldap://localhost:10389
Possible Values: -

The URL for connecting to the LDAP. Override the default URL for your setup. If you are connecting over ldaps (secured LDAP), you need to import the certificate of the user store to the truststore (wso2truststore.jks by default). See the instructions on how to add certificates to the truststore.

connection_name

string Required

Default: uid=admin,ou=system
Possible Values: -

The username used to connect to the user store and perform various operations. This user does not need to be an administrator in the user store. However, the user requires permission to read the user list and user attributes, and to perform search operations on the user store. The value you specify is used as the DN (Distinguish Name) attribute of the user who has sufficient permissions to perform operations on users and roles in LDAP.

connection_password

string Required

Default: admin

Password for the connection user name.

user_search_base

string

Default: ou=system
Possible Values: -

The DN of the context or object under which the user entries are stored in the user store. When the user store searches for users, it will start from this location of the directory.

user_name_attribute

string

Default: uid
Possible Values: -

The attribute used for uniquely identifying a user entry. Users can be authenticated using their email address, UID, etc. The name of the attribute is considered as the username. Note that the email address is considered as a special case in WSO2 products. Read more about using the email address as user name.

user_name_search_filter

string

Default: (&amp;(objectClass=person)(uid=?))
Possible Values: -

Filtering criteria used to search for a particular user entry.

user_name_list_filter

string

Default: (objectClass=person)
Possible Values: -

Filtering criteria for searching user entries in the user store. This query or filter is used when doing search operations on users with different search attributes. According to the default configuration, the search operation only provides the objects created from the person object class.

read_groups

boolean

Default: true
Possible Values: "true" or "false"

This indicates whether groups should be read from the user store. If this is set to 'false', none of the groups in the user store can be read, and the following group configurations are NOT mandatory: 'group_search_base', 'group_name_list_filter', or 'group_name_attribute'.

group_search_base

string

Default: ou=system
Possible Values: -

The DN of the context or object under which the group entries are stored in the user store. When the user store searches for groups, it will start from this location of the directory.

group_name_attribute

string

Default: cn
Possible Values: -

The attribute used for uniquely identifying a group entry. This attribute is to be treated as the group name.

group_name_search_filter

string

Default: (&amp;(objectClass=groupOfNames)(cn=?))
Possible Values: -

The filtering criteria used to search for a particular group entry.

group_name_list_filter

string

Default: (objectClass=groupOfNames)
Possible Values: -

The filtering criteria for searching group entries in the user store. This query or filter is used when doing search operations on groups with different search attributes.

membership_attribute

string

Default: member
Possible Values: -

Defines the attribute that contains the distinguished names (DN) of user objects that are in a group.

back_links_enabled

string

Default: member
Possible Values: -

Defines whether the backlink support is enabled.

username_java_regex

string

Default: [a-zA-Z0-9._\-|//]{3,30}$
Possible Values: -

The regular expression used by the back-end components for username validation. By default, a length of 3 to 30 allowed for strings with non-empty characters. You can provide ranges of alphabets, numbers, and also ranges of ASCII values in the RegEx properties.

rolename_java_regex

string

Default: [a-zA-Z0-9._\-|//]{3,30}$
Possible Values: -

The regular expression used by the back-end components for role name validation. By default, a length of 3 to 30 allowed for strings with non-empty characters. You can provide ranges of alphabets, numbers, and also ranges of ASCII values in the RegEx properties.

password_java_regex

string

Default: ^[\S]{5,30}$
Possible Values: -

The regular expression used by the back-end components for password validation. By default, a length of 3 to 30 allowed for strings with non-empty characters. You can provide ranges of alphabets, numbers, and also ranges of ASCII values in the RegEx properties.

scim_enabled

boolean

Default: true
Possible Values: "true" or "false"

The regular expression used by the back-end components for password validation. By default, a length of 3 to 30 allowed for strings with non-empty characters. You can provide ranges of alphabets, numbers, and also ranges of ASCII values in the RegEx properties.

password_hash_method

string

Default: PLAIN_TEXT
Possible Values: "SHA", "MD5", "PLAIN_TEXT"

Specifies the password hashing algorithm used for hashing the password before storing in the user store. You can use the SHA digest method (SHA-1, SHA-256), the MD 5 digest method, or plain text passwords.

multi_attribute_separator

string

Default: ,
Possible Values: -

This parameter is used to define a character to separate multiple attributes. This ensures that it will not appear as part of a claim value. Normally ',' is used to separate multiple attributes, but you can define ',,,', '...', or a similar character sequence.

max_user_name_list_length

integer

Default: 100
Possible Values: -

Controls the number of users listed in the user store. This is useful when you have a large number of users and you don't want to list them all. Setting this property to 0 displays all users. In some user stores, there are policies to limit the number of records that can be returned from the query. Setting the value to 0 will list the maximum results returned by the user store. To increase that value, you need to set it at the user store level. Active directory has the 'MaxPageSize' property with the default value set to 1000.

max_role_name_list_length

integer

Default: 100
Possible Values: -

Controls the number of roles listed in the user store. This is useful when you have a large number of roles and you don't want to list them all. Setting this property to 0 displays all roles. In some user stores, there are policies to limit the number of records that can be returned from the query. Setting the value to 0 will list the maximum results returned by the user store. To increase that value, you need to set it at the user store level. Active directory has the 'MaxPageSize' property with the default value set to 1000.

user_roles_cache_enabled

boolean

Default: true
Possible Values: "true" or "false"

This parameter indicates whether the list of roles for a user should be cached. Set this to 'false' if the user roles are changed by external means and the changes should be instantly reflected in the product instance.

connection_pooling_enabled

boolean

Default: true
Possible Values: "true" or "false"

Define whether LDAP connection pooling is enabled. The connection performance will improve when this parameter is enabled.

ldap_connection_timeout

integer

Default: 5000
Possible Values: -

This is the connection timeout period (in milliseconds) when the initial connection is created.

read_timeout

integer

Default: -
Possible Values: -

The value for this parameter is the read timeout in milliseconds for LDAP operations. If the LDAP provider cannot get an LDAP response within that period, it aborts the read attempt. The integer should be greater than zero. An integer less than or equal to zero means no read timeout is specified, which is equivalent to waiting for the response infinitely until it is received.

retry_attempts

integer

Default: -
Possible Values: -

Retry the authentication request if a timeout happened.

Database Connection

[[datasource]]
id = "WSO2_CARBON_DB"
url= "jdbc:h2:./repository/database/WSO2CARBON_DB;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=60000"
username="username"
password="password"
driver="org.h2.Driver"
pool_options.maxActive=50
pool_options.maxWait = 60000
pool_options.testOnBorrow = true
[[datasource]] Required

This configuration header is required for connecting to a database from the Micro Integrator. Databases are only required if you are connecting the Micro Integrator to an RDBMS user store.

id

string Required

Default: -
Possible Values: -

The name of the database.

url

string Required

Default: -
Possible Values: -

The connection URL for your database. Note that the URL depends on the type of database you use.

username

string Required

Default: -
Possible Values: -

The user name for connecting to the database.

password

string Required

Default: -
Possible Values: -

The password for connecting to the database.

driver

string Required

Default: -
Possible Values: -

The driver class of your database.

pool_options.maxActive

integer

Default: 50
Possible Values: -

The maximum number of active connections that can be allocated from this pool at the same time. If you set this value too low, the response times for some requests might slow down as they have to wait for connections to get free. A value too high might cause too much memory/resource utilization and the system may slow down or be unresponsive.

pool_options.maxWait

integer

Default: 60000
Possible Values: -

Maximum number of milliseconds that the pool waits (when there are no available connections) for a connection to be returned before throwing an exception.

pool_options.testOnBorrow

boolean

Default: true
Possible Values: "true" or "false"

Used to indicate if objects will be validated before being borrowed from the pool. If the object fails to validate, it will be dropped from the pool, and we will attempt to borrow another one.

pool_options.maxIdle

integer

Default: 8
Possible Values: -

The maximum number of connections that can remain idle in the pool, without extra ones being released. Default value is 8. Put a negative value for unlimited. Idle connections are checked periodically (if enabled) and connections that have been idle for longer than minEvictableIdleTimeMillis will be released.

pool_options.minIdle

integer

Default: 0
Possible Values: -

The minimum number of connections that can remain idle in the pool, without extra ones being created. The connection pool can shrink below this number if validation queries fail. Default value is 0.

pool_options.validationInterval

integer

Default: 30000
Possible Values: -

This parameter controls how frequently a given validation query is executed (time in milliseconds). The default value is 30000 (30 seconds). That is, if a connection is due for validation, but has been validated previously within this interval, it will not be validated again.

pool_options.validationQuery

string

Default: Null
Possible Values: -

The SQL query used to validate connections from this pool before returning them to the caller. If specified, this query does not have to return any data, it just can't throw an SQLException. The default value is null. Example values are SELECT 1(mysql), select 1 from dual(oracle), SELECT 1(MS Sql Server).

pool_options.MaxPermSize

string

Default: -
Possible Values: -

The memory size allocated for WSO2 Micro Integrator.

pool_options.removeAbandoned

boolean

Default: false
Possible Values: "true" or "false"

If this property is set to 'true', a connection is considered abandoned and eligible for removal if it has been in use for longer than the removeAbandonedTimeout value explained below.

pool_options.removeAbandonedTimeout

boolean

Default: false
Possible Values: "true" or "false"

The time in seconds that should pass before a connection that is in use can be removed. This is the time period after which the connection will be declared abandoned. This value should be set to the longest running query that the applications might have.

pool_options.logAbandoned

boolean

Default: false
Possible Values: "true" or "false"

Set this property to 'true' if you wish to log when the connection was abandoned. If this option is set to 'true', a stack trace is recorded during the dataSource.getConnection call and is printed when a connection is not returned.

pool_options.initialSize

integer

Default: 0
Possible Values: -

The initial number of connections created when the pool is started. Default value is 0.

pool_options.defaultTransactionIsolation

string

Default: TRANSACTION_NONE
Possible Values: "TRANSACTION_NONE", "TRANSACTION_UNKNOWN", "TRANSACTION_READ_COMMITTED", "TRANSACTION_READ_UNCOMMITTED", "TRANSACTION_REPEATABLE_READ", "TRANSACTION_SERIALIZABLE"

The default TransactionIsolation state of connections created by this pool.

pool_options.validationQueryTimeout

integer

Default: -1
Possible Values: -

The timeout in seconds before a connection validation queries fail. This works by calling java.sql.Statement.setQueryTimeout(seconds) on the statement that executes the validationQuery . The pool itself doesn't timeout the query. It is still up to the JDBC driver to enforce query timeouts. A value less than or equal to zero will disable this feature. The default value is -1.

pool_options.timeBetweenEvictionRunsMillis

integer

Default: 5000
Possible Values: -

The number of milliseconds to sleep between runs of the idle connection validation/cleaner thread. This value should not be set under 1 second. It dictates how often we check for idle, abandoned connections, and how often we validate idle connections. The default value is 5000 (5 seconds).

pool_options.numTestsPerEvictionRun

integer

Default: -
Possible Values: -

The number of objects to examine during each run of the idle object evictor thread.

pool_options.minEvictableIdleTimeMillis

integer

Default: 60000
Possible Values: -

The minimum amount of time an object may sit idle in the pool before it is eligible for eviction. The default value is 60000 (60 seconds).

pool_options.defaultCatalog

string

Default: -
Possible Values: -

The default catalog of connections created by this pool.

pool_options.validatorClassName

string

Default: -
Possible Values: -

The name of a class that implements the org.apache.tomcat.jdbc.pool.Validator interface and provides a no-arg constructor (may be implicit). If specified, the class will be used to create a Validator instance, which is then used instead of any validation query to validate connections. The default value is null. An example value is com.mycompany.project.SimpleValidator.

pool_options.connectionProperties

string

Default: Null
Possible Values: -

The connection properties that will be sent to our JDBC driver when establishing new connections. Format of the string must be [propertyName=property;]* NOTE - The 'user' and 'password' properties will be passed explicitly, so they do not need to be included here. The default value is null.

pool_options.initSQL

string

Default: -
Possible Values: -

The ability to run a SQL statement exactly once, when the connection is created.

pool_options.jdbcInterceptors

string

Default: -
Possible Values: -

Flexible and pluggable interceptors to create any customizations around the pool, the query execution and the result set handling.

pool_options.abandonWhenPercentageFull

integer

Default: 0
Possible Values: -

Connections that have been abandoned (timed out) wont get closed and reported up unless the number of connections in use are above the percentage defined by abandonWhenPercentageFull. The value should be between 0-100. The default value is 0, which implies that connections are eligible for closure as soon as removeAbandonedTimeout has been reached.

pool_options.maxAge

integer

Default: 0
Possible Values: -

Time in milliseconds to keep this connection. When a connection is returned to the pool, the pool will check to see if the now - time-when-connected > maxAge has been reached, and if so, it closes the connection rather than returning it to the pool. The default value is 0, which implies that connections will be left open and no age check will be done upon returning the connection to the pool.

pool_options.suspectTimeout

integer

Default: 0
Possible Values: -

Timeout value in seconds. Default value is 0. Similar to to the removeAbandonedTimeout value but instead of treating the connection as abandoned, and potentially closing the connection, this simply logs the warning if logAbandoned is set to true. If this value is equal or less than 0, no suspect checking will be performed. Suspect checking only takes place if the timeout value is larger than 0 and the connection was not abandoned or if abandon check is disabled. If a connection is suspect a WARN message gets logged and a JMX notification gets sent once.

Management API - JWT Handler

[management_api.jwt_token_security_handler]
enable = true
token_store_config.max_size= "200"
token_store_config.clean_up_interval= "600"
token_store_config.remove_oldest_token_on_overflow= "true"
token_config.expiry= "3600"
token_config.size= "2048"
[management_api.jwt_token_security_handler] Required

This configuration header is required for configuring the default JWT token store configurations of the Micro Integrator's Management API. Read more about securing the Management API.

enable

boolean

Default: true
Possible Values: "true" or "false"

Set this paramter to 'false' if you want to disable JWT authentication for the management API.

token_store_config.max_size

integer

Default: 200
Possible Values: -

Number of tokens stored in the in-memory token store. User can increase or decrease this value accordingly.

token_store_config.clean_up_interval

integer

Default: 600
Possible Values: -

Token cleanup will be handled through a seperate thread and the frequency of the token clean up can be configured from this setting. This will clean all the expired and revoked security tokens. The thread will run only when there are tokens in the store. If it is empty, the cleanup thread will automatically stop. Interval is specified in seconds.

token_store_config.remove_oldest_token_on_overflow

boolean

Default: true
Possible Values: "true" or "false"

If set to 'true', this will remove the oldest accessed token when the token store is full. If it is set to 'false', the user should either wait until other tokens expire or increase the token store max size accordingly.

token_config.expiry

integer

Default: 3600
Possible Values: -

This configures the expiry time of the token (specified in seconds).

token_config.size

integer

Default: 2048
Possible Values: -

Specifies the key size of the token.

Management API - Authorization Handler

[management_api.authorization_handler]
enable = false

[[management_api.authorization_handler.resources]]
path = "/users"

[[management_api.authorization_handler.resources]]
path = "/apis"
[management_api.authorization_handler] Required

This configuration header is required for disabling authorization for the Micro Integrator's Management API. Authorization only applies when an external user store is used. Read more about securing the Management API.

enable

boolean

Default: true
Possible Values: "true" or "false"

Set this paramter to 'false' if you want to disable authorization for the management API.

[[management_api.authorization_handler.resources]] Required

This configuration header is required for enabling authorization for additional resources (other than 'users') of the Micro Integrator's Management API. Read more about securing the Management API.

path

string

Default:
Possible Values: /resource_name

Use this parameter to specify the resources in the management API for which you want to enable authorization.

Management API - CORS

[management_api.cors]
enabled = true
allowed_origins = "*"
allowed_headers = "Authorization"
[management_api.cors] Required

This configuration header is required for configuring CORs for the Management API of the Micro Integrator. Read more about securing the Management API.

enabled

boolean

Default: true
Possible Values: -

Set this paramter to 'false' if you want to disable CORs for the Management API.

allowed_origins

string

Default: *
Possible Values: any string

Specify the allowed origins. By default '*' indicates that all origins are allowed.

allowed_headers

string

Default: Authorization
Possible Values: -

Specify the allowed authorization headers.

Message Builders (non-blocking mode)

[message_builders]
application_xml = "org.apache.axis2.builder.ApplicationXMLBuilder"
form_urlencoded = "org.apache.synapse.commons.builders.XFormURLEncodedBuilder"
multipart_form_data = "org.apache.axis2.builder.MultipartFormDataBuilder"
text_plain = "org.apache.axis2.format.PlainTextBuilder"
application_json = "org.wso2.micro.integrator.core.json.JsonStreamBuilder"
json_badgerfish = "org.apache.axis2.json.JSONBadgerfishOMBuilder"
text_javascript = "org.apache.axis2.json.JSONBuilder"
octet_stream =  "org.wso2.carbon.relay.BinaryRelayBuilder"
application_binary = "org.apache.axis2.format.BinaryBuilder"
[message_builders] Required

This configuration header is required for configuring the message builder implementation that is used to build messages that are received by the Micro Integrator in the default non-blocking mode. If you are using the Micro Integrator in blocking mode, see the message builder configurations for blocking mode.

application_xml

string

Default: org.apache.axis2.builder.ApplicationXMLBuilder
Possible Values: -

The message builder implementation that builds messages with the 'application_xml' content type. If required, you can change the default builder class.

form_urlencoded

string

Default: -
Possible Values: org.apache.synapse.commons.builders.XFormURLEncodedBuilder

The message builder implementation that builds messages with the 'form_urlencoded' content type. If required, you can change the default builder class.

multipart_form_data

string

Default: org.apache.axis2.builder.MultipartFormDataBuilder
Possible Values: -

The message builder implementation that builds messages with the 'multipart_form_data' content type. If required, you can change the default builder class.

text_plain

string

Default: org.apache.axis2.format.PlainTextBuilder
Possible Values: -

The message builder implementation that builds messages with the 'text_plain' content type. If required, you can change the default builder class.

application_json

string

Default: org.wso2.micro.integrator.core.json.JsonStreamBuilder
Possible Values: -

The message builder implementation that builds messages with the 'application_json' content type. If required, you can change the default builder class.

json_badgerfish

string

Default: org.apache.axis2.json.JSONBadgerfishOMBuilder
Possible Values: -

The message builder implementation that builds messages with the 'json_badgerfish' content type. If required, you can change the default builder class.

text_javascript

string

Default: org.apache.axis2.json.JSONBuilder
Possible Values: -

The message builder implementation that builds messages with the 'text_javascript' content type. If required, you can change the default builder class.

octet_stream

string

Default: org.wso2.carbon.relay.BinaryRelayBuilder
Possible Values: -

The message builder implementation that builds messages with the 'octet_stream' content type. If required, you can change the default builder class.

application_binary

string

Default: org.apache.axis2.format.BinaryBuilder
Possible Values: -

The message builder implementation that builds messages with the 'application_binary' content type. If required, you can change the default builder class.

Message Builders (blocking mode)

[blocking.message_builders]
application_xml = "org.apache.axis2.builder.ApplicationXMLBuilder"
form_urlencoded = "org.apache.synapse.commons.builders.XFormURLEncodedBuilder"
multipart_form_data = "org.apache.axis2.builder.MultipartFormDataBuilder"
text_plain = "org.apache.axis2.format.PlainTextBuilder"
application_json = "org.wso2.micro.integrator.core.json.JsonStreamBuilder"
json_badgerfish = "org.apache.axis2.json.JSONBadgerfishOMBuilder"
text_javascript = "org.apache.axis2.json.JSONBuilder"
octet_stream =  "org.wso2.carbon.relay.BinaryRelayBuilder"
application_binary = "org.apache.axis2.format.BinaryBuilder"
[blocking.message_builders] Required

This configuration header is required for configuring the message builder implementation that is used to build messages that are received by the Micro Integrator in blocking mode. You can use the same list of parameters that are available for message builders in non-blocking mode.

Message Formatters (non-blocking mode)

[message_formatters]
form_urlencoded =  "org.apache.synapse.commons.formatters.XFormURLEncodedFormatter"
multipart_form_data =  "org.apache.axis2.transport.http.MultipartFormDataFormatter"
application_xml = "org.apache.axis2.transport.http.ApplicationXMLFormatter"
text_xml = "org.apache.axis2.transport.http.SOAPMessageFormatter"
soap_xml = "org.apache.axis2.transport.http.SOAPMessageFormatter"
text_plain = "org.apache.axis2.format.PlainTextFormatter"
application_json =  "org.wso2.micro.integrator.core.json.JsonStreamFormatter"
json_badgerfish = "org.apache.axis2.json.JSONBadgerfishMessageFormatter"
text_javascript = "org.apache.axis2.json.JSONMessageFormatter"
octet_stream = "org.wso2.carbon.relay.ExpandingMessageFormatter"
application_binary =  "org.apache.axis2.format.BinaryFormatter"
[message_formatters] Required

This configuration header is required for configuring the message formatting implementation that is used for formatting messages that are sent out of the Micro Integrator in non-blocking mode. If you are using the Micro Integrator in blocking mode, see the message formatter configurations for blocking mode.

application_xml

string

Default: org.apache.axis2.transport.http.ApplicationXMLFormatter
Possible Values: -

The message formating implementation that formats messages with the 'application_xml' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.

form_urlencoded

string

Default: -
Possible Values: org.apache.synapse.commons.formatters.XFormURLEncodedFormatter

The message formating implementation that formats messages with the 'form_urlencoded' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.

multipart_form_data

string

Default: org.apache.axis2.transport.http.MultipartFormDataFormatter
Possible Values: -

The message formating implementation that formats messages with the 'multipart_form_data' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.

text_plain

string

Default: org.apache.axis2.format.PlainTextFormatter
Possible Values: -

The message formating implementation that formats messages with the 'text_plain' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.

application_json

string

Default: org.wso2.micro.integrator.core.json.JsonStreamFormatter
Possible Values: -

The message formating implementation that formats messages with the 'application_json' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.

json_badgerfish

string

Default: org.apache.axis2.json.JSONBadgerfishMessageFormatter
Possible Values: -

The message formating implementation that formats messages with the 'json_badgerfish' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.

text_javascript

string

Default: org.apache.axis2.json.JSONMessageFormatter
Possible Values: -

The message formating implementation that formats messages with the 'text_javascript' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.

octet_stream

string

Default: org.wso2.carbon.relay.ExpandingMessageFormatter
Possible Values: -

The message formatting implementation that formats messages with the 'octet_stream' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.

application_binary

string

Default: org.apache.axis2.format.BinaryFormatter
Possible Values: -

The message formating implementation that formats messages with the 'application_binary' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.

text_xml

string

Default: org.apache.axis2.transport.http.SOAPMessageFormatter
Possible Values: -

The message formating implementation that formats messages with the 'text_xml' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.

soap_xml

string

Default: org.apache.axis2.transport.http.SOAPMessageFormatter
Possible Values: -

The message formating implementation that formats messages with the 'soap_xml' content type before they are sent out of the Micro Integrator. If required, you can change the default formating class.

Message Formatters (blocking mode)

[blocking.message_formatters]
form_urlencoded =  "org.apache.synapse.commons.formatters.XFormURLEncodedFormatter"
multipart_form_data =  "org.apache.axis2.transport.http.MultipartFormDataFormatter"
application_xml = "org.apache.axis2.transport.http.ApplicationXMLFormatter"
text_xml = "org.apache.axis2.transport.http.SOAPMessageFormatter"
soap_xml = "org.apache.axis2.transport.http.SOAPMessageFormatter"
text_plain = "org.apache.axis2.format.PlainTextFormatter"
application_json =  "org.wso2.micro.integrator.core.json.JsonStreamFormatter"
json_badgerfish = "org.apache.axis2.json.JSONBadgerfishMessageFormatter"
text_javascript = "org.apache.axis2.json.JSONMessageFormatter"
octet_stream = "org.wso2.carbon.relay.ExpandingMessageFormatter"
application_binary =  "org.apache.axis2.format.BinaryFormatter"
[blocking.message_formatters] Required

This configuration header is required for configuring the message formatter implementations that are used to format messages that are sent out from the Micro Integrator in blocking mode. You can use the same list of parameters that are available for message formatters in non-blocking mode.

Custom Message Builders (non-blocking mode)

[[custom_message_builders]]
content_type = "application/json/badgerfish"
class = "org.apache.axis2.json.JSONBadgerfishOMBuilder"
[[custom_message_builders]] Required

This configuration header is required for configuring the custom message builder implementation class and the selected content types to which the builder should apply in non-blocking mode. See the instructions on configuring custom message builders and formatters.

content_type

string Required

Default: -
Possible Values: -

The content types to which the custom message builder implementation should apply. You can specify the list of content types as follows: application/json/badgerfish.

class

string Required

Default: -
Possible Values: -

The custom message builder implementation that should apply to the given content types.

Custom Message Builders (blocking mode)

[[blocking.custom_message_builders]]
content_type = "application/json/badgerfish"
class = "org.apache.axis2.json.JSONBadgerfishOMBuilder"
[[blocking.custom_message_builders]] Required

This configuration header is required for configuring the custom message builder implementation class and the selected content types to which the builder should apply in blocking mode. See the instructions on configuring custom message builders and formatters. You can use the same list of parameters that are available for custom message builders in non-blocking mode.

Custom Message Formatters (non-blocking mode)

[[custom_message_formatters]]
content_type = "application/json/badgerfish"
class = "org.apache.axis2.json.JSONBadgerfishMessageFormatter"
[[custom_message_formatters]] Required

This configuration header is required for configuring the custom message formatter implementation class and the selected content types to which the formatter should apply in non-blocking mode. See the instructions on configuring custom message builders and formatters.

content_type

string Required

Default: -
Possible Values: -

The content types to which the custom message formatter implementation should apply. You can specify the list of content types as follows: application/json/badgerfish.

class

string Required

Default: -
Possible Values: -

The custom message formatter implementation that should apply to the given content types.

Custom Message Formatters (blocking mode)

[[blocking.custom_message_formatters]]
content_type = "application/json/badgerfish"
class = "org.apache.axis2.json.JSONBadgerfishMessageFormatter"
[[blocking.custom_message_formatters]] Required

This configuration header is required for configuring the custom message formatter implementation class and the selected content types to which the formatter should apply in blocking mode. See the instructions on configuring custom message builders and formatters. You can use the same list of parameters that are available for custom message formatters in non-blocking mode.

Server Request Processor

[[server.get_request_processor]]
item = "swagger.yaml"
class = "org.wso2.micro.integrator.transport.handlers.requestprocessors.swagger.format.SwaggerYamlProcessor"

[[server.get_request_processor]]
item = "swagger.json"
class = "org.wso2.micro.integrator.transport.handlers.requestprocessors.swagger.format.SwaggerJsonProcessor"
[[server.get_request_processor]] Required

This configuration header is required for configuring the parameters that specify how special HTTP GET requests (such as '?wsdl', '?policy', etc.) are processed. This is an array-type header, which you can reuse depending on the number of processors you want to enable.

item

string Required

Default: "swagger.yaml" and "swagger.json"
Possible Values: -

The item repesents the first parameter in the query string (e.g. ?wsdl), which needs special processing.

class

string Required

Default: "org.wso2.micro.integrator.transport.handlers.requestprocessors.swagger.format.SwaggerYamlProcessor" and "org.wso2.micro.integrator.transport.handlers.requestprocessors.swagger.format.SwaggerYamlProcessor"
Possible Values: -

This is the class that implements the org.wso2.carbon.transport.HttpGetRequestProcessor processor. By default, the following two classes are used for handling the two default request items: org.wso2.micro.integrator.transport.handlers.requestprocessors.swagger.format.SwaggerYamlProcessor (for swagger.yaml) and org.wso2.micro.integrator.transport.handlers.requestprocessors.swagger.format.SwaggerYamlProcessor (for swagger.json).

HTTP/S transport (non-blocking mode)

[transport.http]
socket_timeout = "3m"
core_worker_pool_size = 400
max_worker_pool_size = 400
worker_pool_queue_length = -1
io_buffer_size = 16384
max_http_connection_per_host_port = 32767
preserve_http_user_agent = false
preserve_http_server_name = true
preserve_http_headers = ["Content-Type"]
disable_connection_keepalive = false
enable_message_size_validation = false
max_message_size_bytes = 81920
max_open_connections = -1
force_xml_validation = false
force_json_validation = false
listener.port = 8280    #inferred  default: 8280
listener.wsdl_epr_prefix ="$ref{server.hostname}"
listener.bind_address = "$ref{server.hostname}"
listener.secured_port = 8243
listener.secured_wsdl_epr_prefix = "$ref{server.hostname}"
listener.secured_bind_address = "$ref{server.hostname}"
listener.secured_protocols = "TLSv1,TLSv1.1,TLSv1.2"
listener.verify_client = "require"
listener.ssl_profile.file_path = "conf/sslprofiles/listenerprofiles.xml"
listener.ssl_profile.read_interval = "1h"
listener.preferred_ciphers = "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256"
listener.keystore.location ="$ref{keystore.tls.file_name}"
listener.keystore.type = "$ref{keystore.tls.type}"
listener.keystore.password = "$ref{keystore.tls.password}"
listener.keystore.key_password = "$ref{keystore.tls.key_password}"
listener.truststore.location = "$ref{truststore.file_name}"
listener.truststore.type = "$ref{truststore.type}"
listener.truststore.password = "$ref{truststore.password}"
sender.warn_on_http_500 = "*"
sender.proxy_host = "$ref{server.hostname}"
sender.proxy_port = 3128
sender.non_proxy_hosts = ["$ref{server.hostname}"]
sender.hostname_verifier = "AllowAll"
sender.keystore.location ="$ref{keystore.tls.file_name}"
sender.keystore.type = "$ref{keystore.tls.type}"
sender.keystore.password = "$ref{keystore.tls.password}"
sender.keystore.key_password = "$ref{keystore.tls.key_password}"
sender.truststore.location = "$ref{truststore.file_name}"
sender.truststore.type = "$ref{truststore.type}"
sender.truststore.password = "$ref{truststore.password}"
sender.ssl_profile.file_path = "conf/sslprofiles/senderprofiles.xml"
sender.ssl_profile.read_interval = "30s"
enable_message_size_validation = false
max_message_size_bytes = 2147483647
max_open_connections = -1
force_xml_validation = false
force_json_validation = false
[transport.http] Required

This configuration header is required for configuring the parameters that are used for tuning the default HTTP/S passthrough transport of the Micro Integrator in non-blocking mode.

socket_timeout

integer Required

Default: 180000
Possible Values: -

This is the maximum period of inactivity between two consecutive data packets, specified in milliseconds.

core_worker_pool_size

integer Required

Default: 400
Possible Values: -

The Micro Integrator uses a thread pool executor to create threads and to handle incoming requests. This parameter controls the number of core threads used by the executor pool. If you increase this parameter value, the number of requests received that can be processed by the integrator increases, hence, the throughput also increases. The nature of the integration scenario and the number of concurrent requests received by the integrator are the main factors that helps to determine this parameter.

max_worker_pool_size

integer Required

Default: 400
Possible Values: -

This is the maximum number of threads in the worker thread pool. Specifying a maximum limit avoids performance degradation that can occur due to context switching. If the specified value is reached, you will see the error 'SYSTEM ALERT - HttpServerWorker threads were in BLOCKED state during last minute'. This can occur due to an extraordinarily high number of requests sent at a time when all the threads in the pool are busy, and the maximum number of threads is already reached.

worker_pool_queue_length

integer Required

Default: -1
Possible Values: -

This defines the length of the queue that is used to hold runnable tasks to be executed by the worker pool. The thread pool starts queuing jobs when all the existing threads are busy, and the pool has reached the maximum number of threads. The value for this parameter should be -1 to use an unbound queue. If a bound queue is used and the queue gets filled to its capacity, any further attempts to submit jobs fail causing some messages to be dropped by Synapse.

io_buffer_size

integer Required

Default: 16384
Possible Values: -

This is the value of the memory buffer allocated when reading data into the memory from the underlying socket/file channels. You should leave this property set to the default value.

max_http_connection_per_host_port

integer Required

Default: 32767
Possible Values: -

This defines the maximum number of connections allowed per host port.

preserve_http_user_agent

boolean Required

Default: "true" or "false"
Possible Values: -

If this parameter is set to true, the user-agent HTTP header of messages passing through the integrator is preserved and printed in the outgoing message.

preserve_http_headers

string Required

Default: Content-Type
Possible Values: -

This parameter allows you to specify the header field/s of messages passing through the EI that need to be preserved and printed in the outgoing message such as Location, CommonsHTTPTransportSenderKeep-Alive, Date, Server, User-Agent, and Host. For example, http.headers.preserve = Location, Date, Server.

disable_connection_keepalive

boolean Required

Default: false
Possible Values: "true" or "false"

If this parameter is set to true, the HTTP connections with the back end service are closed soon after the request is served. It is recommended to set this property to false so that the integrator does not have to create a new connection every time it sends a request to a back-end service. However, you may need to close connections after they are used if the back-end service does not provide sufficient support for keep-alive connections.

listener.port

integer Required

Default: 8290
Possible Values: -

The port on which this transport receiver should listen for incoming messages.

listener.wsdl_epr_prefix

string Required

Default: -
Possible Values: -

A URL prefix which will be added to all service EPRs and EPRs in WSDLs etc.

listener.secured_port

integer Required

Default: 8253
Possible Values: -

The secured port on which this transport receiver should listen for incoming messages.

listener.keystore.location

string Required

Default: MI_HOME/repository/resources/security/wso2carbon.jks
Possible Values: -

The path to the keystore file that is used for securing the HTTP passthrough connection. By default, the keystore file of the primary keystore is enabled for this purpose.

listener.keystore.type

string Required

Default: JKS
Possible Values: "JKS" or "PKCS12"

The type of the keystore file. By default, the keystore type of the primary keystore is enabled for this purpose.

listener.keystore.password

string Required

Default: wso2carbon
Possible Values: -

The password of the keystore file that is used for securing the HTTP passthrough connection. This keystore password is used when accessing the keys in the keystore. By default, the keystore password of the primary keystore is enabled for this purpose.

listener.keystore.key_password

string Required

Default: wso2carbon
Possible Values: -

The password of the private key that is used for securing the HTTP passthrough connection. This keystore password is used when accessing the keys in the keystore. By default, the keystore password of the primary keystore is enabled for this purpose.

listener.truststore.location

string Required

Default: MI_HOME/repository/resources/security/wso2truststore.jks
Possible Values: -

The path to the keystore file that is used for storing the trusted digital certificates. By default, the product's trust store is configured for this purpose.

listener.truststore.type

string Required

Default: JKS
Possible Values: "JKS" or "PKCS12"

The type of the keystore file that is used as the trust store. By default, the product's trust store is configured for this purpose.

listener.truststore.password

string Required

Default: wso2carbon
Possible Values: -

The password of the keystore file that is used as the trust store. By default, the product's trust store is configured for this purpose.

sender.warn_on_http_500

string Required

Default: -
Possible Values: -

If the outgoing messages should be sent through an HTTP proxy server, use this parameter to specify the target proxy.

sender.proxy_host

string

Default: -
Possible Values: -

If the outgoing messages should be sent through an HTTP proxy server, use this parameter to specify the target proxy.

sender.proxy_port

integer

Default: -
Possible Values: -

The port through which the target proxy (specified by the 'sender.proxy_port' parameter) accepts HTTP traffic.

sender.proxy_username

string

Default: -
Possible Values: -

The username for authenticating the HTTP proxy server.

sender.proxy_password

string

Default: -
Possible Values: -

The password for authenticating the HTTP proxy server.

sender.secured_proxy_host

string

Default: -
Possible Values: -

If the outgoing messages should be sent through an HTTPS proxy server, use this parameter to specify the target proxy.

sender.secured_proxy_port

integer

Default: -
Possible Values: -

The port through which the target proxy (specified by the 'sender.secured_proxy_port' parameter) accepts HTTPS traffic.

sender.secured_proxy_username

string

Default: -
Possible Values: -

The username for authenticating the HTTPS proxy server.

sender.secured_proxy_password

string

Default: -
Possible Values: -

The password for authenticating the HTTPS proxy server.

sender.non_proxy_hosts

string Required

Default: -
Possible Values: -

The list of hosts to which the HTTP traffic should be sent directly without going through the proxy. When trying to add multiple hostnames along with an asterisk in order to define a set of sub-domains for non-proxy hosts, you need to add a period before the asterisk when configuring proxy server.

sender.hostname_verifier

string Required

Default: -
Possible Values: -

The list of hosts to which the HTTP traffic should be sent directly without going through the proxy. When trying to add multiple hostnames along with an asterisk in order to define a set of sub-domains for non-proxy hosts, you need to add a period before the asterisk when configuring proxy server.

sender.keystore.location

string Required

Default: MI_HOME/repository/resources/security/wso2carbon.jks
Possible Values: -

The path to the keystore file that is used for securing the HTTP passthrough connection. By default, the keystore file of the primary keystore is enabled for this purpose.

sender.keystore.type

string Required

Default: JKS
Possible Values: "JKS" or "PKCS12"

The type of the keystore file. By default, the keystore type of the primary keystore is enabled for this purpose.

sender.keystore.password

string Required

Default: wso2carbon
Possible Values: -

The password of the keystore file that is used for securing the HTTP passthrough connection. This keystore password is used when accessing the keys in the keystore. By default, the keystore password of the primary keystore is enabled for this purpose.

sender.keystore.key_password

string Required

Default: wso2carbon
Possible Values: -

The password of the private key that is used for securing the HTTP passthrough connection. This keystore password is used when accessing the keys in the keystore. By default, the keystore password of the primary keystore is enabled for this purpose.

sender.truststore.location

string Required

Default: MI_HOME/repository/resources/security/wso2truststore.jks
Possible Values: -

The path to the keystore file that is used for storing the trusted digital certificates. By default, the product's trust store is configured for this purpose.

sender.truststore.type

string Required

Default: JKS
Possible Values: "JKS" or "PKCS12"

The type of the keystore file that is used as the trust store. By default, the product's trust store is configured for this purpose.

sender.truststore.password

string Required

Default: wso2carbon
Possible Values: -

The password of the keystore file that is used as the trust store. By default, the product's trust store is configured for this purpose.

enable_message_size_validation

boolean

Default: false
Possible Values: "true" or "false"

If this property is enabled and the payload exceeds the size specified by the 'max_message_size_bytes' property, the Micro Integrator will discontinue reading the input stream. This will prevent out-of-memory issues.

max_message_size_bytes

integer

Default: 2147483647
Possible Values: -

If the size of the payload exceeds this value, the Micro Integrator will discontinue reading the input stream. Only applicable if the ‘enable_message_size_validation’ property is enabled.

max_open_connections

integer

Default: -1
Possible Values: -

This property allows connection throttling to restrict the number of simultaneously opened connections. That is, simultaneously opened incoming connections will be restricted by the specified value. To disable throttling, delete the ‘max_open_connections’ setting or set it to -1.

force_xml_validation

boolean

Default: false
Possible Values: "true" or "false"

This property validates badly formed XML messages by building the whole XML document. This validation ensures that erroneous XML messages will trigger the fault sequence in the Micro Integrator.

force_json_validation

boolean

Default: false
Possible Values: "true" or "false"

This property validates JSON messages by parsing the input message. This validation ensures that erroneous JSON messages will trigger the fault sequence in the Micro Integrator.

HTTP/S Transport (blocking mode)

[transport.blocking.http]

listener.enable = true
listener.port = 8200
listener.hostname = ""
listener.origin_server = ""
listener.request_timeout = ""
listener.request_tcp_no_delay = ""
listener.request_core_thread_pool_size = ""
listener.request_max_thread_pool_size = ""
listener.thread_keepalive_time = ""
listener.thread_keepalive_time_unit = ""

sender.enable = true
sender.enable_client_caching = true
sender.transfer_encoding = ""
sender.default_connections_per_host = 200
sender.omit_soap12_action = true
sender.so_timeout = 60000
[transport.blocking.http] Required

This configuration header is required for configuring the parameters that are used for configuring the default HTTP/S passthrough transport in blocking mode.

listener.enable

boolean Required

Default: true
Possible Values: "true" or "false"

This parameter is used for enabling the HTTP passthrough transport listener in blocking mode.

listener.port

integer Required

Default: 8200
Possible Values: -

The port on which this transport receiver should listen for incoming messages.

listener.hostname

string

Default: -

listener.origin_server

string

Default: -

listener.request_timeout

string

Default: -

listener.request_tcp_no_delay

string

Default: -

listener.request_core_thread_pool_size

string

Default: -

listener.request_max_thread_pool_size

string

Default: -

listener.thread_keepalive_time

string

Default: -

listener.thread_keepalive_time_unit

string

Default: -

sender.enabled

boolean Required

Default: true
Possible Values: "true" or "false"

This parameter is used for enabling the HTTP passthrough transport sender in blocking mode.

sender.enable_client_caching

boolean Required

Default: -
Possible Values: "true" or "false"

This parameter is used to specify whether the HTTP client should save cache entries and the cached responses in the JVM memory or not.

sender.transfer_encoding

string Required

Default: -
Possible Values: "chunked" or "true"

This parameter enables you to specify whether the data sent should be chunked. It can be used instead of the Content-Length header if you want to upload data without having to know the amount of data to be uploaded in advance.

sender.default_connections_per_host

integer Required

Default: -
Possible Values: -

The maximum number of connections that will be created per host server by the client. If the backend server is slow, the connections in use at a given time will take a long time to be released and added back to the connection pool. As a result, connections may not be available for some requests. In such situations, it is recommended to increase the value for this parameter.

sender.omit_soap12_action

boolean Required

Default: -
Possible Values: "true" or "false"

If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages.

sender.so_timeout

integer Required

Default: -
Possible Values: 60000

If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages.

sender.proxy_host

string

Default: -
Possible Values: -

If the outgoing messages should be sent through an HTTP proxy server (in blocking mode), use this parameter to specify the target proxy.

sender.proxy_port

integer

Default: -
Possible Values: -

The port through which the target proxy (specified by the 'sender.proxy_host' parameter) accepts HTTP traffic (in blocking mode).

sender.proxy_username

string

Default: -
Possible Values: -

The username for authenticating the proxy server.

sender.proxy_password

string

Default: -
Possible Values: -

The password for authenticating the proxy server.

HTTP proxy profile

[[transport.http.proxy_profile]]
target_hosts = ["example.com", ".*.sample.com"]
proxy_host = "localhost"
proxy_port = "3128"
proxy_username = "squidUser"
proxy_password = "password"
bypass_hosts = ["xxx.sample.com"]
[[transport.http.proxy_profile]] Required

This configuration header is required for configuring HTTP proxy profiles when you use multiple proxy servers to route messages to different endpoints.

target_hosts

string Required

Default: -
Possible Values: "*", "example.com", "<any-ip-address>"

A host name or a comma-separated list of host names for a target endpoint. Host names can be specified as regular expressions that match a pattern. When asterisks (*) is specified as the target hostname, it will match all the hosts in the profile.

proxy_host

string Required

Default: -
Possible Values: -

The host name of the proxy server.

proxy_port

integer Required

Default: -
Possible Values: -

The port number of the proxy server.

proxy_username

string Required

Default: -
Possible Values: -

The password for authenticating the proxy server.

bypass_hosts

string Required

Default: -
Possible Values: -

A host name or a comma-separated list of host names that should not be sent via the proxy server. For example, if you want all requests sent to *.sample.com to be sent via a proxy server, while you need to directly send requests to hello.sample.com (without going through the proxy server), you can add hello.sample.com as a bypass host name.

HTTP secured proxy profile

[[transport.http.secured_proxy_profile]]
target_hosts = ["example.com", ".*.sample.com"]
proxy_host = "localhost"
proxy_port = "3128"
proxy_username = "squidUser"
proxy_password = "password"
bypass_hosts = ["xxx.sample.com"]
[[transport.http.secured_proxy_profile]] Required

This configuration header is required for configuring secured HTTP proxy profiles when you use multiple (secured) proxy servers to route messages to different endpoints.

target_hosts

string Required

Default: -
Possible Values: "*", "example.com", "<any-ip-address>"

A host name or a comma-separated list of host names for a target endpoint. Host names can be specified as regular expressions that match a pattern. When asterisks (*) is specified as the target hostname, it will match all the hosts in the profile.

proxy_host

string Required

Default: -
Possible Values: -

The host name of the proxy server.

proxy_port

integer Required

Default: -
Possible Values: -

The port number of the proxy server.

proxy_username

string Required

Default: -
Possible Values: -

The password for authenticating the proxy server.

proxy_password

string Required

Default: -
Possible Values: -

The password for authenticating the proxy server.

bypass_hosts

string Required

Default: -
Possible Values: -

A host name or a comma-separated list of host names that should not be sent via the proxy server. For example, if you want all requests sent to *.sample.com to be sent via a proxy server, while you need to directly send requests to hello.sample.com (without going through the proxy server), you can add hello.sample.com as a bypass host name.

VFS Transport

[transport.vfs]

listener.enable = true
listener.keystore.file_name = "$ref{keystore.tls.file_name}" 
listener.keystore.type = "$ref{keystore.tls.type}"
listener.keystore.password = "$ref{keystore.tls.password}"
listener.keystore.key_password = "$ref{keystore.tls.key_password}"
listener.keystore.alias = "$ref{keystore.tls.alias}"

listener.parameter.customParameter = ""

sender.enable = true
sender.parameter.customParameter = ""
[transport.vfs] Required

This configuration header is required for configuring how the Micro Integrator communicates through the VFS transport.

listener.enabled

boolean Required

Default: true
Possible Values: "true" or "false"

The parameter for enabling the VFS transport listener.

listener.keystore.file_name

string

Default: MI_HOME/repository/resources/security/wso2carbon.jks
Possible Values: -

The path to the keystore file that is used for securing a VFS connection. By default, the keystore file of the primary keystore is enabled for this purpose.

listener.keystore.type

string

Default: JKS
Possible Values: "JKS" or "PKCS12"

The type of the keystore file. By default, the keystore type of the primary keystore is enabled for this purpose.

listener.keystore.password

string

Default: wso2carbon
Possible Values: -

The password of the keystore file that is used for securing a VFS connection. This keystore password is used when accessing the keys in the keystore. By default, the keystore password of the primary keystore is enabled for this purpose.

listener.keystore.alias

string

Default: wso2carbon
Possible Values: -

The alias of the public key corresponding to the private key that is included in the keystore. The public key is used for encrypting data in the Micro Integrator server, which only the corresponding private key can decrypt. The public key is embedded in a digital certificate, and this certificate can be shared over the internet by storing it in a separate trust store file. By default, the alias of the primary keystore is enabled for this purpose.

listener.keystore.key_password

string

Default: wso2carbon
Possible Values: -

The password of the private key that is included in the keystore. The private key is used to decrypt the data that has been encrypted using the keystore's public key. By default, the public key password of the primary keystore is enabled for this purpose.

sender.enabled

boolean Required

Default: wso2carbon
Possible Values: "true" or "false"

The parameter for enabling the VFS transport sender.

MAIL Transport Listener (non-blocking mode)

[transport.vfs]

listener.enable = true
listener.keystore.file_name = "$ref{keystore.tls.file_name}" 
listener.keystore.type = "$ref{keystore.tls.type}"
listener.keystore.password = "$ref{keystore.tls.password}"
listener.keystore.key_password = "$ref{keystore.tls.key_password}"
listener.keystore.alias = "$ref{keystore.tls.alias}"

listener.parameter.customParameter = ""

sender.enable = true
sender.parameter.customParameter = ""
[[transport.http.secured_proxy_profile]] Required

This configuration header is required for configuring the MailTo transport listener implementation of the Micro Integrator in non-blocking mode. Note that the list of parameters given below can be used for the non-blocking transport listener as well as the blocking transport listener.

listener.enabled

boolean Required

Default: true
Possible Values: "true" or "false"

The parameter for enabling the VFS transport listener.

listener.keystore.file_name

string

Default: MI_HOME/repository/resources/security/wso2carbon.jks
Possible Values: -

The path to the keystore file that is used for securing a VFS connection. By default, the keystore file of the primary keystore is enabled for this purpose.

listener.keystore.type

string

Default: JKS
Possible Values: "JKS" or "PKCS12"

The type of the keystore file. By default, the keystore type of the primary keystore is enabled for this purpose.

listener.keystore.password

string

Default: wso2carbon
Possible Values: -

The password of the keystore file that is used for securing a VFS connection. This keystore password is used when accessing the keys in the keystore. By default, the keystore password of the primary keystore is enabled for this purpose.

listener.keystore.alias

string

Default: wso2carbon
Possible Values: -

The alias of the public key corresponding to the private key that is included in the keystore. The public key is used for encrypting data in the Micro Integrator server, which only the corresponding private key can decrypt. The public key is embedded in a digital certificate, and this certificate can be shared over the internet by storing it in a separate trust store file. By default, the alias of the primary keystore is enabled for this purpose.

listener.keystore.key_password

string

Default: wso2carbon
Possible Values: -

The password of the private key that is included in the keystore. The private key is used to decrypt the data that has been encrypted using the keystore's public key. By default, the public key password of the primary keystore is enabled for this purpose.

sender.enabled

boolean Required

Default: wso2carbon
Possible Values: "true" or "false"

The parameter for enabling the VFS transport sender.

MAIL Transport Listener (non-blocking mode)

[transport.mail.listener]
enable = true   
name = "mailto"
parameter.customParameter = ""
[transport.mail.listener] Required

This configuration header is required for configuring the MailTo transport listener implementation of the Micro Integrator in non-blocking mode. Note that the list of parameters given below can be used for the non-blocking transport listener as well as the blocking transport listener.

enabled

boolean Required

Default: false
Possible Values: "true" or "false"

The parameter for enabling the MAIL transport listener in the Micro Integrator.

name

string Required

Default: -
Possible Values: -

The name of the transport receiver.

MAIL Transport Listener (non-blocking mode)

[transport.blocking.mail.listener]
enable = true
name = "mailto"
parameter.customParameter = "value"
[transport.blocking.mail.listener] Required

This configuration header groups the parameters that are used to configure the MailTo transport listener in blocking mode. You can use the same list of parameters that are available for the non-blocking mail sender.

MAIL Transport Sender (non-blocking mode)

[[transport.mail.sender]]
name = "mailto"
parameter.hostname = "smtp.gmail.com"
parameter.port = "587"
parameter.enable_tls = true
parameter.auth = true
parameter.username = "demo_user"
parameter.password = "mailpassword"
parameter.from = "[email protected]"
[[transport.mail.sender]] Required

This configuration header groups the parameters that are used to configure the MailTo transport sender implementation of the Micro Integrator in non-blocking mode. Note that the list of parameters given below can be used for the non-blocking transport sender as well as the blocking transport sender.

name

string Required

Default: mailto
Possible Values: -

The parameter for enabling the MAIL transport sender in the Micro Integrator.

parameter.hostname

string Required

Default: smtp.gmail.com
Possible Values: -

The mail server that serves outgoing mails from the Micro Integrator.

parameter.port

integer Required

Default: 587
Possible Values: -

The port of the mail server.

parameter.enable_tls

boolean Required

Default: false
Possible Values: "true" or "false"

This parameter specifies whether TLS is enabled for the MailTo transport.

parameter.username

string Required

Default: demo_user
Possible Values: -

The user name of the email account (mail sender). Note that in some email service providers, the user name is the same as the email address specified for 'parameter.from'.

parameter.password

string Required

Default: mailpassword
Possible Values: -

The password of the email account (mail sender).

parameter.from

string Required

Possible Values: -

The email address from which mails will be sent.

MAIL Transport Sender (blocking mode)

[transport.blocking.mail.listener]
enable = true
name = "mailto"
parameter.customParameter = "value"
[[transport.blocking.mail.sender]] Required

This configuration header groups the parameters that are used to configure the MailTo transport sender in blocking mode. You can use the same list of parameters that are available for the non-blocking mail sender.

JMS Transport Listener (non-blocking mode)

[[transport.jms.listener]]

name = "myTopicListener"
parameter.initial_naming_factory = "org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory"
parameter.broker_name = "artemis"
parameter.provider_url = "tcp://localhost:61616"
parameter.connection_factory_name = "TopicConnectionFactory"
parameter.connection_factory_type = "topic"
parameter.cache_level = "consumer"

parameter.naming_security_principal = ""
parameter.naming_security_credential = ""
parameter.transactionality = ""
parameter.transaction_jndi_name = ""
parameter.cache_user_transaction = true
parameter.session_transaction = true
parameter.session_acknowledgement = "AUTO_ACKNOWLEDGE"
parameter.jms_spec_version = "1.1"
parameter.username = ""
parameter.password = ""
parameter.destination = ""
parameter.destination_type = "queue"
parameter.default_reply_destination = ""
parameter.default_destination_type = "queue"
parameter.message_selector = ""
parameter.subscription_durable = false
parameter.durable_subscriber_client_id = ""
parameter.durable_subscriber_name = ""
parameter.pub_sub_local = false
parameter.receive_timeout = "1000"
parameter.concurrent_consumer = 1
parameter.max_concurrent_consumer = 1
parameter.idle_task_limit = 10
parameter.max_message_per_task = -1
parameter.initial_reconnection_duration = "10000"
parameter.reconnect_progress_factor = 2
parameter.max_reconnect_duration = "3600000"
parameter.reconnect_interval = "3600000"
parameter.max_jsm_connection = 10
parameter.max_consumer_error_retrieve_before_delay = 20
parameter.consume_error_delay = "100"         
parameter.consume_error_progression = "2.0"
[[transport.jms.listener]] Required

This configuration header groups the parameters that are used to configure the JMS transport listener implementation of the Micro Integrator in non-blocking mode. Note that the list of parameters given below can be used for the non-blocking transport listener as well as the blocking transport listener.

name

string Required

Default: -
Possible Values: -

The user-defined name of the JMS listener.

parameter.initial_naming_factory

string Required

Default: -
Possible Values: -

JNDI initial context factory class. The class must implement the java.naming.spi.InitialContextFactory interface.

parameter.provider_url

string Required

Default: -
Possible Values: -

URL of the JNDI provider.

parameter.connection_factory_name

string Required

Default: -
Possible Values: -

The JNDI name of the connection factory.

parameter.cache_level

string

Default: consumer
Possible Values: consumer

The cache level that should apply when JMS objects startup. When the Micro Integrator produces JMS messages, you need to specify this cache level in the deployment.toml file. If the Micro Integrator works as JMS listener, you need to specify the JMS cache level in the proxy service. See the list of service-level JMS parameters.

parameter.naming_security_principal

string

Default: -
Possible Values: -

The JNDI Username.

parameter.naming_security_credential

string

Default: -
Possible Values: -

The JNDI password.

parameter.transactionality

string

Default: -
Possible Values: -

Preferred mode of transactionality. <b>Note</b> that JMS transactions only works with either the Callout mediator or the Call mediator in blocking mode.

parameter.transaction_jndi_name

string

Default: -
Possible Values: -

JNDI name to be used to require user transaction.

parameter.cache_user_transaction

boolean

Default: false
Possible Values: "true" or "false"

Specifies whether or not caching should be enabled for user transactions.

parameter.session_transaction

boolean

Default: false
Possible Values: "true" or "false"

Specifies whether or not the JMS session should be transacted.

parameter.session_acknowledgement

string

Default: AUTO_ACKNOWLEDGE
Possible Values: -

JMS session acknowledgment mode.

parameter.jms_spec_version

string

Default: 1.1
Possible Values: -

JMS API version.

parameter.username

string Required

Default: -
Possible Values: -

The JMS connection username.

parameter.password

string Required

Default: -
Possible Values: -

The JMS connection password.

parameter.destination

string

Default: -
Possible Values: -

The JNDI name of the destination.

parameter.destination_type

string

Default: -
Possible Values: "queue" or "topic"

The type of the destination.

parameter.message_selector

string

Default: -
Possible Values: -

The message selector implementation.

parameter.subscription_durable

boolean

Default: -
Possible Values: "true" or "false"

Specifies whether or not the connection factory is subscription durable.

parameter.durable_subscriber_client_id

string

Default: -
Possible Values: -

The ClientId parameter when using durable subscriptions.

parameter.durable_subscriber_name

string Required

Default: -
Possible Values: -

The name of the durable subscriber.

parameter.pub_sub_local

boolean

Default: -
Possible Values: "true" or "false"

Specifies whether or not the messages should should be published by the same connection in which the messages were received.

parameter.receive_timeout

integer

Default: 1000
Possible Values: -

Time to wait for a JMS message during polling. Set this parameter value to a negative integer to wait indefinitely. Set to zero to prevent waiting.

parameter.concurrent_consumer

integer

Default: 1
Possible Values: -

The number of concurrent threads to be started to consume messages when polling.

parameter.max_concurrent_consumer

integer

Default: 1
Possible Values: -

The maximum number of concurrent threads to use during polling.

parameter.idle_task_limit

integer

Default: 10
Possible Values: -

The number of idle runs per thread before it dies out.

parameter.max_message_per_task

integer

Default: -1
Possible Values: -

The maximum number of successful message receipts per thread.

parameter.initial_reconnection_duration

integer

Default: 10000
Possible Values: -

The initial reconnection attempts duration in milliseconds.

parameter.reconnect_progress_factor

integer

Default: 2
Possible Values: -

The factor by which the reconnection duration will be increased.

parameter.max_reconnect_duration

integer

Default: 3600000
Possible Values: -

The maximum reconnection duration in milliseconds.

parameter.reconnect_interval

integer

Default: 3600000
Possible Values: -

The reconnection interval in milliseconds.

parameter.max_jsm_connection

integer

Default: 10
Possible Values: -

The maximum cached JMS connections in the producer level.

parameter.max_consumer_error_retrieve_before_delay

integer

Default: 20
Possible Values: -

The number of retries on consume errors before sleep delay becomes effective.

parameter.consume_error_delay

integer

Default: 100
Possible Values: -

The sleep delay when a consume error is encountered (in milliseconds).

parameter.consume_error_progression

integer

Default: 2.0
Possible Values: -

The factor by which the consume error retry sleep will be increased.

JMS Transport Listener (blocking mode)

[[transport.blocking.jms.listener]]

name = "myTopicListener"
parameter.initial_naming_factory = "org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory"
parameter.provider_url = "tcp://localhost:61616"
parameter.connection_factory_name = "TopicConnectionFactory"
parameter.connection_factory_type = "topic"
parameter.cache_level = "consumer"

parameter.naming_security_principal = ""
parameter.naming_security_credential = ""
parameter.transactionality = ""
parameter.transaction_jndi_name = ""
parameter.cache_user_transaction = true
parameter.session_transaction = true
parameter.session_acknowledgement = "AUTO_ACKNOWLEDGE"
parameter.jms_spec_version = "1.1"
parameter.username = ""
parameter.password = ""
parameter.destination = ""
parameter.destination_type = "queue"
parameter.default_reply_destination = ""
parameter.default_destination_type = "queue"
parameter.message_selector = ""
parameter.subscription_durable = false
parameter.durable_subscriber_client_id = ""
parameter.durable_subscriber_name = ""
parameter.pub_sub_local = false
parameter.receive_timeout = "1000"
parameter.concurrent_consumer = 1
parameter.max_concurrent_consumer = 1
parameter.idle_task_limit = 10
parameter.max_message_per_task = -1
parameter.initial_reconnection_duration = "10000"
parameter.reconnect_progress_factor = 2
parameter.max_reconnect_duration = "3600000"
parameter.reconnect_interval = "3600000"
parameter.max_jsm_connection = 10
parameter.max_consumer_error_retrieve_before_delay = 20
parameter.consume_error_delay = "100"        
parameter.consume_error_progression = "2.0"
[[transport.blocking.jms.listener]] Required

This configuration header groups the parameters that are used to configure the JMS transport listener in blocking mode. You can use the same list of parameters that are available for the non-blocking JMS listener.

JMS Transport Sender (non-blocking mode)

[[transport.jms.sender]]

name = "myTopicSender"
parameter.initial_naming_factory = "org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory"
parameter.broker_name = "artemis"
parameter.provider_url = "tcp://localhost:61616"
parameter.connection_factory_name = "TopicConnectionFactory"
parameter.connection_factory_type = "topic"
parameter.cache_level = "producer"

parameter.naming_security_principal = ""
parameter.naming_security_credential = ""
parameter.transactionality = ""
parameter.transaction_jndi_name = ""
parameter.cache_user_transaction = true
parameter.session_transaction = true
parameter.session_acknowledgement = "AUTO_ACKNOWLEDGE"
parameter.jms_spec_version = "1.1"
parameter.username = ""
parameter.password = ""
parameter.destination = ""
parameter.destination_type = "queue"
parameter.default_reply_destination = ""
parameter.default_destination_type = "queue"
parameter.message_selector = ""
parameter.subscription_durable = false
parameter.durable_subscriber_client_id = ""
parameter.durable_subscriber_name = ""
parameter.pub_sub_local = false
parameter.receive_timeout = "1000"
parameter.concurrent_consumer = 1
parameter.max_concurrent_consumer = 1
parameter.idle_task_limit = 10
parameter.max_message_per_task = -1
parameter.initial_reconnection_duration = "10000"
parameter.reconnect_progress_factor = 2
parameter.max_reconnect_duration = "3600000"
parameter.reconnect_interval = "3600000"
parameter.max_jsm_connection = 10
parameter.max_consumer_error_retrieve_before_delay = 20
parameter.consume_error_delay = "100"
parameter.consume_error_progression = "2.0"

parameter.vender_class_loader = false
[[transport.jms.sender]] Required

This configuration header groups the parameters that are used to configure the JMS transport sender implementation of the Micro Integrator in non-blocking mode.

name

string Required

Default: -
Possible Values: -

The user-defined name of the JMS sender.

parameter.initial_naming_factory

string Required

Default: -
Possible Values: -

JNDI initial context factory class. The class must implement the java.naming.spi.InitialContextFactory interface.

parameter.broker_name

string Required

Default: -
Possible Values: -

The name of the JMS broker.

parameter.provider_url

string Required

Default: -
Possible Values: -

URL of the JNDI provider.

parameter.connection_factory_name

string Required

Default: -
Possible Values: -

The JNDI name of the connection factory.

parameter.cache_level

string

Default: producer
Possible Values: producer

The cache level that should apply when JMS objects startup. When the Micro Integrator produces JMS messages, you need to specify this cache level in the deployment.toml file. If the Micro Integrator works as JMS listener, you need to specify the JMS cache level in the proxy service. See the list of service-level JMS parameters.

parameter.naming_security_principal

string

Default: -
Possible Values: -

The JNDI Username.

parameter.naming_security_credential

string

Default: -
Possible Values: -

The JNDI password.

parameter.transactionality

string

Default: -
Possible Values: -

Preferred mode of transactionality. <b>Note</b> that JMS transactions only works with either the Callout mediator or the Call mediator in blocking mode.

parameter.transaction_jndi_name

string Required

Default: -
Possible Values: -

JNDI name to be used to require user transaction.

parameter.cache_user_transaction

boolean

Default: false
Possible Values: "true" or "false"

Specifies whether or not caching should be enabled for user transactions.

parameter.session_transaction

boolean Required

Default: false
Possible Values: "true" or "false"

Specifies whether or not the JMS session should be transacted.

parameter.session_acknowledgement

string

Default: AUTO_ACKNOWLEDGE
Possible Values: -

JMS session acknowledgment mode.

parameter.jms_spec_version

string

Default: 1.1
Possible Values: -

JMS API version.

parameter.username

string Required

Default: -
Possible Values: -

The JMS connection username.

parameter.password

string Required

Default: -
Possible Values: -

The JMS connection password.

parameter.destination

string

Default: -
Possible Values: -

The JNDI name of the destination.

parameter.destination_type

string

Default: -
Possible Values: "queue" or "topic"

The type of the destination.

parameter.default_reply_destination

string

Default: -
Possible Values: -

The JNDI name of the default reply destination.

parameter.default_destination_type

string

Default: -
Possible Values: "queue" or "topic"

The type of the reply destination.

parameter.message_selector

string

Default: -
Possible Values: -

The message selector implementation.

parameter.subscription_durable

boolean

Default: -
Possible Values: "true" or "false"

Specifies whether or not the connection factory is subscription durable.

parameter.durable_subscriber_client_id

string

Default: -
Possible Values: -

The ClientId parameter when using durable subscriptions.

parameter.durable_subscriber_name

string Required

Default: -
Possible Values: -

The name of the durable subscriber.

parameter.pub_sub_local

boolean Required

Default: false
Possible Values: "true" or "false"

Specifies whether or not the messages should should be published by the same connection in which the messages were received.

parameter.receive_timeout

integer

Default: 1000
Possible Values: -

Time to wait for a JMS message during polling. Set this parameter value to a negative integer to wait indefinitely. Set to zero to prevent waiting.

parameter.concurrent_consumer

integer

Default: 1
Possible Values: -

The number of concurrent threads to be started to consume messages when polling.

parameter.max_concurrent_consumer

integer

Default: 1
Possible Values: -

The maximum number of concurrent threads to use during polling.

parameter.idle_task_limit

integer

Default: 10
Possible Values: -

The number of idle runs per thread before it dies out.

parameter.max_message_per_task

integer

Default: -1
Possible Values: -

The maximum number of successful message receipts per thread.

parameter.initial_reconnection_duration

integer

Default: 10000
Possible Values: -

The initial reconnection attempts duration in milliseconds.

parameter.reconnect_progress_factor

integer

Default: 2
Possible Values: -

The factor by which the reconnection duration will be increased.

parameter.max_reconnect_duration

integer

Default: 3600000
Possible Values: -

The maximum reconnection duration in milliseconds.

parameter.reconnect_interval

integer

Default: 3600000
Possible Values: -

The reconnection interval in milliseconds.

parameter.max_jsm_connection

integer

Default: 10
Possible Values: -

The maximum cached JMS connections in the producer level.

parameter.max_consumer_error_retrieve_before_delay

integer

Default: 20
Possible Values: -

The number of retries on consume errors before sleep delay becomes effective.

parameter.consume_error_delay

integer

Default: 100
Possible Values: -

The sleep delay when a consume error is encountered (in milliseconds).

parameter.consume_error_progression

integer

Default: 2.0
Possible Values: -

The factor by which the consume error retry sleep will be increased.

JMS Transport Sender (blocking mode)

[[transport.blocking.jms.sender]]

name = "myTopicSender"
parameter.initial_naming_factory = "org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory"
parameter.provider_url = "tcp://localhost:61616"
parameter.connection_factory_name = "TopicConnectionFactory"
parameter.connection_factory_type = "topic"
parameter.cache_level = "producer"

parameter.naming_security_principal = ""
parameter.naming_security_credential = ""
parameter.transactionality = ""
parameter.transaction_jndi_name = ""
parameter.cache_user_transaction = true
parameter.session_transaction = true
parameter.session_acknowledgement = "AUTO_ACKNOWLEDGE"
parameter.jms_spec_version = "1.1"
parameter.username = ""
parameter.password = ""
parameter.destination = ""
parameter.destination_type = "queue"
parameter.default_reply_destination = ""
parameter.default_destination_type = "queue"
parameter.message_selector = ""
parameter.subscription_durable = false
parameter.durable_subscriber_client_id = ""
parameter.durable_subscriber_name = ""
parameter.pub_sub_local = false
parameter.receive_timeout = "1000"
parameter.concurrent_consumer = 1
parameter.max_concurrent_consumer = 1
parameter.idle_task_limit = 10
parameter.max_message_per_task = -1
parameter.initial_reconnection_duration = "10000"
parameter.reconnect_progress_factor = 2
parameter.max_reconnect_duration = "3600000"
parameter.reconnect_interval = "3600000"
parameter.max_jsm_connection = 10
parameter.max_consumer_error_retrieve_before_delay = 20
parameter.consume_error_delay = "100"
parameter.consume_error_progression = "2.0"
parameter.vender_class_loader = false
[[transport.blocking.jms.sender]] Required

This configuration header groups the parameters that are used to configure the JMS transport sender in blocking mode. You can use the same list of parameters that are available for the non-blocking JMS sender.

JNDI Connection Factories

[transport.jndi.connection_factories]
QueueConnectionFactory = "amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5675'"
TopicConnectionFactory = "amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5675'"
[transport.jndi.connection_factories] Required

This configuration header groups the parameters used for specifying the JNDI connection factory classes.

TopicConnectionFactory

string

Default: -
Possible Values: amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5675'

The connection factory URL for connecting to a JMS queue.

QueueConnectionFactory

string

Default: -
Possible Values: amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5675'

The connection factory URL for connecting to a JMS topic.

JNDI Queues

[transport.jndi.queue]
JMSMS = "JMSMS"
StockQuotesQueue = "StockQuotesQueue"
[transport.jndi.queue] Required

This configuration header is used to specify the list of queues that are defined your JMS broker. The JNDI name of the queue, and the actual queue name should be specifed as a key-value pair as follows: jndi_name = queue_name.

<jndi_queue_name>

string

Default: -
Possible Values: <queue_name>

The jndi queue name and the actual queue name as a key-value pair.

JNDI Topics

[transport.jndi.topic]
MyTopic = "example.MyTopic"
[transport.jndi.topic] Required

This configuration header is used to specify the list of topics that are defined your JMS broker. The JNDI name of the topic, and the actual topic name should be specifed as a key-value pair as follows: jndi_name = topic_name.

<jndi_topic_name>

string

Default: -
Possible Values: <topic_name>

The jndi queue name and the actual topic name as a key-value pair.

RabbitMQ Listener

[[transport.rabbitmq.listener]]

name = "rabbitMQListener"
parameter.hostname = "localhost"
parameter.port = 5672
parameter.username = "guest"
parameter.password = "guest"
parameter.connection_factory = ""
parameter.exchange_name = "amq.direct"
parameter.queue_name = "MyQueue"
parameter.queue_auto_ack = false
parameter.consumer_tag = ""
parameter.channel_consumer_qos = ""
parameter.durable = ""
parameter.queue_exclusive = ""
parameter.queue_auto_delete = ""
parameter.queue_routing_key = ""
parameter.queue_auto_declare = ""
parameter.exchange_auto_declare = ""
parameter.exchange_type = ""
parameter.exchange_durable = ""
parameter.exchange_auto_delete = ""
parameter.message_content_type = ""

parameter.retry_interval = "10s"
parameter.retry_count = 5
parameter.connection_pool_size = 25

parameter.ssl_enable = true
parameter.ssl_version = "SSL"
parameter.keystore_location ="$ref{keystore.tls.file_name}"
parameter.keystore_type = "$ref{keystore.tls.type}"
parameter.keystore_password = "$ref{keystore.tls.password}"
parameter.truststore_file_name ="$ref{truststore.file_name}"
parameter.truststore_type = "$ref{truststore.type}"
parameter.truststore_password = "$ref{truststore.password}"
[[transport.rabbitmq.listener]] Required

This configuration header is required if you are configuring WSO2 Micro Integrator to receive messages from a RabbitMQ client. Read more about connecting the Micro Integator with RabbitMQ.

name

string Required

Default: -
Possible Values: -

The name of the broker.

parameter.hostname

string Required

Default: localhost
Possible Values: -

The IP address of the server node.

parameter.port

integer Required

Default: 5672
Possible Values: -

The port on which the RabbitMQ broker can be accessed.

parameter.username

string Required

Default: guest
Possible Values: -

The user name for connecting to RabbitMQ broker.

parameter.password

string Required

Default: guest
Possible Values: -

The password for connecting to the RabbitMQ broker.

parameter.connection_factory

string Required

Default: -
Possible Values: org.apache.axis2.transport.rabbitmq.RabbitMQListener

The name of the connection factory.

parameter.exchange_name

string Required

Default: amq.direct
Possible Values: -

Name of the RabbitMQ exchange to which the queue is bound. Use this parameter instead of rabbitmq.queue.routing.key, if you need to use the default exchange and publish to a queue.

parameter.queue_name

string Required

Default: MyQueue
Possible Values: -

The queue name to send or consume messages. If you do not specify this parameter, you need to specify the rabbitmq.queue.routing.key parameter.

parameter.queue_auto_ack

boolean Required

Default: false
Possible Values: "true" or "false"

The queue name to send or consume messages. If you do not specify this parameter, you need to specify the rabbitmq.queue.routing.key parameter.

parameter.consumer_tag

string Required

Default: -
Possible Values: -

The client­ generated consumer tag to establish context.

parameter.channel_consumer_qos

string Required

Default: -
Possible Values: -

The consumer qos value. You need to specify this parameter only if the rabbitmq.queue.auto.ack parameter is set to false.

parameter.durable

string Required

Default: -
Possible Values: -

Specifies whether the queue should remain declared even if the broker restarts.

parameter.queue_exclusive

string Required

Default: -
Possible Values: -

Specifies whether the queue should be exclusive or should be consumable by other connections.

parameter.queue_auto_delete

string Required

Default: -
Possible Values: -

Specifies whether to keep the queue even if it is not being consumed anymore.

parameter.queue_routing_key

string Required

Default: -
Possible Values: -

The routing key of the queue.

parameter.queue_auto_declare

string Required

Default: -
Possible Values: -

Specifies whether to create queues if they are not present. However, you should set this parameter only if queues are not declared prior on the broker. Setting this parameter in the publish URL to false improves RabbitMQ transport performance.

parameter.exchange_auto_declare

string Required

Default: -
Possible Values: -

Specifies whether to create exchanges if they are not present. However, you should set this parameter only if exchanges are not declared prior on the broker. Setting this parameter in the publish URL to false improves RabbitMQ transport performance.

parameter.exchange_type

string Required

Default: -
Possible Values: -

The type of the exchange.

parameter.exchange_durable

string Required

Default: -
Possible Values: -

Specifies whether the exchange should remain declared even if the broker restarts.

parameter.exchange_auto_delete

string Required

Default: -
Possible Values: -

Specifies whether to keep the exchange even if it is not bound to any queue anymore.

parameter.default_destination_type

string Required

Default: -
Possible Values: text/xml

The content type of the consumer. </br>Note that if the content type is specified in the message, this parameter does not override the specified content type.

parameter.retry_interval

integer Required

Default: 30000
Possible Values: -

In the case of network failure or broker shut down, the Micro Integrator will attempt to reconnect a number of times (as sepcified by the parameter.retry_count parameter) with an interval (specified by this parameter) between the retry attempts.

parameter.retry_interval

integer Required

Default: 3
Possible Values: -

In the case of network failure or broker shut down, the Micro Integrator will attempt to reconnect as many times as sepcified by this parameter with an interval (specified by the parameter.retry_interval parameter) between the retry attempts.

parameter.ssl_enable

boolean Required

Default: -
Possible Values: "true" or "false"

Specifies whether or not SSL is enabled for RabbitMQ connection. If you set this to 'true', be sure to update the keystore and trust store parameters given below.

parameter.ssl_version

string Required

Default: SSL
Possible Values: -

The SSL versions.

parameter.keystore_location

string Required

Default: MI_HOME/repository/resources/security/wso2carbon.jks
Possible Values: -

The path to the keystore file that is used for securing a RabbitMQ connection. By default, the keystore file of the primary keystore is enabled for this purpose.

parameter.keystore_type

string Required

Default: JKS
Possible Values: "JKS" or "PKCS12"

The type of the keystore file. By default, the keystore type of the primary keystore is enabled for this purpose.

parameter.keystore_password

string Required

Default: wso2carbon
Possible Values: -

The password of the keystore file that is used for securing a RabbitMQ connection. This keystore password is used when accessing the keys in the keystore. By default, the keystore password of the primary keystore is enabled for this purpose.

parameter.truststore_location

string Required

Default: MI_HOME/repository/resources/security/wso2truststore.jks
Possible Values: -

The path to the keystore file that is used for storing the trusted digital certificates. By default, the product's trust store is configured for this purpose.

parameter.truststore_type

string Required

Default: JKS
Possible Values: "JKS" or "PKCS12"

The type of the keystore file that is used as the trust store. By default, the product's trust store is configured for this purpose.

parameter.truststore_password

string Required

Default: wso2carbon

The password of the keystore file that is used as the trust store. By default, the product's trust store is configured for this purpose.

RabbitMQ Sender

[transport.rabbitmq]
sender_enable = true

[[transport.rabbitmq.sender]]
name = "rabbitMQSender"
parameter.hostname = "localhost"
parameter.port = 5672
parameter.username = "guest"
parameter.password = "guest"
parameter.exchange_name = "amq.direct"
parameter.routing_key = "MyQueue"
parameter.reply_to_name = ""
parameter.queue_delivery_mode = 1 # 1/2
parameter.exchange_type = ""
parameter.queue_name = "MyQueue"
parameter.queue_durable = false
parameter.queue_exclusive = false
parameter.queue_auto_delete = false
parameter.exchange_durable = ""
parameter.queue_auto_declare = ""
parameter.exchange_auto_declare = ""
parameter.connection_pool_size = 10
[transport.rabbitmq]

This configuration header is required for enabling the RabbitMQ listener in the Micro Integrator. Read more about connecting the Micro Integator with RabbitMQ.

sender_enable

boolean Required

Default: false
Possible Values: "true" or "false"

Set this parameter to 'true' if you want to configure the Micro Integrator to send messages to a RabbitMQ client.

[[transport.rabbitmq.sender]]

This configuration header is optional when you have the RabbitMQ sender enabled ([transport.rabbitmq]. Read more about connecting the Micro Integator with RabbitMQ.

name

string Required

Default: -
Possible Values: -

The name of the broker.

parameter.hostname

string Required

Default: localhost
Possible Values: -

The IP address of the server node.

parameter.port

integer Required

Default: 5672
Possible Values: -

The port on which the RabbitMQ broker can be accessed.

parameter.username

string Required

Default: guest
Possible Values: -

The user name for connecting to RabbitMQ broker.

parameter.password

string Required

Default: guest
Possible Values: -

The password for connecting to the RabbitMQ broker.

parameter.exchange_name

string Required

Default: amq.direct
Possible Values: -

Name of the RabbitMQ exchange to which the queue is bound. Use this parameter instead of rabbitmq.queue.routing.key, if you need to use the default exchange and publish to a queue.

parameter.routing_key

string Required

Default: MyQueue
Possible Values: -

The routing key of the queue.

parameter.queue_name

string Required

Default: MyQueue
Possible Values: -

The queue name to send or consume messages. If you do not specify this parameter, you need to specify the rabbitmq.queue.routing.key parameter.

parameter.reply_to_name

string Required

Default: -
Possible Values: -

The name of the call back­ queue. Specify this parameter if you expect a response.

parameter.queue_delivery_mode

string Required

Default: -
Possible Values: persistent

The delivery mode of the queue. Possible values are Non­-persistent and Persistent.

parameter.exchange_type

string Required

Default: -
Possible Values: -

The type of the exchange.

parameter.queue_name

string Required

Default: MyQueue
Possible Values: -

The queue name to send or consume messages. If you do not specify this parameter, you need to specify the rabbitmq.queue.routing.key parameter.

parameter.queue_durable

string Required

Default: MyQueue
Possible Values: -

Whether the queue should remain declared even if the broker restarts. The default value is false.

parameter.queue_exclusive

boolean Required

Default: false
Possible Values: "true" or "false"

Whether the queue should be exclusive or should be consumable by other connections. The default value is false.

parameter.queue_auto_delete

boolean Required

Default: false
Possible Values: "true" or "false"

Specifies whether to keep the queue even if it is not being consumed anymore.

parameter.exchange_auto_declare

string Required

Default: -
Possible Values: -

Specifies whether to create exchanges if they are not present. However, you should set this parameter only if exchanges are not declared prior on the broker. Setting this parameter in the publish URL to false improves RabbitMQ transport performance.

parameter.queue_auto_declare

string Required

Default: -
Possible Values: -

Specifies whether to create queues if they are not present. However, you should set this parameter only if queues are not declared prior on the broker. Setting this parameter in the publish URL to false improves RabbitMQ transport performance.

parameter.exchange_durable

string Required

Default: -
Possible Values: -

Specifies whether the exchange should remain declared even if the broker restarts.

parameter.queue_auto_declare

string Required

Default: -
Possible Values: -

Whether to keep the queue even if it is not being consumed anymore. The default value is false.

parameter.exchange_auto_declare

string Required

Default: -
Possible Values: -

Whether to create queues if they are not present. However, you should set this parameter only if queues are not declared prior on the broker. Setting this parameter in the publish URL to false improves RabbitMQ transport performance.

FIX Transport

[transport.fix]

listener.enable = false
listener.parameter.customParameter = ""
sender.enable = false
sender.parameter.customParameter = ""
[transport.fix] Required

This configuration header groups the parameters that configure the Micro Integrator to communicate through the FIX transport.

listener.enabled

boolean Required

Default: false
Possible Values: "true" or "false"

The parameter for enabling the FIX transport listener.

sender.enabled

boolean Required

Default: false
Possible Values: "true" or "false"

The parameter for enabling the FIX transport sender.

MQTT Transport

[transport.mqtt]

listener.enable = false
listener.hostname = "$ref{server.hostname}"
listener.connection_factory = "mqttConFactory"
listener.server_port = 1883
listener.client_id = "client-id-1234"
listener.topic_name = "esb.test"

# not reqired parameter list
listener.subscription_qos = 0
listener.session_clean = false
listener.enable_ssl = false
listener.subscription_username = ""
listener.subscription_password = ""
listener.temporary_store_directory = ""
listener.blocking_sender = false
listener.connect_type = "text/plain"
listener.message_retained = false

listener.parameter.customParameter = ""

sender.enable = false
sender.parameter.customParameter = ""
[transport.mqtt] Required

This configuration header groups the parameters that configure the Micro Integrator to communicate through the MQTT transport.

listener.enabled

boolean Required

Default: false
Possible Values: "true" or "false"

The parameter for enabling the MQTT transport listener.

listener.hostname

string Required

Default: $ref{server.hostname}
Possible Values: -

The name of the host. By default, the hostname of the Micro Integrator server is used.

listener.connection_factory

string Required

Default: -
Possible Values: -

The connection factory URL for connecting to a JMS topic.

listener.server_port

integer Required

Default: -
Possible Values: "1883" or "1885"

The port ID.

listener.client_id

string

Default: -
Possible Values: -

The client ID.

listener.topic_name

string

Default: -
Possible Values: -

The name of the topic.

listener.parameter.customParameter

string

Default: -
Possible Values: -

Replace 'customParameter' with a required parameter name.

sender.enable

boolean Required

Default: false
Possible Values: "true" or "false"

The parameter for enabling the MQTT transport sender.

sender.parameter.customParameter

string

Default: -
Possible Values: -

Replace 'customParameter' with a required parameter name.

SAP Transport

[transport.sap]

listener.idoc.enable = true
listener.bapi.enable = true
listener.idoc.class = "org.wso2.carbon.transports.sap.SAPTransportListener"
listener.idoc.parameter.customParameter = ""
listener.bapi.class = "org.wso2.carbon.transports.sap.SAPTransportListener"
listener.bapi.parameter.customParameter = ""
sender.idoc.enable = true
sender.bapi.enable = true
sender.idoc.class = "org.wso2.carbon.transports.sap.SAPTransportSender"
sender.idoc.parameter.customParameter = ""
sender.bapi.class = "org.wso2.carbon.transports.sap.SAPTransportSender"
sender.bapi.parameter.customParameter = ""
[transport.sap]

This configuration header groups the parameters that configure the Micro Integrator to communicate with SAP.

listener.idoc.enabled

boolean Required

Default: false
Possible Values: "true" or "false"

The parameter for enabling SAP idoc transport listener.

listener.bapi.enabled

boolean Required

Default: false
Possible Values: "true" or "false"

The parameter for enabling SAP bapi transport listener.

listener.idoc.class

string Required

Default: org.wso2.carbon.transports.sap.SAPTransportListener
Possible Values: -

The class that implements the SAP transport listener for the Sap IDoc libary.

listener.bapi.class

string Required

Default: org.wso2.carbon.transports.sap.SAPTransportListener
Possible Values: -

The class that implements the SAP transport listener for the SAP BAPI library.

sender.idoc.enabled

boolean Required

Default: false
Possible Values: "true" or "false"

The parameter for enabling the SAP idoc transport sender.

sender.bapi.enabled

boolean Required

Default: false
Possible Values: "true" or "false"

The parameter for enabling the SAP bapi transport sender.

sender.idoc.class

string

Default: org.wso2.carbon.transports.sap.SAPTransportSender
Possible Values: -

The class that implements the SAP transport sender for the Sap IDoc library.

sender.bapi.class

string

Default: org.wso2.carbon.transports.sap.SAPTransportSender
Possible Values: -

The class that implements the SAP transport listener for the Sap BAPI library.

MSMQ Transport

[transport.msmq]

listener.enable = false
listener.hostname = "$ref{server.hostname}"
listener.parameter.customParameter = ""

sender.enable = false
sender.parameter.customParameter = ""
[transport.msmq] Required

This configuration header groups the parameters that configure the Micro Integrator to communicate through the MSMQ transport.

listener.enabled

boolean Required

Default: false
Possible Values: "true" or "false"

The parameter for enabling MSMQ transport listener.

sender.enable

boolean Required

Default: false
Possible Values: "true" or "false"

The parameter for enabling MSMQ transport sender.

listener.hostname

string Required

Default: $ref{server.hostname}
Possible Values: -

The hostname.

TCP Transport (non-blocking mode)

[transport.tcp]

listener.enable = false
listener.port = 8000
listener.hostname = "$ref{server.hostname}"
listener.content_type = ["application/xml"]
listener.response_client = true
listener.parameter.customParameter = ""

sender.enable = true
sender.parameter.customParameter = ""
[transport.tcp] Required

This configuration header groups the parameters that configure the Micro Integrator to communicate through the TCP transport. Note that the list of parameters given below can be used for the non-blocking transport as well as the blocking transport.

listener.enabled

boolean Required

Default: false
Possible Values: "true" or "false"

The parameter for enabling the TCP transport listener.

listener.port

integer Required

Default: 8000
Possible Values: A positive integer less than 65535

The port on which the TCP server should listen for incoming messages.

listener.hostname

string Required

Default: $ref{server.hostname}
Possible Values: -

The host name of the server to be displayed in WSDLs, etc.

listener.content_type

string Required

Default: -
Possible Values: "application/xml", "application/json", or "text/html"

The content type of the input message.

listener.response_client

boolean Required

Default: true
Possible Values: "true" or "false"

Whether or not the client needs to get the response.

sender.enabled

boolean Required

Default: true
Possible Values: "true" or "false"

The parameter for enabling the TCP transport sender.

TCP Transport (blocking mode)

[transport.blocking.tcp]

listener.enable = false
listener.port = 8000
listener.hostname = "$ref{server.hostname}"
listener.content_type = ["application/xml"]
listener.response_client = true
listener.parameter.customParameter = ""

sender.enable = false
sender.parameter.customParameter = ""
[transport.blocking.tcp] Required

This configuration header groups the parameters that are used to configure the TCP transport in blocking mode. You can use the same list of parameters that are available for the non-blocking TCP transport.

Websocket Transport

[transport.ws]

sender.enable = false
sender.outflow_dispatch_sequence = "outflowDispatchSeq"
sender.outflow_dispatch_fault_sequence = "outflowFaultSeq"      
sender.parameter.customParameter = ""
[transport.ws] Required

This configuration header groups the parameters that configure the Micro Integrator to communicate through the Websocket transport.

sender.enable

boolean Required

Default: false
Possible Values: "true" or "false"

The parameter for enabling the websocket transport listener.

sender.outflow_dispatch_sequence

string

Default: outflowDispatchSeq
Possible Values: -

The sequence for the back-end to client mediation.

sender.outflow_dispatch_fault_sequence

string

Default: outflowFaultSeq
Possible Values: -

The fault sequence for the back-end to client mediation path.

sender.parameter.customParameter

string

Default: -
Possible Values: -

Replace 'customParameter' with required parameter name.

Secure Websocket Transport

[transport.wss]

sender.enable = false
sender.outflow_dispatch_sequence = "outflowDispatchSeq"
sender.outflow_dispatch_fault_sequence = "outflowFaultSeq"
sender.parameter.customParameter = ""

sender.truststore_location = "$ref{truststore.file_name}"
sender.truststore_password = "$ref{truststore.password}"
[transport.wss] Required

This configuration header groups the parameters that configure the Micro Integrator to communicate through the secured Websocket transport.

sender.enable

boolean Required

Default: false
Possible Values: "true" or "false"

The parameter for enabling the websocket secured transport sender.

sender.outflow_dispatch_sequence

string

Default: outflowDispatchSeq
Possible Values: -

The sequence for the back-end to client mediation.

sender.outflow_dispatch_fault_sequence

string

Default: outflowFaultSeq
Possible Values: -

The fault sequence for the back-end to client mediation path.

sender.truststore_location

string Required

Default: MI_HOME/repository/resources/security/wso2truststore.jks
Possible Values: -

The file path to the truststore that stores the trusted digital certificates for websocket use cases. By default, the product's trust store is configured for this purpose.

sender.truststore_password

string Required

Default: wso2carbon
Possible Values: -

The password of the keystore file that is used as the trust store.

sender.parameter.customParameter

string

Default: -
Possible Values: -

Replace 'customParameter' with required parameter name.

UDP Transport (non-blocking mode)

[transport.udp]

listener.enable = false
listener.parameter.customParameter = ""

sender.enable =false               
sender.parameter.customParameter = ""
[transport.udp] Required

This configuration header groups the parameters that configure the Micro Integrator to communicate through the UDP transport. Note that the list of parameters given below can be used for the non-blocking transport as well as the blocking transport.

listener.enabled

boolean Required

Default: false
Possible Values: "true" or "false"

The parameter for enabling the UDP transport listener.

sender.enabled

string Required

Default: false
Possible Values: "true" or "false"

The parameter for enabling the UDP transport sender.

UDP Transport (blocking mode)

[transport.blocking.udp]

listener.enable = false
listener.parameter.customParameter = ""

sender.enable = false        
sender.parameter.customParameter = ""
[transport.blocking.tcp] Required

This configuration header groups the parameters that are used to configure the UDP transport in blocking mode. You can use the same list of parameters that are available for the non-blocking UDP transport.

Custom Transport Listener

[[custom_transport.listener]]
class = "org.wso2.micro.integrator.business.messaging.hl7.transport.HL7TransportListener"
protocol = "hl7"
[[custom_transport.listener]] Required

This configuration header groups the parameters that configure the Micro Integrator to receive messages through a custom transport.

class

string Required

Default: -
Possible Values: -

The class implementing the custom transport. For example, if you are using an HL7 transport listener, use the following class: org.wso2.micro.integrator.business.messaging.hl7.transport.HL7TransportListener.

protocol

string Required

Default: -
Possible Values: -

The transport protocol for the custom implementation. For example: hl7.

Custom Transport Sender

[[custom_transport.sender]]
class = "org.wso2.micro.integrator.business.messaging.hl7.transport.HL7TransportSender"
protocol = "hl7"
[transport.udp] Required

This configuration header groups the parameters that configure the Micro Integrator to send messages through a custom transport.

class

string Required

Default: -
Possible Values: -

The class implementing the custom transport. For example, if you are using an HL7 transport listener, use the following class: org.wso2.micro.integrator.business.messaging.hl7.transport.HL7TransportSender.

protocol

string Required

Default: -
Possible Values: -

The transport protocol for the custom implementation. For example: hl7.

Message Mediation

[mediation]
synapse.core_threads = 20
synapse.max_threads = 100
synapse.threads_queue_length = 10

synapse.global_timeout_interval = "120000ms"

synapse.enable_xpath_dom_failover=true
synapse.temp_data_chunk_size=3072

synapse.command_debugger_port=9005
synapse.event_debugger_port=9006

synapse.script_mediator_pool_size=15
synapse.enable_xml_nil=false
synapse.disable_auto_primitive_regex = "^-?(0|[1-9][0-9]*)(\\.[0-9]+)?([eE][+-]?[0-9]+)?$"
synapse.disable_custom_replace_regex = "@@@"
synapse.enable_namespace_declaration = false
synapse.build_valid_nc_name = false
synapse.enable_auto_primitive = false
synapse.json_out_auto_array = false
synapse.preserve_namespace_on_xml_to_json=false
flow.statistics.enable=false
flow.statistics.capture_all=false
statistics.enable_clean=true
statistics.clean_interval = "1000ms"
stat.tracer.collect_payloads=false
stat.tracer.collect_mediation_properties=false
inbound.core_threads = 20
inbound.max_threads = 100
[mediation] Required

This configuration header groups the parameters used for tuning the mediation process (Synapse engine) of the Micro Integrator. These parameters are mainly used when mediators such as Iterate and Clone (which uses the internal thread pools) are used.

synapse.core_threads

integer

Default: 20
Possible Values: -

The initial number of synapse threads in the pool. This parameter is applicable only if the Iterate and Clone mediators are used to handle a higher load. These mediators use a thread pool to create new threads when processing messages and sending messages in parallal. You can configure the size of the thread pool by this parameter. The number of threads specified via this parameter should be increased as required to balance an increased load. Increasing the value specified for this parameter results in higher performance of the Iterate and Clone mediators.

synapse.max_threads

integer

Default: 100
Possible Values: -

The maximum number of synapse threads in the pool. This parameter is applicable only if the Iterate and Clone mediators are used to handle a higher load. The number of threads specified for this parameter should be increased as required to balance an increased load.

synapse.threads_queue_length

integer

Default: 10
Possible Values: -

The length of the queue that is used to hold the runnable tasks that are to be executed by the pool. This parameter is applicable only if the Iterate and Clone mediators are used to handle a higher load. You can specify a finite value as the queue length by giving any positive number. If this parameter is set to (-1) it means that the task queue length is infinite. If the queue length is finite, there can be situations where requests are rejected when the task queue is full and all the cores are occupied. If the queue length is infinite, and if some thread locking happens, the server can go out of memory. Therefore, you need to decide on an optimal value based on the actual load.

synapse.global_timeout_interval

integer

Default: 120000
Possible Values: -

The maximum number of milliseconds within which a response for the request should be received. A response that arrives after the specified number of seconds cannot be correlated with the request. Hence, a warning will be logged and the request will be dropped. This parameter is also referred to as the time-out handler.

synapse.enable_xpath_dom_failover

boolean

Default: false
Possible Values: "true" or "false"

If this parameter is set to true, the Micro Integrator can switch to XPATH 2.0. This parameter can be set to false if XPATH 2.0 evaluations cause performance degradation. The Micro Integrator uses the Saxon Home Edition when implementing XPATH 2.0 functionalities, and thus supports all the functions that are shipped with it. For more information on the supported functions, see the Saxon Documentation.

synapse.temp_data_chunk_size

integer

Default: 3072
Possible Values: -

The message size that can be processed by the Micro Integrator.

synapse.script_mediator_pool_size

integer

Default: 15
Possible Values: -

When using externally referenced scripts, this parameter specifies the size of the script engine pool that should be used per script mediator. The script engines from this pool are used for externally referenced script execution where updates to external scripts on an engine currently in use may otherwise not be thread safe. It is recommended to keep this value at a reasonable size since there will be a pool per externally referenced script.

synapse.preserve_namespace_on_xml_to_json

boolean

Default: false
Possible Values: "true" or "false"

Preserves the namespace declarations in the JSON output during XML to JSON message transformations.

flow.statistics.enable

boolean

Default: false
Possible Values: "true" or "false"

Set this property to true and enable statistics for the required integration artifact to record information such as the following: <ul><li>The time spent on each mediator.</li><li>The time spent on processing each message.</li><li>The fault count of a single message flow.</li></ul>

flow.statistics.enable

boolean

Default: false
Possible Values: "true" or "false"

Set this property to 'true' and set the flow.statistics.enable property also to 'true'. This will enable mediation statistics for all the integration artifacts by default. If you set this property to 'false', you need to set the flow.statistics.enable property to 'true' and manually enable statistics for the required integration artifact.

statistics.enable_clean

boolean

Default: true
Possible Values: "true" or "false"

If this parameter is set to true, all the existing statistics would be cleared before processing a request. This is recommended if you want to increase the processing speed.

stat.tracer.collect_payloads

boolean

Default: false
Possible Values: "true" or "false"

Set this property to true and enable tracing for the required integration artifact to record the message payload before and after the message mediation performed by individual mediators.

stat.tracer.collect_mediation_properties

boolean

Default: false
Possible Values: "true" or "false"

Set this property to true and enable tracing for the required integration artifact to record the following information:<ul><li>Message context properties.</li><li>Message transport-scope properties.</li></ul>

Synapse Handlers

[[synapse_handlers]]
name = 
class = 
[[synapse_handlers]] Required

This configuration header is required for configuring a synapse handler with the name and the implementation class.

name

string Required

Default: -
Possible Values: -

Name of the synapse handler.

class

string Required

Default: -
Possible Values: -

The synapse handler implementation.

External Valut Configurations

#Static Token Authentication

[[external_vault]]
name = "hashicorp" # required
address = "http://127.0.0.1:8200" # required
rootToken = "ROOT_TOKEN" # required
cachableDuration = "15000"
engineVersion = "2"
# If namespace is used, apply the namespace value:
namespace = "NAMESPACE"
# If HashiCorp vault server is hosted in HTTPS protocol, apply below fields
trustStoreFile = "${carbon.home}/repository/resources/security/client-truststore.jks"
keyStoreFile = "${carbon.home}/repository/resources/security/wso2carbon.jks"
keyStorePassword = "KEY_STORE_PASSWORD"

#AppRole Authentication

[[external_vault]]
name = "hashicorp" # required
address = "http://127.0.0.1:8200" # required
roleId = "ROLE_ID" # required
secretId = "SECRET_ID" # required
cachableDuration = "15000"
engineVersion = "2"
# If namespace is used, apply the namespace value:
namespace = "NAMESPACE"
# If HashiCorp vault server is hosted in HTTPS protocol, apply below fields
trustStoreFile = "${carbon.home}/repository/resources/security/client-truststore.jks"
keyStoreFile = "${carbon.home}/repository/resources/security/wso2carbon.jks"
keyStorePassword = "KEY_STORE_PASSWORD"

#LDAP Authentication

[[external_vault]]
name = "hashicorp" # required
address = "http://127.0.0.1:8200" # required
ldapUsername = "USERNAME" # required
ldapPassword = "PASSWORD" # required
cachableDuration = "15000"
engineVersion = "2"
# If HashiCorp vault server is hosted in HTTPS protocol, apply below fields
trustStoreFile = "${carbon.home}/repository/resources/security/client-truststore.jks"
keyStoreFile = "${carbon.home}/repository/resources/security/wso2carbon.jks"
keyStorePassword = "KEY_STORE_PASSWORD"
[[external_vault]] Required

This configuration header is required for configuring an external vault for secrets. Read more about using HashiCorp sercrets.

name

string Required

Default: -
Possible Values: hashicorp

The name of the vault. For example, specify 'hashicorp' when connecting to the HashiCorp vault.

address

string Required

Default: -
Possible Values: -

The URL for connecting to the vault.

rootToken

string

Default: -
Possible Values: -

Specify the root token generated from the HashiCorp server. This is only applicable if static token authentication is used when connecting the Micro Integrator to the HashiCorp server.

roleId

string

Default: -
Possible Values: -

Specify the role ID generated from HashiCorp. The secret ID and role ID you specify in the deployment.toml file will internally generate a token and authenticate the HashiCorp server connection. The role ID is only applicable if AppRole Pull authentication is used when connecting the Micro Integrator to the HashiCorp server.

secretId

string

Default: -
Possible Values: -

Specify the secret ID generated from HashiCorp. The secret ID and role ID you sepecify in the deployment.toml file will internally generate a token and authenticate the HashiCorp server connection. The secret ID you generate in HashiCorp may expire. If that happens, you can renew the security token. The secret ID is only applicable if AppRole Pull authentication is used when connecting the Micro Integrator to the HashiCorp server.

cachableDuration

string

Default: 15000
Possible Values: -

All resources fetched from the HashiCorp vault would be cached for this number of milliseconds.

engineVersion

string

Default: -
Possible Values: 2

The version of the HashiCorp secret engine.

namespace

string

Default: -
Possible Values: -

Namespace support is available only in the Enterprise edition of HashiCorp. The namespace value specified here applies globally to HashiCorp secrets in all synapse configurations.

trustStoreFile

string

Default: ${carbon.home}/repository/resources/security/client-truststore.jks
Possible Values: -

The keystore file (trust store) that is used to store the digital certificates that the Micro Integrator trusts for SSL communication.

keyStoreFile

string

Default: ${carbon.home}/repository/resources/security/wso2carbon.jks
Possible Values: -

This keystore used for SSL handshaking when the Micro Integrator communicates with the HashiCorp server.

keyStorePassword

string

Default: wso2carbon
Possible Values: -

The password of the keystore file that is used for SSL communication. If you are using the default keystore file in the Micro Integrator, the default password is 'wso2carbon'.