Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tema se resume la información sobre el desarrollo de programas de transacción (CSP) mediante APPC en sistemas operativos Windows:
Ordenación de bytes
Valores de las constantes definidas en WINAPPC.H y WINCSV.H dependen del orden de bytes del hardware usado. Las macros se usan para establecer las constantes en el valor correcto.
De forma predeterminada, se usa la ordenación de bytes little-endian de Intel, con el byte bajo de un valor de 16 bits seguido del byte alto. Sin embargo, al definir macros en línea, la macro NON_INTEL_BYTE_ORDER que se usa en WINAPPC.H y WINCSV.H no invertirá ni volteará el orden de bytes de las constantes. Los parámetros de entrada no constantes en bloques de control de verbos (VCB) (como longitudes, punteros, etc.) siempre están en el formato nativo.
Por ejemplo, el código de retorno principal de AP_PARAMETER_CHECK se define para tener un valor de 0x0001. Según el entorno (ordenación de bytes), la constante AP_PARAMETER_CHECK puede ser o no 0x0001. Algunos formatos definen el valor tal como aparece en la memoria; otros lo definen como una variable de 2 bytes. Dado que no se puede suponer que la aplicación siempre usa constantes proporcionadas en lugar de valores cableados, puede definir una macro para intercambiar los bytes. A continuación se muestra un ejemplo de uso de la 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' */
Eventos
Para recibir datos de forma asincrónica, se pasa un identificador de evento en el campo semáforo del VCB. Este evento debe estar en estado no señalizado cuando se pasa a APPC y el identificador debe tener acceso EVENT_MODIFY_STATE al evento.
Nombres de biblioteca
Para admitir la coexistencia de bibliotecas de API de Win16 y Win32 en el mismo equipo, se han cambiado los nombres de dll de Win32.
| Nombres de DLL antiguos | Nuevos nombres de DLL |
|---|---|
| WINAPPC.DLL | WAPPC32.DLL |
| WINCSV.DLL | WINCSV32.DLL |
Los nuevos nombres dll deben usarse para las aplicaciones basadas en Win32 que están diseñadas para ejecutarse solo en Host Integration Server.
Límites
En el caso de los sistemas operativos Windows, el número de verbos de servicio comunes simultáneos (CSV) permitidos por proceso es de 64. Solo uno de estos verbos por subproceso puede ser sincrónico (bloqueo).
Con APPC, el número máximo de conversaciones simultáneas por proceso es de 15 000. Cada proceso admite hasta 15 000 TPs simultáneos.
Varios subprocesos
Un TP puede tener varios subprocesos que emiten verbos. Windows APPC proporciona disposiciones para procesos basados en Windows multiproceso. Un proceso contiene uno o varios subprocesos de ejecución. Todas las referencias a subprocesos hacen referencia a subprocesos reales en los entornos multiproceso de Windows.
A excepción de RECEIVE_AND_POST, MC_RECEIVE_AND_POST, RECEIVE_AND_WAIT y MC_RECEIVE_AND_WAIT, solo un verbo de conversación puede estar pendiente a la vez en cualquier conversación; sin embargo, se pueden emitir otros verbos para otras conversaciones. Esta guía también se aplica a los verbos TP y a los TPs. Aunque se pueden emitir varios verbos TP, solo un verbo TP puede permanecer pendiente a la vez en un TP. Esto se aplica tanto a las aplicaciones multiproceso como a las aplicaciones de un solo subproceso que usan llamadas asincrónicas.
Embalaje
Para consideraciones sobre el rendimiento, los VCB no están empaquetados. Los elementos miembro de la estructura VCB que siguen al primer elemento están alineados según el tamaño del tipo de miembro o los límites DWORD (4 bytes), lo que sea menor. Como resultado, los DWORDs se alinean en los límites establecidos para DWORD, los WORDs se alinean en los límites establecidos para WORD y los BYTEs se alinean en los límites establecidos para BYTE. Esto significa, por ejemplo, que hay un intervalo de 2 bytes entre los códigos de retorno principal y secundario. Por lo tanto, solo se debe tener acceso a los elementos de un VCB mediante las estructuras proporcionadas.
Esta opción para la alineación de los miembros de la estructura y de la unión es el comportamiento predeterminado para los compiladores de Microsoft C/C++. Para la compatibilidad con las bibliotecas de aplicación lógica (LUA) proporcionadas, asegúrese de usar una opción de empaquetado de miembros de unión y estructura equivalentes al usar otros compiladores de C/C++ o al especificar explícitamente una opción de alineación de estructura al usar compiladores de Microsoft.
Registro y anulación del registro de aplicaciones
Todas las aplicaciones appC de Windows deben llamar a WinAPPCStartup al principio de la sesión para registrar la aplicación y WinAPPCCleanup al final de la sesión para anular el registro de la aplicación.
Todas las aplicaciones CSV de Windows deben llamar a la extensión de Windows SNA WinCSVStartup al principio de la sesión para registrar la aplicación y WinCSVCleanup para anular el registro de la aplicación cuando finalice la sesión.
Vinculación en tiempo de ejecución
Para que un TP esté vinculado dinámicamente a APPC en tiempo de ejecución, el TP debe emitir las siguientes llamadas:
LoadLibrary para cargar las bibliotecas de vínculos dinámicos WINAPPC.DLL o WAPPC32.DLL.
GetProcAddress para especificar APPC en todos los puntos de entrada deseados a la DLL, como APPC, WinAsyncAPPC,WinAPPCStartup y WinAPPCCleanup.
Para que un TP esté vinculado dinámicamente a CSV en tiempo de ejecución, el TP debe emitir las siguientes llamadas:
LoadLibrary para cargar WINCSV.DLL o WINCSV32.DLL, las bibliotecas de vínculos dinámicos para CSV de Windows.
GetProcAddress para especificar CSV en todos los puntos de entrada deseados al archivo DLL, como ACSSVC, WinAsyncCSV, WinCSVStartup y WinCSVCleanup.
El TP debe emitir la llamada FreeLibrary cuando la biblioteca APPC o CSV ya no sea necesaria.
Ceder el paso a otros componentes
Dado que los entornos de Windows son multiproceso, no es necesario producir otros componentes.