Domanda

È possibile chiamare una procedura memorizzata da un'altra procedura memorizzata in modo asincrono?

Modificare: Nello specifico sto lavorando con un database DB2.­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

È stato utile?

Soluzione

Sintesi:Sì, se il tuo database dispone di un servizio di coda messaggi.

Puoi inserire un messaggio in una coda e il processore della coda lo utilizzerà in modo asincrono.

  • Oracolo:code
  • Server SQL:intermediario di servizi
  • DB2:mediatore di eventi

Per i linguaggi di procedura memorizzata "puri" (PL/Sql o T-Sql) la risposta è no, poiché funziona contro il modello di transazione fondamentale della maggior parte dei database.

Tuttavia, se il tuo database dispone di un meccanismo di accodamento, puoi utilizzarlo per ottenere lo stesso risultato.

Altri suggerimenti

Con MS Sql Server 2005, provare le procedure memorizzate di Service Broker e/o CLR.Non penso che ci sia qualcosa di integrato direttamente in TSQL.

Sembra che tu debba mettere in atto alcuni lavori pianificati con Cron (o Windows equivalente).È possibile utilizzare la chiamata di proc memorizzata iniziale per impostare una sorta di flag nel DB, che viene quindi controllato periodicamente da un processo cron.Se è necessario un ritardo specifico prima dell'esecuzione del secondo lavoro, dovresti essere in grado di farlo pianificando l'attività dal lavoro cron.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top