Multi-Homed Hosts
A multi-homed host is a computer that has multiple IP addresses to connected networks (it is physically connected to multiple data links that can be on the same or different networks).
In situations where the server hosting SuperSTAR is multi-homed (has more than one network adapter, and thus more than one IP address), some additional configuration steps are necessary to ensure that SuperSTAR clients can communicate with SuperSERVER:
Step 1 - Check IP Addresses
IP addresses are associated with network adaptors. To determine which IP addresses are in use on a particular machine, open a Windows command prompt and use the command ipconfig /all
In the following example, there are two physical adaptors: one is designated as private and has the address 10.181.97.31; the other adaptor is designated as public and has the address 184.106.79.21.
Step 2 - Configure the IP Address for SuperADMIN
Once you have confirmed the IP addresses, you need to set up the SuperADMIN IP addresses in the SuperADMIN batch file (located at C:\ProgramData\STR\SuperADMIN\server\server.bat by default) and in the configuration file jacorb.properties. (located at C:\ProgramData\STR\SuperADMIN\server\config\etc\jacorb.properties by default).
- Open C:\ProgramData\STR\SuperADMIN\server\server.bat in a text editor.
- Add the public IP address of the SuperSERVER host to the Java command that starts SuperADMIN:
Locate the following section, which is the Java command that starts SuperADMIN:
CODEif %waccess% EQU 1 ( "%JAVA_CMD%" ^ "-Dstr.config.server.jasdb.location=%JASDB_HOME%" ^ "-Dpidfile.path=%SA_PROGRAM_DATA%\data\play\play.pid" ^ "-Dhttp.port=9000" ^ "-Djacorb.home=%SA_PROGRAM_DATA%\config" ^ "-Djava.endorsed.dirs=%SA_PROGRAM_FILES%\lib\endorsed" ^ -Dfile.encoding=UTF8 ^ ...
As shown here, there are a series of parameters that are passed to SuperADMIN. You need to add the following parameter on its own line somewhere in this list:
"-Djava.rmi.server.hostname=<ip_address>" ^
(replace<ip_address>
with the public IP address of the SuperSERVER host). For example:CODEif %waccess% EQU 1 ( "%JAVA_CMD%" ^ "-Dstr.config.server.jasdb.location=%JASDB_HOME%" ^ "-Dpidfile.path=%SA_PROGRAM_DATA%\data\play\play.pid" ^ "-Dhttp.port=9000" ^ "-Djacorb.home=%SA_PROGRAM_DATA%\config" ^ "-Djava.endorsed.dirs=%SA_PROGRAM_FILES%\lib\endorsed" ^ "-Djava.rmi.server.hostname=184.106.79.110" ^ -Dfile.encoding=UTF8 ^ ...
- Save your changes.
- Open C:\ProgramData\STR\SuperADMIN\server\config\etc\jacorb.properties in a text editor.
Locate the following section of the file:
PERL#jacorb.ior_proxy_host=1.2.3.4 #jacorb.ior_proxy_port=4711 ########################################### # # # The Object Adapter Internet Address # # # ########################################### # IP address on multi-homed host (this gets encoded in # object references). NOTE: Adresses like 127.0.0.X # will only be accessible from the same machine! #OAIAddr=1.2.3.4 #OAPort=4711
- Remove the initial # character and set the value of
jacorb.ior_proxy_host
to the public IP address. - Remove the initial # character and set the value of
jacorb.ior_proxy_port
to the CORBA registry port for SuperSTAR (set this to your chosen value if you have changed it from the default, 9230). Remove the initial # character and set the value of
OAIAddr
to the object adaptor internet address (in the below example this is set to 0.0.0.0, which implies all IP addresses).PERLjacorb.ior_proxy_host=184.106.79.23 jacorb.ior_proxy_port=9230 ########################################### # # # The Object Adapter Internet Address # # # ########################################### # IP address on multi-homed host (this gets encoded in # object references). NOTE: Adresses like 127.0.0.X # will only be accessible from the same machine! OAIAddr=0.0.0.0 #OAPort=4711
Step 3 - Configure the IP Address for SuperSERVER
The next step is to configure the IP addresses in SuperSERVER.
- Create a text file called micorc.txt in the same directory as the SuperSERVER executable, scsa.exe. In a default installation, the SuperSERVER executable is located in C:\Program Files\STR\SuperSERVER SA
Add the following arguments to the new text file:
CODE-ORBIIOPAddr inet:<public_ip>:<SuperSERVER_port> -ORBIIOPProxy inet:<public_ip>:<SuperSERVER_port>
Where
<public_ip>
is the public IP address of the multi-homed server, and<SuperSERVER_port>
is the port that SuperSERVER listens on (the default is 9232).For example:
CODE-ORBIIOPAddr inet:184.106.79.23:9232 -ORBIIOPProxy inet:184.106.79.23:9232
- In the same directory as micorc.txt and scsa.exe, create a batch file called SuperSERVER.bat.
Copy the following lines into the new batch file:
POWERSHELLSETLOCAL set MICORC=%~dp0micorc.txt "%~dp0scsa.exe" –a <public_ip_address>
This batch file sets the SuperSERVER environment variables to point to the values you set in micorc.txt. If you need to start SuperSERVER with specific port numbers or a specific codepage, you will need to amend the batch file accordingly.
You now need to ensure that SuperSERVER is always started using this batch file, rather than by executing scsa.exe directly.
If you set up a Windows Service using SuperSERVICE Manager (or it was set up for you by the installation process), you will need to edit this service so that it starts your batch file instead of starting scsa.exe:Start SuperSERVICE Manager, and click Edit Service.
- Select your SuperSTAR service from the drop-down list and click Edit.
- Remove the scsa.exe application from the Applications to Run section, and replace it with your new batch file.
- Click Update to apply your changes.
See these instructions for more information about configuring a service with SuperSERVICE Manager.
When using a batch file to start SuperSERVER or SuperADMIN, you must ensure that the batch file runs with administrator privileges (for example by selecting the Run As Administrator option from the right-click menu).
Step 4 - Check the SuperCROSS to SuperADMIN Connection
The final step is to check the connection between SuperCROSS and SuperADMIN:
- When SuperCROSS is connecting to a host that has a single IP address (the normal case), you can use either the domain name or the IP address to connect to SuperADMIN.
- When SuperCROSS is connecting to a multi-homed host, you must use the public IP address of the host.
Check the connection setting in SuperCROSS by selecting File > SuperADMIN Connection. If the connection is using the domain name, change it to the public IP address.