Thursday, 23 November 2017

"com.ibm.bpm.config.util.ConfigException: Failed to import LTPA:" seen when attempting to move a BPM Deployment Environment from one host to another

I saw this exception: -

[23/11/17 11:57:38:222 GMT] 00000001 BPMConfig     E com.ibm.bpm.config.BPMConfig main Failed to import LTPA:
                                 com.ibm.bpm.config.util.ConfigException: Failed to import LTPA:
        at com.ibm.bpm.config.util.ws.update.UpdateLTPAKeys.importLTPA(UpdateLTPAKeys.java:170)
        at com.ibm.bpm.config.util.ws.update.UpdateLTPAKeys.updateSecurityParameters(UpdateLTPAKeys.java:73)
        at com.ibm.bpm.config.util.ws.update.ConfigPostUpdater.postUpdate(ConfigPostUpdater.java:72)
        at com.ibm.bpm.config.BPMConfig.configureDeploymentEnvironment(BPMConfig.java:835)
        at com.ibm.bpm.config.BPMConfig$Actions.createDe(BPMConfig.java:4444)
        at com.ibm.bpm.config.cli.CreateAction.runInner(CreateAction.java:156)
        at com.ibm.bpm.config.cli.AbstractConfigAction.run(AbstractConfigAction.java:129)
        at com.ibm.bpm.config.cli.CreateAction.run(CreateAction.java:35)
        at com.ibm.bpm.config.BPMConfig.main(BPMConfig.java:299)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
        at java.lang.reflect.Method.invoke(Method.java:508)
        at com.ibm.wsspi.bootstrap.WSLauncher.launchMain(WSLauncher.java:234)
        at com.ibm.wsspi.bootstrap.WSLauncher.main(WSLauncher.java:96)
        at com.ibm.wsspi.bootstrap.WSLauncher.run(WSLauncher.java:77)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
        at java.lang.reflect.Method.invoke(Method.java:508)
        at org.eclipse.equinox.internal.app.EclipseAppContainer.callMethodWithException(EclipseAppContainer.java:587)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:198)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
        at java.lang.reflect.Method.invoke(Method.java:508)
        at org.eclipse.core.launcher.Main.invokeFramework(Main.java:340)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
        at org.eclipse.core.launcher.Main.run(Main.java:981)
        at com.ibm.wsspi.bootstrap.WSPreLauncher.launchEclipse(WSPreLauncher.java:406)
        at com.ibm.wsspi.bootstrap.WSPreLauncher.main(WSPreLauncher.java:169)
Caused by: java.io.FileNotFoundException: /home/wasadmin/ltpa.jceks (No such file or directory)
        at java.io.FileInputStream.open0(Native Method)
        at java.io.FileInputStream.open(FileInputStream.java:212)
        at java.io.FileInputStream.<init>(FileInputStream.java:152)
        at com.ibm.bpm.config.util.ws.update.UpdateLTPAKeys.importLTPA(UpdateLTPAKeys.java:119)
        ... 34 more

[23/11/17 11:57:38:229 GMT] 00000001 Ffdc          I com.ibm.ffdc.util.provider.FfdcOnDirProvider logIncident FFDC1003I: FFDC Incident emitted on /opt/ibm/WebSphere/AppServer/logs/config/ffdc_20171123-114355/ffdc.6106113977348147943.txt com.ibm.bpm.config.BPMConfig.main 163
[23/11/17 11:57:38:230 GMT] 00000001 BPMConfig     E com.ibm.bpm.config.BPMConfig main Failed to import LTPA:
[23/11/17 11:57:38:230 GMT] 00000001 SoeFactory    > com.ibm.bpm.config.soe.SoeFactory currentOs ENTRY
[23/11/17 11:57:38:230 GMT] 00000001 SoeFactory    > com.ibm.bpm.config.soe.SoeFactory getOsByType ENTRY Unix
[23/11/17 11:57:38:230 GMT] 00000001 SoeFactory    < com.ibm.bpm.config.soe.SoeFactory getOsByType RETURN Unix
[23/11/17 11:57:38:230 GMT] 00000001 SoeFactory    < com.ibm.bpm.config.soe.SoeFactory currentOs RETURN Unix
[23/11/17 11:57:38:230 GMT] 00000001 BPMConfig     I com.ibm.bpm.config.BPMConfig main The 'BPMConfig.sh -create -de /home/wasadmin/De1.properties' command failed. For more information, see the log file /opt/ibm/WebSphere/AppServer/logs/config/BPMConfig_20171123-114355.log.

whilst trying to move an IBM BPM Deployment Environment from one host to another.

The TL;DR; is that I'm running through a BPM 8.5.5 to 8.6 side-by-side migration, aiming to lift and shift the configuration from one box ( running 8.5.5 ) to another box ( running 8.6 ).

Having exported the 8.5.5 Deployment Environment: -

/opt/ibm/WebSphere/AppServer/bin/BPMConfig.sh -export -profile Dmgr01 -de De1 -outputDir  /mnt/BPM855.response

modified the resulting De1.properties file to reflect the new hostname: -

sed -i 's/bpm855/bpm86/g' De1.properties

I then attempted to create a new Deployment Environment on the box with the 8.6 binaries installed: -

/opt/ibm/WebSphere/AppServer/bin/BPMConfig.sh -create -de ~/De1.properties

This failed alas.

However, the message is clear: -

Caused by: java.io.FileNotFoundException: /home/wasadmin/ltpa.jceks (No such file or directory)

When I did the original export, I did get a bunch o' files: -

-rw-r--r-- 1 501 games  7540 Nov 23 11:38 Application-config-bpc.xml
-rw-r--r-- 1 501 games 76228 Nov 23 11:38 De1.properties
-rw-r--r-- 1 501 games  1639 Nov 23 11:38 fileRegistry.xml
-rw-r--r-- 1 501 games  1613 Nov 23 11:38 ltpa.jceks
-rw-r--r-- 1 501 games 13782 Nov 23 11:38 resources-bpc.xml


To validate the hypothesis, I cleaned up ( this on the "new" 8.6 environment ): -

/opt/ibm/WebSphere/AppServer/bin/manageprofiles.sh -deleteAll

rm -Rf /opt/ibm/WebSphereProfiles/

and then copied the ltpa.jceks to the same directory as the De1.properties file: -

cp /mnt/BPM855.response/ltpa.jceks ~

and tried again: -

/opt/ibm/WebSphere/AppServer/bin/BPMConfig.sh -create -de ~/De1.properties

which again failed: -

CWMCB2118E: No source fileRegistry.xml is found in path /home/wasadmin
The 'BPMConfig.sh -create -de /home/wasadmin/De1.properties' command failed. For more information, see the log file /opt/ibm/WebSphere/AppServer/logs/config/BPMConfig_20171123-125129.log.


Again, this makes sense, and that's easy to fix: -

cp /mnt/BPM855.response/fileRegistry.xml .

This time around ….

The 'BPMConfig.sh -create -de /home/wasadmin/De1.properties' command completed successfully.

Yay !

The moral of the story ? Make sure you have ALL the right files in ALL the right places !

For reference, here's the source for the Export process: -



No comments:

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="{...