Aby sprawnie kontrolować kolejkę zadań w Project Server, należy wyposażyć się w odpowiednie narzędzie. Można korzystać z dostępnego w PWA lub ze znajdującego się na CodePlex rozwiązania - Queue Watch. Można także spróbować stworzyć takie rozwiązanie samemu. Aby opracować narzędzie dostosowane do wymagań administratora, trzeba poznać cechy innych rozwiązań i wykorzystać najlepsze. Następnie należy je zaimplementować do własnego rozwiązania, spełniającego oczekiwania wymagającego administratora. Artykuł opisuje szczegółowo to rozwiązanie. Dołączone do niego zostały w formie screencasta: analiza i porównanie aplikacji do wsparcia administracji Project Server 2007.
Informacje o kolejce zadań w Project Server 2007
PWA Manage Queue Jobs pobiera dane o stanie kolejki korzystając z wielu obiektów na bazie Draft, na serwerze SQL Server.
Dane o stanie kolejki są przetrzymywane w tabelach:
- MSP_QUEUE_PROJECT_GROUP
- MSP_QUEUE_PROJECT_GROUP_ARCHIVE
Dane z tabel są agregowane do widoku MSP_QUEUE_PROJECT_GROUP_FULL_VIEW.
Strona „PWA Manage Queue Jobs" pobiera dane poprzez procedurę składowaną MSP_ProjQ_Get_Status_Of_Jobs_List.
Zatem pełny schemat obiektów bazodanowych do pobrania danych o stanie kolejki wygląda następująco:

Konstrukcja zapytania o stan kolejki
Najprostszą metodą pobrania danych o stanie kolejki będzie wykorzystanie widoku MSP_QUEUE_PROJECT_GROUP_FULL_VIEW.
Aby prawidłowo kontruować warunki należy znać znaczenie wartości liczbowych dla kolumn GRP_QUEUE_MESSAGE_TYPE oraz GRP_QUEUE_STATE.
Typ wiadomości(Message Type)

Stany kolejki(Queue state)

Zapytanie może być skonstruowane w ten sposób:
DECLARE @endtimestamp DATETIME
DECLARE @starttimestamp DATETIME
SET @starttimestamp=CURRENT_TIMESTAMP-7
SET @endtimestamp=CURRENT_TIMESTAMP
SELECT
g.GRP_QUEUE_MESSAGE_TYPE
,g.GRP_QUEUE_PRIORITY,
,g.GRP_QUEUE_STATE
,g.PERCENT_COMPLETE
FROM MyServrer.PWA_Draft.MSP_QUEUE_PROJECT_GROUP_FULL_VIEW g
WHERE g.CREATED_DATE >= @starttimestamp
AND g.CREATED_DATE <= @endtimestamp
AND g.GRP_QUEUE_MESSAGE_TYPE IN (2,3,20,5,6,19,9,7,4,8,11,13,75,76,77,78,65,66,67,68,69,70,71,72,73,74,18,12,10,21,22,14,23,17,24,30,25,27,1,28,29,31,32,33,34,35,36,85,37,38,39,41,40,42,43,44,45,46,47,48,49,88,50,51,52,53,55,56,26,59,57,54,58,64,61,60,62,63,80,79,81,82,83,84,87,15,16,86)
AND g.GRP_QUEUE_STATE IN (8,9,5,6,2,3,7,1,10,12,11)
ORDER BY CREATED_DATE DESC
Instalacja rozwiązania
Znając budowę bazy danych dla kolejki Project Server 2007 oraz podstawową konstrukcję zapytania możemy przejść do instalacji rozwiązania na SQL Server.
- W pierwszym kroku należy prawidłowo skonfigurować DBMail na SQL Server. Jeżeli serwer nie ma prawidłowo skonfigurowanej usługi, proponuję odwiedzić link E-Mail Functionality in SQL Server 2005. Z pomocą tego linku łatwo i przyjemnie można uruchomić możliwość wysyłania maili.
- Następnie należy stworzyć nowy job na SQL Server Agent
- W trzecim kroku trzeba zdefiniować harmonogram (Schedule) dla joba, czyli określić, jak często chcemy otrzymywać wiadomości z podsumowaniem od stanie kolejki.
Przykładowo może to wyglądać tak:

- Teraz należy dodać nowy krok (step), a w nim umieścić treść skryptu dostępną pod linkiem: Monitor Kolejki Project Server 2007. Należy pamiętać, by:
- zmodyfikować treść, zmieniając nazwę serwera oraz bazy danych,
- zmienić adres e-mail administratora, do którego będzie wysyłany raport,
- zmienić ustawienia interwału czasowego, tak aby raportować okres, który jest istotny w raporcie. Domyślnie jest to raport z ostatnich siedmiu dni,
- Ostatnim krokiem jest zapisanie zadania
Od tego momentu SQL Server będzie informował administratora o stanie kolejki Project Server 2007.
Wynikiem działania będzie e-mail:

Screencast
Zapraszam do obejrzenia 9 minutowego screncasta (+dźwięk) z omówieniem trzech rozwiązań do monitorowania kolejki w Project Server 2007.

Podsumowanie
Warto rozejrzeć się za narzędziami oferowanymi na rynku, aby zorientować się, jakie są ich możliwości, i wybrać najodpowiedniejsze. Gdy poznamy dostępne aplikacje monitorujące, bez trudu znajdziemy takie, które zaspokajają potrzeby administratora, a tym samym w pełni wspierają jego pracę w Project Server 2007.
Linki
Zasady działania kolejki Project Server 2007
Kolejkowanie w Project Server 2007
Krótka instrukcja konfiguracji SQL Server 2005 DBMail
E-Mail Functionality in SQL Server 2005
Skrypt SQL użyty w artykule
Monitor Kolejki Project Server 2007
CodePlex Queue Watch
Project Server 2007 Queue Watch Tool