Is there any way in access 2003 or 07 to track when a database was last synchronized with any one of it's replicas? It would be useful to know and be able to store date, time, pcname etc in a table.
"alexanderd79@googlemail.com" wrote in news:5af877c5-01e7-40bb-854a-487b57681b74@y5g2000hsf.googlegroups.com : > Is there any way in access 2003 or 07 to track when a database was > last synchronized with any one of it's replicas? > > It would be useful to know and be able to store date, time, pcname > etc in a table. Uh, have you looked at the MSysExchangeLog table? That has everything you need. And it's always been there, in every replicated MDB from the beginning of Jet replication. -- David W. Fenton http://www.dfenton.com/ usenet at dfenton dot com http://www.dfenton.com/DFA/
The table MSysExchangeLog is indeed in every replicated database; but it is not a replicated table. If you have the database in question, you can see when it was last synced (sunk?) and with which database. If you don't have the specific replica handy, you can use the MSysExchangeLog in the database located on the server. It will show all the replicas it has synced to. You can get the machine name that did the sync with the following function. It takes the RemoteNickname field from MSysExchangeLog Private Function GetMachineFromId(ByVal id As String) As String Dim TRs As Recordset Set TRs = HDb.OpenRecordset("SELECT Nickname, Machinename FROM MSysReplicas") If TRs.BOF And TRs.EOF Then GetMachineFromId = "" Else Do Until TRs.EOF If "" & TRs!Nickname = id Then 'Debug.Print "Match:" & TRs!MachineName & "=" & id GetMachineFromId = "" & TRs!MachineName Exit Do End If TRs.MoveNext Loop End If End Function It's part of some code I wrote to show sync history, status and sync duration of our production system. Don "David W. Fenton" <XXXusenet@dfenton.com.invalid> wrote in message news:Xns9A30A2439761Df99a49ed1d0c49c5bbb2@64.209.0.94... > "alexanderd79@googlemail.com" wrote in > news:5af877c5-01e7-40bb-854a-487b57681b74@y5g2000hsf.googlegroups.com > : > >> Is there any way in access 2003 or 07 to track when a database was >> last synchronized with any one of it's replicas? >> >> It would be useful to know and be able to store date, time, pcname >> etc in a table. > > Uh, have you looked at the MSysExchangeLog table? That has > everything you need. And it's always been there, in every replicated > MDB from the beginning of Jet replication. > > -- > David W. Fenton http://www.dfenton.com/ > usenet at dfenton dot com http://www.dfenton.com/DFA/
"Don Udel \(ETC\)" wrote in news:u60pFAtfIHA.1168@TK2MSFTNGP02.phx.gbl: > The table MSysExchangeLog is indeed in every replicated database; > but it is not a replicated table. Yes, of course. Why would every replica need to know about every other synch? > If you have the database in question, you can see > when it was last synced (sunk?) and with which database. If you > don't have the specific replica handy, you can use the > MSysExchangeLog in the database located on the server. It will > show all the replicas it has synced to. You can get the machine > name that did the sync with the following function. It takes the > RemoteNickname field from MSysExchangeLog > > Private Function GetMachineFromId(ByVal id As String) As String > > Dim TRs As Recordset > > Set TRs = HDb.OpenRecordset("SELECT Nickname, Machinename > FROM > MSysReplicas") > If TRs.BOF And TRs.EOF Then > GetMachineFromId = "" > Else > Do Until TRs.EOF > If "" & TRs!Nickname = id Then > 'Debug.Print "Match:" & TRs!MachineName & "=" & id > GetMachineFromId = "" & TRs!MachineName > Exit Do > End If > TRs.MoveNext > Loop > End If > End Function > > It's part of some code I wrote to show sync history, status and > sync duration of our production system. I don't do this, as the system table structure is undocumented. Instead I'd use the TSI Synchronizer to get information about a synch operation. -- David W. Fenton http://www.dfenton.com/ usenet at dfenton dot com http://www.dfenton.com/DFA/