Acceso a Datos con ODAC

Publicado en 'Programación' por eduar2083, 14 Nov 2015.





  1. eduar2083

    eduar2083 Miembro frecuente

    Registro:
    26 Jul 2011
    Mensajes:
    224
    Likes:
    46




    Buenas,
    Se tiene un conjunto de aplicaciones .Net (web y consola) que se conectan a diversas BDs Oracle y que están desplegadas en servidores de 32 y 64 bits (Windows Server 2003/2008). Actualmente todas las conexiones se realizan a través de ADO.Net utilizando el proveedor nativo de .Net para Oracle (librería System.Data.OracleClient) y como es sabido esta librería está desfasada y próxima a desaparecer del framework. Investigando un poco supe que se debe utilizar el proveedor proporcionado por Oracle (ODP.Net) y para ello se debe instalar ODAC en los servidores de aplicaciones. Es aquí donde surge mi primera duda ya que hay ODACx32 y ODACx64. Los servidores de BD son Linux de 64 bits (si no recuerdo mal son Red Hat). ¿Debe instalarse ODAC de 64 bits en todos los servidores de aplicaciones (Windows Server) aún cuándo estos sean de 32? A simple vista mi respuesta fue que NO, sino que debe instalarse ODACx32 en los servidores WinServerx32 y ODACx64 en los WinServerx64 pero necesitó confirmar este dato ya que no seré yo quién haga la instalación pero sí debo indicar qué es lo que debe hacerse.
    Mi otra duda surge desde el punto de vista del desarrollo. Cuando se construyeron las aplicaciones con el proveedor de .Net todos los desarrolladores utilizábamos winxp y cuando queríamos publicar ya sea para un WinServerx32 o WinServerx64 simplemente se seleccionaba en el ConfigurationManager la opción adecuada:
    X32 cuando iba publicar en un WinServerx32
    X64 cuando iba publicar en un WinServerx64
    Y listo sin más todo iba bien.

    Ahora bien, actualmente algunos desarrolladores utilizan WinXp, otros Win7, Win8, etc e imagino que a cada equipo debe instalarse el ODAC ya que las BDs de desarrollo también corren sobre Linux.
    ¿Si a un equipo de 32 bits se le instala ODACx32 podrá generar un compilado para un WinServerx64?
    Y por otro lado:
    ¿Si a un equipo de 64 bits se le instala ODACx64 podrá generar un compilado para un WinServerx32?

    De momento estas son las dudas que me surgen antes de abordar este cambio de Acceso a Datos ya que no he trabajado anteriormente con ODAC. Tengo planeado simular la situación utilizando máquinas virtuales para apreciar los resultados pero quería postear mi duda por aquí y quizás alguien ya trabaja o haya trabajado con ODAC y pueda orientarme.

    Muchas gracias, saludos.
     
    Última edición: 14 Nov 2015


  2. gnox

    gnox Miembro maestro

    Registro:
    3 Ene 2013
    Mensajes:
    794
    Likes:
    252
    El unico que te lo limita es el OS donde va ha ir el cliente de ODAC, el protocolo de comunicacion no le afecta, si el software es de 64 bits tienes que instalarlo en Windows de 64, si el software es de 32 bits puedes instalarlo en Windows 64 y 32 , osea puedes tener los dos clientes en un windows de 64 bits. Al ser de Oracle el producto revisa sus requerimientos (pagina support.oracle.com / si tienes id) si no es exacto el OS a lo que requiere puede no funcionar el ODAC (miro de reojo a w200x R2). Una app de 64 bits puede comunicarse con el Odac de 32 bits y este comunicarse con una bd de 64 , pero creas un embudo dependiendo de tu app y vol de datos procesados.

    Tienes que hacer pruebas y no cambiar solo por requerimiento de middleware, captura performance antes y despues.
     
  3. eduar2083

    eduar2083 Miembro frecuente

    Registro:
    26 Jul 2011
    Mensajes:
    224
    Likes:
    46
    Gracias gnox por responder, me has aclarado las dudas.
    Imaginaba que sería así con el tema de la instalación del software, voy a montar unas máquinas virtuales y probar. Según lo que he leído en foros MSDN que el antiguo componente de Miscorsoft no debería utilizarse más y que la performance del componente de Oracle es mucho más eficiente. Cómo bien indicas, realizaré pruebas pero el cambio sí tengo que hacerlo y que los nuevos desarrollos se hagan utilizando este componente, Lo que me alivia muchísimo es que casi todos los objetos se llaman igual (OracleConnection, OracleCommand, etc) así que no habría mucho que modificar aparte de referenciar la nueva librería. Voy a hacer pruebas y si me surgen problemas ya comentaré por aquí.

    Muchas gracias, saludos.