HTTP 400 Bad Request when accessing Oracle XE/Apex from the Internet
692035Mar 22 2009 — edited Mar 26 2009I have Oracle Express Edition upgraded to Apex 3.2. I can access everything (SQL prompt, Apex HTTP) from my local machine. I have configured the server for remote access on a non-default (not 8080) port.
I have executed: exec dbms_xdb.setListenerLocalAccess(false);
I can access the server using:
http://coyote:9977/apex (brings me to Application Express Administration Services login screen)
(where "coyote" is the local machine name of my Windows Vista box, where the Oracle/Apex server is installed.)
But when I try:
http://internet_server_name:9977/apex
(where "internet_server_name" is the internet DNS name visible of my machine visible from the internet.)
I get "HTTP 400 Bad Request"
I know the request is hitting the Oracle Listener (getting through firewalls, cable modem router, etc) since the http attempt causes the entry:
20-MAR-2009 20:36:53 * http * (ADDRESS=(PROTOCOL=tcp)(HOST=68.189.244.22)(PORT=52540)) * handoff * http * 0
to be made in the C:\oraclexe\app\oracle\product\10.2.0\server\network\log\listener.log
An attempt using the local (Windows) machine name makes a similar entry in the listener log:
20-MAR-2009 20:47:35 * http * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.7)(PORT=52811)) * handoff * http * 0
This seems like a security issue of some kind (is the server dropping a request from "outside" the local domain?)
I'm new to Oracle so I am not familiar with how to debug this sort of connectivity issue. In case it helps:
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
STATUS of the LISTENER
--------------------------------------------------------------------------------
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
Start Date 20-MAR-2009 19:27:00
Uptime 0 days 1 hr. 30 min. 59 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Default Service XE
Listener Parameter File C:\oraclexe\app\oracle\product\10.2.0\server\network\admin\listener.ora
Listener Log File C:\oraclexe\app\oracle\product\10.2.0\server\network\log\listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC_FOR_XEipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=coyote)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=coyote)(PORT=9977))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
Instance "xe", status READY, has 1 handler(s) for this service...
Service "XE_XPT" has 1 instance(s).
Instance "xe", status READY, has 1 handler(s) for this service...
Service "xe" has 1 instance(s).
Instance "xe", status READY, has 1 handler(s) for this service...
The command completed successfully
Any help appreciated,
john