Bazy danych systemu ERP

Niniejszy dokument opisuje procedury modyfikowania, analizowania i naprawiania baz danych. System Comarch ERP Enterprise udostępnia narzędzia niezbędne do wykonywania takich zadań. Aby móc poprawnie stosować te narzędzia, konieczna jest znajomość ich funkcjonalności. Często wymagane jest połączenie wielu narzędzi.
Aby móc pracować z bazami danych, konieczne jest podstawowe zrozumienie struktury bazy danych w systemie Comarch ERP Enterprise.

Grupa docelowa

  • Administratorzy

Definicje terminów

  • Baza danych — baza danych jest identyfikatorem schematu bazy danych i zawiera dane uporządkowane zgodnie z powiązanym schematem bazy danych

  • Schemat bazy danych — schemat bazy danych zawiera informacje o strukturze obiektów, które mogą być przechowywane w bazie danych

  • Pełny opis tabeli — pełny opis tabeli pełni funkcję szablonu definicji tabeli oraz samej tabeli. Każdy obiekt biznesowy ma pełny opis tabeli. Schemat tabeli, w której przechowywane są instancje obiektu biznesowego, można wyprowadzić z pełnego opisu tabeli. Pełny opis tabeli jest generowany na podstawie pełnego opisu obiektu.

  • Definicja tabeli — definicja tabeli opisuje schemat tabeli. Zawiera niezależny od bazy danych pełny opis kolumn oraz indeksów tabeli.

Opis

W trakcie normalnej eksploatacji systemu Comarch ERP Enterprise ręczna reorganizacja lub naprawa bazy danych nie jest konieczna.
Jeśli zmieniane są języki dostępne dla atrybutów podlegających lokalizacji lub baza danych jest przywracana z kopii zapasowej, konieczne jest zreorganizowanie bazy danych. Proces modyfikacji jest zwykle uporządkowany w następujący sposób:

Podstawowa struktura modyfikacji bazy danych

Szczególnie istotne jest wykonanie kompletnej kopii zapasowej przed każdą modyfikacją oraz możliwość jej szybkiego przywrócenia w krótkim czasie. Podczas wykonywania modyfikacji baz danych w systemie system nie powinien być jednocześnie używany przez innych użytkowników. W przeciwnym razie baza danych może stać się niespójna lub wyniki pracy zalogowanych użytkowników mogą zostać utracone. Po przeprowadzeniu modyfikacji należy zweryfikować spójność systemu. System można dopuścić do użytku tylko wtedy, gdy modyfikacje zostały wykonane bez błędów i nie doszło do utraty danych.

Baza danych może stać się niespójna w wyniku:

  • nieprawidłowej administracji
  • nieprawidłowych działań podczas tworzenia oprogramowania
  • nieprawidłowych modyfikacji bazy danych
  • błędów systemu Comarch ERP Enterprise

Niezależnie od tego, czy baza danych wymaga reorganizacji, czy konieczne jest usunięcie błędu, podstawowy proces jest zawsze taki sam:

Podstawowy przebieg postępowania w przypadku błędu bazy danych

Jeśli podczas uzyskiwania dostępu do bazy danych zostanie zauważony błąd, w miarę możliwości należy najpierw sklasyfikować jego zakres i typ. Jeśli nie ma możliwości usunięcia błędu, należy skontaktować się ze wsparciem Comarch ERP Enterprise. Jeśli istnieje możliwość samodzielnego usunięcia błędu, wcześniej należy wykonać pełną kopię zapasową systemu. Następnie należy przeprowadzić operację usunięcia błędu i zweryfikować, czy błąd faktycznie został usunięty oraz czy nie doszło do utraty innych danych. Jeśli w trakcie usuwania błędu okaże się, że zadanie wykracza poza możliwości, należy przywrócić system i skontaktować się ze wsparciem Comarch ERP Enterprise.

Modyfikacje

Dodanie języka wyświetlania

Wszystkie języki w bazie danych repozytorium mogą być używane jako języki wyświetlania.
Jeśli ma zostać dodany nowy język wyświetlania, należy zainstalować najnowszą poprawkę językową dla tego języka. Proces ten jest opisany w sekcji Instalacja dostawy językowej.
Jeśli dla danego języka nie ma poprawki językowej, wszystkie tłumaczenia należy przygotować samodzielnie. Należy postępować zgodnie z opisem w sekcji Modyfikacja języków dodatkowych.

Instalacja dostawy językowej

Dostawę językową należy zainstalować w następujący sposób:

  1. Należy zapisać poprawkę językową w katalogu Comarch ERP Enterprise w lokalizacji refreshes/import.

  2. Należy uruchomić instalację poprawki językowej dla języka XY:
    inslng -language:XY

Narzędzie inslng automatycznie dodaje nowy język dodatkowy do konfiguracji oraz informacji bazy danych, jeśli język przeznaczony do instalacji nie został jeszcze skonfigurowany dla tej bazy danych. Nie ma potrzeby wykonywania dodatkowej reorganizacji.

Usunięcie języka wyświetlania

Aby usunąć język dodatkowy, należy postępować zgodnie z opisem w sekcji Modyfikacja języków dodatkowych.

Modyfikacja języków dodatkowych

Aby dodać nowy język dodatkowy do bazy danych lub usunąć istniejący język dodatkowy z bazy danych, należy wykonać następujące czynności:

  1. Należy utworzyć kopię zapasową systemu

  2. Należy uruchomić aplikację Panel system

  3. Należy wczytać bazę danych przeznaczoną do modyfikacji

  4. Należy zmodyfikować języki dodatkowe bazy danych

  5. Należy zapisać bazę danych

  6. Należy przełączyć się do powłoki narzędziowej SAS systemu, do którego przypisana jest baza danych

  7. Należy pobrać nowe informacje bazy danych dla tej bazy danych:
    crtdbinf -db:XY -nlsAutomatic
    Proces ten jest opisany w sekcji Wyświetlanie informacji o bazie danych

  8. Należy sprawdzić, czy atrybuty podlegające lokalizacji mają oczekiwane wartości

W przypadku dodania nowego języka dodatkowego tworzone są tłumaczenia dla każdego atrybutu podlegającego lokalizacji w tym języku. Tłumaczenia te są inicjalizowane tekstem z języka podstawowego bazy danych.

Przykład
Do bazy danych z językiem podstawowym de oraz językiem dodatkowym en dodany zostaje język dodatkowy it. Wartości atrybutu podlegającego lokalizacji zmieniają się przykładowo w następujący sposób:
de=Haus, en=house -> de=Haus, en=house, it=Haus

W przypadku usunięcia języka dodatkowego wszystkie tłumaczenia w tym języku zostają również nieodwracalnie usunięte.

Jeśli zmodyfikowano języki dodatkowe bazy danych repozytorium, należy zmodyfikować również języki dodatkowe baz danych OLTP, ponieważ języki dodatkowe bazy danych repozytorium są dodatkowo wykorzystywane dla baz danych OLTP.

Zamiana języka podstawowego i języka dodatkowego

Aby użyć języka dodatkowego jako języka podstawowego bazy danych, należy wykonać następujące czynności:

  1. Należy utworzyć kopię zapasową systemu

  2. Należy przełączyć się do powłoki narzędziowej SAS systemu, do którego przypisana jest baza danych

  3. Należy zamienić dotychczasowy język podstawowy na nowy język podstawowy LANG:
    rgzdbt -exchangeContentLanguage:LANG -modify -db:XY -all
    Ciąg LANG należy zastąpić nowym językiem podstawowym (np. de).

  • Po zamianie początkowy język podstawowy znajduje się w tabelach NLS jako język dodatkowy
  • Tłumaczenia w nowym języku podstawowym zostały usunięte z tabel NLS i przeniesione do obiektu głównego
  • Polecenie zamiany języka podstawowego może zostać wykonane tylko raz. Kolejne próby spowodują błędy.
  1. Należy uruchomić aplikację Panel system

  2. Należy wczytać bazę danych przeznaczoną do modyfikacji

  3. Należy zmodyfikować język podstawowy bazy danych

  4. Należy usunąć nowy język podstawowy z języków dodatkowych bazy danych

  5. Należy dodać poprzedni język podstawowy do języków dodatkowych bazy danych

  6. Należy zapisać bazę danych

  7. Należy przełączyć się do powłoki narzędziowej SAS systemu, do którego przypisana jest baza danych

  8. Należy pobrać nowe informacje bazy danych dla tej bazy danych:
    crtdbinf -db:XY -nlsManual
    Proces ten jest opisany w sekcji Wyświetlanie informacji o bazie danych

  9. Należy sprawdzić, czy atrybuty podlegające lokalizacji mają oczekiwane wartości

Kopiowanie bazy danych

Bazę danych można skopiować za pomocą narzędzi systemu ERP, jeśli ma zostać przeniesiona na inny system zarządzania bazą danych. W przypadku kopiowania bazy danych w obrębie tego samego DBMS znacznie lepszą wydajność zapewnia użycie narzędzi DBMS. Dodatkowe informacje znajdują się w rozdziale Kopiowanie bazy danych przy pomocy narzędzi DBMS.

Podczas kopiowania bazy danych SDB z systemu SSYS do bazy danych TDB w systemie TSYS należy wykonać następujące kroki:

  1. Utworzyć nową bazę danych w DBMS systemu docelowego.

  2. Utworzyć lub zmienić konfigurację bazy danych TDB w aplikacji Panel system.

    • język podstawowy bazy źródłowej i docelowej musi być identyczny

    • każdy język dodatkowy bazy docelowej musi być zdefiniowany również w bazie źródłowej

    • zmiana języka podstawowego lub dodanie nowych języków dodatkowych jest możliwe dopiero po zakończeniu kopiowania

  3. Przejść do Toolshell na serwerze aplikacyjnym systemu ERP dla systemu SSYS.

  4. Utworzyć schemat bazy danych TDB:
    crtdbt -db:TSYS.TDB

  5. Skopiować dane z bazy SDB do bazy TDB:
    cpydbt -src:SDB -dst:TSYS.TDB

  • Podczas kopiowania narzędziem cpydbt kopiowane są wyłącznie aktywne tabele. W przypadku tworzenia kopii w obrębie jednego systemu należy pamiętać, że tabele tymczasowe muszą zostać ponownie utworzone narzędziem crtbo.

6. Sprawdzić, czy baza danych pasuje do schematu bazy danych aktywnego w systemie TSYS:
chkdbt -table:% -db:TDB

Opis tego działania znajduje się w rozdziale Sprawdzanie wersji tabel bazy danych. Podczas kopiowania między systemami może się zdarzyć, że kopia zawiera wersję tabeli bazy danych, której system docelowy nie rozpoznaje. W takim przypadku kopia nie może zostać użyta.

  1. W razie potrzeby zmienić język podstawowy oraz języki dodatkowe bazy danych. Należy w tym celu skorzystać z rozdziałów Modyfikacja języków dodatkowych oraz Zamiana języka podstawowego i języka dodatkowego.

Należy uwzględnić uwagi podane w rozdziale Ogólne uwagi dotyczące kopiowania baz danych.

Kopiowanie bazy danych przy użyciu narzędzi DBMS

Kopiowanie bazy danych przy użyciu narzędzi DBMS jest najszybszym sposobem w przypadku kopiowania w obrębie tego samego DBMS.

Podczas kopiowania bazy danych SDB z systemu SSYS do bazy danych TDB w systemie TSYS należy wykonać następujące kroki:

  1. Utworzyć lub zmienić konfigurację bazy danych TDB w aplikacji Panel system

    • język podstawowy oraz języki dodatkowe bazy źródłowej i docelowej muszą być takie same

    • zmiana języka podstawowego i języków dodatkowych jest możliwa dopiero po zakończeniu kopiowania

  2. Utworzyć kopię bazy danych przy użyciu narzędzi DBMS

  • Podczas kopiowania narzędziami DBMS kopiowane są zarówno aktywne, jak i tymczasowe tabele. W przypadku kopii z systemu deweloperskiego należy więc upewnić się, że żadne obiekty biznesowe (Business Objects) nie są w trakcie edycji.

3. Przejść do Toolshell na serwerze aplikacyjnym systemu ERP dla systemu TSYS

4. Wygenerować informacje o bazie danych dla bazy TDB:
crtdbinf -db:TDB -nlsAutomatic
Opis tego działania znajduje się w rozdziale Tworzenie informacji o bazie danych.

5. Sprawdzić, czy baza danych pasuje do schematu bazy danych aktywnego w systemie TSYS:
chkdbt -table:% -db:TDB
Opis tego działania znajduje się w rozdziale Sprawdzanie wersji tabel bazy danych.
Podczas kopiowania między systemami może się zdarzyć, że kopia zawiera wersję tabeli bazy danych, której system docelowy nie rozpoznaje. W takim przypadku kopia nie może zostać użyta.

Należy uwzględnić uwagi podane w rozdziale Ogólne uwagi dotyczące kopiowania baz danych.

Ogólne uwagi dotyczące kopiowania baz danych

Kopie baz danych pomiędzy systemami są bezproblemowe wyłącznie wtedy, gdy w systemie źródłowym i docelowym zainstalowano identyczne aktualizacje oprogramowania. Z tego powodu zazwyczaj nie jest możliwe przenoszenie baz danych pomiędzy systemami różnych klientów. Kopie pomiędzy różnymi wydaniami zasadniczo nie są możliwe.

Poniższa tabela opisuje, pomiędzy jakimi systemami kopiowanie baz danych jest możliwe:

Do DV Do DT Do T Do P
Z DV możliwe konflikt konflikt konflikt
Z DT upgrade możliwe konflikt konflikt
Z T upgrade upgrade możliwe konflikt
Z P upgrade upgrade upgrade możliwe

Objaśnienia do tabeli:

  • możliwe – schemat bazy danych jest identyczny w obrębie danego typu systemu

  • upgrade – schemat bazy danych w kopii może być nieaktualny i wymaga sprawdzenia oraz ewentualnej reorganizacji

  • konflikt – schemat bazy danych w kopii może być nowszy niż schemat bazy danych systemu docelowego. Wymaga sprawdzenia i w niektórych przypadkach kopia może nie nadawać się do użycia.

Skróty:

  • DV – system deweloperski

  • DT – system testów deweloperskich

  • T – system testowy

  • P – system produkcyjny

Nawet jeśli kopiowanie baz danych jest możliwe z punktu widzenia schematu bazy danych, należy uwzględnić następujące ograniczenia:

  • Należy pamiętać, że baza danych OLAP zawiera zagregowane informacje z bazy OLTP. Jeśli baza OLTP zostanie skopiowana bez reorganizacji powiązanej bazy OLAP w systemie docelowym, baza OLAP będzie zawierała nieprawidłowe dane.

  • Jeśli na bazie danych utworzono specjalne obszary robocze, w systemie docelowym nie będzie dostępu do zawartości tych obszarów roboczych

Przykładowe, uzasadnione zastosowania kopiowania baz danych:

  • Przeniesienie baz OLTP i OLAP z systemu produkcyjnego do systemu testowego adaptacji klienta lub systemu adaptacji klienta w celu odtworzenia zgłoszeń błędów klienta

  • Przeniesienie baz OLTP i OLAP z systemu produkcyjnego do systemu testów klienta w celu testowania aktualizacji oprogramowania na aktualnych danych klienta

  • Przywracanie bazy danych

Usuwanie tabel bazy danych

Przed usunięciem tabel bazy danych należy wykonać pełną kopię zapasową systemu. Jeśli w ramach danego wydania usuwane są obiekty biznesowe, powiązane tabele bazy danych muszą zostać usunięte ręcznie. Tabele bazy danych nie są usuwane automatycznie ani podczas instalacji aktualizacji oprogramowania zawierającej usunięcie, ani podczas aktywacji zlecenia deweloperskiego obejmującego usunięcie.

W rozdziale Analiza tabel bazy danych opisano sposób identyfikacji zbędnych tabel bazy danych. Przed usunięciem tabel w systemach deweloperskich należy upewnić się, że powiązane obiekty biznesowe nie są ujęte w zleceniach deweloperskich.

Usunięcie tabeli XY w bazie danych DX odbywa się za pomocą polecenia:
dltdbt -table:XY -db:DX

Tworzenie informacji o bazie danych

Informacje o bazie danych można wygenerować na podstawie konfiguracji bazy danych za pomocą polecenia:
crtdbinf -db:DX

Należy pamiętać, że w przypadku zmiany języka podstawowego lub języków dodatkowych wymagane są dodatkowe kroki reorganizacji. Opcja -nlsAutomatic umożliwia automatyczną reorganizację języków dodatkowych bazy danych. Przy użyciu opcji -nlsManual reorganizacja języków dodatkowych musi zostać przeprowadzona ręcznie. Język podstawowy bazy danych nie może zostać zmieniony automatycznie.

Dodatkowe informacje dotyczące zmiany języka podstawowego bazy danych znajdują się w rozdziale Zamiana języka podstawowego i języka dodatkowego.

Języki dodatkowe bazy danych repozytorium są zapisywane również w bazach danych OLTP. Jeśli zostanie zmieniony język dodatkowy bazy danych repozytorium, należy ponownie wygenerować informacje o bazie danych dla wszystkich baz OLTP.

Komunikaty błędów

Wyjątek: Object is marked to Delete

Jeśli w aplikacji nastąpi dostęp do obiektu biznesowego, który ma ustawione oznaczenie usunięcia, zostanie wyświetlony następujący komunikat błędu:

Exception: Object mapper could not be created! Object is marked to delete!

Komunikat wskazuje na błąd programistyczny, ponieważ obiekty oznaczone jako usunięte nie mogą być dalej wykorzystywane. W takim przypadku konieczne jest wyeliminowanie użycia obiektu albo usunięcie znacznika usuwania.

Za pomocą opcji -useDeletedTables można wyłączyć tę kontrolę podczas uruchamiania serwera aplikacyjnego systemu ERP. Wyłączenie kontroli nie rozwiązuje problemu i w niektórych przypadkach może prowadzić do niespójnych stanów.

Konsola: ERROR Mapper … is generated for Version …

Jeśli wersja mappera nie pasuje ani do wersji tabeli aktywnej, ani do wersji tabeli tymczasowej w bazie danych, na konsoli zostanie wyświetlony następujący komunikat:

ERROR: Mapper XY is generated for Version X but active version is Y and locked version is Z

Komunikat oznacza, że klasy Java mapperów nie pasują do tabel wygenerowanych w bazie danych. Możliwe przyczyny:

  • serwer aplikacyjny systemu ERP (SAS) nie ma dostępu do aktualnych klas:

    • SAS nie został ponownie uruchomiony po zmianie modelu danych

    • ścieżka klas SAS jest nieprawidłowa

  • tabela nie została wygenerowana po zmianie wersji:

    • baza danych nie jest połączona ze wszystkimi SAS w systemie

    • przywrócono starszy stan bazy danych

  • baza danych nie pasuje do aktualnego systemu

W pierwszej kolejności konieczne jest upewnienie się, że serwer aplikacyjny systemu ERP ma dostęp do najnowszych klas. Jeśli problem nadal występuje po ponownym uruchomieniu z prawidłową ścieżką klasy, dalsze postępowanie opisano w rozdziale Sprawdzanie wersji tabel bazy danych.

Konsola: ERROR TableDefinition for class … not found …

Jeśli tabela w bazie danych nie została wygenerowana, nie zostanie również utworzona jej definicja tabeli w bazie danych.

Na konsoli pojawia się komunikat:
ERROR: TableDefinition for class XY not found in database Z

Serwer aplikacyjny systemu ERP (SAS) uzyskuje dostęp do tabeli, która nie istnieje w tej bazie danych. Możliwe przyczyny:

  • SAS nie ma dostępu do aktualnych klas:

    • SAS nie został ponownie uruchomiony po zmianie modelu danych

    • ścieżka klas SAS jest nieprawidłowa

  • dostęp do tabeli wynika z błędu programistycznego

  • tabela nie została wygenerowana

W pierwszej kolejności należy upewnić się, że serwer aplikacyjny systemu ERP ma dostęp do najnowszych klas. Jeśli problem nadal występuje po ponownym uruchomieniu z prawidłową ścieżką klas, należy otworzyć opis obiektu biznesowego w aplikacji Obiekty deweloperskie, typ Business object. W sekcji Ustawienia bazy danych i cache (zakładka Edytor, podzakładka Ustawienia) można sprawdzić, czy obiekt powinien być generowany we wskazanej bazie danych. Jeśli zgodnie z opisem obiektu nie powinien być generowany, oznacza to błąd programistyczny.

Jeśli tabela powinna istnieć w bazie danych, konieczne jest ustalenie przyczyny niespójności. Możliwe przyczyny:

  • przywrócono starszy stan bazy danych

  • baza danych nie była podłączona podczas instalowania aktualizacji oprogramowania

  • baza danych nie była podłączona podczas wprowadzania zmian w modelu danych

W każdym z tych przypadków problem może dotyczyć również innych tabel. Należy postępować zgodnie z opisem w rozdziale Sprawdzanie wersji tabel bazy danych, aby zweryfikować wersje wszystkich istniejących tabel.

Brakujące tabele należy wygenerować zgodnie z opisem w rozdziale Reorganizacja obiektu biznesowego. Jeśli są dostępne aktualizacje danych, należy je wykonać w celu zainicjalizowania nowych tabel.

Konsola: ERROR TableDefinition for class … not found …

Jeśli tabela nie została wygenerowana w bazie danych, to w tej bazie danych nie zostanie również utworzona definicja tabeli.

ERROR: TableDefinition for class XY not found in database Z

Serwer aplikacji systemu ERP (SAS) uzyskuje dostęp do tabeli, która nie istnieje w bazie danych. Może to mieć następujące przyczyny:

  • SAS nie ma dostępu do aktualnych klas

    • SAS nie został ponownie uruchomiony po zmianie modelu danych

    • Ścieżka klas (classpath) SAS jest nieprawidłowa

  • Dostęp do tabeli jest błędem programistycznym

  • Tabela nie została wygenerowana

Jako pierwsze należy upewnić się, że serwer aplikacji systemu ERP ma dostęp do najnowszych klas. Jeśli problem nadal występuje także po ponownym uruchomieniu z prawidłową ścieżką klas, należy otworzyć opis obiektu biznesowego w aplikacji Obiekty deweloperskie. Za pomocą Ustawień bazy danych i cache (karta Edytor, podkarta Ustawienia) można sprawdzić, czy obiekt powinien być generowany w podanej bazie danych. Jeśli zgodnie z opisem obiektu nie powinien być generowany w tej bazie danych, oznacza to błąd programistyczny.

Jeśli tabela powinna istnieć w bazie danych, należy ustalić przyczynę tej niespójności. Możliwe przyczyny to:

  • Przywrócono kopię zapasową starszej wersji bazy danych

  • Baza danych nie była podłączona podczas instalowania aktualizacji oprogramowania

  • Baza danych nie była podłączona podczas wprowadzania zmian w modelu danych

W każdym z tych przypadków problem może dotyczyć także innych tabel. Należy postępować zgodnie z opisem w rozdziale Sprawdzanie wersji tabel bazy danych, aby sprawdzić wersje wszystkich istniejących tabel.

Brakujące tabele należy utworzyć zgodnie z opisem w rozdziale Reorganizacja obiektu biznesowego. Jeśli przewidziano aktualizacje danych, należy je wykonać, aby zainicjalizować nowe tabele.

Konsola: INFORMATION: Mapper XY uses table X on database Y

Za każdym razem, gdy mapper po raz pierwszy uzyskuje dostęp do tabeli tymczasowej, w zależności od tego, czy serwer aplikacji systemu ERP (SAS) został uruchomiony z opcją -writeConvertedTables, wyświetlana jest jedna z poniższych informacji:

INFORMATION: Mapper XY uses table X on database Y in read only mode.
INFORMATION: Mapper XY uses table X on database Y in read/write mode.

Komunikat oznacza, że wersja mappera nie pasuje do wersji tabeli aktywnej, lecz do wersji tabeli tymczasowej. Może to wynikać z następujących przyczyn:

  • Dany obiekt biznesowy jest w trakcie edycji

  • SAS nie ma dostępu do aktualnych klas

    • SAS nie został ponownie uruchomiony po zmianie modelu danych

    • Ścieżka klas SAS jest nieprawidłowa

  • Zainstalowano aktualizację oprogramowania, ale nie została jeszcze w pełni aktywowana

W pierwszej kolejności należy sprawdzić, czy obiekt jest aktualnie w trakcie edycji lub czy instalowana jest aktualizacja oprogramowania. Jeśli tak, komunikat przestanie się pojawiać po zakończeniu edycji lub instalacji. W przeciwnym razie należy sprawdzić ścieżkę klas i ponownie uruchomić odpowiedni serwer SAS.

Wyjątek: Mapper is read only: active table got invalid version!

Jeśli używana jest tabela tymczasowa i nie została ona jawnie dopuszczona do zapisu za pomocą opcji -writeConvertedTables, wówczas przy każdej operacji zapisu wyświetlany jest następujący komunikat:

Exception: Mapper is read only: active table got invalid version!

Jeśli zapis do tabeli tymczasowej ma być możliwy, serwer aplikacji systemu ERP (SAS) należy uruchomić z opcją -writeConvertedTables. Należy jednak pamiętać, że operacje zapisu do tabel tymczasowych, ze względu na zazwyczaj złożony model danych, mogą prowadzić do niespójności w bazie danych. W przeciwnym razie należy postępować zgodnie z opisem w rozdziale Konsola: INFORMATION: Mapper XY uses table X on database Y.

Wyjątek: Error while selecting in mapper

Jeśli podczas odczytu obiektu biznesowego w bazie danych wystąpi błąd, wyświetlany jest następujący komunikat:

Exception: Error while selecting in mapper XY

Błędy bazy danych podczas odczytu obiektów biznesowych mogą mieć różne przyczyny:

  • Serwer aplikacji systemu ERP (SAS) nie ma dostępu do aktualnych klas

    • SAS nie został ponownie uruchomiony po zmianie modelu danych

    • Ścieżka klas SAS jest nieprawidłowa

  • System bazodanowy zgłasza błąd

  • Tabela bazy danych nie pasuje do mappera

W pierwszej kolejności należy upewnić się, że serwer aplikacji systemu ERP ma dostęp do najnowszych klas. Jeśli problem nadal występuje także po ponownym uruchomieniu z prawidłową ścieżką klas, należy sprawdzić, czy dostęp do bazy danych jest możliwy.

Jeśli błąd nadal występuje, należy postępować zgodnie z opisem w rozdziale Sprawdzanie wersji tabel bazy danych, aby sprawdzić wersje wszystkich istniejących tabel. Jeśli ta kontrola nie wykryje błędów, należy postępować zgodnie z opisem w rozdziale Analiza tabel bazy danych, aby porównać tabele bazy danych z definicją tabeli.

Konsola: Invalid database languages found …

Podczas uruchamiania serwera aplikacji systemu ERP (SAS) dla wszystkich podłączonych baz danych sprawdzane jest, czy języki dodatkowe zapisane w konfiguracji odpowiadają językom dodatkowym używanym w bazie danych. W przypadku rozbieżności na konsoli wyświetlany jest następujący komunikat:

Error: Invalid database languages found in database XY

Komunikat ten może wynikać z następujących przyczyn:

  • W aplikacji Konfiguracja zmieniono języki dodatkowe bazy danych

  • Baza danych została odtworzona z kopii zapasowej

Zgodnie z opisem w rozdziale Wyświetlanie informacji o bazie danych można odczytać języki dodatkowe zapisane w bazie danych. Należy je następnie porównać z językami dodatkowymi skonfigurowanymi w konfiguracji. Jeśli języki dodatkowe mają zostać dodane lub usunięte, należy postępować zgodnie z opisem w rozdziale Modyfikacja języków dodatkowych.

Konsola: Invalid content language found …

Podczas uruchamiania serwera aplikacji systemu ERP (SAS) sprawdzane jest dla wszystkich podłączonych baz danych, czy język podstawowy zapisany w konfiguracji jest zgodny z językiem podstawowym używanym w bazie danych. W przypadku rozbieżności na konsoli wyświetlany jest następujący komunikat:

Error: Invalid content language found in database XY

Komunikat ten może wynikać z następujących przyczyn:

  • W konfiguracji zmieniono język podstawowy bazy danych

  • Baza danych została odtworzona z kopii zapasowej

Zgodnie z opisem w rozdziale Wyświetlanie informacji o bazie danych można wyświetlić język podstawowy zapisany w bazie danych. Należy go porównać z językiem podstawowym ustawionym w konfiguracji. Jeśli konieczna jest zmiana języka podstawowego, należy postępować zgodnie z opisem w rozdziale Zamiana języka podstawowego i języka dodatkowego.

Konsola: Database information not found …

Podczas uruchamiania serwera aplikacji systemu ERP (SAS) sprawdzane jest dla wszystkich podłączonych baz danych, czy w bazie danych istnieją informacje o bazie danych odpowiadające bazie ustawionej w konfiguracji. Jeśli dla skonfigurowanej bazy danych w samej bazie nie są zapisane żadne informacje o bazie danych, wówczas przy dostępie do bazy danych z innego systemu na konsoli wyświetlany jest następujący komunikat:

Error: Database information not found in database XY

Może się to zdarzyć na przykład z powodu błędu w konfiguracji lub dlatego, że baza danych została skopiowana przy użyciu narzędzi DBMS. W takim przypadku dodatkowe informacje znajdują się w rozdziale Kopiowanie bazy danych za pomocą narzędzi DBMS.

Analiza błędów – kontrole spójności

Przed podjęciem jakichkolwiek działań naprawczych, należy najpierw przeanalizować przyczynę oraz zakres błędu.

Sprawdzanie wersji tabel bazy danych

Za pomocą narzędzia chkdbt można porównać wersję opisu tabeli z aktywną wersją definicji tabeli. W systemach deweloperskich wersje mogą się różnić, jeśli obiekty biznesowe są zawarte w Zleceniach deweloperskich. W systemie testowym lub produkcyjnym nie mogą występować żadne rozbieżności między opisem tabeli a definicją tabeli.

Wersję tabel bazy danych można sprawdzić dla wszystkich tabel bazy danych DX za pomocą następującego polecenia:

chkdbt -table:% -db:DX

Dodatkowe informacje można znaleźć w artykule Sprawdzwnie tabel bazy danych (chkdbt) dotyczącej narzędzia chkdbt. Narzędzie wypisuje wszystkie obiekty biznesowe wygenerowane w bazie danych wraz z informacją, czy ich aktywna wersja definicji tabeli jest zgodna z wersją opisu tabeli:

Baza danych DX zainicjowana

Baza danych: DX

=============================================

porównaj wersję

=============================================

XA wersja repozytorium VRA wersja bazy danych aktywna VAA zablokowane VLA

XB wersja repozytorium VRB wersja bazy danych aktywna VAB

Jeśli tabela tymczasowa została utworzona dla obiektu biznesowego, wyprowadzana jest również wersja tabeli tymczasowej. W systemie deweloperskim jest to normalny stan, jeśli obiekt biznesowy znajduje się w zadaniu deweloperskim i został wygenerowany. Tabele tymczasowe nie powinny istnieć w systemach testowych i produkcyjnych.

Etapy procesu

Sprawdzanie wersji tabel bazy danych

Jeśli jedna z wersji ma wartość „zero”, oznacza to, że opis tabeli ma wersję, której repozytorium nie zna. Jeśli definicja tabeli zawiera wersję nieznaną repozytorium, baza danych nie może być używana w tym systemie. Nieznane wersje mogą jednak powstać wyłącznie w wyniku skopiowania bazy danych narzędziami bazodanowymi albo w sytuacji, gdy baza danych była czasowo niepodłączona do systemu.

Jeśli podczas instalowania aktualizacji oprogramowania wystąpi błąd i doprowadzi on do rozbieżności wersji opisu tabeli oraz definicji tabeli, zaleca się przywrócenie systemu z kopii zapasowej wykonanej przed instalacją aktualizacji oprogramowania. Przed ponownym zainstalowaniem aktualizacji oprogramowania należy usunąć przyczynę błędu.

Jeśli w chwili instalowania aktualizacji oprogramowania baza danych nie była podłączona, tabele w tej bazie danych nie mogły zostać zaktualizowane. W efekcie nadal zawierają definicję tabeli sprzed aktualizacji, która może nie pasować do nowo zainstalowanych opisów tabel.

Jeśli błąd zostanie zauważony zanim rozpocznie się dalsza praca z systemem, zalecane jest przywrócenie systemu z kopii zapasowej i ponowne zainstalowanie aktualizacji oprogramowania.

W przypadkach, w których przywrócenie systemu nie jest już możliwe, ponieważ po powstaniu niespójnego stanu wprowadzono już do systemu istotne dane, nie istnieje w pełni bezpieczne rozwiązanie pozwalające ponownie doprowadzić system do stanu spójnego. Obiekty, dla których wersje opisów tabel i definicji tabel różnią się, można celowo doprowadzić do najnowszej wersji. Sposób postępowania opisano w rozdziale Reorganizacja obiektu biznesowego. W systemach z danymi produkcyjnymi postępowanie to nie jest zalecane.

Inną przyczyną różnic wersji jest na przykład przywrócenie do nowszego systemu przestarzałej kopii zapasowej bazy danych OLTP. W takim przypadku wersje obiektów biznesowych wygenerowane w bazie danych są starsze niż aktywne wersje w repozytorium systemu.

Analiza tabel bazy danych

Za pomocą narzędzia chkdbt i opcji -analyseTables można poddać tabele bazy danych bardziej szczegółowym kontrolom:

  • Sprawdzenie, czy schemat aktywnej tabeli bazy danych odpowiada definicji tabeli. W normalnej eksploatacji nie powinny występować różnice między definicją tabeli a schematem bazy danych.

  • Sprawdzenie, czy dla danej definicji tabeli istnieje również opis tabeli. Jeśli dla definicji tabeli nie istnieje opis tabeli, wówczas definicję tabeli oraz tabelę bazy danych można usunąć.

  • Analiza tabel bazy danych obejmuje również kontrole opisane w rozdziale Sprawdzanie wersji tabel bazy danych.

Tabele bazy danych można przeanalizować dla wszystkich tabel bazy danych DX za pomocą następującego polecenia:

chkdbt -analyseTables -table:% -db:DX

Dodatkowe informacje można znaleźć w dokumentacji Sprawdzenie tabel bazy danych (chkdbt) dotyczącej narzędzia chkdbt.

Narzędzie wypisuje wszystkie tabele bazy danych, które nie mają oczekiwanych właściwości:

Database DX initialised
Database: DX
=============================================
analysing tables
compare version
=============================================
OXA repository version VRA database version active VAA locked VLA
OXB repository version VRB database version active VAB
error while in table TXC:
schema compare:
Index not exists in definition C408NBVEIB000CIS
Index not exists in definition C508NBVEIB000CIS
error while in table TXD:
MISSING DESCRIPTION

Jeśli dla danej obiektu biznesowego została utworzona tabela tymczasowa, wówczas wypisywana jest również wersja tabeli tymczasowej. W systemie rozwojowym jest to stan normalny, jeśli obiekt biznesowy znajduje się w Zleceniach deweloperskich i został wygenerowany. W systemach testowych i produkcyjnych nie powinny istnieć żadne tabele tymczasowe.

Jeśli występują różnice między definicją tabeli a schematem bazy danych, są one wypisywane szczegółowo.

Jeśli dla definicji tabeli nie istnieje opis tabeli, wyświetlany jest tekst MISSING DESCRIPTION. W systemach rozwojowych należy pamiętać, że ten komunikat może pojawić się już wtedy, gdy zlecenia deweloperskie nie zostały jeszcze aktywowane.

Opis procesu:

Analiza tabel bazy danych

Schemat bazy danych musi zawsze odpowiadać definicji tabeli. Jeśli na przykład indeks zostanie ręcznie dodany w celu zwiększenia wydajności, podczas analizy tabeli zostanie to zgłoszone jako błąd. Taka rozbieżność jest znana i pożądana, więc można ją zignorować. W przypadku wszystkich pozostałych rozbieżności zalecany jest kontakt z centrum wsparcia.

Tabele bazy danych bez opisu tabeli można usunąć zgodnie z opisem w rozdziale Usuwanie tabel bazy danych. Przed usunięciem należy sprawdzić, czy żaden z obiektów biznesowych, których tabele mają zostać usunięte, nie jest ujęty w zleceniach deweloperskich.

Jeśli wersje definicji tabeli i opisu tabeli różnią się, należy postępować zgodnie z opisem w rozdziale Sprawdzanie wersji tabel bazy danych.

4.3.3 Sprawdzanie atrybutów możliwych do zlokalizowania

Za pomocą narzędzia rgzdbt i opcji -nlsTables można sprawdzić, czy dla każdego języka dodatkowego w tabelach NLS danego obiektu biznesowego istnieje tłumaczenie. Jeśli brakuje tłumaczeń dla języka dodatkowego, odpowiednie rekordy nie będą znajdowane podczas wyszukiwania z użyciem tego języka.

Atrybuty możliwe do zlokalizowania wszystkich obiektów biznesowych w bazie danych DX można sprawdzić za pomocą następującego polecenia:

rgzdbt -nlsTables -db:DX -all

Dodatkowe informacje można znaleźć w dokumentacji Reorganizacja tabel bazy danych (rgzdbt) dotyczącej narzędzia rgzdbt.

Narzędzie wypisuje wszystkie tabele NLS, w których znajduje się zbyt mało lub zbyt dużo tłumaczeń:

analyzing NLS tables of XA
analyzing NLS tables of XB
analyzing NLS tables of XC
   XCUA deleted 4 nls objects
   XCUA created 6 nls objects
   XCUB deleted 4 nls objects
analyzing NLS tables of XD

Dopóki poprzedzający wiersz zaczyna się od analyzing NLS tables, komunikat XCUA deleted 4 nls objects nie oznacza, że tłumaczenia zostały faktycznie usunięte. Komunikat opisuje, co zostałoby wykonane podczas reorganizacji tabeli NLS.

Zbyt duża lub zbyt mała liczba tłumaczeń może wynikać ze zmian języków dodatkowych w konfiguracji. Jeśli występują bardzo duże różnice w liczbie tłumaczeń, zalecane jest sprawdzenie, czy konfiguracja języków dodatkowych dla tej bazy danych jest prawidłowa.

Jeśli dane w bazie danych są modyfikowane przy użyciu SQL, powiązane tłumaczenia mogą nie zostać utworzone albo usunięte.

W rozdziale Reorganizacja atrybutów możliwych do zlokalizowania opisano, jak usuwać zbędne tłumaczenia oraz tworzyć wymagane.

Sprawdzanie SBLOBów

Uwaga
Od wersji 4 nie powinno się już używać SBLOBów. Dlatego zazwyczaj nie ma potrzeby ich sprawdzania.

Za pomocą narzędzia rgzdbt i opcji -SBLOBs można sprawdzić, czy w bazie danych występują nieprawidłowe fragmenty SBLOB. Poniższe polecenie sprawdza wszystkie SBLOB-y w bazie danych DX:

rgzdbt -SBLOBs -db:DX

Dodatkowe informacje można znaleźć w dokumentacji Reorganizacja tabel baz danych (rgzdbt) dotyczącej narzędzia rgzdbt. Narzędzie podaje, ile SBLOBów jest prawidłowych, a ile nieprawidłowych:

Przykład
TOTAL=379 INVALID=0 SBLOBs

W normalnej eksploatacji nie mogą powstawać nieprawidłowe SBLOB-y. Jest to możliwe wyłącznie w wyniku błędów programistycznych w aplikacji albo bezpośredniej modyfikacji bazy danych za pomocą SQL. Jeśli istnieje zbyt wiele nieprawidłowych SBLOBów, zalecany jest kontakt z centrum wsparcia.

Sprawdzanie referencji obiektów

Za pomocą narzędzia rgzdbt i opcji -objectReferences można sprawdzić, czy istnieją nieprawidłowe referencje obiektów. Nieprawidłowe referencje obiektów nie mają negatywnego wpływu. Poniższe polecenie wypisuje wszystkie obiekty biznesowe, dla których istnieją referencje obiektów:

rgzdbt -objectreferences -db:DX

Wynik:

Przykład
XA TOTAL=4 INVALID=0 ERROR=0
XB TOTAL=40 INVALID=6 ERROR=0
XC TOTAL=153 INVALID=19 ERROR=0

Dodatkowe informacje można znaleźć w dokumentacji Reorganizacja tabel baz danych (rgzdbt) dotyczącej narzędzia rgzdbt. Jeśli istnieje bardzo wiele nieprawidłowych referencji obiektów, może to obniżać wydajność całego systemu.

Jeśli dane w bazie danych są modyfikowane przy użyciu SQL, powiązane referencje obiektów mogą nie zostać utworzone albo usunięte.

W rozdziale Reorganizacja odwołań do obiektów opisano, jak usuwać nieprawidłowe referencje obiektów.

Wyświetlanie schematu bazy danych

Zawartość definicji tabeli można wyświetlić za pomocą narzędzia dspdbt w następujący sposób dla obiektu biznesowego Y w bazie danych DX:

dspdbt -o:Y -db:DX

Przykładowym wynikiem jest poniższy wydruk:

Przykład
Database DX initialised
Database: DX
=============================================
printing table schema
=============================================
Table : LANGUAGE002
TimeDependent : NONE
CreationState : ACTIVE
Version : active=1.0
Primary key : GUID
Business key : I00O0HDOKL500CIS00( ISOCODE )
Columns :
   GUID : Guid NOT NULL
   ISOCODE : String(2)
   DESCRIPTION : String(65)
   UPDATEINFO : Boolean
   MANAGINGSYSTEM : Guid
   UPDATEINFOXDELETETIME : Timestamp
   UPDATEINFOXUPDATETIME : Timestamp
   UPDATEINFOXCREATETIME : Timestamp
   UPDATEINFOXDELETEUSER : Guid
   UPDATEINFOXUPDATEUSER : Guid
   UPDATEINFOXCREATEUSER : Guid

Definicja tabeli zawsze zawiera dane tabeli aktywnej, a nie dane tabeli tymczasowej.

Szczegółowe znaczenie danych:

Dane Znaczenie
Table Nazwa tabeli w bazie danych. Nazwa tabeli wynika z nazwy opisu obiektu.
TimeDependent Informacja, czy tabela jest zależna od czasu
CreationState

Ctan generowania wskazuje, czy tabela jest aktualnie w trakcie przetwarzania:

  • ACTIVE – tabela jest aktywna i nie istnieje tabela tymczasowa

  • CREATING – tabela tymczasowa jest aktualnie tworzona

  • CREATED – tabela tymczasowa została pomyślnie utworzona

  • CONVERTING – dane z tabeli aktywnej są aktualnie konwertowane do tabeli tymczasowej.

  • CONVERTED – dane z tabeli aktywnej zostały skonwertowane do tabeli tymczasowej

  • RELEASING – tabele tymczasowe są właśnie aktywowane

  • RESTORING – tabele tymczasowe są właśnie usuwane

Version Zawiera numer wersji tabel aktywnych (active) oraz tabeli tymczasowej (locked)
Primary key Nazwa i atrybuty klucza podstawowego; w tabelach zależnych od czasu również z VALIDFROM
None Nazwa i atrybuty kluczy nieunikalnych
Business key Nazwa i atrybuty klucza biznesowego; w tabelach zależnych od czasu również z VALIDFROM
Secondary key Nazwa i atrybuty kluczy wtórnych. W tabelach zależnych od czasu również z VALIDFROM
Columns Nazwy kolumn tabeli w bazie danych. Nazwy kolumn wynikają z nazw atrybutów w opisie obiektu.

Za pomocą tego narzędzia można wyświetlić dla wybranego obiektu biznesowego stan generowania oraz schemat bazy danych.

Wyświetlanie informacji o bazie danych

Informacje o bazie danych można wyświetlić za pomocą narzędzia dspdbinf w następujący sposób dla bazy danych DX:

dspdbinf -db:DX

Przykładowym wynikiem jest poniższy wydruk:

Przykład
Database DX initialised
Database information DX
System : SX
ContentLanguage : de
ContentType : OLTP-Daten
DatabaseType : DB2 UDB for iSeries
SecondaryLanguages : en it
SecondaryDisplayLanguages : fr en hu it sk pl

Dane oznaczają szczegółowo:

Dane Znaczenie
System Nazwa systemu, do którego należy baza danych
ContentLanguage Język podstawowy bazy danych
ContentType Zawartość bazy danych
DatabaseType Sterownik, za pomocą którego utworzono bazę danych
SecondaryLanguages Języki dodatkowe bazy danych
SecondaryDisplayLanguages Dostępne tylko dla baz danych OLTP. Języki dodatkowe bazy danych repozytorium wraz z językami dodatkowymi bazy danych OLTP.

Korekta błędów

Po pełnej analizie błędu, przed podjęciem działań naprawczych, należy wykonać pełną kopię zapasową systemu. Działania naprawcze, jeśli zostaną zastosowane nieprawidłowo, mogą nieodwracalnie uszkodzić dane w systemie. Z tego względu po każdej korekcie błędów system należy odpowiednio przetestować.

Reorganizacja obiektu biznesowego

Za pomocą narzędzia rgzbo można ponownie utworzyć tabele bazy danych obiektu biznesowego na podstawie aktualnego opisu tabeli. Narzędzia rgzbo nie wolno używać, jeśli obiekt biznesowy jest ujęty w zadaniu lub jest właśnie generowany przez aktualizację oprogramowania.

Tabele należy wygenerować ponownie, gdy definicja tabeli jest nieaktualna, tj. gdy opis tabeli jest nowszy niż definicja tabeli. W rozdziale Sprawdzanie wersji tabel bazy danych opisano, jak znaleźć wszystkie nieaktualne tabele.

Za pomocą poniższego polecenia można zreorganizować obiekt biznesowy XYZ w bazie danych DX:

rgzbo -o:XYZ -db:DX

Jeśli wersja definicji tabeli jest już zgodna z wersją opisu tabeli, obiekt biznesowy nie zostanie utworzony ponownie. Opcja -force pozwala pominąć tę kontrolę. Stosowanie opcji -force bez konsultacji z centrum wsparcia nie jest zalecane.

Po reorganizacji obiektów biznesowych należy ponownie uruchomić wszystkie serwery aplikacji systemu ERP (SAS) w systemie, ponieważ zmienił się schemat tabel bazy danych.

Poniższe polecenie reorganizuje wszystkie obiekty biznesowe, których definicja tabeli jest nieaktualna:

rgzbo –all –db:DX –parallelUpdate:4

Obiekty biznesowe są reorganizowane równolegle w kilku wątkach. Równoległa reorganizacja może znacząco skrócić czas wykonania.

Podczas reorganizacji obiektu biznesowego, przy zmianach wersji, uruchamiane są programy aktualizujące przez narzędzia cnvbo oraz upgaps. Aktualizacje danych nie są wykonywane automatycznie. Po reorganizacji obiektu biznesowego należy w aplikacji Zapytanie o aktualizacje danych sprawdzić, czy w bazie danych trzeba jeszcze wykonać aktualizacje danych. Jeśli schemat bazy danych jest nieaktualny, często nie zostały uruchomione również powiązane aktualizacje danych.

Uwaga
Należy upewnić się, że podczas używania narzędzia rgzbo zalogowany jest tylko jeden użytkownik. Narzędzia rgzbo nie należy używać, jeśli na systemie pracują inni użytkownicy lub wykonywane są zadania przetwarzania.

Po reorganizacji obiektu biznesowego należy w szczególności przetestować aplikacje korzystające z tego obiektu biznesowego lub powiązanej jednostki biznesowej.

Reorganizacja atrybutów możliwych do zlokalizowania

Za pomocą narzędzia rgzdbt oraz opcji -nlsTables i -modify można zapewnić, że dla każdego języka dodatkowego w tabelach NLS danego obiektu biznesowego istnieje tłumaczenie. Jeśli brakuje tłumaczeń dla języka dodatkowego, odpowiednie rekordy nie będą znajdowane podczas wyszukiwania z użyciem tego języka. Ponadto usuwane są tłumaczenia, dla których obiekt biznesowy został usunięty, lub które nie należą do żadnego z języków dodatkowych bazy danych. Poniższe polecenie reorganizuje tabele NLS wszystkich obiektów biznesowych w bazie danych:

rgzdbt -nlsTables -modify -db:DX -all

Dodatkowe informacje można znaleźć w dokumentacji Reorganizacja tabel baz danych (rgzdbt).

Narzędzie wypisuje wszystkie tabele NLS, które są reorganizowane:

reorganizing NLS tables of XA
reorganizing NLS tables of XB
reorganizing NLS tables of XC
   deleting 4 nls objects
   XCUA deleted 4 nls objects
   creating 6 nls objects
   XCUA created 6 nls objects
   deleting 4 nls objects
   XCUB deleted 4 nls objects
reorganizing NLS tables of XD

Przed reorganizacją atrybutów możliwych do zlokalizowania należy bezwzględnie sprawdzić, czy ustawienia języków dodatkowych dla tej bazy danych w konfiguracji są prawidłowe. Jeśli język dodatkowy został usunięty z listy języków dodatkowych, powiązane tłumaczenia zostaną bezpowrotnie usunięte. Jeśli dodano nowy język dodatkowy, zostanie on zainicjalizowany wartością z języka podstawowego bazy danych. Należy również upewnić się, że informacje o bazie danych są zgodne z danymi konfiguracji. Jeśli występują rozbieżności, podczas uruchamiania serwera aplikacji systemu ERP (SAS) zostanie wyświetlony komunikat błędu.

Po reorganizacji atrybutów możliwych do zlokalizowania zalecane jest wyrywkowe sprawdzenie odpowiednich encji biznesowych, aby potwierdzić, że tłumaczenia odpowiadają oczekiwaniom.

Reorganizacja odwołań do obiektów

Za pomocą narzędzia rgzdbt oraz opcji -objectReferences i -modify można usuwać nieprawidłowe referencje obiektów. Poniższe polecenie usuwa referencje obiektów, które wskazują na nieistniejący obiekt biznesowy:

rgzdbt -objectreferences -modify -db:DX

Przykład
Przykładowy wynik:

deleting 25 object references
XA TOTAL=4 INVALID=0 ERROR=0
XB TOTAL=40 INVALID=6 ERROR=0
XC TOTAL=153 INVALID=19 ERROR=0

Dodatkowe informacje można znaleźć w dokumentacji Reorganizacja tabel baz danych (rgzdbt).

Reorganizację referencji obiektów należy wykonywać wyłącznie wtedy, gdy na podstawie analizy wydajności zostały one zidentyfikowane jako problem.

Czy ten artykuł był pomocny?