Ich würde Sie raten Vorteil aus der Tatsache zu ziehen, dass Derby sowohl als Embedded Server (dh läuft in dem App-Server JVM) und Netzwerk-Server (dh Service Client-Anfrage Port 1527 auf dem Standard adressierte ausführen kann vom lokalen Host). Daher profitieren Sie von den gesteigerten Leistungen des Embedded-Modus und können dennoch Zugriff von z. "ij", um Daten zu verwalten, während der Server läuft, und von anderen Serverinstanzen über TCP/IP mit geeigneten Sicherheitseinstellungen. In dieser Konfiguration startet und stoppt Derby mit dem Anwendungsserver. Keine zusätzlichen Befehle oder expliziten Serverstartcode zum Starten von Derby.
Die Konfiguration wird unten für Glassfish 4 und derby/javaDB 10.10 beschrieben, funktioniert aber in anderen Servern und Versionen ähnlich. Sie müssen in der Tat alle unten angegebenen Pfade anpassen, damit sie mit Ihrer eigenen Installation übereinstimmen.
.1. Machen Sie Derby-Klassen für den allgemeinen Klassenlader des Servers verfügbar, indem Sie derby.jar, derbyclient.jar, derbynet.jar, derbytools.jar hinzufügen. Kopieren Sie die JAR-Datei beispielsweise in die JVM lib/ext Ihrer Serverinstanz, z. in C:\java\J2EESDK7U1\glassfish\domains\domain1\lib\ext
.2. Fügen Sie mithilfe der grafischen Benutzerschnittstelle von glassfish die folgenden zwei Eigenschaften zu Konfigurationen> server-config> JVM-Einstellungen> Registerkarte JVM-Optionen hinzu: -Dderby.drda.startNetworkServer=true
und -Dderby.system.home=C:/java/J2EESDK7U1/glassfish/databases
. Der erste Befehl weist Derby an, im Netzwerkmodus zu lauschen, wenn die eingebettete Engine geladen wird, der zweite liefert den essentiellen Pfad zu Ihren Derby-Datenbanken und der optionalen Datei derby.properties (z. B. mit Ihren Sicherheitseinstellungen in PROD)
.3. Veranlassen Sie, dass der Server beim Start die Klasse org.apache.derby.jdbc.EmbeddedDriver
lädt.Ein Weg, dies zu erreichen, ist zum Beispiel ein EJB mit @Startup
, mit Anmerkungen versehen und dann definiert eine @PostConstruct
kommentierten Methode in der EJB, gleichermaßen:
@PostConstruct
private void startup() {
try { Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
logger.info("Started DERBY in embedded+network mode");
} catch (ClassNotFoundException e) {
... your error handling
}
}
für 6 weitere Start Tipps finden http://blog.eisele.net/2010/12/seven-ways-to-get-things-started-java.html
Dies ist, was ich plante zu tun, da sonst nichts mehr möglich ist. Danke für die Antwort. –
Können Sie ein Beispielskript bereitstellen? – NonlinearFruit