
LifeRay 5.2 en AS400 y DB2-400 en
Supondré que los posibles interesados en este wiki, son usuarios de AS/400 o como se llame ahora.
Por si acaso vamos a darle un repaso al entorno, estoy en versión V6R1M0 y supongo que con el ultimo nivel de PTF. Como ya sabéis a estas alturas IBM permite la ejecución de un montón de máquinas java diferentes, yo utilizo la 1.5 de 32 bits de IBM, y el entorno PASE para hacer funcionar el portal (QSH en este caso).
La estructura de directorios y ficheros lo colgaremos del IFS en /usr/local.
Empezaremos por obtener el soft desde el portal de LifeRay, que en este momento esta en http://downloads.sourceforge.net/lportal/liferay-portal-tomcat-6.0-5.2.1.zip y que podeis obtener desde el propio AS400 si teneis instaldo wget, o desde cualquier entorno windows, linux. etc.
Lo contare en windows y en AS400.
Si lo hacemos desde windows, necesitaremos tener compartido mediante NetServer400 la carpeta /usr/local y configurada en nuestro PC como un disco de red.
Obtenemos liferay-portal-tomcat-6.0-5.2.1.zip, y lo descompactamos "tal cual" en nuestra carpeta compartida del AS400, quedara algo asi:
O desde pantalla "verde":
En vuestro caso no vereis ni la carpeta liferay-portal-dependencies-5.2.1 ni liferay-portal-sql-5.2.1, ya que estas las he bajado despues.
Si lo hacemos desde al AS400, entraremos en el entorno PASE con QSH, lo podriamos hacer de otra manera pero con esta funciona. Iremos a /usr/local (cd /usr/local) y ahi ejecutamos wget http://downloads.sourceforge.net/lportal/liferay-portal-tomcat-6.0-5.2.1.zip,
Cuando Wget haya acabado, lo descompactamos directamente con por ejemplo jar -xvf liferay-portal-tomcat-6.0-5.2.1.zip
Tanto por un metodo como por otro, al final obtendremos un directorio en el AS /usr/local/liferay-portal-5.2.1 con el despliegue completo y listo para utilizar.
Opcional: Podeis borrar el fichero zip descargado.
Tomcat arranca por defecto en el puerto 8080, y yo como tengo mas cosas funcionando, pues que lo primero que hacemos es cambiar este puerto por otro que no nos moleste. Para ello editamos el fichero de configuracion de Tomcat yo lo hare con:
WRKLNK OBJ('/usr/local/liferay-portal-5.2.1/tomcat-6.0.18/conf/server.xml')
y con la opcion 2 editare este fichero, buscando <Connector port="8080" protocol="HTTP/1.1" y cambiarlo por <Connector port="28080" protocol="HTTP/1.1",
lo guardamos con F2 y F3, y ya tenemos listo LifeRay para arrancar.
Yo lo hice, y en muy poco tiempo tenia el portal operativo en el puerto 28080. El caso es que LR por defecto usa como base de datos HSQL, aunque en el log que tenemos en /usr/local/liferay-portal-5.2.1/tomcat-6.0.18/logs catalina.out, ya nos avisa que esta base de datos, que aunque funciona perfectamente en el AS400, no es apta para los entornos de produccion.
Y aqui es donde empieza el calvario, encontraremos mutiples ejemplos de como configurar MySql y para LR 5.1, pero para DB2/400 y LR 5.2, pues NO.
Aunque podria funcionar perfectamente con MySql, ya que yo lo tengo funcionando para una aplicacion en PHP, en concreto MOODLE, pues eso que no me apaetecia hacerlo con MySql y lo queria hacer en "nativo", os adelanto que esta conseguido.
Comenzaremos con trabajo "nativo" de AS400.
Creamos un peerfil de usuario al que llamaremos, por ejemplo, LIFERAY, con cotraseña LIFERAY o la que os de la gana, lo vamos a utilizar para todo lo que vamos ha hacer a continucacion.
Crearemos dos bibliotecas de AS una para la base de datos de LR y otra para cosillas del portal.
La prrimera la he llamado LPORTAL;
CRTLIB LIB(LPORTAL) TEXT('Biblioteca de datos de LifeRay')
y la otra la podemos llamar LIFERAY:
CRTLIB LIB(LIFERAY) TEXT('Biblioteca de cosas de LifeRay') .
A continuacion cambiaremos el propietario de la biblioteca LPORTAL, para que sea el usuario LIFERAY su dueño y señor:
CHGOBJOWN OBJ(QSYS/LPORTAL) OBJTYPE(*LIB) NEWOWN(LIFERAY) .
Vamos a hacer que LifeRay tenga un subsistema para el mismo a fin de de tener algun control mas sobre su funcionamiento, creando subsistema clase cola de trabajos etc...
CRTSBSD SBSD(LIFERAY/LIFERAY) POOLS((1 *BASE)) TEXT('Subsistema para LifeRay´)
CRTJOBQ JOBQ(LIFERAY/LIFERAY) TEXT('Cala de trabajos de Liferay')
CRTCLS CLS(LIFERAY/LIFERAY)
ADDJOBQE SBSD(LIFERAY/LIFERAY) JOBQ(LIFERAY/LIFERAY)
QSYS/ADDRTGE SBSD(LIFERAY/LIFERAY) SEQNBR(9999) CMPVAL(*ANY) PGM(QCMD) CLS(LIFERAY/LIFERAY)
y ya estamos listos para STRSBS SBSD(LIFERAY/LIFERAY). Bueno ya tenemos preparado el entorno de ejecucion de LifeRay para arrancarlo y pararlo independientemente del resto de las aplicaciones del AS400.
Una forma de arrancarlo seria:
SBMJOB CMD(QSH CMD('cd /usr/local/liferay-portal-5.2.1/tomcat-6.0.18/bin; export JAVA_HOME="/QOpenSys/QIBM/ProdData/JavaVM/jdk50/32bit"; ./startup.sh')) JOB(STR_LIFERA) JOBQ(LIFERAY/LIFERAY)
y pararlo:
SBMJOB CMD(QSH CMD('cd /usr/local/liferay-portal-5.2.1/tomcat-6.0.18/bin; export JAVA_HOME="/QOpenSys/QIBM/ProdData/JavaVM/jdk50/32bit"; ./shutdown.sh')) JOB(STP_LIFERA) JOBQ(LIFERAY/LIFERAY)
En los dos casos nos estamos asegurando con la variable de entorno JAVA_HOME, la maquina java que se va a utilizar.
Como ya hemos dicho hasta ahora solo lo arrancamos y paramos la Base de Datos que emplea es HSQL, vamos a ver a continucion como lo podemos cambiar para que arranque en nativo.
Hay dos posibilidades de utilizacion de la base de datos del AS400, una con jt400.jar y otra con jt400Native.jar que en mi maquina estan situadas en:
/QIBM/ProdData/OS400/jt400/lib/jt400Native.jar
y en:
/QIBM/ProdData/Http/Public/jt400/lib/jt400.jar,
yo he utilizado esta ultima, para lo cual la he copiado en:
/usr/local/liferay-portal-5.2.1/tomcat-6.0.18/lib/ext,
vamos a configurar portal-ext.properties que deberia estar en:
/usr/local/liferay-portal-5.2.1/tomcat-6.0.18/webapps/ROOT/WEB-INF/classes
pero que no esta. No importa lo creamos de la misma manera que hemos visto antes para configurar el Tomcat y lo llenamos con lo sigiente:
permissions.user.check.algorithm=2
hibernate.dialect=org.hibernate.dialect.DB2400Dialect
## print all generated SQL to the console
hibernate.show_sql false
## format SQL in log and console
hibernate.format_sql true
jdbc.default.driverClassName=com.ibm.as400.access.AS400JDBCDriver
jdbc.default.url=jdbc:as400://172.21.64.90;prompt=false;libraries=LPORTAL;extended dynamic=true;package=jbpkg;package cache=true
jdbc.default.username=LIFERAY
jdbc.default.password=LIFERAY
172.21.64.90 es una de las direcciones IP de nuestro AS400, y ya estamos listos para arrancar la primera vez. Cascara porque una vez que ha creado las tablas e indices se encuentra que no estan en journal, no pasa nada, lo paramos y vamos con la taerea de "jurnalizar" la BD.
QSYS/CRTJRNRCV JRNRCV(LPORTAL/JNRRCV) TEXT('Receptor de diario de LifeRay')
QSYS/CRTJRN JRN(LPORTAL/JRN) JRNRCV(LPORTAL/JNRRCV)
QSYS/STRJRNPF FILE(LPORTAL/*ALL) JRN(LPORTAL/JRN)
y ya esta, arrancamos el portal y a funcionar........................................
con sus logs...........
Y por supuesto:
Que quedaria??
- Arranque automatico de LifeRay
- Customizar el perfil de usuario LIFERAY un poco mas..
- "Proxizar" con Apache nativo al puerto 80.
- etc.