Szukajcie na znajdziecie powiada powiedzenie.
Wiec po nieudanej próbie włączenia full text search trzeba było znaleźć przyczyne błędu.
Okazało sie, że błąd SQL20427N (opis w pliku dokumentacji DB2MessageRefVol2-db2m2e970.pdf) posiada identyfikator błądu zaczynający się od liter ‘CIE’
Aby sprawdzić numer błądu należy z lini poleceń wykonać komende
db2ts help 00442N
Oto wynik:
CIE00442N Wlasciciel instancji nie ma uprawnien do wykonania komendy indeksu tekstowego dla bazy danych “%1″.Objasnienie:
Uzytkownik próbowal uruchomic komende dotyczaca indeksu tekstowego z ID wlasciela instancji,
do którego nie ma przypisanych odpowiednich uprawnien.
Aby uruchomia komendy dotyczace indeksu tekstowego, wymagane jest ID wlasciciela
instancji z uprawnieniem DBADM i DATAACCESS.
Rózne komendy indeksu wyszukiwania tekstowego DB2 wymagaja róznych poziomów
uprawnien baz danych. Liste wymaganych uprawnien dla komend indeksu wyszukiwania tekstowego
DB2 zawiera temat “Wymagania dotyczace uprawnien dla komendy indeksu wyszukiwania tekstowego DB2″
w Centrum informacyjnym DB2.
Reakcja uzytkownika:
Upewnij sie, ze wlasciciel instancji ma uprawnienia DBADM i DATAACCESS, aby uzytkownik mógl
wykonywac operacje na indeksie tekstowym.
A wiec w “Edytorze komend” wykonujemy:
CONNECT TO test; GRANT DBADM, CREATETAB, BINDADD, CONNECT, CREATE_NOT_FENCED_ROUTINE, IMPLICIT_SCHEMA, LOAD, CREATE_EXTERNAL_ROUTINE, QUIESCE_CONNECT, SECADM ON DATABASE TO USER DB2ADMIN; CONNECT RESET;
Komunikat pomocy sugeruje dodanie tylko uprawnien DBADM ale dla swietego spokoju (i poniewaz jest to baza testowa) dodalem wszystkie uprawnienia.
Teraz wystarczy uruchomic
db2ts "ENABLE DATABASE FOR TEXT"
a nastepnie uruchomic
db2ts start for text CIE00001 Operacja zakonczona pomyslnie.
Utworzymy index
CALL SYSPROC.SYSTS_CREATE('ada4ko', 'idx_ts_wikitext', 'WIKIPEDIA (WIKI_TEXT)', '', 'pl_PL', ?)
i spróbujemy go wypełnić
set DB2DBDFT=WIKI db2ts "UPDATE INDEX idx_ts_wikitext FOR TEXT"
i pojawia się piękny błąd
SQL20427N Podczas wykonywania procedury lub komendy administracyjnej wyszukiwan ia tekstowego wystąpił błąd. Komunikat o błędzie to: "CIE00715 Wywołanie "db2DbD irOpenScan()/db2DbDirGetNextEntry()/db2DbDirCloseScan()": kod_powrotu="0", SQLCO DE="-5005". ". SQLSTATE=38H14
Szybki rzut oka na numer bledu
db2ts help 00715
i mamy komunikat
CIE00715 Wywołanie "%1": kod_powrotu="%2", SQLCODE="%3". Objaśnienie: Podczas wywoływania funkcji wewnętrznej wystąpił wewnętrzny błąd przetwarzania. Reakcja użytkownika: Jeśli błąd nie ustąpi, rozpocznij śledzenie i sprawdź dziennik db2diag.log. Zgłoś błąd przedstawicielowi serwisu IBM.
Zapowiada się coraz ciekawiej.