Condividi tramite


Uso delle sottoscrizioni per i messaggi non inviati

Quando l'acceleratore Microsoft BizTalk per SWIFT (A4SWIFT) elabora il disassembler (analizza e convalida) un messaggio, promuove le proprietà per tale messaggio. Queste proprietà promosse forniscono informazioni sulla correttezza e la validità del messaggio, nonché informazioni correlate al batch se A4SWIFT ricevuto il messaggio come parte di un batch in ingresso. Per un elenco completo di queste proprietà, vedere A4SWIFT_* Proprietà promosse.

A differenza dei disassembler BizTalk nativi, il disassembler A4SWIFT non sospende un messaggio quando l'elaborazione genera errori o errori. Pubblica invece il messaggio non riuscito nel database MessageBox così come sarebbe un messaggio valido. Di conseguenza, i messaggi non riusciti possono portare i dettagli degli errori nel database MessageBox. È possibile recuperare il messaggio dal database MessageBox, gestire e ripristinare il messaggio e anche inviare nuovamente il messaggio nel database MessageBox. Non è possibile eseguire la maggior parte di queste attività se il messaggio è stato effettivamente sospeso.

È possibile identificare un messaggio che A4SWIFT ha pubblicato nel database MessageBox come non riuscito o errato dalle relative proprietà promosse. Quando si elabora un messaggio non riuscito, il disassembler SWIFT popola e promuove la proprietà A4SWIFT_Failed e una o più delle altre proprietà seguenti, prima di pubblicare il messaggio nel database MessageBox:

  • A4SWIFT_ParseErrors indica il numero di errori di analisi (ad esempio dati non formattati) rilevati durante l'elaborazione.

  • A4SWIFT_XmlValidationErrors indica il numero di errori di convalida XML (ad esempio dati non validi o tipo non corretto rispetto allo schema) rilevati durante l'elaborazione.

  • A4SWIFT_BreValidationErrors indica il numero di errori di convalida di Business Rule Engine (BRE), ad esempio i dati che interrompe una regola di rete SWIFT, rilevati durante l'elaborazione.

  • A4SWIFT_Failed è true quando il conteggio delle proprietà precedenti è maggiore di zero o false quando il conteggio è uguale a zero.

    Queste proprietà fanno parte di Microsoft . Spazio dei nomi Solutions.A4SWIFT.Property. Per altre informazioni su queste proprietà e altre proprietà promosse, vedere A4SWIFT_* Proprietà promosse.

    Per rilevare o recuperare messaggi non riusciti, è necessario creare espressioni di filtro (sottoscrizioni) per le porte di invio o le forme di ricezione dell'orchestrazione che includono alcune delle proprietà elencate in precedenza, come clausole AND dell'espressione.

    Ad esempio, per sottoscrivere tutti i messaggi non riusciti, aggiungere la clausola seguente (come clausola AND se sono presenti altre clausole):

    Microsoft. Solutions.A4SWIFT.Property.A4SWIFT_Failed == true

    Per sottoscrivere i messaggi con solo errori di analisi, aggiungere le clausole seguenti insieme:

    E Microsoft. Solutions.A4SWIFT.Property.A4SWIFT_Failed == true,AND Microsoft . Solutions.A4SWIFT.Property.A4SWIFT_XmlValidationErrors == 0,ANDMicrosoft . Solutions.A4SWIFT.Property.A4SWIFT_BreValidationErrors == 0;

    Al contrario, per le porte di invio o le orchestrazioni progettate per gestire solo i messaggi validi, includere "ANDMicrosoft . Solutions.A4SWIFT.Property.A4SWIFT_Failed == false" come clausola nelle espressioni di filtro.

Nota

Se le sottoscrizioni si sovrappongono, A4SWIFT soddisfano tutte le sottoscrizioni. Ovvero, se più di un servizio (porta di invio o orchestrazione) hanno espressioni di filtro soddisfatte da un messaggio specifico, tutti questi servizi riceveranno lo stesso messaggio. Ad esempio, se una porta di invio sottoscrive tutti i messaggi non riusciti e un'orchestrazione sottoscrive solo i messaggi con errori di analisi, entrambe le sottoscrizioni verranno soddisfatte quando A4SWIFT rileva errori durante l'elaborazione di un messaggio. Assicurarsi di eliminare le sovrapposizioni indesiderate nelle sottoscrizioni tra i servizi.

Nota

Se A4SWIFT riceve e elabora un messaggio e pubblica tale messaggio al database MessageBox, ma il messaggio non soddisfa alcuna sottoscrizione, A4SWIFT sospende il messaggio con un errore BizTalk Server che indica una mancanza di sottoscrittori. Ad esempio, se si dispone di una sottoscrizione di un servizio a tutti i messaggi "A4SWIFT_Failed == false", ma nessun servizio sottoscrive i messaggi in cui "A4SWIFT_Failed == true", i messaggi che non riescono a analizzare o convalida verranno effettivamente sospesi a causa di una mancanza di sottoscrittori. Questo scenario consente effettivamente di simulare la sospensione tradizionale dei messaggi non riusciti. Assicurarsi di sottoscrivere tutti i messaggi che non si desidera aver sospeso. Per altre informazioni sulle sottoscrizioni del database MessageBox, sulle porte di invio, sulle orchestrazioni e sulle espressioni di filtro, vedere BizTalk Server Guida.

In questa sezione: