в чем разница между подключением к базе данных, сделанным из автономного кода, и подключением, сделанным из веб-приложения, развернутого на веб-сервере 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)