ALTER QUEUE (Transact-SQL)
Zmienia właściwości kolejki.
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 }
) ]
[ ; ]
<object> ::=
{
[ database_name. [ schema_name ] . | schema_name. ]
queue_name
}
<procedure> ::=
{
[ database_name. [ schema_name ] . | schema_name. ]
stored_procedure_name
}
Argumenty
database_name(obiekt)
Jest nazwą bazy danych, która zawiera kolejki ma być zmieniony.Jeśli nie database_name są dostępne, to ustawienia domyślne z bieżącą bazą danych.schema_name(obiekt)
To nazwa schematu, do której należy dany nowej kolejki.Jeśli nie schema_name są dostępne domyślnie domyślnego schematu dla bieżącego użytkownika.queue_name
Jest nazwą kolejki ma być zmieniony.Stan (kolejki)
Określa, czy kolejka jest dostępna (ON) lub jest niedostępny (OFF).Gdy kolejka jest niedostępny, wiadomości nie mogą być dodawane do kolejki lub usuwane z kolejki.ZACHOWANIE
Określa ustawienie zachowywania dla kolejki.Jeśli zachowanie = ON wszystkich wiadomości wysłanych lub odebranych w konwersacji przy użyciu tej kolejki, są zachowywane w kolejce aż do następnej zakończyły konwersacji.Pozwala to zachować wiadomości w celu prowadzenia inspekcji celów lub wykonać kompensacyjne transakcji, jeśli błąd wystąpiUwaga
Ustawienie ZACHOWYWANIA = ON może zmniejszyć wydajność.To ustawienie tylko stosuje się w razie potrzeby do umowy serwisowej, w poziomie dla aplikacji.
AKTYWACJA
Określa informacje dotyczące procedura przechowywana, która jest aktywna do przetwarzania wiadomości przychodzące z tej kolejki.Stan (aktywacja)
Określa, czy kolejka uaktywnia procedura przechowywana.Gdy stan = ON i rozpoczyna się kolejka, procedura przechowywana określone z PROCEDURE_NAME, gdy liczba procedury aktualnie uruchomione, jest mniejsza niż MAX_QUEUE_READERS i po nadejściu wiadomości w kolejce szybciej niż procedura przechowywana komunikaty.Gdy stan = OFF, kolejki nie aktywuje procedura przechowywana.PROCEDURE_NAME = <procedura>
Określa nazwę procedura przechowywana w celu Uaktywnij, gdy kolejka zawiera wiadomości mają być przetwarzane.Ta wartość musi być SQL Server identyfikator. Aby uzyskać więcej informacji dotyczących aktywacja zobacz Opis, kiedy występuje aktywacja.database_name (procedura)
Jest nazwą bazy danych zawierającej procedura przechowywana.schema_name (procedura)
To nazwa schematu, który jest właścicielem procedura przechowywana.stored_procedure_name
To nazwa procedura przechowywana.MAX_QUEUE_READERS = max_readers
Określa maksymalną liczbę wystąpień procedura przechowywana aktywacja, która kolejce rozpoczyna się jednocześnie.Wartość max_readers musi być liczbą z przedziału od 0 do 32767.wykonać JAKO
Specifies the SQL Server database user account under which the activation stored procedure runs.SQL Server must be able to check the permissions for this user at the time that the queue activates the stored procedure.Dla użytkownika domena systemu Windows SQL Server musi być podłączony do domena i jest zdolny do sprawdzania poprawności uprawnienia określonego użytkownika, gdy procedura jest aktywna lub Aktywacja nie powiedzie się. Aby SQL Server Użytkownik, serwer może zawsze Sprawdź uprawnienia.SAMODZIELNIE
Określa, że procedura przechowywana jest wykonywany jako bieżący użytkownik.(Baz danych głównej wykonywania tej instrukcja ALTER QUEUE.)'user_name'
Is the name of the user that the stored procedure executes as.user_name must be a valid SQL Server user specified as a SQL Server identifier.Bieżący użytkownik musi mieć uprawnienie do PERSONIFIKACJI dla user_name określona.WŁAŚCICIEL
Określa, że procedura przechowywana jest wykonywany jako właściciel kolejki.UPUŚĆ
Usuwa wszystkie informacje dotyczące aktywacja skojarzony z kolejką.
Remarks
Jeżeli kolejka o określonym aktywacja przechowywane procedury zawiera wiadomości, zmienianie stanu aktywacja z OFF on natychmiast uaktywnia procedura przechowywana aktywacja.Zmienianie stanu aktywacja z ON na OFF zatrzymuje brokera z uaktywnieniem wystąpień procedura przechowywana, lecz nie zatrzymuje wystąpienia procedura przechowywana, które są aktualnie uruchomione.
Zmienianie kolejkę, aby dodać procedura przechowywana aktywacja nie powoduje zmiany stanu aktywacja kolejki.Zmienianie procedura przechowywana aktywacja dla kolejki nie wpływa na procedura przechowywana aktywacja wystąpienia, które są aktualnie uruchomione.
Service Broker sprawdza, czy maksymalną liczbę czytelników kolejki do kolejki w ramach procesu aktywacja.W związku z tym umożliwia modyfikowanie kolejki, aby zwiększyć maksymalną liczbę czytelników kolejki Service Broker Aby natychmiast uruchomić więcej wystąpień aktywacja procedura przechowywana. Zmienianie kolejkę, aby zmniejszyć maksymalną liczbę czytelników kolejki nie wpływa na wystąpienia procedury aktywacja przechowywanych obecnie uruchomione.Jednak Service Broker Nie można uruchomić nowe wystąpienie procedura przechowywana do momentu liczbę wystąpień dla aktywacja przechowywane procedury spadnie poniżej skonfigurowanej maksymalnej liczby. Aby uzyskać bardziej szczegółowy opis procesu aktywacja zobacz Opis, kiedy występuje aktywacja.
Gdy kolejka jest niedostępny, Service Broker przechowuje wiadomości dla usług, które korzystają z kolejki w kolejce transmisji dla bazy danych. The sys.transmission_queue catalog view provides a view of the transmission queue.
Jeśli instrukcja przyjęcie lub instrukcji GET GROUP KONWERSACJI określa niedostępne kolejki, tej instrukcji kończy się niepowodzeniem z Transact-SQL Wystąpił błąd.
Uprawnienia
Domyślnie uprawnienia do modyfikacji kolejki do właściciela kolejki członków db_ddladmin or db_owner stałe role bazy danych i członkowie sysadmin ustalić roli serwera.
Przykłady
A.Tworzenie kolejki niedostępne
Poniższy przykład powoduje, że ExpenseQueue kolejka jest niedostępny i nie może odbierać wiadomości.
ALTER QUEUE ExpenseQueue WITH STATUS = OFF ;
B.Zmiana aktywacja procedura przechowywana
W poniższym przykładzie zmienia procedura przechowywana, która rozpoczyna się w kolejce.Procedura przechowywana wykonuje się jako użytkownik, który uruchomił ALTER QUEUE Instrukcja.
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 Maksymalna liczba procedura przechowywana obiektów Service Broker Uruchamia program dla tej kolejki.
ALTER QUEUE ExpenseQueue WITH ACTIVATION (MAX_QUEUE_READERS = 7) ;
D.Zmiana aktywacja przechowywane procedury i wykonać AS konta
W poniższym przykładzie zmienia procedura przechowywana, Service Broker zostanie uruchomiony. Procedura przechowywana wykonuje się jako użytkownik SecurityAccount.
ALTER QUEUE ExpenseQueue
WITH ACTIVATION (
PROCEDURE_NAME = AdventureWorks.dbo.new_stored_proc ,
EXECUTE AS 'SecurityAccount') ;
E.Ustawianie kolejki, aby zachować wiadomości
Poniższy przykład przedstawia kolejkę, 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, zawierający 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) ;
See Also