IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 2 - Derby DB - Spuštění a vypnutí databáze

V minulé lekci, Derby DB - Informace, nastavení prostředí, jsme se věnovali nastavení databáze Apache Derby.

V dnešním tutoriálu tuto databázi spustíme.

Spuštění a ukončení Derby Databáze

Veškeré příkazy pro ovládání a nastavení Derby DB se nacházejí v adresáři ..\db\bin. Jak vidíte, dané soubory jsou zdvojené. Jedna verze je typu s koncovkou *.bat pro uživatele Windows OS a druhá bez koncovky pro sh pro uživatele Linux.

  • db\bin\setEmbeddedCP - Použitím setEmbeddedCP skriptu nakopírujeme Derby libs (derby.jar, derbytools.jar, derbyoptional­tools.jar) pro vestavěné (embedded) prostředí do CLASSPATH. Co znamená vestavěné prostředí si řekneme později.
  • db\bin\setNetworkServerCP - Vloží potřebné libs (derbynet.jar) pro spuštění Derby DB Serveru do CLASSPATH.
  • db\bin\setNetworkClientCP - Vloží potřebné libs (derbyclient.jar, derbytools.jar and derbyoptional­tools.jar) pro spojení klienta s Derby DB Serverem do CLASSPATH.
  • db\bin\startNetworkServer - Spustí Derby DB server na místním stroji.
  • db\bin\stopNetworkServer - Ukončí Derby DB server na místním stroji.

První tři příkazy (skripty) nyní neřešme a ani je v kurzu nevyužijeme. Zajímají nás pouze poslední dva příkazy pro spuštění a ukončení. Při spuštění je vhodné je spustit jako administrátor, předejdete tak problémům s právy přístupu.

Spustit DerbyDB lze několika způsoby. Nejjednodušší je v commanderu spustit startNetworkServer, kdy se nám objeví okno, nebo spustit příkazový řádek (cmd.exe) opět se stejným příkazem a DerbyDB se nám spustí. Defaultně tento databázový server poběží na portu 1527. Takto spuštěná databáze nejen, že běží na lokálním portu, ale neumožňuje jiný přístup klienta, než z localhostu. Abych byl přesný, spojení se provede, ale Derby DB Server po vyhodnocení příchozího spojení přes LAN, MAN a WAN provede odpojení. Pokud jsme si nastavili systémovou proměnnou PATH na cestu k \db\bin, pak jsou příkazy pro spuštění a vypnutí databázového serveru přístupné odkudkoliv a není nutné řešit cestu.

Spuštění Apache Derby - Derby DB

Ukončení lze provádět více způsoby. Jako první a nejjednodušší je opět spustit v commanderu stopNetworkServer, alternativně funguje i násilné přerušení přes příkazovou zkratku CTRL + C. Ovšem v tomto případě je nutné mít aktivní okno, které provádí výpis spuštěné databáze.

Ukončení databáze Apache Derby - Derby DB

POZN. CHYBA 6828 - SPUŠTĚNÍ DERBY DB U ČESKÉ LOKALIZACE OPERAČNÍHO SYSTÉMU

Přestože mám rád projekty pod Apache, tak i zde se ukazuje, že není všechno zlato, co se třpytí. Slabina Open Source se zde ukazuje v přímém přenosu. Derby DB má nahlášenou chybu 6828, která neumožňuje spustit Derby DB pod českou lokalizací OS. Pokud máte anglickou verzi Windows, problém se vás netýká. Přestože je chyba FIXED, tak se pořád projevuje u všech verzí dané DB 10.9, 10.10, 10.11, 10.12, 10.13. Pokud danou databázi chceme spustit, tak nám nezbývá nic jiného, než chybu obejít. To provedeme tím, že zrušíme českou lokalizaci a databázi budeme spouštět v anglické verzi. Upravíme spouštěcí skript (startNetworkServer.bat) a to tak, že zde přidáme tento řádek set DERBY_OPTS=-Duser.language=en.

Chyba6828 v Apache Derby - Derby DB

Spuštění na nedefaultním portu

Samozřejmě DerbyDB umožňuje spustit databázový server i na jiném, než defaultním portu. Do příkazového řádku (cmd.exe) vložíme příkaz startNetworkServer -p 3388, což spustí Derby DB Server na portu 3388. Analogicky, pokud změníte číslo portu v příkazu, tak změníte reálné číslo portu. Jak vidíte, na výpisu programu CurrPorts tak skutečně na portu 3388 nasloucháme.

Spuštění Apache Derby na jiném portu - Derby DB

Ovšem pokud chceme ukončit Derby Server běžící na jiném portu, je nutné jej ukončit přes přerušení CTRL + C nebo přes nově vytvořený příkazový řádek a zadáním příkazu stopNetworkServer -p 3388, kde číslo v parametru je číslo vašeho portu.

Ukončení Apache Derby na jiném portu - Derby DB

Spuštění pro přístup ze sítě

Spuštění s umožněním připojení přes sít (LAN, MAN, WAN) je nutné nastavit opět přes příkazový řádek. Vložíme příkaz startNetworkServer -h 192.168.123.9, kde parametrem h je vaše IP adresa, na které server poběží nebo jméno domény, pod kterou je spuštěn. Ovšem v tomto případě přestane být databáze přístupná z localhostu.

Spuštění Apache Derby přes síť - Derby DB

Další možnosti spuštění DerbyDB serveru jsou:

  • startNetworkServer -h moje.domena.cz - umožníme přistupovat k db z dané domény
  • startNetworkServer -h 0.0.0.0 - umožníme přistupovat k db z localhostu i ze sítě (LAN, MAN, WAN)
  • `startNetworkServer -h moje.domena.cz -p 4444** - umožníme přistupovat k db z dané domény na portu 4444
  • `startNetworkServer -h 0.0.0.0 -p 4444** - umožníme přistupovat k db z localhostu i ze sítě (LAN, MAN, WAN) na portu 4444

Spuštění IJ nástroje (příkazu)

IJ nástroj je velmi důležitý pro práci s Derby DB z pohledu administrátora. Prakticky vše lze řešit v Derby buď přes IJ nástroj nebo programátorsky přes JDBC. IJ nástroj lze spustit bez spuštění databáze a dokonce při provádění napojení si databázi spustí zcela sám. Spuštění je velice primitivní a každý příkaz je nutné ukončit středníkem ;. Na obrázku dole jsme si v prvním případě provedli ukončení nástroje ij a v druhém případě jsme provedli výpis nápovědy.

Spuštění IJ pro Apache Derby - Derby DB

V následujícím kvízu, Kvíz - Nastavení, zapnutí a vypnutí Derby DB v Javě, si vyzkoušíme nabyté zkušenosti z předchozích lekcí.


 

Předchozí článek
Derby DB - Informace, nastavení prostředí
Všechny články v sekci
Derby DB
Přeskočit článek
(nedoporučujeme)
Kvíz - Nastavení, zapnutí a vypnutí Derby DB v Javě
Článek pro vás napsal Robert Michalovič
Avatar
Uživatelské hodnocení:
3 hlasů
Programuji převážně v Javě SE,EE a trochu nativním C a CUDA. více viz.https://cz.linkedin.com/in/robert-michalovic
Aktivity