Question

Est-il possible d'appeler une procédure stockée à partir d'une autre procédure stockée de manière asynchrone ?

Modifier: Plus précisément, je travaille avec une base de données DB2.­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

Était-ce utile?

La solution

Résumé exécutif:Oui, si votre base de données dispose d'un service de file d'attente de messages.

Vous pouvez placer un message dans une file d'attente et le processeur de file d'attente le consommera de manière asynchrone.

  • Oracle:files d'attente
  • Serveur SQL:courtier en services
  • DB2 :courtier en événements

Pour les langages de procédures stockées « purs » (PL/Sql ou T-Sql), la réponse est non, car cela va à l'encontre du modèle de transaction fondamental de la plupart des bases de données.

Cependant, si votre base de données dispose d'un mécanisme de mise en file d'attente, vous pouvez l'utiliser pour obtenir le même résultat.

Autres conseils

Avec MS SQL Server 2005, essayez les procédures stockées Service Broker et/ou CLR.Je ne pense pas qu'il y ait quoi que ce soit intégré directement dans TSQL.

Il semble que vous deviez mettre en place certaines tâches planifiées avec Cron (ou équivalent Windows).Vous pouvez utiliser l'appel proc stocké initial pour définir une sorte d'indicateur dans la base de données, qui est ensuite vérifié périodiquement par une tâche cron.Si vous avez besoin d'un délai spécifique avant l'exécution du 2ème travail, vous devriez pouvoir le faire en planifiant la tâche par le travail cron.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top