JSOR システム要件およびサポート対象 API (Linux のみ)
Java™クライアントおよびサーバーアプリケーションは、JSOR機能を使用するために特定のハードウェアとランタイムソフトウェアをインストールする必要があります。 JSOR では、API とクラスの制限付きセットがサポートされます。
注意:
以前に非推奨とされた RDMA 実装は、IBM® SDK、Java Technology Edition、バージョン 8.
から削除されました


サポートされるハードウェアおよびランタイム要件
以下の前提条件が適用されます。
- この機能は、以下のプラットフォームおよびリモート・ダイレクト・メモリー・アクセス (RDMA) アダプターで使用できます。
- Linux® 32 ビット x-86 ( InfiniBand (IB) または RDMA over Converged Ethernet (RoCE) を使用)
- Linux AMD64/EM64T (IB または RoCE
- Linux 32 ビット POWER ® ( RoCE
- Linux 64 ビット POWER と RoCE
Linux64-bitPOWER8(リトルエンディアン)、IB付き
- OpenFabrics Enterprise Distribution (OFED) v1.5.3 以降をインストールする必要があります。OpenFabrics Alliance の Web サイトからダウンロードできます:https://www.openfabrics.org/index.php/resources/ofed-for-linux-ofed-for-windows/ofed-overview.html からダウンロードできます。 実行時に、シンボルが librdmacm.so ライブラリーおよび libibverbs.so ライブラリーから動的に検出されてロードされます。 これらのライブラリーは OFED ランタイムによって提供されます。
- 両方のホスト・システムでメモリーをロックできるだけの十分なアクセス権がユーザーに必要です。 データ転送中にオペレーティング・システムがメモリー・ページをスワップアウトしないように、RDMA ソケット・バッファーをロック、つまり固定する必要があります。
テスト済みの環境
- MellanoxMT26428 ConnectXVirtual Protocol Interconnect (VPI) PCI Express (PCIe)ホストは、Voltaire 40 GBInfiniBandスイッチで相互接続されています。
- Cisco 4x InfiniBand スイッチによって相互接続された Mellanox MT25208 InfiniHost III Ex ホスト。
- 直接、相互接続された Mellanox MT26448 ConnectX EN PCIe ホスト。
- 直接、相互接続された Mellanox MT4099 ConnectX-3 VPI ホスト。
サポートされる API とクラス
サポートは、以下の API とクラスのセットに制限されます。
- java.net.Socket および java.net.ServerSocket では、以下のメソッドがサポートされません。
- Socket(Proxy proxy)
- Socket(SocketImpl impl)
- setSocketFactory(SocketImplFactory fac)
- setPerformancePreferences(int connectionTime, int latency, int bandwidth).
- java.io.InputStream では、以下のメソッドがサポートされます。
- available()
- close()
- mark(int readlimit)
- markSupported()
- read()
- read(byte[] b)
- read(byte[] b, int off, int len)
- reset()
- skip()
- java.io.OuputStream では、以下のメソッドがサポートされます。
- close()
- flush()
- write(byte[] b)
- write(byte[] b, int off, int len)
- write(int b)
- java.net.SocketOptions では、以下のオプションがサポートされます。
- SO_TIMEOUT (SO_TIMEOUT)
- TCP_NODELAY (TCP_NODELAY)
- 整数 (SO_LINGER) 型
- SO_BINDADDR (SO_BINDADDR)
- SO_REUSEADDR (SO_REUSEADDR)
- SO_BROADCAST (SO_BROADCAST)
- SO_SNDBUF (SO_SNDBUF)
- SO_RCVBUF (SO_RCVBUF)
- SO_KEEPALIVE (SO_KEEPALIVE)
- SO_OOBINLINE (SO_OOBINLINE)
- SO_BINDADDR (SO_BINDADDR)
- SO_REUSEADDR (SO_REUSEADDR)
- SO_SNDBUF (SO_SNDBUF)
- SO_RCVBUF (SO_RCVBUF)
注: SO_SNDBUF および SO_RCVBUF は、ソケットの作成直後、そのソケットで接続またはバインド操作が行われる前に有効になります。残りのソケット・オプションについては、JSOR ランタイムは TCP/IP 実装にフォールバックします。

- java.nio.channels.SocketChannel
- java.nio.channels.ServerSocketChannel
- java.nio.channels.Selector

ソケットの送受信バッファー・サイズを管理するには、JSOR に組み込まれている Java 環境変数を使用します。 詳しくはJSOR環境設定 (Linux)を参照してください。