The wire listener configuration file
The settings that control the wire listener and the connection between the client and database server are set in the wire listener configuration file.
The default name for the configuration file is $INFORMIXDIR/etc/jsonListener.properties. You can rename this file, but the suffix must be .properties.
If you create a server instance during the installation process, a configuration file that is named jsonListener.properties is automatically created with default properties, otherwise you must manually create the configuration file. You can use the $INFORMIXDIR/etc/jsonListener-example.properties file as a template.
In the configuration file that is created during installation, and in the template file, all of the parameters are commented out by default. To enable a parameter, you must uncomment the row and customize the parameter.
- Required
- Setup and configuration
- Command and operation configuration
- Database resource management
- MongoDB compatibility
- Performance
- Security
- authentication.enable
- authentication.localhost.bypass.enable
- command.blacklist
- db.authentication
- listener.admin.ipAddress
- listener.authentication.timeout
- listener.http.accessControlAllowCredentials
- listener.http.accessControlAllowHeaders
- listener.http.accessControlAllowMethods
- listener.http.accessControlAllowOrigin
- listener.http.accessControlExposeHeaders
- listener.http.accessControlMaxAge
- listener.http.headers
- listener.http.headers.size.maximum
- listener.rest.cookie.domain
- listener.rest.cookie.httpOnly
- listener.rest.cookie.length
- listener.rest.cookie.name
- listener.rest.cookie.path
- listener.rest.cookie.secure
- listener.ssl.algorithm
- listener.ssl.ciphers
- listener.ssl.enable
- listener.ssl.key.alias
- listener.ssl.key.password
- listener.ssl.keyStore.file
- listener.ssl.keyStore.password
- listener.ssl.keyStore.type
- listener.ssl.protocol
- security.sql.passthrough
- Wire listener resource management
- cursor.idle.timeout
- listener.connectionPool.closeDelay.time
- listener.connectionPool.closeDelay.timeUnit
- listener.idle.timeout
- listener.idle.timeout.minimum
- listener.input.buffer.size
- listener.memoryMonitor.enable
- listener.memoryMonitor.allPoint
- listener.memoryMonitor.diagnosticPoint
- listener.memoryMonitor.zeroPoint
- listener.output.buffer.size
- listener.pool.admin.enable
- listener.pool.keepAliveTime
- listener.pool.queue.size
- listener.pool.size.core
- listener.pool.size.maximum
- listener.socket.accept.timeout
- listener.socket.read.timeout
- pool.connections.maximum
- pool.idle.timeout
- pool.idle.timeunit
- pool.lenient.return.enable
- pool.lenient.dispose.enable
- pool.semaphore.timeout
- pool.semaphore.timeunit
- pool.service.interval
- pool.service.threads
- pool.service.timeunit
- pool.size.initial
- pool.size.minimum
- pool.size.maximum
- pool.type
- pool.typeMap.strategy
- response.documents.size.minimum
- timeseries.loader.connections
Required parameter
You must configure the url parameter before using the wire listener.- url
- This required parameter specifies the host name, port number, user ID, and password that are used in connections to the database server.
- You must specify the sysmaster database in the url parameter. That database is used for administrative purposes by the wire listener.
>>-url=--jdbc:informix-sqli://hostname:portnum--/sysmaster:-----> >--+----------------------------------------------+------------>< '-USER=userid;--PASSWORD=password--NONCE=value-'
You can include additional JDBC properties in the url parameter such as INFORMIXCONTIME, INFORMIXCONRETRY, LOGINTIMEOUT, and IFX_SOC_TIMEOUT. For a list of Informix® environment variables that are supported by the JDBC driver, see Informix environment variables with the .- hostname:portnum
- The host name and port number of your computer. For example, localhost:9090.
- USER=userid
- This optional attribute specifies the user ID that is used in connections to the database server. If you plan to use this connection to establish or modify collection shards by using the sharding capability, the specified user must be granted the REPLICATION privilege group access.
- If you do not specify the user ID and password, the JDBC driver uses operating system authentication and all wire listener actions are run by using the user ID and password of the operating system user who runs the wire listener start command.
- PASSWORD=password
- This optional attribute specifies the password for the specified user ID.
- NONCE=value
- This optional attribute specifies a 16-character value that consists of numbers and the letters a, b, c, d, e, and f. This property triggers password encoding when a pluggable authentication module is configured for the wire listener. Applicable only if the db.authentication parameter is set to informix-mongodb-cr.
Setup and configuration
These parameters provide setup and configuration options.- documentIdAlgorithm
- This optional parameter determines the algorithm that is used to generate the unique identifier for the ID column that is the primary key on the collection table. The _id field of the document is used as the input to the algorithm. The default value is documentIdAlgorithm=ObjectId.
.-ObjectId-. >>-documentIdAlgorithm=--+-SHA-1----+-------------------------->< +-SHA-256--+ '-SHA-512--'
- ObjectId
- Indicates that the string representation of the ObjectId is used
if the _id field is of type ObjectId; otherwise, the MD5 algorithm
is used to compute the hash of the contents of the _id field.
- The string representation of an ObjectId is the hexadecimal representation of the 12 bytes that comprise an ObjectId.
- The MD5 algorithm provides better performance than the secure hashing algorithms (SHA).
Important: Use the default unless a unique constraint violation is reported even though all documents have a unique _id field. In that case, you might need to use a non-default algorithm, such as SHA-256 or SHA-512. - SHA-1
- Indicates that the SHA-1 hashing algorithm is used to derive an identifier from the _id field.
- SHA-256
- Indicates that the SHA-256 hashing algorithm is used to derive an identifier from the _id field.
- SHA-512
- Indicates that the SHA-512 hashing algorithm is used to derive an identifier from the _id field. This option generates the most unique values, but uses the most processor resources.
- include
- This optional parameter specifies the properties file to reference. The path can be absolute or relative. For more information, see Running multiple wire listeners.
>>-include=--properties_file-----------------------------------><
- listener.onException
- This optional parameter specifies an ordered list of actions to take if an exception occurs that is not handled by the processing layer.
.-reply------------. >>-listener.onException=--+-closeSession-----+----------------->< '-shutdownListener-'
- reply
- When an unhandled exception occurs, reply with the exception message. This is the default value.
- closeSession
- When an unhandled exception occurs, close the session.
- shutdownListener
- When an unhandled exception occurs, shut down the wire listener.
- listener.hostName
- This optional parameter specifies the host name of the wire listener.
The host name determines the network adapter or interface that the
wire listener binds the server socket to. Tip: If you enable the wire listener to be accessed by clients on remote hosts, turn on authentication by using the authentication.enable parameter.
.-localhost-. >>-listener.hostName=--+-hostname--+--------------------------->< '-*---------'
- localhost
- Bind the wire listener to the localhost address. The wire listener is not accessible from clients on remote machines. This is the default value.
- hostname
- The host name or IP address of host machine where the wire listener binds to.
- *
- The wire listener can bind to all interfaces or addresses.
- listener.port
- This optional parameter specifies the port number to listen on for incoming connections from
clients. This value can be overridden from the command line by using the -port
argument. The default value is 27017.Important: If you specify a port number that is less than 1024, the user that starts the wire listener might require additional operating system privileges.
.-27017-------. >>-listener.port=--+-port_number-+-----------------------------><
- listener.timezone
- This parameter specifies the timezone of the listener java JVM. This will override any system or
user configured default timezone. The timezone property affects the timezone of date values that are
used outside of BSON documents. Important: It is recommended that the listener timezone be set to UTC (or GMT). You should change this property only if you are using the listener to interact with relational tables that store dates in a timezone other than UTC/GMT.
- Possible values: UTC, GMT, GMT+1, GMT+2, GMT-1, GMT-2, EST, CST, etc. Set this property to null to use the system's default timezone.
.-UTC------. >>-listener.timezone=--+-timezone-+----------------------------><
- listener.type
- This optional parameter specifies the type of wire listener to start.
.-mongo-. >>-listener.type=--+-rest--+----------------------------------->< '-mqtt--'
- mongo
- Connect the wire listener to the MongoDB API. This is the default value.
- rest
- Connect the wire listener to the REST API.
- mqtt
- Connect the wire listener to the MQTT protocol.
- response.documents.count.default
- This optional parameter specifies the default number of documents in a single response to a query. The default value is 100.
.-100----------. >>-response.documents.count.default=--+-default_docs-+---------><
- response.documents.count.maximum
- This optional parameter specifies the maximum number of documents in a single response to a query. The default value is 10000.
.-10000----. >>-response.documents.count.maximum=--+-max_docs-+-------------><
- response.documents.size.maximum
- This optional parameter specifies the maximum size, in bytes, of all documents in a single response to a query. The default value is 1048576.
.-1048576--. >>-response.documents.size.maximum=--+-max_size-+--------------><
- sharding.enable
- This optional parameter indicates whether to enable the use of commands and queries on sharded data.
.-false-. >>-sharding.enable=--+-true--+---------------------------------><
- false
- Do not enable the use of commands and queries on sharded data. This is the default value.
- true
- Enable the use of commands and queries on sharded data.
- sharding.parallel.query.enable
- This optional parameter indicates whether to enable the use of parallel sharded queries. Parallel sharded queries require that the SHARD_ID configuration parameter be set to unique IDs on all shard servers. The sharding.enable parameter must also be set to true.
.-false-. >>-sharding.parallel.query.enable=--+-true--+------------------><
- false
- Do not enable parallel sharded queries. This is the default value.
- true
- Enable parallel sharded queries.
Command and operation configuration
These parameters provide configuration options for JSON commands and operations.- collection.informix.options
- This optional parameter specifies which table options for shadow columns or auditing to use when creating a JSON collection.
.-,---------------. V | >>-collection.informix.options=[-----+-------------+-+---]----->< +-"audit"-----+ +-"crcols"----+ +-"erkey"-----+ +-"replcheck"-+ '-"vercols"---'
- audit
- Use the AUDIT option of the CREATE TABLE statement to create a table to be included in the set of tables that are audited at the row level if selective row-level is enabled.
- crcols
- Use the CRCOLS option of the CREATE TABLE statement to create two shadow columns that Enterprise Replication uses for conflict resolution.
- erkey
- Use the ERKEY option of the CREATE TABLE statement to create the ERKEY shadow columns that Enterprise Replication uses for a replication key.
- replcheck
- Use the REPLCHECK option of the CREATE TABLE statement to create the ifx_replcheck shadow column that Enterprise Replication uses for consistency checking.
- vercols
- Use the VERCOLS option of the CREATE TABLE statement to create two shadow columns that Informix uses to support update operations on secondary servers.
- command.listDatabases.sizeStrategy
- This optional parameter specifies a strategy for calculating
the size of your database when the MongoDB listDatabases
command is run. The listDatabases command estimates the size of all
collections and collection indexes for each database. However, relational
tables and indexes are excluded from this size calculation. Important: The MongoDB listDatabases command performs expensive and CPU-intensive computations on the size of each database in the database server instance. You can decrease the expense by using the command.listDatabases.sizeStrategy parameter.
.-estimate---------. >>-command.listDatabases.sizeStrategy=---+-{estimate:n}-----+--->< +-compute----------+ +-none-------------+ '-perDatabaseSpace-'
- estimate
- Estimate the
size of the database by sampling documents in every collection. This
is the default value. This strategy is the equivalent of {estimate:
1000}, which takes a sample size of 0.1% of the documents in every
collection. This is the default value.
command.listDatabases.sizeStrategy=estimate
- estimate: n
- Estimate the size of the database by sampling one document for
every n documents in every collection. The following
example estimates the collection size by using sample size of 0.5%
or 1/200th of the documents:
command.listDatabases.sizeStrategy={estimate:200}
- compute
- Compute the exact size of the database.
command.listDatabases.sizeStrategy=compute
- none
- List the databases but do not compute the size. The database size
is listed as 0.
command.listDatabases.sizeStrategy=none
- perDatabaseSpace
- Calculate the size of a database by adding the sizes for all dbspaces,
sbspaces, and blobspaces that are assigned to the tenant database. Important: The perDatabaseSpace option applies only to tenant databases that are created by the multi-tenancy feature.
- update.client.strategy
- This optional parameter specifies the method that is used by the wire listener to send updates to the database server. When the wire listener does the update processing, it queries the server for the existing document and then updates the document.
.-updatableCursor-. >>-update.client.strategy=---+-deleteInsert----+---------------><
- updatableCursor
- Updates are sent to the database server by using an updatable cursor. This is the default value.
- deleteInsert
- The original document is deleted when the updated document is
inserted.Important: If the collection is sharded, you must use this method.
- update.mode
- This optional parameter determines where document updates are processed. The default value is update.mode=mixed.
.-mixed--. >>-update.mode=---+-client-+-----------------------------------><
- client
- Use the wire listener to process updates. You must use this mode if you enable sharding and want to allow the updating of shard key field values.
- mixed
- Attempt to process updates on the database server first, then fallback to the wire listener. This is the default value.
Database resource management
These parameters provide database resource management options.- database.buffer.enable
- Prerequisite: database.log.enable=trueThis optional parameter indicates whether to enable buffered logging when you create a database by using the wire listener.
.-true--. >>-database.buffer.enable=--+-false-+--------------------------><
- true
- Enable buffered logging. This is the default value.
- false
- Do not enable buffered logging.
- database.create.enable
- This optional parameter indicates whether to enable the automatic creation of a database, if a database does not exist.
.-true--. >>-database.create.enable=--+-false-+--------------------------><
- true
- If a database does not exist, create a database. This is the default value.
- false
- If a database does not exist, do not create a database. With this option, you can access only existing databases.
- database.dbspace
- Prerequisite: dbspace.strategy=fixedThis optional parameter specifies the name of the dbspace databases that are created. The default value is database.dbspace=rootdbs.
.-rootdbs------. >>-database.dbspace=--+-dbspace_name-+-------------------------><
- database.locale.default
- This optional parameter specifies the default locale to use when a database is created by using the wire listener. The default value is en_US.utf8.
.-en_US.utf8-. >>-database.locale.default=--+-locale-----+--------------------><
- database.log.enable
- This optional parameter indicates whether to create databases that are enabled for logging.
.-true--. >>-database.log.enable=--+-false-+-----------------------------><
- true
- Create databases that are enabled for logging. This is the default value. Use the database.buffer.enable parameter to enable buffered logging.
- false
- Do not create databases that are enabled for logging.
- database.onException.errorCodes
- A JSON document describing what actions to take on specific database error codes. Each action should be followed by an array of the database's integer error codes that should trigger the specified action.
- closePools
- Error codes that should trigger the listener to close the existing connection pools.
- disposeOfConnections
- Error codes that indicate the current connection is stale and should be disposed of.
- removeCollectionFromCache
- Error codes that indicate that the listener's currently cached information about the collection is stale and should be refreshed.
- reprepareStatement
- Error codes that indicate that the prepared statement should be re-prepared.
- retryStatement
- Error codes that indicate that an insert, update, delete or query statement should be retried once before the error/result is returned to the client.
- These lists of error codes are the default values for each statement, and can be changed or
added as you desire. For example:
database.onException.errorCodes={ "closePools":[-79716, -79730, -79735], "disposeOfConnection":[-349, -79716, -79730, -79735], "removeCollectionFromCache":[-710, -206], "reprepareStatement":[-208, -267, -285, -79716], "retryStatement":[] }
- dbspace.strategy
- This optional parameter specifies the strategy to use when determining the location of new databases, tables, and indexes.
.-autolocate-. >>-dbspace.strategy=--+-fixed------+---------------------------><
- autolocate
- The database server automatically determines the dbspace for the new databases, tables, and indexes. This is the default value.
- fixed
- Use a specific dbspace, as specified by the database.dbspace property.
- fragment.count
- This optional parameter specifies the number of fragments to use when creating a collection. If you specify 0, the database server determines the number of fragments to create. If you specify a fragment_num greater than 0, that number of fragments are created when the collection is created. The default value is 0.
.-0------------. >>-fragment.count=--+-fragment_num-+---------------------------><
- jdbc.afterNewConnectionCreation
- This optional parameter specifies one or more SQL commands to run after a new connection to the database is created.
.-,-------------. V | >>-jdbc.afterNewConnectionCreation=[---"sql_command"-+-]-------><
- For example, to accelerate queries run through the wire listener by using Informix
Warehouse Accelerator:
jdbc.afterNewConnectionCreation=["SET ENVIRONMENT USE_DWA 'ACCELERATE ON'"]
MongoDB compatibility
These parameters provide options for MongoDB compatibility.- compatible.maxBsonObjectSize.enable
- This optional parameter indicates whether the maximum BSON object
size is compatible with MongoDB.Tip: If you insert a BSON document by using an SQL operation, Informix supports a maximum document size of 2 GB.
.-false-. >>-compatible.maxBsonObjectSize.enable=--+-true--+-------------><
- false
- Use a maximum document size of 256 MB with the wire listener. This is the default value.
- true
- Use a maximum document size of 16 MB. The maximum document size for MongoDB is 16 MB.
- mongo.api.version
- This optional parameter specifies the MongoDB API version with which the wire listener is compatible. The version affects authentication methods as well as MongoDB commands.
.-2.6-. >>-mongo.api.version=--+-2.4-+--------------------------------->< '-3.0-'
- Important: Do not set mongo.api.version=3.0 if you want to use the REST API or database server authentication. See User authentication with the wire listener.
- update.one.enable
- This optional parameter indicates whether to enable support for
updating a single JSON document. Important: The update.one.enable parameter applies to JSON collections only. For relational tables, the MongoDB multi-parameter is ignored and all documents that meet the query criteria are updated.
.-false-. >>-update.one.enable=--+-true--+-------------------------------><
- false
- All collection updates are treated as multiple JSON document updates. This is the default value.
- With the update.one.enable=false setting, the MongoDB db.collection.update multi-parameter is ignored and all documents that meet the query criteria are updated.
- true
- Allow updates on collections to a single document or multiple documents.
- With the update.one.enable=true setting, the MongoDB db.collection.update multi-parameter is accepted. The db.collection.update multi-parameter controls whether you can update a single document or multiple documents.
Performance
These parameters provide performance options for databases and collections.- delete.preparedStatement.cache.enable
- This optional parameter indicates whether to cache prepared statements that delete documents for reuse.
.-true--. >>-delete.preparedStatement.cache.enable=--+-false-+-----------><
- true
- Use a prepared statement cache for statements that delete documents. This is the default value.
- false
- Do not use a prepared statement cache for statements that delete documents. A new statement is prepared for each query.
- insert.batch.enable
- If multiple documents are sent as a part of a single INSERT statement, this optional parameter indicates whether to batch document inserts operations into collections.
.-true--. >>-insert.batch.enable=--+-false-+-----------------------------><
- true
- Batch document inserts into collections by using JDBC batch calls to perform the insert operations. This is the default value.
- false
- Do not batch document insert operations into collections.
- insert.batch.queue.enable
- This optional parameter indicates whether to queue INSERT statements into larger batches. You can improve insert performance by queuing INSERT statements, however, there is decreased durability.
- This parameter batches all INSERT statements, even a single INSERT statement. These batched INSERT statements are flushed at the interval that is specified by the insert.batch.queue.flush.interval parameter, unless another operation arrives on the same collection. If another operation arrives on the same collection, the batch inserts are immediately flushed to the database server before proceeding with the next operation.
.-false-. >>-insert.batch.queue.enable=--+-true--+-----------------------><
- false
- Do not queue INSERT statements. This is the default.
- true
- Queue INSERT statements into larger batches. Use the insert.batch.queue.flush.interval parameter to specify the amount of time between insert queue flushes.
- insert.batch.queue.flush.interval
- Prerequisite: insert.batch.queue.enable=trueThis optional parameter specifies the number of milliseconds between flushes of the insert queue to the database server. The default value is insert.batch.queue.flush.interval=100.
>>-insert.batch.queue.flush.interval=---------------------------> .-100-----------------. >--+-flush_interval_time-+-------------------------------------><
- index.cache.enable
- This optional parameter indicates whether to enable index caching on collections. To write the most efficient queries, the wire listener must be aware of the existing BSON indexes on your collections.
.-true--. >>-index.cache.enable=--+-false-+------------------------------><
- true
- Cache indexes on collections. This is the default value.
- false
- Do not cache indexes on collections. The wire listener queries the database for indexes each time a collection query is translated to SQL.
- index.cache.update.interval
- This optional parameter specifies the amount of time, in seconds, between updates to the index cache on a collection table. The default value is index.cache.update.interval=120.
.-120-------------------. >>-index.cache.update.interval=--+-cache_update_interval-+-----><
- insert.preparedStatement.cache.enable
- This optional parameter indicates whether to cache the prepared statements that are used to insert documents.
.-true--. >>-insert.preparedStatement.cache.enable=--+-false-+-----------><
- true
- Cache the prepared statements that are used to insert documents. This is the default value.
- false
- Do not cache the prepared statements that are used to insert documents.
- preparedStatement.cache.enable
- This optional parameter indicates whether to cache prepared statements for reuse.
.-true--. >>-preparedStatement.cache.enable=--+-false-+------------------><
- true
- Use a prepared statement cache. This is the default value.
- false
- Do not use a prepared statement cache. A new statement is prepared for each query.
- preparedStatement.cache.size
- This optional parameter specifies the size of the least-recently used (LRU) map that is used to cache prepared statements. The default value is preparedStatement.cache.size=20.
.-20-------. >>-preparedStatement.cache.enable=--+-LRU_size-+---------------><
Security
The parameters provide security enablement options.- authentication.enable
- This optional parameter indicates whether to enable user authentication.
You can choose to authenticate users through the wire listener or in the database server.
.-false-. >>-authentication.enable=--+-true--+---------------------------><
- false
- Do not authenticate users. This is the default value.
- true
- Authenticate users. Use the authentication.localhost.bypass.enable parameter to control the type of authentication.
- authentication.localhost.bypass.enable
- Prerequisite: authentication.enable=trueIf you connect from the localhost to the admin database, and the admin database contains no users, this optional parameter indicates whether to grant full administrative access.
- The admin database is similar to the MongoDB admin database. The authentication.localhost.bypass.enable parameter is similar to the MongoDB enableLocalhostAuthBypass parameter.
.-true--. >>-authentication.localhost.bypass.enable=--+-false-+----------><
- true
- Grant full administrative access to the user. This is the default value.
- false
- Do not grant full administrative access to the user.
- command.blacklist
- This optional parameter lists commands that are removed from the command registry and cannot be called. By default, the black list is empty.
.-,-------. V | >>-command.blacklist=[---command-+-]---------------------------><
- db.authentication
- This optional parameter specifies the user authentication method. See User authentication with the wire listener.
.-mongodb-cr----------. >>-db.authentication=--+-informix-mongodb-cr-+-----------------><
- mongdb-cr
- Authenticate through the wire listener with a MongoDB authentication method. The MongoDB authentication method depends on the setting of the mongo.api.version parameter.
- informix-mongodb-cr
- Authenticate through the database server with a pluggable authentication module.
- listener.admin.ipAddress
- This optional parameter specifies the IP address for the administrative host. Must be a loopback
IP address. The default value is 127.0.0.1.Important: If you specify an address that is not a loopback IP address, an attacker might perform a remote privilege escalation and obtain administrative privileges without knowing a user password.
>>-listener.admin.ipAddress=ip_address-------------------------><
- listener.authentication.timeout
- This optional parameter specifies the number of milliseconds that the wire listener waits for a client connection to authenticate. The default value is 0, which indicates that the wire listener waits indefinitely for client connections to authenticate.
>>-listener.authentication.timeout=milliseconds----------------><
- listener.http.accessControlAllowCredentials
- This optional parameter indicates whether to display the response to the request when the omit credentials flag is not set. When this parameter is part of the response to a preflight request, it indicates that the actual request can include user credentials.
.-true--. >>-listener.http.accessControlAllowCredentials=--+-false-+-----><
- true
- Display the response to the request. This is the default value.
- false
- Do not display the response to the request.
- listener.http.accessControlAllowHeaders
- This optional parameter, which is part of the response to a preflight request, specifies the header field names that are used during the actual request. You must specify the value by using a JSON array of strings. Each string in the array is the case-insensitive header field name. The default value is listener.http.accessControlAllowHeaders=["accept","cursorId","content-type"].
>>-listener.http.accessControlAllowHeaders=---------------------> .-"accept","cursorId","content-type"-. | .-,-----------------------. | | V | | >--[-+---"--header_field_name--"-+--------+-]------------------><
- For example, to allow the headers foo and bar in
a request:
listener.http.accessControlAllowHeaders=["foo","bar"]
- listener.http.accessControlAllowMethods
- This optional parameter, which is part of the response to a preflight request, specifies the REST methods that are used during the actual request. You must specify the value by using a JSON array of strings. Each string in the array is the name of an HTTP method that is allowed. The default value is listener.http.accessControlAllowMethods=["GET","PUT","POST","DELETE","OPTIONS"].
>>-listener.http.accessControlAllowMethods=---------------------> .-"GET","PUT","POST","DELETE","OPTIONS"-. | .-,-----------------. | | V | | >--[-+---"--rest_method--"-+-----------------+-]---------------><
- listener.http.accessControlAllowOrigin
- This optional parameter specifies which uniform resource identifiers (URI) are authorized to receive responses from the REST listener when processing cross-origin resource sharing (CORS) requests. You must specify the value by using a JSON array of strings, with a separate string in the array for each value for the HTTP Origin header in a request. The values that are specified in this parameter are validated to ensure that they are identical to the Origin header.
- HTTP requests include an Origin header that specifies the URI that served the resource that processes the request. When a resource from a different origin is accessed, the resource is validated to determine whether sharing is allowed.
- The default value, listener.http.accessControlAllowOrigin={"$regex":".*"}, means that any origin is allowed to perform a CORS request.
>>-listener.http.accessControlAllowOrigin=----------------------> .-"$regex":".*"--. >--{-+-authorized_URI-+-}--------------------------------------><
- Here are some usage examples:
- Grant access to the localhost:
listener.http.accessControlAllowOrigin="http://localhost"
- Grant access to all hosts in the subnet 10.168.8.0/24. The first
3 segments are validated as 10, 168, and 8, and the fourth segment
is validated as a value 1 - 255:
listener.http.accessControlAllowOrigin={"$regex":"^http://10\\\\.168\\\\.8\\\\.([01]?\\\\ d\\\\d?|2[0-4]\\\\d|25[0-5])$" }
- Grant access to all hosts in the subnet 10.168.8.0/24. The first
3 segments are validated as 10, 168, and 8, and the fourth segment
must contain one or more digits:
listener.http.accessControlAllowOrigin={"$regex": "^http://10\\\\.168\\\\.8\\\\.\\\\d+$" }
- Grant access to the localhost:
- listener.http.accessControlExposeHeaders
- This optional parameter specifies which headers of a CORS request to expose to the API. You must specify the value by using a JSON array of strings. Each string in the array is the case-insensitive name of a header to be exposed. The default value is listener.http.accessControlExposeHeaders=["cursorId"].
>>-listener.http.accessControlExposeHeaders=--------------------> .-["cursorId"]-. >--+-CORS_headers-+--------------------------------------------><
- For example, to expose the headers foo and bar to
a client:
listener.http.accessControlExposeHeaders=["foo","bar"]
- listener.http.accessControlMaxAge
- This optional parameter specifies the amount of time, in seconds, that the result of a preflight request is cached in a preflight result cache. A value of 0 indicates that the Access-Control-Max-Age header is not included in the response to a preflight request. A value greater than 0 indicates that the Access-Control-Max-Age header is included in the response to a preflight request.
- The default value is listener.http.accessControlMaxAge=0.
>>-listener.http.accessControlMaxAge=---------------------------> .-0---------------------------. >--+-preflight_result_cache_time-+-----------------------------><
- listener.http.headers
- This optional parameter specifies the information to include in the HTTP headers of responses, as a JSON document. The default value is no additional information in the HTTP headers.
>>-listener.http.headers=JSON_document-------------------------><
- For example, you set this parameter to the following value:
Then the HTTP headers for all responses look like this:listener.http.headers={ "Access-Control-Allow-Origin" : "http://192.168.0.1", "Access-Control-Allow-Credentials" : "true" }
Access-Control-Allow-Origin : http://192.168.0.1 Access-Control-Allow-Credentials : true
- listener.http.headers.size.maximum
- This optional parameter specifies the maximum size of headers in incoming HTTP requests. The default is 8192 bytes.
.-8192-. >>-listener.http.headers.size.maximum=--+-size-+---------------><
- listener.rest.cookie.domain
- This optional parameter specifies the name of the cookie that is created by the REST wire listener. If not specified, the domain is the default value as determined by the Apache Tomcat web server.
>>-listener.rest.cookie.domain=--+------------------+---------->< '-rest_cookie_name-'
- listener.rest.cookie.httpOnly
- This optional parameter indicates whether to set the HTTP-only flag.
.-true--. >>-listener.rest.cookie.httpOnly=--+-false-+-------------------><
- true
- Set the HTTP-only flag. This flag helps to prevent cross-site scripting attacks. This is the default value.
- false
- Do not set the HTTP-only flag.
- listener.rest.cookie.length
- This optional parameter specifies the length, in bytes, of the cookie value that is created by the REST wire listener, before Base64 encoding. The default value is listener.rest.cookie.length=64.
.-64-----------------. >>-listener.rest.cookie.length=--+-rest_cookie_length-+--------><
- listener.rest.cookie.name
- This optional parameter specifies the name of the cookie that is created by the REST wire listener to identify a session. The default value is listener.rest.cookie.name=informixRestListener.sessionId.
>>-listener.rest.cookie.name=-----------------------------------> .-informixRestListener.sessionId-. >--+-rest_cookie_name---------------+--------------------------><
- listener.rest.cookie.path
- This optional parameter specifies the path of the cookie that is created by the REST wire listener. The default value is listener.rest.cookie.path=/.
.-/----------------. >>-listener.rest.cookie.path=--+-rest_cookie_path-+------------><
- listener.rest.cookie.secure
- This optional parameter indicates whether the cookies that are created by the REST wire listener have the secure flag on. The secure flag prevents the cookies from being used over an unsecure connection.
.-false-. >>-listener.rest.cookie.secure=--+-true--+---------------------><
- false
- Turn off the secure flag. This is the default value.
- true
- Turn on the secure flag.
- listener.ssl.algorithm
- This optional parameter specifies the Service Provider Interface (SPI) for the KeyManagerFactory
that is used to access the network encryption keystore. On an Oracle Java Virtual Machine (JVM),
this value is typically SunX509. On an IBM® JVM, this value is typically IbmX509. The default value is no SPI.Important: Do not set this property if you are not familiar with Java Cryptography Extension (JCE).
>>-listener.ssl.algorithm=SPI----------------------------------><
- listener.ssl.ciphers
- This optional parameter specifies a list of Secure Sockets Layer (SSL) or Transport Layer
Security (TLS) ciphers to use with network encryption. The default value is no ciphers, which means
that the default list of enabled ciphers for the JVM are used.Important: Do not set this property if you are not familiar with Java Cryptography Extension (JCE) and the implications of using multiple ciphers. Consult a security expert for advice.
.-,------. V | >>-listener.ssl.ciphers=---cipher-+----------------------------><
You can include spaces between ciphers.- For example, you can set the following
ciphers:
listener.ssl.ciphers=TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV
- listener.ssl.enable
- This optional parameter enables SSL or TLS network encryption on the socket for client connections. See Configuring SSL connections between the wire listener and client applications.
.-false-. >>-listener.ssl.enable=--+-true--+-----------------------------><
- false
- Disable network encryption. This is the default.
- true
- Allow network encryption.
- listener.ssl.key.alias
- This optional parameter specifies the alias, or identifier, of the entry into the keystore. The default value is no alias, which indicates that the keystore contains one entry. If the keystore contain more than one entry and a key password is needed to unlock the keystore, set this parameter to the alias of the entry that unlocks the keystore.
>>-listener.ssl.key.alias=alias--------------------------------><
- This parameter is effective when the listener.ssl.enable parameter is set to true.
- listener.ssl.key.password
- This optional parameter specifies the password to unlock the entry into the keystore, which is identified by the listener.ssl.key.alias parameter. The default value is no password, which means to use the keystore password. If the entry into the keystore requires a password that is different from the keystore password, set this parameter to the entry password.
>>-listener.ssl.key.password=password--------------------------><
- This parameter is effective when the listener.ssl.enable parameter is set to true.
- listener.ssl.keyStore.file
- This optional parameter specifies the fully-qualified path and file name of the Java keystore file to use for network encryption. The default value is no file.
>>-listener.ssl.keyStore.file=file_path------------------------><
- This parameter is effective when the listener.ssl.enable parameter is set to true.
- listener.ssl.keyStore.password
- This optional parameter specifies the password to unlock the Java keystore file for network encryption. The default value is no password.
>>-listener.ssl.keyStore.password=password---------------------><
- This parameter is effective when the listener.ssl.enable parameter is set to true.
- listener.ssl.keyStore.type
- This optional property specifies the provider identifier for the network encryption keystore
SPI. The default value is JKS.Important: Do not set this property if you are not familiar with Java Cryptography Extension (JCE).
>>-listener.ssl.keyStore.type=SPI------------------------------><
- This parameter is effective when the listener.ssl.enable parameter is set to true.
- listener.ssl.protocol
- This optional parameter specifies the SSL or TLS protocols. The default value is TLS.
.-,--------. V | >>-listener.ssl.protocol=---protocol-+-------------------------><
- This parameter is effective when the listener.ssl.enable parameter is set to true.
- security.sql.passthrough
- This optional parameter indicates whether to enable support for issuing SQL statements by using JSON documents.
.-false-. >>-security.sql.passthrough=--+-true--+------------------------><
- false
- Disable the ability to issue SQL statements by using the MongoDB API. This is the default.
- true
- Allow SQL statements to be issued by using the MongoDB API.
Wire listener resource management
These parameters provide wire listener resource management options.- cursor.idle.timeout
- This optional parameter specifies the number of milliseconds that a cursor can be idle before it is closed. The default value is 30000. A positive integer value for time specifies the number of milliseconds before an idle timeout.
.-30000-. >>-cursor.idle.timeout=--+-time--+-----------------------------><
- listener.connectionPool.closeDelay.time
- This optional parameter specifies the amount of time to keep a connection pool open after the last client disconnects. When the existing connection pool is open, the next connection can connect faster by reusing the existing pool instead of creating a new connection pool. The default value is 0, which indicates that the connection pool is closed immediately after the last client disconnects. A positive integer value for time specifies the number of time units to keep the connection pool open. The unit of time is set by the listener.connectionPool.closeDelay.timeUnit parameter.
.-0----. >>-listener.connectionPool.closeDelay.time=--+-time-+----------><
- listener.connectionPool.closeDelay.timeUnit
- This optional parameter specifies the time unit for the listener.connectionPool.closeDelay.time parameter. The unit can be NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, MINUTES, HOURS, or DAYS. The default value is SECONDS.
.-SECONDS-. >>-listener.connectionPool.closeDelay.timeUnit=--+-unit----+---><
- listener.idle.timeout
- This optional parameter specifies the amount of time, in milliseconds, that a client connection
to the wire listener can idle before it is forcibly closed. You can use this parameter to close
connections and free associated resources when clients are idle. The default value is 300000
milliseconds. The value of 0 indicates that client connections are never timed out.Important: When set to a nonzero value, the wire listener socket that is used to communicate with a MongoDB client is forcibly closed after the specified time. To the client, the forcible closure appears as an unexpected disconnection from the server the next time there is an attempt to write to the socket.
.-300000----. >>-listener.idle.timeout=--+-idle_time-+-----------------------><
- listener.idle.timeout.minimum
- This optional parameter specifies the lower threshold, in milliseconds, of the listener idle timeout, which is set by the low memory monitor. The default value is 10000 milliseconds. This property has no effect when the heap size is sufficiently large to not need a reduction in idle timeout.
.-10000-----. >>-listener.idle.timeout.minimum=--+-idle_time-+---------------><
- This parameter is effective when the listener.memoryMonitor.enable parameter is set to true.
- listener.input.buffer.size
- This optional parameter specifies the size, in MB, of the input buffer for each wire listener socket. The default value is 8192 bytes.
.-8192--------------. >>-listener.input.buffer.size=--+-input_buffer_size-+----------><
- listener.memoryMonitor.enable
- This optional parameter enables the wire listener memory monitor. When memory usage for the wire listener is high, the memory monitor attempts to reduce resources, such as removing cached JDBC prepared statements, removing idle JDBC connections from the connection pools, and reducing the maximum size of responses.
.-true--. >>-listener.memoryMonitor.enable=--+-false-+-------------------><
- true
- Enable the memory monitor. This is the default.
- false
- Disable the memory monitor.
- listener.memoryMonitor.allPoint
- This optional parameter specifies the maximum percentage of heap usage before the memory monitor reduces resources. The default value is 80.
>>-listener.memoryMonitor.allPoint=percentage------------------><
- This parameter is effective when the listener.memoryMonitor.enable parameter is set to true.
- listener.memoryMonitor.diagnosticPoint
- This optional parameter specifies the percentage of heap usage before diagnostic information about memory usage is logged. The default value is 99.
>>-listener.memoryMonitor.diagnosticPoint=percentage-----------><
- This parameter is effective when the listener.memoryMonitor.enable parameter is set to true.
- listener.memoryMonitor.zeroPoint
- This optional parameter specifies the percentage of heap usage before the memory manager reduces resource usage to the lowest possible levels. The default value is 95.
>>-listener.memoryMonitor.zeroPoint=percentage-----------------><
- This parameter is effective when the listener.memoryMonitor.enable parameter is set to true.
- listener.output.buffer.size
- This optional parameter specifies the size, in MB, of the output buffer for each listener socket. The default value is 8192 bytes.
.-8192---------------. >>-listener.output.buffer.size=--+-output_buffer_size-+--------><
- listener.pool.admin.enable
- This optional parameter enables a separate thread pool for connections from the administrative IP address, which is set by the listener.admin.ipAddress parameter. The default value is false. A separate thread pool ensures that administrative connections succeed even if the listener thread pool lacks available resources.
.-false-. >>-listener.pool.admin.enable=-+-true--+-----------------------><
- false
- Prevents a separate thread pool. This is the default.
- false
- Creates a separate thread pool for administrative connections.
- listener.pool.keepAliveTime
- This optional parameter specifies the amount of time, in seconds, that threads above the core pool size are allowed to idle before they are removed from the wire listener JDBC connection pool. The default value is 60 seconds.
.-60----------. >>-listener.pool.keepAliveTime=--+-thread_idle-+---------------><
- listener.pool.queue.size
- This optional parameter specifies the number of requests to queue above the core wire listener pool size before expanding the pool size up to the maximum. A positive integer specifies the queue size to use before expanding the pool size up to the maximum.
.-0--. >>-listener.pool.queue.size=--+--1-+---------------------------><
- 0
- Do not allocate a queue size for tasks. All new sessions are either run on an available or new thread up to the maximum pool size, or are rejected if the maximum pool size is reached. This is the default value.
- -1
- Allocate an unlimited queue size for tasks.
- listener.pool.size.core
- This optional parameter specifies the maximum sustained size of the thread pool that listens for incoming connections from clients. The default value is 128.
.-128-------------. >>-listener.pool.size.core=--+-max_thread_size-+---------------><
- listener.pool.size.maximum
- This optional parameter specifies the maximum peak size of the thread pool that listens for incoming connections from clients. The default value is 1024.
.-1024-----------------. >>-listener.pool.size.maximum=--+-max_peak_thread_size-+-------><
- listener.socket.accept.timeout
- This optional parameter specifies the number of milliseconds that a server socket waits for an accept() function. The default value is 1024. The value of 0 indicates to wait indefinitely. The value of this parameter can affect how quickly the wire listener shuts down.
>>-listener.socket.accept.timeout=milliseconds-----------------><
- listener.socket.read.timeout
- This optional parameter specifies the number of milliseconds to block when calling a read() function on the socket input stream. The default value is 1024. A value of 0 might prevent the wire listener from shutting down because the threads that poll the socket might never unblock.
>>-listener.socket.read.timeout=milliseconds-------------------><
- pool.connections.maximum
- This optional parameter specifies the maximum number of active connections to a database. The default value is 50.
.-50-----------------. >>-pool.connections.maximum=--+-max_active_connect-+-----------><
- pool.idle.timeout
- This optional parameter specifies the minimum amount of time that an idle connection is in the
idle pool before it is closed. The default value is 60 and the default time unit is seconds.Important: Set the unit of time in the pool.idle.timeunit parameter. The default value is seconds.
.-60------------. >>-pool.idle.timeout=--+-min_idle_pool-+-----------------------><
- pool.idle.timeunit
- Prerequisite: pool.idle.timeout=timeThis optional parameter specifies the unit of time that is used to scale the pool.idle.timeout parameter.
.-SECONDS------. >>-pool.idle.timeunit=--+-NANOSECONDS--+----------------------->< +-MICROSECONDS-+ +-MILLISECONDS-+ +-MINUTES------+ +-HOURS--------+ '-DAYS---------'
- SECONDS
- Use seconds as the unit of time. This is the default value.
- NANOSECONDS
- Use nanoseconds as the unit of time.
- MICROSECONDS
- Use microseconds as the unit of time.
- MILLISECONDS
- Use milliseconds as the unit of time.
- MINUTES
- Use minutes as the unit of time.
- HOURS
- Use hours as the unit of time.
- DAYS
- Use days as the unit of time.
- pool.lenient.return.enable
- This optional parameter suppresses the following checks on a connection that is being returned
that might throw exceptions:
- An attempt to return a pooled connection that is already returned.
- An attempt to return a pooled connection that is owned by another pool.
- An attempt to return a pooled connection that is an incorrect type.
.-false-. >>-pool.lenient.return.enable=-+-true--+-----------------------><
- false
- Connection checks are enabled. This is the default.
- false
- Connection checks are disabled.
- pool.lenient.dispose.enable
- This optional parameter suppresses the checks on a connection that is being disposed of that might throw exceptions.
.-false-. >>-pool.lenient.dispose.enable=-+-true--+----------------------><
- false
- Connection checks are enabled. This is the default.
- false
- Connection checks are disabled.
- pool.semaphore.timeout
- This optional parameter specifies the amount of time to wait to acquire a permit for a database
connection. The default value is 5 and the default time unit is seconds.Important: Set the unit of time in the pool.semaphore.timeunit parameter.
.-5---------. >>-pool.semaphore.timeout=--+-wait_time-+----------------------><
- pool.semaphore.timeunit
- Prerequisite: pool.semaphore.timeout=wait_timeThis optional parameter specifies the unit of time that is used to scale the pool.semaphore.timeout parameter.
.-SECONDS------. >>-pool.semaphore.timeunit=--+-NANOSECONDS--+------------------>< +-MICROSECONDS-+ +-MILLISECONDS-+ +-MINUTES------+ +-HOURS--------+ '-DAYS---------'
- SECONDS
- Use seconds as the unit of time. This is the default value.
- NANOSECONDS
- Use nanoseconds as the unit of time.
- MICROSECONDS
- Use microseconds as the unit of time.
- MILLISECONDS
- Use milliseconds as the unit of time.
- MINUTES
- Use minutes as the unit of time.
- HOURS
- Use hours as the unit of time.
- DAYS
- Use days as the unit of time.
- pool.service.interval
- This optional parameter specifies the amount of time to wait between scans of the idle
connection pool. The idle connection pool is scanned for connections that can be closed because they
have exceeded their maximum idle time. The default value is 30.Important: Set the unit of time in the pool.service.timeunit parameter.
.-30--------. >>-pool.service.interval=--+-wait_time-+-----------------------><
- pool.service.threads
- This optional parameter specifies the number of threads to use for the maintenance of connection pools that share a common service thread pool. The default value is 1.
>>-pool.service.threads=number---------------------------------><
- pool.service.timeunit
- Prerequisite: pool.service.interval=wait_timeThis optional parameter specifies the unit of time that is used to scale the pool.service.interval parameter.
.-SECONDS------. >>-pool.service.timeunit=--+-NANOSECONDS--+-------------------->< +-MICROSECONDS-+ +-MILLISECONDS-+ +-MINUTES------+ +-HOURS--------+ '-DAYS---------'
- SECONDS
- Use seconds as the unit of time. This is the default value.
- NANOSECONDS
- Use nanoseconds as the unit of time.
- MICROSECONDS
- Use microseconds as the unit of time.
- MILLISECONDS
- Use milliseconds as the unit of time.
- MINUTES
- Use minutes as the unit of time.
- HOURS
- Use hours as the unit of time.
- DAYS
- Use days as the unit of time.
- pool.size.initial
- This optional parameter specifies the initial size of the idle connection pool. The default value is 0.
.-0----------------------. >>-pool.size.initial=--+-idle_pool_initial_size-+--------------><
- pool.size.minimum
- This optional parameter specifies the minimum size of the idle connection pool. The default value is 0.
.-0------------------. >>-pool.size.minimum=--+-idle_pool_min_size-+------------------><
- pool.size.maximum
- This optional parameter specifies the maximum size of the idle connection pool. The default value is 50.
.-50-----------------. >>-pool.size.maximum=--+-idle_pool_max_size-+------------------><
- pool.type
- This optional parameter specifies the type of pool to use for JDBC connections. The available pool types are:
.-basic-----. >>-pool.type=--+-none------+----------------------------------->< +-advanced--+ '-perThread-'
- basic
- Thread pool maintenance of idle threads is run each time that a connection is returned. This is the default value.
- none
- No thread pooling occurs. Use this type for debugging purposes.
- advanced
- Thread pool maintenance is run by a separate thread.
- perThread
- Each thread is allocated a connection for its exclusive use.
- pool.typeMap.strategy
- This optional parameter specifies the strategy to use for distribution and synchronization of the JDBC type map for each connection in the pool.
.-copy--. >>-pool.typeMap.strategy=--+-clone-+--------------------------->< '-share-'
- copy
- Copy the connection pool type map for each connection. This is the default value.
- clone
- Clone the connection pool type map for each connection.
- share
- Share a single type map between all connections. You must use this strategy with a thread-safe type map.
- response.documents.size.minimum
- This optional parameter specifies the number of bytes for the lower threshold for the maximum response size, which is set by the response.documents.size.maximum parameter. The memory manager can reduce the response size to this size when resources are low. The default value is 65536 bytes.
>>-response.documents.size.minimum=bytes-----------------------><
- This parameter is effective when the listener.memoryMonitor.enable parameter is set to true.
- timeseries.loader.connections
- This optional parameter specifies the number of connections between each time series table and the MQTT wire listener for loading time series data. The default value is 10 connections per table.
.-10-----. >>-timeseries.loader.connections=-+-number-+-------------------><