BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Open Liberty 19.0.0.4のリリースで、Reactive Streams Operators 1.0およびJDK 12をサポート

Open Liberty 19.0.0.4のリリースで、Reactive Streams Operators 1.0およびJDK 12をサポート

原文(投稿日:2019/05/19)へのリンク

Open Liberty 19.0.0.4のIBMの最新月次リリースは、MicroProfile Reactive Streams Operators 1.0 API、JDK 12、およびOracle Universal Connection Poolのサポートを特徴としている。

2017年9月に最初に導入されたOpen Libertyは、IBMのWebSphere Libertyアプリケーションサーバのオープンソース実装であり、クラウドネイティブアプリケーションとマイクロサービスを構築するためのサーバランタイムを提供する。MicroProfileフレームワークとJava EE APIを完全にサポートしている。開発者は、Webアプリケーションおよびマイクロサービスを構築、パッケージ化、およびデプロイする方法の例を提供する入門ガイドを使用できる。

MicroProfile Reactive Streams Operators 1.0のサポート

Reactive Streamsは、フロー制御とエラー処理を提供する、ノンブロッキングバックプレッシャによる非同期ストリーム処理のための手段を提供する。これにより、パブリッシャは、コンシューマに負担をかけずに、無限の可能性があるデータストリームを作成できる。

サブスクライバは、受信したい量のデータを要求し、フローを制御して自分のペースでデータストリームを処理できる。MicroProfile Reactive Streams Operatorsは、Reactive Streams Publisher、Subscriber、およびProcessorのインスタンスを作成するための一連のビルダーを提供する。

さらに、データストリームを操作および変換するために、フィルタリングやマッピングなどの演算子が提供されている。Open Liberty 19.0.0.4でMicroProfile Reactive Streams Operators 1.0を有効にするには、server.xmlファイルを更新する。

<featureManager>
    <feature>mpReactiveStreams-1.0</feature>
</featureManager>

有効にすると、Reactive Streams Operators APIを使用してデータストリームを生成および消費することができる。次に、パブリッシャが注文をストリーミングし、サブスクライバがその注文を処理するためにストリームを消費する例を考える。

import org.eclipse.microprofile.reactive.streams.operators.CompletionRunner;
import org.eclipse.microprofile.reactive.streams.operators.PublisherBuilder;
import org.eclipse.microprofile.reactive.streams.operators.ReactiveStreams;
import org.eclipse.microprofile.reactive.streams.operators.SubscriberBuilder;

PublisherBuilder<Order> orderPublisher = ReactiveStreams.of(order1, order2);

SubscriberBuilder<Order, List<Shipment>> fulfillmentSubscriber =
    ReactiveStreams.<Order>builder()
        .map(order -> new Fulfillment(order).packAndShip())
        .toList();

CompletionRunner<List<Shipment>> result = orderPublisher.to(fulfillmentSubscriber);

JDK 12のサポート

Open Liberty 19.0.0.4は、新しいShenandoahガベージコレクタとswitch式の構文を採用した、最近のJDK 12のリリースをサポートする。提案JEP 344およびJEP 346による既存のG1ガベージコレクタの改良もJDK 12に含まれている。注記として、機能リリースとして、JDK 12の標準サポートは2019年9月に終了する。

Oracle Universal Connection Pool (UCP) のサポート

Oracle Universal Connection Pool (UCP) は、データベース接続オブジェクトをキャッシュするためのJDBC接続プールを提供する。これにより、Oracle Real Application Clusters(RAC)のユーザは、Fast Connection Failover (FCF)、 Fast Application Notification (FAN)、Oracle Notification Services (ONS)など、オラクルの高可用性とパフォーマンス中心の機能を活用できる。

Open Liberty 19.0.0.4はUCPをサポートしており、server.xmlファイルを更新して機能マネージャ、データソース、およびUCPドライバパスを設定することで有効にできる。

<featureManager>
    <feature>jdbc-4.2</feature>
    <feature>jndi-1.0</feature> <!-- Required only if JNDI is desired to look up resources -->
</featureManager>

<dataSource id="oracleUCPDS" jndiName="jdbc/oracleUCPDS" >
    <jdbcDriver libraryRef="OracleUCPLib" />
    <properties.oracle.ucp URL="jdbc:oracle:thin:@//{host}:{port}/{db}" />
</dataSource>

<library id="OracleUCPLib">
    <fileset dir="{path_to_driver}" includes="ojdbcx.jar ucp.jar"/>
</library>

UCP接続プールを使用すると、Open Libertyの組み込み接続プール機能が無効になる。その結果、一部のデータソースと接続マネージャの設定値は無視される。

今年の初め、InfoQはOpen Libertyの新しい4週間リリースのステップについて報告し、IBMでWebSphereのMicroProfile、およびJakarta EEアーキテクトKevin Sutterにインタビューした

この記事に星をつける

おすすめ度
スタイル

BT