2017-10-05 9 views
0

Je suis en train d'exécuter this programme batch jeret java dans z/OS, mais en obtenant l'exception suivante. Cela semble être quelque chose avec les autorisations dans z/OS car, le même fichier exécutable (fat/uber) jar fonctionne bien dans les machines Windows.Erreur ZOS en exécutant le programme par lots JBERET java

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 

Quelle pourrait être la solution pour cette erreur?

Hardware error from call CSNBRNGL returnCode 8 reasonCode 16000 

Mise à jour: Ce programme de traitement par lots ne lecture/écriture ne pas tous les fichiers de l'ordinateur central, il est juste un exemple du monde bonjour. Peu de choses importantes de ce programme de traitement par lots ne 1. WELD la lecture du beans.xml 2. JBeret la lecture des JBERET.properties 3. Créez un H2 DB pour l'utilisation comme référentiel d'emploi

me demande si l'un de ceux-ci pourraient avoir besoin ces autorisations supplémentaires.

Répondre

3

L'implémentation IBM JCE essaie d'appeler le service de cryptographie CSNBRNGL qui échoue.

code Raison dit 16000

RACF votre demande n'a pas à utiliser ce service.

En regardant plus on peut constater que l'utilisateur exécutant le code doit avoir accès (READ devrait être suffisant) à la ressource CSFRNGL dans la classe CSFSERV. Comme il y aura probablement plus de services requis, ce n'est probablement pas la seule ressource à laquelle vous devez accéder, donc peut-être un profil générique selon les lignes CSF* pourrait être considéré.

Voir here pour une liste de toutes les ressources RACF CSFSERV et les services qu'elles protègent.

+0

Merci, nous demanderons à nos gens Zos de jeter un oeil à ce lien. – yathirigan