Anonymous
|
Hi, I'd really, really like to know if it's possible to enable and disable the property "Scheduled Replication is Enabled" in the database replication settings! As yet I've not been able to locate the correct replication flag. I've identified REPLFLG_DISABLE (0x0004 or &h4)and REPLFLG_NEVER_REPLICATE (0x0100 or &h0100) but neither seem to the correct. The first is the property for "Temporarily disable replication for this replica" and the second seems to be a hidden database attribute which can be used to enforce disabled replication. We're trying to ensure that replication is *enabled* for a particular database. I've attached my current code that can set the REPLFLG_NEVER_REPLICATE flag. Many thanks ----------------CODE----------------- Type TIMEDATE Innard1 As Long Innard2 As Long End Type Type DBREPLICAINFO ID As TIMEDATE flags As Integer CutoffInterval As Integer Cutoff As TIMEDATE End Type Declare Function W32_NSFDbOpen Lib "nnotes.dll" Alias "NSFDbOpen" ( Byval dbName As String, hDb As Long) As Integer Declare Function W32_NSFDbClose Lib "nnotes.dll" Alias "NSFDbClose" ( Byval hDb As Long) As Integer Declare Function W32_NSFDbReplicaInfoGet Lib "nnotes.dll" Alias "NSFDbReplicaInfoGet"(Byval hDB As Long, retReplicationInfo As DBREPLICAINFO) As Integer Declare Function W32_NSFDbReplicaInfoSet Lib "nnotes.dll" Alias "NSFDbReplicaInfoSet"(Byval hDB As Long, retReplicationInfo As DBREPLICAINFO) As Integer Declare Function W32_OSLockObject Lib "nnotes.dll" Alias "OSLockObject" ( Byval handle) As Long Declare Sub OSUnlockObject Lib "NNOTES.DLL" Alias "OSUnlockObject" (Byval handle) Declare Sub W32_OSMemFree Lib "NNOTES.DLL" Alias "OSMemFree" (Byval handle) Class NotesReplicationSettings
Private hDb As Long Private retReplicationInfo As DBREPLICAINFO Private prvdb As NotesDatabase Private flgDBExist As Integer
Sub Delete If hDb <> 0 Then Call W32_NSFDbClose(hDb) End Sub
Sub New (inpNotesDatabase As NotesDatabase)
Dim sDatabase As String Dim uaesession As New notessession Dim rc As Integer
Me.flgDBExist = False
'Get a valid NotesDatabase to the specified database If inpNotesDatabase Is Nothing Then Error 14104, "NotesUserActivity: Database Object is invalid" Exit Sub End If
Set prvdb = New NotesDatabase(inpNotesDatabase.Server, inpNotesDatabase.FilePath)
If (prvdb.Server = "") Or (uaesession.IsOnServer) Then sdatabase = prvdb.filepath Else sdatabase = prvdb.server + "!!" + prvdb.filepath End If
'Open the target database rc = W32_NSFDbOpen(sDatabase,Me.hDb) If rc <> 0 Then Me.flgDBExist = False End If
'Set the Replica information rc = W32_NSFDbReplicaInfoGet(Me.hDb, Me.retReplicationInfo) If rc <> 0 Then Me.flgDBExist = False End If Me.flgDBExist = True End Sub
Public Function DBExist As Integer DBExist = Me.flgDBExist End Function
Public Function Parent As NotesDatabase Set Parent = prvdb End Function
Public Function SetDisableReplica(sFlag As Integer) As Integer Dim puActivity As Long
If Not Me.flgDBExist Then Error 14104, "Notes DB not opened" SetDisableReplica = False Exit Function End If
Print Me.retReplicationInfo.flags
'REPLFLG_NEVER_REPLICATE 0x0100 (Temporarily disable replication) Me.retReplicationInfo.flags = (Me.retReplicationInfo.flags Or Not &h0100)
rc = W32_NSFDbReplicaInfoSet(Me.hDb, Me.retReplicationInfo) If rc <> 0 Then Me.flgDBExist = False End If
End Function End Class
|