Znane problemy i ich obejścia

Eksport do pliku IXF z indeksami dla kolumn, których nazwy zawierają znaki - i +

Po wydaniu komendy export z formatem pliku IXF i klauzulą SELECT *, gromadzone są informacje o indeksie, jeśli są dostępne.

Problem

Jeśli nazwy kolumn określone w indeksie zawierają znak - lub +, informacje o indeksie nie będą gromadzone i zostanie zwrócony kod SQL SQL27984W. Operacja eksportu zostanie wykonana i nie wpłynie to na wyeksportowane dane. Jednak informacje o indeksie nie zostaną zapisane w pliku IXF.

Obejście

Jeśli tabela będzie ponownie tworzona komendą import z parametrem CREATE, indeksy nie zostaną odtworzone. Aby utworzyć indeksy osobno, należy użyć programu narzędziowego db2look.

Błąd CLI0116E lub SQL0428N podczas wywoływania funkcji API db2ReadLog

Problem

Wywołanie funkcji API db2ReadLog z aplikacji może powodować błąd przy rozłączaniu się aplikacji z bazą danych, jeśli przed rozłączeniem nie zostanie wykonane zatwierdzenie lub wycofanie zmian:

Obejście 1

W przypadku aplikacji nienapisanych we wbudowanym SQL należy przed wywołaniem funkcji API db2ReadLog ustawić tryb automatycznego zatwierdzenia.

Obejście 2

Po wywołaniu funkcji API db2ReadLog, a przed rozłączeniem z bazą danych, należy użyć instrukcji COMMIT lub ROLLBACK.

Działanie komendy "db2gcf -k" kończy się niepowodzeniem w programie DB2 UDB Workgroup Server Edition

Problem

Komenda db2gcf uruchamia, zatrzymuje lub monitoruje instancję DB2 Universal Database (UDB), zwykle ze zautomatyzowanego skryptu, takiego jak w klastrze o wysokiej dostępności (HA - high availability).

Użycie komendy systemowej db2gcf z parametrem -k na serwerze DB2 UDB Workgroup Server nie powiedzie się.

Obejście

Komenda "db2gcf -k" działa tylko na serwerze DB2 UDB Enterprise Server Edition, a nie na serwerze DB2 UDB Workgroup Server Edition.

Błąd SQL1224 z opakowania DRDA (AIX)

Jeśli w systemie AIX działa 32-bitowy serwer DB2 Universal Database (UDB) oraz aplikacja, która ma więcej niż jedno połączenie z lokalną bazą danych przez opakowanie DRDA, w aplikacji tej może zostać zwrócony następujący komunikat o błędzie:

SQL1822N  Nieoczekiwany kod błędu "-1224" otrzymany ze 
źródła danych "W3_SERVER2". 
Powiązany tekst i elementy to 
  func="DriverConnect" 
  msg="SQL1224N  Nie można uruchomić agenta bazy danych 
                 potrzebnego do obsługi żądania lub jego 
                 działanie zostało zakończone w wyniku 
                 wyłączenia systemu lub użycia komendy
                 wymuszającej."
SQLSTATE=560BD

Aby uniknąć tego błędu, należy umieścić poniższy wpis w stowarzyszonym pliku konfiguracyjnym (katalog_instancji/cfg/db2dj.ini):

EXTSHM=ON
Uwaga:
Po dodaniu wpisów do stowarzyszonego pliku konfiguracyjnego konieczne jest zatrzymanie i ponowne uruchomienie programu DB2 UDB, aby zmiany zaczęły obowiązywać.

Alternatywnie można wpisać do katalogu lokalną bazę danych DB2 UDB jako znajdującą się na węźle TCP/IP. Na przykład:

CATALOG TCPIP NODE mój_węzeł REMOTE mój_host SERVER 123;
CATALOG DB moja_baza_danych AT NODE mój_węzeł;
CREATE WRAPPER drda;
CREATE SERVER mój_serwer TYPE DB2/UDB VERSION 8 WRAPPER drda
   AUTHORIZATION "mój_identyfikator" PASSWORD "moje_hasło"
   OPTIONS(ADD DBNAME 'MOJA_BAZA_DANYCH');

Klawisze skrótu nie działają w programie Microsoft Visual Studio .NET Framework 1.1

Jeśli klawisze skrótu nie działają w programie Microsoft Visual Studio .NET Framework 1.1, można pobrać poprawkę z serwisu WWW firmy Microsoft. Poprawkę tę można znaleźć w artykule numer Q836745 w bazie wiedzy Microsoft Knowledge Base.

Ustawienia narodowe dla języka chińskiego uproszczonego (AIX)

W następujących wersjach systemu AIX nastąpiła zmiana zestawu kodowego związanego z ustawieniami narodowymi języka chińskiego uproszczonego Zh_CN:

Zestaw kodowy zmieniono z GBK (strona kodowa 1386) na GB18030 (strona kodowa 5488 lub 1392). Ponieważ program DB2 Universal Database (UDB) dla systemu AIX zapewnia rodzimą obsługę zestawu kodowego GBK, a zestaw kodowy GB18030 za pośrednictwem kodu Unicode, program DB2 UDB będzie domyślnie używał zestawu kodowego ISO 8859-1 ustawień narodowych Zh_CN (strona kodowa 819), a w niektórych operacjach będzie również wykorzystywał wartość dla terytorium Stanów Zjednoczonych (US).

To ograniczenie można ominąć na dwa sposoby:

W przypadku wybrania pierwszej możliwości należy wydać następujące komendy:

db2set DB2CODEPAGE=1386
db2set DB2TERRITORY=86
db2 terminate
db2stop
db2start 

W przypadku drugiej opcji należy zmienić ustawienia narodowe z Zh_CN na ZH_CN lub zh_CN. Zestawem kodowym ustawień narodowych ZH_CN jest kod Unicode (UTF-8), a zestawem kodowym ustawień narodowych zh_CN jest eucCN (strona kodowa 1383).

Ustawienia narodowe dla języka chińskiego uproszczonego (Red Hat Linux)

W systemie Red Hat, wersja 8 lub późniejsza (także Red Hat Enterprise Linux [RHEL] wersje 2.1 i 3), zmieniono domyślny zestaw kodowy dla języka chińskiego uproszczonego z GBK (strona kodowa 1386) na GB18030 (strona kodowa 5488 lub 1392).

Ponieważ program DB2 Universal Database (UDB) dla systemu Linux zapewnia rodzimą obsługę zestawu kodowego GBK, a zestaw kodowy GB18030 za pośrednictwem kodu Unicode, program DB2 UDB będzie domyślnie używał zestawu kodowego ISO 8859-1 (strona kodowa 819), a w niektórych operacjach będzie również wykorzystywał wartość dla terytorium Stanów Zjednoczonych (US).

To ograniczenie można ominąć na dwa sposoby:

W przypadku wybrania pierwszej możliwości należy wydać następujące komendy:

db2set DB2CODEPAGE=1386
db2set DB2TERRITORY=86
db2 terminate
db2stop
db2start 

W przypadku wybrania drugiej możliwości należy wydać dowolną z następujących komend:

export LANG=zh_CN.gbk
export LANG=zh_CN
export LANG=zh_CN.utf8

gdzie z ustawieniami narodowymi zh_CN skojarzony jest zestaw kodowy eucCN lub strona kodowa 1383, a z ustawieniami narodowymi zh_CN.utf8 - strona kodowa 1208.

Niezgodność z programem Merant Driver Manager (UNIX)

Kiedy program Merant Driver Manager odwołuje się do sterownika ODBC programu DB2 w systemie UNIX, występują nieprawidłowości w obsłudze znaków Unicode. Nieprawidłowości te powodują, że menedżer sterowników Merant korzysta z formatu Unicode, nawet jeśli aplikacja nie zgłaszała takiego żądania. Sytuacja ta może prowadzić do problemów z takimi produktami, jak Centrum hurtowni danych, Menedżer katalogu informacyjnego i MQSI, które wymagają, aby program Merant Driver Manager obsługiwał źródła danych producentów innych niż IBM. Do czasu udostępnienia trwałego rozwiązania można używać alternatywnej biblioteki sterowników ODBC programu DB2 bez obsługi kodu Unicode.

Alternatywna biblioteka sterowników ODBC programu DB2 bez obsługi formatu Unicode jest dołączana do programu DB2 Universal Database (UDB), wersja 8.1, dla systemów AIX, HP-UX i Środowiska Operacyjnego Solaris. Aby użyć tej alternatywnej biblioteki, należy utworzyć jej kopię, nadając jej nazwę oryginalnej biblioteki sterowników programu DB2.

Uwaga:
Biblioteka alternatywna (_36) zawiera funkcje obsługi Unicode wymagane przez sterownik JDBC programu DB2. Użycie tej biblioteki umożliwi aplikacjom JDBC, w tym serwerowi WebSphere Application Server, skuteczną współpracę z programem DB2 UDB.

Aby przełączyć się na bibliotekę ODBC bez obsługi Unicode w systemach AIX, HP-UX lub w Środowisku Operacyjnym Solaris, wykonaj poniższe instrukcje. Ponieważ proces ten przeprowadza się ręcznie, należy go wykonywać przy każdym aktualizowaniu produktu, również przy stosowaniu kolejnych pakietów poprawek i poziomów modyfikacji.

Procedura

AIX

Aby utworzyć alternatywną bibliotekę w systemie AIX:

  1. Jako właściciel instancji zamknij wszystkie instancje bazy danych za pomocą komendy db2stop force.
  2. Korzystając z identyfikatora instancji serwera administracyjnego DB2 (DAS), zamknij instancję DAS za pomocą komendy db2admin stop force.
  3. Sporządź kopię zapasową pliku db2.o w katalogu /usr/lpp/db2_81/lib.
  4. Korzystając z uprawnień administratora (root), wydaj komendę slibclean.
  5. Skopiuj plik db2_36.o do pliku kopii zapasowej db2.o, zachowując informacje o właścicielu i uprawnieniach. Użyj następujących komend:
    cp db2_36.o db2.o
    -r--r--r-- bin:bin for db2.o

Aby przełączyć się z powrotem na oryginalny obiekt, wykonaj tę samą procedurę, używając kopii zamiast pliku db2_36.o.

Środowisko Operacyjne Solaris

Aby utworzyć alternatywną bibliotekę w Środowisku Operacyjnym Solaris:

  1. Jako właściciel instancji zamknij wszystkie instancje bazy danych za pomocą komendy db2stop force.
  2. Korzystając z identyfikatora instancji serwera administracyjnego DB2 (DAS), zamknij instancję DAS za pomocą komendy db2admin stop force.
  3. Sporządź kopię zapasową pliku libdb2.so.1 w katalogu /opt/IBMdb2/V8.1/lib.
  4. Skopiuj plik libdb2_36.so.1 do pliku libdb2.so.1, zachowując informacje o właścicielu i uprawnieniach. Użyj następujących komend:
    cp libdb2_36.so.1 libdb2.so.1 
    -r-xr-xr-x bin:bin libdb2.so.1
  5. Wydaj komendę db2iupdt <instancja> dla każdej instancji bazy danych oraz komendę dasupdt <instancja_das> dla każdej instancji DAS.

Aby przełączyć się z powrotem na oryginalny obiekt, wykonaj tę samą procedurę, używając kopii zamiast pliku libdb2_36.so.1.

HP-UX PA-RISC

Aby utworzyć alternatywną bibliotekę w systemie HP-UX PA-RISC:

  1. Zamknij wszystkie instancje bazy danych za pomocą komendy db2stop force.
  2. Zamknij instancję serwera administracyjnego DB2 (DAS) za pomocą komendy db2admin stop force.
  3. Sporządź kopię zapasową oryginalnego pliku libdb2.sl w katalogu /opt/IBMdb2/V8.1/lib.
  4. Skopiuj plik libdb2_36.sl do pliku kopii zapasowej libdb2.sl, aby zachować spójność informacji o prawach własności i uprawnieniach. Poniższa komenda pozwala zachować te informacje:
    cp libdb2_36.sl libdb2.sl
    -r-xr-xr-x bin:bin for libdb2.sl
  5. Wydaj komendę db2iupdt <instancja> dla każdej instancji bazy danych oraz komendę dasupdt <instancja_das> dla każdej instancji DAS.

Aby przełączyć się z powrotem na oryginalny obiekt, wykonaj tę samą procedurę, używając kopii zamiast pliku libdb2_36.sl.

HP-UX na platformie IA64

Aby utworzyć alternatywną bibliotekę w systemie HP-UX na platformie IA64:

  1. Zamknij wszystkie instancje bazy danych za pomocą komendy db2stop force.
  2. Zamknij instancję serwera administracyjnego DB2 (DAS) za pomocą komendy db2admin stop force.
  3. Utwórz kopię zapasową oryginalnego pliku libdb2.so w katalogu /opt/IBMdb2/V8.1/lib.
  4. Skopiuj plik libdb2_36.so do pliku kopii zapasowej libdb2.so, aby zachować spójność informacji o właścicielu i uprawnieniach. Poniższa komenda pozwala zachować te informacje:
    cp libdb2_36.so libdb2.so
    -r-xr-xr-x bin:bin for libdb2.so
  5. Wydaj komendę db2iupdt <instancja> dla każdej instancji bazy danych oraz komendę dasupdt <instancja_das> dla każdej instancji DAS.

Aby przełączyć się z powrotem na oryginalny obiekt, wykonaj tę samą procedurę, używając kopii zamiast pliku libdb2_36.so.

Inne systemy operacyjne UNIX

Aby uzyskać pomoc podczas korzystania z programu DB2 i produktu Merant Driver Manager w innych systemach operacyjnych UNIX, należy skontaktować się z działem wsparcia IBM.

System NFS, raport APAR IY32512 - niedostępne wątki (AIX)

W systemie plików NFS systemu operacyjnego AIX 5 z pakietem APAR IY32512 z dużą liczbą partycji może się zdarzyć, że wywołanie komendy db2stop nie powiedzie się.

Na serwerze odbierającym dużą liczbę żądań blokad w odniesieniu do plików, które już są zablokowane, demon blokowania może przestać odpowiadać. Sytuacja ta występuje, gdy wszystkie dostępne zablokowane wątki są przydzielone do wątków oczekujących na zwolnienie blokad i w chwili wprowadzenia żądania zwolnienia nie ma dostępnego wątku do jego obsługi.

W takiej sytuacji konieczne jest restartowanie zatrzymanych węzłów. W programie DB2 Universal Database istnieje obejście tego problemu, które polega na zatrzymywaniu węzłów pojedynczo, przy użyciu opcji NODENUM komendy db2stop.

Błąd opcji prekompilatora SQLFLAG(STD)

Jeśli opcja prekompilatora SQLFLAG(STD) będzie włączona, spowoduje to wystąpienie następującego błędu: Abend C6 occurred while running Precompile program DSNHPC (Podczas działania programu prekompilatora DSNHPC wystąpiło nieprawidłowe zakończenie C6).

Aby przy użyciu Centrum projektowania utworzyć zapisane w bazie procedury języka SQL przeznaczone do uruchamiania w programie DB2 Universal Database for z/OS, wersja 8, należy usunąć opcję prekompilatora SQLFLAG(STD).

Podczas korzystania z opcji sysplex w programie DB2 Connect zestawianie połączeń musi być włączone

Problem

Program DB2 Connect(TM) nie kieruje połączeń do innego elementu funkcji Distributed Data Facility (DDF), gdy łączący się element funkcji DDF z grupy współużytkowania danych systemu OS390 został zamknięty. Przy włączonej opcji sysplex program DB2 Connect(TM) kieruje połączenia do innego elementu funkcji DDF zgodnie z listą serwerów.

Projektując sysplex programu DB2 Connect, wersja 8, przewidziano zestawianie agentów. Lista serwerów sysplex jest zwalniana, gdy nie ma żadnych agentów ani połączeń z bazą danych. Dlatego należy zachować co najmniej jednego agenta, aby utrzymać listę serwerów sysplex.

Obejście

Włącz zestawianie połączeń, uruchamiając następujące komendy:

db2 update dbm cfg using num_poolagents liczba
db2stop
db2start

gdzie liczba to maksymalna liczba agentów, jaka może być zestawiana na instancji DB2. Zestawianie połączeń jest włączane, gdy liczba jest większa od 0.

Zalecenie

Ustaw parametr num_poolagents na -1, co oznacza połowę wartości przypisanej do parametru konfiguracyjnego maxagents.

Doradca DB2 Connect Custom Advisor

Pomimo wzmianki w podręczniku DB2 Connect Podręcznik użytkownika, doradca DB2 Connect Custom Advisor nie jest już obsługiwany w wersji 8.2.

Tworzenie bazy danych katalogu narzędzi kończy się niepowodzeniem (HP-UX)

Problem
Podczas instalowania programu DB2 Universal Database (UDB), wersja 8.2, w systemie HP-UX działanie komendy CREATE TOOLS CATALOG kończy się niepowodzeniem z kodem SQLCODE -22209, jeśli wykonywana jest ona w 32-bitowej instancji, a parametr konfiguracyjny jdk_path Serwera administracyjnego DB2 wskazuje pakiet HP-UX SDK 1.4. Błąd ten występuje, ponieważ program DB2 UDB, wersja 8.2, domyślnie instaluje pakiet HP-UX SDK 1.4, ale 32-bitowa instancja w wersji 8.2 do pomyślnego działania wymaga komendy CREATE TOOLS CATALOG pakietu HP-UX SDK 1.3.

Niepowodzenie to może także wystąpić podczas instalowania programu DB2 UDB, wersja 8.1 pakiet poprawek 7, jeśli ręcznie zaktualizuje się parametr konfiguracyjny jdk_path Serwera administracyjnego DB2 w taki sposób, że wskazuje on pakiet HP-UX SDK 1.4, lub gdy usunie się i odtworzy Serwer administracyjny DB2 (DAS). W obu tych wypadkach przyczyną niepowodzenia jest zmiana parametru konfiguracyjnego jdk_path powodująca, że wskazuje on pakiet HP-UX SDK 1.4.

32-bitowa instancja programu DB2 UDB, wersja 8.2, do pomyślnego działania wymaga pakietu HP-UX SDK 1.3.

Obejście 1
Utwórz katalog narzędzi w 64-bitowej instancji.
Obejście 2
Utwórz katalog narzędzi w 32-bitowej instancji, wykonując następujące czynności:
  1. Pobierz pakiet HP-UX SDK 1.3 z serwisu WWW firmy HP-UX: http://www.hp.com/products1/unix/java/
  2. Zainstaluj pakiet HP-UX SDK 1.3.
  3. Zaktualizuj parametr konfiguracyjny jdk_path Serwera administracyjnego DB2 w taki sposób, aby wskazywał pakiet HP-UX SDK 1.3. Na przykład:
    db2 update admin config using JDK_PATH /opt/java1.3
  4. Zrestartuj Serwer administracyjny DB2.
    db2admin stop
    db2admin start
  5. Ponownie wykonaj komendę CREATE TOOLS CATALOG w 32-bitowej instancji.

Wyświetlanie znaków hinduskich w narzędziach graficznych DB2

Trudności z wyświetlaniem znaków hinduskich przy korzystaniu z narzędzi DB2 z graficznym interfejsem użytkownika mogą oznaczać, że w systemie brakuje wymaganych czcionek.

Pakiet DB2 Universal Database (UDB) zawiera wymienione niżej czcionki proporcjonalne IBM w formacie TrueType i OpenType dla języków hinduskich. Czcionki te są dostępne w katalogu font na każdym z następujących dysków CD:

Czcionek tych można używać tylko razem z programem DB2 UDB. Sprzedaż i dystrybucja tych czcionek dla innych zastosowań jest niedozwolona:

Tabela 9. Czcionki hinduskie w pakiecie DB2 UDB.
Czcionka Grubość Nazwa pliku czcionki
Devanagari MT for IBM średnia devamt.ttf
Devanagari MT for IBM pogrubiona devamtb.ttf
Tamil średnia TamilMT.ttf
Tamil pogrubiona TamilMTB.ttf
Telugu średnia TeluguMT.ttf
Telugu pogrubiona TeleguMTB.ttf

Szczegółowe instrukcje na temat instalowania czcionek i modyfikowania pliku font.properties można znaleźć w sekcji poświęconej obsłudze innych języków w dokumentacji pakietu IBM Development Kit for Java.

Ponadto w poniższych produktach firmy Microsoft mogą występować czcionki hinduskie, które można wykorzystać w graficznych narzędziach DB2:

Narzędzia graficzne nie są obsługiwane na serwerach zSeries (Linux)

Z wyjątkiem Kreatora instalacji DB2 narzędzia z graficznym interfejsem nie będą działały na serwerach zSeries z systemem operacyjnym Linux. Ograniczenie to dotyczy wszystkich programów uruchamianych zazwyczaj ze startera instalacji, takiego jak Krótki kurs.

W razie konieczności posłużenia się jednym z narzędzi graficznych w opisanej konfiguracji systemu narzędzia administracyjne należy zainstalować w systemie klienta o odmiennej konfiguracji i nawiązywać połączenie z serwerem zSeries z tego klienta.

Funkcja wyszukiwania w Centrum informacyjnym DB2 wymaga użycia cudzysłowów dla terminów zawierających cyfry

Aby uzyskać dokładne wyniki wyszukiwania w Centrum informacyjnym DB2, konieczne jest ujęcie szukanych terminów, które zawierają cyfry, w cudzysłowy.

Na przykład wyszukiwanie poniższego tekstu nie da żadnych wyników:

  1.4.1

Jeśli jednak ujmie się ten tekst w cudzysłowy, zostaną zwrócone poprawne wyniki:

  "1.4.1"

Wyszukiwanie następującego tekstu zwróci dodatkowe tematy:

  DB20000I

Ale wyszukiwanie takiego tekstu będzie działać poprawnie:

  "DB20000I"

Podczas importowania plików języka znaczników nie jest generowany plik protokołu Centrum katalogu informacyjnego

Jeśli podczas importowania do Centrum katalogu informacyjnego plików języka znaczników nie jest generowany plik protokołu Centrum katalogu informacyjnego, w celu rozwiązania problemu należy wykonać następujące czynności:

Podczas uruchamiania komendy db2icmimport w wierszu komend:
Podczas importowania pliku z językiem znaczników za pomocą interfejsu GUI Centrum katalogu informacyjnego:

Wiązanie pakietów Query Patroller

Jeśli po zainstalowaniu pakietu poprawek nie są powiązane pakiety Query Patroller, użytkownik bez uprawnienia BADM lub odpowiednich uprawnień do programu Query Patroller, korzystając z Centrum Query Patroller lub wiersza komend Query Patroller, może napotkać następujący błąd:

SQL0001N - Wiązanie lub prekompilacja nie została zakończona pomyślnie.

Jeśli użytkownik korzysta z Centrum Query Patroller, błąd SQL0001N zostanie zapisany w pliku protokołu qpdiag.log. Jeśli użytkownik korzysta z wiersza komend Query Patroller, błąd SQL0001N zwracany jest do konsoli.

Istnieje kod automatycznego wiązania służący do inicjowania automatycznego wiązania. Jednakże automatyczne wiązanie nie zostanie wykonane pomyślnie, jeśli łączący się użytkownik nie ma odpowiednich uprawnień do wykonywania wszystkich instrukcji występujących w pakietach Query Patroller. Objawem tego problemu jest brak folderów w Centrum Query Patroller.

Aby uniknąć tego problemu, po zastosowaniu pakietu poprawek użytkownik z uprawnieniami DBADM lub innymi odpowiednimi uprawnieniami powinien ręcznie powiązać pakiety qpserver.lst.

Niedostępność portów w programie Query Patroller (Windows)

Problem

Zapytania wprowadzane w programie Query Patroller mogą odbierać kod SQL -29007, gdy w systemie Windows XP lub Windows 2003 nie ma dostępnych portów. Prawdopodobieństwo wystąpienia tego błędu rośnie wraz ze wzrostem liczby klientów korzystających z programu Query Patroller.

Obejście

Ustaw następujące zmienne rejestru systemu Windows:

   MaxUserPort=65534
   TcpTimedWaitDelay=30 

i zrestartuj system, aby zmiany odniosły skutek.

Szczegóły dotyczące ustawiania zmiennych rejestru systemu Windows można znaleźć na stronie WWW pomocy i wsparcia firmy Microsoft(R) pod adresem http://support.microsoft.com/.

Bezpieczne środowiska (Windows)

Używanie programu DB2 Universal Database (UDB) w systemie Windows z kontem innym niż konto administratora systemu Windows może powodować problemy związane z uprawnieniami do plików. Prawdopodobne przyczyny wystąpienia błędów SQL1035N, SQL1652N lub SQL5005C i opisy ich obejścia przedstawiono poniżej:

Użytkownik nie ma wystarczających uprawnień do katalogu sqllib

Problem
Podczas próby otwarcia procesora CLP lub okna komend programu DB2 wystąpił błąd SQL1035N lub SQL1652N. Kod programu DB2 UDB (zasadnicze pliki) jest instalowany w strukturze katalogów, w której uprawnienia do zapisu są ograniczone, a niektóre narzędzia programu DB2 UDB wymagają uprawnień do zapisu danych i tworzenia plików w katalogu DB2INSTPROF.
Obejście
Utwórz nowy katalog, w którym można będzie przydzielić użytkownikom co najmniej uprawnienia MODIFY, i użyj komendy db2set -g db2tempdir, aby wskazać nowy katalog, lub ustaw zmienną db2tempdir w środowisku systemu Windows.
Użytkownik nie ma wystarczających uprawnień do zapisu w katalogu sqllib\<katalog_instancji> mimo tego, że użytkownik należy do grupy SYSADM_GROUP

Problem
Podczas próby zaktualizowania pliku konfiguracyjnego menedżera bazy danych (update dbm cfg) wystąpił błąd SQL5005C. Użytkownik nie ma wymaganych w systemie NTFS uprawnień do zapisu w katalogu sqllib\katalog_instancji, chociaż użytkownika tego dodano do grupy SYSADM_GROUP.
Pierwsze obejście

Przydziel użytkownikowi co najmniej uprawnienie MODIFY do katalogu katalog_instancji na poziomie systemu plików.

Drugie obejście
Utwórz nowy katalog, w którym można będzie przydzielić użytkownikowi co najmniej uprawnienie MODIFY. Użyj komendy db2set db2instprof, aby wskazać nowy katalog. Konieczne będzie ponowne utworzenie instancji, aby informacje przechowywane były w nowym katalogu instancji podanym w komendzie db2instprof, albo przeniesienie zawartości starego katalogu instancji do nowego katalogu.

Zmienione nazwy przykładowych programów XML Extender

Nazwy niektórych przykładowych programów narzędzia XML Extender mogą być takie same, jak nazwy innych zainstalowanych programów. Przypadkowe uruchomienie innego programu o nazwie identycznej z nazwą przykładowego programu narzędzia XML Extender może doprowadzić do uszkodzenia używanych plików XML. Poniższa lista zawiera stare nazwy przykładowych programów narzędzia XML Extender powodujące konflikt oraz ich zamienniki, w przypadku których prawdopodobieństwo wystąpienia konfliktu jest mniejsze. Aby zapobiec uszkodzeniu używanych plików XML, upewnij się, że używane są nowe nazwy przykładowych programów, a nie stare nazwy.

Tabela 10. Zamienniki programów przykładowych programu XML Extender (Windows).
Poprzedni program (nie używać) Nowy program (używać)
insertx.exe dxxisrt.exe
retrieve.exe dxxretr.exe
retrieve2.exe dxxretr2.exe
retrievec.exe dxxretrc.exe
shred.exe dxxshrd.exe
tests2x.exe dxxgenx.exe
tests2xb.exe dxxgenxb.exe
tests2xc.exe dxxgenxc.exe
Tabela 11. Zamienniki programów przykładowych programu XML Extender (Linux i UNIX).
Poprzedni program (nie używać) Nowy program (używać)
insertx dxxisrt
retrieve dxxretr
retrieve2 dxxretr2
retrievec dxxretrc
shred dxxshrd
tests2x dxxgenx
tests2xb dxxgenxb
tests2xc dxxgenxc

Używanie nowych programów przykładowych z przykładowymi plikami sqx

Kod źródłowy (pliki .sqx) plików wykonywalnych występujących na powyższej liście znajduje się w katalogu instalacji o nazwie samples\db2xml\c. Pliki źródłowe mają nadal te same nazwy co wcześniej. Jeśli w kodzie źródłowym zostaną wprowadzone zmiany, należy skopiować skompilowane pliki wykonywalne (ze starymi nazwami) do katalogu sqllib\bin.

Na platformach Windows należy wykonać dodatkową kopię, zmienić jej nazwę na nową, przedstawioną powyżej, a następnie skopiować plik do katalogu bin. Obie kopie zastępują pliki istniejące już w katalogu bin. Na przykład po skompilowaniu nowej wersji pliku shred.exe należy wykonać dwie kopie, które zastąpią pliki w katalogu bin: jedną o nazwie shred.exe i drugą o zmienionej nazwie - dxxshrd.exe.

Na platformach Linux i UNIX wystarczy jedynie zamienić plik o starej nazwie na nowo skompilowaną wersję pliku. W razie utworzenia nowego pliku wykonywalnego na podstawie tych przykładów, należy skopiować nowe pliki z katalogu \SQLLIB\samples\db2xml\c\ do katalogu \SQLLIB\bin\, a następnie wykonać dodatkową kopię, nadając jej nazwę na podstawie informacji zawartych w powyższej tabeli.

Dekomponowanie dokumentów zawierających nieunikalne atrybuty i nazwy elementów w programie XML Extender

Można dekomponować dokumenty zawierające atrybuty nieunikalne lub nieunikalne nazwy elementów odnoszące się do różnych kolumn (tej samej lub różnych tabel) bez wywoływania błędu DXXQ045E. Poniżej przedstawiono przykład dokumentu XML z nieunikalnymi atrybutami i nazwami elementów:

<Order ID="0001-6789">
       <!-- Uwaga: identyfikator nazwy atrybutu jest nieunikalny -->
       <Customer ID = "1111">
                    <Name>John Smith</Name>
       </Customer>
       <!-- Uwaga: nazwa elementu Name jest nieunikalna -->
       <Salesperson ID = "1234"> 
              <Name>Jane Doe</Name>
       </Salesperson>
       <OrderDetail>
              <ItemNo>xxxx-xxxx</ItemNo>
              <Quantity>2</Quantity>
              <UnitPrice>12.50</UnitPrice>
       </OrderDetail>
       <OrderDetail>
              <ItemNo>yyyy-yyyy</ItemNo>
              <Quantity>4</Quantity>
              <UnitPrice>24.99</UnitPrice>
       </OrderDetail>       
</Order>

Towarzyszący plik DAD, który odwzorowuje podwójne elementy i atrybuty do różnych kolumn, ma następującą postać:

<element_node name="Order">
  <RDB_node>
    <table name="order_tab" key="order_id"/>
    <table name="detail_tab"/>
    <condition>
      order_tab.order_id=detail_tab.order_id
    </condition>
  </RDB_node>

  <!--ID atrybutu powielony poniżej, lecz odwzorowany do innej kolumny-->
  <attribute_node name="ID">
    <RDB_node>
      <table name="order_tab" />
      <column name="order_id" type="char(9)"/>
    </RDB_node>
  </attribute_node>
  
  <element_node name="Customer">
    <!--ID atrybutu powielony powyżej, lecz odwzorowany do innej kolumny-->
    <attribute_node name="ID">
      <RDB_node>
        <table name="order_tab" />
        <column name="cust_id" type="integer"/>
      </RDB_node>
    </attribute_node>

    <!--nazwa elementu powielona poniżej, lecz odwzorowana do innej kolumny-->
    <element_node name="Name"> 
      <text_node>
        <RDB_node>
          <table name="order_tab" />
          <column name="cust_name" type="char(20)" />
        </RDB_node>
      </text_node>
    </element_node>
  </element_node>
    
  <element_node name="Salesperson">
    <!--ID atrybutu powielony powyżej, lecz odwzorowany do innej kolumny-->
    <attribute_node name="ID">
      <RDB_node>
        <table name="order_tab" />
        <column name="salesp_id" type="integer"/>
      </RDB_node>
    </attribute_node>
          
    <!--nazwa elementu powielona powyżej, lecz odwzorowana do innej kolumny--> 
    <element_node name="Name"> 
      <text_node>
        <RDB_node>
          <table name="order_tab" />
          <column name="salesp_name" type="char(20)" />
        </RDB_node>
      </text_node>
    </element_node>
  </element_node>
    
  <element_node name="OrderDetail" multi_occurrence="YES">
    <element_node name="ItemNo">
      <text_node>
        <RDB_node>
          <table name="detail_tab" />
          <column name="itemno" type="char(9)"/>
        </RDB_node>
      </text_node>
    </element_node>
    <element_node name="Quantity">
      <text_node>
        <RDB_node>
          <table name="detail_tab" />
          <column name="quantity" type="integer"/>
        </RDB_node>
      </text_node>
    </element_node>
    <element_node name="UnitPrice">
      <text_node>
        <RDB_node>detail_tab" />
          <table name="detail_tab" />        
          <column name="unit_price" type="decimal(7,2)"/>
        </RDB_node>
      </text_node>
    </element_node>
  </element_node>
</element_node>

Po zdekomponowaniu dokumentu zawartość tabel może wyglądać w następujący sposób:

ORDER _TAB:

ORDER_ID       CUST_ID       CUST_NAME       SALESP_ID       SALESP_NAME
0001-6789      1111          John Smith      1234            Jane Doe

DETAIL_TAB:

ORDER_ID          ITEMNO         QUANTITY          UNIT_PRICE
0001-6789         xxxx-xxxx      2                 12.50
0001-6789         yyyy-yyyy      4                 24.99
Uwaga:
Aby przypisać wiele elementów i atrybutów do tej samej kolumny jednej tabeli, należy zdefiniować alias tabeli i użyć tego aliasu w elemencie DAD <table> jednego z odwzorowań.

Różnice między protokołami SNA i TCP/IP podczas korzystania z programu DB2 Connect

Podczas nawiązywania połączeń z systemem OS/390 przy użyciu protokołu SNA, warstwa VTAM hosta automatycznie przesyła sygnał zatwierdzenia po utworzeniu nowego połączenia. Automatyczne zatwierdzenie umożliwia dezaktywację wątku po stronie hosta i wątek ten natychmiast staje się nieaktywny.

Jednak podczas nawiązywania połączeń z systemem OS/390 przy użyciu protokołu TCP/IP zatwierdzenie automatyczne nie następuje. Aby umożliwić dezaktywację wątku na hoście, aplikacja musi samodzielnie wysłać jawny sygnał zatwierdzenia po nawiązaniu połączenia. Jeśli sygnał zatwierdzenia nie zostanie wysłany, może zostać przekroczony limit czasu nieaktywności wątku.

Sugerowane obejście tego problemu polega na zmodyfikowaniu aplikacji tak, aby wykonywała jawne zatwierdzenie wtedy, gdy nawiązane połączenie staje się nieaktywne.

[ Początek strony |Poprzednia strona | Następna strona | Spis treści ]