Derby は組み込みサーバー(つまり、アプリケーション サーバー JVM で実行) とネットワーク サーバー(つまり、ローカル ホストからデフォルト ポート 1527 にアドレス指定されたクライアント リクエストを処理する) の両方として実行できるという事実を利用することをお勧めします。したがって、組み込みモードのパフォーマンス向上の恩恵を受けながら、サーバーの実行中にデータを管理するために "ij" などからアクセスしたり、適切なセキュリティ設定を使用して TCP/IP を介して他のサーバー インスタンスからアクセスしたりできます。その構成では、Derby はアプリケーション・サーバーと一緒に始動および停止します。derby を起動するために、追加のコマンドや明示的なサーバー起動コードは必要ありません。
Glassfish 4 および derby/javaDB 10.10 の構成について以下に説明しますが、他のサーバーおよびバージョンでも同様に機能します。実際、以下のすべてのパスを自分のインストールに合わせて調整する必要があります。
.1. derby.jar、derbyclient.jar、derbynet.jar、derbytools.jar を追加して、サーバーの「共通」クラス・ローダーで derby クラスを使用できるようにします。jar のインスタンスをサーバー インスタンスの JVM lib/ext にコピーします。C:\java\J2EESDK7U1\glassfish\domains\domain1\lib\ext
.2. glassfish 管理 GUI を使用して、次の 2 つのプロパティを [構成] > [server-config] > [JVM 設定] > [JVM オプション] タブに追加し
-Dderby.drda.startNetworkServer=true
ます
-Dderby.system.home=C:/java/J2EESDK7U1/glassfish/databases
。1 つ目は、組み込みエンジンがロードされたときにネットワーク モードでリッスンを開始するように Derby に指示し、2 つ目は、Derby データベースとオプションの derby.properties ファイル (たとえば、PROD のセキュリティ設定) への必須パスを提供します。
.3. org.apache.derby.jdbc.EmbeddedDriver
サーバーが起動時にクラスをロードするように手配します。これを実現する方法は、たとえば、EJB に でアノテーションを付けてから、EJB でアノテーション付きメソッドを@Startup
定義すること@PostConstruct
です。
@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
}
}
その他の 6 つのスタートアップのヒントについては、http://blog.eisele.net/2010/12/seven-ways-to-get-things-started-java.htmlを参照してください。