none
Error accediendo a archivo DBF desde un paquete SSIS que se corre en un servidor web RRS feed

  • Pregunta

  • Buen día a todos, solicito ayuda en el siguiente problema:

    Tengo un servidor Web (SERWEB) que tiene instalado WinServer2008 64 bits con I.E.7, allí tengo una página web construida con VBNet 2010 que ejecuta un paquete DTSX mediante las herramientas del Namespace: Microsoft.SqlServer.Dts.Runtime.

    Este paquete accede a unos archivos DBF que se encuentran en un servidor de archivos foxpro (SERFOX) y lleva sus datos a una BD SQL Server 2008 que se encuentra en otro server (SERDBM). Para acceder a los archivos DBF usé el driver de Visual FoxPro 9 VFPOLEDB1.

    El problema es que mi paquete solo funciona desde mi ambiente de desarrollo, el cual es un Portátil con Win7 32 Bits.

    Al parecer lo que no funciona es el VFPOLEDB1 en mi SERWEB a 64bits, ¿qué debo hacer? pasar mi SERWEB a 32bits? ó Integration Services puede conectar a un origen DBF de otra manera?

    Gracias

    martes, 8 de noviembre de 2011 22:08

Respuestas

Todas las respuestas

  • Hola.

    Deberás correr el paquete en modo 32 bits, el problema es ese, no hay drivers para x64. Para ello, tienes que invocar por línea de comandos el ejecutable DTExec, pero el que esté dentro de C:\Program files(x86)\SQL Server... Si existe dicho fichero en esa ruta, tendrás que instalar las herramientas cliente de SQL Server en la máquina (que es la forma de contar con este ejecutable de 32 Bits). Si lo haces desde un job, es igual, en lugar de ejecutar un paquete, debes seleccionar la ejecución de una línea de comando y especificar DTExec con el resto de sus parámetros.

    Te dejo una referencia a dtexec y los parámetros que requiere:

    http://msdn.microsoft.com/es-es/library/ms162810.aspx


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/ Sígueme en twitter en http://twitter.com/qwalgrande

    miércoles, 9 de noviembre de 2011 8:40
    Moderador
  • Hola,

    De forma añadida a la aportación de Alberto, comentar que cuando configuras el Step en un Job del Agente SQL también se puede señalar que se ejecute en modo 32 bits, a través de la propiedad 32 bits runtime en la pestaña 'Execution options':


    Víctor M. Sánchez García (ES) (BI) Hope this help. Please vote if you find this posting was helpful. if this is an answer to your question, please mark it. http://bifase.blogspot.com | http://twitter.com/atharky
    miércoles, 9 de noviembre de 2011 17:48
  • Muchas gracias a Alberto y Victor por sus respuestas.  Realmente el problema actual es que el paquete lo estoy ejecutando desde mi aplicación construida en VBNet 2010, para eso utilicé las herramientas del Namespace: Microsoft.SqlServer.Dts.Runtime y previamente le instalé al servidor web el Integration Services y el driver de FoxPro 9.0, pero no funciona la transferencia de datos.

    Creo que tendré que reinstalar el servidor web con Win 2008 a 32bits para probar de nuevo.  Les estaré contando.

     

    William Patiño

     

    jueves, 10 de noviembre de 2011 20:33
  • Hola.

    Esperamos tus noticias. Sin opinar que esté ahí la resolución al problema que planteas, es posible que así logres hacerlo funcionar. Otra cosa es el precio que pagas por ello, ya que por una cuestión que seguramente resolverías de alguna otra forma, te condenas a que el sistema operativo en su conjunto no pueda explotar las características y potencia de los procesadores x64. Es por este motivo por el que no te recomiendo hacerlo, tienes un problema de conexión, con compilar la aplicación en modo 32 bits tendría que ser más que suficiente.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/ Sígueme en twitter en http://twitter.com/qwalgrande

    sábado, 12 de noviembre de 2011 8:00
    Moderador
  • Hola William,

    Tengo algunas dudas respecto a tu pregunta:

    a) ¿En qué servidor se encuentra instalado Integration Services? ¿En SERWEB, en SERDBM o en ambos?

    b) ¿En tu entorno de desarrollo, el paquete DTSX qué ejecutas, donde se encuentra almacenado? ¿En tu ordenador local, o en algun servidor de los especificados?

    Te comento todo esto porqué existen problemas al ejecutar paquetes desde aplicaciones aspnet hospedadas en servidores distintos de donde se encuentran los paquetes (depende de donde estén almacenados). Mira esta web y los comentarios: http://msdn.microsoft.com/en-us/library/ms403355.aspx

    ¡Espero que te sirva!

    Saludos.


    Ferran Chopo
    MCPD Web, MCITP SQL Server
    Web: http://www.ferranchopo.com Twitter: @fchopo
    martes, 15 de noviembre de 2011 17:16
  • Hola Ferran y grupo, gracias por sus aportes.

    Respecto de tus preguntas:

    a) le integration Services lo instalé en mi servidor de BD (SERDBM) y también lo instalé en mi SERWEB ya que al ejecutar el paquete desde mi página web publicada, no podía usar las herramientas del Namespace: Microsoft.SqlServer.Dts.Runtime.

    b) Mi paquete DTSX lo tengo en el servidor web en una carpeta dentro de mi sitio web.  La seguridad del paquete es "DontSaveSensitive" y le paso desde mi aplicativo el pwd de mi BD. 

    Mi paquete trae datos desde un origen (tablas DBF en un server llamado SERFOX) y las lleva a SQL Server 2008 en SERDBM.  Las tareas previas del paquete en SERDBM como el borrar tablas de tránsito temporal, funcionan OK, pero la tarea falla al acceder a los datos de la tabla DBF usando en VFPOLEDB.1 Driver.

    Una posible solución sería instalar mi SERWEB a 32bits, pero como dice Alberto en la respuesta anterior, no es justo privarme de la potencia del x64.

    Desde mi equipo de desarrollo (un Win7 a 32bits) la cosa funciona OK ya que el VFPOLEDB.1 corre normal en los 32bits, pero en los 64bits del SERWEB no funciona.

    Por ahora estoy ejecutando la tarea desde mi equipo de desarrollo cuando los usuarios lo requieren, pero la idea es poder implantar la tarea en el servidor web.

    Gracias de nuevo y muy amable por el link

    lunes, 21 de noviembre de 2011 21:18