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:
- Open the
deployment.toml
file (stored in theMI_HOME/conf
directory). - 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 ESB Micro Integrator. The required and optional parameters for this configuration are listed below.
hostname
string Required
"localhost"
"127.0.0.1","localhost","<any-ip-address>"
The hostname of the Micro Integrator instance.
offset
integer
0
Port offset allows you to run multiple MWARE products, multiple instances of a MWARE product, or multiple MWARE 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 MWARE 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
false
"true" or "false"
Use this paramater to enable MTOM (Message Transmission Optimization Mechanism) for the product server.
enable_swa
boolean Required
"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
MWARE ESB ${product.key} ${product.version}
serverDetails
string Required
MWARE ESB ${product.key} ${product.version}
serverDetails
string Required
MWARE ESB ${product.key} ${product.version}
synapse_config_file_path
string Required
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
"https://127.0.0.1:9443"
"https://{hostname/ip}:{port}"
The hostname of the ESB runtime. Be sure to replace {hostname/ip} and {port} with the relevant values.
enable
boolean Required
false
The service catalog client in the Micro Integrator is enabled when this parameter is set to 'true'.
username
string Required
admin
-
The user name for signing in to the ESB runtime.
password
string Required
admin
-
The user password for signing in to the ESB 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
"https://localhost:9743/dashboard/api/"
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
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
-
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
A random UUID or the node ID used for cluster coordination.
-
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
wso2carbon.jks
-
The name of the keystore file that is used for SSL communication and for encrypting/decrypting data in configuration files.
type
string Required
JKS
"JKS", "PKCS12"
The type of the keystore file.
password
string Required
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
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
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
wso2carbon.jks
-
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
JKS
"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
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
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
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
^[\S]{5,30}$
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
wso2truststore.jks
-
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
JKS
"JKS", "PKCS12"
The type of the keystore file that is used as the trust store.
password
string Required
wso2carbon
The password of the keystore file that is used as the trust store.
alias
string Required
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
true
"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
admin
-
Enter a user name. Note that this will overwrite the default 'admin' user that is stored in the user store.
user.password
string
admin
-
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
false
"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
"read_only_ldap"
"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
org.wso2.micro.integrator.security.user.core.ldap.ReadOnlyLDAPUserStoreManager
-
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
true
"true" or "false"
Specifies whether or not the user store is read only.
connection_url
string Required
ldap://localhost:10389
-
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 <a href='https://esb-docs.m-ware.eu/install-and-setup/setup/mi-setup/setup/security/importing_ssl_certificate'>add certificates to the truststore</a>.
connection_name
string Required
uid=admin,ou=system
-
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
admin
Password for the connection user name.
user_search_base
string
ou=system
-
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
uid
-
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 MWARE products. Read more about using the email address as user name.
user_name_search_filter
string
(&(objectClass=person)(uid=?))
-
Filtering criteria used to search for a particular user entry.
user_name_list_filter
string
(objectClass=person)
-
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
true
"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
ou=system
-
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
cn
-
The attribute used for uniquely identifying a group entry. This attribute is to be treated as the group name.
group_name_search_filter
string
(&(objectClass=groupOfNames)(cn=?))
-
The filtering criteria used to search for a particular group entry.
group_name_list_filter
string
(objectClass=groupOfNames)
-
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
member
-
Defines the attribute that contains the distinguished names (DN) of user objects that are in a group.
back_links_enabled
string
member
-
Defines whether the backlink support is enabled.
username_java_regex
string
[a-zA-Z0-9._\-|//]{3,30}$
-
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
[a-zA-Z0-9._\-|//]{3,30}$
-
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
^[\S]{5,30}$
-
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
true
"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
PLAIN_TEXT
"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
,
-
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
100
-
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
100
-
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
true
"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
true
"true" or "false"
Define whether LDAP connection pooling is enabled. The connection performance will improve when this parameter is enabled.
ldap_connection_timeout
integer
5000
-
This is the connection timeout period (in milliseconds) when the initial connection is created.
read_timeout
integer
-
-
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
-
-
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
-
-
The name of the database.
url
string Required
-
-
The connection URL for your database. Note that the URL depends on the type of database you use.
username
string Required
-
-
The user name for connecting to the database.
password
string Required
-
-
The password for connecting to the database.
driver
string Required
-
-
The driver class of your database.
pool_options.maxActive
integer
50
-
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
60000
-
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
true
"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
8
-
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
0
-
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
30000
-
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
Null
-
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
-
-
The memory size allocated for ESB Micro Integrator.
pool_options.removeAbandoned
boolean
false
"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
false
"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
false
"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
0
-
The initial number of connections created when the pool is started. Default value is 0.
pool_options.defaultTransactionIsolation
string
TRANSACTION_NONE
"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
-1
-
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
5000
-
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
-
-
The number of objects to examine during each run of the idle object evictor thread.
pool_options.minEvictableIdleTimeMillis
integer
60000
-
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
-
-
The default catalog of connections created by this pool.
pool_options.validatorClassName
string
-
-
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
Null
-
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
-
-
The ability to run a SQL statement exactly once, when the connection is created.
pool_options.jdbcInterceptors
string
-
-
Flexible and pluggable interceptors to create any customizations around the pool, the query execution and the result set handling.
pool_options.abandonWhenPercentageFull
integer
0
-
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
0
-
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
0
-
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
true
"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
200
-
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
600
-
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
true
"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
3600
-
This configures the expiry time of the token (specified in seconds).
token_config.size
integer
2048
-
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
true
"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
/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
true
-
Set this paramter to 'false' if you want to disable CORs for the Management API.
allowed_origins
string
*
any string
Specify the allowed origins. By default '*' indicates that all origins are allowed.
allowed_headers
string
Authorization
-
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
org.apache.axis2.builder.ApplicationXMLBuilder
-
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
-
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
org.apache.axis2.builder.MultipartFormDataBuilder
-
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
org.apache.axis2.format.PlainTextBuilder
-
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
org.wso2.micro.integrator.core.json.JsonStreamBuilder
-
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
org.apache.axis2.json.JSONBadgerfishOMBuilder
-
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
org.apache.axis2.json.JSONBuilder
-
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
org.wso2.carbon.relay.BinaryRelayBuilder
-
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
org.apache.axis2.format.BinaryBuilder
-
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
org.apache.axis2.transport.http.ApplicationXMLFormatter
-
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
-
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
org.apache.axis2.transport.http.MultipartFormDataFormatter
-
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
org.apache.axis2.format.PlainTextFormatter
-
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
org.wso2.micro.integrator.core.json.JsonStreamFormatter
-
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
org.apache.axis2.json.JSONBadgerfishMessageFormatter
-
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
org.apache.axis2.json.JSONMessageFormatter
-
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
org.wso2.carbon.relay.ExpandingMessageFormatter
-
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
org.apache.axis2.format.BinaryFormatter
-
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
org.apache.axis2.transport.http.SOAPMessageFormatter
-
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
org.apache.axis2.transport.http.SOAPMessageFormatter
-
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
-
-
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
-
-
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
-
-
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
-
-
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
"swagger.yaml" and "swagger.json"
-
The item repesents the first parameter in the query string (e.g. ?wsdl), which needs special processing.
class
string Required
"org.wso2.micro.integrator.transport.handlers.requestprocessors.swagger.format.SwaggerYamlProcessor" and "org.wso2.micro.integrator.transport.handlers.requestprocessors.swagger.format.SwaggerYamlProcessor"
-
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
180000
-
This is the maximum period of inactivity between two consecutive data packets, specified in milliseconds.
core_worker_pool_size
integer Required
400
-
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
400
-
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
-1
-
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
16384
-
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
32767
-
This defines the maximum number of connections allowed per host port.
preserve_http_user_agent
boolean Required
"true" or "false"
-
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
Content-Type
-
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
false
"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
8290
-
The port on which this transport receiver should listen for incoming messages.
listener.wsdl_epr_prefix
string Required
-
-
A URL prefix which will be added to all service EPRs and EPRs in WSDLs etc.
listener.secured_port
integer Required
8253
-
The secured port on which this transport receiver should listen for incoming messages.
listener.keystore.location
string Required
MI_HOME/repository/resources/security/wso2carbon.jks
-
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
JKS
"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
wso2carbon
-
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
wso2carbon
-
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
MI_HOME/repository/resources/security/wso2truststore.jks
-
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
JKS
"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
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.
sender.warn_on_http_500
string Required
-
-
If the outgoing messages should be sent through an HTTP proxy server, use this parameter to specify the target proxy.
sender.proxy_host
string
-
-
If the outgoing messages should be sent through an HTTP proxy server, use this parameter to specify the target proxy.
sender.proxy_port
integer
-
-
The port through which the target proxy (specified by the 'sender.proxy_port' parameter) accepts HTTP traffic.
sender.proxy_username
string
-
-
The username for authenticating the HTTP proxy server.
sender.proxy_password
string
-
-
The password for authenticating the HTTP proxy server.
sender.secured_proxy_host
string
-
-
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
-
-
The port through which the target proxy (specified by the 'sender.secured_proxy_port' parameter) accepts HTTPS traffic.
sender.secured_proxy_username
string
-
-
The username for authenticating the HTTPS proxy server.
sender.secured_proxy_password
string
-
-
The password for authenticating the HTTPS proxy server.
sender.non_proxy_hosts
string Required
-
-
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
-
-
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
MI_HOME/repository/resources/security/wso2carbon.jks
-
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
JKS
"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
wso2carbon
-
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
wso2carbon
-
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
MI_HOME/repository/resources/security/wso2truststore.jks
-
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
JKS
"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
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.
enable_message_size_validation
boolean
false
"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
2147483647
-
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
-1
-
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
false
"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
false
"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
true
"true" or "false"
This parameter is used for enabling the HTTP passthrough transport listener in blocking mode.
listener.port
integer Required
8200
-
The port on which this transport receiver should listen for incoming messages.
listener.hostname
string
-
listener.origin_server
string
-
listener.request_timeout
string
-
listener.request_tcp_no_delay
string
-
listener.request_core_thread_pool_size
string
-
listener.request_max_thread_pool_size
string
-
listener.thread_keepalive_time
string
-
listener.thread_keepalive_time_unit
string
-
sender.enabled
boolean Required
true
"true" or "false"
This parameter is used for enabling the HTTP passthrough transport sender in blocking mode.
sender.enable_client_caching
boolean Required
-
"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
-
"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
-
-
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
-
"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
-
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
-
-
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
-
-
The port through which the target proxy (specified by the 'sender.proxy_host' parameter) accepts HTTP traffic (in blocking mode).
sender.proxy_username
string
-
-
The username for authenticating the proxy server.
sender.proxy_password
string
-
-
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
-
"*", "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
-
-
The host name of the proxy server.
proxy_port
integer Required
-
-
The port number of the proxy server.
proxy_username
string Required
-
-
The password for authenticating the proxy server.
bypass_hosts
string Required
-
-
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
-
"*", "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
-
-
The host name of the proxy server.
proxy_port
integer Required
-
-
The port number of the proxy server.
proxy_username
string Required
-
-
The password for authenticating the proxy server.
proxy_password
string Required
-
-
The password for authenticating the proxy server.
bypass_hosts
string Required
-
-
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
true
"true" or "false"
The parameter for enabling the VFS transport listener.
listener.keystore.file_name
string
MI_HOME/repository/resources/security/wso2carbon.jks
-
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
JKS
"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
wso2carbon
-
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
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.
listener.keystore.key_password
string
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.
sender.enabled
boolean Required
wso2carbon
"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
true
"true" or "false"
The parameter for enabling the VFS transport listener.
listener.keystore.file_name
string
MI_HOME/repository/resources/security/wso2carbon.jks
-
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
JKS
"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
wso2carbon
-
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
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.
listener.keystore.key_password
string
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.
sender.enabled
boolean Required
wso2carbon
"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
false
"true" or "false"
The parameter for enabling the MAIL transport listener in the Micro Integrator.
name
string Required
-
-
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 = "demo_user@wso2.com"
[[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
mailto
-
The parameter for enabling the MAIL transport sender in the Micro Integrator.
parameter.hostname
string Required
smtp.gmail.com
-
The mail server that serves outgoing mails from the Micro Integrator.
parameter.port
integer Required
587
-
The port of the mail server.
parameter.enable_tls
boolean Required
false
"true" or "false"
This parameter specifies whether TLS is enabled for the MailTo transport.
parameter.username
string Required
demo_user
-
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
mailpassword
-
The password of the email account (mail sender).
parameter.from
string Required
demo_user@wso2.com
-
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
-
-
The user-defined name of the JMS listener.
parameter.initial_naming_factory
string Required
-
-
JNDI initial context factory class. The class must implement the java.naming.spi.InitialContextFactory interface.
parameter.provider_url
string Required
-
-
URL of the JNDI provider.
parameter.connection_factory_name
string Required
-
-
The JNDI name of the connection factory.
parameter.cache_level
string
consumer
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
-
-
The JNDI Username.
parameter.naming_security_credential
string
-
-
The JNDI password.
parameter.transactionality
string
-
-
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
-
-
JNDI name to be used to require user transaction.
parameter.cache_user_transaction
boolean
false
"true" or "false"
Specifies whether or not caching should be enabled for user transactions.
parameter.session_transaction
boolean
false
"true" or "false"
Specifies whether or not the JMS session should be transacted.
parameter.session_acknowledgement
string
AUTO_ACKNOWLEDGE
-
JMS session acknowledgment mode.
parameter.jms_spec_version
string
1.1
-
JMS API version.
parameter.username
string Required
-
-
The JMS connection username.
parameter.password
string Required
-
-
The JMS connection password.
parameter.destination
string
-
-
The JNDI name of the destination.
parameter.destination_type
string
-
"queue" or "topic"
The type of the destination.
parameter.message_selector
string
-
-
The message selector implementation.
parameter.subscription_durable
boolean
-
"true" or "false"
Specifies whether or not the connection factory is subscription durable.
parameter.durable_subscriber_client_id
string
-
-
The ClientId parameter when using durable subscriptions.
parameter.durable_subscriber_name
string Required
-
-
The name of the durable subscriber.
parameter.pub_sub_local
boolean
-
"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
1000
-
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
1
-
The number of concurrent threads to be started to consume messages when polling.
parameter.max_concurrent_consumer
integer
1
-
The maximum number of concurrent threads to use during polling.
parameter.idle_task_limit
integer
10
-
The number of idle runs per thread before it dies out.
parameter.max_message_per_task
integer
-1
-
The maximum number of successful message receipts per thread.
parameter.initial_reconnection_duration
integer
10000
-
The initial reconnection attempts duration in milliseconds.
parameter.reconnect_progress_factor
integer
2
-
The factor by which the reconnection duration will be increased.
parameter.max_reconnect_duration
integer
3600000
-
The maximum reconnection duration in milliseconds.
parameter.reconnect_interval
integer
3600000
-
The reconnection interval in milliseconds.
parameter.max_jsm_connection
integer
10
-
The maximum cached JMS connections in the producer level.
parameter.max_consumer_error_retrieve_before_delay
integer
20
-
The number of retries on consume errors before sleep delay becomes effective.
parameter.consume_error_delay
integer
100
-
The sleep delay when a consume error is encountered (in milliseconds).
parameter.consume_error_progression
integer
2.0
-
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
-
-
The user-defined name of the JMS sender.
parameter.initial_naming_factory
string Required
-
-
JNDI initial context factory class. The class must implement the java.naming.spi.InitialContextFactory interface.
parameter.broker_name
string Required
-
-
The name of the JMS broker.
parameter.provider_url
string Required
-
-
URL of the JNDI provider.
parameter.connection_factory_name
string Required
-
-
The JNDI name of the connection factory.
parameter.cache_level
string
producer
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
-
-
The JNDI Username.
parameter.naming_security_credential
string
-
-
The JNDI password.
parameter.transactionality
string
-
-
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
-
-
JNDI name to be used to require user transaction.
parameter.cache_user_transaction
boolean
false
"true" or "false"
Specifies whether or not caching should be enabled for user transactions.
parameter.session_transaction
boolean Required
false
"true" or "false"
Specifies whether or not the JMS session should be transacted.
parameter.session_acknowledgement
string
AUTO_ACKNOWLEDGE
-
JMS session acknowledgment mode.
parameter.jms_spec_version
string
1.1
-
JMS API version.
parameter.username
string Required
-
-
The JMS connection username.
parameter.password
string Required
-
-
The JMS connection password.
parameter.destination
string
-
-
The JNDI name of the destination.
parameter.destination_type
string
-
"queue" or "topic"
The type of the destination.
parameter.default_reply_destination
string
-
-
The JNDI name of the default reply destination.
parameter.default_destination_type
string
-
"queue" or "topic"
The type of the reply destination.
parameter.message_selector
string
-
-
The message selector implementation.
parameter.subscription_durable
boolean
-
"true" or "false"
Specifies whether or not the connection factory is subscription durable.
parameter.durable_subscriber_client_id
string
-
-
The ClientId parameter when using durable subscriptions.
parameter.durable_subscriber_name
string Required
-
-
The name of the durable subscriber.
parameter.pub_sub_local
boolean Required
false
"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
1000
-
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
1
-
The number of concurrent threads to be started to consume messages when polling.
parameter.max_concurrent_consumer
integer
1
-
The maximum number of concurrent threads to use during polling.
parameter.idle_task_limit
integer
10
-
The number of idle runs per thread before it dies out.
parameter.max_message_per_task
integer
-1
-
The maximum number of successful message receipts per thread.
parameter.initial_reconnection_duration
integer
10000
-
The initial reconnection attempts duration in milliseconds.
parameter.reconnect_progress_factor
integer
2
-
The factor by which the reconnection duration will be increased.
parameter.max_reconnect_duration
integer
3600000
-
The maximum reconnection duration in milliseconds.
parameter.reconnect_interval
integer
3600000
-
The reconnection interval in milliseconds.
parameter.max_jsm_connection
integer
10
-
The maximum cached JMS connections in the producer level.
parameter.max_consumer_error_retrieve_before_delay
integer
20
-
The number of retries on consume errors before sleep delay becomes effective.
parameter.consume_error_delay
integer
100
-
The sleep delay when a consume error is encountered (in milliseconds).
parameter.consume_error_progression
integer
2.0
-
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
-
amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5675'
The connection factory URL for connecting to a JMS queue.
QueueConnectionFactory
string
-
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
-
<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
-
<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 ESB Micro Integrator to receive messages from a RabbitMQ client. Read more about connecting the Micro Integator with RabbitMQ.
name
string Required
-
-
The name of the broker.
parameter.hostname
string Required
localhost
-
The IP address of the server node.
parameter.port
integer Required
5672
-
The port on which the RabbitMQ broker can be accessed.
parameter.username
string Required
guest
-
The user name for connecting to RabbitMQ broker.
parameter.password
string Required
guest
-
The password for connecting to the RabbitMQ broker.
parameter.connection_factory
string Required
-
org.apache.axis2.transport.rabbitmq.RabbitMQListener
The name of the connection factory.
parameter.exchange_name
string Required
amq.direct
-
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
MyQueue
-
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
false
"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
-
-
The client generated consumer tag to establish context.
parameter.channel_consumer_qos
string Required
-
-
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
-
-
Specifies whether the queue should remain declared even if the broker restarts.
parameter.queue_exclusive
string Required
-
-
Specifies whether the queue should be exclusive or should be consumable by other connections.
parameter.queue_auto_delete
string Required
-
-
Specifies whether to keep the queue even if it is not being consumed anymore.
parameter.queue_routing_key
string Required
-
-
The routing key of the queue.
parameter.queue_auto_declare
string Required
-
-
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
-
-
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
-
-
The type of the exchange.
parameter.exchange_durable
string Required
-
-
Specifies whether the exchange should remain declared even if the broker restarts.
parameter.exchange_auto_delete
string Required
-
-
Specifies whether to keep the exchange even if it is not bound to any queue anymore.
parameter.default_destination_type
string Required
-
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
30000
-
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
3
-
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
-
"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
SSL
-
The SSL versions.
parameter.keystore_location
string Required
MI_HOME/repository/resources/security/wso2carbon.jks
-
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
JKS
"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
wso2carbon
-
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
MI_HOME/repository/resources/security/wso2truststore.jks
-
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
JKS
"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
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
false
"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
-
-
The name of the broker.
parameter.hostname
string Required
localhost
-
The IP address of the server node.
parameter.port
integer Required
5672
-
The port on which the RabbitMQ broker can be accessed.
parameter.username
string Required
guest
-
The user name for connecting to RabbitMQ broker.
parameter.password
string Required
guest
-
The password for connecting to the RabbitMQ broker.
parameter.exchange_name
string Required
amq.direct
-
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
MyQueue
-
The routing key of the queue.
parameter.queue_name
string Required
MyQueue
-
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
-
-
The name of the call back queue. Specify this parameter if you expect a response.
parameter.queue_delivery_mode
string Required
-
persistent
The delivery mode of the queue. Possible values are NonÂ-persistent and Persistent.
parameter.exchange_type
string Required
-
-
The type of the exchange.
parameter.queue_name
string Required
MyQueue
-
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
MyQueue
-
Whether the queue should remain declared even if the broker restarts. The default value is false.
parameter.queue_exclusive
boolean Required
false
"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
false
"true" or "false"
Specifies whether to keep the queue even if it is not being consumed anymore.
parameter.exchange_auto_declare
string Required
-
-
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
-
-
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
-
-
Specifies whether the exchange should remain declared even if the broker restarts.
parameter.queue_auto_declare
string Required
-
-
Whether to keep the queue even if it is not being consumed anymore. The default value is false.
parameter.exchange_auto_declare
string Required
-
-
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
false
"true" or "false"
The parameter for enabling the FIX transport listener.
sender.enabled
boolean Required
false
"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
false
"true" or "false"
The parameter for enabling the MQTT transport listener.
listener.hostname
string Required
$ref{server.hostname}
-
The name of the host. By default, the hostname of the Micro Integrator server is used.
listener.connection_factory
string Required
-
-
The connection factory URL for connecting to a JMS topic.
listener.server_port
integer Required
-
"1883" or "1885"
The port ID.
listener.client_id
string
-
-
The client ID.
listener.topic_name
string
-
-
The name of the topic.
listener.parameter.customParameter
string
-
-
Replace 'customParameter' with a required parameter name.
sender.enable
boolean Required
false
"true" or "false"
The parameter for enabling the MQTT transport sender.
sender.parameter.customParameter
string
-
-
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
false
"true" or "false"
The parameter for enabling SAP idoc transport listener.
listener.bapi.enabled
boolean Required
false
"true" or "false"
The parameter for enabling SAP bapi transport listener.
listener.idoc.class
string Required
org.wso2.carbon.transports.sap.SAPTransportListener
-
The class that implements the SAP transport listener for the Sap IDoc libary.
listener.bapi.class
string Required
org.wso2.carbon.transports.sap.SAPTransportListener
-
The class that implements the SAP transport listener for the SAP BAPI library.
sender.idoc.enabled
boolean Required
false
"true" or "false"
The parameter for enabling the SAP idoc transport sender.
sender.bapi.enabled
boolean Required
false
"true" or "false"
The parameter for enabling the SAP bapi transport sender.
sender.idoc.class
string
org.wso2.carbon.transports.sap.SAPTransportSender
-
The class that implements the SAP transport sender for the Sap IDoc library.
sender.bapi.class
string
org.wso2.carbon.transports.sap.SAPTransportSender
-
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
false
"true" or "false"
The parameter for enabling MSMQ transport listener.
sender.enable
boolean Required
false
"true" or "false"
The parameter for enabling MSMQ transport sender.
listener.hostname
string Required
$ref{server.hostname}
-
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
false
"true" or "false"
The parameter for enabling the TCP transport listener.
listener.port
integer Required
8000
A positive integer less than 65535
The port on which the TCP server should listen for incoming messages.
listener.hostname
string Required
$ref{server.hostname}
-
The host name of the server to be displayed in WSDLs, etc.
listener.content_type
string Required
-
"application/xml", "application/json", or "text/html"
The content type of the input message.
listener.response_client
boolean Required
true
"true" or "false"
Whether or not the client needs to get the response.
sender.enabled
boolean Required
true
"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
false
"true" or "false"
The parameter for enabling the websocket transport listener.
sender.outflow_dispatch_sequence
string
outflowDispatchSeq
-
The sequence for the back-end to client mediation.
sender.outflow_dispatch_fault_sequence
string
outflowFaultSeq
-
The fault sequence for the back-end to client mediation path.
sender.parameter.customParameter
string
-
-
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
false
"true" or "false"
The parameter for enabling the websocket secured transport sender.
sender.outflow_dispatch_sequence
string
outflowDispatchSeq
-
The sequence for the back-end to client mediation.
sender.outflow_dispatch_fault_sequence
string
outflowFaultSeq
-
The fault sequence for the back-end to client mediation path.
sender.truststore_location
string Required
MI_HOME/repository/resources/security/wso2truststore.jks
-
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
wso2carbon
-
The password of the keystore file that is used as the trust store.
sender.parameter.customParameter
string
-
-
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
false
"true" or "false"
The parameter for enabling the UDP transport listener.
sender.enabled
string Required
false
"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
-
-
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
-
-
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
-
-
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
-
-
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
20
-
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
100
-
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
10
-
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
120000
-
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
false
"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
3072
-
The message size that can be processed by the Micro Integrator.
synapse.script_mediator_pool_size
integer
15
-
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
false
"true" or "false"
Preserves the namespace declarations in the JSON output during XML to JSON message transformations.
flow.statistics.enable
boolean
false
"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
false
"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
true
"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
false
"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
false
"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
-
-
Name of the synapse handler.
class
string Required
-
-
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
-
hashicorp
The name of the vault. For example, specify 'hashicorp' when connecting to the HashiCorp vault.
address
string Required
-
-
The URL for connecting to the vault.
rootToken
string
-
-
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
-
-
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
-
-
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
15000
-
All resources fetched from the HashiCorp vault would be cached for this number of milliseconds.
engineVersion
string
-
2
The version of the HashiCorp secret engine.
namespace
string
-
-
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
${carbon.home}/repository/resources/security/client-truststore.jks
-
The keystore file (trust store) that is used to store the digital certificates that the Micro Integrator trusts for SSL communication.
keyStoreFile
string
${carbon.home}/repository/resources/security/wso2carbon.jks
-
This keystore used for SSL handshaking when the Micro Integrator communicates with the HashiCorp server.
keyStorePassword
string
wso2carbon
-
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'.