Как я могу запустить Oracle XE только на локальном хосте? - PullRequest
3 голосов
/ 13 февраля 2011

Есть ли способ настроить установку XE в Windows, чтобы использовать только порты на интерфейсе localhost, а не внешние интерфейсы? Я хотел бы запустить его для разработки, чтобы никто другой не смог подключиться к моему экземпляру.

Я попытался изменить файлы listener.ora и tnsnames.ora, изменив записи 'HOST =' на localhost. В моем файле hosts есть следующая строка:

127.0.0.1 localhost

Когда я сделал это и перезапустил службы, apex перестает работать (он не прослушивает порт 8080), и я не могу подключиться к базе данных с помощью JDBC. Я получаю следующую ошибку с JDBC:

Exception in thread "main" java.sql.SQLException: Listener refused the connection
with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect
descriptor
The Connection descriptor used by the client was:
localhost:1521:XE

Я должен отметить, что и apex, и JDBC работают нормально, если я изменяю записи 'HOST = обратно на имя хоста моей машины и перезапускаю службы.

1 Ответ

6 голосов
/ 13 февраля 2011

Для этого есть две части (потому что есть две «технологии», обслуживающие разные порты).

Во-первых, прослушиватель для порта базы данных 1521. Вы используете параметр SQLNET.ORA (tcp.invited_nodes) в качестве мягкого межсетевого экрана, поэтому слушатель будет игнорировать другие узлы.

Во-вторых, для шлюза 8080 PL / SQL вам необходимо использовать DBMS_XDB.SETLISTENERLOCALACCESS, как описано здесь

...