The Mongo DB Listener pools the MongoDB with requests from JSON file and returns results in JSON Format.
There are 7 tabs: Basic, Advanced, Transaction Logging, Query/Document, Options, Connection.
1. On the Basic you can specify:
Polling Interval: how often the Input File query is executed. If the value is set with enhanced properties, the units are seconds.
Database: the database to be queried
Collection: the collection to be queried
Command: the command to use for the MongoDB operation
2. On the Advanced you can specify:
Initialize on trigger only: If enabled, the Listener doesn’t start up until a trigger initializes it.
Allow command-line invocation: If enabled, the Listener can be invoked using the CLI client application.
Restart on listening error: If enabled, the Listener will be restarted after an error occurs.
FIFO Queue Name: The FIFO stuff enables a “First In, First Out” queuing mechanism between Listeners and Transports. If a “FIFO Queue Name” is provided, that name will be used as a key for a queue Transactions & will be pushed into before reaching a transport. They’ll be ordered in this queue according to when the Listener created them.
FIFO Queue Delay: It is the interval between updates/checks against that queue. Providing a queue name guarantees that a given Transport sends transactions in the same order the Listener created them in.
Write Concern: the write concern, which controls how MongoDB balances write speed vs content safety.
Read Preference: the read preference, which controls how MongoDB Routes read operations to the members of a replica set.
Read Concern: the read concern, which controls how MongoDB handles returning data from a query
Filter Encoding: the encoding for the JSON text used as the filter for the MongoDB operation
Document Encoding: the encoding for the JSON text used as the document for the MongoDB operation
3. On the Transaction Logging tab you can enable transaction events logging. That data can be logged by a TransactionEventListener.
The Transaction Logging Enable: This checkbox allows transaction events originating from this listener to be logged by a TransactionEventListener.
Log Transaction Data: If enabled, logs transaction data body.
Log Transaction Data Base64: If enabled, logs transaction data body as Base64.
Log Transaction Attribute: If enabled, logs transaction attributes.
Log All Attributes: If enabled, no attributes will be filtered.
Allowed Attributes: Attributes that are allowed to be logged.
4. On the Inactivity you can specify:
Enable Inactivity Monitor: Check this box to enable inactivity monitoring. This will throw a non-transaction exception if the specified number of transactions haven’t been processed in the specified time interval.
Min. Transactions to Expect: The number of transactions to expect to be completed per monitoring interval.
Monitoring Interval: How often to check the specified number of transactions have been processed.
Times to Monitor: If set, monitoring will be done during the defined times of day. To ignore, set start and end time equally.
Days to Exclude from Monitoring: Inactivity monitoring will not occur on the days specified.
Include Errors in Transaction Count: If checked, transactions that attempted to start but failed at the Listener stage will also be counted.
5. On the Throttling you can specify:
Throttling Mode: The throttling mode to use for limiting the number of transactions or messages emitted by this Listener. “Timed” will limit transactions based on time intervals, while “Concurrent” will limit based on a concurrent number of transactions. “Concurrent” mode requires a Throttling Response Processor step later in your Interface workflow to acknowledge completion.
Throttling Mechanism: The mechanism to use for throttling message. “Blocking” prevents the Listener from continuing to process and emit messages altogether, while “Queued” pushes received messages into the Interface queue (or a default, in-memory queue).
Max Concurrent Messages: How many messages can be concurrently processed, either by time-based limits (“Allow X per Second”) or synchronous (“Allow X at any Time”)
Timed Emission Interval: The interval for time-based limits (“Allow X per X Timed Emission Interval”)
Synchronous Timeout Interval: The interval to wait for a synchronous response before failing.
6. On the Query/Document tab you can specify:
Filter Source: the source to use for the JSON that is the filter of this MongoDB query
Filter File: the file to get the JSON filter query from
Filter JSON: the JSON query to use as the filter in the MongoDB operation
Document Source: the source to use for the JSON that is the document being sent to the MongoDB
Document File: The file to get the JSON document to send to the MongoDB database
Document JSON: The JSON document to send to the MongoDB database
7. On the Options tab you can specify:
Insert Is Ordered: if true, and multiple documents are inserted, they will be inserted in the order they are provided.
Update Type: the type of update operation to perform. Replace One will replace a single, entire document. Update One will perform specific update operations against a single document. Update Many will perform specific update operations against multiple documents
Upsert: if true, the update operation will perform an upsert, meaning it will insert the document if no matching documents are found
Return Matched Document: if true, the document being updated/deleted will be returned upon the completion of the operation instead of a summary of the operation
Delete Type: the type of delete operation to perform. Either delete the first found matching document or delete all matching documents.
Bulk Write Is Ordered: if true, the bulk write will execute the operations in the order provided, and will also skip any subsequent operations if anyone of them fails.
8. Connection: This tab allows you to set the following settings:
Server: Database Server
Port: port number
Database: database name on server
Collection: name of collection in database
Database for authorization: authorization database name
User name: the database username credentials
Password: the database password credentials
Use Shared Connection: uses a shared connection for communicating with the MongoDB database. This is the recommended configuration because it most efficiently processes connection.
Shared Connection Name: if the shared connection is selected, this assigns the name of the connection to use
Server Host: the host IP address of the MongoDB server
Server Port: the port number of the MongoDB server
Use Credentials: whether or not to use credentials when connecting to the MongoDB database
Auth Database: the name of the database to use for authentication
Username: the username to access the database
Password: the password to access the database
Credential Protocol: the protocol to use when delivering the credentials to the MongoDB database
Timeout: the amount of time to wait on a MongoDB operation, in seconds
Max Pool Size: the maximum number of connections in the connection pool
Max Connection Idle Time: the maximum amount of time to keep an idle connection alive in the pool
SSL Enabled: if true, SSL/TLS will be used to establish connections with the database
SSL Allow Invalid Hostnames: if true, the MongoDB client will connect to databases where the hostname in the certificate is seen as invalid