3.2.5.3 FrequentMaintenanceTimer Expiration

When the FrequentMaintenanceTimer expires, the client takes the following actions.

If the VolumeState field of the VolumeInformation of any entry in the ClientVolumeTable is in the NotOwned state, and if the EnterNotOwnedTime field for that volume is more than 7 days prior to the current time, then the VolumeState field MUST be updated to a value of NotCreated, and the EnterNotOwnedTime field MUST be cleared.

If the VolumeState field of the VolumeInformation of any of the entries in the ClientVolumeTable is NotOwned or NotCreated and the VolumeTableQuotaExceeded field is not set, then the client MUST attempt to synchronize the volume(s) with the server by sending a SYNC_VOLUMES message to the server.

A SYNC_VOLUMES message is sent to the server by using a LnkSvrMessage request, as defined in section 3.1.4.1. In this request, the following fields MUST be set in the TRKSVR_MESSAGE_UNION parameter:

  • The MessageType field MUST be set to SYNC_VOLUMES.

  • The Priority field MUST be set to 6.

The TRKSVR_CALL_SYNC_VOLUMES structure of this request MUST have a TRKSVR_SYNC_VOLUME entry for each volume that is in the NotCreated or NotOwned state, where the SyncType field is set as follows:

  • If the volume is in the NotCreated state, the SyncType field of the TRKSVR_SYNC_VOLUME structure MUST be set to CREATE_VOLUME. This is termed a CREATE_VOLUME subrequest.

  • If the volume is in the NotOwned state, the SyncType field MUST be set to CLAIM_VOLUME. This is termed a CLAIM_VOLUME subrequest.

Unless otherwise specified, all fields of each TRKSVR_SYNC_VOLUME structure MUST be set to all zeros.

For a CLAIM_VOLUME subrequest, the client MUST specify the fields of the TRKSVR_SYNC_VOLUME structure as follows:

  • volume: This field MUST be set to the value of the VolumeID from the volume's VolumeInformation.

  • secretOld: This field MUST be set to the value of the VolumeSecret from the volume's VolumeInformation.

  • secret: This field MUST be set to a new VolumeSecret generated randomly by the client.

(See section 3.1.4.4.1 for information on the server processing of a CLAIM_VOLUME subrequest. See section 3.2.4.4.1 for information on the client's completion of this subrequest.)

For a CREATE_VOLUME subrequest, the client MUST specify fields of the TRKSVR_SYNC_VOLUME structure as follows:

  • secret: This field MUST be set to a new VolumeSecret generated randomly by the client.

(See section 3.1.4.4.4 for information on the server processing of a CREATE_VOLUME subrequest. See section 3.2.4.4.4 for information on the client's completion of this subrequest.)