Tuesday, 11 May 2010

Ports in Portal

As part of the portal clustering engagement on which I'm currently working, I wanted to change the port range used by the WebSphere Portal instance on the second of the two nodes. 

The reason for this is that, by default, when the second node is added into the cluster, the WebSphere_Portal instance is removed from the node configuration by the cluster-node-config-cluster-setup  command, in order that a new instance ( WebSphere_Portal_nodename ) can be created. This second instance is automatically allocated to a new port range. As an example, if the original WebSphere_Portal listened ( on WC_defaulthost ) on 10040, then the new instance will listen on 10048.

Given that there is now no conflict, as WebSphere_Portal has been removed, it's sometimes nice ( for consistency ) to reallocate the port range on node 2 to be consistent with node 1.

There are a number of ways to achieve this, two of which involve using ConfigEngine.

./ConfigEngine.sh modify-ports-by-startport -DWasPassword=password -DModifyPortsServer=servername -DStartPort=starting port number

./ConfigEngine.sh modify-ports-by-portsfile -DWasPassword=password -DModifyPortsServer=servername -DPortsFile=full path to ports file

The third way is to manually change them via the WAS administration console.

I chose the second option - to import a list of ports from a text file.

I created a text file ( ~/portalPorts.txt ) containing the following: -

BOOTSTRAP_ADDRESS=10031
SOAP_CONNECTOR_ADDRESS=10033
SAS_SSL_SERVERAUTH_LISTENER_ADDRESS=10032
CSIV2_SSL_SERVERAUTH_LISTENER_ADDRESS=10025
CSIV2_SSL_MUTUALAUTH_LISTENER_ADDRESS=10037
WC_adminhost=10027
WC_defaulthost=10040
DCS_UNICAST_ADDRESS=10029
WC_adminhost_secure=10041
WC_defaulthost_secure=10035
SIP_DEFAULTHOST=10039
SIP_DEFAULTHOST_SECURE=10036
SIB_ENDPOINT_ADDRESS=10026
SIB_ENDPOINT_SECURE_ADDRESS=10038
SIB_MQ_ENDPOINT_ADDRESS=10030
SIB_MQ_ENDPOINT_SECURE_ADDRESS=10028
ORB_LISTENER_ADDRESS=10034


which represent the ports as harvested from the WebSphere_Portal server instance on node 1.

I then attempted to execute the requisite ConfigEngine script: -

./ConfigEngine.sh modify-ports-by-portsfile -DWasPassword=passw0rd -DModifyPortsServer=WebSphere_Portal_node-2 -DPortsFile=~/portalPorts.txt 

but, sadly, this failed with: -

BUILD FAILED
/opt/IBM/WebSphere/wp_profile/ConfigEngine/config/includes/modifyPorts.xml:139: The following error occurred while executing this line:
/opt/IBM/WebSphere/wp_profile/ConfigEngine/config/includes/modifyPorts.xml:161: File did not load for createModifyPortsJacl task

I didn't have the time to investigate too closely, so I chose to manually change each and every port, via the WAS administration console.

Whilst we're on the subject, it's also worth noting that there's a ConfigEngine script for everything, including: -

./ConfigEngine.sh list-server-ports -DWasPassword=passw0rd

which generates a log file: -

/opt/IBM/WebSphere/wp_profile/ConfigEngine/log/wp_PortMatrix.txt

which contains a subset of the ports being used: -

WC_defaulthost=10048
WC_adminhost=10047
WC_defaulthost_secure=10051
WC_adminhost_secure=10050
BOOTSTRAP_ADDRESS=10042
SOAP_CONNECTOR_ADDRESS=10043

Sweet ....


No comments: