Подключение к БД с веб-сервера Sun

в чем разница между подключением к базе данных, сделанным из автономного кода, и подключением, сделанным из веб-приложения, развернутого на веб-сервере Sun Java.

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

public OracleConnectionPoolWrapper(DBInfo dataSource) throws SQLException { OracleConnectionCacheImpl ora; OracleConnectionPoolDataSource oracleConnectionPoolDataSource = new OracleConnectionPoolDataSource(); oracleConnectionPoolDataSource.setURL(dataSource.getConnectionString()); oracleConnectionPoolDataSource.setUser(dataSource.getUserName()); oracleConnectionPoolDataSource.setPassword(dataSource.getPassword()); ora = новый OracleConnectionCacheImpl (oracleConnectionPoolDataSource); ora.setMaxLimit(dataSource.getPoolSize()); ora.setCacheScheme(1); Соединение con = ora.getConnection();

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

Исключение ввода-вывода: сетевому адаптеру не удалось установить соединение [15/февраля/2010:16:31:31] предупреждение ( 4308): CORE3283: stderr: java.sql.SQLException: исключение ввода-вывода: сетевому адаптеру не удалось установить соединение [15/фев/2010:16:31:31] предупреждение ( 4308): CORE3283: stderr: at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)


person Community    schedule 17.02.2010    source источник
comment
Пожалуйста, уточните, не в состоянии. Пожалуйста, уточните с точки зрения разработчика (кода), а не с точки зрения конечного пользователя. Что именно происходит на уровне кодирования? Что именно происходит не на уровне кодирования? Если есть какие-либо исключения/сообщения/трассировки стека, отредактируйте свой вопрос, чтобы скопировать и вставить их без изменений.   -  person BalusC    schedule 17.02.2010


Ответы (1)


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

person vickirk    schedule 17.02.2010