2017-06-20 4 views
0

Je suis un développeur java Unix qui essaie d'aider un développeur de datastage, donc hors de mon aquarium.DataStage: connectez-vous à une connexion de niveau bas

Le processus de datastage se connecte à une base de données hébergeant des transactions financières sur un serveur UNIX. il existe un processus de datastage pour la migration des transactions financières vers le système ACCOUNTING. Les développeurs ETL, pour une raison ou pour une autre, ont spécifié qu'ils ne peuvent pas exécuter un ou plusieurs ETL spécifiques lors de l'exécution de nouvelles transactions financières et ont spécifié que le processus d'insertion des transactions dans la DB doit être arrêté. Moi java geek pense avoir un processus de vérification d'un service en cours d'exécution au port 55555 serait parfait. Mais nous ne pouvons pas trouver un moyen pour Datastage de créer une connexion socket à un port à vérifier. Je ne fais pas de datastage, donc je ne sais pas comment contourner ses limites.

Le développeur ETL pense qu'un script cron exécuté chaque minute qui insère un statut haut/bas pour le processus dans une table spéciale serait parfait. Je pense que c'est un gaspillage de cpu.

Je ne peux pas être la seule société qui ne peut pas exécuter un ETL lorsqu'un processus est en cours d'exécution sur un système distant.

Comment avez-vous résolu ce problème? Existe-t-il un moyen de se connecter à une socket de serveurs distants et d'exécuter le service depuis datastage ???

merci

+0

Donnez-nous plus de détails s'il vous plaît - pourquoi le processus DataStage ne devrait-il pas fonctionner? Je suis sûr qu'il existe une solution de base de données pour cela. – MichaelTiefenbacher

+0

a ajouté des infos basées sur le commentaire –

+0

Sur le plan technique, DataStage est un générateur de code de la description graphique à C, et il est possible d'écrire vos propres fonctions C et de les appeler depuis DataStage. Donc, il serait possible d'utiliser une socket.Cependant, ce n'est peut-être pas la meilleure solution: si le Job DataStage est parallèle, chaque branche du Job ouvre son propre socket et peut trouver un statut différent des autres! Comme la base de données est le point central du système de transactions financières et du travail ETL, je pense que ce serait le meilleur endroit pour gérer la coopération entre ces programmes. –

Répondre

0

après un tas de discussion. d'options nous avons trouvé

  1. Ajouter une étape pour les scripts de serveur d'arrêt de démarrage qui écrit l'état du processus à une table. pro: facile à mettre en œuvre. con: pas très précis (un geek comme moi risque de contourner le script start/stop et d'exécuter/exécuter l'exécutable en ignorant le script start stop et en ignorant l'étape qui insère le statut.) Aucun document réseau et InfoSec

  2. Script basé sur Cron qui met à jour la table avec l'état minute par minute. quelle douleur!!!! Pas de réseau et de documents InfoSec.

  3. Un script mis à la disposition du réseau via inet ou xinet. Le problème est le datastage. Le développeur ETL ne sait pas comment se connecter à un socket via un programme C ou Java. Crée Infosec et les problèmes de paperasserie réseau.

  4. Nouveau service Web (un serveur Tomcat dessert un certain nombre de services Web) Problème de datastage Le développeur ETL ne sait pas comment se connecter à un socket via un programme C ou Java. Crée Infosec et les problèmes de paperasserie réseau.

Les options 3 et 4 sont précises et en temps réel. options 1 et 2 ouvre la possibilité d'inexactitudes en contournant le processus, mais cela ouvre une boîte de Pandore différente.

Nous allons probablement implémenter l'option 1