Welcome to the #dominoforever Product Ideas Forum! The place where you can submit product ideas and enhancement request. We encourage you to participate by voting on, commenting on, and creating new ideas. All new ideas will be evaluated by HCL Product Management & Engineering teams, and the next steps will be communicated. While not all submitted ideas will be executed upon, community feedback will play a key role in influencing which ideas are and when they will be implemented.
Add an optional parameter to the Domino replication API that allows an individual replication run to exchange document data without replicating design elements.
This enhancement request is based on HCL Support Case CS1467943.
Some Domino applications run continuously in the HCL Notes client and use local replicas. In this scenario, replication may be initiated programmatically from a separate local database, for example by calling:
Call db.Replicate(serverName$)The application may require different replication behavior during different phases of its lifecycle:
Startup: full replication, including design elements, so that the application can be brought up to date.
During the working day: background replication of document data only.
Shutdown: full replication, including design elements.
Replicating design elements while the application is open can cause forms, agents, script libraries, or other application components to change while they are in use. This may result in inconsistent behavior, unexpected execution of updated code, or a requirement to restart the client before the application can safely continue.
Currently, db.Replicate(serverName$) relies on the database's saved replication settings. There is no documented per-invocation parameter that allows an application to exclude design elements for only one replication run.
Provide an optional replication-mode parameter that overrides the applicable design-element replication setting for the current invocation only.
For example, a backward-compatible LotusScript API could be exposed as:
Call db.Replicate(serverName$, REPLICATE_DOCUMENTS_ONLY)or, alternatively:
Call db.Replicate(serverName$, False) ' False = do not replicate design elementsThe equivalent Java API should provide the same capability, for example:
database.replicate(serverName, ReplicationMode.DOCUMENTS_ONLY);The exact enumeration or parameter name can be chosen by HCL. The important requirement is that the caller can select document-only replication for one operation without changing the database's persistent replication settings.
When the document-only option is selected for a replication call:
Documents and their supported data changes are replicated according to the normal replication rules.
Design elements are neither sent nor received during that invocation.
The persistent replication settings of the database are not modified.
The option applies only to the current replication operation.
Existing calls using db.Replicate(serverName$) retain their current behavior and remain fully backward compatible.
The behavior should be clearly documented for both LotusScript and Java.
The option should ideally cover the design-related elements controlled by the database replication settings, including forms, views, pages, subforms, script libraries, agents, and other design elements. HCL may define whether specific element types, such as ACLs, deletion stubs, or replication formulas, remain governed by their existing settings or require separate flags.
Prevents application design changes from being introduced while a continuously running application is in use.
Allows document synchronization to continue during the working day.
Avoids the need to modify and restore persistent replication settings programmatically.
Avoids reliance on temporary replica configurations or administrative access to change replication settings.
Provides a simple and predictable API for applications that need different replication policies at startup, during operation, and at shutdown.
Reduces the risk of inconsistent application behavior and unnecessary client restarts.
LotusScript provides a documented way to request document-only replication for a single Replicate invocation.
Java provides an equivalent documented capability.
The option prevents design elements from being exchanged during that invocation.
The database's saved replication settings remain unchanged.
Existing applications that call db.Replicate(serverName$) continue to work without code changes.
The behavior is supported for local replicas and normal bidirectional replication scenarios.
The documentation describes the interaction with the existing replication options and identifies which element types are excluded.