In diesem Abschnitt finden Sie Anweisungen zur Verwendung der mit Application Server 8.2 gebündelten Java DB-Datenbank.
Sun Java System Application Server 8.2 führt zwei neue asadmin-Befehle zum Starten und Anhalten des Java DB-Netzwerkservers ein.
Mit dem Befehl start-database kann eine Instanz des Java DB-Netzwerkservers gestartet werden:
start-database [--dbhost 0.0.0.0] [--dbport 1527] [--dbhome path/derby] |
Der Standardwert für den Host lautet 0.0.0.0. Dadurch kann Java DB localhost sowie die IP-/Hostnamen-Schnittstellen abhören. Der Wert für die Eigenschaft dbhome ist der Standort der Java DB-Datenbanken. Der Standardwert für den Pfad lautet <appserver_install_dir>/derby.
Der Befehl asadmin stop-database dient zum Herunterfahren einer Instanz des ausgeführten Java DB-Netzwerkservers:
stop-database [--dbhost 0.0.0.0] [--dbport 1527] |
Die im Lieferumfang von Application Server 8.2 enthaltene Java DB-Konfiguration umfasst mehrere nützliche Skripts, die Sie bei der Verwendung von Java DB unterstützen können. Folgende Skripts stehen zur Verwendung im Verzeichnis <appserver_install_dir> /derby/frameworks/NetworkServer/bin zur Verfügung:
startNetworkServer.ksh/bat – Skript zum Starten des Netzwerkservers
stopNetworkServer.ksh/bat – Skript zum Anhalten des Netzwerkservers
ij.ksh/bat — interaktives JDBC-Skripting-Tool
dblook.ksh/bat – Skript zur vollständigen bzw. teilweisen Anzeige der DLL für eine Datenbank
sysinfo.ksh/bat — Skript zur Anzeige der Versionsverwaltungsinformationen in Bezug auf die Java DB-Umgebung
NetworkServerControl.ksh/bat — Skript, das eine Möglichkeit zur Ausführung der Befehle auf der NetworkServerControl -API bietet.
Legen Sie die Umgebungsvariable DERBY_INSTALL so fest, dass sie auf das Verzeichnis <appserver_install_dir>/derby verweist.
Heben Sie die Festlegung der Umgebungsvariablen CLASSPATH auf.
Optional können Sie folgende Eigenschaften festlegen:
Weitere Informationen zu diesen Dienstprogrammen finden Sie in den Derby-Handbüchern zu Tools und Admin.
Dieses Beispiel zeigt, wie mithilfe von Netbeans 5.0 die DLL für eine Tabelle in Pointbase erfasst und dieselbe Tabelle in Java DB erstellt werden kann. Eine weitere Option hierfür besteht in der Verwendung des Commander-Tools und des Befehls unload database:
./startcommander.sh Do you wish to create a new Database. (Yes (Y) or No (N))? [default: N]: Enter product to connect with: (Embedded (E) or Server (S))? [default: E]: e Enter driver to use? [default: [com.pointbase.jdbc.jdbcUniversalDriver]: Enter database URL? [default: [jdbc:pointbase:embedded:sample]: Enter Username? [default: PBPUBLIC]: Enter Password? [default: PBPUBLIC]: PointBase Commander 5.2 ECF build 294 size restricted version EMBEDDED Interactive SQL command language. SunOS/5.9 (C) Copyright 2004 DataMirror Mobile Solutions, Inc. All rights reserved. Licensed to: Sun_customer_demo_use For commercial version contact PointBase at: pointbase.com PHONE: 1-877-238-8798 (US & CANADA) 1-408-961-1100 (International) WEBSITE: www.pointbase.com SQL>unload database sampledb.sql; SQL> unload database sampledb.sql; SQL> 13 Row(s) Unloaded. (PBPUBLIC.CUSTOMER_TBL) SQL> 4 Row(s) Unloaded. (PBPUBLIC.DISCOUNT_CODE_TBL) SQL> 30 Row(s) Unloaded. (PBPUBLIC.MANUFACTURE_TBL) SQL> 11 Row(s) Unloaded. (PBPUBLIC.MICRO_MARKETS_TBL) SQL> 9 Row(s) Unloaded. (PBPUBLIC.OFFICE_TBL) SQL> 4 Row(s) Unloaded. (PBPUBLIC.OFFICE_TYPE_CODE_TBL) SQL> 15 Row(s) Unloaded. (PBPUBLIC.ORDER_TBL) SQL> 6 Row(s) Unloaded. (PBPUBLIC.PRODUCT_CODE_TBL) SQL> 30 Row(s) Unloaded. (PBPUBLIC.PRODUCT_TBL) SQL> 10 Row(s) Unloaded. (PBPUBLIC.SALES_REP_DATA_TBL) SQL> 10 Row(s) Unloaded. (PBPUBLIC.SALES_REP_TBL) SQL> 52 Row(s) Unloaded. (PBPUBLIC.SALES_TAX_CODE_TBL) SQL> 12 Table(s) Unloaded. SQL> quit;
Die Ergebnisse der Ausführung des Befehls unload database werden im oben stehenden Beispiel in die Datei sampledb.sql geschrieben. Die Datei sampledb.sql enthält die gesamte, für die Erstellung der erforderlichen Tabellen und Indizes nötige DDL. Außerdem enthält sie die DML, die zum Wiedereinfügen der Daten in die Datenbank erforderlich ist. Der Commander-Befehl RUN ist für den Import der Daten in eine andere Pointbase-Datenbank gedacht, unter Verwendung des generierten Skripts. Hier ein Beispiel für INSERT-Anweisungen und die zugehörigen Daten in der generierten Datei:
INSERT INTO "ADVENTURE"."CATEGORY" ( "CATID", "LOCALE", "NAME", "DESCRIPTION", "IMAGEURI" ) VALUES( ?, ?, ?, ?, ? ); { 'ISLAND ','en_US','Island Adventures','Experience an island / paradise in a way fit for your needs.','Island_Adventures.gif' 'JUNGLE ','en_US','Jungle Adventures','Experience a jungle / paradise in a way fit for your needs.','Jungle_Adventures.gif' 'MOUNTAIN ','en_US','Mountain Adventures','Experience an / elevated paradise with a view.','Mountain_Adventures.gif' 'ORBITAL ','en_US','Orbital Adventures','Experience a vacuum / paradise with a beautiful view and where no one can hear you scream.', / 'Space_Adventures.gif' 'WESTERN ','en_US','Western Adventures','Enjoy the Wild West. / ','Western_Adventures.gif' 'SOUTH_POLE ','en_US','South Pole Adventures','Experience a / frozen paradise in a way fit for your needs.','SouthPole_Adventures.gif' };
Die über den Commander-Befehl unload database erstellte Datei kann problemlos so bearbeitet werden, dass sie nur aus der DDL besteht (beispielsweise ist es einfach, ein Programm zu schreiben, das die insert-Anweisungen verarbeitet). Als einfaches Beispiel wenden wir den Befehl "unload database" auf die sample-Datenbank an und bearbeiten anschließend das generierte Skript, indem wir folgende Änderungen vornehmen:
Entfernen des Ausdrucks Organisations-Heap vom Ende aller CREATE Table-Anweisungen
Entfernen des Befehls COMMIT
Ändern des booleschen Datentyps in smallint
Entfernen aller INSERT-Anweisungen und zugehörigen Daten
Als nächstes wird ein einfaches Ant-Skript zur Ausführung der DLL mithilfe des sql -Ziels verwendet. Schließlich wird dasselbe Experiment für die Datenbank sun-appserv-samples wiederholt, wobei folgende zusätzliche Änderungen an der generierten SQL-Datei erforderlich sind:
Vornehmen aller Änderungen wie oben für die Beispieldatenbank ("sample") beschrieben.
Entfernen der Befehle vom Typ create user
Entfernen der Befehle vom Typ SET PATH
Ändern der Dezimalgenauigkeit von 38 auf Max. von 31
Ändern der Gleitkommatgenauigkeit von 64 auf Max. von 52
Das Schlüsselwort SPECIFIC für CREATE PROCEDURE wird derzeit nicht unterstützt
Entfernen der Befehle vom Typ GRANT
Um die Pointbase-Java-Vorgänge für die Zusammenarbeit mit Java DB zu konvertieren, sind einige Änderungen am Java-Code sowie an den CREATE PROCEDURE-Anweisungen erforderlich. Informationen zur Erstellung der Java DB-Jav-Vorgänge finden Sie im Derby-Referenzhandbuch. Unterstützung für den Datentyp Boolesch sollte in der nächsten Version von Java DB vorliegen.