Whenever the schema is changed on the source database, a schema lock is required. The OpenEdge Replication server communicates a schema lock request to the OpenEdge Replication agent, causing a schema lock on the target database as well. The OpenEdge Replication agent writes a message to the target database log indicating that there is a schema lock requested.
By default, this lock is held until the schema changes are completed on both the source and target databases. If a user in read-only mode on the target database is accessing tables, the schema lock cannot occur until the user releases the tables. The user process requesting the schema lock blocks until it gets the schema lock. The DBA must ensure that users on the read-only target database do not prevent a client on the source database from making a schema change.
Alternatively, you can set a server property (Schema-Lock-Action) to specify the action an agent should take if an exclusive schema lock is not granted. You can set the property such that the agent waits until the exclusive schema lock is granted, or you can choose to have the agent force an exclusive schema lock. In this latter instance, the agent will attempt to acquire the exclusive schema lock five times. If the fifth attempt fails, the agent disconnects all users from the target and makes another attempt. If the last attempt fails, the server and all agents terminate. This allows the source database to resume normal activity. When schema update activity completes, the server and target can be restarted.