The wire listener configuration file

The wire listener is configured through a properties file. This properties file contains, among other things, settings for the connection between the wire listener and the database server.

The default name for the configuration file is $INFORMIXDIR/etc/jsonListener.properties. You can rename this file, but the suffix must be .properties.

A sample properties file is provided at $INFORMIXDIR/etc/jsonListener-example.properties. In the sample properties file, all of the parameters are commented out by default. To enable a parameter, you must uncomment the row and customize the parameter.

To modify the wire listener configuration file once the listener is started, you must first stop the wire listener, then update the configuration file and restart the wire listener for the changes to take affect.

Wire listener configuration properties

Important: The url parameter is required. All other parameters are optional.

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.

1 url= jdbc:onedb://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 HCL OneDB™ environment variables that are supported by the JDBC driver, see HCL OneDB environment variables with the HCL OneDB JDBC Driver.
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 HCL OneDB database server. If you plan to use this connection to establish or modify collection shards by using the HCL OneDB 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 onedb-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 HCL OneDB 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.

1 documentIdAlgorithm=
1! ObjectId
1 SHA-256
1 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).
ObjectId is the default value and it is suitable for most situations.
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-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.

1 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.

1 listener.onException=
1! reply
1 closeSession
1 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.

1 listener.hostName=
1! localhost
1 hostname
1 *
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.

1 listener.port=
1! 27017
1 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.

1 listener.timezone=
1! UTC
1 timezone
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.

1 response.documents.count.default=
1! 100
1 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.

1 response.documents.count.maximum=
1! 10000
1 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.

1 response.documents.size.maximum=
1! 1048576
1 max_size
sharding.enable
This optional parameter indicates whether to enable the use of commands and queries on sharded data.

1 sharding.enable=
1! false
1 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.

1 sharding.parallel.query.enable=
1! false
1 true
false
Do not enable parallel sharded queries. This is the default value.
true
Enable parallel sharded queries.

High Availability

These parameters provide configuration options for ensuring high availability and transaction survivability to your MongoDB applications in case of a database server failover.
failover.retry.enable
Enables the listener to automatically retry client requests if a possible server failover is detected.

In the case of a server failover, the wire listener can be automatically rerouted by the Connection Manager to the new primary in the high-availability cluster, or to any other online server in the cluster, depending on how the service level agreement rules are configured. In such a scenario, you may choose to enable the wire listener to monitor for failover error codes from the server. If such a failure is detected, the wire listener will attempt to automatically reconnect through the Connection Manager to another server in the cluster and retry the client operations there. The wire listener will only return an error to the client application if it cannot establish a new connection to the cluster. This automatic retry provides seamless high availability to MongoDB client applications with the wire listener and the Connection Manager automatically handling the rerouting of client operations in the event of a database server failover.

If failover.retry.enable is set to true, the url property must point to a OneDB Connection Manager.


1 failover.retry.enable=
1! false
1 true
true
Enable automatic retry of client requests if a possible server failover is detected.
false
Disable automatic retry of client requests.
failover.retry.delay
This optional parameter specifies the delay in milliseconds that the wire listener waits before trying to reestablish a connection after a failover error code is received from the database server. This parameter only takes effect if failover.retry.enable=true.

1 failover.retry.delay=
1! 10000
1 milliseconds
failover.retry.errorCodes
This optional parameter specifies the list of database server error codes that will be considered an indication of a possible failover.

If failover.retry.enable is set to true, this list provides the list of error codes that will trigger the wire listener to attempt to reestablish a connection from the Connection Manager and retry the client request again. This parameter only takes effect if failover.retry.enable=true.


1 failover.retry.errorCodes=
1! [-908, -930, -931, -404, -1803, -25582, -27002, -27009, -79716, -79730,
                    -79735]
1 list of error codes
failover.retry.maxRetries
This optional parameter specifies the maximum number of times the wire listener will retry an client request after a potential failover error is received from the database server.

If the wire listener is connected to a Connection Manager that can automatically reroute the wire listener when a server failover occurs, this failover.retry.maxRetries parameter controls how many times the wire listener will attempt to reestablish a connection and retry the client operation that failed. This parameter only takes effect if failover.retry.enable=true.


1 failover.retry.maxRetries=
1! 12
1 number of retries

Command and operation configuration

These parameters provide configuration options for JSON commands and operations.
collection.onedb.options
This optional parameter specifies which table options for shadow columns or auditing to use when creating a JSON collection.

1 collection.onedb.options=[
2.2.1+ ,
2.2.1 "audit"
2.2.1 "crcols"
2.2.1 "erkey"
2.2.1 "replcheck"
2.2.1 "vercols"
1]
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 HCL OneDB 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.

1 command.listDatabases.sizeStrategy=
2.2.1! estimate
2.2.1 { estimate:n}
2.2.1 compute
2.2.1 none
2.2.1 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.

1 update.client.strategy=
2.2.1! updatableCursor
2.2.1 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.

1 update.mode=
2.2.1! mixed
2.2.1 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=true
This optional parameter indicates whether to enable buffered logging when you create a database by using the wire listener.

1 database.buffer.enable=
1 true
1! false
true
Enable buffered logging.
false
Do not enable buffered logging. This is the default value.
database.create.enable
This optional parameter indicates whether to enable the automatic creation of a database, if a database does not exist.

1 database.create.enable=
1! true
1 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=fixed
This optional parameter specifies the name of the dbspace databases that are created. The default value is database.dbspace=rootdbs.

1 database.dbspace=
1! rootdbs
1 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.

1 database.locale.default=
1! en_US.utf8
1 locale
database.log.enable
This optional parameter indicates whether to create databases that are enabled for logging.

1 database.log.enable=
1! true
1 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.

1 dbspace.strategy=
1! autolocate
1 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.

1 fragment.count=
1! 0
1 fragment_num
jdbc.afterNewConnectionCreation
This optional parameter specifies one or more SQL commands to run after a new connection to the database is created.

1 jdbc.afterNewConnectionCreation=[+ ,"sql_command"]

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, HCL OneDB supports a maximum document size of 2 GB.

1 compatible.maxBsonObjectSize.enable=
1! false
1 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.

1 mongo.api.version=
1! 4.0
1 4.2
Note: 4.0 is the default value.
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.

1 update.one.enable=
1! false
1 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.

1 delete.preparedStatement.cache.enable=
1! true
1 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.

1 insert.batch.enable=
1! true
1 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.

1 insert.batch.queue.enable=
1! false
1 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=true
This 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.

1 insert.batch.queue.flush.interval=
1! 100
1 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.

1 index.cache.enable=
1! true
1 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.

1 index.cache.update.interval=
1! 120
1 cache_update_interval
insert.preparedStatement.cache.enable
This optional parameter indicates whether to cache the prepared statements that are used to insert documents.

1 insert.preparedStatement.cache.enable=
1! true
1 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.

1 preparedStatement.cache.enable=
1! true
1 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.

1 preparedStatement.cache.enable=
1! 20
1 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.


1 authentication.enable=
1! false
1 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=true
If you connect from the localhost to the HCL OneDB admin database, and the admin database contains no users, this optional parameter indicates whether to grant full administrative access.
The HCL OneDB admin database is similar to the MongoDB admin database. The HCL OneDB authentication.localhost.bypass.enable parameter is similar to the MongoDB enableLocalhostAuthBypass parameter.

1 authentication.localhost.bypass.enable=
1! true
1 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.blocklist
This optional parameter lists commands that are removed from the command registry and cannot be called. By default, the block list is empty.

1 command.blocklist=[+ , command]
db.authentication
This optional parameter specifies the user authentication method. See User authentication with the wire listener for more information.

1 db.authentication=
1! mongodb-scram
1 onedb-mongodb-cr
mongdb-scram
Authenticate through the wire listener with the MongoDB SCRAM-SHA-256 algorithm. MongoDB SCRAM-SHA-256 authentication is only supported on Mongo listeners. This is the default value .
onedb-mongodb-cr
Authenticate through the database server with a pluggable authentication module (PAM) using the MongoDB Challenge Response (MONGODB-CR) authentication algorithm.
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.

1 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.

1 listener.authentication.timeout=milliseconds
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).

1 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.

1 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.

1 listener.ssl.enable=
1! false
1 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.

1 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.

1 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.

1 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.

1 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).

1 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.

1 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.

1 security.sql.passthrough=
1! false
1 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.

1 cursor.idle.timeout=
1! 30000
1 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.

1 listener.connectionPool.closeDelay.time=
1! 0
1 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.

1 listener.connectionPool.closeDelay.timeUnit=
1! SECONDS
1 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.

1 listener.idle.timeout=
1! 300000
1 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.

1 listener.idle.timeout.minimum=
1! 10000
1 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.

1 listener.input.buffer.size=
1! 8192
1 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.

1 listener.memoryMonitor.enable=
1! true
1 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.

1 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.

1 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.

1 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.

1 listener.output.buffer.size=
1! 8192
1 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.

1 listener.pool.admin.enable=
2.1! false
2.1 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.

1 listener.pool.keepAliveTime=
1! 60
1 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.

1 listener.pool.queue.size=
1! 0
1 -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.

1 listener.pool.size.core=
1! 128
1 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.

1 listener.pool.size.maximum=
1! 1024
1 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.

1 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.

1 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.

1 pool.connections.maximum=
1! 50
1 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.

1 pool.idle.timeout=
1! 60
1 min_idle_pool
pool.idle.timeunit
Prerequisite: pool.idle.timeout=time
This optional parameter specifies the unit of time that is used to scale the pool.idle.timeout parameter.

1 pool.idle.timeunit=
1! SECONDS
1 NANOSECONDS
1 MICROSECONDS
1 MILLISECONDS
1 MINUTES
1 HOURS
1 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.

1 pool.lenient.return.enable=
2.1! false
2.1 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.

1 pool.lenient.dispose.enable=
2.1! false
2.1 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.

1 pool.semaphore.timeout=
1! 5
1 wait_time
pool.semaphore.timeunit
Prerequisite: pool.semaphore.timeout=wait_time
This optional parameter specifies the unit of time that is used to scale the pool.semaphore.timeout parameter.

1 pool.semaphore.timeunit=
1! SECONDS
1 NANOSECONDS
1 MICROSECONDS
1 MILLISECONDS
1 MINUTES
1 HOURS
1 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.

1 pool.service.interval=
1! 30
1 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.

1 pool.service.threads=number
pool.service.timeunit
Prerequisite: pool.service.interval=wait_time
This optional parameter specifies the unit of time that is used to scale the pool.service.interval parameter.

1 pool.service.timeunit=
1! SECONDS
1 NANOSECONDS
1 MICROSECONDS
1 MILLISECONDS
1 MINUTES
1 HOURS
1 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.

1 pool.size.initial=
1! 0
1 idle_pool_initial_size
pool.size.minimum
This optional parameter specifies the minimum size of the idle connection pool. The default value is 0.

1 pool.size.minimum=
1! 0
1 idle_pool_min_size
pool.size.maximum
This optional parameter specifies the maximum size of the idle connection pool. The default value is 50.

1 pool.size.maximum=
1! 50
1 idle_pool_max_size
pool.type
This optional parameter specifies the type of pool to use for JDBC connections. The available pool types are:

1 pool.type=
1! basic
1 none
1 advanced
1 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.

1 pool.typeMap.strategy=
1! copy
1 clone
1 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.

1 response.documents.size.minimum=bytes
This parameter is effective when the listener.memoryMonitor.enable parameter is set to true.