|
When a user attempts a connection to the SQL*Net listener, it responds with a message containing a randomly generated port for the client to connect to for subsequent data transfers. Since this message is specific to the SQL*Net protocol, Microsoft Proxy Server alone cannot dynamically connect the client's subsequent connection attempt to the SQL*Net server.
Surrogate Socket on the other hand, is an application gateway. When properly configured, it inspects the listener response and dynamically redirects the client's subsequent connection attempt to the randomly generated port supplied by the SQL*Net listener. To set up Surrogate Socket for SQL*Net, you first need to define a mapping as shown below:
|
Protocol |
Listen Address |
Listen Port |
Connect Address |
Connect Port |
|
TCP |
Proxy server external address |
1526 |
Internal SQL*Net server IP address |
1526 |
The mapping shown above assumes your SQL*Net listener is using port 1526 (the default). SQL*Net may be configured to use a different port (or multiple ports). To find out, you can look at the TNSNAMES.ORA file on a working local client or the server itself.
After adding the mapping, you must also instruct Surrogate Socket to allow SQL*Net connections on the mapping. To do this, add the listener port (1526 by default) to the SQL*Net listeners list on the Protocol tab of the Surrogate Socket Service Control program as show below:

If your Oracle SQL*Net server is configured to use multiple listeners, simply repeat these steps for each listener port.
After making these changes, you must stop and then restart the Surrogate Socket service. You may also want to temporarily set the logging level to 2-Sockets for diagnostic purposes.
Finally, give your external SQL*Net clients the external IP address of the proxy to connect to.
Also, if you are using Packet filtering, you must define a packet filter to allow ports 1526 and 1500 to your proxy server's default external IP addresses.
|