Как подключиться к базе данных, настроенной в glassfish, из внешнего Java-приложения? - PullRequest
0 голосов
/ 20 июля 2010

Название в значительной степени говорит само за себя, но вот немного предыстории.

У нас есть база данных, сконфигурированная в glassfish, к которой обращается веб-сайт, развернутый на glassfish, мы также обращаемся к базе данных из внешнего java-приложения, мне пришло в голову, что это может быть несколько неэффективно, так как мы открываем довольно много соединений с базой данных из наше внешнее приложение. Поэтому мне было интересно, можем ли мы каким-то образом получить доступ к его базе данных через пул соединений Glassfish?

Заранее спасибо.

Пирс

Ответы [ 5 ]

0 голосов
/ 20 июля 2010

Другой вариант - добавить веб-сервис к вашему объекту доступа к данным Glassfish.

После этого вы можете получить доступ к базе данных с помощью вызовов SOAP или REST.

0 голосов
/ 20 июля 2010

Ну, я отвечаю на свой вопрос, и это не блестящий ответ, но он действительно отвечает требованиям моего вопроса.

То, что вы можете сделать, это подключиться к EJB из внешнего Java-приложения. Если бин предоставляет доступ к вашей базе данных, то при ее использовании вы будете использовать пул соединений, предоставляемый glassfish.

Вы можете найти информацию о том, как это сделать

здесь - https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html

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

0 голосов
/ 20 июля 2010

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

0 голосов
/ 20 июля 2010

Вам придется попробовать это.

http://javahowto.blogspot.com/2006/08/access-glassfish-datasource-remotely.html предполагает, что можно искать пул соединений через JNDI из автономного клиента.Фактический пример кода клиента приведен на http://javahowto.blogspot.com/2006/08/access-jboss-datasource-remotely-from.html#client

0 голосов
/ 20 июля 2010

Это было бы возможно, только если ваше внешнее приложение работало на той же виртуальной машине, что и glassfish.Слово «внешний» говорит: нет, не возможно.

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

...