Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo argomento riepiloga le informazioni sullo sviluppo di programmi di transazione tramite APPC nei sistemi operativi Windows:
Ordinamento dei byte
I valori delle costanti definite in WINAPPC.H e WINCSV.H dipendono dall'ordinamento dei byte dell'hardware usato. Le macro vengono utilizzate per impostare le costanti sul valore corretto.
Per impostazione predefinita, viene utilizzato l'ordinamento dei byte Intel little endian, con il byte basso di un valore a 16 bit seguito dal byte alto. Tuttavia, quando si definiscono macro inline, la macro NON_INTEL_BYTE_ORDER utilizzata in WINAPPC.H e WINCSV.H non invertirà (capovolgerà) l'ordine dei byte per le costanti. I parametri di input non costanti nei blocchi di controllo verbo (VCB), ad esempio lunghezze, puntatori e così via, sono sempre nel formato nativo.
Ad esempio, il codice restituito primario di AP_PARAMETER_CHECK viene definito in modo da avere un valore di 0x0001. A seconda dell'ambiente (ordinamento dei byte), la costante AP_PARAMETER_CHECK può essere o meno 0x0001. Alcuni formati definiscono il valore come appare in memoria; altri lo definiscono come variabile a 2 byte. Poiché non è possibile presupporre che l'applicazione usi sempre costanti fornite anziché valori hardwired, è possibile definire una macro per scambiare i byte. Di seguito è riportato un esempio di utilizzo della macro:
/* when NON_INTEL_BYTE_ORDER is specified, the APPC_FLIPI macro defined in WINAPPC.H macro becomes */
#define APPC_FLIPI(x) (x)
/* otherwise this macro flips bytes by defining */
#define APPC_FLIPI(X) APPC_MAKUS(APPC_HI_UC(X),APPC_LO_UC(X))
/* the AP_PARAMETER_CHECK macro is now defined using the APPC_FLIPI macro */
#define AP_PARAMETER_CHECK APPC_FLIPI (0X0001) /* X '0001' */
Avvenimenti
Per ricevere i dati in modo asincrono, un handle relativo a un evento viene passato nel campo semaforo del VCB. Questo evento deve trovarsi nello stato non segnalato quando viene passato ad APPC e l'handle deve avere EVENT_MODIFY_STATE di accesso all'evento.
Nomi delle librerie
Per supportare la coesistenza delle librerie API Win16 e Win32 nello stesso computer, i nomi delle DLL Win32 sono stati modificati.
| Nomi di DLL precedenti | Nuovi nomi di DLL |
|---|---|
| WINAPPC.DLL | WAPPC32.DLL |
| WINCSV.DLL | WINCSV32.DLL |
I nuovi nomi dll devono essere usati per le applicazioni basate su Win32 che devono essere eseguite solo in Host Integration Server.
Limiti
Per i sistemi operativi Windows, il numero di verbi di servizio comuni simultanei consentiti per processo è 64. Solo uno di questi verbi per thread può essere sincrono (blocco).
Usando APPC, il numero massimo di conversazioni simultanee per processo è 15.000. Ogni processo supporta fino a 15.000 TP simultanei.
Più thread
Un tp può avere più thread che eseguono verbi. Windows APPC offre supporto ai processi Windows basati su multithread. Un processo contiene uno o più thread di esecuzione. Tutti i riferimenti ai thread fanno riferimento ai thread effettivi negli ambienti Windows multithreading.
Ad eccezione di RECEIVE_AND_POST, MC_RECEIVE_AND_POST, RECEIVE_AND_WAIT e MC_RECEIVE_AND_WAIT, un solo verbo di conversazione può essere in sospeso alla volta in qualsiasi conversazione; Tuttavia, altri verbi possono essere emessi per altre conversazioni. Questa linea guida si applica anche ai verbi TP e ai TP. Anche se è possibile emettere più verbi TP, in un TP può essere pendente un solo verbo TP alla volta. Questo vale sia per le applicazioni multithreading che per le applicazioni a thread singolo che usano chiamate asincrone.
Imballaggio
Per considerazioni sulle prestazioni, i VCB non vengono impacchettati. Gli elementi membro della struttura VCB, dopo il primo elemento, sono allineati alle dimensioni del tipo di membro o ai limiti DWORD (4 byte), a seconda di quale sia minore. Di conseguenza, i DWORD sono allineati sui limiti DWORD, i WORD sono allineati ai limiti di WORD e gli BYT sono allineati ai limiti BYTE. Ciò significa, ad esempio, che esiste un divario a 2 byte tra i codici restituiti primario e secondario. Pertanto, gli elementi in un vcb devono essere accessibili solo usando le strutture fornite.
Questa opzione per l'allineamento di strutture e membri unione è il comportamento predefinito per i compilatori Microsoft C/C++. Per la compatibilità con le librerie LUA (Logical Unit Application) fornite, assicurarsi di usare una struttura equivalente e un'opzione di compressione dei membri unione quando si usano altri compilatori C/C++ o quando si specifica in modo esplicito un'opzione di allineamento della struttura quando si usano i compilatori Microsoft.
Registrazione e annullamento della registrazione delle applicazioni
Tutte le applicazioni APPC di Windows devono chiamare WinAPPCStartup all'inizio della sessione per registrare l'applicazione e WinAPPCCleanup alla fine della sessione per annullare la registrazione dell'applicazione.
Tutte le applicazioni CSV di Windows devono chiamare l'estensione Windows SNA WinCSVStartup all'inizio della sessione per registrare l'applicazione e WinCSVCleanup per annullare la registrazione dell'applicazione al termine della sessione.
Collegamento in fase di esecuzione
Affinché un TP venga collegato dinamicamente ad APPC in fase di esecuzione, il tp deve eseguire le chiamate seguenti:
LoadLibrary per caricare le librerie di collegamento dinamico WINAPPC.DLL o WAPPC32.DLL.
GetProcAddress per specificare APPC in tutti i punti di ingresso desiderati alla DLL, ad esempio APPC, WinAsyncAPPC, WinAPPCStartup e WinAPPCCleanup.
Affinché un TP venga collegato dinamicamente a CSV in fase di esecuzione, il tp deve eseguire le chiamate seguenti:
LoadLibrary per caricare WINCSV.DLL o WINCSV32.DLL, le librerie di collegamento dinamico per Windows CSV.
GetProcAddress per specificare CSV in tutti i punti di ingresso desiderati alla DLL, ad esempio ACSSVC, WinAsyncCSV, WinCSVStartup e WinCSVCleanup.
Il tp deve eseguire la chiamata FreeLibrary quando la libreria APPC o CSV non è più necessaria.
Cedere ad altri componenti
Poiché gli ambienti Windows sono multithread, non è necessario cedere il controllo ad altri componenti.