Configuration système JSOR et API compatibles (Linux uniquement)
Les applications Java™ client et serveur doivent disposer d'un matériel et d'un logiciel d'exécution spécifiques pour utiliser les fonctions JSOR. JSOR prend en charge un groupe limité d'API et de classe.
Note :
L'implémentation RDMA, qui était précédemment obsolète, a été supprimée de IBM® SDK, Java Technology Edition, Version 8.
L'implémentation RDMA, qui était précédemment obsolète, a été supprimée de IBM® SDK, Java Technology Edition, Version 8.
Matériel pris en charge et conditions d'exécution
Les prérequis suivants s'appliquent :
- Cette fonction est disponible sur les plateformes et les adaptateurs RDMA suivants (Remote
Direct Memory Access) :
- Linux® 32 bits x-86 avec InfiniBand (IB) ou RDMA over Converged Ethernet (RoCE)
- Linux AMD64/EM64T avec IB ou RoCE
- Linux 32 bits POWER ® avec RoCE
- Linux 64 bits POWER avec RoCE
Linux 64-bit POWER8 (Little Endian) avec IB
- Vous devez installer OpenFabrics Enterprise Distribution (OFED) v1.5.3 ou une version ultérieure, qui peut être téléchargée à partir du OpenFabrics : https://www.openfabrics.org/index.php/resources/ofed-for-linux-ofed-for-windows/ofed-overview.html. Pendant l'exécution, les symboles des bibliothèques suivantes sont localisés et chargés dynamiquement : librdmacm.so et libibverbs.so. Ces bibliothèques sont fournies par l'environnement d'exécution OFED.
- Les utilisateurs doivent être autorisés à verrouiller la mémoire sur les deux systèmes hôtes. Les tampons de socket RDMA doivent être verrouillés, ou épinglés, pour éviter que le système d'exploitation ne permute les pages de mémoire pendant les transferts de données.
Environnements testés
- Hôtes PCI Express (PCIe) Mellanox MT26428 ConnectX Virtual Protocol Interconnect (VPI), qui sont interconnectés par un commutateur InfiniBand Voltaire 40 GB.
- Hôtes Mellanox MT25208 InfiniHost III Ex interconnectés par un commutateur Cisco 4x InfiniBand.
- Hôes Mellanox MT26448 ConnectX EN PCIe inteconnectés directement.
- Hôtes Mellanox MT4099 ConnectX-3 VPI interconnectés directement.
API et classes prises en charge
Le support est limité au groupe d'API et de classes suivant :
- java.net.Socket et java.net.ServerSocket exclut le support pour les méthodes suivantes :
- Socket(Proxy proxy)
- Socket(SocketImpl impl)
- setSocketFactory(SocketImplFactory fac)
- setPerformancePreferences(int connectionTime, int latency, int bandwidth).
- java.io.InputStream, inclut le support pour les méthodes suivantes :
- available()
- close()
- mark(int readlimit)
- markSupported()
- read()
- read(byte[] b)
- read(byte[] b, int off, int len)
- reset()
- skip()
- java.io.OuputStream inclut le support des méthodes suivantes :
- close()
- flush()
- write(byte[] b)
- write(byte[] b, int off, int len)
- write(int b)
- java.net.SocketOptions inclut le support pour l'option suivante :
- DÉLAI_SO_EXPIRATION
- TCP_NODELAY
- EMPLACEMENT_LIAISON
- SO_BINDADDR
- SO_REUSEADDR
- SO_DIFFUSION
- SO_SNDBUF
- SO_RCVBUF
- SO_KEEPALIVE
- LIGNE_SO_OOBINLINE
- SO_BINDADDR
- SO_REUSEADDR
- SO_SNDBUF
- SO_RCVBUF
Remarque: SO_SNDBUF et SO_RCVBUF prennent effet immédiatement après la création du socket, mais avant qu'une opération de connexion ou de liaison ne soit effectuée sur ce socket.Pour les options de socket restantes, l'environnement d'exécution JSOR revient à l'implémentation TCP/IP.
Pour les applications de socket de flux NIO, les classes Java suivantes sont prises en charge :- java.nio.channels.SocketChannel
- java.nio.channels.ServerSocketChannel
- java.nio.channels.Selector

Pour gérer les tailles de mémoire tampon d'envoi et de réception des sockets, utilisez les variables d'environnement Java incluses dans JSOR. Pour plus d'informations, voir Paramètres de l'environnement JSOR (Linux uniquement).