none
Repliche solo downalod bloccare non replicare inserimento su subscriber RRS feed

  • Domanda

  • Buongiorno,

    vi sottopongo la situazione:

    -ho un servizio (esistente, non realizzato da me e non modificabile) che si occupa di aggiornare/inserire i record da una tabella presente nel sottoscrittore nella sua omonima presente sul pubblicatore/distributore quindi unidirezionale (diciamo da client a server)

    -sulla base di questo ho deciso (a differenza di tutte le altre pubblicazioni/sottoscrizioni che utilizzo con successo) di creare una pubblicazione solo download con modifiche accettate sul sottoscrittore

    Lo scopo è far sì che il servizio si occupi degli aggiornamenti dei record da client a server e che il motore di repliche si occupi di allineare le modifiche effettuate direttamente sul server verso tutti i client. Mi aspettavo che l'eventuale inserimento di un record lato subscriber non coinvolgesse il motore di repliche (in quanto impostato su solo download), invece non è così, sembra che invece solamente gli aggiornamenti non vengano propagati verso il pubblicatore. E' possibile in qualche modo far sì che anche l'inserimento lato subscriber venga ignorato in modo che il servizio preesistente si occupi di questo compito? Grazie.

    mercoledì 31 ottobre 2012 12:05

Tutte le risposte

  • Non ho capito benissimo dalla spiegazione, ma visto che vuoi ignorare una insert puoi gestirti un trigger sulla tabella, in questo modo e bloccarne l'inserimento..

    Conta comunque che se possibile, eviterei trigger sulla tabella.. (:

    un saluto

    CREATE TRIGGER [dbo].[InserisciAnagrafica]
        ON
        [dbo].[Anagrafica]
    INSTEAD OF INSERT
    AS
        BEGIN
            DECLARE @dataNascita DATETIME;
            SELECT @dataNascita = Anagrafica.DataNascita FROM ANAGRAFICA;
            IF @dataNascita >= GETDATE()
                ROLLBACK;
        END


    giovedì 6 dicembre 2012 12:44
  • Ciao,

    Non abbiamo ricevuto alcun aggiornamento e mi chiedevo se possiamo aiutarti ulteriormente o se il problema è stato risolto.
    Se così fosse ti saremmo grati di condividere il tuo feedback in questo spazio ricordandoti che altri membri della community potrebbero riscontrare comportamenti simili.

    Grazie in anticipo,

    Anca Popa Follow ForumTechNetIt on Twitter

    Microsoft offre questo servizio gratuitamente, per aiutare gli utenti e aumentare il database dei prodotti e delle tecnologie. Il contenuto viene fornito “così come è” e non comporta alcuna responsabilità da parte dell'azienda. 

    mercoledì 12 dicembre 2012 12:25
  • Provo a rispiegare il problema indicando cosa esiste e cosa non si può cambiare e come mi piacerebbe se funzionasse.

    Utilizziamo il sistema delle repliche per sincronizzare dati tra server centrale e vari sottoscrittori. Ho la tabella clienti sia sul server centralizzato che sui vari sottoscrittori (con la medesima struttura).

    Esiste una servizio (come dicevo ereditato e purtroppo non sostituibile) che si occupa a fronte di un inserimento/aggiornamento di un nuovo cliente lato sottoscrittore di inserire/aggiornare il record lato server (esegui quindi una insert o una update collegandosi all'istanza db del server).

    La mia necessità è che a fronte di un inserimento di un cliente lato subscriber, oltre al normale funzionamento del servizio (cioè inserimento del record lato server) è quella di far sì che il sistema di repliche invii il record ricevuto dal server anche a tutti gli altri subscriber.

    I conflitti di chiave sarebbero comunque esclusi in quando ogni sottoscrittore utilizza per comporre la chiave un sezionale univoco.

    Una nota, uso le parole server pubblicatore e distributore in modo intercambiabile perchè in questa soluzione effettivamente si tratta della stessa macchina.

    Grazie a tutti.

    giovedì 13 dicembre 2012 10:06