in

UGISS Community

Il sito della community dello User Group Italiano di SQL Server

errore su dialogo Service Broker che non riesco a visualizzare

Last post 07-19-2008 19.20 by dmauri. 3 replies.
Page 1 of 1 (4 items)
Sort Posts: Previous Next
  • 07-11-2008 13.03

    errore su dialogo Service Broker che non riesco a visualizzare

    Salve, ho questo problema con il service broker.Seguendo il bellissimo e utilissimo tutorial di Davide sono riuscito a implementare un sistema di messaggistica fra la macchina A e la macchina B.Ho implementato la transport security, la dialog security e riesco a spedire un messaggio da A a B, leggere il messaggio su B e ricevere la risposta su A per chiudere il dialogo anche da questa parte.Nella mia applicazione però avrei bisogno di mettere in piedi anche un sistema di messaggi da B ad A . (Anche B deve fare delle richiesta ad A).A questo punto ho creato due nuovi messaggi (per richiesta e risposta), nuovo contratto, due nuovi servizi (uno su A e uno su B) due nuove route e due nuovi remote binding utilizzando la struttura certificati, login e utenti creata nella prima implementazione.Rieseguo tutto il test da A a B e sembra tutto ok (messaggio ricevuto su B e risposta ricevuta su A) ma se guardo con il profiler dopo poco B genera un Message Undeliverable con questo testo “This message could not be delivered because the security context could not be retrieved.” E su traccia profile di A trovo ancora Message Underiverable con Testo “This message could not be delivered because the 'receive sequenced message' action cannot be performed in the 'CLOSED' state.”

    Anche facendo il percorso inverso con i nuovi servizi da B a A sembra andare tutto bene ma appena completato il giro il server B (sempre lui) invia il solito Message Underiverable seguito dal server A con il solito messaggio.

    Ho provato ad aspettare a verificare la chiusura sul server iniziato del dialogo maq, anche se vado a verificare quando l’errore è stato generato nella coda trovo solo l’endDialog.

    Nel log di SQL non trovo nessuna segnalazione, le code sono vuote, le code di trasmissione sono vuote e tutte le conversazioni in sys.conversation_enpoints risultano chiuse (sia su server A che su Server B) e quindi non riesco a capire quale errore viene generato (e quindi come risolverlo)

    Se elimino nuovamente gli oggetti relativi alla messaggistica da B ad A tutto torna a posto e anche in SQL Profiler non vedo il messaggio di errore.

    Qualcuno può aiutarmi a capire l’ errore (perché non riesco a recuperarlo) e poi, eventualmente ad eliminarlo

    Grazie di tutto e scusatemi se sono stato un po’ “lungo” nella spiegazione

    Luca

     

    • Post Points: 20
  • 07-13-2008 19.42 In reply to

    • dmauri
    • Top 10 Contributor
      Male
    • Joined on 05-14-2007
    • Novate Milanese
    • Posts 1.182
    • Points 15.485

    Re: errore su dialogo Service Broker che non riesco a visualizzare

    Ciao Luca

    per poter capire in modo un pò più dettagliato il problema dovresti fare due cose:

    1) Nel profiler abilitare l'evento "Security Audit\Audit Broker Conversation", che dovrebbe spiegare in modo dettagliato perchè il "security context" non può essere recuperato.

    1b) In generale abilita poi tutti gli eventi a carico del service broker, in modo da verificare se vedi qualche errore o qualche messaggio "dropped"...anche se non dovresti vederne visto che i messaggi vengono ricevuti.

    2) Hai provato anche a verificare che implementando solo la soluzione da B a A (senza aver attiva anche quella da A a B) funzioni e non mostri lo stesso problema?

    Davide Mauri
    Microsoft MVP - SQL Server, MCP, MCAD, MCDBA, MCT - http://www.davidemauri.it
    Socio Fondatore e Mentor di Solid Quality Learning Italy - http://www.solidq.com
    Presidente di UGISS: User Group Italiano Sql Server - http://www.ugiss.org
    • Post Points: 20
  • 07-16-2008 12.30 In reply to

    Re: errore su dialogo Service Broker che non riesco a visualizzare

    Ciao Davide,

    il sistema ora funziona tranquilamente nei due sensi. Considera che da B ad A inoltro anche messaggi pesanti visto che all'interno incapsulo delle immagini in formato base64 (2 ci circa 100 kb l'una nel test). Nonostante tu se verifico con profile continuo a vedere gli errori che avevo segnalato.

    Gli eventi del profiler relativi al broker sono tutti impostati (ora anchequelli sotto security audit) ma non ricevo mai nessun messaggi di security audit

     

    ciao

    Luca

    • Post Points: 20
  • 07-19-2008 19.20 In reply to

    • dmauri
    • Top 10 Contributor
      Male
    • Joined on 05-14-2007
    • Novate Milanese
    • Posts 1.182
    • Points 15.485

    Re: errore su dialogo Service Broker che non riesco a visualizzare

    mmmm...ma quindi tu hai verificato (ne sei sicuro al 100%) che i messaggi arrivano correttamente al destinatario ma hai cmq un errore sul mittente...hai già provato (immagino di si ma la domanda è d'obbligo) ad eseguire un comando per volta e l'intero bacth di invio e/o ricezione per capire in che momento viene generato il fatidico messaggio "This message could not be delivered because the security context could not be retrieved.” ?

    Davide Mauri
    Microsoft MVP - SQL Server, MCP, MCAD, MCDBA, MCT - http://www.davidemauri.it
    Socio Fondatore e Mentor di Solid Quality Learning Italy - http://www.solidq.com
    Presidente di UGISS: User Group Italiano Sql Server - http://www.ugiss.org
    • Post Points: 5
Page 1 of 1 (4 items)
(C) 2007 User Group Italiano di SQL Server