2016-11-26 4 views
0

Я создал приложение для рабочего стола java с драйвером клиента derby с использованием netbeans 8.1.Derby Database Доступ к локальной сети LAN

Я использовал этот код для подключения к базе данных.

Class.forName("org.apache.derby.jdbc.ClientDriver"); 
Connection conn = DriverManager.getConnection("jdbc:derby://localhost:1527/LibertySchool;create=true;user=liberty;password=liberty"); 
conn.setSchema("LIBERTY"); 
Statement s = conn.createStatement(); 
s.executeQuery("SELECT * FROM USUARIOS"); 
ResultSet rs = s.getResultSet(); 
if (rs.next()) { 
    Login entrar = new Login(); 
    entrar.setVisible(true); 
} 

Автономное приложение работает нормально на компьютере, что он был создан после того, как построить DIST файл имеет app.jar файл и все работает нормально.

Я создал так мало компьютеров-клиентов, чтобы получить доступ к одному и тому же приложению для обновления данных. Я начал сеть дерби на клиентской машине, я также изменил соединение с localhost, чтобы использовать ip-сервер местоположения базы данных приложения.

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

Мне нужно знать, как правильно настроить клиентскую машину, чтобы пользователи могли получить доступ к приложению с помощью базы данных.

Может кто-то попросить дать некоторые подсказки.

ответ

0

Если вы хотите создать соединение клиент-сервер с клиентом на другой машине, чем сервер, вам придется сделать несколько вещей:

  1. Изменение localhost к действительному внешне видимый адрес для сервер. Вы можете использовать IP-адрес или имя хоста, например, 192.168.1.104:1527 или Carlos-Mac-Pro.att.net:1527, но вам нужно будет выяснить правильный сетевой адрес для использования. localhost:1527 будет работать только тогда, когда клиент и сервер находятся на одной машине.
  2. Убедитесь, что ваша сеть разрешает соединения между клиентскими машинами и серверной машиной. В настоящее время большинство машин по умолчанию предотвращают большинство входящих сетевых подключений с других компьютеров в качестве меры безопасности, поэтому вам необходимо настроить брандмауэр серверной машины, а также любые сетевые устройства, которые используются в вашей локальной сети между клиентские машины и серверный компьютер, чтобы разрешать соединения TCP/IP на порту 1527.

Не думаю, что вы хотите переместить папку базы данных дерби на клиентские компьютеры. Это будет совершенно другая архитектура для вашего приложения (встроенный vs client-server). Вот некоторые хорошие справочные материалы о различиях между двумя конфигурациями: https://db.apache.org/derby/docs/10.13/getstart/cgsquck70629.html

+0

Привет, спасибо за ваш ответ, я использую IP-адрес клиента, и приложение выполнялось, но, как я уже упоминал ранее. Я настрою брандмауэр сервера, я этого не сделал, у меня есть имя хоста, но не повезло. благодаря –

Смежные вопросы