JSOR-Kommunikation zwischen einer Java-Anwendung und einer nativen Anwendung aktivieren (nurLinux )

Um die JSOR-Kommunikation (Java™ Sockets over Remote Direct Memory Access) zu aktivieren, müssen Sie zuerst sicherstellen, dass die native Anwendung das Protokoll RSockets verwendet. Das RSockets-Protokoll kann durch das Vorabladen der nativen RSockets-Vorabladebibliothek oder durch die Verwendung von RSockets-APIs zum Schreiben der nativen Anwendung benutzt werden. Start der Änderungen für Serviceaktualisierung 2 Fixpack 10Unterstützung für NIO-Kanalanwendungen wurde in dieser Aktualisierung hinzugefügtEnde der Änderungen für Serviceaktualisierung 2 Fixpack 10

Vorbereitende Schritte

Eine Übersicht finden Sie unter Native JSOR-Interoperabilität (nurLinux ).

Informationen zu dieser Task

Hinweis: Start der Änderungen für Serviceaktualisierung 8 Fixpack 30Die RDMA-Implementierung, die zuvor veraltet war, wurde aus dem IBM® SDK, Java Technology Edition, Version 8 entfernt.Ende der Änderungen für Service Refresh 8 Fixpack 30
Es gibt zwei Methoden zum Aktivieren der JSOR-Kommunikation zwischen einer Java-Anwendung und einer nativen Anwendung. Sie müssen die richtige Systemeigenschaft für Ihre Anwendung auswählen. Beispielsweise normale Socketanwendungen für Datenströme (com.ibm.net.rdma.conf) oder NIO-Kanalanwendungen (com.ibm.nio.rdma.conf).

Vorgehensweise

  1. Führen Sie die folgenden Schritte aus, wenn Sie durch das Vorabladen der nativen RSockets-Vorabladebibliothek kommunizieren wollen.
    1. Wenn Sie einen JSOR-Client mit einem nativen Server verbinden wollen, geben Sie den folgenden Befehlszeilenaufruf ein:
      java -Dcom.ibm.net.rdma.conf=<client.conf> -cp <classpath> SampleClient <client_args>
      LD_PRELOAD=/usr/lib/rsocket/librspreload.so ./SampleServer <server_args>
      Oder:
      java -Dcom.ibm.nio.rdma.conf=<client.conf> -cp <classpath> NIOClient <client_args>
      LD_PRELOAD=/usr/lib/rsocket/librspreload.so ./NIOServer <server_args>
      Dabei gilt:
      • client.conf ist die Client-RDMA-Konfigurationsdatei.
      • Klassenpfad gibt den Klassenpfad an.
      • Clientargumente sind die spezifischen Befehlszeilenoptionen der Clientanwendung.
      • Serverargumente sind die spezifischen Befehlszeilenoptionen der nativen Anwendung.
    2. Wenn Sie einen JSOR-Server mit einem nativen Client verbinden wollen, geben Sie den folgenden Befehlszeilenaufruf ein:
      java -Dcom.ibm.net.rdma.conf=<server.conf> -cp <classpath> SampleServer <server_args>
      LD_PRELOAD=/usr/lib/rsocket/librspreload.so ./SampleClient <client_args>
      Oder:
      java -Dcom.ibm.nio.rdma.conf=<server.conf> -cp <classpath> NIOServer <server_args>
      LD_PRELOAD=/usr/lib/rsocket/librspreload.so ./NIOClient <client_args>
      Dabei gilt:
      • server.conf ist die Server-RDMA-Konfigurationsdatei.
      • Klassenpfad gibt den Klassenpfad an.
      • Serverargumente sind die spezifischen Befehlszeilenoptionen der Serveranwendung.
      • Clientargumente sind die spezifischen Befehlszeilenoptionen der nativen Anwendung.
  2. Führen Sie die folgenden Schritte aus, wenn die native Anwendung so geschrieben ist, dass die RSockets-APIs für die Kommunikation mit einer JSOR-Client- oder -Serveranwendung verwendet werden.
    1. Wenn Sie einen JSOR-Client mit einem nativen Server verbinden wollen, der für die Verwendung von RSockets-APIS geschrieben ist, geben Sie den folgenden Befehlszeilenaufruf ein:
      java -Dcom.ibm.net.rdma.conf=<client.conf> -cp <classpath> SampleClient <client_args>
      cc -o SampleServer -lrdmacm
      ./SampleServer <server_args>
      Oder:
      java -Dcom.ibm.nio.rdma.conf=<client.conf> -cp <classpath> NIOClient <client_args>
      cc -o NIOServer -lrdmacm
      ./NIOServer <server_args>
      Dabei gilt:
      • client.conf ist die Client-RDMA-Konfigurationsdatei.
      • Klassenpfad gibt den Klassenpfad an.
      • Clientargumente sind die spezifischen Befehlszeilenoptionen der Clientanwendung.
      • Serverargumente sind die spezifischen Befehlszeilenoptionen der nativen Anwendung.
    2. Wenn Sie einen JSOR-Server mit einem nativen Client verbinden wollen, der für die Verwendung von RSockets-APIS geschrieben ist, geben Sie den folgenden Befehlszeilenaufruf ein:
      java -Dcom.ibm.net.rdma.conf=<server.conf> -cp <classpath> SampleServer <server_args>
      cc -o SampleClient -lrdmacm
      ./SampleClient <client_args>
      Oder:
      java -Dcom.ibm.nio.rdma.conf=<server.conf> -cp <classpath> NIOServer <server_args>
      cc -o NIOClient -lrdmacm
      ./NIOClient <client_args>
      Dabei gilt:
      • server.conf ist die Server-RDMA-Konfigurationsdatei.
      • Klassenpfad gibt den Klassenpfad an.
      • Serverargumente sind die spezifischen Befehlszeilenoptionen der Serveranwendung.
      • Clientargumente sind die spezifischen Befehlszeilenoptionen der nativen Anwendung.

Ergebnisse

Reguläre TCP/IP-Socketaufrufe werden abgefangen und durch funktional entsprechende RDMA-Socketaufrufe für die Kommunikation mit fernen Anwendungen über den RDMA-Pfad ersetzt.