Thursday, 13 September 2018

WebSphere Application Server - _setupsdk1.6_64.sh: No such file or directory

I saw this: -

/opt/ibm/InstallationManager/eclipse/tools/imcl -input /mnt/ResponseFiles/upgradeBPM857_to_86.rsp -acceptLicense

Updated to com.ibm.bpm.ADV.v85_8.6.201803.20180316_1456 in the /opt/ibm/WebSphere/AppServer directory.
WARNING: 
Configuration errors were detected during the installation.  You should view the log file(s) under /opt/ibm/WebSphere/AppServer/logs/wbi/install directory to investigate the severity of the errors. 
WARNING: /opt/ibm/WebSphere/AppServer/bin/sdk/_setupSdk.sh: line 36: /opt/ibm/WebSphere/AppServer/bin/sdk/_setupsdk1.6_64.sh: No such file or directory


today, having installed WAS ND 8.5.5.13 and BPM 8.5.7, and then having upgraded BPM to 8.6 without doing owt else.

Other commands also failed in the same way: -

/opt/ibm/WebSphere/AppServer/bin/BPMConfig.sh -create -de /mnt/ResponseFiles/Standard-PC-ThreeClusters-DB2.properties

/opt/ibm/WebSphere/AppServer/bin/sdk/_setupSdk.sh: line 36: /opt/ibm/WebSphere/AppServer/bin/sdk/_setupsdk1.6_64.sh: No such file or directory

/opt/ibm/WebSphere/AppServer/bin/managesdk.sh 

/opt/ibm/WebSphere/AppServer/bin/sdk/_setupSdk.sh: line 36: /opt/ibm/WebSphere/AppServer/bin/sdk/_setupsdk1.6_64.sh: No such file or directory

I checked the relevant location: -

ls -al /opt/ibm/WebSphere/AppServer/bin/sdk

total 24
drwxr-xr-x.  2 wasadmin wasadmins    60 Sep 13 07:36 .
drwxr-xr-x. 11 wasadmin wasadmins 12288 Sep 13 07:21 ..
-rwxr-xr-x.  1 wasadmin wasadmins    95 Dec 19  2017 _setupsdk1.8_64_bundled.sh
-rwxr-xr-x.  1 wasadmin wasadmins  1144 Sep 13 07:08 _setupSdk.sh


which explains a lot.

WAS 8.5.5.X and BPM 8.5.7 can both tolerate Java 6, but BPM 8.6 certainly doesn't play that way.

I suspect that the BPM 8.5.7 to 8.6 upgrade "killed" Java 6, and removed the JDK altogether.

*BUT* someone needs to tell WAS to use Java 8 from now on….. that's why managesdk exists.

In the best traditions of Jim Kirk, I cheated: -

ln -s /opt/ibm/WebSphere/AppServer/bin/sdk/_setupsdk1.8_64_bundled.sh /opt/ibm/WebSphere/AppServer/bin/sdk/_setupsdk1.6_64.sh

which creates a symbolic link between the correct Java 18 script and the required - but deprecated - Java 6 script.

Now we have this: -

ls -al /opt/ibm/WebSphere/AppServer/bin/sdk

total 24
drwxr-xr-x.  2 wasadmin wasadmins    86 Sep 13 07:37 .
drwxr-xr-x. 11 wasadmin wasadmins 12288 Sep 13 07:21 ..
lrwxrwxrwx.  1 wasadmin wasadmins    26 Sep 13 07:37 _setupsdk1.6_64.sh -> _setupsdk1.8_64_bundled.sh
-rwxr-xr-x.  1 wasadmin wasadmins    95 Dec 19  2017 _setupsdk1.8_64_bundled.sh
-rwxr-xr-x.  1 wasadmin wasadmins  1144 Sep 13 07:08 _setupSdk.sh


and now we can validate the default JDK: -

/opt/ibm/WebSphere/AppServer/bin/managesdk.sh -getCommandDefault

CWSDK1006I: COMMAND_DEFAULT_SDK = 1.6_64 
CWSDK1001I: Successfully performed the requested managesdk task.


/opt/ibm/WebSphere/AppServer/bin/managesdk.sh -getNewProfileDefault

CWSDK1007I: New profile creation SDK name: 1.6_64
CWSDK1001I: Successfully performed the requested managesdk task.


and see what's available: -

/opt/ibm/WebSphere/AppServer/bin/managesdk.sh -listAvailable

CWSDK1003I: Available SDKs :
CWSDK1005I: SDK name: 1.8_64_bundled
CWSDK1001I: Successfully performed the requested managesdk task.


and use it: -

/opt/ibm/WebSphere/AppServer/bin/managesdk.sh -setCommandDefault -sdkName 1.8_64_bundled

CWSDK1021I: The command default SDK name is now set to 1.8_64_bundled.
CWSDK1001I: Successfully performed the requested managesdk task.


/opt/ibm/WebSphere/AppServer/bin/managesdk.sh -setNewProfileDefault -sdkName 1.8_64_bundled

CWSDK1022I: New profile creation will now use SDK name 1.8_64_bundled.
CWSDK1001I: Successfully performed the requested managesdk task.


and finally validate: -

/opt/ibm/WebSphere/AppServer/bin/managesdk.sh -getNewProfileDefault

CWSDK1006I: COMMAND_DEFAULT_SDK = 1.8_64_bundled 
CWSDK1001I: Successfully performed the requested managesdk task.


/opt/ibm/WebSphere/AppServer/bin/managesdk.sh -getCommandDefault

CWSDK1006I: COMMAND_DEFAULT_SDK = 1.8_64_bundled 
CWSDK1001I: Successfully performed the requested managesdk task.


and now we're golden: -

 /opt/ibm/WebSphere/AppServer/bin/BPMConfig.sh -create -de /mnt/ResponseFiles/Standard-PC-ThreeClusters-DB2.properties

...
Logging to file /opt/ibm/WebSphere/AppServer/logs/config/BPMConfig_20180913-080506.log.
Validating the profile registry.
[]
Configuring the deployment manager.
Creating the deployment manager profile.
INSTCONFSUCCESS: Success: Profile Dmgr01 now exists. Please consult /opt/ibm/WebSphereProfiles/Dmgr01/logs/AboutThisProfile.txt for more information about this profile.
CWMCB0135W: The deployment manager SOAP port 8880 in the property file '/mnt/ResponseFiles/Standard-PC-ThreeClusters-DB2.properties' does not match the actual SOAP port (8879).
Starting deployment manager profile Dmgr01.
CWUPO0001I: Running configuration action detectNewProducts.ant
The 'BPMConfig.sh -create -de /mnt/ResponseFiles/Standard-PC-ThreeClusters-DB2.properties' command completed successfully.


2 comments:

Paul_944 said...

Best to set the command java to another java before removing a java installation.

./managesdk.sh -setCommandDefault -sdkName 1.8_64_bundled
./managesdk.sh -setNewProfileDefault -sdkName 1.8_64_bundled
./managesdk.sh -enableProfileAll -sdkname 1.8_64_bundled -enableServers

Dave Hay said...

Yeah, good point, thanks Paul

Note to self - use kubectl to query images in a pod or deployment

In both cases, we use JSON ... For a deployment, we can do this: - kubectl get deployment foobar --namespace snafu --output jsonpath="{...