Środowisko uruchomieniowe
Do uruchamiania definicji zadań w środowisku serwerowym można użyć programu TransformationRunner.exe, który uruchamia TaskManagera i inicjuje zadanie startowe (w innych trybach tylko inicjuje, lub tylko uruchamia managera), ewentualnie uruchamia zadanie przetwarzania bez „obudowy”.
TransformationRunner
Program TransformationRunner.exe oferuje następujące możliwości:
- kontrolowanie zadań w tabeli TASKS (start nowego),
- uruchamianie zadań poprzez uruchomienie instancji Task Managera,
- wraz z uruchomieniem zadania,
- tylko wznawianie zadań już istniejących (--resume).
Niżej przedstawiono możliwe argumenty wywołania programu wykonawczego (uruchomienie bez parametrów – powoduje krótką autodiagnostykę środowiska):
TransformationRunner [Wersja: 1.0.3947.22801 (x86)]
Copyright (c) 2005-2010 VSoft SA. Wszelkie prawa zastrzeżone.
Użyj Ctrl-X aby spróbować zatrzymać zadania.
Uruchamia zadanie w procesie TaskManager'a.
Użycie: TransformationRunner nazwa_zadania [WsadId=liczba] [Revision=liczba]
[[parametr1=wartość1]],...,[parametrN=wartośćN]]
Użycie:TransformationRunner --resume [...]
Przykład: TransformationRunner START wsadid=1 revision=1 data=20100122
Parametry:
nazwa_zadania Nazwa zadania do uruchomienia według pliku hierarchii zadań.
wsadid=liczba Id. wsadu uruchamianego zadania.Ignorowana wielkość liter w nazwie parametru. Dopuszczalna wartość 'max'. Domyślnie - nowy wsad (max+1).
revision=liczba Numer powtórki uruchamianego zadania. Ignorowana wielkość liter w nazwie parametru.
parametrN=wartośćN Dodatkowe parametry uruchamianego zadania w postaci klucz=wartość.
-d Zakończenie procesu przetwarzania nie kończy programu.
--resume Włącza możliwość automatycznego wznawiania. Może być jedynym parametrem.
--noCleanup Wyłącza możliwość automatycznego sprzątania starych, urwanych zadań.
--monitorOnly Włącza tryb monitorowania zadań. Zadania nie są przetwarzane.
W trakcie działania można używać skrótów klawiszowych:
Ctrl+Shift+t, Ctrl+t - regulowanie poziomu logowania +/-
Ctrl+x - próba czystego zatrzymania przetwarzania - z podsumowaniem czasów w logu itd.
Brak parametrów. Uruchamiam tylko diagnostykę ustawień.
Sprawdzanie konfiguracji...
DB_TASKS [OK]
ASMW_EXTRACT [OK]
ASMW_SPRAWY [OK]
Działanie programu można przerwać na dwa sposoby:
- Siłowo (kill)
Wybranie akcji spowoduje pozostawienie działających zadań w stanie „RUNNING”. Po rozwiązaniu ewentualnych problemów z powoli działającymi zadaniami, możliwe jest przywrócenie bazy do stanu pierwotnego. Przetwarzanie można wznowić wywołując TransformationRunner --resume. Niestety, jeśli wykonywanym działaniem jest pakiet przetwarzania, nie zostanie zalogowane podsumowanie wykonania, w tym również czasy przetwarzania bloczków (co mogłoby stanowić cenną wskazówkę do wykrycia przyczyny powolnego działania).
- Naciskając Ctrl-X w oknie konsoli
Akcja spowoduje zgłoszenie żądania przerwania przetwarzania. Zostaną zalogowane odpowiednie błędy typu „Przerwanie przetwarzania” oraz podsumowania czasów działania bloczków z zadań „Pakiety przetwarzania”. Zadania przejdą do stanu „ERROR”.
TransformationRunner
Program TransformationRunner.exe oferuje możliwość uruchomienia procesu przetwarzania pakietu. Tabela niżej ilustruje przykładowe wywołanie bez parametrów.
TransformationRunner [Wersja: 2.0.0.0 (x86)]
Copyright (c) 2005-2010 VSoft SA. Wszelkie prawa zastrzeżone.
Uruchamia pakiet masowego Masowego Przetwarzania Danych
Użycie: TransformationRunner ścieżkaDoPakietu.transform [--arg[=value] | pkgArg=value | block.param=value ...]
Przykład:
TransformationRunner load.its Input.FilePath=data.csv DateFrom=2010-03-12
TransformationRunner --dumpParams > params.txt
TransformationRunner load.its --paramsFile=params.txt
Parametry:
--dumpParams zrzuca na STDOUT plik ustawień parametrów pakietu
--paramsFile=path ładuje plik ustawień parametrów pakietu
Uwaga: argumenty z linii poleceń są ważniejsze od argumentów znajdujących się w pliku.
W trakcie działania można używać skrótów klawiszowych:
Ctrl+Shift+t, Ctrl+t - regulowanie poziomu logowania +/-
Ctrl+x - próba czystego zatrzymania przetwarzania - z podsumowaniem czasów w logu itd.
Brak wymaganego parametru 'ścieżkaDoPakietu.transform'!
Przeciętny pakiet przetwarzania, w celu uruchomienia może potrzebować wielu wartości argumentów wywołania oraz parametrów bloczków. Aby umożliwić wywoływanie wielu wariantów pakietu, przy ustalonej większości parametrów, można je podawać w pliku.
Plik taki może przyjmować następującą postać:
### Wzorzec pliku ustawień parametrów
### można korzystać z prostego mechanizmu podmian postaci:
# Var=value
# Block.Param=prefix{Var}suffix
FILE_PREFIX=20100917_1214
# Argumenty wywołania:
LINK = serwer.local/SYSTEM/WebServices/Service1.svc
SCN_ID2_NAME = DEPOZYTY_2
SCN_ID3_NAME = KREDYTY_2
# Bloczki:
## Bledy_DIALER
Bledy_DIALER.FilePath = LogDialera{FILE_PREFIX}.csv;LOGS
## CPK
CPK.Environment = SYSTEM_TEST
## Plik dialeraWindykacja1
Plik dialeraWindykacja1.FileListPath = ;DATA_OUT
## Plik dialeraWindykacja2
Plik dialeraWindykacja2.FileListPath = ;DATA_OUT
W pliku sterującym istnieje możliwość korzystania z prostego mechanizmu podmian napisów, gdzie odwołanie do napisu ma postać {Klucz}, a wartości mogą pochodzić z:
- kluczy zdefiniowanych wcześniej w samym pliku,
- argumentów wywołania programu TransformationRunner.exe
- pliku konfiguracyjnego, sekcji appSettings.
Wartości parametrów będących ścieżkami do plików lub katalogów mogą mieć postać: FragmentŚcieżki1;SYMBOL_KATALOGU Podczas uruchamiania konstrukcja taka zostanie przetłumaczona na ścieżkę wynikową, a SYMBOL_KATALOGU zostanie pobrany z pliku konfiguracyjnego sekcji appSettings, a następnie poprawnie sklejony z resztą ścieżki.
Przykładowo:
Patrząc na wpis zamieszczony w pliku sterującym TransformationRunner.exe wyżej:
## Plik dialeraWindykacja1
Bledy_DIALER.FilePath = LogDialera{FILE_PREFIX}.csv;LOGS
umieszczając w pliku konfiguracyjnym aplikacji wpis:
<appSettings>
<add key="LOGS" value="C:\archITekt\DATA\LOGS" />
<appSettings>
parametr konfiguracyjny dla pliku Bledy_DIALER będzie miał wartość:
C:\archITekt\DATA\LOGS\LogDialera20100917_1214.csv
Środowisko uruchomieniowe usług
Do hostowania usług wykorzystywany jest program o nazwie TransformationService.exe, który można uruchamiać testowo w trybie konsolowym lub jako usługę (po uprzedniej rejestracji w systemie np. programem sc). Program w trakcie działania kolejno:
- zainicjuje logowanie według konfiguracji (np. na dysk, do bazy itd…),
- jeśli jest częścią środowiska konfiguracji technicznej - wykona korekty konfiguracji i zarejestruje się jako węzeł przetwarzający,
- sprawdzi własną konfigurację (katalogi, dostępność baz),
- opcjonalnie wykona autodiagnostykę,
- poszuka wszystkich pakietów ze wskazanego poddrzewa dysku lub serwera wersji o nazwach pasujących do zadanego wzorca i będących pakietami usługowymi,
- sprawdzi i skompiluje pakiety jako elementy wspólnego endpointa SOAP / REST / POX,
- w zależności od sposobu wywołania - zakończy działanie lub wystartuje usługę sieciową według konfiguracji
<serviceModel>i znalezionych pakietów i przejdzie w tryb nasłuchu.
W tym ostatnim trybie aplikacja w trybie konsolowym reaguje na sygnał <ENTER>, który powoduje zrzucenie do logów poszczególnych pakietów aktualnego stanu działania, identycznego z tym, który się pojawia po zakończeniu pakietu, uzupełnionego o bieżące ślady stosów wszystkich wątków roboczych.
Działanie takie można również wywołać dostarczając do usługi windows sygnał pauzowania. Zachowanie to służy do diagnozowania w sytuacjach nietypowych - dane z logów można załadować do środowiska projektowego i analizować graficznie.
Program ma dodatkową możliwość automatycznego, "kulturalnego" restartu w przypadku wykrycia zmian w treści definicji pakietów usługowych. Częstotliwość sprawdzania zmian można określić w konfiguracji.
- Inną dodatkową opcją jest możliwość automatycznej deduplikacji nazw elementów-korzeni poszczególnych operacji wejściowych w sytuacji, gdy wiele pakietów posłuży się tą samą (zwykle domyślną) nazwą.
- Działanie takie, choć niezalecane na środowiskach produkcyjnych, pozwala szybko prototypować duże zestawy usług sieciowych.
- Deduplikacja odbywa się poprzez doklejanie kolejnych sufixów _1, _2, _3 itd… aż do uzyskania unikalnych nazw.
- Na środowiskach produkcyjnych, po wyłączeniu tej cechy, duplikat nazwy korzenia spowoduje brak możliwości uruchomienia hostowania usług. W przeciwnym przypadku system mógłby doprowadzić do gubienia danych.
- Szczegóły konfiguracji opisanych elementów można znaleźć w konfiguracji XML programu, wyposażonej w komentarze.
Zasady budowy pakietów usługowych można znaleźć w rozdziałach poświęconych bloczkom Żądanie i Odpowiedź.
Operacje zdefiniowane w pakietach są w trakcie wykonywania doklejane do wskazanego w konfiguracji kontraktu WCF. Dzięki temu można część operacji zakodować w .NET.
Weryfikacja wersji - podmiany
Każdy pakiet przetwarzania zapisuje w środku wersję oprogramowania użytą do jego produkcji. Ponadto na zakończenie przetwarzania lub podczas ładowania nowej wersji elementu są logowane takie szczegóły pliku (elementu serwera wersji), jak skrót MD5, data modyfikacji i rozmiar. Te same wartości są dostępne w projektancie pakietu jako opcja „Wersja pakietu”. Porównanie zapisów logu i projektanta pozwala szybko zweryfikować, czy spodziewana podmiana pakietów miała miejsce (właściwy czas, środowisko itd.), czy nie.

