· Primero, sacamos una copia del fichero actual, por si hubiera que volver atrás:
mv /etc/localtime /etc/localtime.old
ln -s /usr/share/zoneinfo/Europe/Madrid /etc/localtime
La otra opción es reconfigurar el paquete tzdata
Intentare mostrarles todas las cosas que me pasan día a día en mis pruebas, en mi trabajo, etc.
· Primero, sacamos una copia del fichero actual, por si hubiera que volver atrás:
mv /etc/localtime /etc/localtime.old
ln -s /usr/share/zoneinfo/Europe/Madrid /etc/localtime
La otra opción es reconfigurar el paquete tzdata
Cuando se trabaja con Informix, y se tiene odbc generados para algún servidor que tenga una determinada instancia (ejemplo ol_srv1) y tenes otro servidor que tenga el mismo nombre de instancia, el odbc da problemas al configurarse, porque por algo al poner la instancia (ServerName en el odbc de Windows) entonces queda atada la instancia a la ip, entonces si configuras otro odbc y también pones el mismo servername, y cambias la ip, todos los odbc generados que tengan ese servername quedan con la misma ip, y esto puede causar problemas, o confusiones.
Entonces la solución es cambiar la instancia, pera eso debemos hacer los siguientes 4 pasos.
En el ejemplo cambiaremos en uno de los equipo el nombre de la instancia de ol_srv1 a ol_srv2
1 – tocar el archivo /opt/informix/ifmx.sh, cambiamos donde dice ol_srv1 a ol_srv2
2 – mover el archivo /opt/informix/etc/onconfig.ol_srv1 a /opt/informix/etc/onconfig.ol_srv2
3 – en el archivo onconfig.ol_srv2 DBSERVERNAME modificar ol_srv1 a ol_srv2
4 – el archivo /opt/informix/etc/sqlhost cambiar ol_srv a ol_srv2
Luego reiniciamos informix y queda este equipo con el nombre de instancia ol_srv2.
En este pos lo único que queda es agradecerle a Diego, que fue quien me enseño como cambiar esto, y exigio que lo nombrar.
Si necesitamos agrandar los temporales de Informix, para por ejemplo cuando nuestra aplicación utiliza índices temporales muy grandes, lo que hacemos es lo siguiente:
Debemos ir a la carpeta donde están los temporales (normalmente /etc/datos.informix/).
Entonces con el motor de base de datos levantado ejecutamos los siguiente
onspaces -c -d temp4dbs -t -p /opt/datos.informix.test/temp4dbs.000 -o 0 -s 256106
Luego en la carpeta de instalación de informix (normalmente /etc/informix) en la carpeta etc, editamos el onconfig, sería algo así:
informix@suseimf:/opt/informix/etc>cd $INFORMIXDIR/etc
informix@suseimf:/opt/informix/etc> vi $ONCONFIG
agregamos el nuevo temporal en la línea del DBSPACETEMP, sería algo así:
DBSPACETEMP tempdbs,temp1dbs,temp2dbs,temp3dbs...... # Default temp dbspaces
En este caso tenemos 4 archivos de temporales, esto lo tienen que adaptar a sus necesidades y configuración que hayan realizado, y dependiendo del archivo que hayan creado.
Para los desarrolladores estar bajando y subiendo el tomcat para que se actualicen las clases es un poco molesto, entonces tomcat provee de una configuración para no tener que bajar y subir, sino que solo al copiar las clases el solo se actualiza.
Tenemos que editar el archivo context.xml que se encuentra en la carpeta conf.
Buscamos el siguiente texto
context privileged="true"
Y lo cambiamos por este
context privileged="true" reloadable="true"
Para importar un .sql con insert y update a informix deberían de ejecutar lo siguiente:
dbaccess mi_base script.sql.
Puntos a tener en cuenta, primero se tienen que loguear con un usuario de permisos en informix, el archivo debe de ser .sql y tener permisos en ese archivo.
El .sql yo tengo insert y update, pero puede tener cualquier sentencia sql.
Si trabajas con Windows 7, con genexus (por lo menos la versión 9), y tenes que utilizar algún webservice entonces tenes que trabajar con el wsdl Inspector, pero al ejecutarlo la primera vez, este no funciona.
Para arreglar esto tenemos que registrar una dll, entonces se debe de hacer lo siguiente:
Desde dos, desde donde se esta instalado el framework, corremos lo siguiente:
regasm “Dir donde está instalado genexus”\GeneXus90\gxwsdlinspector.exe"
por ejemplo se podrían seguir los siguientes 3 pasos
1) Abrir CMD
2) Ir a: C:\Windows\Microsoft.NET\Framework\v1.1.4322
3) Ejecutar: regasm "C:\Program Files (x86)\ARTech\GeneXus\GeneXus90\gxwsdlinspector.exe"
Nota: Gracias a Federico que fue quien me paso la solución
Si en algún momento les salió este error, y pasaron horas intentando ver que es, no son los únicos, a mi me paso. Entonces les cuento cual es el error.
El problema es cuando pasas algún .sh que utilices (por lo menos en mi caso), en algún momento lo pasaron por Windows, entonces algún símbolo extraño le puso.
Entonces para solucionar el problema hay que editar el .sh directamente desde Linux y crearlo directamente desde ahí, si el código es muy largo lo mejor es abrir un putty, en Windows editar el archivo con block de notas o el editor que quieran, copiar todo el código, y en putty, hacemos vi miscrip.sh, luego i (insertar), y luego botón derecho del mouse, esto pega todo lo copiado, y :wq, y listo, arreglado el problema.
El problema que estoy teniendo es que tenía una tabla que la cargaba en un solo proceso y esto cargaba 16 millones de registros.
La clave de esta tabla era los 2 primeros registros y luego tenia uno de datos que era un VarChar de 800.
El problema es que al procesar algo de la tabla que comentaba, que es decir al hacer un select sobre esta tabla, como las estadísticas no estaban actualizadas, el motor informix, no se daba cuenta que la tabla tenia 16millones de registros y se pensaba que tenia 0 registros, entonces no utilizaba el índice que debía, ya que le motor suponía que al tener tan pocos registros, que no utilizara índices sino directamente recorra la tabla entera.
Esto lo que pasaba era que utilizaba demasiado espacio tanto en los temporales como en los logs de informix, lo cual hacia que mi aplicación se cayera y dijera que no tenia espacio para procesar esto.
Antes de actualizar las estadísticas, hacer un count de la tabla migración me demoraba aprox 20 minutos, luego de actualizar las estadísticas me demora un minuto y poquito.
Entonces el comando para actualizar las estadísticas de informix es el siguiente:
UPDATE STATISTICS LOW FOR TABLE nombreTabla; (ejecución muy rápida, estadísticas poco detalladas, planes de ejecución adecuados)
UPDATE STATISTICS MEDIUM FOR TABLE nombreTabla; (ejecución relativamente rápida, estadísticas confiables, planes de ejecución buenos)
UPDATE STATISTICS HIGH FOR TABLE nombreTabla; (ejecución muy costosa, estadísticas con máximo detalle, planes de ejecución óptimos)
Si se esta ejecutando esto desde genexus, se debe de poner adelante SQL, y poner este código en algún procedimiento.
Para respaldar una base de datos en informix, tenemos lo que posteamos en otro post (http://mistrucosinformaticos.blogspot.com/2010/02/importar-y-exportar-base-en-informix.html), pero también tenemos, y es más fácil, dbexport y dbimport.
Par exportar la base de datos, ejecutamos:
dbexport –d nombre_base_de_datos
ejemplo: dbexport –d mibase
Esto nos genera una carpeta mibase.exp, con muchos .unl, y un mibase.sql
Para importar este respaldo, lo que hacemos es nos paramos donde esta la carpeta .exp, por ejemplo si ejecutamos el comando anterior en /home/informix, nos genera una carpeta /home/informix/mibase.exp, y para ejecutar el siguiente comando nos paramos en /home/informix.
Entonces para importar, ejecutamos lo siguiente
dbimport mibase –d datosdbs (si queremos levantar a datosdbs, sino al que sea).
Este sería el caso en que todo anda bien, ahora vamos a poner 2 ejemplo en los cuales podemos tener algún problema.
El primer caso seria que la base que respaldo se llame mibase, y la base donde tengo que levantarla se llama migase2, entonces para poder importarla tenemos que hacer 2 cosas.
La primera es renombrar la carpete, en el ejemplo seria mibaes a mibase2.
mv mibase.exp mibase2.exp
Y lo siguiente es entrar en la carpeta mibase2.exp, encontrar el archivo mibase.sql, editarlo y en el primer renglón donde dice mibase, cambiarlo a migase2, y también renombrar el archivo mibase.sql a migase2.sql.
Luego de esto solo se debe de importar con dbimport la base y listo.
Ahora el segundo inconveniente, es si tenemos la fecha americana en un informix (ejemplo 12/31/2010) o la fecha española (ejemplo 31/12/2039). Si tenemos diferencia en el servidor donde hacemos el backup y el servidor donde lo levantamos, cuando ejecutemos el dbimport nos dará un error y no nos levantara la base de datos entera.
Para detectar que debemos hacer, debemos editar alguno de los unl, y ver en que formato esta la fecha, y dependiendo del formato agregar los siguiente:
Fecha inglesa: export DBDATE=MDY4/
Fecha española: export DBDATE=DMY4/
Luego de esto se corre el dbimport, y listo.
Como hace mucho que quiero escribir algo de Samba y encontré un muy buen manual, entonces mejor pasarles el link solamente:
http://www.guia-ubuntu.org/index.php?title=Samba
Normalmente cuando instalamos un tomcat nuevo ya sea en Windows o Linux, normalmente instalamos el admin, bueno lo primero que intentamos es acceder para levantar, bajar o ver solamente las aplicaciones que tenemos, pero lo primero que nos pide es la contraseña, y tenemos que configurarla.
Esto es muy fácil, lo que hay que hacer es editar el archivo de TOMCATDIR/conf/tomcat-users.xml, donde tomcat dir es la raíz de donde está instalado tomcat, por ejemplo c:\tomcat o si es Linux /tomcat
Y lo que tenemos que configurar es el rol usuario y contra de manager, entonces debería de quedar algo asi (pueden haber mas líneas)
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="" roles="admin,manager"/>
</tomcat-users>
La líneas que tienen que agregar o editar son la 3ra y la 5ta, si se fijan para acceder al manager en este ejemplo usarían el usuario admin, y la contra vacía.
Hoy otra vez tenia que una maquina virtual hecha con VMWare, le tenía que agrandar el disco, si se fijan en el post http://mistrucosinformaticos.blogspot.com/2008/12/agrandar-particion-en-maquina-virtual.html van a ver como lo hacía hasta hoy.
Por casualidad antes de hacer esto fue a editar la configuración de la maquina virtual, luego fui a disco duro, y abajo donde dice Utilitis, abrí el combo y dice Defrag, Expand, Compact, obviamente lo primero que hice fue ejecutar Expand, me pide el tamaño al cual quiero llevar mi disco duro, y luego de aceptar, espero un rato, y cuando termina tengo el disco ya del tamaño pedido. Eso si van a tener que utilizar algun programa para agrandar la particion (sugiero Gparted).
Esto lo probé con VMWare Workstation, y el Player nuevo, que también tienen edición y creación de maquinas.
Asi que desde ahora no tenemos que utilizar los comandos de DOS sino que el mismo VMWare lo tiene todo incluido en su IDE.