![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
Rastreo de comunicaciones de Object Request Broker
El rastreo de comunicaciones de ORB (Object Request Broker), al que normalmente se hace referencia como CommTrace, contiene la secuencia de mensajes GIOP (General InterORB Protocol) que ORB envía y recibe durante la ejecución de la aplicación.
Es posible que se necesita para comprender la secuencia de bajo nivel de las interacciones de cliente a servidor o de servidor a servidor durante la determinación de problemas. En este tema, se utilizan las entradas de rastreo de un archivo de registro de ejemplo para describir el contenido del registro y ayudarle a comprender la secuencia de interacciones. Se centra únicamente en los mensajes de GIOP y trata de forma general la información de rastreo adicional que aparece durante las intervenciones en los límites de los mensajes de GIOP.
Ubicación
Cuando está habilitado el rastreo ORB, esta información se coloca en el directorio raíz_servidor_apl/profiles/nombre_perfil/logs/nombre_servidor/trace.log.
Cuando está habilitado el rastreo de ORB, esta información se coloca en el directorio raíz_perfil/logs/nombre_servidor/trace.log.
Acerca del archivo de rastreo de ORB
A continuación se muestran las propiedades del archivo que se crea cuando se habilita el rastreo de ORB.
- Es de sólo lectura
- Actualizado por la función de administración
- Utilice este archivo para localizar y resolver los problemas relacionados con ORB.
Cómo se interpreta la salida
Las siguientes secciones hacen referencia a la salida de registro de ejemplo que aparecen más adelante en este tema.
- Información de identificación
- El inicio de un mensaje GIOP se identifica mediante un línea que contiene OUT
GOING: o IN COMING: dependiendo de si el mensaje lo envía o recibe el proceso.Después de la entrada de la línea de identificación hay una serie de elementos, formateados para una mayor comodidad, con la información extraída del mensaje que identifica los puntos finales de esta interacción de mensajes determinada. Consulte las líneas 3-13 de ambos ejemplos. Los elementos con formato son los siguientes:
- Tipo de mensaje GIOP (línea 3)
- Fecha y hora en que se ha registrado el mensaje (línea 4)
- Información que resulta de utilidad para identificar la hebra que se ejecuta cuando se graba el mensaje y otra información específica de la hebra (línea 5)
- Los puertos TCP/IP remotos y locales utilizados para la interacción, (líneas 6 a 9)
- La versión de GIOP, el orden de bytes, una indicación de si el mensaje es un fragmento y el tamaño del mensaje (líneas 10 a 13)
- ID de solicitud, respuesta esperada y estado de la respuesta
- Después de la información de introducción del mensaje, el ID de solicitud es un número entero que genera ORB. Se utiliza para
identificar y asociar cada una de las solicitudes a la respuesta correspondiente. Esta asociación es necesaria porque ORB puede recibir solicitudes desde varios
clientes y debe ser capaz de asociar las respuestas a las correspondientes
solicitudes realizadas.
- Las líneas 15-17 del ejemplo de solicitud muestran el ID de solicitud, seguido de una indicación del punto final de recepción conforme se espera una respuesta (CORBA permite enviar solicitudes en un único sentido que no esperan respuesta alguna.)
- La línea 15 del Ejemplo de entrada de registro - Solicitud de GIOP muestra el ID de solicitud; la línea 33 muestra el estado de la respuesta recibida después de haber completado la solicitud de envío anterior.
- Clave de objeto
- Las líneas 18-20 del ejemplo de solicitud, muestran la clave del objeto, la representación interna que utiliza ORB para identificar y ubicar el objeto de destino que va a recibir el mensaje de solicitud. Las claves de objeto no son estándar.
- Operación
- La línea 21 del ejemplo de solicitud muestra el nombre de la operación que inicia el objeto de destino en el punto final de recepción. En este ejemplo, la operación específica solicitada se denomina _get_value.
- Información sobre el contexto de servicio
- Los contextos de
servicio del mensaje también están formateados para una mayor
comodidad.
Cada uno de los mensajes GIOP deben contener una secuencia de contextos
de servicio de envío y recepción por cada punto final. Los contextos de servicio,
identificados únicamente con un ID, contienen datos utilizados en la interacción
específica como, por ejemplo, la seguridad, la conversión de juegos de códigos de
caracteres y la información sobre la versión de ORB.
El contenido de algunos de los contextos de servicios son estándar y
los especifica OMG, mientras que otros contextos de servicio son
propiedad de otros proveedores y son éstos quien los especifican. Los contextos de servicio específicos de IBM están identificados con un ID que empiezan por
0x4942.
Las líneas 22-41 del ejemplo de solicitud ilustran entradas de contexto de servicio típicas. Existen tres contextos de servicio en el mensaje de solicitud, tal y como se muestra en la línea 22. A continuación se muestran el ID, la longitud de los datos, y los datos brutos de cada contexto de servicio. Las línea 23-25 muestran un contexto de propiedad de IBM como se indica mediante el ID 0x49424D12. Las líneas 26-41 muestran contextos de servicio estándar, identificados mediante el ID 0x6 (línea 26) y el ID 0x1 (línea 39).
Las líneas 16-32 del Ejemplo de entrada de registro - Solicitud de GIOP ilustran dos contextos de servicio, uno propiedad de IBM (línea 17) y uno estándar (línea 20).
Para obtener una definición de los contexto de servicio estándar, consulte la especificación CORBA. El contexto de servicio 0x1 (CORBA::IOP::CodeSets) se utiliza para publicar los conjuntos de códigos de caracteres a los que da soporte ORB para negociar y determinar el conjunto de códigos utilizado para transmitir los datos de tipo carácter. El contexto de servicio 0x6 (CORBA::IOP::SendingContextRunTime) lo utiliza RMI-IIOP (Remote Method Invocation over the Internet Inter-ORB Protocol) para proporcionar el punto final de recepción con el IOR para el objeto SendingContextRuntime. El contexto de servicio de IBM 0x49424D12 se utiliza para publicar la información de ORB PartnerVersion para dar soporte a la interoperatividad de release a release entre los ORB emisores y receptores.
- Desplazamiento de datos
- La línea 42 del ejemplo de solicitud muestra el desplazamiento, relativo al inicio del mensaje de GIOP, en el que se encuentra el texto del recordatorio del mensaje de solicitud o respuesta. Esta parte del mensaje es específica de cada operación y varía en cada una de ellas. Por lo tanto, no tiene formato ya que ORB desconoce el contenido específico. El desplazamiento se imprime como una ayuda para ubicar rápidamente los datos específicos de la operación en el vuelco de mensajes de GIOP, que se realiza después del desplazamiento de datos.
- Vuelco del mensaje GIOP bruto
- Comenzando por la línea 45 en el ejemplo de solicitud y la línea 36 del Ejemplo de entrada de registro - Respuesta de GIOP, se imprime un vuelco en bruto de todo el mensaje de GIOP con formato hexadecimal. Los mensajes de solicitud contienen los parámetros necesarios para realizar la operación especificada y los mensajes de respuesta contienen los valores de retorno y el contenido de los parámetros de salida tal y como requiere dicha operación. No se han incluido todos los datos brutos del mensaje en las ilustraciones para conseguir una mayor brevedad.
Ejemplo de entrada de registro - Solicitud de GIOP
1. OUT GOING: 3. Request Message 4. Date: April 17, 2002 10:00:43 PM CDT 5. Thread Info: P=842115:O=1:CT 6. Local Port: 1243 (0x4DB) 7. Local IP: jdoe.austin.ibm.com/192.168.1.101 8. Remote Port: 1242 (0x4DA) 9. Remote IP: jdoe.austin.ibm.com/192.168.1.101 10. GIOP Version: 1.2 11. Byte order: big endian 12. Fragment to follow: No 13. Message size: 268 (0x10C) -- 15. Request ID: 5 16. Response Flag: WITH_TARGET 17. Target Address: 0 18. Object Key: length = 24 (0x18) 4B4D4249 00000010 BA4D6D34 000E0008 00000000 00000000 21. Operation: _get_value 22. Service Context: length = 3 (0x3) 23. Context ID: 1229081874 (0x49424D12) 24. Context data: length = 8 (0x8) 00000000 13100003 26. Context ID: 6 (0x6) 27. Context data: length = 164 (0xA4) 00000000 00000028 49444C3A 6F6D672E 6F72672F 53656E64 696E6743 6F6E7465 78742F43 6F646542 6173653A 312E3000 00000001 00000000 00000068 00010200 0000000E 3139322E 3136382E 312E3130 310004DC 00000018 4B4D4249 00000010 BA4D6D69 000E0008 00000000 00000000 00000002 00000001 00000018 00000000 00010001 00000001 00010020 00010100 00000000 49424D0A 00000008 00000000 13100003 39. Context ID: 1 (0x1) 40. Context data: length = 12 (0xC) 00000000 00010001 00010100 42. Data Offset: 118 45. 0000: 47494F50 01020000 0000010C 00000005 GIOP............ 46. 0010: 03000000 00000000 00000018 4B4D4249 ............KMBI 47. 0020: [remainder of message body deleted for brevity]
Ejemplo de entrada de registro - Respuesta de GIOP
1. IN COMING: 3. Reply Message 4. Date: April 17, 2002 10:00:47 PM CDT 5. Thread Info: RT=0:P=842115:O=1:com.ibm.rmi.transport.TCPTransportConnection 5a (línea 5 dividida para la publicación). remoteHost=192.168.1.101 remotePort=1242 localPort=1243 6. Local Port: 1243 (0x4DB) 7. Local IP: jdoe.austin.ibm.com/192.168.1.101 8. Remote Port: 1242 (0x4DA) 9. Remote IP: jdoe.austin.ibm.com/192.168.1.101 10. GIOP Version: 1.2 11. Byte order: big endian 12. Fragment to follow: No 13. Message size: 208 (0xD0) -- 15. Request ID: 5 16. Service Context: length = 2 (0x2) 17. Context ID: 1229081874 (0x49424D12) 18. Context data: length = 8 (0x8) 00000000 13100003 20. Context ID: 6 (0x6) 21. Context data: length = 164 (0xA4) 00000000 00000028 49444C3A 6F6D672E 6F72672F 53656E64 696E6743 6F6E7465 78742F43 6F646542 6173653A 312E3000 00000001 00000000 00000068 00010200 0000000E 3139322E 3136382E 312E3130 310004DA 00000018 4B4D4249 00000010 BA4D6D34 000E0008 00000001 00000000 00000002 00000001 00000018 00000000 00010001 00000001 00010020 00010100 00000000 49424D0A 00000008 00000000 13100003 33. Reply Status: NO_EXCEPTION 36. 0000: 47494F50 01020001 000000D0 00000005 GIOP............ 37. 0010: 00000000 00000002 49424D12 00000008 ........IBM..... 38. 0020: [remainder of message body deleted for brevity]