Interoperatividad nativa de JSOR (solo Linux)

Puede utilizar JSOR para comunicarse entre una aplicación Java™ y una aplicación nativa como, por ejemplo, un servidor de bases de datos remoto. También hay un soporte limitado para las aplicaciones nativas que quieren utilizar la función fork().

Nota: Inicio de cambios para la actualización del servicio 8 fixpack 30La implementación RDMA, que anteriormente estaba obsoleta, se ha eliminado de IBM® SDK, Java Technology Edition, Version 8.Fin de los cambios para el Service Refresh 8 Fix Pack 30
Primero debe asegurarse de que la aplicación nativa utilice el protocolo RSockets mediante uno de los siguientes métodos:
  • Precargar la aplicación nativa existente que utiliza el protocolo TCP/IP para la comunicación con la biblioteca de carga previa nativa RSockets
  • Escribir la aplicación nativa utilizando API RSockets y enlazarla con la biblioteca nativa RSockets.
Este diagrama muestra la interoperatividad nativa de JSOR. Un conducto RDMA enlaza los dos lados de un canal de comunicación. En el lado de Java, un cliente Java o aplicación de servidor se encuentra en la parte superior de la pila. Para interactuar con el conducto RDMA, la aplicación utiliza los siguientes componentes por turnos: la característica JSOR en el producto, la biblioteca JSOR y la biblioteca Verbos de usuario. En el lado nativo, un cliente nativo o aplicación de servidor se encuentra en la parte superior de la pila. Esta aplicación puede utilizar el protocolo TCP/IP o el protocolo RSockets. Si la aplicación utiliza el protocolo TCP/IP, interactúa con el conducto RDMA utilizando los siguientes componentes por turnos: la biblioteca de carga previa RSockets y la biblioteca RSockets almacenada en la parte superior de la biblioteca Verbos de usuario. Si la aplicación nativa utiliza el protocolo RSockets, interactúa con el conducto RDMA de la misma forma, excepto que no es necesario utilizar la biblioteca de precarga RSockets.

La carga previa dinámica es un recurso específico de sistema operativo en el que se interceptan las llamadas regulares de socket TCP/IP y se sustituyen por las llamadas de socket RDMA equivalentes para comunicarse con las aplicaciones remotas mediante la vía de acceso RDMA. Esta aplicación remota puede ser una aplicación Java habilitada para JSOR. Puesto que JSOR se deriva del protocolo RSockets, el protocolo coincide y la comunicación se realiza de forma transparente. Para obtener más información sobre el uso de RSockets para la interoperabilidad nativa, consulte Habilitación de la comunicación JSOR entre una aplicación Java y una aplicación nativa (Linux).

Soporte para la función fork()

En un sistema de servidor nativo, puede habilitar el soporte de bifurcación estableciendo la variable de entorno RDMAV_FORK_SAFE=1. Cuando está habilitada, la biblioteca de precarga de RSockets convierte un socket simple en un socket RDMA sólo cuando se realiza la primera llamada de transferencia de datos. En el sistema cliente debe establecer la propiedad del sistema -Dcom.ibm.net.rdma.nativeForkCompatibility=true. Cuando se establece, el cliente se conecta y se sincroniza con el servidor nativo antes de cambiar a la modalidad RDMA. Para obtener más información sobre esta propiedad, consulte -Dcom.ibm.net.rdma.nativeForkCompatibility (Linux).