Esempio Stock
Data aggiornamento: 17 luglio 2006
L'esempio Stock è un'applicazione di Microsoft SQL Server 2005 Notification Services che utilizza sottoscrizioni guidate dagli eventi e sottoscrizioni pianificate per generare notifiche sulla base dei dati del mercato azionario. I sottoscrittori ricevono notifiche se il prezzo delle azioni supera il valore di trigger specificato.
Questo esempio illustra inoltre come ospitare il motore di Notification Services in un'applicazione personalizzata invece di utilizzare un servizio Microsoft Windows creato da Notification Services.
Scenario
Gli investitori sottoscrivono notifiche relative ai prezzi delle azioni. Ogni sottoscrizione include il simbolo dell'azione ed è guidata dagli eventi o pianificata.
Nel caso delle sottoscrizioni guidate dagli eventi, quando arriva un evento relativo alle azioni Notification Services genera una notifica se vengono soddisfatte tutte le condizioni seguenti:
- Il simbolo dell'azione nell'evento corrisponde a quello nella sottoscrizione.
- Il nuovo prezzo dell'azione è superiore al valore di trigger della sottoscrizione.
- Il prezzo più alto precedente dell'azione, incluso in una cronologia eventi delle azioni, è inferiore al valore di trigger della sottoscrizione. In questo modo il sottoscrittore non riceve più notifiche per la stessa azione.
Se il nuovo prezzo dell'azione è superiore al prezzo incluso nella cronologia, oppure se il simbolo dell'azione non è incluso nella cronologia, Notification Services aggiorna la cronologia.
Le notifiche per le sottoscrizioni guidate dagli eventi vengono recapitate una alla volta.
Nel caso delle sottoscrizioni pianificate, Notification Services fa corrispondere i dati della cronologia dei prezzi dell'azione con le sottoscrizioni pianificate. Si ottiene una corrispondenza quando il simbolo dell'azione nella sottoscrizione corrisponde a quello nella cronologia.
Per ogni corrispondenza Notification Services produce una notifica. Il server di distribuzione combina più notifiche per un sottoscrittore in una singola notifica che fornisce i dati relativi al portafoglio titoli del sottoscrittore.
Linguaggi
XML, XSD, XSLT e Microsoft Visual C# o Microsoft Visual Basic.
Funzionalità
Area di applicazione | Funzionalità |
---|---|
Classe di evento |
Una classe di evento e una cronologia eventi. |
Classe di sottoscrizione |
Due classi di sottoscrizione, una per le sottoscrizioni guidate dagli eventi e una per le sottoscrizioni pianificate. |
Classe di notifica |
Due classi di notifica, una per le notifiche guidate dagli eventi e una per le notifiche pianificate. Per le notifiche pianificate viene utilizzato il recapito digest. |
Provider di eventi |
Un provider di eventi di monitoraggio del file system e un provider di eventi non hosted personalizzato. |
Formattatori del contenuto |
Formattatore del contenuto XSLT di Notification Services. Ogni classe di notifica specifica il file XSLT per il formattatore di contenuto. |
Protocolli di recapito |
Protocolli di recapito File e SMTP. |
Motore di Notification Services |
Ospitato in un'applicazione console. |
Prerequisiti
Prima di eseguire questo esempio, verificare che siano installati i prodotti software seguenti:
- SQL Server 2005, con i componenti seguenti:
- Motore di database.
- Notification Services.
- SQL Server Management Studio.
- Gli esempi di Notification Services, inclusi in SQL Server 2005. È possibile scaricare la versione più recente degli esempi dal sito Web per gli sviluppatori di SQL Server.
- .NET Framework SDK 2.0 o Microsoft Visual Studio 2005. .NET Framework SDK è disponibile gratuitamente. Vedere Installazione di .NET Framework SDK.
Generazione della soluzione
Se non è stato ancora creato un file di chiave con nome sicuro, generare il file di chiave seguendo le istruzioni seguenti.
Per generare un file di chiave con nome sicuro
Aprire il prompt dei comandi di Microsoft Visual Studio 2005. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft .NET Framework SDK 2.0, quindi SDK Command Prompt.
-- oppure --
Aprire il prompt dei comandi di Microsoft .NET Framework. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft .NET Framework SDK 2.0, quindi SDK Command Prompt.
Utilizzare il comando CD (change directory) per passare dalla directory corrente della finestra del prompt dei comandi alla cartella in cui sono stati installati gli esempi.
[!NOTA] Per determinare la cartella in cui si trovano gli esempi, fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft SQL Server 2005, Documentazione ed esercitazioni, quindi Samples. Se è stato utilizzato il percorso di installazione predefinito, gli esempi si troveranno in <unità_sistema>:\Programmi\Microsoft SQL Server\100\Samples.
Al prompt dei comandi digitare il comando seguente per generare il file di chiave:
sn -k SampleKey.snk
Importante: Per ulteriori informazioni sulla coppia di chiavi con nome sicuro, vedere l'argomento relativo ai nomi sicuri e alla protezione in .NET Framework nel centro per sviluppatori di .NET su MSDN.
Generare la soluzione in modo da poter avviare l'istanza al termine della creazione.
Generazione della soluzione Visual Studio
Se si utilizza .NET Framework SDK, eseguire le operazioni seguenti:
- Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft .NET Framework SDK v2.0 e quindi SDK Command Prompt.
- Passare alla cartella principale dell'esempio Stock. Digitare il comando seguente per il percorso predefinito:
cd C:\Programmi\Microsoft SQL Server\90\Samples\Notification Services\Stock - Digitare la sintassi seguente per generare la soluzione:
[C#]
msbuild Stock.sln
[Visual Basic]
msbuild Stock_VB.sln
In alternativa, se si utilizza Visual Studio 2005, eseguire le operazioni seguenti:
- Aprire il file della soluzione desiderato (Stock.sln o Stock_VB.sln).
- Generare la soluzione.
Distribuzione dell'istanza di Notification Services
Per distribuire l'istanza di Notification Services, eseguire le operazioni seguenti:
- Creare l'istanza di Notification Services.
- Registrare l'istanza di Notification Services.
- Concedere le autorizzazioni per SQL Server, database e cartelle.
Di seguito è illustrato come eseguire queste operazioni.
Passaggio 1: creazione dell'istanza di Notification Services
Aprire SQL Server Management Studio e connettersi a un'istanza di SQL Server.
In Esplora oggetti fare clic con il pulsante destro del mouse sulla cartella Notification Services e scegliere Nuova istanza di Notification Services.
Nella finestra di dialogo Nuova istanza di Notification Services fare clic su Sfoglia e selezionare il file InstanceConfig.xml nella cartella principale dell'esempio Stock.
In Parametri specificare i valori per i tre parametri:
- SampleDirectory è il percorso della cartella principale dell'esempio Stock. Il percorso predefinito è C:\Programmi\Microsoft SQL Server\90\Samples\Notification Services\Stock.
- NotificationServicesHost è il nome del server locale.
- SQLServer è il nome dell'istanza di SQL Server.
Selezionare la casella di controllo Attiva istanza dopo la creazione.
Fare clic su OK.
Al termine della creazione dell'istanza, fare clic su Chiudi.
Passaggio 2: registrazione dell'istanza di Notification Services
In SQL Server Management Studio espandere il nodo Notification Services, fare clic con il pulsante destro del mouse su StockInstance, scegliere Attività e quindi Registra.
Non selezionare alcuna opzione. Poiché il motore verrà ospitato in un'applicazione personalizzata, non è necessario creare il servizio Windows.
Fare clic su OK.
Al termine della registrazione dell'istanza, fare clic su Chiudi.
[!NOTA] Se si distribuisce un esempio di Notification Services utilizzando l'account del proprietario del database o di un amministratore del sistema, non sarà necessario concedere autorizzazioni per SQL Server a tale account. Se si concedono tali autorizzazioni verrà visualizzato un errore, che può essere ignorato. Quando si distribuiscono applicazioni personalizzate, per migliorare la protezione è consigliabile utilizzare account con privilegi inferiori.
Passaggio 3: concessione delle autorizzazioni per SQL Server, per Windows e per la cartella
In Esplora oggetti espandere il nodo Protezione.
Se è necessario creare un nuovo account di accesso al database, fare clic con il pulsante destro del mouse su Account di accesso, scegliere Nuovo account di accesso e creare l'account:
- Per utilizzare l'autenticazione di Windows, selezionare Autenticazione di Windows e immettere lo stesso account di Windows specificato durante la registrazione dell'istanza.
- Se è necessario utilizzare l'autenticazione di SQL Server, selezionare Autenticazione di SQL Server e quindi immettere lo stesso account di accesso e la stessa password di SQL Server specificati durante la registrazione dell'istanza.
Se l'account di accesso utilizzato per eseguire l'esempio dispone già dell'accesso a SQL Server, fare clic con il pulsante destro del mouse e scegliere Proprietà.
Nel riquadro sinistro della finestra di dialogo Proprietà account di accesso selezionare Mapping utenti.
Concedere le autorizzazioni per il database StockInstanceNSMain:
- In Utenti mappati all'account di accesso seguente selezionare StockInstanceNSMain.
- In Appartenenza a ruoli del database per: StockInstanceNSMain selezionare NSRunService.
Concedere le autorizzazioni per il database StockInstanceStock:
- In Utenti mappati all'account di accesso seguente selezionare StockInstanceStock.
- In Appartenenza a ruoli del database per: StockInstanceStock selezionare NSRunService.
Fare clic su OK per concedere le autorizzazioni per SQL Server.
Configurare la protezione per la cartella Events:
- In Esplora risorse passare alla cartella Events dell'esempio Stock.
- Fare clic con il pulsante destro del mouse sulla cartella Events, scegliere Condivisione e protezione e quindi selezionare la scheda Protezione.
- Fare clic su Aggiungi e aggiungere l'account utilizzato per eseguire l'esempio.
- In Utenti e gruppi selezionare l'account aggiunto.
- In Autorizzazioni per selezionare le autorizzazioni Lettura e Modifica.
- Fare clic su OK per rendere effettive le modifiche.
Configurare la protezione per la cartella Notifications:
- Passare alla cartella Notifications dell'esempio Stock.
- Fare clic con il pulsante destro del mouse sulla cartella Notifications, scegliere Condivisione e protezione e quindi selezionare la scheda Protezione.
- Fare clic su Aggiungi e aggiungere l'account utilizzato per eseguire l'esempio.
- In Utenti e gruppi selezionare l'account aggiunto.
- In Autorizzazioni per selezionare Scrittura.
- Fare clic su OK per rendere effettive le modifiche.
Esecuzione dell'esempio
Per eseguire l'esempio, procedere come segue:
- Avviare l'istanza.
- Aggiungere sottoscrittori e sottoscrizioni.
- Inoltrare gli eventi.
Dopo aver eseguito queste attività, Notification Services genera le notifiche. Di seguito è illustrato come eseguire queste operazioni e quindi visualizzare le notifiche risultanti.
Passaggio 1: avvio del motore hosted
Verificare che l'account con cui si esegue il motore hosted sia membro del gruppo di Windows SQLServer2005NotificationServicesUser$NomeComputer, che dispone di autorizzazioni per la lettura e l'esecuzione di file binari di Notification Services, o che l'account disponga di autorizzazioni per la lettura e l'esecuzione di file nella cartella C:\Programmi\Microsoft SQL Server\90\Notification Services.
In Esplora risorse passare alla cartella HostableExecutionEngine\linguaggio\HostableExecutionEngine\bin\Debug dell'esempio Stock.
Fare doppio clic su HostableExecutionEngine.exe per eseguire l'applicazione console che ospita il motore di Notification Services.
Importante Non premere INVIO. Affinché l'applicazione di Notification Services possa produrre notifiche, il motore deve essere in esecuzione.
Passaggio 2: aggiunta di sottoscrittori, sottoscrizioni ed eventi
Eseguire AddSubscribers.exe.
Il file con estensione exe è incluso nella sottocartella AddSubscribers\linguaggio\AddSubscribers\bin\Debug della cartella dell'esempio Stock.
Dopo aver aggiunto i sottoscrittori, premere INVIO per chiudere l'applicazione console.
Eseguire AddSubscriptions.exe.
Il file con estensione exe è incluso nella sottocartella AddSubscriptions\linguaggio\AddSubscriptions\bin\Debug della cartella dell'esempio Stock.
Dopo aver aggiunto le sottoscrizioni, premere INVIO per chiudere l'applicazione console.
Eseguire NonHostedEventProvider.exe.
Il file con estensione exe è incluso nella sottocartella NonHostedEventProvider\linguaggio\NonHostedEventProvider\bin\Debug della cartella dell'esempio Stock.
Verranno aggiunti eventi all'applicazione tramite un provider di eventi non hosted eseguito esternamente all'applicazione. Il passaggio seguente illustra come inviare eventi a un provider di eventi di monitoraggio del file system hosted.
[!NOTA] Per le applicazioni di produzione, o se si esegue l'applicazione con un account con limitazioni, aggiungere l'account di accesso di SQL Server dell'applicazione al ruolo del database NSSubscriberAdmin nei database dell'istanza e dell'applicazione.
Passaggio 3: inoltro degli eventi tramite la copia di un file di eventi
In Esplora risorse individuare la cartella principale dell'esempio Stock e copiare il file EventData.xml nella sottocartella Events.
[!NOTA] Poiché in precedenza sono stati inviati eventi tramite un provider di eventi non hosted, questo passaggio è facoltativo. Se non si desidera inviare altri eventi e generare notifiche aggiuntive, considerare il passaggio successivo per la visualizzazione delle notifiche.
Dopo la copia del file, il provider di eventi di monitoraggio del file system legge i dati contenuti nel file, li inoltra all'applicazione e quindi modifica l'estensione del file in done.
Se durante la lettura o l'inoltro dei dati si verifica un errore, il provider di eventi modifica l'estensione del file in err. Per ulteriori informazioni sugli errori, vedere il registro applicazioni nel Visualizzatore eventi di Windows.
Passaggio 4: visualizzazione delle notifiche
Attendere circa un minuto affinché Notification Services produca le notifiche.
In Esplora risorse passare alla cartella Notifications dell'esempio Stock. La cartella contiene un file denominato FileNotifications.txt che include tutte le notifiche inviate dall'applicazione.
Passare alla cartella dove vengono spostati i messaggi di posta elettronica. Si tratta in genere di una delle cartelle in C:\Inetpub\mailroot. Le notifiche dovrebbero essere contenute nella cartella Pickup o nella cartella Queue, in base allo stato del server SMTP. Se il servizio SMTP è in esecuzione, i messaggi potrebbero essere spostati nella cartella Badmail.
[!NOTA] Se si desidera generare un'altra notifica senza rigenerare o modificare l'esempio, eseguire la query seguente:
USE [StockInstanceStock]
DELETE FROM [StockInstanceStock].[dbo].[StockEventsChron]
Interruzione del motore
Dopo aver inoltrato gli eventi e visualizzato le notifiche risultanti, interrompere il motore di Notification Services.
Per interrompere il motore
- Nella finestra della console HostableExecutionEngine premere INVIO per interrompere il motore.
Rimozione dell'esempio
Eseguire la procedura seguente per rimuovere l'esempio Stock.
Per rimuovere l'esempio Stock
In Esplora oggetti espandere Notification Services.
Fare clic con il pulsante destro del mouse su StockInstance, scegliere Attività e quindi Annulla registrazione.
Fare clic con il pulsante destro del mouse su StockInstance, scegliere Attività e quindi Elimina.
Vedere anche
Altre risorse
Hosting del motore di Notification Services
Esempi di SQL Server Notification Services
Protezione di Notification Services
Guida in linea e informazioni
Cronologia modifiche
Versione | Cronologia |
---|---|
17 luglio 2006 |
|
14 aprile 2006 |
|
5 dicembre 2005 |
|