Funzionamento del connettore

Il connettore JText comunica con l'applicazione tramite lo scambio del testo o dei file binari. Esegue le attività principali durante l'elaborazione degli oggetti business:

Questa sezione descrive queste attività. Spiega inoltre come funziona l'elaborazione dei gestori dati e come il connettore JText elabora i verbi.

Notifica evento

Il connettore JText gestisce gli eventi in modo diverso da altri connettori. Diversamente dai connettori che dipendono dalle applicazioni di terze parti, il connettore JText non ha una tabella degli eventi. Invece, tratta la directory di evento come tabella di evento.

Le seguenti operazioni si verificano quando il connettore JText gestisce gli eventi:

  1. Il connettore esegue il poll per gli eventi controllando le directory specificate per i file con estensioni specificate. La presenza di un file con le estensioni specificate nella directory viene considerata l'equivalente di un evento. Il connettore legge i file di evento direttamente dalla directory di evento senza interpretazione. Questo utilizza un metodo di analisi per determinare quale sottosezione rappresenta ogni oggetto di business. Per ulteriori informazioni, consultare Poll per gli oggetti business specifici.
  2. Il connettore crea un'istanza del gestore dati (in base ai valori specificati nel metaoggetto JText per l'oggetto business di dati).
  3. Il connettore chiama getBO() o getBOByteArray() sull'istanza del gestore dati e invia la stringa o la matrice di byte che rappresenta l'oggetto business. Il connettore passa ogni elemento che rappresenta l'oggetto business al gestore di dati. Quando un file rappresenta più oggetti business, il connettore invia solo un elemento (cioé, una rappresentazione di stringa o di matrice di byte di un oggetto business singolo), non l'intero file.
  4. Il gestore dati converte la stringa o la matrice di byte in un oggetto business e lo restituisce al connettore. Il gestore dati riporta anche errori e fornisce la traccia.
  5. Il gestore dati esegue l'elaborazione del verbo predefinito. La persona che sviluppa il gestore dati deve specificare la logica per l'impostazione dei verbi, poiché il connettore non fornisce questa logica. Per informazioni su come i gestori di dati di esempio impostano i verbi, consultare la Data Handler Guide.
  6. Se il gestore dati rileva un errore che impedisce la creazione di un oggetto business, il connettore archivia la stringa o la matrice di byte con l'estensione .fail. Se il gestore dati riesce, il connettore verifica le sottoscrizione nell'oggetto business.
  7. Se il connettore invia l'oggetto business con successo al broker di integrazione, esso archivia il file con l'estensione .success o .partial, a secondo se l'oggetto business nel file di evento è riuscito o meno nell'elaborazione. Se il connettore non riesce ad inviare l'oggetto business, esso archivia il file con l'estensione .fail.

Il connettore JText elabora i file di evento in ordine alfabetico in base ai nomi del file. In base alla sua configurazione, il connettore JText può prendere tutti i file nella directory di evento o prendere solo quelli con un'estensione specificata. Per ulteriori informazioni, consultare Specificare più file di evento o più directory di evento. La proprietà SortFilesOnTimestamp consente al connettore JText di elaborare i file di evento nell'ordine delle data/ora, dal più vecchio al più recente, indipendemente dalla loro posizione. In altre parole, il connettore JText elabora i file posizionati in directory separate nell'ordine cronologico nell'ordine delle date/ore. Per ulteriori informazioni, consultare SortFilesOnTimestamp.

La proprietà PollQuantity specifica il numero massimo di oggetti business che il connettore può inviare al broker di integrazione in un lotto dato. Ad esempio, presupporre che il valore di PollQuantity viene impostato su 5 e che ci sono due file in una directory nella quale il connettore sta eseguendo il poll. Il primo file ha quattro oggetti business e il secondo ha 12 oggetti business. Sulla prima chiamata di poll, il connettore esegue le procedure di seguito riportate:

  1. Invia tutti i quattro oggetti business per il primo file, archiviando ogni oggetto business a mano a mano che li elabora.
  2. Invia il primo oggetto business dal secondo file.

Sulla seconda chiamata del poll, il connettore invia dal secondo al sesto oggetto business dal secondo file. Sulla terza chiamata del poll, il connettore invia dal settimo all'undicesimo oggetto business dal secondo file. Sul quarto poll, il connettore invia l'ultimo oggetto business. Il connettore archivia ogni oggetto business dopo averlo elaborato. Se gli oggetti business in un file non riesce l'elaborazione, il connettore archivia l'intero file con l'estensione .orig.

Per ulteriori informazioni, consultare:

Figura 3 mostra un'operazione di notifica di evento (i numeri nel grafico non sono relativi alle fasi precedentemente evidenziate).

Figura 3. Operazione di notifica evento
Operazione di notifica evento

Archivio evento

Dopo aver elaborato un evento e se è configurato per abilitare l'archiviazione, il connettore JText scrive la stringa dell'oggetto business o la rappresentazione della matrice di dati di un oggetto business nel file nella directory di archivio locale. Denomina il file con un trattino basso (_), una data/ora ed un'estensione file che corrisponde allo stato dell'evento. Le estensioni predefinite fornite sono success, partial, unsub, orig, e fail. Il trattino baso e la data/ora sono collegati al nome file e prima dell'estensione file.

La data/ora è un elenco separato da trattini bassi che contiene l'anno,il mese, il giorno, l'ora, il minuto, i secondi e i millisecondi dell'ora di sistema. Questo assicura che i nomi file archiviati sono univoci e che il connettore non sovrascriva un file esistente con lo stesso nome. Il formato del file archiviato è:

BOName_YYYY_MM_DD_HH_MM_SS_sss.[extension]

Ad esempio, il connettore potrebbe ridenominare un file elaborato correttamente denominato Customer.in in Customer_2003_11_15_18_24_59_999.success.

Il connettore JText archivia un oggetto business nel file .fail se si verifica un errore di formattazione, o se il connettore non riesce ad inviare l'oggetto business al broker di integrazione. Il connettore JText archivia un oggetto business ad un file con un'estensione .unsub se il connettore non lo sottoscrive. Dopo aver esaminato questi file di archivio e aver corretto gli errori di formattazione o aver avviato i processi che sottoscrivono agli oggetti business, inoltrare nuovamente gli oggetti business in questi file per l'elaborazione.

Per ulteriori informazioni sull'archiviazione, consultare Specifica dell'archivio di evento.

Le estensioni del file predefinito per i file di evento e di archivio

Poiché il connettore JText non utilizza tabelle di evento e di archivio, esso aggiorna lo stato di evento modificando le estensioni dei file. Tabella 1 mostra i valori dell'estensione file predefiniti che l'adattatore JText fornisce per i file di evento e archivio.

Tabella 1. Estensioni file predefinite
Tipo file Stato/descrizione evento Estensione file predefinita Directory predefinita fornita
Evento nuovo
in
Linux: /tmp/JTextConn/Default/Event

Windows:
C:\temp\JTextConn\Default\Event
i5/OS:
Nessun predefinito fornito
.

Archivio riuscito (se tutti gli
oggetti business nel file di evento
sono elaborati correttamente, questo
file contiene tutti gli
oggetti business)
riuscito
Linux: /tmp/JTextConn/Default/Archive
Windows:
C:\temp\JTextConn\Default\Archive
i5/OS:
Nessun predefinito fornito.

Archivio riuscito (se alcuni
oggetti business nel
file di evento non riescono nell'elaborazione,
questo file contiene solo
quelli
elaborati correttamente)
parziale
Linux: /tmp/JTextConn/Default/Archive

Windows:
C:\temp\JTextConn\Default\Archive
i5/OS:
Nessun valore predefinito fornito.

Archivio non sottoscritto
unsub
Linux: /tmp/JTextConn/Default/Archive

Windows:
C:\temp\JTextConn\Default\Archive
i5/OS:
Nessun predefinito fornito.

Archivio file di evento originale intero
(creato solo se l'oggetto business non riesce nell'elaborazione o non è sottoscritto, anche se il file di evento contiene sono un oggetto business)
orig
Linux: /tmp/JTextConn/Default/Archive

Windows:
C:\temp\JTextConn\Default\Archive
i5/OS:
Nessun predefinito fornito.

Archivio non riuscito
non riuscito
Linux: /tmp/JTextConn/Default/Archive
Windows: C:\temp\JTextConn\Default\Archive
i5/OS:
Nessun predefinito fornito.
Output out
out
Linux:
/tmp/JTextConn/Default/Out

Windows: C:\temp\JTextConn\Default\Out
i5/OS:
Nessun predefinito fornito.

Importante:
La sequenza di accesso tra più applicazioni che accedono ed elaborano lo stesso file allo stesso tempo, è molto importante. Analizzare tutte le operazioni eseguite su un dato file per evitare problemi con il blocco del file e dati non completi.

Nota:
Il connettore tratta ogni file nella directory di evento con estensione specificata come file di input. Verificare che l'estensione del file di input sia diversa dall'estensione del file di archivio, o che i file di input e di archivio sono memorizzati in directory diverse, per evitare che il connettore tratti un file archiviato come un evento.

Per informazioni sulla specifica delle estensioni file, della directory di evento e della directory di output, consultare Tabella 8.

Elaborazione richiesta

Quando si elabora una richiesta di chiamata di servizio, il connettore converte l'oggetto business in una stringa di output o in una matrice di byte, quindi lo scrive nel file.

Prima di convertire l'oggetto business, tuttavia, il connettore determina se l'oggetto business è stato configurato per la denominazione file dinamica; cioè, se l'oggetto business contiene un metaoggetto secondario dinamico. In questo caso, il connettore nomina dinamicamente il file di output o restituisce il nome del file di output che genera.

Questa sezione descrive l'elaborazione della richiesta di chiamata del servizio quando:

L'oggetto business di dati non specifica la denominazione file dinamica

Quando l'oggetto business di dati non specifica la denominazione file dinamica, il connettore esegue le operazioni di seguito riportate per gestire le richieste di chiamata di servizio:

  1. Il connettore riceve una richiesta di oggetto business.
  2. Il connettore determina che la proprietà AppSpecificInfo a livello oggetto business deve contenere quanto segue:
    cw_mo_JTextConfig = DynChildMOAttrName
  3. Il connettore controlla la configurazione del metaoggetto JText di livello superiore per determinare quale gestore dati chiamare. Per impostazione predefinita, questo metaoggetto specifica il metaoggetto del gestore dati MO_DataHandler_DefaultNameValueConfig, che rappresenta il gestore dati NameValue.
  4. Il connettore crea un'istanza del gestore dati appropriato e gli invia l'oggetto business.
  5. Il gestore dati converte l'oggetto business in una stringa o in una matrice di byte che restituisce alla configurazione. Il gestore dati riporta anche errori e fornisce la traccia.
  6. Il connettore scrive la stringa o la matrice di byte in un file.

Per informazioni sulla configurazione del connettore per l'elaborazione delle richieste, consultare Specifica l'elaborazione della richiesta.

L'oggetto business di dati contiene un metaoggetto secondario dinamico

Quando l'oggetto business di dati contiene un metaoggetto secondario dinamico, il connettore esegue le operazioni di seguito riportate per gestire le richieste di chiamata di servizio:

  1. Il connettore riceve una richiesta di oggetto business.
  2. Il connettore determina che la proprietà AppSpecificInfo a livello oggetto business contiene il seguente testo:
    cw_mo_JTextConfig = DynChildMOAttrName
    Nota:
    Se le informazioni specifiche dell'applicazione dell'oggetto business non specificano un metaoggetto secondario dinamico e non contengono questo elemento secondario, il connettore elabora l'oggetto business come descritto in L'oggetto business di dati non specifica la denominazione file dinamica.
  3. Il connettore ottiene il nome del file di output dall'attributo OutFileName del metaoggetto secondario dinamico.
  4. Il connettore controlla la configurazione del metaoggetto JText di livello superiore per determinare quale gestore dati chiamare. Per impostazione predefinita, questo metaoggetto specifica il metaoggetto del gestore dati MO_DataHandler_DefaultNameValueConfig, che rappresenta il gestore dati NameValue.
  5. Il connettore crea un'istanza del gestore dati appropriato e gli invia l'oggetto business.
  6. Il gestore dati converte l'oggetto business in una stringa o in una matrice di byte che restituisce alla configurazione. Il gestore dati riporta anche errori e fornisce la traccia.
  7. Il connettore scrive la stringa o la matrice di byte in un file. il cui nome lo deriva della fase 3 di seguito riportata.

Figura 4 illustra i componenti del connettore JText quando il connettore elabora le richieste dal broker di integrazione, InterChange Server Express, nell'applicazione di destinazione.

Figura 4. Operazione richiesta oggetto business
Operazione richiesta oggetto business

Come funziona l'elaborazione del gestore dati

Il connettore utilizza un'istanza del gestore dati per convertire tra gli oggetti business e le stringhe o le matrici di byte che sono letti dai file di evento. L'istanza del gestore dati riporta anche gli errori e fornisce la traccia.

Il connettore crea un'istanza di un gestore dati basata sul valore degli attributi EventDataHandler e OutputDataHandler nel metaoggetto JText di livello superiore. Questi attributi identificano il metaoggetto del gestore che il connettore utilizza per creare l'istanza del gestore dati. Il metaoggetto del gestore dati può rappresentare un gestore dati fornito o personalizzato. Per ulteriori informazioni, consultare Data Handler Guide.

Il connettore determina quale interfaccia, stringa o matrice di byte, è basata sulle impostazioni del metaoggetto DataProcessingMode. Per ulteriori informazioni sul metaoggetto, consultare Tabella 8

Dopo aver ricevuto le informazioni di configurazione, il connettore esegue le procedure di seguito riportate:

  1. Istanzia un gestore dati.
  2. Chiama il metodo setOption() del gestore dati per impostare l'attributo TracingSubSystem del gestore dati sul nome del connettore. Il gestore dati utilizza questo valore per includere il nome del connettore nei messaggi di traccia che scrive.

Dopo aver creato e configurato il gestore dati, il connettore chiama i metodi appropriati nel gestore dati per eseguire la conversione di dati da o all'oggetto business.

I metodi getBO(String) o getBO(byte[])e getStringFromBO() o getByte ArrayFromBO() inviano sempre o ricevono l'intera gerarchia dell'oggetto business di un elemento principale di livello superiore e tutti i suoi oggetti business, rispettivamente.

In entrambi i casi, il gestore dati è responsabile per il filtraggio dei dati del metaoggetto in modo che passi solo i dati specifici dell'oggetto business. I gestori dati forniti con il prodotto forniscono questa funzionalità. Se si utilizzano i gestori dati personalizzati, essi devono anche fornire questa funzionalità.

Elaborazione verbo oggetto business per le richieste

Quando le richieste di gestione, il connettore JText non gestisce un verbo in modo diverso dall'altro. Scrive ai file senza eseguire operazioni di aggiornamento, di richiamo o di eliminazione, indipendentemente del verbo associato con l'oggetto business.

Quando si elaborano le richieste, il connettore JText imposta tutti gli attributi con un valore di CxIgnore sui valori predefiniti se le seguenti condizioni sono vere:

Copyright IBM Corp. 2004, 2005