ColtsFoot has asked for the wisdom of the Perl Monks concerning the following question:

For reasons beyond my control I have to move from DBD::ODBC Other firewall restrictions are that I can't talk to the Oracle listener, which exists on the Internal network, on port 1521.
I've solved this problem by getting the Firewall admin to set up a rule such that requests on port 64010 from the DMZ --> Internal network are redirected to the Oracle server on port 1521

Looking in the listener.log file on the Oracle server I can see that the request is arriving OK with all the correct credentials

Using some packet monitoring software I can also see the packect response from the Oracle server going back through the firewall to the correct machine on the DMZ.

Now my question is that the DBI->connect() then seems to be trying to reply on some random port in the 3XXX --> 5XXX range. Not unreasonably the FW admin is loathed to open all these ports (indeed some are already in use)

Is it possible to specify in code or configuration file which ports will be used on these subsequent transmissions?

Replies are listed 'Best First'.
Re: TCP Ports used by DBD::Oracle
by jhourcle (Prior) on Feb 16, 2009 at 15:58 UTC

    It should be a function of the database -- basically, the listener is there to tell it which port to talk to for each individual database that might be running on that system. It's been a few years since I've had to manage an Oracle server, so my memory's a bit foggy.

    I did find a guide on 11g with links on how to move some of the ports, however: http://download.oracle.com/docs/cd/B28359_01/install.111/b32002/app_port.htm. You might need to find something similar for the version you're using. I also can't recall of net8 was supposed to solve these issues (I took the course but never used it), but I think it explained what the various steps were for establishing a connection

      jhourcle,

      Many thanks for the link I will investigate further