JSOR native interoperability (Linux only)
You can use JSOR to communicate between a Java™ application and a native application such as a remote database server. There is also limited support for native applications that want to use the fork() function.
- Preload the existing native application that uses the TCP/IP protocol for communication with the native RSockets preloading library
- Write the native application by using RSockets APIs, then link against the RSockets native library.
Dynamic preloading is an operating-system-specific facility where regular TCP/IP socket calls are intercepted and replaced by the equivalent RDMA socket calls for talking to remote applications through the RDMA path. This remote application could be a JSOR-enabled Java application. Because JSOR is derived from the RSockets protocol, the protocol matches and communication is seamless. For more information about using RSockets for native interoperability, see Enabling JSOR communication between a Java application and a native application (Linux only).
Support for the fork() function
On a native server system you can enable fork support by setting the environment variable RDMAV_FORK_SAFE=1. When enabled, the RSockets pre-loading library converts a plain socket into an RDMA socket only when the first data transfer call is made. On the client system you must set the system property -Dcom.ibm.net.rdma.nativeForkCompatibility=true. When set, the client connects and synchronizes with the native server before switching to RDMA mode. For more information about this property, see -Dcom.ibm.net.rdma.nativeForkCompatibility (Linux only).