Getting unsupportedException running Tomcat 5.5.16 in z/os

Issues and Questions related to running Apache Tomcat on z/OS
Post Reply
Pault
Posts: 3
Joined: Tue Apr 08, 2008 10:24 pm

Getting unsupportedException running Tomcat 5.5.16 in z/os

Post by Pault »

Here is strack trace of what I am getting .... saying setseed not supported.
Any ideas how to resolve this issue, any help greatly appreciated.

JVMJZBL1012I Java Virtual Machine created. Version information follows:
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pmz31dev-20070201 (SR4))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 z/OS s390-31 j9vmmz3123-20070201 (JI
J9VM - 20070131_11312_bHdSMr
JIT - 20070109_1805ifx1_r8
GC - 200701_09)
JVMJZBL1027I Using output encoding: IBM-1047
JVMJZBL1016I MVS commands are ENABLED
JVMJZBL1023N Invoking org.apache.catalina.startup.Bootstrap.main()...
JVMJZBL1043N The Java virtual machine completed with System.exit(1)
JVMJZBL2999I JZOS batch launcher elapsed time=9.974687 seconds, cpu time=3.35752
Apr 8, 2008 8:02:53 PM org.apache.catalina.core.AprLifecycleListener lifecycleEv
INFO: The Apache Tomcat Native library which allows optimal performance in produ
.path: /usr/lpp/java5/J5.0/bin:/lib:/usr/lib:/usr/lpp/java5/J5.0/bin:/usr/lpp/ja
Apr 8, 2008 8:02:53 PM org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Apr 8, 2008 8:02:53 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1941 ms
Apr 8, 2008 8:02:54 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Apr 8, 2008 8:02:54 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.16
Apr 8, 2008 8:02:54 PM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
Apr 8, 2008 8:02:55 PM org.apache.catalina.session.ManagerBase getRandom

SEVERE: Exception initializing random number generator of class java.security.SecureRandom
java.lang.UnsupportedOperationException: Hardware error, function engineSetSeed has no meaning in hardware
at com.ibm.crypto.hdwrCCA.provider.SecureRandom.engineSetSeed(Unknown Source)
at java.security.SecureRandom.setSeed(SecureRandom.java:417)
at org.apache.catalina.session.ManagerBase.getRandom(ManagerBase.java:553)
at org.apache.catalina.session.ManagerBase.getRandomBytes(ManagerBase.java:945)
at org.apache.catalina.session.ManagerBase.init(ManagerBase.java:721)
at org.apache.catalina.session.StandardManager.start(StandardManager.java:618)
at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:431)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4130)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:7
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:608)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:535
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1112)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
at java.lang.reflect.Method.invoke(Method.java:615)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:275)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Apr 8, 2008 8:02:55 PM org.apache.commons.modeler.Registry registerComponent
SEVERE: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/host-manager,J2EEApplication=none,J2EEServer=none
Apr 8, 2008 8:02:55 PM org.apache.catalina.startup.HostConfig deployDescriptor
SEVERE: Error deploying configuration descriptor host-manager.xml
java.lang.RuntimeException: Hardware error from call CSNBOWH returnCode 8reasonCode 16000
at com.ibm.crypto.hdwrCCA.provider.MD5.a(Unknown Source)
at com.ibm.crypto.hdwrCCA.provider.MD5.engineDigest(Unknown Source)
at java.security.MessageDigest$Delegate.engineDigest(MessageDigest.java:554)
at java.security.MessageDigest.digest(MessageDigest.java:332)
at java.security.MessageDigest.digest(MessageDigest.java:378)
at org.apache.catalina.session.ManagerBase.generateSessionId(ManagerBase.java:9
at org.apache.catalina.session.StandardManager.start(StandardManager.java:630)
at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:431)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4130)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:7
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:608)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:535
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1112)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:275)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Apr 8, 2008 8:02:55 PM org.apache.catalina.session.ManagerBase getRandom
SEVERE: Exception initializing random number generator of class java.security.SecureRandom

java.lang.UnsupportedOperationException: Hardware error, function engineSetSeed has no meaning in hardware
at com.ibm.crypto.hdwrCCA.provider.SecureRandom.engineSetSeed(Unknown Source)
at java.security.SecureRandom.setSeed(SecureRandom.java:417)
at org.apache.catalina.session.ManagerBase.getRandom(ManagerBase.java:553)
at org.apache.catalina.session.ManagerBase.getRandomBytes(ManagerBase.java:945)
at org.apache.catalina.session.ManagerBase.init(ManagerBase.java:721)
at org.apache.catalina.session.StandardManager.start(StandardManager.java:618)
at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:431)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4130)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:7
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:608)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:535
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1112)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
at java.lang.reflect.Method.invoke(Method.java:615)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:275)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Apr 8, 2008 8:02:55 PM org.apache.commons.modeler.Registry registerComponent
SEVERE: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/manager,J2EEApplication=none,J2EEServer=none

Apr 8, 2008 8:02:55 PM org.apache.catalina.startup.HostConfig deployDescriptor
SEVERE: Error deploying configuration descriptor manager.xml
java.lang.RuntimeException: Hardware error from call CSNBOWH returnCode 8reasonCode 16000

at com.ibm.crypto.hdwrCCA.provider.MD5.a(Unknown Source)
at com.ibm.crypto.hdwrCCA.provider.MD5.engineDigest(Unknown Source)
at java.security.MessageDigest$Delegate.engineDigest(MessageDigest.java:554)
at java.security.MessageDigest.digest(MessageDigest.java:332)
at java.security.MessageDigest.digest(MessageDigest.java:378)
at org.apache.catalina.session.ManagerBase.generateSessionId(ManagerBase.java:9
at org.apache.catalina.session.StandardManager.start(StandardManager.java:630)
at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:431)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4130)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:7
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:608)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:535
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1112)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
at java.lang.reflect.Method.invoke(Method.java:615)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:275)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
coz
Posts: 391
Joined: Fri Jul 30, 2004 5:29 pm

Post by coz »

When Tomcat starts up, it attempts to construct an instance of java.security.SecureRandom, which contains an implementation of the java.security.SecureRandomSpi interface, fulfilled by a provider in java.security. On your system, the provider appears to be the ICSF. (Check in <JAVA_HOME>/lib/security/java.security and see if you have a line like this):

Code: Select all

security.provider.1=com.ibm.crypto.hdwrCCA.provider.IBMJCECCA
As part of its random initialization, Tomcat sends the setSeed() message to the SecureRandom instance to set an initial seed.

IBM's implementation of SecureRandomSpi doesn't support seed setting, so it throws an UnsupportedOperationException.

Tomcat is catching this exception and issuing the message and stack trace that you see, but should be falling back on an instance of java.util.Random. I assume that it is starting up OK?

What's really at question here is who should be doing things differently: The interface (java.security.SecureRandomSpi) says nothing about the methods being optional, so perhaps IBM should have implemented a null method body rather than throwing an exception. Alternatively Apache (Tomcat) could explicitly look for and ignore the UnsupportedOperationException. In any case, the message you're getting is probably a little over the top. You might try writing a bug against Tomcat or IBM to clear this up.

In the meantime if the message is bothering you, you can remove the ICSF provider from java.security so that the hardware facility is not used.
Post Reply