运行JBERET java批处理程序时出现ZOS错误

时间:2017-10-05 09:46:02

标签: mainframe zos jsr352 java-batch jberet

我试图在z / OS中运行this jberet java批处理程序但是,得到以下异常。这似乎是z / OS中的权限,因为在Windows机器上运行相同的可执行文件(fat / uber)。

 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以用作作业存储库

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

1 个答案:

答案 0 :(得分:3)

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

原因代码16000说

  

RACF未能使用此服务。

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

由于可能需要更多服务,因此可能不是您需要访问的唯一资源,因此可能会考虑CSF*行的通用配置文件。

请参阅here以获取所有CSFSERV RACF资源及其保护服务的列表。