Archive for 2012

Error SQL0668N en DB2

jueves, octubre 18th, 2012

Este error ocuurre por lo general cuando se hicieron trabajos sobre la tabla o tablespaces, por lo que se requiere una orden para volver a activar la tabla y que este disponible para otras operaciones.

SET INTEGRITY FOR nombre_tabla IMMEDIATE CHECKED

Maquinas virtuales para probar multiples navegadores

jueves, octubre 11th, 2012

Microsoft elaboro una lista de máquinas virtuales para que los desarrolladores web puedan probar su sitio web bajo los distintos navegadores que hay existen en el mercado.

Aqui encontratraras la lista completa

https://www.microsoft.com/en-us/download/details.aspx?id=11575

Lo unico si, es que dependiendo de tu velocidad, debes armarte de paciencia para la descarga.

Megabytes libres para Subversion

miércoles, octubre 10th, 2012

Para los que estamos acostubrados a trabajar con controladores de versiones nos es útil contar con un par de megabytes libres para poder comprometer dentro de un servidor. Es en esta busqueda que me he topado con un par de sitios que ofrecer repositorios pagados, pero todos ellos tienen un plan libre que ofrece una cantidad de megabytes gratuitos.

https://unfuddle.com/ 512MB Libres
https://projectlocker.com/ 200MB Libres
https://www.sliksvn.com/ 100MB Libres
https://riouxsvn.com/ 50MB Libres
https://xp-dev.com/ 10MB Libres

En este GonzaloAro_Blog_AnalisisSVN, resumo todas las sumas y restas de lo que pude extraer (a esta fecha ) de los servicios. Espero y les sea útil.

Closure Compiler de Google para minimizar Javascript

miércoles, octubre 10th, 2012

Dentro de las herramientas utiles para webmasters o optimizadores de sitios web ed Closure Compiler de Goole, que tiene por onjetivo minimizar el Javascript, a parte de correjirlo orientadolo a las buenas prácticas de desarrollo. Es util como herramienta, y aun que ya había mostrado el YUI Compresor, que comprime tanto JS como CSS, Closure Compiler tiene un funcionalidad adicional interesante, la de fusionar dos archivos Javascript evitando la redundancia de codigo, lo que no deja de ser útil.

Luego de descargarlo, y asumiendo que tienes java 1.6 instalado al menos, debes ejecutarlo

c:\opt\java6\bin\java -jar C:\opt\googleClousureCompiler\compiler.jar --js=file.js --js_output_file=file_min.js

Entiendase aqui que tengo una forma de instalar todos los programas que ejecutaré a linea de mando, por eso ambos estan en c:\opt\…algo, además aquí establesco las rutas completas debido a que esta llamada al programa esta hecha en el mismo directorio en donde se encuentra el archivo origen.

Basicamente con esto obtienes un javascript minimizado. Un batch simple para realizar esta tarea sería

c:\opt\java6\bin\java -jar C:\opt\googleClousureCompiler\compiler.jar --js=%1.js --js_output_file=%1_min.js
ren %1.js %1.js.old
ren %1_min.js %1.js7

Y estando todo bien configurado en el PATH se debiese obtener un resultado optimo. Esta linea de comando, aparte de correr el script central, además corre el re nombramiento de archivos de forma que ademas queda todo respaldado con la opcion de vuelta atras.

Oracle no inicia luego de un reinicio

martes, octubre 9th, 2012

Debido a que en un servidor Linux se le estableció más RAM hubo que apagarlo, en el estaba instalado Oracle pero la máquina nunca había sido reiniciada luego de la instalacion de Oracle. Quizas el hecho de hacer una instalación Oracle descuidada ayudo a que luego de un reinicio no partiera Oracle, aun cuando estaba claro que en el futuro lo iba a iniciar a linea de mando debido a que al ser instalado no lo introduje en el proceso de init de linux.

Primero, conectarse como usuario de oacle, es conocido que en Linux las operaciones sobre base de datos NO deben hacerse como root. Para cambiarme de usuario al de Oracle y luego iniciar la base de datos ejecute

su - oracle

Luego iniciar la base de datos, previa revision de variables de configuracion del entorno.

Se inicia además el listener, de forma que así se pueda conectarse a la base de datos.

Se conecta a través de SQLPlus para ejecutar el inicio de la base de datos

sqlplus /nolog
connect / as sysdba
startup

Esto puede generar el error

ORA-00205: error in identifying control file, check alert log for more info

Lo que significa que no esta configurado el archivo de control o esta perdido.
Hay que crear un pfile, para luego modificar sus parametros coonsiderando el archivo ctl quese tenga.

Pero para volver a ejecutar el comando debes detener

shutdown abort

Corta todas las conexiones y hace el proceso de shutdown. Puede existir la posibilidad de que aun con esto puedan existir procresos Oracle corriendo a través de un ps -fea, verificar que ninguno este corriendo, puedes identificarlo debido a que estan utilizados por el usuario oracle.

Luego de detener, inicias nuevamente la base de datos apuntando al nuevo pfile

SQL> startup pfile='/opt/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora'
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size                  2220200 bytes
Variable Size             616566616 bytes
Database Buffers          444596224 bytes
Redo Buffers                5554176 bytes
Database mounted.
Database opened.
SQL> exit

Con lo que desde ese momento tienes tu base de datos levantada.

ORA-12505: TNS: el SID es desconocido

martes, octubre 9th, 2012

Esto te puede ocurriral iniciar el listener de Oracle

lsnrctl start

o al intentar conectarte a Oracle a través de un cliente Oracle. Esto puede significar que no existan las variables de entorno, sobre todo ORACLE_SID (SID, Service Identificator)

Si esta configurado revisa dos archivos tnsnames.ora y/o listener.ora.

En el caso de tnsnames.ora, luego de crear la base de datos debiese existir una anotación sobre el nombre y el protocolo que se utilizará. Ejemplo

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

Que en mi caso estaba correcto.
En cambio al listener.ora le faltaba referenciar al SID orcl. Para hacerlo, se debe agregar dentro de la lista de listener, que en mi caso solo era este

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/11.2/db_1)
      (SID_NAME = orcl)
    )
  )