In previous versions of Domino the mail router task would search the mail.box for new messages to be transferred or delivered when a document was added to the mail.box database. As of Domino 8.5 any addition, modification, or deletion of a document in the mail.box database will generate an event. This event will allow a handle to the document, and potentially the document’s content, to be passed directly to the router task. By doing this, the costly search overhead is eliminated and the router is allowed to read the message from memory rather than reading it from the mail.box database.
This entire mechanism is achieved with event and message queues that reside in the Domino server’s main memory pool. As documents are added, modified, or deleted, events are generated and placed in the Event Queue. As the router responds to the events in the Event Queue it generates a new entry containing all the information necessary to process the message. This new event is placed into the Main Message Queue. If the Event Queue contained the content of the message then it is also placed into the Main Message Queue. The router then begins to preform it’s normal functions by placing the message into an appropriate Transfer Queue and delivering the message.
Because these queues utilize server memory, limitations have been put in place to eliminate the possibility of these queues consuming an inordinate amount of system memory. By default, the maximum size for any single message or event that will be placed into the Event Queue is 10,000,000 bytes, or just over 9.5 megabytes. This value can be adjusted up or down by setting the RouterMaxEventMessageSizeBytes entry in the server’s notes.ini file.
The Event Queue as a whole has a default memory limit that is equal to the NSF buffer pool size divided by 5. You may change this value by adding RouterMaxEventMemorySizeBytes to your server’s notes.ini file.
If the Event Queue memory size is exceeded or an event exceeds the event message size limit, the router task will gracefully fallback to the search method until the memory utilization has fallen below their designated limits at which point it will automatically begin to resume utilizing the event notification mechanism.
The Main Message Queue’s maximum memory allocation by default is, just like the Event Queue, equal to the NSF buffer pool divided by 5. This limit may be adjusted with the notes.ini parameter RouterMaxQueueMemorySizeBytes.
The Main Message Queue also limits the size of individual messages placed into it with the RouterMaxQueueMessageSizeBytes parameter. By default, this setting is 10,000,000 bytes.
Setting any of the above notes.ini parameters to “0” (zero) will disable mailbox event notification forcing the server back into search mode.