cniDispatchThread

Esta función envía una nueva hebra de flujo de mensajes para invocar otra instancia de hebra para ejecutar el nodo de entrada de flujo de mensajes definido por el usuario. Esta hebra de flujo de mensajes se asigna desde una agrupación de hebras mantenida para cada flujo de mensajes, bajo el control de la propiedad Additional Instances del flujo de mensajes. Si no hay hebras disponibles porque se están utilizando todas, se devuelve CCI_SUCCESS, y el parámetro returnCode se establece en CCI_NO_THREADS_AVAILABLE. Esto no es un error, pero significa una de estas cosas:
  • El flujo de mensajes no se ha configurado para ejecutarse con hebras adicionales.
  • Todas las hebras adicionales configuradas se están ejecutando actualmente.

La función cniDispatchThread sólo puede emitirse desde un nodo de entrada. Si se emite en cualquier otro momento, se devuelve CCI_FAILURE, y el parámetro returnCode se establece en CCI_INV_NODE_ENV.

Sintaxis

int cniDispatchThread(
  int*        returnCode,
  CciNode*    nodeObject);

Parámetros

returnCode
Código de retorno de la función (salida).
nodeObject
Dirección del objeto de nodo que se ejecuta cuando WebSphere Business Integration Message Broker crea o reutiliza la hebra. Este parámetro se pasa al nodo cuando se invoca la función de implementación cniCreateNodeContext correspondiente (entrada).

Valores de retorno

  • Si una hebra se ha asignado correctamente, se devuelve CCI_SUCCESS, y el parámetro returnCode se establece en CCI_SUCCESS.
  • Si no se ha podido enviar una hebra porque no había suficientes hebras en la agrupación de hebras del flujo de mensajes para satisfacer la petición, se devuelve CCI_SUCCESS, y returnCode se establece en CCI_NO_THREADS_AVAILABLE.
  • Si la función no se ha emitido desde un nodo de entrada, se devuelve CCI_FAILURE, y returnCode se establece en CCI_INV_NODE_ENV.
  • Para cualquier otra condición de error, se devuelve CCI_FAILURE, y returnCode indica la causa del error.

Ejemplo

  cniDispatchThread(&rcDispatch, ((NODE_CONTEXT_ST *)context)->nodeObject);

Conceptos relacionados
Nodos de entrada definidos por el usuario

Tareas relacionadas
Creación de un nodo de entrada en C

Referencia relacionada
Funciones de programa de utilidad de nodo de lenguaje C
cniCreateNodeContext