You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Instalacja serwera bazy danych Oracle i serwera systemu dLibra na tym samym komputerze


Podczas instalacji serwera bazy danych Oracle w domyślnej konfiguracji, w wersji 9.0, instalowana jest wirtualna maszyna Javy w wersji 1.3.1. Katalog bin tej instalacji Javy jest dodawany do zmiennej systemowej PATH. Z tego powodu próba uruchomienia serwera systemu dLibra kończy się niepowodzeniem - serwer powinien być uruchamiany w środowisku zgodnym z Java 1.5. Aby zapobiec takiej sytuacji, należy po instalacji serwera Oracle i maszyny wirtualne Javy w wersji zgodnej z 1.5, sprawdzić czy zmienna systemowa PATH wskazuje na katalog bin właściwej wersji Javy.

Podczas instalacji serwera bazy danych Oracle domyślnie instalowana jest również XML-owa baza danych (XDB). Domyślnie dostęp do niej odbywa się poprzez port 8080. Port ten jest również domyślnym portem dla wielu kontenerów serwletów - w tym proponowanego do wykorzystania w systemie dLibra kontenera Tomcat. Z tego powodu nie jest możliwe równoczesne działanie bazy XDB i kontenera Tomcat na jednym komputerze, jeżeli wykorzystywane są ich domyślne konfiguracje. Aby zmienić tą sytuację można zmodyfikować konfigurację Tomcata lub XDB.

Aby zmodyfikować port, którego używa Tomcat należy zmienić wartości 8080 występujące w pliku server.xml w podkatalogu conf katalogu, w którym zainstalowano Tomcata. Można je zmienić na przykład na wartość 80.

Natomiast aby zmodyfikować port używany przez XDB należy podłączyć się do bazy danych jako użytkownik SYSDBA i wydać następujące zapytania:

SQL>call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),
'/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()',8081))
/
SQL>commit;
SQL>exec dbms_xdb.cfg_refresh;

Niewłaściwe porównywanie znaków diakrytycznych w bazie MySQL


W przypadku instalacji systemu dLibra na bazie danych MySQL pojawia się problem dotyczący dodawania nowych wartości do opisu obiektów cyfrowych i poprawiania wartości już w opisie istniejących. Problem ten pojawia się, gdy próbujemy zmienić wartość bez znaków diakrytycznych na wartość takie znaki posiadającą np. "skora" na "skóra" lub gdy próbujemy dodać nową wartość, która różni się od innej wartości istniejącej już w systemie tylko znakami diakrytycznymi. Wyświetlany jest wówczas komunikat o błędzie, iż dodawana/zmieniona wartość już istnieje. Problem ten może dotyczyć również sytuacji, w której różnica sprowadza się tylko do wielkości liter (np. Koło i koło).

Błąd ten związany jest ze sposobem porównywania znaków przez bazę danych MySQL. Dla kodowania UTF-8, w którym znaki powinny być przechowywane w bazie danych, domyślnym sposobem porównywania znaków jest utf8_general_ci, który znaki diakrytyczne jak np. ä, ó traktuje tak samo jak odpowiednio a, o. Dlatego podczas sprawdzania, czy w bazie danych istnieje nowa wartość "skóra" zostaje znaleziona wartość "skora".

Rozwiązaniem tego problemu jest zmiana domyślnego sposobu porównywania znaków na binarny o nazwie utf8_bin. Można tego dokonać na poziomie całej bazy danych, tabeli czy nawet pojedynczej kolumny. Szczegółowe informacje na ten temat znajdują się na stronie Specifying Character Sets and Collations instrukcji bazy danych MySQL.

W przypadku opisanego powyżej problemu podstawowym rozwiązaniem jest zmiana sposobu porównywania znaków dla tabeli MET_ATTRIBUTE_VALUES. Polecenie zmiany sposobu porównywania powinno wyglądać następująco:

ALTER TABLE nazwa_tabeli CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

Uwaga!

W przypadku przeprowadzania opisanej powyżej operacji na bazie danych już po instalacji, zaleca się wcześniejsze wykonanie backup-u bazy danych.

  • No labels