0

我正在尝试在 z/OS 中运行这个jberet java 批处理程序,但是遇到了以下异常。这似乎与 z/OS 中的权限有关,因为相同的可执行文件 (fat/uber) jar 在 Windows 机器中运行良好。

 Oct 05, 2017 9:07:41 AM org.jboss.weld.bootstrap.WeldStartup <clinit>
 INFO: WELD-000900: 2.4.5 (Final) Oct 05, 2017 9:07:41 AM org.jboss.weld.environment.deployment.discovery.ReflectionDiscoveryStrategy processAnnotatedDiscovery
 INFO: WELD-ENV-000014: Falling back to Java Reflection for bean-discovery-mode="annotated" discovery. Add org.jboss:jandex to the classpath to speed-up startup.
 Exception in thread "main" java.util.ServiceConfigurationError: javax.batch.operations.JobOperator: Provider org.jberet.operations.JobOperatorImpl could not be instantiated
    at java.util.ServiceLoader.fail(ServiceLoader.java:236)
    at java.util.ServiceLoader.access$100(ServiceLoader.java:193)
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:389)
    at java.util.ServiceLoader$1.next(ServiceLoader.java:457)
    at javax.batch.runtime.BatchRuntime$1.run(BatchRuntime.java:51)
    at javax.batch.runtime.BatchRuntime$1.run(BatchRuntime.java:46)
    at java.security.AccessController.doPrivileged(AccessController.java:396)
    at javax.batch.runtime.BatchRuntime.getJobOperator(BatchRuntime.java:46)
    at com.citi.Report.App.main(App.java:18)
 Caused by: com.ibm.crypto.hdwrCCA.provider.JCECCARuntimeException: Hardware error from call CSNBRNGL returnCode 8 reasonCode 16000
    at com.ibm.crypto.hdwrCCA.provider.SecureRandom.engineNextBytes(SecureRandom.java:40)
    at java.security.SecureRandom.nextBytes(SecureRandom.java:470)
    at java.util.UUID.randomUUID(UUID.java:157)
    at org.jboss.weld.environment.se.Weld.initialize(Weld.java:779)
    at org.jberet.se.SEArtifactFactory.<init>(SEArtifactFactory.java:29)
    at org.jberet.se.BatchSEEnvironment.getArtifactFactory(BatchSEEnvironment.java:133)
    at org.jberet.operations.JobOperatorImpl.<init>(JobOperatorImpl.java:93)
    at java.lang.J9VMInternals.newInstanceImpl(Native Method)
    at java.lang.Class.newInstance(Class.java:1887)
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:385)
    ... 6 more

这个错误的解决方案是什么?

Hardware error from call CSNBRNGL returnCode 8 reasonCode 16000

更新:这个批处理程序不会读取/写入任何大型机文件,它只是一个 hello world 示例。这个批处理程序做了一些重要的事情 1. WELD 读取 beans.xml 2. JBeret 读取 JBERET.properties 3. 创建一个 H2 DB 用作作业存储库

我想知道是否其中任何一个可能需要这些额外的权限。

4

1 回答 1

3

IBM JCE 实现尝试调用CSNBRNGL失败的加密服务。

原因代码 16000 说

RACF 未能满足您使用此服务的请求。

进一步看,可以发现执行代码的用户需要访问(READ 应该足够)CSFRNGL类中的资源CSFSERV

由于可能需要更多服务,因此它可能不是您需要访问的唯一资源,因此也许CSF*可以考虑使用类似的通用配置文件。

有关所有RACF 资源及其保护的服务的列表,请参见此处。CSFSERV

于 2017-10-05T11:18:17.030 回答