ZMIENIAĆ kolejki (Transact-SQL)
Zmienia właściwości kolejki.
Składnia
ALTER QUEUE <object> WITH
[ STATUS = { ON | OFF } [ , ] ]
[ RETENTION = { ON | OFF } [ , ] ]
[ ACTIVATION (
{ [ STATUS = { ON | OFF } [ , ] ]
[ PROCEDURE_NAME = <procedure> [ , ] ]
[ MAX_QUEUE_READERS = max_readers [ , ] ]
[ EXECUTE AS { SELF | 'user_name' | OWNER } ]
| DROP }
) [ , ]]
[ POISON_MESSAGE_HANDLING (
STATUS = { ON | OFF } )
]
[ ; ]
<object> ::=
{
[ database_name. [ schema_name ] . | schema_name. ]
queue_name
}
<procedure> ::=
{
[ database_name. [ schema_name ] . | schema_name. ]
stored_procedure_name
}
Argumenty
database_name(obiekt)
Jest to nazwa bazy danych, która zawiera kolejki ma zostać zmieniony.Gdy nie database_name jest podana, to ustawienia domyślne do bieżącej bazy danych.schema_name(obiekt)
Jest to nazwa schematu, do której należy dany nową kolejkę.Gdy nie schema_name jest podana, to domyślnie domyślnego schematu dla bieżącego użytkownika.queue_name
Jest to nazwa kolejki ma zostać zmieniony.Stan (kolejki)
Określa, czy kolejka jest dostępna (włączone) lub jest niedostępny (Wył.).Gdy kolejka jest niedostępny, wiadomości nie można dodane do kolejki lub usunięta z kolejki.PRZECHOWYWANIA
Określa ustawienie zachowywania dla kolejki.Jeśli RETENCJI = ON wszystkich wiadomości wysłanych lub odebranych na konwersacje za pomocą tej kolejki są zachowywane w kolejce aż zakończyły konwersacji.Pozwala to zachować komunikaty do celów inspekcji lub do przeprowadzania transakcji kompensacyjnych, jeżeli błąd wystąpiOstrzeżenie
Ustawienie ZACHOWYWANIA = ON może zmniejszyć wydajność.To ustawienie powinny być używane tylko w razie potrzeby spełniać umowy opoziom usługadla aplikacji.
AKTYWACJA
Określa informacje dotyczące procedura składowana jest aktywowany do przetwarzania wiadomości pojawiające się w kolejce.Stan (Aktywacja)
Określa, czy kolejka uaktywnia procedura składowana.Gdy stan = ON uruchamia kolejki procedura składowana określonego z PROCEDURE_NAME, gdy numer procedury aktualnie uruchomione jest mniej niż MAX_QUEUE_READERS i po nadejściu szybciej niż procedury przechowywane odbierać wiadomości w kolejce wiadomości.Gdy stan = OFF, kolejki nie uaktywnia procedura składowana.PROCEDURE_NAME = <procedury>
Określa nazwę procedura składowana Uaktywnij, gdy kolejka zawiera wiadomości były przetwarzane.Ta wartość musi być SQL Server identyfikatora.Aby uzyskać więcej informacji dotyczących aktywacja, zobacz Opis po wystąpieniu aktywacji.database_name (procedura)
Jest to nazwa bazy danych zawierającej procedura składowana.schema_name (procedura)
Jest to nazwa schematu, który jest właścicielem procedura składowana.stored_procedure_name
Jest to nazwa procedura składowana.MAX_QUEUE_READERS =max_reader
Określa maksymalną liczbę wystąpień aktywacja procedura składowana kolejki rozpoczyna się jednocześnie.Wartość max_readers musi być liczbą z przedziału od 0 do 32767.WYKONANIE JAKO
Określa SQL Server bazy danych, konto użytkownika, który uruchamiaprocedura składowana aktywacja. SQL Servermusi mieć możliwość sprawdzenia uprawnień dla tego użytkownika w czas że kolejka uaktywnia procedura składowana.Dla użytkownika domena Windows SQL Server musi być podłączony do domena i jest zdolny do sprawdzania poprawności uprawnienia określonego użytkownika po uaktywnieniu procedury lub aktywacja zakończy się niepowodzeniem.Dla SQL Server użytkownika zawsze można serwera, sprawdź uprawnienia.SELF
Określa, że procedura składowana jest wykonywana jako bieżący użytkownik.(Główna baza danych, wykonywanie instrukcjaALTER kolejki.)'user_name'
Jest to nazwa użytkownika, który procedura składowana jest wykonywana jako.user_namemusi być prawidłową SQL Server użytkownika określonego jako SQL Server identyfikatora.Bieżący użytkownik musi mieć uprawnienia PERSONIFIKUJ user_name określonego.WŁAŚCICIEL
Określa, że procedura składowana jest wykonywana jako właściciel kolejki.UPUŚĆ
Usuwa wszystkie informacje o aktywacja skojarzony z kolejką.POISON_MESSAGE_HANDLING
Określa, czy włączona jest obsługa skażona wiadomość .Domyślnie jest włączone.Kolejka z obsługi zestaw na OFF skażona wiadomość nie zostanie wyłączone po pięciu cofnięcia kolejnych transakcji.Pozwala to niestandardowy skażona wiadomość , przekazywanie systemu zdefiniowane przez aplikację.
Uwagi
Gdy kolejka z określoną aktywacja procedura składowana zawiera wiadomości, zmienianie stanu aktywacja z on natychmiast uaktywnia aktywacja procedura składowana.Zmienianie stanu aktywacja z na OFF zatrzymanie broker z uaktywnienie wystąpień procedura składowana, ale nie zatrzymuje aktualnie uruchomionych wystąpień procedura składowana .
Modyfikowanie kolejki, aby dodać aktywacja procedura składowana nie zmienia stan aktywacja tej kolejki.Zmiana aktywacja procedura składowana dla kolejki nie wpływa na wystąpienia aktywacja procedura składowana , które są aktualnie uruchomione.
Service Brokersprawdza, czy maksymalną liczbę czytelników kolejki dla kolejki jako część procesu aktywacja .W związku z tym, umożliwia modyfikowanie kolejki, aby zwiększyć maksymalną liczbę czytelników kolejki Service Broker natychmiast uruchomić więcej wystąpień aktywacja procedura składowana.Modyfikowanie kolejki, aby zmniejszyć maksymalną liczbę czytelników kolejki nie wpływa na wystąpienia aktywacja procedura składowana aktualnie uruchomione.Jednakże Service Broker nie uruchamia nowe wystąpienie procedura składowana , dopóki liczba wystąpień aktywacja procedura składowana spada poniżej skonfigurowanych liczba maksymalna.Aby bardziej szczegółowy opis procesu aktywacja , zobacz Opis po wystąpieniu aktywacji.
Gdy kolejka jest niedostępny, Service Broker przechowuje wiadomości dla usług, które korzystają z kolejki w kolejce transmisji dla bazy danych.Sys.transmission_queue wykazu widok udostępnia widok kolejki transmisji.
Jeśli przyjęcie instrukcja lub uzyskać grupy KONWERSACJI instrukcja określa dostępne kolejki, instrukcja nie powiedzie się z Transact-SQL błąd.
Uprawnienia
Domyślne uprawnienia do modyfikacji kolejki do właściciela kolejki członków db_ddladmin lub db_owner stałe role bazy danych i członkowie sysadmin stała rola serwera.
Przykłady
A.Że kolejka jest niedostępne
Poniższy przykład powoduje, że ExpenseQueue kolejki niedostępne do odbierania wiadomości.
ALTER QUEUE ExpenseQueue WITH STATUS = OFF ;
B.aktywacjaprocedura składowanazmiany
Poniższy przykład przedstawia zmianę procedura składowana rozpoczyna się w kolejce.procedura składowana jest wykonywana jako użytkownik, który uruchomił ALTER QUEUEinstrukcja.
ALTER QUEUE ExpenseQueue
WITH ACTIVATION (
PROCEDURE_NAME = new_stored_proc,
EXECUTE AS SELF) ;
C.Zmienianie liczby czytelników kolejki
Poniższy przykład przedstawia 7 obiektów maksymalną liczbę procedura składowana Service Broker uruchamia dla kolejki.
ALTER QUEUE ExpenseQueue WITH ACTIVATION (MAX_QUEUE_READERS = 7) ;
D.Zmiana aktywacja procedura składowana i wykonanie, jak konto
Poniższy przykład przedstawia zmianę procedura składowana , Service Broker uruchomieniu.procedura składowana jest wykonywana jako użytkownik SecurityAccount.
ALTER QUEUE ExpenseQueue
WITH ACTIVATION (
PROCEDURE_NAME = AdventureWorks2008R2.dbo.new_stored_proc ,
EXECUTE AS 'SecurityAccount') ;
E.Ustawienie kolejki, aby zachować wiadomości
Poniższy przykład ustawia kolejki, aby zachować wiadomości.Kolejka zachowuje wszystkie wiadomości wysłane do lub z usług, które korzystają z tej kolejki, do czasu zakończenia konwersacji, który zawiera wiadomość.
ALTER QUEUE ExpenseQueue WITH RETENTION = ON ;
F.Usuwanie z kolejki aktywacja
W następującym przykładzie usunięto wszystkie informacje o aktywacja z kolejki.
ALTER QUEUE ExpenseQueue WITH ACTIVATION (DROP) ;
Zobacz także