miércoles, 11 de marzo de 2009

Forefront y Evento 81 en DTS

Sintomas:
Se produce el evento 81 en Data Transformation Services con el siguiente texto descriptivo que intento.

No se encuentra la descripción del Id. de suceso ( 81 ) en el origen
.......
Origen del error: Paquete de Servicios de transformación de datos (DTS) de Microsoft
Descripción del error: Error del paquete debido a un error en el paso

......
Nombre del paquete: Microsoft Forefront Client Security
Descripción del paquete: Microsoft Forefront Client Security DTS
........

Error en el paso 'DTSStep_DTSTransferObjectsTask_1'
Origen del error del paso: Paquete de Servicios de transformación de datos (DTS) de Microsoft
Descripción del error del paso:Estructura OLEVERB no válida
(Paquete de Servicios de transformación de datos (DTS) de Microsoft (80040000): Estructura OLEVERB no válida
.......

Fin de la ejecución del paso: 08/03/2009 1:15:02
Tiempo total de ejecución del paso: 0,094 segundos
Indicador de progreso del paso: 0


Resolución
Hay que dar permisos de escritura en el directorio de scritps a la cuenta del agente SQL Server.
Ese directorio es por defecto:
%Program Files%/Microsoft Forefront\Client Security\Server\DTSScriptFiles

Comentarios:
Obtuve la información desde:
http://social.technet.microsoft.com/Forums/en-US/Forefrontclientgeneral/thread/0e04b627-09e5-40d5-a15f-1e8fef944d88/

Microsoft tambien dice que el evento 81 se produce cuando la cuenta del agente SQL Server no es del dominio y/o no tiene acceso a las bases de datos. Verificar por si acaso.

viernes, 27 de febrero de 2009

Recuperar documento Word con Google Apps

Sintomas:
No podemos abrir un documento con Microsoft Word. Probablemente porque está corrupto.

Resolución:
Subir el documento a Google Docs.
Probablemente lo leerá sin problemas aunque es posible que se pierda algún fragmento.
Con el mismo Google Docs podremos editarlo e imprimirlo.
También, si lo consideramos necesario, podemos bajarlo de nuevo en formato Word. Estará reparado y podremos abrirlo con Word.

Comentarios:
Es una solución elegante porque nos permite reparar sin instalar ninguna herramienta en el equipo.
Mas alla de aspectos técnicos, resulta triste que Microsoft Word no pueda reparar un documento en su propio formato.
Recuerdo una organización que en 1995 migró de WordPerfect a MS-Word por que esté último recuperaba mejor los documentos de versiones anteriores WordPerfect que el editor original en sus nuevas versiones.
Si el futuro está en las aplicaciones on-line, Microsoft debería jubilar el viejo código de Charles Simonyi y desarrollar un nuevo procesador. O quizás dejar paso a Open Office.

Contexto:
Encontré esta solución cuando ayer a las 19:30 mi hija y sus amigas descubrieron que no podían imprimir un trabajo que debía presentar al día siguiente. Después de pelearme durante tres horas con KBs de MS, búsquedas en Google y herramientas demo de recuperación, y cuando ya pensaba en instalar Open Office, se me ocurrió probar y ¡Voilá!.
Lo irónico es que desde hace dos o tres años vengo diciéndole a mi hija que utilicen Google Docs en lugar de llevar el documento en la llave USB de casa en casa.
Supongo que seguirá sin hacerme caso.

viernes, 13 de febrero de 2009

Error accediendo a Cumulus Web Services desde .NET

Sintomas:
Al utilizar desde .net mensajes de los web services de Cumulus (DAM Canto) que no devuelven respuesta se produce el error: La operación unidireccional devolvió un mensaje no Null con Action=''
Solución:
Editar manualmente el archivo reference.vb generado por el asistente de referencias de servicio.
Cambiar en los contratos de mensaje el atributo IsOneWay:=de false a true

lunes, 9 de febrero de 2009

Desencadenadores y linq

Sintomas:
Obtenemos errores del tipo fila no existente al submitchanges que afectan a una tabla donde hemos añadido un trigger o desencadenador que cambia la fila insertadas.
Resolución:
Finalmente creo que es mejor prescindir del desencadenador en estos casos.
Explicación:
El problema aparece cuando:
- leemos una fila
- la modificamos y la guardamos (submit changes)
- la volvemos a modificar y la volvemos a guardar.

La causa esta clara nuestra copia local de la fila no coincide con la existente en el servidor que ha sido modificada por el Trigger despues de la primera operación de guardado.

jueves, 5 de febrero de 2009

Web Control Menu, Chrome y Internet Explorer 8

Sintomas
El control Web Menu de Visual Studio 2008 no funciona bien en Chrome ni en Internet Explorer 8.
Solución
Existen varias soluciones (basta hacer una busqueda). Por mi parte lo he resuelto mediante un metatag en el fuente HTML

meta equiv="X-UA-Compatible" content="IE=EmulateIE7"

Y mediante el siguiente código en VB.

Private Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit
If Request.ServerVariables("http_user_agent").Contains("MSIE(8.0)") Or Request.ServerVariables("http_user_agent").Contains("AppleWebKit") Then Page.ClientTarget = "uplevel"
End Sub

Novedades posteriores
Parece que la solución oficial esta disponible en este blog pero yo esperaría a que sea oficial de verdad.

Cancelar la combinación en curso

Sintomas:
Cuando vas a aumentar la capacidad de un disco en una VM de hyper-V, te dice que no puedes editar el disco porque tienes instantaneas.
Eliminas las instantaneas pero sigues sin poder editar.
Curiosamente en el menú contextual de la maquina y en el de accciones aparece una opción "cancelar la combinación en curso".
Solución:
Esperar fijandose en el informe de combinación que aparece a la derecha de la maquina virtual.
Explicación:
Al eliminar una instantanea (snapshot) deben combinarse dos archivos uno que contiene el disco en su estado original y otro que contiene los cambios realizandose.
El motivo de escribir este post es incluir este vinculo http://itproctology.blogspot.com/2008/03/snapshottingnot-your-checkpointing.html
que creo es muy conveniente leer antes de comenzar a utilizar las instantaneas como copias de seguridad.

jueves, 22 de enero de 2009

Significado de códigos de error del sistema

Síntomas:
El sistema nos da un código de error hexadecimal ¿qué significa?

Resolución:
Una solución simple es convertir a decimal el código (p.ej. la calculadora de windows) y luego escribir en línea de mandatos:

net helpmsg

Alternativamente podemos buscar en la página:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/system_error_codes.asp

Comentarios:
Descubrí esta tontería, que hace años debía haber conocido, cuando intentaba interpretar el código de error que me había devuelto una tarea programada para reiniciar el servidor mediante shutdown /r.
Entonces leí este hilo: http://www.tech-archive.net/Archive/Windows/microsoft.public.windows.terminal_services/2006-08/msg00331.html