2008-12-17 8 views

Antwort

2

Die Embedded Server mode klingt wie, wonach Sie fragen. Es ermöglicht Ihnen, einen Netzwerkserver zu starten, wenn Sie die eingebettete Datenbank starten.

0

Es klingt widersprüchlich, dass Sie Derby im Netzwerk-Server-Modus starten und den integrierten Treiber erhalten möchten. Selbst wenn dies möglich sein sollte, ist es definitiv nicht ratsam. Sie sollten entscheiden, ob Sie Apache Derby im Netzwerkmodus mit dem DRDA oder als eingebetteten Treiber verwenden möchten, und sich an diese Entscheidung halten.

Hier finden Sie eine Anleitung finden, wie den Netzwerktreiber verwenden: http://db.apache.org/derby/papers/DerbyTut/ns_intro.html

0

Irgend jemand korrigiert mich wenn ich falsch bin, werden beide auf separte Ports laufen. Sie können also mit dem richtigen Verbindungsnamen eine Verbindung herstellen, richtig?

4

Sie müssen Derby im "embedded server mode" starten. Wenn Sie Derby bereits im eingebetteten Modus verwenden, können Sie dies aktivieren, indem Sie die erforderlichen Dateien in Ihrem Klassenpfad bereitstellen und anschließend beim Starten der Anwendung eine Handvoll Befehlszeilenargumente angeben.

Stellen Sie zunächst sicher, dass die folgenden JAR-Dateien im Laufzeitklassenpfad der Anwendung enthalten sind.

 derby.jar derbynet.jar 

dann die folgenden Befehlszeilenoptionen auf den Java-Befehl Ihre Anwendung starten verwendet hinzuzufügen. Wenn die Klassendateien fehlen, haben diese Optionen keine Auswirkungen.

-Dderby.drda.startNetworkServer=true 
    -Dderby.drda.portNumber=8011 

Ich bin mit Derby innerhalb eines Servlet von Tomcat gehostet, so habe ich diese Optionen auf die catalina.bat Datei.

Starten Sie Ihre Anwendung und überprüfen Sie die Liste der geöffneten Netzwerk-Sockets.

netstat -an | find "8011" 

Sie sollten jetzt sehen Derby für Verbindungen auf 8011. Sein hört nun möglich, die Datenbank des Client-Treiber mit Derby zu verbinden (derbyclient.jar). Die Anweisungen unter http://docs.oracle.com/javadb/10.3.3.0/adminguide/radminembeddedserverex.html decken diesen Teil ziemlich gut ab.

Es wurde angedeutet, dass Derby in diesem Modus möglicherweise davon abgehalten werden sollte. Ich glaube nicht, dass das der Fall ist. Ihre Anwendung wird weiterhin mit dem eingebetteten Treiber auf die Datenbank zugreifen, während andere Software jetzt mit dem Clienttreiber Zugriff erhält.

+0

hast du mich gerettet. Vielen Dank! – verystrongjoe

0

@pawelocue: Sorry, aber das ist falsch. Die Verwendung des Embedded Server-Modus ist vollkommen in Ordnung und manchmal sehr nützlich. Es ist definitiv nicht entmutigt.