Uno schema broker è uno spazio simbolico che definisce l'ambito di univocità dei nomi delle risorse definiti al suo interno. Le risorse sono flussi di messaggi, file ESQL e file di mappatura.
Uno schema broker è definito come il percorso relativo dalla directory di origine del progetto al nome del flusso. Quando si crea per la prima volta un progetto del flusso di messaggi, all'interno del progetto viene creato uno schema broker predefinito denominato (default).
E' possibile creare nuovi schemi broker per fornire spazi simbolici separati nello stesso progetto del flusso di messaggi. Uno schema broker è implementato come una cartella, o directory secondaria, all'interno del progetto e fornisce organizzazione all'interno di tale progetto. E' anche possibile utilizzare i riferimenti del progetto per distribuire l'ambito di un singolo schema broker su più progetti per creare uno spazio simbolico dell'applicazione che fornisce un ambito per tutte le risorse associate ad una suite di applicazioni.
Il nome dello schema broker deve essere una stringa di caratteri che inizia con un carattere Unicode seguito da zero o più cifre o caratteri Unicode e dal carattere di sottolineatura. E' possibile utilizzare il punto per fornire una struttura al nome, ad esempio Stock.Common. Nella directory del progetto viene creata una directory per rappresentare lo schema e se lo schema è strutturato mediante i punti, sono definite ulteriori directory secondarie. Ad esempio, lo schema broker Stock.Common risulta in una directory Common all'interno di una directory Stock all'interno della directory del progetto del flusso di messaggi.
Se si crea una risorsa (ad esempio, un flusso di messaggi) nello schema broker predefinito all'interno di un progetto, il file o i file associati a tale risorsa vengono creati nella directory che rappresenta il progetto. Se si crea una risorsa in un altro schema broker, i file vengono creati all'interno della directory dello schema.
Ad esempio, se si crea un flusso di messaggi Update nello schema predefinito nel progetto del flusso di messaggi Project1, i file associati vengono memorizzati nella directory Project1. Se si crea un altro flusso di messaggi nello schema broker Stock.Common all'interno del progetto Project1, i relativi file associati vengono creati nella directory Project1\Stock\Common.
Poiché ciascuno schema broker rappresenta un'ambito univoco, è possibile creare due flussi di messaggi con lo stesso nome all'interno di due schemi broker. Gli schemi broker assicurano che i due flussi di messaggi vengano riconosciuti come risorse separate. I due flussi di messaggi, pur avendo lo sesso nome, vengono considerati univoci.
Se si sposta un flusso di messaggi da un progetto ad un altro, è possibile continuare ad utilizzare il flusso di messaggi all'interno del progetto originario se si conserva lo schema broker. In questo caso, è necessario aggiornare l'elenco di progetti dipendenti per l'oggetto originario, modificando il progetto di destinazione. Se, tuttavia, non si conserva lo schema broker, il flusso diventa un flusso differente, perché il nome schema è parte del nome completo del flusso di messaggi e non viene più riconosciuto da altri progetti. Questa azione crea dei collegamenti corrotti che è necessario correggere manualmente. Per ulteriori informazioni relative alla correzione degli errori dopo lo spostamento di un flusso di messaggi, consultare Spostamento di un flusso di messaggi.
Non spostare le risorse spostando i relativi file associati nel file system; è necessario utilizzare il workbench per spostare le risorse per assicurarsi che tutti i riferimenti vengano corretti in modo da riportare la nuova organizzazione.
Quando si creano funzioni, procedure e costanti in uno schema broker, vengono applicati le condizioni di riutilizzo e dell'ambito riportate di seguito:
Le procedure non possono essere utilizzate nei file di mappatura.
Se si desidera riutilizzare funzioni o procedure globalmente:
Se si decide di definire il percorso, codificare l'istruzione PATH nello stesso file ESQL in cui è codificata la funzione, ma non all'interno di MODULE.