В чем разница между подключением к базе данных, выполненным из автономного кода, и подключением из веб-приложения, развернутого на веб-сервере Sun Java.
Код, используемый для подключения к базе данных, при отдельном запуске соединение с БД успешно. Но тот же код внутри моего веб-приложения при развертывании не может установить соединение с базой данных. Доступ к БД осуществляется через VPN.
public OracleConnectionPoolWrapper (источник данных DBInfo)
выдает 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-соединение установлено, он успешно подключается к базе данных. Но веб-приложение, имеющее тот же код при развертывании на веб-сервере Java Java и установленном VPN-соединении, не может подключиться к базе данных. Я получаю следующую ошибку
Io исключение: сетевой адаптер не может установить соединение
[15 февраля / 2010: 16: 31: 31] предупреждение (4308): CORE3283: stderr: java.sql.SQLException: Io исключение: сетевому адаптеру не удалось установить соединение
[15 февраля / 2010: 16: 31: 31] предупреждение (4308): CORE3283: stderr: at oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:112)