2013-04-01 10 views
0

Я использую H2 для настольного приложения Java Swing.Нет ответа при подключении к базе данных

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

Ссылка: JDBC: h2: TCP: //115.241.34.158: 9092/лев/Компании/1 (2012-2013)/1 (2012-2013 гг); DB_CLOSE_ON_EXIT = FALSE; DB_CLOSE_DELAY = 5; IFEXISTS = TRUE,

Система просто зависает, предоставляя java.sql.DriverManager.getConnection (url, userName, password);

Не выбрасывать никакие исключения (или) любые сообщения.

Он отлично работает в однопользовательском режиме. (без сервера)

Какое будет возможное решение? Пожалуйста посоветуй.

Спасибо и уважением,

I.Murugesan

+1

Где именно вы хотите сохранить файл базы данных (абсолютный каталог)? Как вы запустили сервер? –

+0

Я сохраняю файл базы данных в System.getProperty ("user.dir") + "/" + dbFolderName + "/" + dbName. Наше программное обеспечение имеет две базы данных, а именно «UserDB» и «CompanyDB» соответственно. Обе базы данных должны быть запущены для приложения. Сначала будет запущен «UserDB», и из него будет запущен «CompanyDB». Мы запускаем сервер во время подключения самого UserDB. База данных UserDB хорошо подключена. Проблема заключается только при подключении «CompanyDB». Пожалуйста помоги. – Murugesan

+0

Не могли бы вы отправить код, используемый для запуска H2 TCP-сервера? –

ответ

1

Если запустить сервер TCP без базового каталога, то вы должны использовать другой URL базы данных. Следующий URL базы данных

jdbc:h2:tcp://115.241.34.158:9092/~/Lion/Companies 

означает, что файл базы данных Companies.h2.db хранится в каталоге Lionв пределах текущей домашней директории пользователя. Но если вы используете

jdbc:h2:tcp://115.241.34.158:9092/Lion/Companies/1(2012-2013)/1(2012-2013) 

то файл базы данных 1(2012-2013).h2.db хранится в каталоге Lion/Companies/1(2012-2013) относительно текущей рабочей директории. И рабочий каталог зависит от того, где вы запустили TCP-сервер.

+0

Спасибо за информацию. Да, так мы и имеем. Просьба уточнить, нужно ли нам запускать отдельные серверы для каждой базы данных? Можно ли запустить сервер один раз и установить соединение для двух баз данных с одним и тем же портом? – Murugesan

+0

Один сервер может обслуживать несколько баз данных. Если возможно, следует запустить только один сервер. На сервере есть один порт. –

+0

Тем не менее, я не могу подключиться к базе данных моей компании. Не отвечает после DriverManager.getConnection(). Пожалуйста, предложите мне, как действовать дальше. – Murugesan

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