3.1.4.3 R_WinsTrigger (Opnum 2)

The R_WinsTrigger method triggers a replication operation between a target WINS server and another WINS server.

 DWORD R_WinsTrigger(
   [in] handle_t ServerHdl,
   [in, ref] PWINSINTF_ADD_T pWinsAdd,
   [in] WINSINTF_TRIG_TYPE_E TrigType_e
 );

ServerHdl: An RPC binding over IP address/HostName to the WINS server. RPC uses this binding internally to determine which WINS server the call is directed to.

pWinsAdd: Address of the WINS server with which the target WINS server performs the replication operation.

TrigType_e: The type of replication operation requested.

Return Values: A 32 bit unsigned integer value that indicates the return status. A return value of ERROR_SUCCESS (0x00000000) indicates that the operation completed successfully. Any other return value is a Win32 error code, as specified in [MS-ERREF]. The following Win32 error codes can be returned:

Return value/code

Description

0x00000000

ERROR_SUCCESS

The call was successful.

0x00000FA0

ERROR_WINS_INTERNAL

An error occurred while processing the RPC call.

0x00000FA6

ERROR_RPL_NOT_ALLOWED

The WINS server requested for the replication operation is requested is not configured as a replication partner for the target WINS server.

0x00000005

ERROR_ACCESS_DENIED

The caller does not have sufficient permissions.

Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying RPC protocol [MS-RPCE].

Processing and Response Requirements:

When R_WinsTrigger is called, the server returns immediately without waiting for the replication operation to finish. The server just queues a request for the replication operation, and the replication takes place at a time determined by the internal state and configuration of the target WINS server. Hence, applications that call R_WinsTrigger SHOULD NOT treat an ERROR_SUCCESS return value as indicating a successful replication operation. Instead, applications SHOULD rely on WINS event logs to determine whether or not replication is successful. The following table lists the events that indicate the status of replication.

Event ID

Event Name

Event Description

Informational events

4102

WINS_EVT_CONN_ABORTED

The connection was aborted by the remote WINS. It is possible that Remote WINS is not configured to replicate with the server.

4108

WINS_EVT_CANT_GET_INITRPL_VAL

WINS could not read the InitTimeReplication field of the pull/push key.

4115

WINS_EVT_CANT_GET_CC_MAX_RECS_AAT_VAL

WINS could not read the MaxRecsAtATime value (type DWORD) in the Wins\Parameters\ConsistencyCheck subkey of the registry. Set this value so that  WINS does not replicate more than a set number of records in one cycle while doing periodic consistency checks of the WINS database. When doing a consistency check, WINS replicates all records of an owner WINS by either going to that WINS or to a replication partner. At the end of a consistency check for an owner's records, WINS checks to see if it has replicated more than the specified values in the current consistency check cycle. If the value has been exceeded, the consistency check stops; otherwise it continues. In the next cycle, it starts from where it left off and returns to the first owner if required.

4116

WINS_EVT_CANT_GET_CC_USE_RPL_PNRS_VAL

WINS could not read the UseRplPnrs value of the Wins\Parameters\ConsistencyCheck key. If this value is set to a nonzero (DWORD) value, WINS will do a consistency check of the owners in its database by going to one or more of its replication partners. If the owner of the records happens to be a replication partner, WINS will go to it; otherwise it will pick a partner at random. Set this value if there is a large number of WINSs in the configuration and/or if the local WINS SHOULD NOT to go to any WINS that is not a replication partner.

4121

WINS_EVT_NO_RPL_RECS_RETRIEVED

The WINS Replicator could not find any records in the WINS database. This means there are no active or tombstone records in the database. It could be that the records being requested by a remote WINS server have either been released or do not exist.

4124

WINS_EVT_UPD_NTF_NOT_ACCEPTED

The WINS server received an update notification from the non-configured WINS server at the address, %1. The WINS server rejected it. This means the remote WINS server is not in the list of Push partners (WINS servers under the Pull key) and the administrator has prohibited (by using the registry) replication with non-configured WINS servers. To have  this WINS server to accept update notifications from non-configured WINS servers then set the Wins\Parameters\RplOnlyWCnfPnrs value in the registry to 0.

4126

WINS_EVT_ADD_VERS_MAP_REQ_NOT_ACCEPTED

The WINS server received a pull request from the non-configured WINS server with the address, %1. The WINS server rejected it since the remote WINS server is not in the list of Pull partners (WINS servers under the Pull key) and the administrator has prohibited (by using the registry) replication with non-configured partners. To have this WINS server to accept update notifications from WINS servers not in the "pull partner" list, then set the "replication only with configured partners" value in the registry to 0.

4134

WINS_EVT_INF_REM_WINS

The local WINS is informing a remote WINS to update the version number of a record. This is because the local WINS encountered a conflict between an active owned name and an active replica that it pulled from a replication partner.

4135

WINS_EVT_REM_WINS_INF

The local WINS has been informed by a remote WINS with the address %1, to update the version number of a record. This is because the remote WINS encountered a conflict between an active owned name and an active replica that it pulled from a replication partner.

4137

WINS_EVT_NAME_MISMATCH

A name mismatch was reported while verifying the validity of old replicas. The local record has the name %1 while the replica pulled in from the WINS that owns this record has the name %2. This could mean that the remote WINS was stopped and then restarted but its version counter value was not set to its previous value before termination.

4139

WINS_EVT_CNF_CHANGE

The WINS replication request is being ignored because WINS found that the Wins\Partners key information has changed (due to a notification from the registry) which makes the current partner request out-of-date.

4227

WINS_EVT_CANT_FIND_ANY_REC_IN_RANGE

The Push Thread was requested for a range of records but could not find any records in the range. The replication time intervals MUST be set properly. If the tombstone interval and timeout intervals are not correct (that is, much less than the replication interval), the preceding condition is possible. This is because the records might get changed into tombstones and then deleted before the remote WINS can pull them. Similarly, if the refresh interval is set to be much less than the replication interval, then the records could get released before a WINS can pull them (a released record is not sent).

4251

WINS_EVT_CONN_RETRIES_FAILED

The WINS Replication Pull Handler could not connect to a WINS server. All retries failed. WINS will try again after a set number of replication time intervals have elapsed.

4260

WINS_EVT_RPL_REG_ERR

WINS received an error while registering replicas. It will not register any additional replicas of this WINS at this time (the address is in the data section fourth through eighth byte). A previous log entry will specify the reason for this. If the same error occurs during subsequent replication with the preceding partner WINS, restore the WINS database from the backup.

4261

WINS_EVT_RPL_REG_GRP_MEM_ERR

WINS received an error while trying to register a group's replica with name %1. The replica is owned by the WINS with the address given in the data section.

4262

WINS_EVT_RPL_REG_UNIQUE_ERR

WINS received an error while trying to register a unique replica with name %1. The replica is owned by WINS with the address in the data section.

4268

WINS_EVT_RPL_STATE_ERR

WINS received a replica whose state is incorrect. For example, the state might be RELEASED or the replica might be an Internet group that does not have any members but the state is not TOMBSTONE.

4289

WINS_EVT_RECORD_NOT_OWNED

WINS is trying to update the version number of a database record that it does not own. This is a serious error if the WINS server is updating the record after a conflict. It is not a serious error if the WINS server is updating the record as a result of a request to do so from a remote WINS server. When a remote WINS server notices a conflict between an active owned entry and a replica, it requests the replica owner to update the version number of the record. It is possible that the replica is no longer owned by the remote WINS.

4295

WINS_EVT_ADJ_VERS_NO

When WINS replicated with its partners, one of the partners showed there was more data that actually existed. WINS adjusted its counter so that new registrations and updates are seen by its partners. This means that recovery did not work properly. Check which of the partners has the highest version number corresponding to the local WINS. This can be accomplished by shutting down WINS and restarting after specifying this number in the registry.

4307

WINS_EVT_RPLPULL_EXC

The WINS replicator Pull thread encountered an error while processing a request. Log entries will specify what went wrong.

4312

WINS_EVT_TERM_DUE_TIME_LMT

WINS has exceeded the wait time for all threads to terminate. The number of threads still active is given in the second DWORD of the data section. The thread that could be stuck is the replicator thread, which could be stuck because the other WINS is slow in sending data or reading data. The latter can contribute to pressure on the TCP connection on which it is trying to replicate.

Warning events

4153

WINS_EVT_UNABLE_TO_VERIFY

The Scavenger thread found active replicas that are required to be verified with the owner WINS server because they were older than the verify time interval. The table of owner-to-address mappings indicated the WINS was not active.

4155

WINS_EVT_REPLICA_CLASH_W_STATIC

A replica clashed with the static record, %1, in the WINS database. The replica was rejected.

4161

WINS_EVT_PARTIAL_RPL_TYPE

A nonzero replication type applies for this partner, which means only a subset of records will be replicated between the local WINS and this partner. To get records that did not replicate, either pull them by using the winscl.exe in the Windows 2000 Resource Kit, (as described in [MSFT-ResourceKits]) or delete all owners acquired only through this partner and initiate replication after that to reacquire all their records. The partner's address is given in the second DWORD of the data section.

4162

WINS_EVT_PNR_PARTIAL_RPL_TYPE

A partner has requested only a subset of records. This means that all the records in the range requested will not be replicated. Check the partner's registry to see what replication type applies to it. The partner's address is given in the second DWORD of the data section.

4163

WINS_EVT_ADJ_MAX_RECS_AAT

WINS adjusted the Maximum Records at a time parameter of the ConsistencyCheck key. The value specified, %2, was changed to the minimum value, %1. This represents the maximum number of records that will be replicated at any one time for a consistency check.

4164

WINS_EVT_FORCE_SCV_R_T

WINS was forced to scavenge replica tombstones of a WINS. The administrator forced the scavenging by using winscl.exe. WINS does not scavenge replica tombstones unless they have timed out and the WINS has been running for at least three days. This is to ensure that the tombstones have replicated to other WINSes. In this case, the tombstones were timed out but the WINS had not been running for three days. The replica tombstones were deleted. This deletion does not constitute a problem unless there are WINS servers that are primary and backup to clients but not both Push and Pull partners of each other. If this type of WINS exists, there is a low probability that this action will result in database inconsistency but if it does, a consistent state can be achieved by initiating consistency checks by using winscl.exe.

Error events

4166

WINS_EVT_RPLPULL_ABNORMAL_SHUTDOWN

The replication Pull thread is shutting down due to an error. Restart WINS.

4167

WINS_EVT_RPLPUSH_ABNORMAL_SHUTDOWN

The replication Push thread is shutting down due to an error. Restart WINS.

4197

WINS_EVT_WINSOCK_BIND_ERR

An address could not bind to a socket. Make sure the TCP/IP stack is installed and running properly. This event might mean that the 'nameserver' port (specified in the services file) which is used as the default by WINS for replication and discovering other WINSes has been taken by another process or service running on this computer. There are two options: either end the other process or service, or direct WINS to use another port. If you choose the second option, set the value 'PortNo' (REG_DWORD) under the Wins\Parameters subkey in the registry to 1512.

Note Changing the port number this way will prevent this WINS from replicating or discovering other WINSes unless they too are directed to use the same port number as this WINS.

The following requirements and recommendations apply to a WINS server that processes a call to R_WinsTrigger:

  • The R_WinsTrigger caller SHOULD have control level access. If an RPC client with a lower access level calls R_WinsTrigger, the server SHOULD return ERROR_ACCESS_DENIED.

  • The WINS service on the target WINS server MUST be in the running or paused state. If the service is in initializing or exiting state, the server SHOULD return ERROR_WINS_INTERNAL for its status.

  • When R_WinsTrigger is called with trigger type WINSINTF_E_PUSH, the server queues a push replication. If the target WINS server is configured to replicate only with partners and the address of the requested replication partner is not in the server's list of push replication partners, the server SHOULD return WINSINTF_RPL_NOT_ALLOWED. The server can also return ERROR_WINS_INTERNAL for any other errors occur while it processes the request.

  • The trigger type WINSINTF_E_PUSH_PROP works same way as the command WINSINTF_E_PUSH except that the update notifications that are sent as part of push replication have the propagate opcode set (see [MS-WINSRA] section 2.2.8.

  • When the R_WinsTrigger method is called with trigger type WINSINTF_E_PULL, the server queues a pull replication as specified by the pWinsAdd parameter. If the target WINS server is configured to replicate only with partners, and the address of the requested replication partner is not in the server's list of pull replication partners, the server SHOULD return WINSINTF_RPL_NOT_ALLOWED. Also, the server SHOULD return ERROR_WINS_INTERNAL for any other errors that occur while it processes the request.