Salut,
Je travaille sur la refonte d'un SI d'une compagnie d'assurance qui stocke ses données dans une base DB2 sur un AS400.
Ma mission (que j'ai accepté avant que l'enregistrement ne se détruise 5 secondes plus tard) est de diminuer la dépendance de l'entreprise à AS400 car le responsable de cette machine n'est plus très loin de la retraite et donc, il faut virer l'AS400 d'ici 6 ou 7 ans.
Pour la partie IHM, j'ai choisi MVC3/Entity Framework car j'ai créé un Framework qui permet de générer un grand nombre de choses grace aux POCO T4 et à SQL Server.
Le hic, c'est qu'en attendant de virer l'AS400 je dois assurer le synchronisme temps réel entre l'ancienne base et la nouvelle en SQL Server 2008 R2.
Pour se faire, j'ai conçu un mécanisme qui consiste à vérifier la fraicheur des données à la consultation (car d'autres programmes écrivent dans l'AS400 et qu'il n'est pas possible de notifier le SQL Server de ses modifications à la volée).
Essai 1:
Création d'une procédure stockée CLR qui accède à l'AS400 via EasyCom, le connecteur ADO.net 2.0 que possède mon client.
Malheureusement, ce connecteur référence System.Design qui référence system.windows.form qui est incompatible avec SQL Server.
Essai 2:
Création d'une procédure stockée CLR qui accède à l'AS400 via un webservice WCF. Pour ce faire j'ai suivi les instructions : http://nielsb.wordpress.com/sqlclrwcf/
Malheureusement lorsque j'ai voulu référencer le service model, j'ai du référencer system.web, j'ai du référencer system.directoryservice, system.directoryservice.protocols puis System.EnterpriseServices qui m'a demandé System.Runtime.Remoting qui semble être incompatible.
Bref, pourriez-vous me suggérer un moyen (hors ODBC) pour executer des requêtes vers une autre base dans un autre système à partir d'une proc CLR ?
D'avance merci
laurent
Partager