Jump to Navigation

OEM Database Control: change HTTP(S) listen port

Symptoms

The port number on which Oracle Enterprise Manager Database Control is listening for HTTP(S) connections is not what you want, especially if more than one database instance is present on your Oracle database server.

Solution

You can change the port number, provided you have command-line access on the database server as the user Oracle was installed with. This will cause no downtime on the database, though Enterprise Manager itself will need to be restarted.

Assumptions

  • You are running Oracle database 11g1
  • You are running on Linux or Unix2
  • You have not implemented Grid Control, but are using the out of the box version of Oracle Enterprise Manager (also known as Database Control).
  • You have access to the Oracle server and can log in as the user Oracle was installed with (usually: user oracle).

Changing the other ports beside the HTTP(S) port on which the web interface listens is described elsewhere on this site. Changing the protocol from HTTP to HTTPS or vice versa is also described in its own article.

Theory

If you create a new database instance and choose to add Database Control for local management3 you will get a web-based management console for just this database instance. It actually consists of several parts, just like the full-blown Grid Control option:

  • The database console (dbconsole)
    The front end, among which the web server
  • The agent (emagent)
    The agent gathers (some of) the data displayed. It is automatically started by the database console.
  • The repository
    This will be created under the SYSMAN schema

Both the agent and the database console use a TCP port to listen to4. The database console port is the port used to access the web front end of Enterprise Manager. That is the only port that needs to be available outside.

Procedure

To get the currently assigned port use the following:

# You should probably be user oracle
# Replace SID with the SID of your database
ORACLE_SID=SID emctl status dbconsole

This will print an URL that can be used to access the database console, for example:

https://machine.example.com:1158/em/console/aboutApplication

In this case, you have the dbconsole listening on port 1158 and using HTTPS.

To change the port number, try:

# You should probably be user oracle
# Replace SID with the SID of your database
# Replace PORT with the port you want dbconsole to listen on
emca -reconfig ports -DBCONTROL_HTTP_PORT PORT -SID SID

This will automatically restart Enterprise Manager. Do not specify a port below 1024 on Linux or Unix systems5.

  • 1. This procedure will probably also work on 10i or 12c, but has not been tested
  • 2. This procedure will probably also work on Windows, but has not been tested
  • 3. In dbca, this is step 4
  • 4. Actually, the database console uses a second port for RMI calls and sometimes a third for JMS
  • 5. Ports with numbers below 1024 can only be bound to by the root user


Technical_article | by Dr. Radut