Как запустить дерби в режиме сетевого сервера и получить встроенное соединение? - PullRequest
6 голосов
/ 17 декабря 2008

Я просто хочу знать, как я могу запустить дерби в режиме сетевого сервера и все еще иметь возможность получить встроенное соединение?

Спасибо.

Ответы [ 5 ]

4 голосов
/ 25 марта 2014

Вам необходимо запустить Derby в «режиме встроенного сервера». Если вы уже используете Derby во встроенном режиме, это можно включить, указав необходимые файлы в вашем classpath и указав несколько аргументов командной строки при запуске приложения.

Сначала убедитесь, что следующие jar находятся в пути к классам приложения.

     derby.jar derbynet.jar

Затем добавьте следующие параметры командной строки в команду Java, используемую для запуска вашего приложения. Если файлы классов отсутствуют, эти параметры не будут действовать.

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

Я запускаю Derby из сервлета, размещенного на Tomcat, поэтому я добавил эти опции в файл catalina.bat.

Запустите приложение и проверьте список открытых сетевых сокетов.

    netstat -an | find "8011"

Теперь вы должны увидеть, как Derby прослушивает соединения на 8011. Теперь возможно подключиться к базе данных с помощью клиентского драйвера Derby (derbyclient.jar). Инструкции на http://docs.oracle.com/javadb/10.3.3.0/adminguide/radminembeddedserverex.html довольно хорошо охватывают эту часть.

Намекнули, что запуск Дерби в этом режиме не рекомендуется. Я не верю, что это так. Ваше приложение продолжит доступ к базе данных с помощью встроенного драйвера, в то время как другому программному обеспечению теперь разрешен доступ с использованием драйвера клиента.

2 голосов
/ 17 декабря 2008

Режим Встроенный сервер звучит так, как вы просите. Позволяет запускать сетевой сервер при запуске встроенной базы данных.

0 голосов
/ 28 марта 2014

@ pawelocue: Извините, но это неправильно. Использование режима встроенного сервера совершенно нормально и иногда очень полезно. Это определенно не обескураживает.

0 голосов
/ 04 мая 2011

Кто-то поправит меня, если я ошибаюсь. Оба будут работать на отдельных портах. Таким образом, вы можете подключиться к нужному, используя правильное имя_соединения, верно?

0 голосов
/ 18 марта 2009

Звучит противоречиво, что вы хотите запустить дерби в режиме сетевого сервера и получить встроенный драйвер. Даже если это возможно, это определенно не рекомендуется. Вы должны решить, хотите ли вы использовать Apache Derby в сетевом режиме с использованием DRDA или в качестве встроенного драйвера, и придерживаться этого решения.

Здесь вы найдете руководство по использованию сетевого драйвера: http://db.apache.org/derby/papers/DerbyTut/ns_intro.html

...