Installer Unable To Use Non-default Non-Primary Network Card (NIC) On A Machine With Multiple Network Cards (NICs) (Doc ID 1388148.1)

Last updated on MARCH 08, 2017

Applies to:

Oracle Containers for J2EE - Version: and later   [Release: AS10gR3 and later ]
Information in this document applies to any platform.


According to the installation documentation for 10.1.3 :


..it is possible to do an install on a machine with multiple network cards.

- However, this mechanism does not work.

If you install on a machine with two network interface cards, some components of the finished install
 are bound to the correct card one, and some do not, leading to an unusable install. 
In the documentation referred to above, In section: 
  "2.11.2  Installing on Multihomed (Multi-IP) Computers" 
  It clearly states: 
  2.11.2 Installing on Multihomed (Multi-IP) Computers 
  You can install Oracle Application Server on a multihomed computer. A 
  multihomed computer is associated with multiple IP addresses. This is 
  typically achieved by having multiple network cards on the computer. Each IP 
  address is associated with a hostname; additionally, you can set up aliases 
  for the hostname. By default, Oracle Universal Installer uses the 
  ORACLE_HOSTNAME environment variable setting to find the hostname. If 
  ORACLE_HOSTNAME is not set and you are installing on a computer 
  that has multiple network cards, Oracle Universal Installer determines the 
  hostname by using the first name in the /etc/hosts file. 
  Clients must be able to access the computer using this hostname (or using 
  aliases for this hostname). To check, ping the hostname from the client 
  computers using the short name (hostname) 
  --> this mechanism does not work  (see the other related bug below.) 

Using various other means to try to force the installer to use the right card also do not work, including:

1) Setting these environment variables prior to the install:

export ORACLE_HOSTNAME= testmachine1407t.domain.com 
export VIRTUAL_HOST_NAME= testmachine1407t.domain.com 
export OUI_HOSTNAME= testmachine1407t.domain.com 

2) Changing /etc/hosts so that the primary card is the first line of /etc/hosts

3) Running the installer with an extra 'guarantee' attached : 
  ./runInstaller OUI_HOSTNAME=testmachine1407t.domain.com 


You can tell fairly quickly that the mechanism has failed by going to the application server control console, machine:port/em  -
this shows on the first page the hostname as the CORRECT one selected by one of the methods above.

however if you then click on the home instance,  the 'host' is listed as the WRONG hostname, i.e. the primary host associated with the 
primary network card that you do not want.

This becomes a problem when somebody tries to connect to application server via, for example, Jdeveloper and tries to deploy an application on the app server target:
JDeveloper connects to the opmn port of AS, which is the proper address (on the secondary network card) of that oc4j instance:
Unfortunately, opmn then returns the port for the container in question, with the wrong address, so deployment then fails. 
If the machine is also part of a cluster, which entails both machines knowing each other via a unique IP in /etc/hosts and can *access* each other via distinct physical 
hostname and opmn port, then this limitation means that you cannot administer them as a cluster. 


Therefore, the installer does in fact use the environment variables listed above, but not fully.

To clarify the role if these environment variables, briefly:

1. If you pass both ORACLE_HOSTNAME and OUI_HOSTNAME from commandline/responsefile 
   -> The value of ORACLE_HOSTNAME & OUI_HOSTNAME is set to the same as ORACLE_HOSTNAME 

2. If you pass ORACLE_HOSTNAME from commandline/responsefile and no OUI_HOSTNAME 
   -> The value of ORACLE_HOSTNAME & OUI_HOSTNAME is set to the same as ORACLE_HOSTNAME
3. If you dont pass ORACLE_HOSTNAME and pass  OUI_HOSTNAME from commandline/responsefile 
   -> The value of ORACLE_HOSTNAME & OUI_HOSTNAME is set to the same as OUI_HOSTNAME 

4. If you dont pass ORACLE_HOSTNAME and dont pass OUI_HOSTNAME 
   -> The value of ORACLE_HOSTNAME & OUI_HOSTNAME is set to the default host name - (the host name of the machine.) 


Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms