Delen via


hulpprogramma ssbdiagnose (Service Broker)

van toepassing op:SQL ServerAzure SQL Managed Instance

Het hulpprogramma ssbdiagnose rapporteert problemen in Service Broker-gesprekken of de configuratie van Service Broker-services. Configuratiecontroles kunnen worden uitgevoerd voor twee services of één service. Problemen worden gerapporteerd in het opdrachtpromptvenster als leesbare tekst of als opgemaakte XML die kan worden omgeleid naar een bestand of een ander programma.

Syntaxis

ssbdiagnose
[ [ -XML ]
    [ -LEVEL { ERROR | WARNING | INFO } ]
  [ -IGNORE error_id ] [ ...n ]
    [ <baseconnectionoptions> ]
  { <configurationreport> | <runtimereport> }
]
| -?

<configurationreport> ::=
    CONFIGURATION
  { [ FROM SERVICE service_name
      [ <fromconnectionoptions> ]
      [ MIRROR <mirrorconnectionoptions> ]
    ]
    [ TO SERVICE service_name [ , broker_id ]
      [ <toconnectionoptions> ]
      [ MIRROR <mirrorconnectionoptions> ]
    ]
  }
    ON CONTRACT contract_name
  [ ENCRYPTION { ON | OFF | ANONYMOUS } ]

<runtime_report> ::=
    RUNTIME
    [ -SHOWEVENTS ]
        [ -NEW
         [ -ID { conversation_handle
                | conversation_group_id
                 | conversation_id
                  }
        ] [ ...n ]
        ]
    [ -TIMEOUT timeout_interval ]
    [ <runtimeconnectionoptions> ]

<baseconnectionoptions> ::=
  <connectionoptions>

<fromconnectionoptions> ::=
  <connectionoptions>

<toconnectionoptions> ::=
  <connectionoptions>

<mirrorconnectionoptions> ::=
  <connectionoptions>

<runtimeconnectionoptions> ::=
  [ CONNECT TO <connectionoptions> ] [ ...n ]

<connectionoptions> ::=
  [ -E | { -U login_id [ -P password ] } ]
  [ -S server_name [ \instance_name ] ]
  [ -d database_name ]
  [ -l login_timeout ]
  [ -N encryption_option ]
  [ -i hostname_in_certificate ]
  [ -C ]

Opdrachtregelopties

-XML

Hiermee geeft u op dat de uitvoer van ssbdiagnose wordt gegenereerd als opgemaakte XML. Deze uitvoer kan worden omgeleid naar een bestand of naar een andere toepassing. Als -XML niet is opgegeven, wordt de uitvoer van ssbdiagnose opgemaakt als menselijk leesbare tekst.

-LEVEL { FOUT | WAARSCHUWING | INFO }

Hiermee geeft u het niveau van berichten aan dat moet worden gerapporteerd.

Waarde Beschrijving
ERROR Alleen foutberichten rapporteren.
WARNING (standaard) Fout- en waarschuwingsberichten melden.
INFO Fouten, waarschuwingen en informatieve berichten rapporteren.

-NEGEREN error_id

Hiermee geeft u op dat fouten of berichten met de opgegeven error_id niet worden opgenomen in rapporten. U kunt meerdere keren opgeven -IGNORE om meerdere bericht-id's te onderdrukken.

<basisverbindingsopties>

Hiermee geeft u de basisverbindingsinformatie op die wordt gebruikt door ssbdiagnose wanneer verbindingsopties niet worden opgenomen in een specifieke component. De verbindingsgegevens die in een specifieke clausule worden gegeven, overschrijven de baseconnectionoption informatie. Dit wordt afzonderlijk uitgevoerd voor elke parameter. Als bijvoorbeeld zowel -S als -d zijn opgegeven in baseconnectionoptions, en alleen -d is opgegeven in toconnectionoptions, gebruikt ssbdiagnose-S van baseconnectionoptions en -d van toconnectionoptions.

CONFIGURATIE

Vraagt een rapport van configuratiefouten aan tussen een paar Service Broker-services of voor één service.

FROM SERVICE service_name

Hiermee geeft u de service op waarmee gesprekken worden gestart.

<vanverbindingsopties>

Hiermee geeft u de informatie op die nodig is om verbinding te maken met de database die de initiatorservice bevat. Als fromconnectionoptions niet is opgegeven, gebruikt ssbdiagnose de verbindingsgegevens van baseconnectionoptions om verbinding te maken met de initiatordatabase. Als fromconnectionoptions is opgegeven, moet het de database bevatten die de initiatorservice omvat. Als fromconnectionoptions niet is opgegeven, moet de initiatordatabase door baseconnectionoptions worden gespecificeerd.

TO SERVICE service_name [ , broker_id ]

Hiermee geeft u de service op die het doel is voor de gesprekken.

service_name: hiermee geeft u de naam van de doelservice op.

broker_id: hiermee geeft u de Service Broker-id op die de doeldatabase identificeert. broker_id is een GUID. U kunt de volgende query uitvoeren in de doeldatabase om deze te vinden:

SELECT service_broker_guid
FROM sys.databases
WHERE database_id = DB_ID();

<naarverbindingsopties>

Hiermee geeft u de informatie op die nodig is om verbinding te maken met de database die de doelservice bevat. Als toconnectionoptions niet is opgegeven, gebruikt ssbdiagnose de verbindingsgegevens van baseconnectionoptions om verbinding te maken met de doeldatabase.

SPIEGEL

Hiermee geeft u op dat de bijbehorende Service Broker-service wordt gehost in een gespiegelde database. ssbdiagnose controleert of de route naar de service een gespiegelde route is, waar MIRROR_ADDRESS is opgegeven op CREATE ROUTE.

<spiegelverbindingopties>

Hiermee geeft u de informatie op die nodig is om verbinding te maken met de gespiegelde database. Als mirrorconnectionoptions niet is gespecificeerd, gebruikt ssbdiagnose de verbindingsgegevens van baseconnectionoptions om verbinding te maken met de gespiegelde database.

IN CONTRACT contract_name

Aanvragen die ssbdiagnose alleen configuraties controleren die gebruikmaken van het opgegeven contract. Als ON CONTRACT niet is opgegeven, rapporteert ssbdiagnose over het contract met de naam DEFAULT.

VERSLEUTELING { AAN | UIT | ANONIEM }

Vraagt om verificatie dat het dialoogvenster correct is geconfigureerd voor het opgegeven versleutelingsniveau:

  • ON:Standaardinstelling. Volledige dialoogvensterbeveiliging is geconfigureerd. Certificaten zijn aan beide zijden van het dialoogvenster geïmplementeerd, er is een externe servicebinding aanwezig en de GRANT SEND instructie voor de doelservice heeft de initiatorgebruiker opgegeven.

  • OFF: Er is geen dialoogvensterbeveiliging geconfigureerd. Er zijn geen certificaten geïmplementeerd, er is geen externe servicebinding gemaakt en de GRANT SEND voor de initiatorservice heeft de openbare rol opgegeven.

  • ANONYMOUS: Anonieme dialoogvensterbeveiliging is geconfigureerd. Er is één certificaat geïmplementeerd, de externe servicebinding heeft de anonieme component opgegeven en de GRANT SEND voor de doelservice heeft de openbare rol opgegeven.

RUNTIME

Vraagt een rapport aan van problemen die runtimefouten veroorzaken voor een Service Broker-gesprek. Als -NEW of -ID niet is opgegeven, controleert ssbdiagnose alle gesprekken in alle databases die zijn opgegeven in de verbindingsopties. Als -NEW of -ID zijn opgegeven, bouwt ssbdiagnose een lijst met de id's die zijn opgegeven in de parameters.

Terwijl ssbdiagnose wordt uitgevoerd, worden alle SQL Server Profiler-gebeurtenissen vastgelegd die runtimefouten aangeven. Het registreert de gebeurtenissen die plaatsvinden voor de opgegeven id's, plus gebeurtenissen op systeemniveau. Als er runtimefouten optreden, voert ssbdiagnose een configuratierapport uit op de bijbehorende configuratie.

Runtimefouten worden standaard niet opgenomen in het uitvoerrapport, alleen de resultaten van de configuratieanalyse. Gebruik -SHOWEVENTS dit om de runtimefouten in het rapport te laten opnemen.

-SHOWEVENTS

Hiermee geeft u op dat SQL Server Profiler-gebeurtenissen van ssbdiagnose rapporteren tijdens een RUNTIME rapport. Alleen gebeurtenissen die als foutvoorwaarden worden beschouwd, worden gerapporteerd. Standaard bewaakt ssbdiagnose alleen fout gebeurtenissen; deze worden niet in de uitvoer weergegeven.

  • -NEW: vraagt runtimebewaking aan van het eerste gesprek dat begint nadat ssbdiagnose wordt uitgevoerd.
  • -ID: vraagt runtime-bewaking van de opgegeven gesprekselementen aan. U kunt meerdere keren opgeven -ID .

Als u een gespreksgreep opgeeft, worden alleen gebeurtenissen gerapporteerd die zijn gekoppeld aan het gekoppelde gesprekseindpunt. Als u een gespreks-id opgeeft, worden alle gebeurtenissen voor dat gesprek en de bijbehorende initiator en doeleindpunten gerapporteerd. Als er een gespreksgroep-id is opgegeven, worden alle gebeurtenissen voor alle gesprekken en eindpunten in de gespreksgroep gerapporteerd.

conversation_handle

Een unieke id waarmee een gesprekseindpunt in een toepassing wordt geïdentificeerd. Gespreksgrepen zijn uniek voor één eindpunt van een gesprek, de initiator en doeleindpunten hebben afzonderlijke gespreksgrepen.

Gespreksgrepen worden geretourneerd naar toepassingen door de @dialog_handle parameter van de BEGIN DIALOG instructie en de conversation_handle kolom in de resultatenset van een RECEIVE instructie.

Gesprekshandvatten worden gerapporteerd in de conversation_handle kolom van de sys.transmission_queue en sys.conversation_endpoints catalogusoverzichten.

conversation_group_id

De unieke id waarmee een gespreksgroep wordt geïdentificeerd.

Gespreksgroep-id's worden geretourneerd naar toepassingen door de parameter @conversation_group_id van de GET CONVERSATION GROUP instructie en de conversation_group_id kolom in de resultatenset van een RECEIVE instructie.

Gespreksgroep-id's worden gerapporteerd in de conversation_group_id kolommen van de sys.conversation_groups en sys.conversation_endpoints catalogusweergaven.

conversation_id

De unieke id waarmee een gesprek wordt geïdentificeerd. Gespreks-id's zijn hetzelfde voor zowel de initiator als het doeleindpunt van een gesprek.

Gespreks-id's worden gerapporteerd in de conversation_id kolom van de sys.conversation_endpoints catalogusweergave.

- TIMEOUT-timeout_interval

Hiermee geeft u het aantal seconden op dat een RUNTIME rapport moet worden uitgevoerd. Als -TIMEOUT niet is opgegeven, wordt het runtime-rapport onbeperkt uitgevoerd. -TIMEOUT wordt alleen gebruikt voor RUNTIME rapporten, niet CONFIGURATION rapporten. Gebruik Ctrl + C om ssbdiagnose af te sluiten als -TIMEOUT dit niet is opgegeven of om een runtimerapport te beëindigen voordat het time-outinterval-verloopt. timeout_interval moet een getal tussen 1 en 2.147.483.647 zijn.

<optiesvoorruntimeverbinding>

Hiermee geeft u de verbindingsgegevens op voor de databases die de services bevatten die zijn gekoppeld aan gesprekselementen die worden bewaakt. Als alle services zich in dezelfde database bevinden, hoeft u slechts één CONNECT TO component op te geven. Als de services zich in afzonderlijke databases bevinden, moet u een CONNECT TO component opgeven voor elke database. Als runtimeconnectionoptions niet is opgegeven, gebruikt ssbdiagnose de verbindingsgegevens van baseconnectionoptions.

-E

Open een Windows-verificatieverbinding met een exemplaar van de database-engine met behulp van uw huidige Windows-account als aanmeldings-id. De login moet lid zijn van de sysadmin vaste-serverrol.

De -E optie negeert de gebruikers- en wachtwoordinstellingen van de SQLCMDUSER en SQLCMDPASSWORD omgevingsvariabelen.

Als een van -E beide of -U niet is opgegeven, gebruikt ssbdiagnose de waarde van de SQLCMDUSER omgevingsvariabele. Als SQLCMDUSER dit ook niet is ingesteld, gebruikt ssbdiagnose Windows-verificatie.

Als de optie -E samen met de optie -U of de optie -P wordt gebruikt, wordt er een foutbericht gegenereerd.

- U-login_id

Open een SQL Server-verificatieverbinding met behulp van de opgegeven aanmeldings-id. De login moet lid zijn van de sysadmin vaste-serverrol.

Als een van -E beide of -U niet is opgegeven, gebruikt ssbdiagnose de waarde uit de SQLCMDUSER omgevingsvariabele. Als SQLCMDUSER dit niet is ingesteld, probeert ssbdiagnose verbinding te maken met behulp van de Windows-verificatiemodus op basis van het Windows-account van de gebruiker die ssbdiagnose uitvoert.

Als de -U optie samen met de -E optie wordt gebruikt, wordt er een foutbericht gegenereerd. Als de optie -U wordt gevolgd door meer dan één argument, wordt er een foutbericht gegenereerd en wordt het programma afgesloten.

-P wachtwoord

Hiermee geeft u het wachtwoord voor de -U aanmeldings-id. Wachtwoorden zijn hoofdlettergevoelig. Als de -U optie wordt gebruikt en de -P optie niet wordt gebruikt, gebruikt ssbdiagnose de waarde uit de SQLCMDPASSWORD omgevingsvariabele. Als SQLCMDPASSWORD ook niet is ingesteld, vraagt ssbdiagnose de gebruiker om een wachtwoord.

Waarschuwing

Wanneer u een SET SQLCMDPASSWORD opdracht typt, is uw wachtwoord zichtbaar voor iedereen die uw scherm kan zien.

Als de -P optie zonder wachtwoord is opgegeven, gebruikt ssbdiagnose het standaardwachtwoord (NULL).

Belangrijk

Gebruik geen leeg wachtwoord. Gebruik een sterk wachtwoord. Zie Sterke wachtwoorden voor meer informatie.

De wachtwoordprompt wordt weergegeven door deze als volgt naar de console af te drukken: Password:

Gebruikersinvoer is verborgen. Dit betekent dat er niets wordt weergegeven en dat de cursor op positie blijft.

Als de optie -P wordt gebruikt met de optie -E, wordt er een foutbericht gegenereerd.

Als de -P optie wordt gevolgd door meer dan één argument, wordt er een foutbericht gegenereerd.

-S server_name[\instance_name]

Hiermee geeft u het exemplaar op van de database-engine die de Service Broker-services bevat die moeten worden geanalyseerd.

Geef server_name op om verbinding te maken met het standaardexemplaren van de database-engine op die server. Geef <server_name>\<instance_name> op om verbinding te maken met een benoemd exemplaar van de database-engine op die server. Als -S dit niet is opgegeven, gebruikt ssbdiagnose de waarde van de SQLCMDSERVER omgevingsvariabele. Als SQLCMDSERVER ook niet is ingesteld, maakt ssbdiagnose verbinding met het standaardexemplaar van de Database Engine op de lokale computer.

-d database_name

Hiermee geeft u de database op die de Service Broker-services bevat die moeten worden geanalyseerd. Als de database niet bestaat, wordt er een foutbericht gegenereerd. Als -d dit niet is opgegeven, is de standaarddatabase de database die is opgegeven in de eigenschap default-database voor uw aanmelding.

-l login_timeout

Hiermee geeft u het aantal seconden op voordat een poging om verbinding te maken met een server een time-out krijgt. Als -l niet is opgegeven, gebruikt ssbdiagnose de waarde die is ingesteld voor de SQLCMDLOGINTIMEOUT omgevingsvariabele. Als SQLCMDLOGINTIMEOUT ook niet is ingesteld, is de standaardtime-out 30 seconden. De time-out voor aanmelden moet een getal tussen 0 en 65534 zijn. Als de opgegeven waarde niet numeriek is of niet in dat bereik valt, genereert ssbdiagnose een foutbericht. Een waarde van 0 geeft een time-out aan die oneindig moet zijn.

-N encryption_option

Hiermee geeft u op dat de verbinding is versleuteld. Mogelijke waarden zijn Optional, Mandatoryen Strict. De opgegeven waarde vertegenwoordigt het gewenste en minimale versleutelingsniveau. De standaardwaarde is Mandatory.

Als Mandatory versleuteling is geselecteerd, moet u een certificaat van een vertrouwde certificeringsinstantie gebruiken. Zie Certificaatvereisten voor SQL Servervoor meer informatie.

Als u strikte versleuteling wilt gebruiken, moet de SQL Server Database Engine worden geconfigureerd met een TLS-certificaat dat is ondertekend door een vertrouwde basiscertificeringsinstantie.

-i hostname_in_certificate

Hiermee geeft u een andere, verwachte algemene naam (CN) of alternatieve onderwerpnaam (SAN) op in het servercertificaat dat moet worden gebruikt tijdens de validatie van het servercertificaat. Zonder deze optie zorgt certificaatvalidatie ervoor dat de CN of SAN in het certificaat overeenkomt met de servernaam waarmee u verbinding maakt. Deze parameter kan worden ingevuld wanneer de servernaam niet overeenkomt met de CN of SAN, bijvoorbeeld bij het gebruik van DNS-aliassen.

-C

Hiermee geeft u op dat de verbinding het servercertificaat vertrouwt en de validatie van servercertificaten omzeilt. Deze optie is niet vereist wanneer vertrouwde servercertificaten worden gebruikt.

-?

Hiermee geeft u de help van de opdrachtregel weer.

Opmerkingen

Gebruik ssbdiagnose om het volgende te doen:

  • Controleer of er geen configuratiefouten zijn in een zojuist geconfigureerde Service Broker-toepassing.

  • Controleer of er geen configuratiefouten zijn nadat u de configuratie van een bestaande Service Broker-toepassing hebt gewijzigd.

  • Controleer of er geen configuratiefouten zijn nadat een Service Broker-database is losgekoppeld en vervolgens opnieuw is gekoppeld aan een nieuw exemplaar van de database-engine.

  • Onderzoek of er configuratiefouten zijn wanneer berichten niet met succes worden verzonden tussen services.

  • Een rapport ophalen van eventuele fouten die optreden in een set Service Broker-gesprekselementen.

Configuratierapportage

Als u de configuratie die door een gesprek wordt gebruikt, correct wilt analyseren, voert u een ssbdiagnose-configuratierapport uit dat gebruikmaakt van dezelfde opties die door het gesprek worden gebruikt. Als u een lager niveau van opties voor ssbdiagnose opgeeft dan wordt gebruikt door het gesprek, rapporteert ssbdiagnose mogelijk geen voorwaarden die vereist zijn voor het gesprek. Als u een hoger niveau van opties voor ssbdiagnose opgeeft, kunnen items worden vermeld die niet vereist zijn voor het gesprek. Een gesprek tussen twee services in dezelfde database kan bijvoorbeeld worden uitgevoerd met ENCRYPTION OFF. Als u ssbdiagnose uitvoert om de configuratie tussen de twee services te valideren, maar de standaardinstelling ENCRYPTION ON gebruikt, meldt ssbdiagnose dat er een hoofdsleutel ontbreekt in de database. Een hoofdsleutel is niet vereist voor het gesprek.

Het ssbdiagnose-configuratierapport analyseert slechts één Service Broker-service of één paar services telkens wanneer het wordt uitgevoerd. Als u wilt rapporteren over meerdere paren Service Broker-services, maakt u een .cmd opdrachtbestand dat ssbdiagnose meerdere keren aanroept.

Runtime rapportage

Wanneer -RUNTIME is opgegeven, doorzoekt ssbdiagnose alle databases die zijn opgegeven in runtimeconnectionoptions en baseconnectionoptions om een lijst met Service Broker-id's te maken. De volledige lijst met id's die zijn gebouwd, is afhankelijk van wat is opgegeven voor -NEW en -ID:

  • Als -NEW of -ID niet zijn opgegeven, bevat de lijst alle gesprekken voor alle databases die zijn opgegeven in de verbindingsopties.

  • Als -NEW dit is opgegeven, bevat ssbdiagnose de elementen voor het eerste gesprek dat begint nadat ssbdiagnose is uitgevoerd. Dit omvat de gespreks-ID en de gesprekshandvatten voor zowel de doeleindpunten als de initiatoreindpunten.

  • Als -ID is opgegeven met een gespreks-id, wordt alleen die verwijzing opgenomen in de lijst.

  • Als -ID wordt opgegeven met een conversatie-id, worden de conversatie-id en de handles voor beide gesprekseindpunten toegevoegd aan de lijst.

  • Als -ID is opgegeven met een gespreksgroep-id, worden alle gespreks-id's en gespreksverwerkingsidentifiers in die groep aan de lijst toegevoegd.

De lijst bevat geen elementen uit databases die niet worden gedekt door de verbindingsopties. Stel dat u -ID een Gespreks-ID opgeeft, maar alleen een runtimeconnectionoptions clausule opgeeft voor de initiatordatabase en niet de doeldatabase. ssbdiagnose bevat niet de doelgesprekshandle in de lijst met ID's, alleen de gespreks-ID en de gesprekshandle van de initiator.

ssbdiagnose volgt de evenementen van SQL Server Profiler vanuit de databases waardoor runtimeconnectionoptions en baseconnectionoptions gedekt worden. Er wordt gezocht naar Service Broker-gebeurtenissen die aangeven dat er een fout is opgetreden bij een of meer van de Service Broker-id's in de runtimelijst. ssbdiagnose zoekt ook naar servicebrokerfoutgebeurtenissen op systeemniveau die niet zijn gekoppeld aan een gespreksgroep.

Als ssbdiagnose gespreksfouten vindt, probeert het hulpprogramma te rapporteren over de hoofdoorzaak van de gebeurtenissen door ook een configuratierapport uit te voeren. ssbdiagnose gebruikt de metagegevens in de databases om te proberen de exemplaren, Service Broker-ID's, databases, services en contracten te bepalen die door de conversatie worden gebruikt. Vervolgens wordt een configuratierapport uitgevoerd met behulp van alle beschikbare informatie.

Standaard rapporteert ssbdiagnose geen fout gebeurtenissen. Er worden alleen de onderliggende problemen gerapporteerd die tijdens de configuratiecontrole zijn gevonden. Hierdoor wordt de hoeveelheid gerapporteerde informatie geminimaliseerd en kunt u zich richten op de onderliggende configuratieproblemen. U kunt opgeven -SHOWEVENTS om de foutgebeurtenissen bekeken door ssbdiagnose te zien.

Problemen gemeld door ssbdiagnose

ssbdiagnose rapporteert drie klassen problemen. In het XML-uitvoerbestand wordt elke klasse van het probleem gerapporteerd als een afzonderlijk type van het element Probleem. De drie typen problemen die door ssbdiagnose worden gerapporteerd, zijn als volgt:

  • Diagnosis: rapporteert een configuratieprobleem. Dit omvat problemen die zijn gevonden wanneer een CONFIGURATION rapport wordt uitgevoerd of tijdens de configuratiefase van een RUNTIME rapport. ssbdiagnose rapporteert elk configuratieprobleem één keer.

  • Event: Rapporteert een SQL Server Profiler-gebeurtenis die aangeeft dat er een probleem is opgetreden door een gesprek dat tijdens een RUNTIME rapport wordt bewaakt. ssbdiagnose rapporteert gebeurtenissen telkens wanneer ze worden gegenereerd. Gebeurtenissen kunnen meerdere keren worden gerapporteerd als verschillende gesprekken het probleem tegenkomen.

  • Problem: Rapporteert een probleem dat verhindert dat ssbdiagnose een configuratieanalyse voltooit of gesprekken controleert.

SQLCMD-omgevingsvariabelen

Het hulpprogramma ssbdiagnose ondersteunt de SQLCMDSERVER, SQLCMDUSERen SQLCMDPASSWORDSQLCMDLOGINTIMEOUT omgevingsvariabelen die ook worden gebruikt door het hulpprogramma sqlcmd. U kunt de omgevingsvariabelen instellen met behulp van de opdrachtprompt SET of met behulp van de setvar opdracht in Transact-SQL scripts die u uitvoert met behulp van sqlcmd. Zie setvar voor meer informatie over het gebruik in sqlcmd.

Machtigingen

In elke connectionoptions clausule moet de aanmelding die is opgegeven met -E of -U lid zijn van de vaste-serverrol sysadmin in het exemplaar dat is opgegeven in -S.

Voorbeelden

Deze sectie bevat voorbeelden van het gebruik van ssbdiagnose bij een opdrachtprompt.

Eén. Controleer de configuratie van twee services in dezelfde database

In het volgende voorbeeld ziet u hoe u een configuratierapport aanvraagt wanneer het volgende waar is;

  • De initiator en doelservice bevinden zich in dezelfde database.

  • De database bevindt zich in het standaardexemplaren van de database-engine.

  • De exemplaren bevinden zich op dezelfde computer waarop ssbdiagnose wordt uitgevoerd.

Het hulpprogramma ssbdiagnose rapporteert de configuratie die gebruikmaakt van het DEFAULT contract, omdat ON CONTRACT deze niet is opgegeven.

ssbdiagnose -E -d MyDatabase CONFIGURATION FROM SERVICE /test/initiator TO SERVICE /test/target

B. Controleer de configuratie van twee services op afzonderlijke computers die één aanmelding gebruiken

In het volgende voorbeeld ziet u hoe u een configuratierapport aanvraagt wanneer de initiator en de doelservice zich op afzonderlijke computers bevinden, maar toegankelijk zijn via dezelfde aanmelding bij Windows-verificatie.

ssbdiagnose -E CONFIGURATION FROM SERVICE /text/initiator -S InitiatorComputer -d InitiatorDatabase TO SERVICE /test/target -S TargetComputer -d TargetDatabase ON CONTRACT TestContract

C. Controleer de configuratie van twee services op afzonderlijke computers die gebruikmaken van afzonderlijke aanmeldingen

In het volgende voorbeeld ziet u hoe u een configuratierapport aanvraagt wanneer de initiator en doelservice zich op afzonderlijke computers bevinden en afzonderlijke aanmeldingen voor SQL Server-verificatie zijn vereist voor elk exemplaar van de database-engine.

ssbdiagnose CONFIGURATION FROM SERVICE /text/initiator
-S InitiatorComputer -U InitiatorLogin -p !wEx23Dvb
-d InitiatorDatabase TO SERVICE /test/target -S TargetComputer
-U TargetLogin -p ER!49jiy -d TargetDatabase ON CONTRACT TestContract

D. Gespiegelde serviceconfiguraties controleren op afzonderlijke computers met anonieme versleuteling

In het volgende voorbeeld ziet u hoe u een configuratierapport aanvraagt wanneer de initiator en doelservice zich op afzonderlijke computers bevinden en de initiator wordt gespiegeld naar een benoemd exemplaar. Het rapport controleert ook of de services zijn geconfigureerd voor het gebruik van anonieme versleuteling.

ssbdiagnose -E CONFIGURATION FROM SERVICE /text/initiator
-S InitiatorComputer -d InitiatorDatabase MIRROR
-S MirrorComputer/MirrorInstance TO SERVICE /test/target
-S TargetComputer -d TargetDatabase ON CONTRACT TestContract ENCRYPTION ANONYMOUS

E. De configuratie van twee contracten controleren

In het volgende voorbeeld ziet u hoe u een opdrachtbestand maakt dat configuratierapporten aanvraagt wanneer het volgende waar is:

  • De initiator en doelservice bevinden zich in dezelfde database.

  • De database bevindt zich in het standaardexemplaren van de database-engine.

  • Het exemplaar bevindt zich op dezelfde computer waarop ssbdiagnose wordt uitgevoerd.

Telkens wanneer ssbdiagnose wordt uitgevoerd, wordt de configuratie voor een ander contract tussen dezelfde services gerapporteerd.

ssbdiagnose -E -d MyDatabase CONFIGURATION FROM SERVICE
/test/initiator TO SERVICE /test/target ON CONTRACT PayRaiseContract
ssbdiagnose -E -d MyDatabase CONFIGURATION FROM SERVICE /test/initiator
TO SERVICE /test/target ON CONTRACT PromotionContract

F. De status van een specifiek gesprek op de lokale computer bewaken met een time-out

In het volgende voorbeeld ziet u hoe u een specifiek gesprek kunt bewaken waarbij de initiator en doelservices zich in dezelfde database bevinden in de standaardinstantie van dezelfde computer waarop ssbdiagnose wordt uitgevoerd. Het time-outinterval is ingesteld op 20 seconden.

ssbdiagnose -E -d TestDatabase RUNTIME -ID D68D77A9-B1CF-41BF-A5CE-279ABCAB140D -TIMEOUT 20

G. De status van een gesprek bewaken dat twee computers omvat

In het volgende voorbeeld ziet u hoe u een specifiek gesprek kunt bewaken waarbij de initiator en doelservices zich op afzonderlijke computers bevinden.

ssbdiagnose RUNTIME -ID D68D77A9-B1CF-41BF-A5CE-279ABCAB140D
-TIMEOUT 10 CONNECT TO -E -S InitiatorComputer/InitiatorInstance
-d InitiatorDatabase CONNECT TO -E -S TargetComputer/TargetInstance
-d TargetDatabase

H. De status van een gesprek in twee databases in hetzelfde exemplaar bewaken

In het volgende voorbeeld ziet u hoe u een specifiek gesprek kunt bewaken waarbij de initiator en doelservices zich in afzonderlijke databases in hetzelfde exemplaar van de database-engine bevinden. In het voorbeeld wordt het baseconnectionoptions exemplaar en de aanmeldingsgegevens opgegeven, en twee CONNECT TO componenten om de databases op te geven. -SHOWEVENTS wordt opgegeven zodat alle runtimegebeurtenissen worden opgenomen in de rapportuitvoer.

ssbdiagnose -E -S TestComputer/DevTestInstance RUNTIME -SHOWEVENTS
-ID 5094d4a7-e38c-4c37-da37-1d58b1cb8455 -TIMEOUT 10 CONNECT TO
-d InitiatorDatabase CONNECT TO -d TargetDatabase

I. De status van twee gesprekken tussen twee databases bewaken

In het volgende voorbeeld ziet u hoe u twee gesprekken bewaakt waarbij de initiator en doelservices zich in afzonderlijke databases in hetzelfde exemplaar van de database-engine bevinden. In het voorbeeld wordt het baseconnectionoptions exemplaar en de aanmeldingsgegevens opgegeven, en twee CONNECT TO componenten om de databases op te geven.

ssbdiagnose -E -S TestComputer/DevTestInstance RUNTIME
-ID 5094d4a7-e38c-4c37-da37-1d58b1cb8455
-ID 9b293be9-226b-4e22-e169-1d2c2c15be86 -TIMEOUT 10 CONNECT TO
-d InitiatorDatabase CONNECT TO -d TargetDatabase

J. De status van alle gesprekken tussen twee databases bewaken

In het volgende voorbeeld ziet u hoe u alle gesprekken tussen twee databases in hetzelfde exemplaar van de database-engine kunt bewaken. In het voorbeeld wordt het baseconnectionoptions exemplaar en de aanmeldingsgegevens opgegeven, en twee CONNECT TO componenten om de databases op te geven.

ssbdiagnose -E -S TestComputer/DevTestInstance RUNTIME
-TIMEOUT 10 CONNECT TO -d InitiatorDatabase CONNECT TO
-d TargetDatabase

K. Specifieke fouten negeren

In het volgende voorbeeld ziet u hoe bekende fouten (303 en 304) worden genegeerd in de configuratie van activering in een testsysteem.

ssbdiagnose -IGNORE 303 -IGNORE 304 -E -d TestDatabase
CONFIGURATION FROM SERVICE /test/initiator TO SERVICE /test/target
ON CONTRACT TextContract

L. Ssbdiagnose XML-uitvoer omleiden

In het volgende voorbeeld ziet u hoe u aanvraagt dat ssbdiagnose de uitvoer genereert als een XML-bestand dat wordt omgeleid naar een bestand. Het TestDiag.xml-bestand kan vervolgens worden geopend door een toepassing om XML-bestanden te analyseren of te rapporteren. U kunt deze ook bekijken vanuit een algemene XML-editor, zoals XML Kladblok.

ssbdiagnose -XML -E -d MyDatabase CONFIGURATION FROM SERVICE
/test/initiator TO SERVICE /test/target > c:\MyDiagnostics\TestDiag.xml

M. Een omgevingsvariabele gebruiken

In het volgende voorbeeld wordt eerst de SQLCMDSERVER omgevingsvariabele ingesteld op de servernaam en wordt vervolgens ssbdiagnose uitgevoerd zonder op te -Sgeven.

SET SQLCMDSERVER=MyComputer
ssbdiagnose -XML -E -d MyDatabase CONFIGURATION FROM SERVICE
/test/initiator TO SERVICE /test/target