Ureader.com  
Microsoft software help and Community
   home   |   control panel login   |   archive   |  
 
Access
3rdpartyusrgrp
access
activexcontrol
adp.sqlserver
commandbarsui
conversion
dataaccess.pages
developers.toolkitode
devtoolkits
externaldata
forms
formscoding
gettingstarted
internet
interopoledde
macros
modulescoding
modulesdaovba
modulesdaovba.ado
multiuser
odbcclientsvr
queries
replication
reports
security
setupconfig
tablesdbdesign
  
 
date: Fri, 25 Jan 2008 01:55:04 -0800 (PST),    group: microsoft.public.access.replication        back       


Track Synchronization   
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.
date: Fri, 25 Jan 2008 01:55:04 -0800 (PST)   author:   unknown

Re: Track Synchronization   
"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/
date: 25 Jan 2008 20:56:42 GMT   author:   David W. Fenton lid

Re: Track Synchronization   
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/
date: Wed, 5 Mar 2008 09:48:49 -0500   author:   Don Udel \(ETC\)

Re: Track Synchronization   
"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/
date: 6 Mar 2008 04:38:12 GMT   author:   David W. Fenton lid

Google
 
Web ureader.com


    COPYRIGHT 2007, YARDI TECHNOLOGY LIMITED, ALL RIGHT RESERVE  |   contact us