viernes, 7 de marzo de 2014

Obtener la Arquitectura del JDK (32 bits o 64 bits) en Unix

Si estamos en una plataforma que usa JDK híbrido como se es el caso de HP-PA, HP-IA o Solaris, el uso del argumento '-d64' es requerido.

Por ejemplo en Solaris 11 Sparc de 64bits:

java -d64 -version



Si estamos usando un JDK de 64bits éste comando nos mostrara correctamente que la versión es de 64bits, de lo contrario nos mostrará que la JVM no soporta 64bits. 

Nota: El uso del argumento '-d64' aparece desde la versión 1.7 por lo que en versiones anteriores no funcionara.


jueves, 6 de marzo de 2014

Localización de archivos oraInst.loc y oratab en Solaris 11

Estos archivos los encontramos comúnmente en Linux o en AIX en la ruta /etc no obstante para un Unix como es el caso de Solaris, la ruta donde se encuentran estos archivos es diferente.

En Solaris los encontramos en la ruta /var/opt/oracle


sun.security.pkcs11.ConfigurationException Unknown keyword 'useEcX963Encoding'

Cuando se está configurando Forms/Reports11gR2 en Solaris 11 Sparc y utilizar Jdk 1.7 puede que el asistente se quede en el paso de crear el servidor administrado WLS_FORMS. Si vamos a ver el log de éste Servidor veremos el siguiente mensaje de error:

java.lang.ExceptionInInitializerError
        at weblogic.rjvm.LocalRJVM.getLocalRJVM(LocalRJVM.java:72)
        at weblogic.rjvm.JVMID.<init>(JVMID.java:373)
        at weblogic.rjvm.JVMID.setLocalID(JVMID.java:239)
        at weblogic.rjvm.RJVMService.setJVMID(RJVMService.java:48)
        at weblogic.rjvm.RJVMService.start(RJVMService.java:30)
        at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
        at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused By: java.security.ProviderException: Error parsing configuration
        at sun.security.pkcs11.Config.getConfig(Config.java:71)
        at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:110)
        at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:86)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:224)
        at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:206)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:206)
        at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:187)
        at sun.security.jca.ProviderList.getProvider(ProviderList.java:232)
        at sun.security.jca.ProviderList$3.get(ProviderList.java:147)
        at sun.security.jca.ProviderList$3.get(ProviderList.java:142)
        at java.util.AbstractList$Itr.next(AbstractList.java:358)
        at java.security.SecureRandom.getPrngAlgorithm(SecureRandom.java:542)
        at java.security.SecureRandom.getDefaultPRNG(SecureRandom.java:187)
        at java.security.SecureRandom.<init>(SecureRandom.java:155)
        at weblogic.rjvm.LocalRJVM.<init>(LocalRJVM.java:90)
        at weblogic.rjvm.LocalRJVM.<init>(LocalRJVM.java:28)
        at weblogic.rjvm.LocalRJVM$LocalRJVMMaker.<clinit>(LocalRJVM.java:31)
        at weblogic.rjvm.LocalRJVM.getLocalRJVM(LocalRJVM.java:72)
        at weblogic.rjvm.JVMID.<init>(JVMID.java:373)
        at weblogic.rjvm.JVMID.setLocalID(JVMID.java:239)
        at weblogic.rjvm.RJVMService.setJVMID(RJVMService.java:48)
        at weblogic.rjvm.RJVMService.start(RJVMService.java:30)
        at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused By: java.security.ProviderException: Error parsing configuration
        at sun.security.pkcs11.Config.getConfig(Config.java:71)
        at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:110)
        at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:86)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:224)
        at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:206)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:206)
        at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:187)
        at sun.security.jca.ProviderList.getProvider(ProviderList.java:232)
        at sun.security.jca.ProviderList$3.get(ProviderList.java:147)
        at sun.security.jca.ProviderList$3.get(ProviderList.java:142)
        at java.util.AbstractList$Itr.next(AbstractList.java:358)
        at java.security.SecureRandom.getPrngAlgorithm(SecureRandom.java:542)
        at java.security.SecureRandom.getDefaultPRNG(SecureRandom.java:187)
        at java.security.SecureRandom.<init>(SecureRandom.java:155)
        at weblogic.rjvm.LocalRJVM.<init>(LocalRJVM.java:90)
        at weblogic.rjvm.LocalRJVM.<init>(LocalRJVM.java:28)
        at weblogic.rjvm.LocalRJVM$LocalRJVMMaker.<clinit>(LocalRJVM.java:31)
        at weblogic.rjvm.LocalRJVM.getLocalRJVM(LocalRJVM.java:72)
        at weblogic.rjvm.JVMID.<init>(JVMID.java:373)
        at weblogic.rjvm.JVMID.setLocalID(JVMID.java:239)
        at weblogic.rjvm.RJVMService.setJVMID(RJVMService.java:48)
        at weblogic.rjvm.RJVMService.start(RJVMService.java:30)
        at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
        at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused By: sun.security.pkcs11.ConfigurationException: Unknown keyword 'useEcX963Encoding', line 15
        at sun.security.pkcs11.Config.parse(Config.java:425)
        at sun.security.pkcs11.Config.<init>(Config.java:194)
        at sun.security.pkcs11.Config.getConfig(Config.java:67)

Para solucionar este error lo que debemos hacer es ir a modificar el archivo java.security que se encuentra en la ruta $JAVA_HOME/jre/lib/security

En el modificamos y quitamos la entrada siguiente:

security.provider.1=com.oracle.security.ucrypto.UcryptoProvider ${java.home}/lib/security/ucrypto-solaris.cfg
security.provider.2=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/sunpkcs11-solaris.cfg
security.provider.3=sun.security.provider.Sun
security.provider.4=sun.security.rsa.SunRsaSign
.....

A:

security.provider.1=com.oracle.security.ucrypto.UcryptoProvider ${java.home}/lib/security/ucrypto-solaris.cfg
security.provider.2=sun.security.provider.Sun
security.provider.3=sun.security.rsa.SunRsaSign
....

Nota: Asegurarse de reajustar el correlativo de los provider 1,2,3,4....

Luego de éste cambio reintentamos el paso en el cual se quedo el  asistente y continuará sin problemas.

Nota2: Otro workaround por éste error sería utilizar JDK 1.6