2011-05-25 14 views
5

Tengo una base de datos Oracle que ejecuta un trabajo PL/SQl una vez por semana para copiar datos de una tabla en la base de datos Oracle a otra base de datos Oracle utilizando enlaces de bases de datos Oracle. Ambos sistemas se ejecutan en Unix/Solaris. El trabajo está programado y ejecutado a través de la instalación Unix Cron.¿Spring/Hibernate es adecuado para un caso de uso que requiere conexiones db heterogéneas?

La máquina remota ahora se está migrando de UNIX a una plataforma de Windows con una base de datos de servidor MSQL. He estado buscando la posibilidad de usar enlaces de bases de datos Oracle para conectarme desde UNIX a la base de datos del servidor MSSQL que se ejecutará en una plataforma Windows. Es posible, pero me parece que hay muchos problemas para que funcione y no hay mucha información sobre cómo implementarlo.

La otra solución en la que estoy pensando es implementar el proceso como un proceso de daemon Java que se ejecutará todas las semanas. Todo lo que hará es conectarse a la base de datos de Oracle para leer datos de algunas tablas, conectarse a la base de datos del servidor MSSQL y ejecutar algunos comandos de inserción. Creo que necesitaré dos tipos de controladores para esto, es decir, jdbc para Oracle y jdbc para MSSQL Server.

¿Ofrece Spring alguna instalación que haga que lo anterior sea más fácil de implementar y/o mantener? (Específicamente los controladores múltiples y la parte de programación de los requisitos)

¿Hibernate es adecuado para administrar las conexiones de bases de datos múltiples o es eso exagerado?

Siéntase libre de sugerir también una solución mejor :)

Gracias

Respuesta

2

La primavera tiene extenso support for scheduling tasks.

La ejecución de consultas en bases de datos múltiples a través de diferentes controladores es una característica básica de JDBC; Spring no es realmente relevante allí, a menos que desee que suceda en una única transacción (distribuida). Spring hace support those via JTA and XA.

+0

¿Es Hibernate adecuado para administrar las conexiones de bases de datos múltiples o es eso exagerado? – ziggy

+0

@ziggy: ciertamente se puede usar para eso, pero definitivamente lo consideraría excesivo si todo lo que haces es copiar datos de una tabla a otra sin modificarla. –

+0

Sí, eso es lo que pensé. Gracias – ziggy

2

Esto suena como una aplicación perfecta para Spring Batch

Usted debe verificar estas páginas para ver de qué se trata:

Spring Batch aceptará sin problemas diferentes fuentes de datos con diferentes conductores, pero probablemente tendrá que proporcionar algunos RowMapper objetos para crear objetos intermedios.

Cuestiones relacionadas