All I am having a problem as follows. The database server is Windows NT4 SP6. Database version 126.96.36.199 (pathes 1 - 5). The machine resides between two firewalls. I can connect to the machine using SQL plus from a the local machine, or from a machine in the same segment of the network (between the two firewalls). Howerver when I try an connect from a machine that is outside this segment I get an ORA-12203 message. I can view the firewall logs and I call back seems to be generating random ports. The listener is listening on port 1526.
I had the same problem earlier but now i fixed this. I found some documentation on metalink.
Oracle listener will listen the client request through firewall because 1521 or 1526 ports are open in firewall from client to server but since oracle generates random port fro return and could not be defined in firewall.
USE_SHARED_SOCKET will take care of this issue. The only disatvantage with this is whenever listener restarts then Oracle will loose every request received from client prior to restart.
On NT side
add USE_SHARED_SOCKET value is TRUE in ORACLE HOME ( N : 0,1,2 etc.. Mostly it should be 0 ) registry.
I have already set that value in the registry (use_shared_socket reg_sz type = TRUE). Also found a document that suggested set an MTS_DISPATCHER value in the init.ora file (we are using decicated server) that would list the ip address and port to resond on.
Both of these are in place and I'm still gettint ORA-12203 from outside the firewall.
I found the answer in Doc ID:124140.1. I placed the USE_SHARED_SOCKET registry seting in the wrong place. In version 8.0.x the setting was in the software\oracle hive location. With 8i it is in the software\oracle\homeX location.