Thorntail ランタイムガイド

Red Hat build of Thorntail 2.7

OpenShift およびスタンドアロン RHEL 上で実行する小規模なスタンドアロンのマイクロサービスベースのアプリケーションを開発するのに Thorntail を使用

Red Hat Customer Content Services

概要

本ガイドでは、Thorntail の使用を説明します。

はじめに

本ガイドでは、概念と、開発者が Thorntail ランタイムを使用する際に必要な実用的な詳細情報を説明します。

Red Hat ドキュメントへのフィードバック

ご意見やご意見をお聞かせください。フィードバックを行うには、ドキュメント内のテキストを強調表示し、コメントを追加します。

本セクションでは、フィードバックの送信方法を説明します。

前提条件

  • Red Hat カスタマーポータルにログインします。
  • Red Hat カスタマーポータルで、Multi-page HTML 形式のドキュメントを表示します。

手順

フィードバックを提供するには、以下の手順を実施します。

  1. ドキュメントの右上隅にある Feedback ボタンをクリックして、既存のフィードバックを表示します。

    注記

    フィードバック機能は、Multi-page HTML 形式でのみ有効です。

  2. フィードバックを提供するドキュメントのセクションを強調表示します。
  3. 強調表示されているテキストの近くに表示される Add Feedback ポップアップをクリックします。

    ページの右側のフィードバックセクションに、テキストボックスが表示されます。

  4. テキストボックスにフィードバックを入力し、Submit をクリックします。

    ドキュメントの問題が作成されました。

  5. この問題を確認するには、フィードバックビューで問題トラッカーをクリックします。

第1章 Thorntail を使用したアプリケーション開発の概要

このセクションでは、Red Hat ランタイムでのアプリケーション開発の基本概念を説明します。また、Thorntail ランタイムの概要も説明します。

1.1. Red Hat Runtimes でのアプリケーション開発の概要

Red Hat OpenShift は、クラウドネイティブランタイムのコレクションを提供するコンテナーアプリケーションプラットフォームです。ランタイムを使用して、OpenShift で Java または JavaScript アプリケーションを開発、ビルド、およびデプロイできます。

Red Hat Runtimes for OpenShift を使用したアプリケーション開発には、以下が含まれます。

  • OpenShift 上で実行されるように設計された Eclipse Vert.x、Thorntail、Spring Boot などのランタイムのコレクション。
  • OpenShift でのクラウドネイティブ開発への規定的なアプローチ。

OpenShift は、アプリケーションのデプロイメントおよび監視の管理、保護、自動化に役立ちます。ビジネス上の問題を小規模なマイクロサービスに分割し、OpenShift を使用してマイクロサービスをデプロイし、監視し、維持することができます。サーキットブレーカー、ヘルスチェック、サービス検出などのパターンをアプリケーションに実装できます。

クラウドネイティブな開発は、クラウドコンピューティングを最大限に活用します。

以下でアプリケーションをビルドし、デプロイし、管理できます。

OpenShift Container Platform
Red Hat のプライベートオンプレミスクラウド。
Red Hat Container Development Kit (Minishift)
ローカルマシンにインストールおよび実行できるローカルクラウド。この機能は、Red Hat Container Development Kit (CDK) またはMinishift で提供されます。
Red Hat CodeReady Studio
アプリケーションの開発、テスト、デプロイを行う統合開発環境 (IDE)。

アプリケーション開発を開始できるようにするため、サンプルアプリケーションですべてのランタイムが利用可能になります。これらのサンプルアプリケーションは Developer Launcher からアクセスできます。サンプルをテンプレートとして使用してアプリケーションを作成することができます。

本ガイドでは、Thorntail ランタイムに関する詳細情報を提供します。その他のランタイムの詳細は、関連する ランタイムドキュメント を参照してください。

1.2. Developer Launcher を使用した Red Hat OpenShift でのアプリケーション開発

Developer Launcher (developers.redhat.com/launch) を使用して、OpenShift でのクラウドネイティブアプリケーションの開発を開始することができます。これは、Red Hat が提供するサービスです。

Developer Launcher はスタンドアロンのプロジェクトジェネレーターです。これを使用して、OpenShift Container Platform、Minshift、CDK などの OpenShift インスタンスでアプリケーションをビルドし、デプロイできます。

1.2.1. Thorntail でサポートされているアーキテクチャー

Thorntail は以下のアーキテクチャーをサポートします。

  • x86_64 (AMD64)
  • OpenShift 環境の IBM Z (s390x)

アーキテクチャーによって異なるイメージがサポートされています。本ガイドのコード例は、x86_64 アーキテクチャーのコマンドを示しています。他のアーキテクチャーを使用している場合は、コマンドに該当するイメージ名を指定します。

イメージ名の詳細については、「Thorntail でサポートされる Java イメージ」セクションを参照してください。

1.2.2. サンプルアプリケーションの概要

例として、クラウドネイティブのアプリケーションとサービスをビルドする方法を実証する作業アプリケーションがあります。これらは、アプリケーションの開発時に使用する必要のある規範的なアーキテクチャー、設計パターン、ツール、およびベストプラクティスを示しています。サンプルアプリケーションは、クラウドネイティブのマイクロサービスを作成するためのテンプレートとして使用できます。本ガイドで説明しているデプロイメントプロセスを使用して、例を更新および再デプロイできます。

この例では、以下のような マイクロサービスパターン を実装します。

  • REST API の作成
  • データベースの相互運用
  • ヘルスチェックパターンの実装
  • アプリケーションの設定を外部化してセキュア化し、スケーリングしやすくする

サンプルアプリケーションは以下のように使用できます。

  • テクノロジーのデモの実行
  • プロジェクトのアプリケーションの開発方法を理解するためのツールまたはサンドボックスの学習
  • 独自のユースケースを更新または拡張するためのヒント

各サンプルアプリケーションは 1 つ以上のランタイムに実装されます。たとえば、REST API Level 0 の例は以下のランタイムで利用できます。

これ以降のセクションでは、Thorntail ランタイムに実装されたサンプルアプリケーションを説明します。

すべてのサンプルアプリケーションを以下にダウンロードおよびデプロイできます。

  • x86_64 アーキテクチャー - 本ガイドのアプリケーションの例では、サンプルアプリケーションを x86_64 アーキテクチャーにビルドおよびデプロイする方法を説明します。
  • s390x アーキテクチャー - IBM Z インフラストラクチャーでプロビジョニングされた OpenShift 環境でサンプルアプリケーションをデプロイするには、コマンドに関連する IBM Z イメージ名を指定します。イメージ名の詳細については、「Thorntail でサポートされる Java イメージ」セクションを参照してください。

    サンプルアプリケーションの一部には、ワークフローを実証するために Red Hat Data Grid などの他の製品も必要になります。この場合は、これらの製品のイメージ名を、サンプルアプリケーションの YAML ファイルで関連する IBM Z イメージ名に変更する必要もあります。

第2章 Developer Launcher を使用したアプリケーションのダウンロードおよびデプロイ

このセクションでは、ランタイムで提供されるサンプルアプリケーションをダウンロードおよびデプロイする方法を説明します。アプリケーションのサンプルは Developer Launcher で利用できます。

2.1. Developer Launcher の使用

Developer Launcher (developers.redhat.com/launch) は OpenShift 上で実行されます。アプリケーションのサンプルをデプロイする場合、Developer Launcher は以下のプロセスについて説明します。

  • ランタイムの選択
  • アプリケーションのビルドおよび実行

選択に基づいて、Developer Launcher はカスタムプロジェクトを生成します。プロジェクトの ZIP バージョンをダウンロードするか、または OpenShift Online インスタンスでアプリケーションを直接起動できます。

Developer Launcher を使用してアプリケーションを OpenShift にデプロイする場合は、Source-to-Image (S2I) ビルドプロセスが使用されます。このビルドプロセスは、OpenShift でアプリケーションを実行するために必要なすべての設定、ビルド、およびデプロイメントのステップを処理します。

2.2. Developer Launcher を使用したサンプルアプリケーションのダウンロード

Red Hat は、Thorntail ランタイムの使用に役立つサンプルアプリケーションを提供します。これらの例は、Developer Launcher (developers.redhat.com/launch) で利用できます。

サンプルアプリケーションをダウンロードし、ビルドし、デプロイできます。本セクションでは、サンプルアプリケーションをダウンロードする方法を説明します。

サンプルアプリケーションをテンプレートとして使用し、独自のクラウドネイティブアプリケーションを作成できます。

手順

  1. Developer Launcher (developers.redhat.com/launch) に移動します。
  2. Start をクリックします。
  3. Deploy an Example Application をクリックします。
  4. Select an Example をクリックし、ランタイムで使用できるサンプルアプリケーションの一覧を表示します。
  5. ランタイムを選択します。
  6. サンプルアプリケーションを選択します。

    注記

    複数のランタイムで利用できるアプリケーションの例もあります。前の手順でランタイムを選択していない場合は、サンプルアプリケーションで利用できるランタイムの一覧からランタイムを選択できます。

  7. ランタイムのリリースバージョンを選択します。ランタイムに一覧表示されているコミュニティーまたは製品リリースから選択できます。
  8. Save をクリックします。
  9. Download をクリックして、サンプルアプリケーションをダウンロードします。

    ソースおよびドキュメントファイルを含む ZIP ファイルがダウンロードされます。

2.3. OpenShift Container Platform または CDK (Minishift) へのサンプルアプリケーションのデプロイ

サンプルアプリケーションを OpenShift Container Platform または CDK (Minishift) のいずれかにデプロイできます。アプリケーションをデプロイする場所に応じて、認証に該当する Web コンソールを使用します。

前提条件

  • Developer Launcher を使用して作成されたアプリケーションプロジェクトのサンプル
  • アプリケーションを OpenShift Container Platform にデプロイする場合は、OpenShift Container Platform Web コンソールにアクセスできる必要があります。
  • CDK (Minishift) にアプリケーションをデプロイする場合は、CDK (Minishift) Web コンソールにアクセスできる必要があります。
  • OC コマンドラインクライアントがインストールされている。

手順

  1. サンプルアプリケーションをダウンロードします。
  2. oc コマンドラインクライアントを使用して、サンプルアプリケーションを OpenShift Container Platform または CDK(Minishift) にデプロイできます。

    Web コンソールによって提供されるトークンを使用してクライアントを認証する必要があります。アプリケーションをデプロイする場所に応じて、OpenShift Container Platform Web コンソールまたは CDK (Minishift) Web コンソールを使用します。以下の手順を実行してクライアントの認証を取得します。

    1. Web コンソールにログインします。
    2. Web コンソールの右上隅にあるクエスチョンマークアイコンをクリックします。
    3. 一覧から Command Line Tools を選択します。
    4. oc login コマンドをコピーします。
    5. ターミナルにコマンドを貼り付け、CLI クライアント oc をアカウントで認証します。

      $ oc login OPENSHIFT_URL --token=MYTOKEN
  3. ZIP ファイルの内容を展開します。

    $ unzip MY_APPLICATION_NAME.zip
  4. OpenShift で新規プロジェクトを作成します。

    $ oc new-project MY_PROJECT_NAME
  5. MY_APPLICATION_NAME の root ディレクトリーに移動します。
  6. Maven を使用してサンプルアプリケーションをデプロイします。

    $ mvn clean fabric8:deploy -Popenshift

    注記: アプリケーションの例によっては、追加の設定が必要になる場合があります。サンプルアプリケーションをビルドおよびデプロイするには、README ファイルに記載されている手順に従います。

  7. アプリケーションのステータスを確認し、Pod が実行していることを確認します。

    $ oc get pods -w
    NAME                             READY     STATUS      RESTARTS   AGE
    MY_APP_NAME-1-aaaaa               1/1       Running     0          58s
    MY_APP_NAME-s2i-1-build           0/1       Completed   0          2m

    MY_APP_NAME-1-aaaaa Pod は完全にデプロイされ、起動した後に Running ステータスになります。アプリケーションの Pod 名は異なる場合があります。ポッド名の数値は、新しいビルドごとに増加します。末尾の文字は、Pod の作成時に生成されます。

  8. アプリケーションのサンプルをデプロイして起動すると、そのルートを決定します。

    ルート情報の例

    $ oc get routes
    NAME                 HOST/PORT                                                     PATH      SERVICES        PORT      TERMINATION
    MY_APP_NAME         MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME      MY_APP_NAME      8080

    Pod のルート情報は、アクセスできるベース URL を提供します。この例では、http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME をベース URL として使用し、アプリケーションにアクセスできます。

第3章 Thorntail アプリケーションの開発およびデプロイ

サンプルを使用する他に、ゼロから新規の Thorntail アプリケーションを作成し、それらを OpenShift にデプロイできます。

3.1. アプリケーションをゼロから作成

REST エンドポイントを使用した単純な Thorntail ベースのアプリケーションの作成

前提条件

  • OpenJDK 8 または OpenJDK 11 がインストールされている。
  • Maven 3.5.0 がインストールされている

手順

  1. アプリケーションのディレクトリーを作成し、そのディレクトリーに移動します。

    $ mkdir myApp
    $ cd myApp

    Git でディレクトリーコンテンツの追跡を開始することが推奨されます。詳細はGit チュートリアル を参照してください。

  2. ディレクトリーに、以下の内容を含む pom.xml ファイルを作成します。

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>com.example</groupId>
      <artifactId>restful-endpoint</artifactId>
      <version>1.0.0-SNAPSHOT</version>
      <packaging>war</packaging>
    
      <name>Thorntail Example</name>
    
      <properties>
        <version.thorntail>2.7.0.Final-redhat-00003</version.thorntail>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <failOnMissingWebXml>false</failOnMissingWebXml>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    
        <!-- Specify the JDK builder image used to build your application. -->
        <fabric8.generator.from>registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift:latest</fabric8.generator.from>
      </properties>
    
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>io.thorntail</groupId>
            <artifactId>bom</artifactId>
            <version>${version.thorntail}</version>
            <scope>import</scope>
            <type>pom</type>
          </dependency>
        </dependencies>
      </dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>io.thorntail</groupId>
          <artifactId>jaxrs</artifactId>
        </dependency>
      </dependencies>
    
      <build>
        <finalName>restful-endpoint</finalName>
        <plugins>
          <plugin>
            <groupId>io.thorntail</groupId>
            <artifactId>thorntail-maven-plugin</artifactId>
            <version>${version.thorntail}</version>
            <executions>
              <execution>
                <goals>
                  <goal>package</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    
      <!-- Specify the repositories containing RHOAR artifacts -->
      <repositories>
        <repository>
          <id>redhat-ga</id>
          <name>Red Hat GA Repository</name>
          <url>https://maven.repository.redhat.com/ga/</url>
        </repository>
      </repositories>
    
      <pluginRepositories>
        <pluginRepository>
          <id>redhat-ga</id>
          <name>Red Hat GA Repository</name>
          <url>https://maven.repository.redhat.com/ga/</url>
        </pluginRepository>
      </pluginRepositories>
    
    </project>
  3. アプリケーションのディレクトリー構造を作成します。

    mkdir -p src/main/java/com/example/rest
  4. src/main/java/com/example/rest ディレクトリーに、ソースファイルを作成します。

    • HTTP エンドポイントを提供するクラスが含まれる HelloWorldEndpoint.java:

      package com.example.rest;
      
      import javax.ws.rs.Path;
      import javax.ws.rs.core.Response;
      import javax.ws.rs.GET;
      import javax.ws.rs.Produces;
      
      @Path("/hello")
      public class HelloWorldEndpoint {
      
        @GET
        @Produces("text/plain")
        public Response doGet() {
          return Response.ok("Hello from Thorntail!").build();
        }
      }
    • アプリケーションコンテキストを使用した RestApplication.java:

      package com.example.rest;
      
      import javax.ws.rs.core.Application;
      import javax.ws.rs.ApplicationPath;
      
      @ApplicationPath("/rest")
      public class RestApplication extends Application {
      }
  5. Maven を使用してアプリケーションを実行します。

    $ mvn thorntail:run

結果

ブラウザーで URL http://localhost:8080/rest/hello にアクセスすると、以下のメッセージが表示されます。

Hello from Thorntail!

この手順を完了すると、ハードドライブに以下の内容を含むディレクトリーがあるはずです。

myApp
├── pom.xml
└── src
    └── main
        └── java
            └── com
                └── example
                    └── rest
                        ├── HelloWorldEndpoint.java
                        └── RestApplication.java

3.2. Thorntail アプリケーションの OpenShift へのデプロイ

Thorntail アプリケーションを OpenShift にデプロイするには、アプリケーションで pom.xml ファイルを設定し、Fabric8 Maven プラグインを使用します。pom.xml ファイルの fabric8.generator.from URL を置き換えて、Java イメージを指定できます。

イメージは Red Hat Ecosystem Catalog で利用できます。

<fabric8.generator.from>IMAGE_NAME</fabric8.generator.from>

たとえば、OpenJDK 8 を使用する RHEL 7 の Java イメージは以下のようになります。

<fabric8.generator.from>registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift:latest</fabric8.generator.from>

3.2.1. Thorntail でサポートされる Java イメージ

Thorntail は、さまざまなオペレーティングシステムで利用可能なさまざまな Java イメージで認定およびテストされています。たとえば、Java イメージは、RHEL 7 および RHEL 8 で OpenJDK 8 または OpenJDK 11 で利用できます。同様のイメージは IBM Z で利用できます。

Red Hat Ecosystem Catalog で RHEL 8 イメージにアクセスするには、Docker または Podman 認証が必要です。

以下の表は、さまざまなアーキテクチャーについて Thorntail によってサポートされるイメージの一覧です。また、Red Hat Ecosystem Catalog で利用可能なイメージへのリンクも提供します。イメージページには、RHEL 8 イメージへのアクセスに必要な認証手順が含まれています。

3.2.1.1. x86_64 アーキテクチャー上のイメージ

OSJavaRed Hat Ecosystem Catalog

RHEL 7

OpenJDK 8

OpenJDK 8 を使用した RHEL 7

RHEL 7

OpenJDK 11

OpenJDK 11 を使用した RHEL 7

RHEL 8

OpenJDK 8

OpenJDK 8 を使用した RHEL 8

RHEL 8

OpenJDK 11

OpenJDK 11 を使用した RHEL 8

注記

RHEL 7 ホストでの RHEL 8 ベースのコンテナーの使用 (OpenShift 3 や OpenShift 4 など) は、サポートが限定されています。詳細は、「Red Hat Enterprise Linux Container Compatibility Matrix」を参照してください。

3.2.1.2. s390x (IBM Z) アーキテクチャー上のイメージ

OSJavaRed Hat Ecosystem Catalog

RHEL 8

Eclipse OpenJ9 11

Eclipse OpenJ9 11 を使用した RHEL 8

注記

RHEL 7 ホストでの RHEL 8 ベースのコンテナーの使用 (OpenShift 3 や OpenShift 4 など) は、サポートが限定されています。詳細は、「Red Hat Enterprise Linux Container Compatibility Matrix」を参照してください。

3.2.2. OpenShift デプロイメント向けの Thorntail アプリケーションの準備

Thorntail アプリケーションを OpenShift にデプロイするには、以下を含める必要があります。

  • アプリケーションの pom.xml ファイルにあるランチャープロファイル情報。

以下の手順では、Fabric8 Maven プラグインを使用するプロファイルは、アプリケーションを OpenShift へのビルドおよびデプロイに使用されます。

前提条件

  • Maven がインストールされている。
  • Red Hat Ecosystem Catalog での Docker または Podman 認証による RHEL 8 イメージへのアクセス

手順

  1. 以下の内容をアプリケーションのルートディレクトリーの pom.xml ファイルに追加します。

    ...
    
    <profiles>
        <profile>
          <id>openshift</id>
          <build>
            <plugins>
              <plugin>
                <groupId>io.fabric8</groupId>
                <artifactId>fabric8-maven-plugin</artifactId>
                <version>4.4.1</version>
                <executions>
                  <execution>
                    <goals>
                      <goal>resource</goal>
                      <goal>build</goal>
                    </goals>
                  </execution>
                </executions>
              </plugin>
            </plugins>
          </build>
        </profile>
      </profiles>
  2. pom.xml ファイルの fabric8.generator.from プロパティーを置き換え、使用する OpenJDK イメージを指定します。

    • x86_64 アーキテクチャー

      • OpenJDK 8 を使用した RHEL 7

        <fabric8.generator.from>registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift:latest</fabric8.generator.from>
      • OpenJDK 11 を使用した RHEL 7

        <fabric8.generator.from>registry.access.redhat.com/openjdk/openjdk-11-rhel7:latest</fabric8.generator.from>
      • OpenJDK 8 を使用した RHEL 8

        <fabric8.generator.from>registry.redhat.io/openjdk/openjdk-8-rhel8:latest</fabric8.generator.from>
      • OpenJDK 11 を使用した RHEL 8

        <fabric8.generator.from>registry.redhat.io/openjdk/openjdk-11-rhel8:latest</fabric8.generator.from>
    • s390x (IBM Z) アーキテクチャー

      • Eclipse OpenJ9 11 を使用した RHEL 8

        <fabric8.generator.from>registry.access.redhat.com/openj9/openj9-11-rhel8:latest</fabric8.generator.from>

3.2.3. Fabric8 Maven プラグインを使用した Thorntail アプリケーションの OpenShift へのデプロイ

Thorntail アプリケーションを OpenShift にデプロイするには、以下を実行します。

  • OpenShift インスタンスにログインします。
  • OpenShift インスタンスにアプリケーションをデプロイします。

前提条件

  • CLI クライアント oc がインストールされている。
  • Maven がインストールされている。

手順

  1. oc クライアントを使用して OpenShift インスタンスにログインします。

    $ oc login ...
  2. OpenShift インスタンスで新規プロジェクトを作成します。

    $ oc new-project MY_PROJECT_NAME
  3. アプリケーションのルートディレクトリーから Maven を使用してアプリケーションを OpenShift にデプロイします。アプリケーションのルートディレクトリーには pom.xml ファイルが含まれます。

    $ mvn clean fabric8:deploy -Popenshift

    このコマンドは Fabric8 Maven プラグインを使用して OpenShift で S2I プロセス を起動し、Pod を起動します。

  4. デプロイメントを確認します。

    1. アプリケーションのステータスを確認し、Pod が実行していることを確認します。

      $ oc get pods -w
      NAME                             READY     STATUS      RESTARTS   AGE
      MY_APP_NAME-1-aaaaa               1/1       Running     0          58s
      MY_APP_NAME-s2i-1-build           0/1       Completed   0          2m

      MY_APP_NAME-1-aaaaa Pod は、完全にデプロイされて起動すると、ステータスがRunning になるはずです。

      特定の Pod 名は異なります。

    2. Pod のルートを判別します。

      ルート情報の例

      $ oc get routes
      NAME                 HOST/PORT                                                     PATH      SERVICES        PORT      TERMINATION
      MY_APP_NAME         MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME      MY_APP_NAME      8080

      Pod のルート情報には、アクセスに使用するベース URL が提供されます。

      この例では、http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME をベース URL として使用し、アプリケーションにアクセスできます。

    3. OpenShift でアプリケーションが実行していることを確認します。

      $ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/rest/hello
      Hello from Thorntail!

3.3. Thorntail アプリケーションのスタンドアロン Red Hat Enterprise Linux へのデプロイ

Thorntail アプリケーションをスタンドアロンの Red Hat Enterprise Linux にデプロイするには、アプリケーションで pom.xml ファイルを設定し、Maven を使用してパッケージ化し、java -jar コマンドを使用してデプロイします。

前提条件

  • RHEL 7 または RHEL 8 がインストールされている。

3.3.1. スタンドアロンの Red Hat Enterprise Linux デプロイメント向けの Thorntail アプリケーションの準備

Thorntail アプリケーションをスタンドアロンの Red Hat Enterprise Linux にデプロイするには、最初に Maven を使用してアプリケーションをパッケージ化する必要があります。

前提条件

  • Maven がインストールされている。

手順

  1. 以下の内容をアプリケーションの root ディレクトリーの pom.xml ファイルに追加します。

      ...
      <build>
        <plugins>
          <plugin>
            <groupId>io.thorntail</groupId>
            <artifactId>thorntail-maven-plugin</artifactId>
            <version>${version.thorntail}</version>
            <executions>
              <execution>
                <goals>
                  <goal>package</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      ...
  2. Maven を使用してアプリケーションをパッケージ化します。

    $ mvn clean package

    作成される JAR ファイルは target ディレクトリーに置かれます。

3.3.2. jar を使用したスタンドアロンの Red Hat Enterprise Linux への Thorntail アプリケーションのデプロイ

Thorntail アプリケーションをスタンドアロンの Red Hat Enterprise Linux にデプロイするには、java -jar コマンドを使用します。

前提条件

  • RHEL 7 または RHEL 8 がインストールされている。
  • OpenJDK 8 または OpenJDK 11 がインストールされている。
  • アプリケーションが含まれる JAR ファイル。

手順

  1. アプリケーションとともに JAR ファイルをデプロイします。

    $ java -jar my-app-thorntail.jar
  2. デプロイメントを確認します。

    curl またはブラウザーを使用して、アプリケーションが http://localhost:8080 で稼働していることを確認します。

    $ curl http://localhost:8080

第4章 Thorntail Maven プラグインの使用

Thorntail は、uberjar パッケージを構築するほとんどの作業を実現する Maven プラグインを提供します。

4.1. Thorntail Maven プラグインの一般的な使用

Thorntail Maven プラグインは、アプリケーションで pom.xml ファイルを編集し、<plugin> セクションを追加することで、他の Maven プラグインと同様に使用されます。

<plugin>
  <groupId>io.thorntail</groupId>
  <artifactId>thorntail-maven-plugin</artifactId>
  <version>${version.thorntail}</version>
  <executions>
    ...
    <execution>
      <goals>
        ...
      </goals>
      <configuration>
        ...
      </configuration>
    </execution>
  </executions>
</plugin>

4.2. Thorntail Maven プラグインのゴール

Thorntail Maven プラグインは複数のゴールを提供します。

パッケージ
実行可能なパッケージを作成します (「uberjar の作成」を参照)。
run
Maven プロセスでアプリケーションを実行します。たとえば、Ctrl + C を押すなどして Maven ビルドが中断されると、アプリケーションが停止します。
start および multistart
フォークしたプロセスでアプリケーションを実行します。通常、maven-failsafe-plugin などのプラグインを使用して統合テストを実行する場合に限り便利です。multistart バリアントでは、Maven GAV を使用して複数の Thorntail が構築されたアプリケーションを起動し、複雑なテストシナリオをサポートすることができます。
stop

以前に起動したアプリケーションを停止します。

注記

stop ゴールは、同じ Maven 実行 で開始したアプリケーションのみを停止できます。

4.3. Thorntail Maven プラグインの設定オプション

Thorntail Maven プラグインは以下の設定オプションを受け入れます。

bundleDependencies

true の場合、依存関係は -thorntail.jar ファイルに含まれます。それ以外の場合は、ローカルの Maven リポジトリーまたはランタイム時にネットワークから解決されます。

プロパティー

thorntail.bundleDependencies

デフォルト

true

使用されるもの

package

注記

bundleDependenciesfalse に設定した場合に、ローカル Maven リポジトリーがランタイム時にどのように見つかるかを以下に示します。

  1. settings.xml ファイルが見つかり、ローカルリポジトリーを定義すると、これが使用されます。settings.xml ファイルを検索する場合は、以下の場所が考慮されます。

    1. jboss.modules.settings.xml.url システムプロパティーが定義されている場合は、それが使用されます。その値は file://... でなければなりません。settings.xml ファイルの URL。
    2. それ以外の場合は、~/.m2/settings.xml ファイルが存在する場合は使用されます。
    3. それ以外の場合は、$M2_HOME/conf/settings.xml ファイルが存在する場合は使用されます。
  2. それ以外の場合は、maven.repo.local システムプロパティーが定義された場合に使用されます。
  3. それ以外の場合は、標準の場所 ~/.m2/repository が使用されます。
debug

デバッグに使用するポート。設定すると、Torntail プロセスは起動時に一時停止し、このポートでデバッガーを開きます。

プロパティー

thorntail.debug.port

デフォルト

 

使用されるもの

runstart

環境

アプリケーションの実行時に使用する環境変数のプロパティースタイルの一覧。

プロパティー

none

デフォルト

 

使用されるもの

multistartrunstart

environmentFile

アプリケーションの実行時に使用する環境変数を含む .properties ファイル。

プロパティー

thorntail.environmentFile

デフォルト

 

使用されるもの

multistartrunstart

filterWebInfLib

true の場合、プラグインは Thorntail ランタイムによって提供されるアーティファクトを、プロジェクトの WAR ファイルの WEB-INF/lib ディレクトリーから削除します。uberjar-only の場合、この変換は uberjar に配置される WAR ファイルでのみ行われ、スタンドアロンの WAR ファイルは変更されません。それ以外の場合、WEB-INF/lib の内容は変更されません。

プロパティー

thorntail.filterWebInfLib

デフォルト

true

使用されるもの

package

注記

このオプションは通常は不要であり、Thorntail プラグインがアプリケーションに必要な依存関係を削除した場合の回避策として提供されます。false にした場合に、アプリケーションの機能を危険にさらす Thorntail アーティファクトが WEB-INF/lib ディレクトリーに含まれていないことを確認するのは、開発者の責任です。これを行う方法としては、フラクションへの依存関係を表現せず、自動検出 を使用するか、fractions オプションを使用して必要なフラクションを明示的に一覧表示します。

fractionDetectMode

フラクション検出のモード。利用可能なオプションは以下のとおりです。

  • when_missing: Thorntail 依存関係が見つからない場合に限り実行します。
  • force: 常に実行し、検出されたフラクションを既存の依存関係とマージします。既存の依存関係が優先されます。
  • never: フラクション検出を無効にします。

プロパティー

thorntail.detect.mode

デフォルト

when_missing

使用されるもの

packagerunstart

フラクション

自動検出の使用時に追加する追加のフラクションの一覧。これは、検出できないフラクションや、ユーザーが提供するフラクションに便利です。

フラクションを指定する場合は、* group:artifact:version * artifact:version * artifact のいずれかの形式を使用します。

グループを指定しないと、io.thorntail が想定されます。

バージョンを指定しない場合は、使用しているプラグインのバージョンが Thorntail BOM から取得されます。

値が ! 文字で始まる場合、対応する自動検出フラクションは (他のフラクションの依存関係でない限り) インストールされません。以下の例では、アプリケーションが javax.servlet パッケージからクラスを参照していても、Undertow フラクションはインストールされません。

<plugin>
  <groupId>io.thorntail</groupId>
  <artifactId>thorntail-maven-plugin</artifactId>
  <version>${version.thorntail}</version>
  <executions>
    <execution>
      <goals>
        <goal>package</goal>
      </goals>
      <configuration>
       <fractions>
         <fraction>!undertow</fraction>
       </fractions>
      </configuration>
    </execution>
  </executions>
</plugin>

プロパティー

none

デフォルト

 

使用されるもの

packagerunstart

jvmArguments

追加の JVM 引数 (-Xmx32mなど) を指定する <jvmArgument> 要素の一覧。

プロパティー

thorntail.jvmArguments

デフォルト

 

使用されるもの

multistartrunstart

modules

追加のモジュール定義が含まれるディレクトリーへのパス。

プロパティー

none

デフォルト

 

使用されるもの

packagerunstart

プロセス

起動するアプリケーションの設定 (マルチ起動を参照)。

プロパティー

none

デフォルト

 

使用されるもの

multistart

プロパティー

「Thorntail Maven プラグイン設定プロパティー」を参照してください。

プロパティー

none

デフォルト

 

使用されるもの

packagerunstart

propertiesFile

「Thorntail Maven プラグイン設定プロパティー」を参照してください。

プロパティー

thorntail.propertiesFile

デフォルト

 

使用されるもの

packagerunstart

stderrFile

起動プロセスの stderr 出力に送信されるのではなく、stderr 出力が保存されるファイルへのパスを指定します。

プロパティー

thorntail.stderr

デフォルト

 

使用されるもの

runstart

stdoutFile

起動プロセスの stdout 出力に送信されるのではなく、stdout 出力を保存するファイルへのパスを指定します。

プロパティー

thorntail.stdout

デフォルト

 

使用されるもの

runstart

useUberJar

指定されている場合は、${project.build.directory} にある -thorntail.jar ファイルが使用されます。この JAR は自動的に作成されないため、package ゴールを先に実行してください。

プロパティー

thorntail.useUberJar

デフォルト

 

使用されるもの

runstart

4.4. Thorntail Maven プラグイン設定プロパティー

プロパティーを使用すると、実行を設定し、アプリケーションのパッケージ化または実行に影響を及ぼすことができます。

プラグインの <configuration><properties> または <propertiesFile> セクションを追加すると、mvn thorntail:run コマンドを使用してアプリケーションを実行するときにこのプロパティが使用されます。さらに、同じプロパティーが myapp-thorntail.jar ファイルに追加され、uberjar の実行に影響します。<propertiesFile> から読み込まれたプロパティーは、<properties> セクション内の同じ名前のプロパティーをオーバーライドします。

uberjar に追加されたプロパティーは、java バイナリーの従来の -Dname=value メカニズムを使用するか、YAML ベースの設定ファイルを使用してランタイム時に上書きできます。

以下のプロパティーのみがパッケージ時に uberjar に追加されます。

  • <properties> セクションまたは <propertiesFile> の外で指定されたプロパティー。パスは次のいずれかで始まります。

    • jboss.
    • wildfly.
    • thorntail.
    • swarm.
    • maven.
  • <properties> セクションまたは <propertiesFile> で指定されたプロパティーをオーバーライドするプロパティー。

第5章 Thorntail フラクションの使用

5.1. フラクション

Thorntail は、無制限の機能セットによって定義されます。機能の各部分は フラクション と呼ばれます。JAX-RS や CDI などの API へのアクセスを提供するフラクションもあります。その他のフラクションは RHSSO (Keycloak) との統合などの高レベルの機能を提供します。

Thorntail のフラクションを消費する一般的な方法は、アプリケーションの pom.xml ファイルに追加する Maven 座標によるものです。フラクションが提供する機能は、アプリケーションとともにパッケージ化されます (「uberjar の作成」を参照)。

Thorntail フラクションを消費しやすくするため、BOM (Bill of Materials) が利用できます。詳細は、6章BOM の使用を参照してください。

5.2. フラクションの自動検出

Thorntail から利点を得るために既存のレガシーアプリケーションを移行することは、フラクションの自動検出を使用する場合は簡単です。アプリケーションで Thorntail Maven プラグインを有効にすると、Thorntail は使用する API を検出し、ビルド時に適切なフラクションを含めます。

注記

デフォルトでは、フラクションを明示的に指定しない場合、Thorntail は自動検出のみを行います。この動作は、fractionDetectMode プロパティーによって制御されます。詳細は、Maven プラグインの設定参照 を参照してください。

たとえば、pom.xml がすでに JAX-RS などの仕様の API .jar ファイルを指定していると仮定します。

<dependencies>
    <dependency>
      <groupId>org.jboss.spec.javax.ws.rs</groupId>
      <artifactId>jboss-jaxrs-api_2.1_spec</artifactId>
      <version>${version.jaxrs-api}</version>
      <scope>provided</scope>
    </dependency>
</dependencies>

Thorntail には、ビルド時に自動的に jaxrs フラクションが含まれます。

前提条件

  • pom.xml ファイルが含まれる既存の Maven ベースのアプリケーション。

手順

  1. thorntail-maven-pluginpom.xml<plugin> ブロックに追加し、<execution>package の目標を指定します。

    <plugins>
      <plugin>
        <groupId>io.thorntail</groupId>
        <artifactId>thorntail-maven-plugin</artifactId>
        <version>${version.thorntail}</version>
        <executions>
          <execution>
            <id>package</id>
            <goals>
              <goal>package</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  2. 通常の Maven ビルドを実行します。

    $ mvn package
  3. 作成される uberjar を実行します。

    $ java -jar ./target/myapp-thorntail.jar

5.3. 明示的なフラクションの使用

アプリケーションを最初から作成する場合は、パッケージ化するフラクションを明示的に選択することにより、アプリケーションが正しくコンパイルされ、正しいバージョンの API を使用することを確認してください。

前提条件

  • pom.xml ファイルが含まれる Maven ベースのアプリケーション。

手順

  1. BOM を pom.xml に追加します。詳細は、6章BOM の使用を参照してください。
  2. Thorntail Maven プラグインを pom.xml に追加します。詳細は、「uberjar の作成」を参照してください。
  3. Thorntail フラクションに対する 1 つ以上の依存関係を pom.xml ファイルに追加します。

    <dependencies>
      <dependency>
        <groupId>io.thorntail</groupId>
        <artifactId>jaxrs</artifactId>
      </dependency>
    </dependencies>
  4. 通常の Maven ビルドを実行します。

    $ mvn package
  5. 作成される uberjar を実行します。

    $ java -jar ./target/myapp-thorntail.jar

第6章 BOM の使用

アプリケーションが使用する Thorntail の割合を明示的に指定するために、自動検出に依存する代わりに、Thorntail には、いくつかの場所で Maven アーティファクトのバージョンを追跡および更新する代わりに使用できる BOM (bill of materials) のセットが含まれています。

6.1. Thorntail 製品の BOM タイプ

Thorntail は、just enough app-server として説明されています。つまり、複数のピースで構成されています。アプリケーションには必要な部分のみが含まれます。

Thorntail 製品を使用する場合は、以下の Maven BOM を指定できます。

bom
製品で利用可能なすべてのフラクション。
bom-certified
この製品に対して認定されたすべての community フラクション。bom-certified で使用されるフラクションはサポートされません。

6.2. アプリケーションでの BOM の指定

アプリケーション内の pom.xml ファイルで特定の BOM をインポートすると、すべてのアプリケーションの依存関係を 1 カ所で追跡できます。

注記

Maven BOM インポートのインポートの 1 つの欠点は、<pluginManagement> のレベルで構成を処理しないことです。Thorntail Maven プラグインを使用する場合は、使用するプラグインのバージョンを指定する必要があります。

pom.xml ファイルで使用するプロパティーのおかげで、プラグインの使用が BOM インポートでターゲットにしている Thorntail のリリースと一致することを簡単に確認できます。

<plugins>
  <plugin>
    <groupId>io.thorntail</groupId>
    <artifactId>thorntail-maven-plugin</artifactId>
    <version>${version.thorntail}</version>
      ...
  </plugin>
</plugins>

前提条件

  • pom.xml ファイルが含まれる Maven ベースのプロジェクトとしてアプリケーション。

手順

  1. bom アーティファクトを pom.xml に追加します。

    pom.xml のプロパティーで Thorntail の現在のバージョンを追跡することが推奨されます。

    <properties>
      <version.thorntail>2.7.0.Final-redhat-00003</version.thorntail>
    </properties>

    <dependencyManagement> セクションの BOM をインポートします。<type>pom</type> および <scope>import</scope> を指定します。

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>io.thorntail</groupId>
          <artifactId>bom</artifactId>
          <version>${version.thorntail}</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>

    上記の例では、bom アーティファクトがインポートされ、安定したフラクションのみが利用できるようにします。

    選択した BOM を <dependencyManagement> セクションに追加すると、以下の操作が可能です。

    • 後でに使用することを 選択した すべての Thorntail アーティファクトのバージョン管理を提供しました。
    • アプリケーションの pom.xml ファイルを編集する際に既知のアーティファクトを自動コンパイルする IDE へのサポートを提供しました。
  2. Thorntail 依存関係を含めます。

    <dependencyManagement> セクションで Thorntail BOM をインポートした場合でも、アプリケーションは Thorntail アーティファクトに依存していません。

    アプリケーション機能に基づいて Thorntail アーティファクトの依存関係を組み込むには、関連するアーティファクトを <dependency> 要素として入力します。

    注記

    <dependencyManagement> でインポートされた BOM が処理するため、アーティファクトのバージョンを指定する必要はありません。

    <dependencies>
      <dependency>
        <groupId>io.thorntail</groupId>
        <artifactId>jaxrs</artifactId>
      </dependency>
      <dependency>
        <groupId>io.thorntail</groupId>
        <artifactId>datasources</artifactId>
      </dependency>
    </dependencies>

    上記の例では、jaxrs および datasources のフラクションに対する明示的な依存関係が含まれます。これにより、undertow などの他の要素が含まれる推移的な依存関係が提供されます。

第7章 Thorntail アプリケーションのログへのアクセス

7.1. ロギングの有効化

各 Thorntail のフラクションはロギングフラクションによって異なります。つまり、アプリケーションで Thorntail フラクションを使用すると、ログは INFO レベル以上で自動的に有効になります。ロギングを明示的に有効にする場合は、アプリケーションの POM ファイルに Logging フラクションを追加します。

前提条件

  • Maven ベースのアプリケーション

手順

  1. アプリケーションの pom.xml ファイルで <dependencies> セクションを見つけます。以下の座標が含まれることを確認します。そうでない場合は追加します。

    <dependency>
      <groupId>io.thorntail</groupId>
      <artifactId>logging</artifactId>
    </dependency>
  2. INFO 以外のレベルのメッセージをログに記録する場合は、thorntail.logging システムプロパティーを指定してアプリケーションを起動します。

    $ mvn thorntail:run -Dthorntail.logging=FINE

    利用可能なレベルの一覧は org.wildfly.swarm.config.logging.Level クラスを参照してください。

7.2. ファイルへのログイン

コンソールロギングに加えて、アプリケーションのログをファイルに保存することができます。通常、デプロイメントはログのローテートを使用してディスク領域を保存します。

Thorntail では、ログはシステムプロパティーを使用して設定されます。アプリケーションの起動時に -Dproperty=value 構文を使用することは可能ですが、YAML プロファイルファイルを使用してファイルログを設定することが強く推奨されます。

前提条件

  • ロギングフラクションが有効になっている Maven ベースのアプリケーション。詳細は、「ロギングの有効化」を参照してください。
  • ファイルシステムの書き込み可能なディレクトリー。

手順

  1. 選択した YAML プロファイルファイルを開きます。使用するファイルが分からない場合は、アプリケーションソースの src/main/resources ディレクトリーで project-defaults.yml を開きます。YAML ファイルに以下のセクションを追加します。

    thorntail:
      logging:
  2. フォーマッターを設定します (任意)。以下のフォーマッターはデフォルトで設定されます。

    PATTERN
    ファイルにログインする際に便利です。
    COLOR_PATTERN
    カラー出力。コンソールへのロギングに便利です。

    カスタムフォーマッターを設定するには、logging セクションに選択したパターンで新しいフォーマッターを追加します。この例では、これは LOG_FORMATTER という名前になります。

    pattern-formatters:
      LOG_FORMATTER:
        pattern: "%p [%c] %s%e%n"
  3. ロガーで使用するファイルハンドラーを設定します。この例は、定期的なローテーションファイルハンドラーの構成を示しています。logging で、新しいハンドラーとともに Periodic-rotating-file-handlers セクションを追加します。

    periodic-rotating-file-handlers:
      FILE:
        file:
          path: target/MY_APP_NAME.log
        suffix: .yyyy-MM-dd
        named-formatter: LOG_FORMATTER
        level: INFO

    ここでは、FILE という名前の新しいハンドラーが作成され、INFO レベル以上のログイベントが記録されます。これは target ディレクトリーにログインし、各ログファイルの名前は MY_APP_NAME.log に接尾辞 .yyyy-MM-dd を付けて記録されます。Thorntail は接尾辞からログローテーション期間を自動的に解析するため、java.text.SimpleDateFormat クラスと互換性のある形式を使用してください。

  4. ルートロガーを設定します。

    ルートロガーはデフォルトで CONSOLE ハンドラーのみを使用するように設定されます。logging の下に、使用するハンドラーとともに root-logger セクションを追加します。

    root-logger:
      handlers:
      - CONSOLE
      - FILE

    ここでは、前のステップの FILE ハンドラーとデフォルトのコンソールハンドラーが使用されます。

以下で、完全なログ設定セクションを確認できます。

YAML 設定プロファイルの logging セクション

thorntail:
  logging:
    pattern-formatters:
      LOG_FORMATTER:
        pattern: "CUSTOM LOG FORMAT %p [%c] %s%e%n"
    periodic-rotating-file-handlers:
      FILE:
        file:
          path: path/to/your/file.log
        suffix: .yyyy-MM-dd
        named-formatter: LOG_FORMATTER
    root-logger:
      handlers:
      - CONSOLE
      - FILE

第8章 Thorntail アプリケーションの設定

Thorntail でビルドされたアプリケーションと共に、さまざまなオプションを設定できます。ほとんどのオプションでは、適切なデフォルトがすでに適用されているため、明示的に変更しない限り、オプションを変更する必要はありません。

このリファレンスは、構成可能なすべての項目の完全なリストであり、それを導入するフラクションでグループ化されています。アプリケーションが使用するフラクションに関連するアイテムのみが関連しています。

8.1. システムプロパティー

アプリケーションの構成にシステムプロパティを使用すると、トライアル、デバッグ、およびその他の短期間の活動に有利です。

8.1.1. 一般的に使用されるシステムプロパティー

これは、アプリケーションで使用する可能性のあるシステムプロパティの完全ではないリストです。

一般的なシステムプロパティー

thorntail.bind.address

サーバーをバインドするインターフェース

デフォルト

0.0.0.0

thorntail.port.offset

グローバルポートの調整

デフォルト

0

thorntail.context.path

デプロイされたアプリケーションのコンテキストパス。

デフォルト

/

thorntail.http.port

HTTP サーバーのポート

デフォルト

8080

thorntail.https.port

HTTPS サーバーのポート

デフォルト

8443

thorntail.debug.port

指定されている場合、Thorntail プロセスは指定のポートでデバッグを一時停止します。

このオプションは、JAR ファイルの実行時ではなく、Arquillian テストの実行時または mvn thorntail:run コマンドを使用したアプリケーションの起動時にのみ使用できます。JAR ファイルの実行には、通常の Java デバッグエージェントパラメーターが必要です。

デフォルト

 
thorntail.io.tmpdir

Thorntail が、uberjar の解凍やその他の一時ファイルに使用する一時ディレクトリー。

デフォルト

java.io.tmpdir

データソース関連のシステムプロパティー

JDBC ドライバーの自動検出では、以下のプロパティーを使用してデータソースを設定します。

thorntail.ds.name

データソースの名前

デフォルト

ExampleDS

thorntail.ds.username

データベースにアクセスするためのユーザー名

デフォルト

driver-specific

thorntail.ds.password

データベースにアクセスするためのパスワード

デフォルト

driver-specific

thorntail.ds.connection.url

JDBC 接続 URL

デフォルト

driver-specific

注記

利用可能なプロパティーの完全なセットについては、SwarmProperties.java クラスで各フラクション javadocs のドキュメントを参照してください

8.1.2. システムプロパティーを使用したアプリケーション設定

設定プロパティーはドット表記を使用して表示され、Java システムプロパティー名としての使用に適しています。これは、アプリケーションが Maven プラグイン構成の明示的な設定を通じて、またはアプリケーションの実行時にコマンドラインを通じて使用されます。

名前の KEY パラメーターを持つプロパティーは、名前のセグメントにキーまたは識別子を指定する必要があることを示します。

KEY パラメーターを使用した項目の設定

thorntail.undertow.servers.KEY.default-host として文書化されている設定項目は、設定が特定の名前付きサーバーに適用されることを示しています。

実際の使用では、プロパティーは、たとえば、default と呼ばれるサーバーの thorntail.undertow.servers.default.default-host になります。

8.1.3. Maven プラグインを使用したシステムプロパティーの設定

Maven プラグインを使用したプロパティーの設定は、Torntail アプリケーションを実行する 1 つの設定項目を一時的に変更する際に便利です。

注記

アプリケーションの POM ファイルの構成は永続的ですが、アプリケーションの長期的な構成に使用することは推奨されません。代わりに、YAML 設定ファイル を使用します。

Maven プラグインを介してデフォルトとして明示的な構成値を設定する場合は、アプリケーションの pom.xml ファイルでプラグインの <configuration> ブロックに <properties> セクションを追加します。

前提条件
  • POM ファイルが含まれる Thorntail ベースのアプリケーション
手順
  1. アプリケーションの POM ファイルで、変更する設定を見つけます。
  2. io.thorntail:thorntail-maven-plugin アーティファクトの設定と共にブロックを挿入します。以下に例を示します。

    <build>
      <plugins>
        <plugin>
          <groupId>io.thorntail</groupId>
          <artifactId>thorntail-maven-plugin</artifactId>
          <version>2.7.0.Final-redhat-00003</version>
          <configuration>
            <properties>
              <thorntail.bind.address>127.0.0.1</thorntail.bind.address>
              <java.net.preferIPv4Stack>true</java.net.preferIPv4Stack>
            </properties>
          </configuration>
        </plugin>
      </plugins>
    </build>

    上記の例では、thorntail.bind.address プロパティーが127.0.0.1 に設定され、java.net.preferIPv4Stack プロパティーが true に設定されています。

8.1.4. コマンドラインでシステムプロパティーの設定

Maven プラグインを使用したプロパティーの設定は、Torntail アプリケーションを実行する 1 つの設定項目を一時的に変更する際に便利です。

YAML 構成ファイルで設定する前に、環境固有の設定をカスタマイズするか、構成項目を試すことができます。

コマンドラインでプロパティーを使用するには、これをコマンドラインパラメーターとして Java バイナリーに渡します。

前提条件
  • アプリケーションを含む JAR ファイル
手順
  1. ターミナルアプリケーションで、アプリケーション JAR ファイルでディレクトリーに移動します。
  2. Java バイナリーを使用してアプリケーション JAR ファイルを実行し、プロパティーとその値を指定します。

    $ java -Dthorntail.bind.address=127.0.0.1 -jar myapp-thorntail.jar

    この例では、127.0.0.1 の値を thorntail.bind.address という名前のプロパティーに指定します。

8.1.5. 外部 JDBC ドライバーの指定

アプリケーションを実行する場合 (hollow JAR または uberjar として)、thorntail.classpath システムプロパティーを使用して JDBC ドライバー JAR を指定できます。これにより、アプリケーションでドライバーをパッケージ化する必要はありません。

thorntail.classpath プロパティーは、JAR ファイルへの 1 つ以上のパスを ; (セミコロン) 区切って受け入れます。指定された JAR ファイルがアプリケーションのクラスパスに追加されます。

前提条件
  • アプリケーションを含む JAR ファイル
手順
  1. ターミナルアプリケーションで、アプリケーション JAR ファイルでディレクトリーに移動します。
  2. Java バイナリーを使用してアプリケーション JAR ファイルを実行し、JDBC ドライバーを指定します。

    $ java -Dthorntail.classpath=./h2-1.4.196.jar -jar microprofile-jpa-hollow-thorntail.jar example-jpa-jaxrs-cdi.war

8.2. 環境変数

環境変数を使用してアプリケーションを設定するか、YAML ファイルに保存された値を上書きします。

8.2.1. 環境変数を使用したアプリケーション設定

環境変数を使用して、さまざまなデプロイメント (特に、Docker などのコンテナー化環境) でアプリケーションを設定します。

例8.1 環境変数の設定

thorntail.undertow.servers.KEY.default-host として文書化されているプロパティーは、次の環境変数に変換されます (default 識別子で KEY セグメントを置き換えます)。

export THORNTAIL.UNDERTOW.SERVERS.DEFAULT.DEFAULT_DASH_HOST=<myhost>

他の構成オプションとは異なり、Linux ベースのコンテナーで環境変数として定義されたプロパティでは、ドット (.)、ダッシュ/ハイフン (-) などの非英数字や、[A-Za-z0-9_] 範囲にないその他の文字を定義できません。Thorntail の多くの設定プロパティーにはこれらの文字が含まれるため、以下の環境で環境変数を定義する際には、これらのルールに従う必要があります。

Linux ベースのコンテナールール

  • これは、すべての環境プロパティーが大文字を使用して定義される命名規則です。たとえば、serveraddress プロパティーを SERVERADDRESS として定義します。
  • すべての ドット (.) 文字は、アンダースコア (_) に置き換える必要があります。たとえば、thorntail.bind.address=127.0.0.1 プロパティーを THORNTAIL_BIND_ADDRESS=127.0.0.1 として定義します。
  • すべての ダッシュ/ハイフン (-) 文字は _DASH_ 文字列に置き換える必要があります。たとえば、thorntail.data-sources.foo.url=<url> プロパティーを THORNTAIL_DATA_DASH_SOURCES_FOO_URL=<url> として定義します。
  • プロパティー名にアンダースコアが含まれている場合は、すべての アンダースコア (_) 文字を _UNDERSCORE_ 文字列に置き換える必要があります。たとえば、thorntail.data_sources.foo.url=<url> プロパティーを THORNTAIL_DATA_UNDERSCORE_SOURCES_FOO_URL=<url> として定義します。

例8.2 データソース設定の例

システムプロパティー

-Dthorntail.datasources.data-sources.devwf.connection-url= jdbc:postgresql://localhost:5432/sampledb

環境変数

THORNTAIL_DATASOURCES_DATA_DASH_SOURCES_DEVWF_CONNECTION_DASH_URL= 'jdbc:postgresql://localhost:5432/sampledb'

システムプロパティー

-Dthorntail.datasources.data-sources.devwf.driver-name=postgresql

環境変数

THORNTAIL_DATASOURCES_DATA_DASH_SOURCES_DEVWF_DRIVER_DASH_NAME='postgresql'

システムプロパティー

-Dthorntail.datasources.data-sources.devwf.jndiname=java:/jboss/datasources/devwf

環境変数

THORNTAIL_DATASOURCES_DATA_DASH_SOURCES_DEVWF_JNDI_DASH_NAME='java:/jboss/datasources/devwf'

システムプロパティー

-Dthorntail.datasources.data-sources.devwf.user-name=postgres

環境変数

THORNTAIL_DATASOURCES_DATA_DASH_SOURCES_DEVWF_USER_DASH_NAME='postgres'

システムプロパティー

-Dthorntail.datasources.data-sources.devwf.password=admin

環境変数

THORNTAIL_DATASOURCES_DATA_DASH_SOURCES_DEVWF_PASSWORD='admin'

8.3. YAML ファイル

YAML は、アプリケーションの長期的な設定に推奨される方法です。さらに、YAML 戦略は、環境固有の構成のグループ化を提供します。これは、アプリケーションの実行時に選択的に有効にすることができます。

8.3.1. 一般的な YAML ファイル形式

Thorntail 設定項目名は YAML 設定構造に対応します。つまり、一部の設定プロパティーに YAML 設定の一部を書き込む必要がある場合は、. 文字で設定プロパティーを区切るだけです。

例8.3 YAML の設定

たとえば、thorntail.undertow.servers.KEY.default-host として文書化されている構成アイテムは、KEY セグメントを default 識別子に置き換えて、次の YAML 構造に変換されます。

thorntail:
  undertow:
    servers:
      default:
        default-host: <myhost>

この単純なルールは常に適用され、例外はありません。追加の区切り文字もありません。特に、一部の Eclipse MicroProfile 仕様では、. 文字は、完全修飾クラス名で使用されているため、/ を区切り文字として使用する構成プロパティーが定義されています。YAML 設定を書き込むときは、/ では なく. で、分割する必要があります。

例8.4 MicroProfile Rest クライアントの YAML 設定

たとえば、 MicroProfile Rest Client は、com.example.demo.client.Service/mp-rest/url という名前の設定プロパティーを使用して外部サービスの URL を設定できます。これは以下の YAML に変換されます。

com:
  example:
    demo:
      client:
        Service/mp-rest/url: http://localhost:8080/...

8.3.2. デフォルトの Thorntail YAML ファイル

デフォルトでは、Thorntail はクラスパスに配置する特定の名前のファイルで永続的な構成を検索します。

project-defaults.yml

アプリケーションの元の .war ファイルに project-defaults.yml という名前のファイルが含まれている場合、そのファイルは Thorntail が提供する絶対デフォルトに適用されるデフォルトを表します。

その他のデフォルトファイル名

project-defaults.yml ファイルに加えて、-S <name> コマンドラインオプションを使用して特定の構成ファイルを提供できます。指定したファイルは、project-defaults.yml の前に指定した順序で読み込まれます。-S <name> 引数で提供される名前で、クラスパスの project-<name>.yml ファイルを指定します。

例8.5 コマンドラインで設定ファイルの指定

アプリケーションの実行について考えてみましょう。

$ java -jar myapp-thorntail.jar -Stesting -Scloud

以下の YAML ファイルは、この順序で読み込まれます。特定の設定項目を含む最初のファイルは、他の設定項目よりも優先されます。

  1. project-testing.yml
  2. project-cloud.yml
  3. project-defaults.yml

8.3.3. デフォルト以外の Thorntail YAML 設定ファイル

Thorntail ベースのアプリケーションのデフォルト設定ファイルのほかに、アプリケーション外で YAML ファイルを指定できます。-s <path> コマンドラインオプションを使用して、希望のファイルを読み込みます。

-s <path>-S <name> コマンドラインオプションの両方を同時に使用できますが、-s <path> オプションを使用して指定されるファイルはアプリケーションに含まれる YAML ファイルよりも優先されます。

例8.6 アプリケーション内外の設定ファイルの指定

アプリケーションの実行について考えてみましょう。

$ java -jar myapp-thorntail.jar -s/home/app/openshift.yml -Scloud -Stesting

以下の YAML ファイルは、この順序で読み込まれます。

  1. /home/app/openshift.yml
  2. project-cloud.yml
  3. project-testing.yml
  4. project-defaults.yml

以下のようにアプリケーションを呼び出しても、同じ優先順位が適用されます。

$ java -jar myapp-thorntail.jar -Scloud -Stesting -s/home/app/openshift.yml

第9章 アプリケーションのパッケージ化

本セクションでは、デプロイメントおよび実行用に Thorntail ベースのアプリケーションをパッケージ化する方法を説明します。

9.1. パッケージタイプ

Thorntail を使用する場合、ランタイムとアプリケーションをパッケージ化する方法は、使用方法とデプロイ方法によって異なります。

9.1.1. Uberjar

uberjar は、アプリケーションの実行に必要なすべてのものが含まれる単一の Java の .jar ファイルです。これは、アプリケーションコンポーネント (.war ファイル) とともに選択したランタイムコンポーネントの両方を意味します。これは、アプリケーションサーバーとして見なすことができます。

uberjar は、単一の実行可能なバイナリーアーティファクトが生成され、組織内のテスト、検証、および実稼働環境を移動する多くの継続的統合および継続的デプロイメント (CI/CD) パイプラインスタイルに役立ちます。

Thorntail が生成する uberjar の名前には、アプリケーションの名前と -thorntail.jar 接尾辞が含まれます。

uberjar は実行可能な JAR のように実行できます。

$ java -jar myapp-thorntail.jar

9.1.2. Hollow JAR

hollow JAR は uberjar と似ていますが、ランタイムコンポーネントのみが含まれ、アプリケーションコードは含まれません。

hollow jar は、Docker などの Linux コンテナーが含まれるデプロイメントプロセスに適しています。コンテナーを使用する場合は、ランタイムコンポーネントをイメージ階層の下位にあるコンテナーイメージに配置します。つまり、変更頻度が少なくなり、アプリケーションコードのみを含む上位層をより迅速に再構築できるようになることを示しています。

Thorntail が生成する hollow JAR の名前にはアプリケーションの名前や、-hollow-thorntail.jar 接尾辞が含まれます。hollow JAR を利用するには、アプリケーションの .war ファイルを個別にパッケージ化する必要があります。

注記

Hollow JAR の使用にはいくつかの制限があります。

  • Thorntail が JDBC ドライバーを自動検出できるようにするには、ドライバーと共に JAR を thorntail.classpath システムプロパティーに追加する必要があります。例を以下に示します。

    $ java -Dthorntail.classpath=./h2-1.4.196.jar -jar my-hollow-thorntail.jar myApp.war
  • アプリケーション内の YAML 設定ファイルは自動的に適用されません。以下のように手動で指定する必要があります。

    $ java -jar my-hollow-thorntail.jar myApp.war -s ./project-defaults.yml

hollow JAR を実行する場合は、アプリケーション .war ファイルを Java バイナリーに引数として指定します。

$ java -jar myapp-hollow-thorntail.jar myapp.war

9.1.2.1. 事前定義済みの Hollow JAR

Thorntail には事前にビルドされた以下の hollow JAR が同梱されます。

web
Web テクノロジーに特化した機能
microprofile
すべての Eclipse MicroProfile 仕様によって定義される機能

hollow JAR は以下のコーディネートで利用できます。

<dependency>
    <groupId>io.thorntail.servers</groupId>
    <artifactId>[web|microprofile]</artifactId>
</dependency>

9.2. uberjar の作成

Thorntail を使用して実行するアプリケーションをパッケージ化する 1 つの方法として、uberjar となります。

前提条件

  • pom.xml ファイルが含まれる Maven ベースのアプリケーション。

手順

  1. thorntail-maven-pluginpom.xml<plugin> ブロックに追加し、<execution>package の目標を指定します。

    <plugins>
      <plugin>
        <groupId>io.thorntail</groupId>
        <artifactId>thorntail-maven-plugin</artifactId>
        <version>${version.thorntail}</version>
        <executions>
          <execution>
            <id>package</id>
            <goals>
              <goal>package</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  2. 通常の Maven ビルドを実行します。

    $ mvn package
  3. 作成される uberjar を実行します。

    $ java -jar ./target/myapp-thorntail.jar

第10章 アプリケーションのテスト

10.1. コンテナー内でのテスト

Arquillian を使用すると、ユニットテストを実行中のアプリケーションに挿入することができます。これにより、アプリケーションが正しく動作していることを確認できます。Thorntail のアダプターがあり、Arquillian ベースのテストが Thorntail ベースのアプリケーションで適切に機能します。

前提条件

  • pom.xml ファイルが含まれる Maven ベースのアプリケーション。

手順

  1. 6章BOM の使用の説明に従って、Thorntail BOM を追加します。

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>io.thorntail</groupId>
          <artifactId>bom</artifactId>
          <version>${version.thorntail}</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
  2. <scope>test に設定して、pom.xml ファイルの io.thorntail:arquillian アーティファクトを参照します。

    <dependencies>
      <dependency>
        <groupId>io.thorntail</groupId>
        <artifactId>arquillian</artifactId>
        <scope>test</scope>
      </dependency>
    </dependencies>
  3. アプリケーションを作成します。

    通常どおりにアプリケーションを作成し、設定する必要があるデフォルトの project-defaults.yml ファイルを使用します。

    thorntail:
      datasources:
        data-sources:
          MyDS:
            driver-name: myh2
            connection-url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
            user-name: sa
            password: sa
        jdbc-drivers:
          myh2:
            driver-module-name: com.h2database.h2
            driver-xa-datasource-class-name: org.h2.jdbcx.JdbcDataSource
  4. テストクラスを作成します。

    注記

    Thorntail が存在する前に Arquillian テストを作成することには、アプリケーションがより大きく、目的は単一のコンポーネントを分離してテストすることであったため、通常はプログラムで アーカイブ を作成することが含まれていました。

    package org.wildfly.swarm.howto.incontainer;
    
    public class InContainerTest {
    }
  5. デプロイメントを作成します。

    マイクロサービスのコンテキストでは、アプリケーション全体が単一のマイクロサービスコンポーネントを表します。

    @DefaultDeployment アノテーションを使用して、アプリケーション全体のデプロイメントを自動的に作成します。@DefaultDeployment アノテーションはデフォルトで .war ファイルを作成しますが、Undertow はこのプロセスに関与していないため、この場合は適用されません。

    JUnit テストのクラスレベルで、@DefaultDeployment アノテーションを、@RunWith(Arquillian.class) アノテーションとともに適用します。

    @RunWith(Arquillian.class)
    @DefaultDeployment(type = DefaultDeployment.Type.JAR)
    public class InContainerTest {

    Thorntail との Arquillian 統合によって提供される @DefaultDeployment アノテーションを使用することは、 アーカイブ を返す静的メソッドで Arquillian @Deployment アノテーションを使用 しない ことを意味します。

    @DefaultDeployment アノテーションは、テストのパッケージを検証します。

    package org.wildfly.swarm.howto.incontainer;

    パッケージから、ヒューリスティックを使用して、他のすべてのアプリケーションクラスを同じパッケージに含めるか、Java パッケージ階層のより深い場所に含めます。

    @DefaultDeployment アノテーションを使用すると、アプリケーションのサブパッケージの デフォルトデプロイメント のみを作成するテストを作成できますが、たとえば、次のような無関係なパッケージにテストを配置することもできなくなります。

    package org.mycorp.myapp.test;
  6. テストコードを作成します。

    Arquillian タイプのテストを通常どおりに書き込みます。これには、Arquillian ファシリティーを使用して実行しているコンポーネントへのアクセスを取得します。

    以下の例では、Arquillian を使用して、実行中のアプリケーションの InitialContext をテストケースのインスタンスメンバーに挿入します。

    @ArquillianResource
    InitialContext context;

    つまり、test メソッド自体は InitialContext を使用して project-defaults.yml を使用して設定したデータソースをライブで利用可能にすることができます。

    @Test
    public void testDataSourceIsBound() throws Exception {
        DataSource ds = (DataSource) context.lookup("java:jboss/datasources/MyDS");
        assertNotNull( ds );
    }
  7. テストを実行します。

    Arquillian は JUnit との統合を提供するため、Maven または IDE を使用してテストクラスを実行できます。

    $ mvn install
    注記

    多くの IDE では、右クリックし、Run を選択してテストクラスを実行します。

第11章 アプリケーションのデバッグ

本セクションでは、ローカルデプロイメントとリモートデプロイメントの両方で、Thorntail ベースのアプリケーションのデバッグを説明します。

11.1. リモートのデバッグ

アプリケーションをリモートでデバッグするには、まずデバッグモードで開始するように設定してから、デバッガーを割り当てる必要があります。

11.1.1. デバッグモードでのアプリケーションをローカルで起動

Maven ベースのプロジェクトのデバッグ方法の 1 つが、デバッグポートを指定している間にアプリケーションを手動で起動し、その後にリモートデバッガーをそのポートに接続することです。この方法は、少なくとも以下のアプリケーションのデプロイメントに適用できます。

  • mvn thorntail:run ゴールを使用してアプリケーションを手動で起動する場合。
  • mvn thorntail:start ゴールを使用してアプリケーションを終了するのを待たずにアプリケーションを起動する場合。これは、統合テストを実行するときに特に役立ちます。
  • Thorntail に Arquillian アダプターを使用する場合。

前提条件

  • Maven ベースのアプリケーション

手順

  1. コンソールで、アプリケーションでディレクトリーに移動します。
  2. アプリケーションを起動し、-Dthorntail.debug.port 引数を使用してデバッグポートを指定します。

    $ mvn thorntail:run -Dthorntail.debug.port=$PORT_NUMBER

    ここで、$PORT_NUMBER は未使用のポート番号です。リモートデバッガー設定のこの番号をメモします。

11.1.2. デバッグモードでの uberjar の起動

Thorntail の uberjar としてアプリケーションをパッケージ化することを選択した場合は、以下のパラメーターでアプリケーションを実行してデバッグします。

前提条件

  • アプリケーションとの uberjar

手順

  1. コンソールで、uberjar のディレクトリーに移動します。
  2. 以下のパラメーターを使用して uberjar を実行します。行上の uberjar の名前の前に、すべてのパラメーターが指定されていることを確認します。

    $ java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$PORT_NUMBER -jar $UBERJAR_FILENAME

    $PORT_NUMBER は未使用のポート番号です。リモートデバッガー設定のこの番号をメモします。

    JVM が一時停止し、リモートデバッガー接続を待機してからアプリケーションを起動する場合は、suspendy に変更します。

11.1.3. デバッグモードでの OpenShift でのアプリケーションの起動

OpenShift で Thorntail ベースのアプリケーションをリモートでデバッグするには、コンテナー内で JAVA_DEBUG 環境変数を true に設定し、リモートデバッガーからアプリケーションに接続できるようにポート転送を設定する必要があります。

前提条件

  • OpenShift で実行されているアプリケーション。
  • oc バイナリーがインストールされている。
  • ターゲット OpenShift 環境で oc port-forward コマンドを実行する機能。

手順

  1. oc コマンドを使用して、利用可能なデプロイメント設定を一覧表示します。

    $ oc get dc
  2. アプリケーションのデプロイメント設定で JAVA_DEBUG 環境変数を true に設定します。これにより、JVM がデバッグ用にポート番号 5005 を開くように設定されます。以下は例になります。

    $ oc set env dc/MY_APP_NAME JAVA_DEBUG=true
  3. 設定変更時に自動的に再デプロイするように設定されていない場合は、アプリケーションを再デプロイします。以下は例になります。

    $ oc rollout latest dc/MY_APP_NAME
  4. ローカルマシンからアプリケーション Pod へのポート転送を設定します。

    1. 現在実行中の Pod を一覧表示し、アプリケーションが含まれる Pod を検索します。

      $ oc get pod
      NAME                            READY     STATUS      RESTARTS   AGE
      MY_APP_NAME-3-1xrsp          0/1       Running     0          6s
      ...
    2. ポート転送を設定します。

      $ oc port-forward MY_APP_NAME-3-1xrsp $LOCAL_PORT_NUMBER:5005

      ここでは、$LOCAL_PORT_NUMBER はローカルマシンで選択した未使用のポート番号になります。リモートデバッガー設定のこの番号をメモします。

  5. デバッグが完了したら、アプリケーション Pod の JAVA_DEBUG 環境変数の設定を解除します。以下は例になります。

    $ oc set env dc/MY_APP_NAME JAVA_DEBUG-

参考情報

デバッグポートをデフォルト (5005) から変更する場合は、JAVA_DEBUG_PORT 環境変数を設定することもできます。

11.1.4. アプリケーションへのリモートデバッガーの割り当て

デバッグ用にアプリケーションが設定されている場合は、選択したリモートデバッガーを割り当てます。本ガイドでは、Red Hat CodeReady Studio について説明していますが、他のプログラムを使用する場合も同様です。

前提条件

  • ローカルまたは OpenShift 上で実行され、デバッグ用に設定されたアプリケーション。
  • アプリケーションがデバッグをリッスンしているポート番号。
  • Red Hat CodeReady Studio がマシンにインストールされていること。Red Hat CodeReady Studio ダウンロードページ からダウンロードできます。

手順

  1. Red Hat CodeReady Studio を開始します。
  2. アプリケーションの新規デバッグ設定を作成します。

    1. Run→Debug Configurations をクリックします。
    2. 設定のリストで、Remote Java アプリケーション をダブルクリックします。これにより、新しいリモートデバッグ設定が作成されます。
    3. Name フィールドに設定に適した名前を入力します。
    4. アプリケーションが含まれるディレクトリーへのパスを Project フィールドに入力します。便宜上 Browse… ボタンを使用できます。
    5. Connection Type フィールドを Standard (Socket Attach) に設定していない場合は、これを設定します。
    6. Port フィールドを、アプリケーションがデバッグをリッスンしているポート番号に設定します。
    7. Apply をクリックします。
  3. Debug Configurations ウィンドウの Debug ボタンをクリックして、デバッグを開始します。

    初めてデバッグ設定を迅速に起動するには Run→Debug History をクリックし、一覧から設定を選択します。

参考情報

11.2. デバッグログ

11.2.1. ローカルデバッグロギング

デバッグロギングをローカルで有効にするには、「ロギングの有効化」 セクションを参照して、DEBUG ログレベルを使用します。

デバッグロギングを永続的に有効にする場合は、以下の設定をアプリケーションの src/main/resources/project-defaults.yml ファイルに追加します。

ロギング YAML 設定のデバッグ

swarm:
  logging: DEBUG

11.2.2. OpenShift でのデバッグログへのアクセス

アプリケーションを起動し、これと対話して、OpenShift のデバッグステートメントを確認します。

前提条件

  • CLI クライアント oc がインストールされ、認証されていること。
  • デバッグロギングが有効になっている Maven ベースのアプリケーション。

手順

  1. アプリケーションを OpenShift にデプロイします。

    $ mvn clean fabric8:deploy -Popenshift
  2. ログを表示します。

    1. アプリケーションと共に Pod の名前を取得します。

      $ oc get pods
    2. ログ出力の監視を開始します。

      $ oc logs -f pod/MY_APP_NAME-2-aaaaa

      ログ出力を確認できるように、端末ウィンドウにログ出力が表示されます。

  3. アプリケーションと対話します。

    たとえば、REST API Level 0 のサンプル にデバッグロギングがあり、/api/greeting メソッドで message 変数をログに記録します。

    1. アプリケーションのルートを取得します。

      $ oc get routes
    2. アプリケーションの /api/greeting エンドポイントで HTTP 要求を作成します。

      $ curl $APPLICATION_ROUTE/api/greeting?name=Sarah
  4. Pod ログのあるウィンドウに戻り、ログでデバッグロギングメッセージを検査します。

    ...
    2018-02-11 11:12:31,158 INFO  [io.openshift.MY_APP_NAME] (default task-18) Hello, Sarah!
    ...
  5. デバッグロギングを無効にするには、project-defaults.yml ファイルから logging キーを削除して、アプリケーションを再デプロイします。

参考情報

第12章 アプリケーションのモニタリング

本セクションでは、OpenShift 上で実行される Thorntail ベースのアプリケーションのモニタリングを説明します。

12.1. OpenShift でのアプリケーションの JVM メトリクスへのアクセス

12.1.1. OpenShift で Jolokia を使用した JVM メトリクスへのアクセス

Jolokia は、OpenShift 上の HTTP (Java Management Extension) メトリクスにアクセスするための組み込みの軽量ソリューションです。Jolokia を使用すると、HTTP ブリッジ上で JMX によって収集される CPU、ストレージ、およびメモリー使用状況データにアクセスできます。Jolokia は REST インターフェースおよび JSON 形式のメッセージペイロードを使用します。これは、非常に高速で、リソース要件が低いため、クラウドアプリケーションのモニタリングに適しています。

Java ベースのアプリケーションの場合、OpenShift Web コンソールは、アプリケーションを実行している JVM によって関連するすべてのメトリクス出力を収集し、表示する統合 hawt.io コンソール を提供します。

前提条件

  • oc クライアントが認証されました。
  • OpenShift のプロジェクトで実行している Java ベースのアプリケーションコンテナー
  • 最新の JDK 1.8.0 イメージ

手順

  1. プロジェクト内で Pod のデプロイメント設定を一覧表示し、アプリケーションに対応する Pod のデプロイメント設定を選択します。

    oc get dc
    NAME         REVISION   DESIRED   CURRENT   TRIGGERED BY
    MY_APP_NAME   2          1         1         config,image(my-app:6)
    ...
  2. アプリケーションを実行する Pod の YAML デプロイメントテンプレートを開いて編集します。

    oc edit dc/MY_APP_NAME
  3. 以下のエントリーをテンプレートの ports セクションに追加し、変更を保存します。

    ...
    spec:
      ...
      ports:
      - containerPort: 8778
        name: jolokia
        protocol: TCP
      ...
    ...
  4. アプリケーションを実行する Pod を再デプロイします。

    oc rollout latest dc/MY_APP_NAME

    Pod は更新されたデプロイメント設定で再デプロイされ、ポート 8778 を公開します。

  5. OpenShift Web コンソールにログインします。
  6. サイドバーで、Applications > Pods に移動し、アプリケーションを実行する Pod の名前をクリックします。
  7. Pod の詳細画面で Open Java Console をクリックし、hawt.io コンソールにアクセスします。

12.2. アプリケーションメトリクス

Thorntail は、パフォーマンスおよびサービスの可用性を追跡するためにアプリケーションメトリクスを公開する方法を提供します。

12.2.1. メトリクスとは

1 つのユーザーリクエストに対応するために複数のサービスが呼び出されるマイクロサービスアーキテクチャーでは、パフォーマンスの問題を診断したり、サービス停止に反応したりするのが困難である可能性があります。問題の解決を容易にするために、アプリケーションは、次のような動作に関するマシン読み取り可能なデータを公開する必要があります。

  • 現在処理中のリクエストの数。
  • 現在使用中のデータベースへの接続の数。
  • サービスの呼び出しにかかる時間。

このようなデータは メトリクス と呼ばれます。メトリクスの収集、視覚化、アラートの設定、傾向の検出などは、サービスの健全性を維持するために非常に重要です。

Thorntail は、メトリクスを公開するための使いやすい API である Eclipse MicroProfile Metrics の一部を提供します。一般的な監視ソリューションである Prometheus のネイティブ形式でのデータのエクスポートをサポートします。アプリケーション内では、このフラクション以外は何も必要ありません。アプリケーションの外では、通常 Prometheus が実行されます。

参考情報

12.2.2. アプリケーションメトリクスの公開

この例では、以下のようになります。

  • メトリクスを公開するようにアプリケーションを設定します。
  • Prometheus を使用してデータを収集して、表示します。

Prometheus は、データを収集するために監視されたアプリケーションにアクティブに接続されます。アプリケーションはメトリクスをアクティブにサーバーに送信しないことに注意してください。

前提条件

  • アプリケーションからメトリクスを収集するために設定された Prometheus。

    1. 最新の Prometheus リリースで アーカイブ をダウンロードし、展開します。

      $ wget https://github.com/prometheus/prometheus/releases/download/v2.4.3/prometheus-2.4.3.linux-amd64.tar.gz
      $ tar -xvf  prometheus-2.4.3.linux-amd64.tar.gz
    2. Prometheus でディレクトリーに移動します。

      $ cd  prometheus-2.4.3.linux-amd64
    3. 以下のスニペットを prometheus.yml ファイルに追加し、Prometheus がアプリケーションからメトリクスを自動的に収集できるようにします。

        - job_name: 'thorntail'
          static_configs:
          - targets: ['localhost:8080']

      Thorntail ベースのアプリケーションのデフォルト動作は、/metrics エンドポイントでメトリクスを公開することです。これは、MicroProfile Metrics 仕様が必要とするものであり、Prometheus が期待するものでもあります。

  • localhost で Prometheus サーバーが起動しました。

    Prometheus を起動し、Server is ready to receive web requests メッセージがコンソールに表示されるまで待機します。

    $ ./prometheus

手順

  1. microprofile-metrics フラクションをアプリケーションの pom.xml ファイルに追加します。

    pom.xml

    <dependencies>
      <dependency>
        <groupId>io.thorntail</groupId>
        <artifactId>microprofile-metrics</artifactId>
      </dependency>
    </dependencies>

  2. 次の例のように、メトリクスアノテーションでメソッドまたはクラスにアノテーションを付けます。

    @GET
    @Counted(name = "hello-count", absolute = true)
    @Timed(name = "hello-time", absolute = true)
    public String get() {
        return "Hello from counted and timed endpoint";
    }

    ここでは、@Counted アノテーションを使用して、このメソッドが呼び出された回数を追跡します。@Timed アノテーションは、呼び出しにかかる時間を追跡するために使用されます。

    この例では、JAX-RS リソースメソッドは直接アノテーションが付けられましたが、アプリケーションの CDI Bean にもアノテーションを付けることもできます。

  3. アプリケーションを起動します。

    $ mvn thorntail:run
  4. トレースされたエンドポイントを複数回呼び出します。

    $ curl http://localhost:8080/
    Hello from counted and timed endpoint
  5. コレクションが発生するまで 15 秒以上待機し、Prometheus UI でメトリクスを確認します。

    1. http://localhost:9090/ で Prometheus UI を開き、Expression ボックスに hello と入力します。
    2. 提案から、たとえば application:hello_count を選択し、Execute をクリックします。
    3. 表示される表で、リソースメソッドが呼び出された回数を確認できます。
    4. application:hello_time_mean_seconds を選択して、すべての呼び出しの平均時間を確認します。

    作成したすべてのメトリクスの前には application: があることに注意してください。MicroProfile Metrics 仕様に必要なため、その他のメトリクスは Thorntail によって自動的に公開されます。これらのメトリクスには base: および vendor: というプレフィックスが付けられ、アプリケーションが実行される JVM に関する情報を公開します。

参考情報

第13章 Thorntail の利用可能な例

Thorntail ランタイムは、サンプルアプリケーションを提供します。OpenShift でアプリケーションの開発を開始すると、サンプルアプリケーションをテンプレートとして使用できます。

これらのサンプルアプリケーションは Developer Launcher でアクセスできます。

すべてのサンプルアプリケーションを以下にダウンロードおよびデプロイできます。

  • x86_64 アーキテクチャー - 本ガイドのアプリケーションの例では、サンプルアプリケーションを x86_64 アーキテクチャーにビルドおよびデプロイする方法を説明します。
  • s390x アーキテクチャー - IBM Z インフラストラクチャーでプロビジョニングされた OpenShift 環境でサンプルアプリケーションをデプロイするには、コマンドに関連する IBM Z イメージ名を指定します。イメージ名の詳細については、「Thorntail でサポートされる Java イメージ」セクションを参照してください。

    サンプルアプリケーションの一部には、ワークフローを実証するために Red Hat Data Grid などの他の製品も必要になります。この場合は、これらの製品のイメージ名を、サンプルアプリケーションの YAML ファイルで関連する IBM Z イメージ名に変更する必要もあります。

注記

Thorntail の Secured サンプルアプリケーションには Red Hat SSO 7.3 が必要です。Red Hat SSO 7.3 は IBM Z ではサポートされないため、IBM Z では Secured サンプルは利用できません。

13.1. Thorntail の REST API Level 0 の例

重要

以下の例は、実稼働環境での実行を目的としていません。

能力レベルの例: Foundational

REST API Level 0 の例でできること

REST API Level 0 の例では、REST フレームワークを使用して、HTTP 経由でビジネスオペレーションをリモートプロシージャコールエンドポイントにマッピングする方法が示されています。これは、Richardson Maturity Model の Level 0 に対応します。REST およびその基本的な原則を使用して HTTP エンドポイントを作成すると、API を柔軟にプロトタイプおよび設計することができます。

この例では、HTTP プロトコルを使用してリモートサービスと対話するためのメカニズムが導入されました。これにより、以下が可能になります。

  • api/greeting エンドポイントで HTTP GET リクエストを実行します。
  • Hello, World!で構成されるペイロードを使用して JSON 形式でレスポンスを受け取ります。文字列。
  • String 引数を渡して私て api/greeting エンドポイントで HTTP GET リクエストを実行します。これにより、クエリー文字列に name リクエストパラメーターが使用されます。
  • Hello, $name! のペイロードを含む JSON 形式の応答を受信します。$name は、リクエストに渡された name パラメータの値に置き換えられます。

13.1.1. REST API Level 0 設計トレードオフ

表13.1 設計トレードオフ

良い点悪い点
  • アプリケーション例では、高速なプロトタイプを有効にします。
  • API Design は柔軟性があります。
  • HTTP エンドポイントにより、クライアントは言語に依存しません。
  • アプリケーションまたはサービスが成熟するにつれて、REST API Level 0 のアプローチは適切にスケーリングされない可能性があります。クリーンな API 設計や、データベースの対話に関するユースケースをサポートしない場合があります。

    • 共有された変更可能な状態を含むすべての操作は、適切なバッキングデータストアと統合する必要があります。
    • この API 設計で処理されるすべてのリクエストは、リクエストに対応するコンテナーにのみスコープ指定されます。これ以降のリクエストは、同じコンテナーで処理されない可能性があります。

13.1.2. REST API Level 0 サンプルアプリケーションの OpenShift Online へのデプロイ

以下のオプションのいずれかを使用して、OpenShift Online で REST API Level 0 サンプルアプリケーションを実行します。

各メソッドは、同じ oc コマンドを使用してアプリケーションをデプロイしますが、developers.redhat.com/launch を使用すると、oc コマンドを実行する自動デプロイメントワークフローが提供されます。

13.1.2.1. developers.redhat.com/launch を使用したサンプルアプリケーションのデプロイ

このセクションでは、REST API Level 0 のサンプルアプリケーションをビルドし、Red Hat Developer Launcher Web インターフェースから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. ブラウザーで developers.redhat.com/launch URL に移動します。
  2. 画面上の指示に従って、Thorntail でアプリケーションのサンプルを作成して起動します。

13.1.2.2. CLI クライアント oc の認証

oc コマンドラインクライアントを使用して OpenShift Online でアプリケーションのサンプルを使用するには、OpenShift Online の Web インターフェースによって提供されるトークンを使用してクライアントを認証する必要があります。

前提条件

手順

  1. ブラウザーで OpenShift Online URL に移動します。
  2. ユーザー名の横にある Web コンソールの右上にあるクエスチョンマークアイコンをクリックします。
  3. ドロップダウンメニューで Command Line Tools を選択します。
  4. oc login コマンドをコピーします。
  5. 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して CLI クライアント ocOpenShift Online アカウントで認証します。

    $ oc login OPENSHIFT_URL --token=MYTOKEN

13.1.2.3. CLI クライアント oc を使用した REST API Level 0 サンプルアプリケーションのデプロイ

このセクションでは、REST API Level 0 サンプルアプリケーションをビルドし、コマンドラインから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. GitHub からプロジェクトのクローンを作成します。

    $ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git

    もしくは、プロジェクトの ZIP ファイルをダウンロードして、展開します。

    $ unzip MY_PROJECT_NAME.zip
  2. OpenShift で新規プロジェクトを作成します。

    $ oc new-project MY_PROJECT_NAME
  3. アプリケーションのルートディレクトリーに移動します。
  4. Maven を使用して OpenShift へのデプロイメントを開始します。

    $ mvn clean fabric8:deploy -Popenshift

    このコマンドは、Fabric8 Maven プラグインを使用して OpenShift で S2I プロセス を起動し、Pod を起動します。

  5. アプリケーションのステータスを確認し、Pod が実行していることを確認します。

    $ oc get pods -w
    NAME                             READY     STATUS      RESTARTS   AGE
    MY_APP_NAME-1-aaaaa               1/1       Running     0          58s
    MY_APP_NAME-s2i-1-build           0/1       Completed   0          2m

    MY_APP_NAME-1-aaaaa Pod は、完全にデプロイされて起動すると、ステータスがRunning になるはずです。特定の Pod 名は異なります。中間の数字は新規ビルドごとに増えます。末尾の文字は、Pod の作成時に生成されます。

  6. アプリケーションのサンプルをデプロイして起動すると、そのルートを決定します。

    ルート情報の例

    $ oc get routes
    NAME                 HOST/PORT                                                     PATH      SERVICES        PORT      TERMINATION
    MY_APP_NAME         MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME      MY_APP_NAME      8080

    Pod のルート情報には、アクセスに使用するベース URL が提供されます。上記の例では、http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME をベース URL として使用し、アプリケーションにアクセスします。

13.1.3. REST API Level 0 サンプルアプリケーションの Minishift または CDK へのデプロイ

以下のオプションのいずれかを使用して、REST API Level 0 サンプルアプリケーションを Minishift または CDK でローカルに実行します。

各メソッドは、同じ oc コマンドを使用してアプリケーションをデプロイしますが、Fabric8 Launcher を使用すると oc コマンドを実行する自動デプロイメントワークフローが提供されます。

13.1.3.1. Fabric8 Launcher ツールの URL および認証情報の取得

Minishift または CDK にサンプルアプリケーションを作成してデプロイするには、Fabric8 Launcher ツール URL およびユーザー認証情報が必要です。この情報は、Minishift または CDK の開始時に提供されます。

前提条件

  • Fabric8 Launcher ツールがインストールされ、設定され、実行されている。

手順

  1. Minishift または CDK を起動したコンソールに移動します。
  2. 実行中の Fabric8 Launcher にアクセスするのに使用できる URL およびユーザー認証情報のコンソール出力を確認します。

    Minishift または CDK 起動時のコンソール出力の例

    ...
    -- Removing temporary directory ... OK
    -- Server Information ...
       OpenShift server started.
       The server is accessible via web console at:
           https://192.168.42.152:8443
    
       You are logged in as:
           User:     developer
           Password: developer
    
       To login as administrator:
           oc login -u system:admin

13.1.3.2. Fabric8 Launcher ツールを使用したサンプルアプリケーションのデプロイ

このセクションでは、REST API Level 0 サンプルアプリケーションをビルドし、Fabric8 Launcher Web インターフェースから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. ブラウザーで Fabric8 Launcher URL に移動します。
  2. 画面上の指示に従って、Thorntail でアプリケーションのサンプルを作成して起動します。

13.1.3.3. CLI クライアント oc の認証

oc コマンドラインクライアントを使用して Minishift または CDK でアプリケーションの例を使用するには、Minishift または CDK Web インターフェースが提供するトークンを使用してクライアントを認証する必要があります。

前提条件

手順

  1. ブラウザーで Minishift または CDK URL に移動します。
  2. ユーザー名の横にある Web コンソールの右上にあるクエスチョンマークアイコンをクリックします。
  3. ドロップダウンメニューで Command Line Tools を選択します。
  4. oc login コマンドをコピーします。
  5. 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して、Minishift または CDK アカウントで CLI クライアント oc を認証します。

    $ oc login OPENSHIFT_URL --token=MYTOKEN

13.1.3.4. CLI クライアント oc を使用した REST API Level 0 サンプルアプリケーションのデプロイ

このセクションでは、REST API Level 0 サンプルアプリケーションをビルドし、コマンドラインから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. GitHub からプロジェクトのクローンを作成します。

    $ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git

    もしくは、プロジェクトの ZIP ファイルをダウンロードして、展開します。

    $ unzip MY_PROJECT_NAME.zip
  2. OpenShift で新規プロジェクトを作成します。

    $ oc new-project MY_PROJECT_NAME
  3. アプリケーションのルートディレクトリーに移動します。
  4. Maven を使用して OpenShift へのデプロイメントを開始します。

    $ mvn clean fabric8:deploy -Popenshift

    このコマンドは、Fabric8 Maven プラグインを使用して OpenShift で S2I プロセス を起動し、Pod を起動します。

  5. アプリケーションのステータスを確認し、Pod が実行していることを確認します。

    $ oc get pods -w
    NAME                             READY     STATUS      RESTARTS   AGE
    MY_APP_NAME-1-aaaaa               1/1       Running     0          58s
    MY_APP_NAME-s2i-1-build           0/1       Completed   0          2m

    MY_APP_NAME-1-aaaaa Pod は、完全にデプロイされて起動すると、ステータスがRunning になるはずです。特定の Pod 名は異なります。中間の数字は新規ビルドごとに増えます。末尾の文字は、Pod の作成時に生成されます。

  6. アプリケーションのサンプルをデプロイして起動すると、そのルートを決定します。

    ルート情報の例

    $ oc get routes
    NAME                 HOST/PORT                                                     PATH      SERVICES        PORT      TERMINATION
    MY_APP_NAME         MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME      MY_APP_NAME      8080

    Pod のルート情報には、アクセスに使用するベース URL が提供されます。上記の例では、http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME をベース URL として使用し、アプリケーションにアクセスします。

13.1.4. REST API Level 0 サンプルアプリケーションの OpenShift Container Platform へのデプロイ

サンプルアプリケーションを OpenShift Container Platform に作成し、デプロイするプロセスは OpenShift Online に似ています。

前提条件

手順

13.1.5. Thorntail の未変更の REST API レベル 0 サンプルアプリケーションとの対話

この例では、GET リクエストを受け入れるデフォルトの HTTP エンドポイントを提供します。

前提条件

  • アプリケーションの実行
  • curl バイナリーまたは Web ブラウザー

手順

  1. サンプルに対して curl を使用して GET リクエストを実行します。これを行うには、ブラウザーを使用することもできます。

    $ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greeting
    {"content":"Hello, World!"}
  2. curl を使用して、例に対して URL パラメーター name を付けて GET リクエストを実行します。これを行うには、ブラウザーを使用することもできます。

    $ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greeting?name=Sarah
    {"content":"Hello, Sarah!"}
注記

ブラウザーから、lpmp例が提供するフォームを使用して、同じ対話を実行することもできます。フォームは、プロジェクト http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME のルートにあります。

13.1.6. REST API Level 0 のサンプルアプリケーション統合テストの実行

このサンプルアプリケーションには、自己完結型の統合テストセットが含まれます。OpenShift プロジェクト内で実行する場合、テストは以下を行います。

  • アプリケーションのテストインスタンスをプロジェクトにデプロイします。
  • そのインスタンスで個別のテストを実行します。
  • テストが完了したら、プロジェクトからアプリケーションのすべてのインスタンスを削除します。
警告

統合テストを実行すると、サンプルアプリケーションの既存インスタンスがすべてターゲット OpenShift プロジェクトから削除されます。サンプルアプリケーションが正しく削除されないようにするには、テストを実行するために別の OpenShift プロジェクトを作成して選択してください。

前提条件

  • oc クライアントが認証されました。
  • 空の OpenShift プロジェクト

手順

次のコマンドを実行して統合テストを実行します。

$ mvn clean verify -Popenshift,openshift-it

13.1.7. REST リソース

REST の背景および関連情報は、以下を参照してください。

13.2. Thorntail の外部化設定の例

重要

以下の例は、実稼働環境での実行を目的としていません。

能力レベルの例: Foundational

外部化された設定は、ConfigMap を使用して設定を外部化する基本的な例を提供します。ConfigMap は、コンテナーを OpenShift に依存しないようにする一方で、単純なキーと値のペアとして設定データを 1 つ以上の Linux コンテナーに挿入するために OpenShift で使用されるオブジェクトです。

この例では、以下の方法を示しています。

  • ConfigMap をセットアップし、設定します。
  • アプリケーション内で ConfigMap によって提供される設定を使用します。
  • 実行中のアプリケーションの ConfigMap 設定に変更をデプロイします。

13.2.1. 外部化された設定の設計パターン

可能な限り、アプリケーション設定を外部化し、アプリケーションコードから分離します。これにより、異なる環境を通過する際にアプリケーション設定を変更できますが、コードは変更されません。また、設定を外部化することで、コードベースおよびバージョン制御からも機密情報または内部情報が保持されます。多くの言語およびアプリケーションサーバーは、アプリケーション設定の外部化をサポートする環境変数を提供します。

マイクロサービスアーキテクチャーおよび多言語 (polyglot) 環境は、アプリケーションの設定を管理する複雑な層を追加します。アプリケーションは独立した分散サービスで構成され、それぞれ独自の設定を持つことができます。すべての設定データを同期し、アクセス可能な状態に維持すると、メンテナンスの課題が発生します。

ConfigMap により、アプリケーション設定を外部化でき、OpenShift 上の個々の Linux コンテナーおよび Pod で使用できます。YAML ファイルの使用を含むさまざまな方法で ConfigMap オブジェクトを作成し、これを Linux コンテナーに挿入できます。ConfigMap を使用すると、設定データのグループ化およびスケーリングが可能です。これにより、基本的な 開発ステージ、および 実稼働 以外の多くの環境を設定できます。ConfigMap の詳細は、OpenShift ドキュメント を参照してください。

13.2.2. 外部化設定設計のトレードオフ

表13.2 設計のトレードオフ

良い点悪い点
  • 設定がデプロイメントとは分離される
  • 個別に更新可能
  • サービス間で共有できる
  • 環境への設定の追加には追加のステップが必要です。
  • 別々に維持する必要があります。
  • サービスのスコープを超える調整が必要です。

13.2.3. 外部化設定のサンプルアプリケーションの OpenShift Online へのデプロイ

以下のいずれかのオプションを使用して、OpenShift Online で外部化設定アプリケーションを実行します。

各メソッドは、同じ oc コマンドを使用してアプリケーションをデプロイしますが、developers.redhat.com/launch を使用すると、oc コマンドを実行する自動デプロイメントワークフローが提供されます。

13.2.3.1. developers.redhat.com/launch を使用したサンプルアプリケーションのデプロイ

このセクションでは、REST API Level 0 のサンプルアプリケーションをビルドし、Red Hat Developer Launcher Web インターフェースから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. ブラウザーで developers.redhat.com/launch URL に移動します。
  2. 画面上の指示に従って、Thorntail でアプリケーションのサンプルを作成して起動します。

13.2.3.2. CLI クライアント oc の認証

oc コマンドラインクライアントを使用して OpenShift Online でアプリケーションのサンプルを使用するには、OpenShift Online の Web インターフェースによって提供されるトークンを使用してクライアントを認証する必要があります。

前提条件

手順

  1. ブラウザーで OpenShift Online URL に移動します。
  2. ユーザー名の横にある Web コンソールの右上にあるクエスチョンマークアイコンをクリックします。
  3. ドロップダウンメニューで Command Line Tools を選択します。
  4. oc login コマンドをコピーします。
  5. 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して CLI クライアント ocOpenShift Online アカウントで認証します。

    $ oc login OPENSHIFT_URL --token=MYTOKEN

13.2.3.3. CLI クライアント oc を使用した Externalized Configuration アプリケーションのデプロイ

このセクションでは、外部化設定のサンプルアプリケーションをビルドし、コマンドラインから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. GitHub からプロジェクトのクローンを作成します。

    $ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git

    もしくは、プロジェクトの ZIP ファイルをダウンロードして、展開します。

    $ unzip MY_PROJECT_NAME.zip
  2. 新しい OpenShift プロジェクトを作成します。

    $ oc new-project MY_PROJECT_NAME
  3. アプリケーションのルートディレクトリーに移動します。
  4. 例のルートにある app-config.yml を使用して、ConfigMap 構成を OpenShift にデプロイします。

    $ oc create configmap app-config --from-file=app-config.yml
  5. ConfigMap 設定がデプロイされていることを確認します。

    $ oc get configmap app-config -o yaml
    
    apiVersion: template.openshift.io/v1
    data:
      app-config.yml: |-
        greeting:
          message: Hello %s from a ConfigMap!
    ...
  6. Maven を使用して OpenShift へのデプロイメントを開始します。

    $ mvn clean fabric8:deploy -Popenshift -DskipTests

    このコマンドは、Fabric8 Maven プラグインを使用して OpenShift で S2I プロセス を起動し、Pod を起動します。

  7. アプリケーションのステータスを確認し、Pod が実行していることを確認します。

    $ oc get pods -w
    NAME                                       READY     STATUS      RESTARTS   AGE
    MY_APP_NAME-1-aaaaa               1/1       Running     0          58s
    MY_APP_NAME-s2i-1-build           0/1       Completed   0          2m

    MY_APP_NAME-1-aaaaa Pod は、完全にデプロイされて起動すると、ステータスがRunning になるはずです。特定の Pod 名は異なります。中間の数字は新規ビルドごとに増えます。末尾の文字は、Pod の作成時に生成されます。

  8. アプリケーションのサンプルをデプロイして起動すると、そのルートを決定します。

    ルート情報の例

    $ oc get routes
    NAME                 HOST/PORT                                                     PATH      SERVICES        PORT      TERMINATION
    MY_APP_NAME         MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME      MY_APP_NAME      8080

    Pod のルート情報には、アクセスに使用するベース URL が提供されます。上記の例では、http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME をベース URL として使用し、アプリケーションにアクセスします。

13.2.4. 外部化設定アプリケーションの Minishift または CDK へのデプロイ

以下のいずれかのオプションを使用して、Minishift または CDK で外部設定サンプルアプリケーションをローカルで実行します。

各メソッドは、同じ oc コマンドを使用してアプリケーションをデプロイしますが、Fabric8 Launcher を使用すると oc コマンドを実行する自動デプロイメントワークフローが提供されます。

13.2.4.1. Fabric8 Launcher ツールの URL および認証情報の取得

Minishift または CDK にサンプルアプリケーションを作成してデプロイするには、Fabric8 Launcher ツール URL およびユーザー認証情報が必要です。この情報は、Minishift または CDK の開始時に提供されます。

前提条件

  • Fabric8 Launcher ツールがインストールされ、設定され、実行されている。

手順

  1. Minishift または CDK を起動したコンソールに移動します。
  2. 実行中の Fabric8 Launcher にアクセスするのに使用できる URL およびユーザー認証情報のコンソール出力を確認します。

    Minishift または CDK 起動時のコンソール出力の例

    ...
    -- Removing temporary directory ... OK
    -- Server Information ...
       OpenShift server started.
       The server is accessible via web console at:
           https://192.168.42.152:8443
    
       You are logged in as:
           User:     developer
           Password: developer
    
       To login as administrator:
           oc login -u system:admin

13.2.4.2. Fabric8 Launcher ツールを使用したサンプルアプリケーションのデプロイ

このセクションでは、REST API Level 0 サンプルアプリケーションをビルドし、Fabric8 Launcher Web インターフェースから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. ブラウザーで Fabric8 Launcher URL に移動します。
  2. 画面上の指示に従って、Thorntail でアプリケーションのサンプルを作成して起動します。

13.2.4.3. CLI クライアント oc の認証

oc コマンドラインクライアントを使用して Minishift または CDK でアプリケーションの例を使用するには、Minishift または CDK Web インターフェースが提供するトークンを使用してクライアントを認証する必要があります。

前提条件

手順

  1. ブラウザーで Minishift または CDK URL に移動します。
  2. ユーザー名の横にある Web コンソールの右上にあるクエスチョンマークアイコンをクリックします。
  3. ドロップダウンメニューで Command Line Tools を選択します。
  4. oc login コマンドをコピーします。
  5. 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して、Minishift または CDK アカウントで CLI クライアント oc を認証します。

    $ oc login OPENSHIFT_URL --token=MYTOKEN

13.2.4.4. CLI クライアント oc を使用した Externalized Configuration アプリケーションのデプロイ

このセクションでは、外部化設定のサンプルアプリケーションをビルドし、コマンドラインから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. GitHub からプロジェクトのクローンを作成します。

    $ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git

    もしくは、プロジェクトの ZIP ファイルをダウンロードして、展開します。

    $ unzip MY_PROJECT_NAME.zip
  2. 新しい OpenShift プロジェクトを作成します。

    $ oc new-project MY_PROJECT_NAME
  3. アプリケーションのルートディレクトリーに移動します。
  4. 例のルートにある app-config.yml を使用して、ConfigMap 構成を OpenShift にデプロイします。

    $ oc create configmap app-config --from-file=app-config.yml
  5. ConfigMap 設定がデプロイされていることを確認します。

    $ oc get configmap app-config -o yaml
    
    apiVersion: template.openshift.io/v1
    data:
      app-config.yml: |-
        greeting:
          message: Hello %s from a ConfigMap!
    ...
  6. Maven を使用して OpenShift へのデプロイメントを開始します。

    $ mvn clean fabric8:deploy -Popenshift -DskipTests

    このコマンドは、Fabric8 Maven プラグインを使用して OpenShift で S2I プロセス を起動し、Pod を起動します。

  7. アプリケーションのステータスを確認し、Pod が実行していることを確認します。

    $ oc get pods -w
    NAME                                       READY     STATUS      RESTARTS   AGE
    MY_APP_NAME-1-aaaaa               1/1       Running     0          58s
    MY_APP_NAME-s2i-1-build           0/1       Completed   0          2m

    MY_APP_NAME-1-aaaaa Pod は、完全にデプロイされて起動すると、ステータスがRunning になるはずです。特定の Pod 名は異なります。中間の数字は新規ビルドごとに増えます。末尾の文字は、Pod の作成時に生成されます。

  8. アプリケーションのサンプルをデプロイして起動すると、そのルートを決定します。

    ルート情報の例

    $ oc get routes
    NAME                 HOST/PORT                                                     PATH      SERVICES        PORT      TERMINATION
    MY_APP_NAME         MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME      MY_APP_NAME      8080

    Pod のルート情報には、アクセスに使用するベース URL が提供されます。上記の例では、http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME をベース URL として使用し、アプリケーションにアクセスします。

13.2.5. 外部設定サンプルアプリケーションの OpenShift Container Platform へのデプロイ

サンプルアプリケーションを OpenShift Container Platform に作成し、デプロイするプロセスは OpenShift Online に似ています。

前提条件

手順

13.2.6. Thorntail の未変更の外部化設定サンプルアプリケーションとの対話

この例では、GET リクエストを受け入れるデフォルトの HTTP エンドポイントを提供します。

前提条件

  • アプリケーションの実行
  • curl バイナリーまたは Web ブラウザー

手順

  1. サンプルに対して curl を使用して GET リクエストを実行します。これを行うには、ブラウザーを使用することもできます。

    $ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greeting
    {"content":"Hello World from a ConfigMap!"}
  2. デプロイされた ConfigMap 設定を更新します。

    $ oc edit configmap app-config

    greeting.message キーの値を Bonjour %s from a ConfigMap! に変更し、ファイルを保存します。これを保存すると、変更は OpenShift インスタンスに伝播されます。

  3. ConfigMap 設定の変更が検出されるように、アプリケーションの新規バージョンをロールアウトします。

    $ oc rollout latest dc/MY_APP_NAME
  4. サンプルのステータスを確認し、新規 Pod が実行されていることを確認します。

    $ oc get pods -w
    NAME                             READY     STATUS      RESTARTS   AGE
    MY_APP_NAME-1-aaaaa       1/1       Running     0          58s
    MY_APP_NAME-s2i-1-build   0/1       Completed   0          2m

    MY_APP_NAME-1-aaaaa Pod は、完全にデプロイされて起動すると、ステータスがRunning になるはずです。特定の Pod 名は異なります。中間の数字は新規ビルドごとに増えます。末尾の文字は、Pod の作成時に生成されます。

  5. 更新された ConfigMap 構成を使用した例に対して curl を使用して GET リクエストを実行し、更新されたグリーティングを確認します。また、アプリケーションが提供する Web フォームを使用して、ブラウザーから実行することもできます。

    $ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greeting
    {"content":"Bonjour World from a ConfigMap!"}

13.2.7. 外部化設定のサンプルアプリケーションの統合テストの実行

このサンプルアプリケーションには、自己完結型の統合テストセットが含まれます。OpenShift プロジェクト内で実行する場合、テストは以下を行います。

  • アプリケーションのテストインスタンスをプロジェクトにデプロイします。
  • そのインスタンスで個別のテストを実行します。
  • テストが完了したら、プロジェクトからアプリケーションのすべてのインスタンスを削除します。
警告

統合テストを実行すると、サンプルアプリケーションの既存インスタンスがすべてターゲット OpenShift プロジェクトから削除されます。サンプルアプリケーションが正しく削除されないようにするには、テストを実行するために別の OpenShift プロジェクトを作成して選択してください。

前提条件

  • oc クライアントが認証されました。
  • 空の OpenShift プロジェクト

手順

次のコマンドを実行して統合テストを実行します。

$ mvn clean verify -Popenshift,openshift-it

13.2.8. 外部化設定リソース

外部化設定および ConfigMap の背景および関連情報は、以下を参照してください。

13.3. Thorntail のリレーショナルデータベースバックエンドの例

重要

以下の例は、実稼働環境での実行を目的としていません。

制限: このサンプルアプリケーションは、Minishift または CDK で実行してください。また、手動のワークフローを使用して、この例を OpenShift Online Pro および OpenShift Container Platform にデプロイすることもできます。この例は、現在 OpenShift Online Starter では使用できません。

能力レベルの例: Foundational

リレーショナルデータベースバックエンドの例

リレーショナルデータベースバックエンドの例は、REST API Level 0 アプリケーションを拡張して、単純な HTTP API を使用して PostgreSQL データベースで 作成読み取り更新削除 (CRUD) 操作を実行する基本的な例を提供します。CRUD 操作は永続ストレージの 4 つの基本的な機能であり、データベースを処理する HTTP API の開発時に広く使用されます。

また、この例では、HTTP アプリケーションが OpenShift のデータベースを特定し、接続する機能も示しています。各ランタイムは、指定のケースで最も適した接続ソリューションを実装する方法を示しています。ランタイムは、API の JDBCJPA などを使用、または ORM に直接アクセスするなどのオプションを選択できます。

アプリケーションのサンプルは HTTP API を公開し、HTTP で CRUD 操作を実行してデータを操作できるようにするエンドポイントを提供します。CRUD 操作は HTTP Verbs にマップされます。API は JSON フォーマットを使用してリクエストを受信し、ユーザーに応答を返します。また、ユーザーは、アプリケーションを使用するために、例が提供するユーザーインターフェースを使用することもできます。具体的には、この例では以下を可能にするアプリケーションを提供します。

  • ブラウザーでアプリケーション Web インターフェースに移動します。これにより、my_data データベースのデータで CRUD 操作を実行する簡単な Web サイトが公開されます。
  • api/fruits エンドポイントで HTTP GET リクエストを実行します。
  • データベース内のすべての fruits のリストが含まれる JSON 配列としてフォーマットされたレスポンスを受け取ります。
  • 有効なアイテム ID を引数として渡しながら、api/fruits/* エンドポイントで HTTP GET リクエストを実行します。
  • 指定した ID を持つ fruit の名前が含まれる JSON 形式で応答を受信します。指定された ID に項目がない場合は、呼び出しにより HTTP エラー 404 が発生します。
  • api/fruits エンドポイントで HTTP POST リクエストを実行し、有効な name 値を渡してデータベースの新規エントリーを作成します。
  • 有効な ID と名前を引数として渡して、api/fruits/* エンドポイントで HTTP PUT リクエストを実行します。これにより、リクエストに指定された名前に一致するように、指定の ID を持つ項目の名前が更新されます。
  • api/fruits/* エンドポイントで HTTP DELETE リクエストを実行し、有効な ID を引数として渡します。これにより、指定された ID の項目がデータベースから削除され、応答として HTTP コード 204 (No Content) を返します。無効な ID を渡すと、呼び出しにより HTTP エラー 404 が発生します。

この例には、アプリケーションがデータベースと完全に統合されていることを検証するために使用できる自動化された 統合テスト のセットも含まれています。

この例では、完全に成熟した RESTful モデル (レベル 3) を示しませんが、推奨される HTTP API プラクティスに従い、互換性のある HTTP 動詞およびステータスを使用します。

13.3.1. リレーショナルデータベースバックエンドの設計トレードオフ

表13.3 設計のトレードオフ

良い点悪い点
  • 各ランタイムは、データベースの対話の実装方法を決定します。1 つは JDBC などの低レベルの接続 API を使用し、他の接続では JPA を使用できますが、別の接続は ORM API に直接アクセスできます。各ランタイムは、最適な方法を決定します。
  • 各ランタイムはスキーマの作成方法を判断します。
  • このサンプルアプリケーションで提供される PostgreSQL データベースは永続ストレージでのバックアップされません。データベース Pod を停止または再デプロイすると、データベースへの変更は失われます。変更を保持するために、サンプルアプリケーションの Pod で外部データベースを使用するには、OpenShift ドキュメントの「Creating an application with a database」を参照してください。また、OpenShift 上のデータベースコンテナーで永続ストレージを設定することもできます。OpenShift およびコンテナーで永続ストレージを使用する方法は、OpenShift ドキュメントの「Persistent Storage」「Managing Volumes」および「Persistent Volumes」の章を参照してください。

13.3.2. リレーショナルデータベースバックエンドのサンプルアプリケーションの OpenShift Online へのデプロイ

以下のオプションのいずれかを使用して、OpenShift Online でリレーショナルデータベースバックエンドアプリケーションのサンプルアプリケーションを実行します。

各メソッドは、同じ oc コマンドを使用してアプリケーションをデプロイしますが、developers.redhat.com/launch を使用すると、oc コマンドを実行する自動デプロイメントワークフローが提供されます。

13.3.2.1. developers.redhat.com/launch を使用したサンプルアプリケーションのデプロイ

このセクションでは、REST API Level 0 のサンプルアプリケーションをビルドし、Red Hat Developer Launcher Web インターフェースから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. ブラウザーで developers.redhat.com/launch URL に移動します。
  2. 画面上の指示に従って、Thorntail でアプリケーションのサンプルを作成して起動します。

13.3.2.2. CLI クライアント oc の認証

oc コマンドラインクライアントを使用して OpenShift Online でアプリケーションのサンプルを使用するには、OpenShift Online の Web インターフェースによって提供されるトークンを使用してクライアントを認証する必要があります。

前提条件

手順

  1. ブラウザーで OpenShift Online URL に移動します。
  2. ユーザー名の横にある Web コンソールの右上にあるクエスチョンマークアイコンをクリックします。
  3. ドロップダウンメニューで Command Line Tools を選択します。
  4. oc login コマンドをコピーします。
  5. 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して CLI クライアント ocOpenShift Online アカウントで認証します。

    $ oc login OPENSHIFT_URL --token=MYTOKEN

13.3.2.3. CLI クライアント oc を使用したリレーショナルデータベースバックエンドサンプルアプリケーションのデプロイ

このセクションでは、リレーショナルデータベースバックエンドのサンプルアプリケーションを構築し、コマンドラインから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. GitHub からプロジェクトのクローンを作成します。

    $ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git

    もしくは、プロジェクトの ZIP ファイルをダウンロードして、展開します。

    $ unzip MY_PROJECT_NAME.zip
  2. 新しい OpenShift プロジェクトを作成します。

    $ oc new-project MY_PROJECT_NAME
  3. アプリケーションのルートディレクトリーに移動します。
  4. PostgreSQL データベースを OpenShift にデプロイします。データベースアプリケーションの作成時に、ユーザー名、パスワード、およびデータベース名に以下の値を使用するようにしてください。これらの値を使用するように、アプリケーションの例が事前設定されています。異なる値を使用すると、アプリケーションがデータベースと統合できなくなります。

    $ oc new-app -e POSTGRESQL_USER=luke -ePOSTGRESQL_PASSWORD=secret -ePOSTGRESQL_DATABASE=my_data registry.access.redhat.com/rhscl/postgresql-10-rhel7 --name=my-database
  5. データベースのステータスを確認し、Pod が実行中であることを確認します。

    $ oc get pods -w
    my-database-1-aaaaa   1/1       Running   0         45s
    my-database-1-deploy   0/1       Completed   0         53s

    Pod my-database-1-aaaaa のステータスは Running で、完全にデプロイされ、起動されると ready として指定する必要があります。特定の Pod 名は異なります。中間の数字は新規ビルドごとに増えます。末尾の文字は、Pod の作成時に生成されます。

  6. maven を使用して OpenShift へのデプロイメントを開始します。

    $ mvn clean fabric8:deploy -Popenshift

    このコマンドは、Fabric8 Maven プラグインを使用して OpenShift で S2I プロセス を起動し、Pod を起動します。

  7. アプリケーションのステータスを確認し、Pod が実行していることを確認します。

    $ oc get pods -w
    NAME                             READY     STATUS      RESTARTS   AGE
    MY_APP_NAME-1-aaaaa       1/1       Running     0          58s
    MY_APP_NAME-s2i-1-build   0/1       Completed   0          2m

    Pod MY_APP_NAME-1-aaaaa のステータスは Running であり、完全にデプロイおよび起動されると ready として指定する必要があります。

  8. アプリケーションのサンプルをデプロイして起動すると、そのルートを決定します。

    ルート情報の例

    $ oc get routes
    NAME                 HOST/PORT                                     PATH      SERVICES             PORT      TERMINATION
    MY_APP_NAME   MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME      MY_APP_NAME   8080

    Pod のルート情報には、アクセスに使用するベース URL が提供されます。上記の例では、http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME をベース URL として使用し、アプリケーションにアクセスします。

13.3.3. リレーショナルデータベースバックエンドのサンプルアプリケーションの Minishift または CDK へのデプロイ

以下のオプションのいずれかを使用して、Minishift または CDK でローカルでリレーショナルデータベースバックエンドのサンプルアプリケーションを実行します。

各メソッドは、同じ oc コマンドを使用してアプリケーションをデプロイしますが、Fabric8 Launcher を使用すると oc コマンドを実行する自動デプロイメントワークフローが提供されます。

13.3.3.1. Fabric8 Launcher ツールの URL および認証情報の取得

Minishift または CDK にサンプルアプリケーションを作成してデプロイするには、Fabric8 Launcher ツール URL およびユーザー認証情報が必要です。この情報は、Minishift または CDK の開始時に提供されます。

前提条件

  • Fabric8 Launcher ツールがインストールされ、設定され、実行されている。

手順

  1. Minishift または CDK を起動したコンソールに移動します。
  2. 実行中の Fabric8 Launcher にアクセスするのに使用できる URL およびユーザー認証情報のコンソール出力を確認します。

    Minishift または CDK 起動時のコンソール出力の例

    ...
    -- Removing temporary directory ... OK
    -- Server Information ...
       OpenShift server started.
       The server is accessible via web console at:
           https://192.168.42.152:8443
    
       You are logged in as:
           User:     developer
           Password: developer
    
       To login as administrator:
           oc login -u system:admin

13.3.3.2. Fabric8 Launcher ツールを使用したサンプルアプリケーションのデプロイ

このセクションでは、REST API Level 0 サンプルアプリケーションをビルドし、Fabric8 Launcher Web インターフェースから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. ブラウザーで Fabric8 Launcher URL に移動します。
  2. 画面上の指示に従って、Thorntail でアプリケーションのサンプルを作成して起動します。

13.3.3.3. CLI クライアント oc の認証

oc コマンドラインクライアントを使用して Minishift または CDK でアプリケーションの例を使用するには、Minishift または CDK Web インターフェースが提供するトークンを使用してクライアントを認証する必要があります。

前提条件

手順

  1. ブラウザーで Minishift または CDK URL に移動します。
  2. ユーザー名の横にある Web コンソールの右上にあるクエスチョンマークアイコンをクリックします。
  3. ドロップダウンメニューで Command Line Tools を選択します。
  4. oc login コマンドをコピーします。
  5. 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して、Minishift または CDK アカウントで CLI クライアント oc を認証します。

    $ oc login OPENSHIFT_URL --token=MYTOKEN

13.3.3.4. CLI クライアント oc を使用したリレーショナルデータベースバックエンドサンプルアプリケーションのデプロイ

このセクションでは、リレーショナルデータベースバックエンドのサンプルアプリケーションを構築し、コマンドラインから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. GitHub からプロジェクトのクローンを作成します。

    $ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git

    もしくは、プロジェクトの ZIP ファイルをダウンロードして、展開します。

    $ unzip MY_PROJECT_NAME.zip
  2. 新しい OpenShift プロジェクトを作成します。

    $ oc new-project MY_PROJECT_NAME
  3. アプリケーションのルートディレクトリーに移動します。
  4. PostgreSQL データベースを OpenShift にデプロイします。データベースアプリケーションの作成時に、ユーザー名、パスワード、およびデータベース名に以下の値を使用するようにしてください。これらの値を使用するように、アプリケーションの例が事前設定されています。異なる値を使用すると、アプリケーションがデータベースと統合できなくなります。

    $ oc new-app -e POSTGRESQL_USER=luke -ePOSTGRESQL_PASSWORD=secret -ePOSTGRESQL_DATABASE=my_data registry.access.redhat.com/rhscl/postgresql-10-rhel7 --name=my-database
  5. データベースのステータスを確認し、Pod が実行中であることを確認します。

    $ oc get pods -w
    my-database-1-aaaaa   1/1       Running   0         45s
    my-database-1-deploy   0/1       Completed   0         53s

    Pod my-database-1-aaaaa のステータスは Running で、完全にデプロイされ、起動されると ready として指定する必要があります。特定の Pod 名は異なります。中間の数字は新規ビルドごとに増えます。末尾の文字は、Pod の作成時に生成されます。

  6. maven を使用して OpenShift へのデプロイメントを開始します。

    $ mvn clean fabric8:deploy -Popenshift

    このコマンドは、Fabric8 Maven プラグインを使用して OpenShift で S2I プロセス を起動し、Pod を起動します。

  7. アプリケーションのステータスを確認し、Pod が実行していることを確認します。

    $ oc get pods -w
    NAME                             READY     STATUS      RESTARTS   AGE
    MY_APP_NAME-1-aaaaa       1/1       Running     0          58s
    MY_APP_NAME-s2i-1-build   0/1       Completed   0          2m

    Pod MY_APP_NAME-1-aaaaa のステータスは Running であり、完全にデプロイおよび起動されると ready として指定する必要があります。

  8. アプリケーションのサンプルをデプロイして起動すると、そのルートを決定します。

    ルート情報の例

    $ oc get routes
    NAME                 HOST/PORT                                     PATH      SERVICES             PORT      TERMINATION
    MY_APP_NAME   MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME      MY_APP_NAME   8080

    Pod のルート情報には、アクセスに使用するベース URL が提供されます。上記の例では、http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME をベース URL として使用し、アプリケーションにアクセスします。

13.3.4. リレーショナルデータベースバックエンドのサンプルアプリケーションの OpenShift Container Platform へのデプロイ

サンプルアプリケーションを OpenShift Container Platform に作成し、デプロイするプロセスは OpenShift Online に似ています。

前提条件

手順

13.3.5. リレーショナルデータベースバックエンド API の操作

サンプルアプリケーションの作成が完了したら、以下のように対話できます。

前提条件

  • アプリケーションの実行
  • curl バイナリーまたは Web ブラウザー

手順

  1. 以下のコマンドを実行して、アプリケーションの URL を取得します。

    $ oc get route MY_APP_NAME
    NAME                 HOST/PORT                                         PATH      SERVICES             PORT      TERMINATION
    MY_APP_NAME           MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME              MY_APP_NAME           8080
  2. データベースアプリケーションの Web インターフェースにアクセスするには、ブラウザーで アプリケーション URL に移動します。

    http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME

    また、curl を使用して api/fruits/* エンドポイントでリクエストを直接作成できます。

    データベースのエントリーの一覧を表示します。

    $ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/fruits

    [ {
      "id" : 1,
      "name" : "Apple",
      "stock" : 10
    }, {
      "id" : 2,
      "name" : "Orange",
      "stock" : 10
    }, {
      "id" : 3,
      "name" : "Pear",
      "stock" : 10
    } ]

    特定の ID のあるエントリーの取得

    $ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/fruits/3

    {
      "id" : 3,
      "name" : "Pear",
      "stock" : 10
    }

    新規エントリーを作成します。

    $ curl -H "Content-Type: application/json" -X POST -d '{"name":"Peach","stock":1}'  http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/fruits

    {
      "id" : 4,
      "name" : "Peach",
      "stock" : 1
    }

    エントリーを更新します。

    $ curl -H "Content-Type: application/json" -X PUT -d '{"name":"Apple","stock":100}'  http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/fruits/1

    {
      "id" : 1,
      "name" : "Apple",
      "stock" : 100
    }

    エントリーを削除します。

    $ curl -X DELETE http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/fruits/1

トラブルシューティングを実行します。
  • これらのコマンドを実行後に HTTP エラーコード 503 を応答として受け取った場合は、アプリケーションが準備状態にないことを意味します。

13.3.6. リレーショナルデータベースバックエンドのサンプルアプリケーション統合テストの実行

このサンプルアプリケーションには、自己完結型の統合テストセットが含まれます。OpenShift プロジェクト内で実行する場合、テストは以下を行います。

  • アプリケーションのテストインスタンスをプロジェクトにデプロイします。
  • そのインスタンスで個別のテストを実行します。
  • テストが完了したら、プロジェクトからアプリケーションのすべてのインスタンスを削除します。
警告

統合テストを実行すると、サンプルアプリケーションの既存インスタンスがすべてターゲット OpenShift プロジェクトから削除されます。サンプルアプリケーションが正しく削除されないようにするには、テストを実行するために別の OpenShift プロジェクトを作成して選択してください。

前提条件

  • oc クライアントが認証されました。
  • 空の OpenShift プロジェクト

手順

次のコマンドを実行して統合テストを実行します。

$ mvn clean verify -Popenshift,openshift-it

13.3.7. リレーショナルデータベースリソース

OpenShift、CRUD、HTTP API および REST でのリレーショナルデータベースの実行に関する背景および関連情報は、以下を参照してください。

13.4. Thorntail のヘルスチェックの例

重要

以下の例は、実稼働環境での実行を目的としていません。

能力レベルの例: Foundational

アプリケーションをデプロイする場合は、アプリケーションが利用可能かどうかを確認し、受信したリクエストの処理を開始することが重要です。ヘルスチェック パターンを実装すると、アプリケーションが利用できるかどうかやリクエストに対応できるかどうかなど、アプリケーションの健全性を監視できます。

注記

ヘルスチェックという用語の説明は、先に進む前に「ヘルスチェックの概念」セクションを参照してください。

このユースケースの目的は、プローブを使用してヘルスチェックパターンを実証することです。プロービングは、アプリケーションの Liveness および Readiness を報告するために使用されます。このユースケースでは、HTTP health エンドポイントを公開して HTTP リクエストを発行するアプリケーションを設定します。コンテナーが動作している場合は、HTTP エンドポイント health の Liveness プローブによると、管理プラットフォームは 200 を戻りコードとして受け取り、それ以上のアクションは必要ありません。HTTP エンドポイント health がスレッドをブロックする場合など、応答が返されない場合、アプリケーションは Liveness プローブに従って有効とみなされません。この場合、プラットフォームはそのアプリケーションに対応する Pod を強制終了し、アプリケーションを再起動するために新規 Pod を再作成します。

このユースケースでは、Readiness プローブを実証し、使用することもできます。アプリケーションが実行されていてもリクエストを処理できない場合 (再起動中にアプリケーションが HTTP 応答コード 503 を返す場合など)、このアプリケーションは Readiness プローブに従って準備ができていないと見なされます。Readiness プローブによってアプリケーションが準備状態にあるとみなされないと、リクエストは Readiness プローブに従って準備が整っているとみなされるまで、リクエストはそのアプリケーションにルーティングされません。

13.4.1. ヘルスチェックの概念

ヘルスチェックパターンを理解するには、まず以下の概念を理解する必要があります。

Liveness
Liveness は、アプリケーションが実行しているかどうかを定義します。実行中のアプリケーションが応答しない状態または停止状態に移行する可能性があるため、再起動する必要があります。Liveness の確認は、アプリケーションを再起動する必要があるかどうかを判断するのに役立ちます。
準備状態 (Readines)
Readiness は、実行中のアプリケーションがリクエストを処理できるかどうかを定義します。実行中のアプリケーションがエラーまたは破損状態に切り替わり、リクエストにサービスを提供することができません。Readiness を確認すると、リクエストが引き続きそのアプリケーションにルーティングされるべきかどうかが判断されます。
フェイルオーバー
フェイルオーバーにより、サービスリクエストの失敗が適切に処理されるようになります。アプリケーションがリクエストのサービスに失敗した場合、そのリクエストと今後のリクエストは フェイルオーバー または他のアプリケーションにルーティングできます (通常、同じアプリケーションの冗長コピーです)。
耐障害性および安定性
耐障害性および安定性により、リクエスト処理の失敗を適切に処理できます。接続の損失によりアプリケーションがリクエストのサービスに失敗すると、接続の再確立後にリクエストの回復性のあるシステムでリトライできます。
プローブ
プローブは実行中のコンテナーで定期的に実行する Kubernetes の動作です。

13.4.2. Health Check サンプルアプリケーションの OpenShift Online へのデプロイ

以下のオプションのいずれかを使用して、OpenShift Online で Health Check のサンプルアプリケーションを実行します。

各メソッドは、同じ oc コマンドを使用してアプリケーションをデプロイしますが、developers.redhat.com/launch を使用すると、oc コマンドを実行する自動デプロイメントワークフローが提供されます。

13.4.2.1. developers.redhat.com/launch を使用したサンプルアプリケーションのデプロイ

このセクションでは、REST API Level 0 のサンプルアプリケーションをビルドし、Red Hat Developer Launcher Web インターフェースから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. ブラウザーで developers.redhat.com/launch URL に移動します。
  2. 画面上の指示に従って、Thorntail でアプリケーションのサンプルを作成して起動します。

13.4.2.2. CLI クライアント oc の認証

oc コマンドラインクライアントを使用して OpenShift Online でアプリケーションのサンプルを使用するには、OpenShift Online の Web インターフェースによって提供されるトークンを使用してクライアントを認証する必要があります。

前提条件

手順

  1. ブラウザーで OpenShift Online URL に移動します。
  2. ユーザー名の横にある Web コンソールの右上にあるクエスチョンマークアイコンをクリックします。
  3. ドロップダウンメニューで Command Line Tools を選択します。
  4. oc login コマンドをコピーします。
  5. 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して CLI クライアント ocOpenShift Online アカウントで認証します。

    $ oc login OPENSHIFT_URL --token=MYTOKEN

13.4.2.3. CLI クライアント oc を使用した Health Check サンプルアプリケーションのデプロイ

このセクションでは、Health Check のサンプルアプリケーションをビルドし、コマンドラインから OpenShift にデプロイする方法について説明します。

前提条件

手順

  1. GitHub からプロジェクトのクローンを作成します。

    $ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git

    もしくは、プロジェクトの ZIP ファイルをダウンロードして、展開します。

    $ unzip MY_PROJECT_NAME.zip
  2. 新しい OpenShift プロジェクトを作成します。

    $ oc new-project MY_PROJECT_NAME
  3. アプリケーションのルートディレクトリーに移動します。
  4. Maven を使用して OpenShift へのデプロイメントを開始します。

    $ mvn clean fabric8:deploy -Popenshift

    このコマンドは、Fabric8 Maven プラグインを使用して OpenShift で S2I プロセス を起動し、Pod を起動します。

  5. アプリケーションのステータスを確認し、Pod が実行していることを確認します。

    $ oc get pods -w
    NAME                             READY     STATUS      RESTARTS   AGE
    MY_APP_NAME-1-aaaaa               1/1       Running     0          58s
    MY_APP_NAME-s2i-1-build           0/1       Completed   0          2m

    MY_APP_NAME-1-aaaaa Pod は、完全にデプロイされて起動すると、ステータスがRunning になるはずです。また、続行する前に Pod が準備状態になるまで待機する必要があります。これは READY 列に表示されます。たとえば、MY_APP_NAME-1-aaaaaREADY 列が 1/1 の場合に準備状態になります。特定の Pod 名は異なります。中間の数字は新規ビルドごとに増えます。末尾の文字は、Pod の作成時に生成されます。

  6. アプリケーションのサンプルをデプロイして起動すると、そのルートを決定します。

    ルート情報の例

    $ oc get routes
    NAME                 HOST/PORT                                                     PATH      SERVICES        PORT      TERMINATION
    MY_APP_NAME         MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME      MY_APP_NAME      8080

    Pod のルート情報には、アクセスに使用するベース URL が提供されます。上記の例では、http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME をベース URL として使用し、アプリケーションにアクセスします。

13.4.3. Health Check のサンプルアプリケーションの Minishift または CDK へのデプロイ

以下のオプションのいずれかを使用して、Minishift または CDK で Health Check サンプルアプリケーションをローカルで実行します。

各メソッドは、同じ oc コマンドを使用してアプリケーションをデプロイしますが、Fabric8 Launcher を使用すると oc コマンドを実行する自動デプロイメントワークフローが提供されます。

13.4.3.1. Fabric8 Launcher ツールの URL および認証情報の取得

Minishift または CDK にサンプルアプリケーションを作成してデプロイするには、Fabric8 Launcher ツール URL およびユーザー認証情報が必要です。この情報は、Minishift または CDK の開始時に提供されます。

前提条件

  • Fabric8 Launcher ツールがインストールされ、設定され、実行されている。

手順

  1. Minishift または CDK を起動したコンソールに移動します。
  2. 実行中の Fabric8 Launcher にアクセスするのに使用できる URL およびユーザー認証情報のコンソール出力を確認します。

    Minishift または CDK 起動時のコンソール出力の例

    ...
    -- Removing temporary directory ... OK
    -- Server Information ...
       OpenShift server started.
       The server is accessible via web console at:
           https://192.168.42.152:8443
    
       You are logged in as:
           User:     developer
           Password: developer
    
       To login as administrator:
           oc login -u system:admin

13.4.3.2. Fabric8 Launcher ツールを使用したサンプルアプリケーションのデプロイ

このセクションでは、REST API Level 0 サンプルアプリケーションをビルドし、Fabric8 Launcher Web インターフェースから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. ブラウザーで Fabric8 Launcher URL に移動します。
  2. 画面上の指示に従って、Thorntail でアプリケーションのサンプルを作成して起動します。

13.4.3.3. CLI クライアント oc の認証

oc コマンドラインクライアントを使用して Minishift または CDK でアプリケーションの例を使用するには、Minishift または CDK Web インターフェースが提供するトークンを使用してクライアントを認証する必要があります。

前提条件

手順

  1. ブラウザーで Minishift または CDK URL に移動します。
  2. ユーザー名の横にある Web コンソールの右上にあるクエスチョンマークアイコンをクリックします。
  3. ドロップダウンメニューで Command Line Tools を選択します。
  4. oc login コマンドをコピーします。
  5. 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して、Minishift または CDK アカウントで CLI クライアント oc を認証します。

    $ oc login OPENSHIFT_URL --token=MYTOKEN

13.4.3.4. CLI クライアント oc を使用した Health Check サンプルアプリケーションのデプロイ

このセクションでは、Health Check のサンプルアプリケーションをビルドし、コマンドラインから OpenShift にデプロイする方法について説明します。

前提条件

手順

  1. GitHub からプロジェクトのクローンを作成します。

    $ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git

    もしくは、プロジェクトの ZIP ファイルをダウンロードして、展開します。

    $ unzip MY_PROJECT_NAME.zip
  2. 新しい OpenShift プロジェクトを作成します。

    $ oc new-project MY_PROJECT_NAME
  3. アプリケーションのルートディレクトリーに移動します。
  4. Maven を使用して OpenShift へのデプロイメントを開始します。

    $ mvn clean fabric8:deploy -Popenshift

    このコマンドは、Fabric8 Maven プラグインを使用して OpenShift で S2I プロセス を起動し、Pod を起動します。

  5. アプリケーションのステータスを確認し、Pod が実行していることを確認します。

    $ oc get pods -w
    NAME                             READY     STATUS      RESTARTS   AGE
    MY_APP_NAME-1-aaaaa               1/1       Running     0          58s
    MY_APP_NAME-s2i-1-build           0/1       Completed   0          2m

    MY_APP_NAME-1-aaaaa Pod は、完全にデプロイされて起動すると、ステータスがRunning になるはずです。また、続行する前に Pod が準備状態になるまで待機する必要があります。これは READY 列に表示されます。たとえば、MY_APP_NAME-1-aaaaaREADY 列が 1/1 の場合に準備状態になります。特定の Pod 名は異なります。中間の数字は新規ビルドごとに増えます。末尾の文字は、Pod の作成時に生成されます。

  6. アプリケーションのサンプルをデプロイして起動すると、そのルートを決定します。

    ルート情報の例

    $ oc get routes
    NAME                 HOST/PORT                                                     PATH      SERVICES        PORT      TERMINATION
    MY_APP_NAME         MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME      MY_APP_NAME      8080

    Pod のルート情報には、アクセスに使用するベース URL が提供されます。上記の例では、http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME をベース URL として使用し、アプリケーションにアクセスします。

13.4.4. Health Check サンプルアプリケーションの OpenShift Container Platform へのデプロイ

サンプルアプリケーションを OpenShift Container Platform に作成し、デプロイするプロセスは OpenShift Online に似ています。

前提条件

手順

13.4.5. 変更されていない Health Check サンプルアプリケーションとの対話

サンプルアプリケーションをデプロイすると、MY_APP_NAME サービスが実行されます。MY_APP_NAME サービスは、以下の REST エンドポイントを公開します。

/api/greeting
名前を文字列として返します。
/api/stop
障害をシミュレーションする手段としてサービスを強制的に応答させます。

以下の手順は、サービスの可用性を確認し、障害をシミュレートする方法を示しています。この利用可能なサービスの障害により、OpenShift の自己修復機能がサービスでトリガーされます。

Web インターフェースを使用して、これらの手順を実施することができます。

  1. curl を使用して、MY_APP_NAME サービスに対して GET リクエストを実行します。これを行うには、ブラウザーを使用することもできます。

    $ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greeting
    {"content":"Hello, World!"}
  2. /api/stop エンドポイントを呼び出して、その直後に /api/greeting エンドポイントの可用性を確認します。

    /api/stop エンドポイントを呼び出すと、内部サービス障害をシミュレートし、OpenShift の自己修復機能をトリガーします。障害のシミュレート後に /api/greeting を呼び出すと、サービスは HTTP ステータス 503 を返すはずです。

    $ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/stop

    (続いて、以下を行います)

    $ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greeting
    <html>
      <head><title>Error</title></head>
      <body>503 - Service Unavailable</body>
    </html>
  3. oc get pods -w を使用して、動作中の自己修復機能を継続的に監視します。

    サービス障害の呼び出し中に、OpenShift コンソールまたは oc クライアントツールで機能する自己修復機能を確認できます。READY 状態の Pod 数がゼロ (0/1) に移行し、短時間 (1 分未満)が 1 (1/1) に戻ることが確認できるはずです。さらに、サービスの失敗を呼び出すたびに RESTARTS カウントが増加します。

    $ oc get pods -w
    NAME                           READY     STATUS    RESTARTS   AGE
    MY_APP_NAME-1-26iy7   0/1       Running   5          18m
    MY_APP_NAME-1-26iy7   1/1       Running   5         19m
  4. 必要に応じて、Web インターフェースを使用してサービスを起動します。

    端末ウィンドウを使用して対話を行うと、サービスによって提供される Web インターフェースを使用して、異なるメソッドを起動し、サービスがライフサイクルフェーズを通過するのを監視できます。

    http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME
  5. 必要に応じて、Web コンソールを使用して、自己修復プロセスの各段階でアプリケーションによって生成されたログ出力を表示します。

    1. プロジェクトに移動します。
    2. サイドバーで Monitoring をクリックします。
    3. 画面右上にある Events をクリックし、ログメッセージを表示します。
    4. 必要に応じて、View Details をクリックし、Event ログの詳細なビューを表示します。

    ヘルスチェックアプリケーションは以下のメッセージを生成します。

    メッセージステータス

    Unhealthy

    readiness プローブが失敗しました。このメッセージは予想され、/api/greeting エンドポイントのシミュレートされた失敗が検出され、自己修復プロセスが開始することを示します。

    Killing

    サービスを実行している利用不可の Docker コンテナーは、再作成前に強制終了されています。

    Pulling

    最新バージョンの Docker イメージをダウンロードして、コンテナーを再作成します。

    Pulled

    Docker イメージが正常にダウンロードされました。

    Created

    Docker コンテナーが正常に作成されました。

    Started

    Docker コンテナーがリクエストを処理する準備が整っている。

13.4.6. Health Check のサンプルアプリケーション統合テストの実行

このサンプルアプリケーションには、自己完結型の統合テストセットが含まれます。OpenShift プロジェクト内で実行する場合、テストは以下を行います。

  • アプリケーションのテストインスタンスをプロジェクトにデプロイします。
  • そのインスタンスで個別のテストを実行します。
  • テストが完了したら、プロジェクトからアプリケーションのすべてのインスタンスを削除します。
警告

統合テストを実行すると、サンプルアプリケーションの既存インスタンスがすべてターゲット OpenShift プロジェクトから削除されます。サンプルアプリケーションが正しく削除されないようにするには、テストを実行するために別の OpenShift プロジェクトを作成して選択してください。

前提条件

  • oc クライアントが認証されました。
  • 空の OpenShift プロジェクト

手順

次のコマンドを実行して統合テストを実行します。

$ mvn clean verify -Popenshift,openshift-it

13.4.7. ヘルスチェックリソース

ヘルスチェックの背景および関連情報は、以下を参照してください。

13.5. Thorntail のサーキットブレーカーの例

重要

以下の例は、実稼働環境での実行を目的としていません。

制限: このサンプルアプリケーションは、Minishift または CDK で実行してください。また、手動のワークフローを使用して、この例を OpenShift Online Pro および OpenShift Container Platform にデプロイすることもできます。この例は、現在 OpenShift Online Starter では使用できません。

能力レベルの例: Foundational

Circuit Breaker 例は、サービスの障害を報告し、リクエストの処理に使用できるまで、失敗したサービスへのアクセスを制限する一般的なパターンを示しています。これは、障害が発生した機能サービスに依存する他のサービスのカスケード障害を防ぐのに役立ちます。

この例では、サービスに Circuit Breaker および Fallback パターンを実装する方法を表しています。

13.5.1. サーキットブレーカー設計パターン

Circuit Breaker は、以下を行うパターンです。

  • ネットワーク障害の影響を低減し、サービスが他のサービスを同期的に呼び出すサービスアーキテクチャーにおける高いレイテンシーを削減します。

    いずれかのサービスが以下の状態では:

    • ネットワーク障害により利用できない。
    • トラフィックが多すぎてレイテンシーの値が異常に高い

    エンドポイントの呼び出しを試みるその他のサービスは、重要なリソースにアクセスしようとすると、最終的に使用できなくなる可能性があります。

  • キャスケード障害とも呼ばれる状態を回避します。これにより、マイクロサービスアーキテクチャー全体が使用できなくなる可能性があります。
  • 障害を監視する保護機能とリモート機能の間のプロキシーとして機能します。
  • 障害が特定のしきい値に達したら、その後にサーキットブレーカーへの呼び出しはすべてエラーまたは事前定義のフォールバック応答を返します。保護された呼び出しは行われません。

Circuit Breaker には通常、Circuit Breaker が作動した時に通知するエラー報告メカニズムも含まれます。

Circuit Breaker の実装
  • Circuit Breaker パターンが実装されると、サービスクライアントは一定間隔でプロキシー経由でリモートサービスエンドポイントを呼び出します。
  • リモートサービスエンドポイントへの呼び出しが繰り返し、一貫して失敗すると、Circuit Breaker が作動し、サービスへのすべての呼び出しが、設定されたタイムアウト期間中に即座に失敗し、事前定義されたフォールバック応答を返します。
  • タイムアウト期間が切れると、テストコールの数はリモートサービスに通過して、修復されたかどうかを判断するか、利用不可のままになります。

    • テストの呼び出しに失敗した場合、Circuit Breaker はサービスを利用できない状態を維持し、受信呼び出しへのフォールバック応答を継続します。
    • テストに成功すると、Circuit Breaker が閉じ、トラフィックが再度リモートサービスに到達できるようにします。

13.5.2. サーキットブレーカー設計のトレードオフ

表13.4 設計のトレードオフ

良い点悪い点
  • サービスが呼び出す他のサービスの障害を処理できるようにします。
  • タイムアウト値の最適化が困難な場合がある

    • タイムアウト値を必要以上に大きくすると、レイテンシーが過度に生成される可能性があります。
    • タイムアウトを必要な値より小さくすると、誤検知が発生する可能性があります。

13.5.3. Circuit Breaker サンプルアプリケーションの OpenShift Online へのデプロイ

以下のオプションのいずれかを使用して、OpenShift Online で Circuit Breaker サンプルアプリケーションを実行します。

各メソッドは、同じ oc コマンドを使用してアプリケーションをデプロイしますが、developers.redhat.com/launch を使用すると、oc コマンドを実行する自動デプロイメントワークフローが提供されます。

13.5.3.1. developers.redhat.com/launch を使用したサンプルアプリケーションのデプロイ

このセクションでは、REST API Level 0 のサンプルアプリケーションをビルドし、Red Hat Developer Launcher Web インターフェースから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. ブラウザーで developers.redhat.com/launch URL に移動します。
  2. 画面上の指示に従って、Thorntail でアプリケーションのサンプルを作成して起動します。

13.5.3.2. CLI クライアント oc の認証

oc コマンドラインクライアントを使用して OpenShift Online でアプリケーションのサンプルを使用するには、OpenShift Online の Web インターフェースによって提供されるトークンを使用してクライアントを認証する必要があります。

前提条件

手順

  1. ブラウザーで OpenShift Online URL に移動します。
  2. ユーザー名の横にある Web コンソールの右上にあるクエスチョンマークアイコンをクリックします。
  3. ドロップダウンメニューで Command Line Tools を選択します。
  4. oc login コマンドをコピーします。
  5. 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して CLI クライアント ocOpenShift Online アカウントで認証します。

    $ oc login OPENSHIFT_URL --token=MYTOKEN

13.5.3.3. CLI クライアント oc を使用した Circuit Breaker サンプルアプリケーションのデプロイ

このセクションでは、Circuit Breaker サンプルアプリケーションをビルドし、コマンドラインから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. GitHub からプロジェクトのクローンを作成します。

    $ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git

    もしくは、プロジェクトの ZIP ファイルをダウンロードして、展開します。

    $ unzip MY_PROJECT_NAME.zip
  2. 新しい OpenShift プロジェクトを作成します。

    $ oc new-project MY_PROJECT_NAME
  3. アプリケーションのルートディレクトリーに移動します。
  4. Maven を使用して OpenShift へのデプロイメントを開始します。

    $ mvn clean fabric8:deploy -Popenshift

    このコマンドは、Fabric8 Maven プラグインを使用して OpenShift で S2I プロセス を起動し、Pod を起動します。

  5. アプリケーションのステータスを確認し、Pod が実行していることを確認します。

    $ oc get pods -w
    NAME                             READY     STATUS      RESTARTS   AGE
    MY_APP_NAME-greeting-1-aaaaa     1/1       Running   0           17s
    MY_APP_NAME-greeting-1-deploy    0/1       Completed 0           22s
    MY_APP_NAME-name-1-aaaaa         1/1       Running   0           14s
    MY_APP_NAME-name-1-deploy        0/1       Completed 0           28s

    Pod MY_APP_NAME-greeting-1-aaaaa および MY_APP_NAME-name-1-aaaaa の両方には、完全にデプロイおよび起動すると Running のステータスがなければなりません。また、続行する前に Pod が準備状態になるまで待機する必要があります。これは READY 列に表示されます。たとえば、MY_APP_NAME-greeting-1-aaaaa は、READY 列が 1/1 の場合に準備状態になります。特定の Pod 名は異なります。中間の数字は新規ビルドごとに増えます。末尾の文字は、Pod の作成時に生成されます。

  6. アプリケーションのサンプルをデプロイして起動すると、そのルートを決定します。

    ルート情報の例

    $ oc get routes
    NAME                 HOST/PORT                                                     PATH      SERVICES        PORT      TERMINATION
    MY_APP_NAME-greeting   MY_APP_NAME-greeting-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME            MY_APP_NAME-greeting   8080                    None
    MY_APP_NAME-name       MY_APP_NAME-name-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME            MY_APP_NAME-name       8080                    None

    Pod のルート情報には、アクセスに使用するベース URL が提供されます。上記の例では、http://MY_APP_NAME-greeting-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME をベース URL として使用し、アプリケーションにアクセスします。

13.5.4. Circuit Breaker サンプルアプリケーションの Minishift または CDK へのデプロイ

以下のいずれかのオプションを使用して、Minishift または CDK で Circuit Breaker サンプルアプリケーションをローカルで実行します。

各メソッドは、同じ oc コマンドを使用してアプリケーションをデプロイしますが、Fabric8 Launcher を使用すると oc コマンドを実行する自動デプロイメントワークフローが提供されます。

13.5.4.1. Fabric8 Launcher ツールの URL および認証情報の取得

Minishift または CDK にサンプルアプリケーションを作成してデプロイするには、Fabric8 Launcher ツール URL およびユーザー認証情報が必要です。この情報は、Minishift または CDK の開始時に提供されます。

前提条件

  • Fabric8 Launcher ツールがインストールされ、設定され、実行されている。

手順

  1. Minishift または CDK を起動したコンソールに移動します。
  2. 実行中の Fabric8 Launcher にアクセスするのに使用できる URL およびユーザー認証情報のコンソール出力を確認します。

    Minishift または CDK 起動時のコンソール出力の例

    ...
    -- Removing temporary directory ... OK
    -- Server Information ...
       OpenShift server started.
       The server is accessible via web console at:
           https://192.168.42.152:8443
    
       You are logged in as:
           User:     developer
           Password: developer
    
       To login as administrator:
           oc login -u system:admin

13.5.4.2. Fabric8 Launcher ツールを使用したサンプルアプリケーションのデプロイ

このセクションでは、REST API Level 0 サンプルアプリケーションをビルドし、Fabric8 Launcher Web インターフェースから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. ブラウザーで Fabric8 Launcher URL に移動します。
  2. 画面上の指示に従って、Thorntail でアプリケーションのサンプルを作成して起動します。

13.5.4.3. CLI クライアント oc の認証

oc コマンドラインクライアントを使用して Minishift または CDK でアプリケーションの例を使用するには、Minishift または CDK Web インターフェースが提供するトークンを使用してクライアントを認証する必要があります。

前提条件

手順

  1. ブラウザーで Minishift または CDK URL に移動します。
  2. ユーザー名の横にある Web コンソールの右上にあるクエスチョンマークアイコンをクリックします。
  3. ドロップダウンメニューで Command Line Tools を選択します。
  4. oc login コマンドをコピーします。
  5. 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して、Minishift または CDK アカウントで CLI クライアント oc を認証します。

    $ oc login OPENSHIFT_URL --token=MYTOKEN

13.5.4.4. CLI クライアント oc を使用した Circuit Breaker サンプルアプリケーションのデプロイ

このセクションでは、Circuit Breaker サンプルアプリケーションをビルドし、コマンドラインから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. GitHub からプロジェクトのクローンを作成します。

    $ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git

    もしくは、プロジェクトの ZIP ファイルをダウンロードして、展開します。

    $ unzip MY_PROJECT_NAME.zip
  2. 新しい OpenShift プロジェクトを作成します。

    $ oc new-project MY_PROJECT_NAME
  3. アプリケーションのルートディレクトリーに移動します。
  4. Maven を使用して OpenShift へのデプロイメントを開始します。

    $ mvn clean fabric8:deploy -Popenshift

    このコマンドは、Fabric8 Maven プラグインを使用して OpenShift で S2I プロセス を起動し、Pod を起動します。

  5. アプリケーションのステータスを確認し、Pod が実行していることを確認します。

    $ oc get pods -w
    NAME                             READY     STATUS      RESTARTS   AGE
    MY_APP_NAME-greeting-1-aaaaa     1/1       Running   0           17s
    MY_APP_NAME-greeting-1-deploy    0/1       Completed 0           22s
    MY_APP_NAME-name-1-aaaaa         1/1       Running   0           14s
    MY_APP_NAME-name-1-deploy        0/1       Completed 0           28s

    Pod MY_APP_NAME-greeting-1-aaaaa および MY_APP_NAME-name-1-aaaaa の両方には、完全にデプロイおよび起動すると Running のステータスがなければなりません。また、続行する前に Pod が準備状態になるまで待機する必要があります。これは READY 列に表示されます。たとえば、MY_APP_NAME-greeting-1-aaaaa は、READY 列が 1/1 の場合に準備状態になります。特定の Pod 名は異なります。中間の数字は新規ビルドごとに増えます。末尾の文字は、Pod の作成時に生成されます。

  6. アプリケーションのサンプルをデプロイして起動すると、そのルートを決定します。

    ルート情報の例

    $ oc get routes
    NAME                 HOST/PORT                                                     PATH      SERVICES        PORT      TERMINATION
    MY_APP_NAME-greeting   MY_APP_NAME-greeting-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME            MY_APP_NAME-greeting   8080                    None
    MY_APP_NAME-name       MY_APP_NAME-name-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME            MY_APP_NAME-name       8080                    None

    Pod のルート情報には、アクセスに使用するベース URL が提供されます。上記の例では、http://MY_APP_NAME-greeting-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME をベース URL として使用し、アプリケーションにアクセスします。

13.5.5. Circuit Breaker サンプルアプリケーションの OpenShift Container Platform へのデプロイ

サンプルアプリケーションを OpenShift Container Platform に作成し、デプロイするプロセスは OpenShift Online に似ています。

前提条件

手順

13.5.6. 未修正の Thorntail Circuit Breaker のサンプルアプリケーションとの対話

Thorntail のサンプルアプリケーションをデプロイした後に、以下のサービスが実行されます。

MY_APP_NAME-name

以下のエンドポイントを公開します。

  • このサービスの稼働時に名前を返す /api/name エンドポイントと、このサービスが失敗を実証するように設定されたときにエラーが返されます。
  • /api/state エンドポイント: /api/name エンドポイントの動作を制御し、サービスが正しく機能するか、または失敗を実証するかどうかを判断します。
MY_APP_NAME-greeting

以下のエンドポイントを公開します。

  • パーソナライズされたグリーティング応答を取得するために呼び出す /api/greeting エンドポイント。

    /api/greeting エンドポイントを呼び出すと、リクエストの処理の一環として、MY_APP_NAME-name サービスの /api/name エンドポイントに対して呼び出しを実行します。/api/name エンドポイントに対する呼び出しは、Circuit Breaker によって保護されます。

    リモートエンドポイントが利用可能な場合、name サービスは HTTP コード 200 (OK) で応答し、/api/greeting エンドポイントから以下の応答を受け取ります。

    {"content":"Hello, World!"}

    リモートエンドポイントが利用できない場合、name サービスは HTTP コード 500 (内部サーバーエラー) で応答し、/api/greeting エンドポイントから事前定義されたフォールバック応答を受け取ります。

    {"content":"Hello, Fallback!"}
  • Circuit Breaker の状態を返す /api/cb-state エンドポイント。状態は次のいずれかです。

    • open: サーキットブレーカーが、失敗したサービスにリクエストに到達できないようにします。
    • closed: サーキットブレーカーは、リクエストがサービスに到達できるようにします。

以下の手順は、サービスの可用性を確認し、障害をシミュレートしてフォールバック応答を受け取る方法を示しています。

  1. curl を使用して、MY_APP_NAME-greeting サービスに対して GET リクエストを実行します。これを行うには、Web インターフェースの Invoke ボタンを使用することもできます。

    $ curl http://MY_APP_NAME-greeting-MY_PROJECT_NAME.LOCAL_OPENSHIFT_HOSTNAME/api/greeting
    {"content":"Hello, World!"}
  2. MY_APP_NAME-name サービスの失敗をシミュレートするには、以下を行います。

    • Web インターフェースで トグル ボタンを使用します。
    • MY_APP_NAME-name サービスを実行している Pod のレプリカ数を 0 にスケーリングします。
    • MY_APP_NAME-name サービスの /api/state エンドポイントに対して HTTP PUT リクエストを実行し、その状態を fail に設定します。

      $ curl -X PUT -H "Content-Type: application/json" -d '{"state": "fail"}' http://MY_APP_NAME-name-MY_PROJECT_NAME.LOCAL_OPENSHIFT_HOSTNAME/api/state
  3. /api/greeting エンドポイントを起動します。/api/name エンドポイントで複数のリクエストが失敗する場合:

    1. Circuit Breaker が開きます。
    2. Web インターフェースの状態インジケーターが CLOSED から OPEN に変わります。
    3. /api/greeting エンドポイントを呼び出すと、Circuit Breaker はフォールバック応答を実行します。

      $ curl http://MY_APP_NAME-greeting-MY_PROJECT_NAME.LOCAL_OPENSHIFT_HOSTNAME/api/greeting
      {"content":"Hello, Fallback!"}
  4. 名前を MY_APP_NAME-name サービスの可用性にリストアします。これを行うには、以下を行います。

    • Web インターフェースで トグル ボタンを使用します。
    • MY_APP_NAME-name サービスを実行する Pod のレプリカ数を 1 にスケーリングします。
    • MY_APP_NAME-name サービスの /api/state エンドポイントに対して HTTP PUT リクエストを実行し、その状態を OK に戻します

      $ curl -X PUT -H "Content-Type: application/json" -d '{"state": "ok"}' http://MY_APP_NAME-name-MY_PROJECT_NAME.LOCAL_OPENSHIFT_HOSTNAME/api/state
  5. /api/greeting エンドポイントを再度呼び出します。/api/name エンドポイントでの複数のリクエストが正常に実行される場合:

    1. Circuit Breaker が閉じます。
    2. Web インターフェースの状態インジケーターが OPEN から CLOSED に変わります。
    3. Circuit Breaker は、/api/greeting エンドポイントを呼び出す際に Hello World! グリーティングを返します。

      $ curl http://MY_APP_NAME-greeting-MY_PROJECT_NAME.LOCAL_OPENSHIFT_HOSTNAME/api/greeting
      {"content":"Hello, World!"}

13.5.7. サーキットブレーカーサンプルアプリケーション統合テストの実行

このサンプルアプリケーションには、自己完結型の統合テストセットが含まれます。OpenShift プロジェクト内で実行する場合、テストは以下を行います。

  • アプリケーションのテストインスタンスをプロジェクトにデプロイします。
  • そのインスタンスで個別のテストを実行します。
  • テストが完了したら、プロジェクトからアプリケーションのすべてのインスタンスを削除します。
警告

統合テストを実行すると、サンプルアプリケーションの既存インスタンスがすべてターゲット OpenShift プロジェクトから削除されます。サンプルアプリケーションが正しく削除されないようにするには、テストを実行するために別の OpenShift プロジェクトを作成して選択してください。

前提条件

  • oc クライアントが認証されました。
  • 空の OpenShift プロジェクト

手順

次のコマンドを実行して統合テストを実行します。

$ mvn clean verify -Popenshift,openshift-it

13.5.8. Hystrix Dashboard を使用したサーキットブレーカーの監視

Histrix Dashboard を使用すると、イベントストリームから Histrix メトリクスデータを集計し、それらを 1 つの画面で表示することで、サービスの正常性を簡単にリアルタイムで監視できます。

前提条件

  • アプリケーションがデプロイされている必要があります。

手順

  1. Minishift または CDK クラスターにログインします。

    $ oc login OPENSHIFT_URL --token=MYTOKEN
  2. Web コンソールにアクセスするには、ブラウザーを使用して Minishift または CDK URL に移動します。
  3. Circuit Breaker アプリケーションが含まれるプロジェクトに移動します。

    $ oc project MY_PROJECT_NAME
  4. Hystrix Dashboard アプリケーションの YAML テンプレート をインポートします。そのためには、Add to Project をクリックしてから Import YAML / JSON タブを選択し、YAML ファイルの内容をテキストボックスにコピーします。または、次のコマンドを実行できます。

    $ oc create -f https://raw.githubusercontent.com/snowdrop/openshift-templates/master/hystrix-dashboard/hystrix-dashboard.yml
  5. Create ボタンをクリックして、テンプレートに基づいて Histrix Dashboard アプリケーションを作成します。または、次のコマンドを実行できます。

    $ oc new-app --template=hystrix-dashboard
  6. Hystrix Dashboard が含まれる Pod がデプロイされるまで待機します。
  7. Hystrix Dashboard アプリケーションのルートを取得します。

    $ oc get route hystrix-dashboard
    NAME                HOST/PORT                                                    PATH      SERVICES            PORT      TERMINATION   WILDCARD
    hystrix-dashboard   hystrix-dashboard-MY_PROJECT_NAME.LOCAL_OPENSHIFT_HOSTNAME                 hystrix-dashboard   <all>                   None
  8. Dashboard にアクセスするには、ブラウザーで Dashboard アプリケーションルート URL を開きます。Web コンソールの Overview 画面に移動し、Hystrix Dashboard アプリケーションが含まれる Pod の上にあるヘッダーのルート URL をクリックします。
  9. Dashboard を使用して MY_APP_NAME-greeting サービスを監視するには、デフォルトのイベントストリームアドレスを以下のアドレスに置き換え、Monitor Stream ボタンをクリックします。

    http://MY_APP_NAME-greeting/hystrix.stream

参考情報

13.5.9. サーキットブレーカーリソース

Circuit Breaker パターンの背後にある設計原則に関する背景情報については、以下のリンクを参照してください。

13.6. Thorntail のセキュアなアプリケーションの例

重要

以下の例は、実稼働環境での実行を目的としていません。

制限: このサンプルアプリケーションは、Minishift または CDK で実行してください。また、手動のワークフローを使用して、この例を OpenShift Online Pro および OpenShift Container Platform にデプロイすることもできます。この例は、現在 OpenShift Online Starter では使用できません。

注記

Thorntail の Secured サンプルアプリケーションには Red Hat SSO 7.3 が必要です。Red Hat SSO 7.3 は IBM Z ではサポートされないため、IBM Z では Secured サンプルは利用できません。

実行レベルの例: Advanced

Secured のサンプルアプリケーションは、Red Hat SSO を使用して REST エンドポイントを保護します。この例では、REST API Level 0 の例に展開されます。

Red Hat SSO:

  • OAuth 2.0 仕様のエクステンションである Open ID Connect プロトコルを実装します。
  • アクセストークンを発行し、セキュアなリソースに対するさまざまなアクセス権限をクライアントに提供します。

SSO でアプリケーションをセキュアにすると、セキュリティー設定を一元化しつつ、アプリケーションにセキュリティーを追加することができます。

重要

この例では、デモ目的で Red Hat SSO が事前設定されたので、その原則、使用方法、または設定について説明しません。この例を使用する前に、Red Hat SSO に関する基本的な概念を理解していることを確認してください。

13.6.1. Secured プロジェクト構造

SSO の例には以下が含まれます。

  • 保護するつもりである Greeting サービスのソース
  • SSO サーバーをデプロイするためのテンプレートファイル (service.sso.yaml)
  • サービスのセキュリティーを保護するための Keycloak アダプターの設定

13.6.2. Red Hat SSO デプロイメントの設定

この例の service.sso.yaml ファイルには、事前設定された Red Hat SSO サーバーをデプロイするすべての OpenShift 設定項目が含まれます。SSO サーバーの構成は、このサンプルのために簡略化されており、ユーザーとセキュリティ設定が事前に構成された、すぐに使用できる構成を提供します。service.sso.yaml ファイルには非常に長い行が含まれ、gedit などの一部のテキストエディターにはこのファイルを読み取ることが問題がある場合があります。

警告

実稼働環境では、この SSO 設定を使用することは推奨されません。具体的には、セキュリティー設定の例に追加された単純化は、実稼働環境での使用に影響を及ぼします。

表13.5 SSO の例の簡略化

変更理由推奨事項

デフォルト設定には、yaml 設定ファイルに公開鍵と秘密鍵の 両方が含まれます。

これは、エンドユーザーが Red Hat SSO モジュールをデプロイし、そのモジュールを内部に把握したり、Red Hat SSO の設定方法を必要とせず、使用可能な状態に配置できるためです。

実稼働環境では、秘密鍵をソース制御に保存しないでください。サーバー管理者が追加する必要があります。

設定済みの クライアントがコールバック URL を受け入れます

各ランタイムにカスタム設定を使用しないように、OAuth2 仕様で必要なコールバックの検証を回避します。

アプリケーション固有のコールバック URL には、有効なドメイン名を指定する必要があります。

クライアントには SSL/TLS が必要ず、セキュアなアプリケーションは HTTPS 上で公開されません

この例は、ランタイムごとに証明書を生成する必要がないことで単純化されます。

実稼働環境では、セキュアなアプリケーションは単純な HTTP ではなく HTTPS を使用する必要があります。

トークンのタイムアウトがデフォルトの 1 分から 10 分に増えました。

コマンドラインの例を使用した場合のユーザーエクスペリエンスの向上

セキュリティーの観点から、攻撃者はアクセストークンが拡張されていると推測する必要があるウィンドウ。潜在的な攻撃者が現在のトークンを推測するのがより困難になるため、このウィンドウを短くすることが推奨されます。

13.6.3. Red Hat SSO レルムモデル

master レルムは、この例のセキュリティーを保護するために使用されます。コマンドラインクライアントとセキュアな REST エンドポイントのモデルを提供する事前設定されたアプリケーションクライアント定義は 2 つあります。

また、Red Hat SSO の master レルムには、admin および alice のさまざまな認証および認可の結果の検証に使用できる 2 つの事前設定されたユーザーも存在します。

13.6.3.1. Red Hat SSO ユーザー

セキュリティーが保護された例のレルムモデルには、2 つのユーザーが含まれます。

admin
admin ユーザーのパスワードは admin で、レルム管理者です。このユーザーは Red Hat SSO 管理コンソールに完全アクセスできますが、セキュアなエンドポイントへのアクセスに必要なロールマッピングはありません。このユーザーを使用すると、認証されていないユーザーの動作を確認できます。
alice

alice ユーザーには password のパスワードがあり、正規のアプリケーションユーザーです。このユーザーは、セキュアなエンドポイントへの認証および認可が成功したアクセスを実証します。ロールマッピングの例は、デコードされた JWT ベアラートークンにあります。

{
  "jti": "0073cfaa-7ed6-4326-ac07-c108d34b4f82",
  "exp": 1510162193,
  "nbf": 0,
  "iat": 1510161593,
  "iss": "https://secure-sso-sso.LOCAL_OPENSHIFT_HOSTNAME/auth/realms/master", 1
  "aud": "demoapp",
  "sub": "c0175ccb-0892-4b31-829f-dda873815fe8",
  "typ": "Bearer",
  "azp": "demoapp",
  "nonce": "90ff5d1a-ba44-45ae-a413-50b08bf4a242",
  "auth_time": 1510161591,
  "session_state": "98efb95a-b355-43d1-996b-0abcb1304352",
  "acr": "1",
  "client_session": "5962112c-2b19-461e-8aac-84ab512d2a01",
  "allowed-origins": [
    "*"
  ],
  "realm_access": {
    "roles": [ 2
      "example-admin"
    ]
  },
  "resource_access": { 3
    "secured-example-endpoint": {
      "roles": [
        "example-admin" 4
      ]
    },
    "account": {
      "roles": [
        "manage-account",
        "view-profile"
      ]
    }
  },
  "name": "Alice InChains",
  "preferred_username": "alice", 5
  "given_name": "Alice",
  "family_name": "InChains",
  "email": "alice@keycloak.org"
}
1
iss フィールドは、トークンを発行する Red Hat SSO レルムインスタンス URL に対応します。トークンを検証するには、セキュアなエンドポイントデプロイメントで設定する必要があります。
2
roles オブジェクトは、グローバルレルムレベルでユーザーに付与されたロールを提供します。この例では、alice には example-admin ロールが付与されています。セキュリティーが保護されたエンドポイントが認可されたロールのレルムレベルを検索していることを確認できます。
3
resource_access オブジェクトには、リソースの固有の付与が含まれます。このオブジェクトの下には、各セキュアなエンドポイントのオブジェクトを見つけます。
4
resource_access.secured-example-endpoint.roles オブジェクトには、ssecured-example-endpointリソースの alice に付与されるロールが含まれます。
5
preferred_username フィールドは、アクセストークンの生成に使用したユーザー名を提供します。

13.6.3.2. アプリケーションクライアント

OAuth 2.0 仕様では、リソースの所有者の代わりにセキュアなリソースにアクセスするアプリケーションクライアントのロールを定義することができます。master レルムには、以下のアプリケーションクライアントが定義されています。

demoapp
これは、アクセストークンの取得に使用されるクライアントシークレットを持つ confidential タイプのクライアントです。トークンには alice ユーザーの権限が含まれ、alice が Thorntail、Eclipse Vert.x、Node.js、および Spring Boot ベースの REST サンプルアプリケーションデプロイメントにアクセスできるようにします。
secured-example-endpoint
secured-example-endpoint は、関連するリソース (特に Greeting サービス) にアクセスするために example-admin ロールを必要とするベアラーのみのクライアントタイプです。

13.6.4. Thorntail SSO アダプターの設定

SSO アダプターは、クライアント側、または SSO サーバーのクライアントで、Web リソースのセキュリティーを強制するコンポーネントです。ここでは、これは greeting サービスです。

Thorntail では、セキュリティー設定は 2 つの重要なアセットに分類されます。

  • サービスのセキュリティーを確立するための web.xml 設定
  • keycloak アダプターの keycloak.json 設定。

web.xmlを使用したセキュリティーの確立

<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
  <security-constraint>
    <web-resource-collection>
      <url-pattern>/api/greeting</url-pattern> 1
    </web-resource-collection>
    <auth-constraint>
      <role-name>example-admin</role-name> 2
    </auth-constraint>
  </security-constraint>

  <login-config>
    <auth-method>KEYCLOAK</auth-method> 3
  </login-config>

  <security-role>
    <role-name>example-admin</role-name>
  </security-role>
</web-app>

1
セキュリティーが保護される Web コンテキスト。
2
エンドポイントへのアクセスに必要なロール。
3
keycloak をセキュリティープロバイダーとして使用すること。

keycloak.jsonを使用した Keycloak アダプターのセキュリティーのアクティブ化

{
  "realm": "master", 1
  "resource": "secured-example-endpoint", 2
  "realm-public-key": "...", 3
  "auth-server-url": "${sso.auth.server.url}", 4
  "ssl-required": "external",
  "disable-trust-manager": true,
  "bearer-only": true, 5
  "use-resource-role-mappings": true
}

1
使用されるセキュリティーレルム。
2
実際の keycloak クライアント の設定。
3
レルム公開鍵の PEM 形式。これは管理コンソールから取得できます。
4
Red Hat SSO サーバーのアドレス (ビルド時の挿入)。
5
有効にすると、アダプターはユーザーの認証を試行せず、ベアラートークンのみを検証します。

web.xml は keycloak を有効にし、Greeting サービスの Web リソースエンドポイントの保護を強制します。keycloak.json は、セキュリティーアダプターが Red Hat SSO と対話するように設定します。

13.6.5. Secured サンプルアプリケーションの Minishift または CDK へのデプロイ

13.6.5.1. Fabric8 Launcher ツールの URL および認証情報の取得

Minishift または CDK にサンプルアプリケーションを作成してデプロイするには、Fabric8 Launcher ツール URL およびユーザー認証情報が必要です。この情報は、Minishift または CDK の開始時に提供されます。

前提条件

  • Fabric8 Launcher ツールがインストールされ、設定され、実行されている。

手順

  1. Minishift または CDK を起動したコンソールに移動します。
  2. 実行中の Fabric8 Launcher にアクセスするのに使用できる URL およびユーザー認証情報のコンソール出力を確認します。

    Minishift または CDK 起動時のコンソール出力の例

    ...
    -- Removing temporary directory ... OK
    -- Server Information ...
       OpenShift server started.
       The server is accessible via web console at:
           https://192.168.42.152:8443
    
       You are logged in as:
           User:     developer
           Password: developer
    
       To login as administrator:
           oc login -u system:admin

13.6.5.2. Fabric8 Launcher を使用した Secured サンプルアプリケーションの作成

前提条件

手順

  • ブラウザーで Fabric8 Launcher URL に移動します。
  • 画面上の指示に従って Thorntail でサンプルを作成します。デプロイメントタイプについて要求されたら、ローカルに構築して実行 します。
  • 画面の指示に従ってください。

    完了したら、Download as ZIP file ボタンをクリックし、ファイルをハードドライブに保存します。

13.6.5.3. CLI クライアント oc の認証

oc コマンドラインクライアントを使用して Minishift または CDK でアプリケーションの例を使用するには、Minishift または CDK Web インターフェースが提供するトークンを使用してクライアントを認証する必要があります。

前提条件

手順

  1. ブラウザーで Minishift または CDK URL に移動します。
  2. ユーザー名の横にある Web コンソールの右上にあるクエスチョンマークアイコンをクリックします。
  3. ドロップダウンメニューで Command Line Tools を選択します。
  4. oc login コマンドをコピーします。
  5. 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して、Minishift または CDK アカウントで CLI クライアント oc を認証します。

    $ oc login OPENSHIFT_URL --token=MYTOKEN

13.6.5.4. CLI クライアント oc を使用したセキュアなサンプルアプリケーションのデプロイ

このセクションでは、Secured サンプルアプリケーションをビルドし、コマンドラインから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. GitHub からプロジェクトのクローンを作成します。

    $ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git

    もしくは、プロジェクトの ZIP ファイルをダウンロードして、展開します。

    $ unzip MY_PROJECT_NAME.zip
  2. 新しい OpenShift プロジェクトを作成します。

    $ oc new-project MY_PROJECT_NAME
  3. アプリケーションのルートディレクトリーに移動します。
  4. サンプルの ZIP ファイルから service.sso.yaml ファイルを使用して Red Hat SSO サーバーをデプロイします。

    $ oc create -f service.sso.yaml
  5. Maven を使用して、Minishift または CDK にデプロイメントを開始します。

    $ mvn clean fabric8:deploy -Popenshift -DskipTests \
          -DSSO_AUTH_SERVER_URL=$(oc get route secure-sso -o jsonpath='{"https://"}{.spec.host}{"/auth\n"}')

    このコマンドは、Fabric8 Maven Plugin を使用して Minishift または CDK で S2I プロセス を起動し、Pod を起動します。

このプロセスは、uberjar ファイルと OpenShift リソースを生成し、それらを Minishift または CDK サーバーの現在のプロジェクトにデプロイします。

13.6.6. Secured サンプルアプリケーションの OpenShift Container Platform へのデプロイ

Minishift または CDK の他に、マイナーな違いのみが OpenShift Container Platform にサンプルを作成し、デプロイできます。最も重要な違いは、OpenShift Container Platform でデプロイする前に、Minishift または CDK にサンプルアプリケーションを作成する必要があります。

前提条件

13.6.6.1. CLI クライアント oc の認証

コマンドラインクライアント oc を使用して OpenShift Container Platform のサンプルアプリケーションを使用するには、OpenShift Container Platform Web インターフェースによって提供されるトークンを使用してクライアントを認証する必要があります。

前提条件

  • Red Hat OpenShift Container Platform のアカウント

手順

  1. ブラウザーで OpenShift Container Platform URL に移動します。
  2. ユーザー名の横にある Web コンソールの右上にあるクエスチョンマークアイコンをクリックします。
  3. ドロップダウンメニューで Command Line Tools を選択します。
  4. oc login コマンドをコピーします。
  5. 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して CLI クライアント oc を OpenShift Container Platform アカウントで認証します。

    $ oc login OPENSHIFT_URL --token=MYTOKEN

13.6.6.2. CLI クライアント oc を使用したセキュアなサンプルアプリケーションのデプロイ

このセクションでは、Secured サンプルアプリケーションをビルドし、コマンドラインから OpenShift にデプロイする方法を説明します。

前提条件

  • Minishift または CDK の Fabric8 Launcher ツールを使用して作成されたサンプルアプリケーション。
  • oc クライアントが認証されました。詳細は、「CLI クライアント oc の認証」を参照してください。

手順

  1. GitHub からプロジェクトのクローンを作成します。

    $ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git

    もしくは、プロジェクトの ZIP ファイルをダウンロードして、展開します。

    $ unzip MY_PROJECT_NAME.zip
  2. 新しい OpenShift プロジェクトを作成します。

    $ oc new-project MY_PROJECT_NAME
  3. アプリケーションのルートディレクトリーに移動します。
  4. サンプルの ZIP ファイルから service.sso.yaml ファイルを使用して Red Hat SSO サーバーをデプロイします。

    $ oc create -f service.sso.yaml
  5. Maven を使用して、OpenShift Container Platform へのデプロイメントを開始します。

    $ mvn clean fabric8:deploy -Popenshift -DskipTests \
          -DSSO_AUTH_SERVER_URL=$(oc get route secure-sso -o jsonpath='{"https://"}{.spec.host}{"/auth\n"}')

    このコマンドは、Fabric8 Maven プラグインを使用して OpenShift Container Platform で S2I プロセス を起動し、Pod を起動します。

このプロセスは、uberjar ファイルと OpenShift リソースを生成し、それらを OpenShift Container Platform サーバーの現在のプロジェクトにデプロイします。

13.6.7. Secured サンプルアプリケーション API エンドポイントへの認証

Secured のサンプルアプリケーションは、呼び出し元が認証および認可されている場合に GET リクエストを受け入れるデフォルトの HTTP エンドポイントを提供します。クライアントは最初に Red Hat SSO サーバーに対して認証を行い、認証手順によって返されるアクセストークンを使用してセキュアなサンプルアプリケーションに対して GET リクエストを実行します。

13.6.7.1. Secured サンプルアプリケーション API エンドポイントの取得

クライアントを使用して例を操作する場合は、PROJECT_ID サービスである Secured サンプルアプリケーションエンドポイントを指定する必要があります。

前提条件

  • Secured のサンプルアプリケーションがデプロイされ、実行します。
  • oc クライアントが認証されました。

手順

  1. 端末アプリケーションで、oc get routes コマンドを実行します。

    以下の表の出力例を以下に示します。

    例13.1 セキュアなエンドポイントの一覧

    名前ホスト/ポートパスサービスポート終了

    secure-sso

    secure-sso-myproject.LOCAL_OPENSHIFT_HOSTNAME

     

    secure-sso

    (すべて)

    passthrough

    PROJECT_ID

    PROJECT_ID-myproject.LOCAL_OPENSHIFT_HOSTNAME

     

    PROJECT_ID

    (すべて)

     

    sso

    sso-myproject.LOCAL_OPENSHIFT_HOSTNAME

     

    sso

    (すべて)

     

    上記の例では、エンドポイントは http://PROJECT_ID-myproject.LOCAL_OPENSHIFT_HOSTNAME になります。PROJECT_ID は、developers.redhat.com/launch または Fabric8 Launcher ツールを使用してサンプルを生成する際に入力した名前に基づいています。

13.6.7.2. コマンドラインで HTTP リクエストの認証

HTTP POST リクエストを Red Hat SSO サーバーに送信してトークンをリクエストします。以下の例では、CLI ツール jq を使用して JSON 応答からトークン値を抽出します。

前提条件

手順

  1. curl、認証情報、<SSO_AUTH_SERVER_URL> でアクセストークンをリクエストし、jq コマンドを使用して応答からトークンを展開します。

    curl -sk -X POST https://<SSO_AUTH_SERVER_URL>/auth/realms/master/protocol/openid-connect/token \
      -d grant_type=password \
      -d username=alice\
      -d password=password \
      -d client_id=demoapp \
      -d client_secret=1daa57a2-b60e-468b-a3ac-25bd2dc2eadc \
      | jq -r '.access_token'
    
    eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJRek1nbXhZMUhrQnpxTnR0SnkwMm5jNTNtMGNiWDQxV1hNSTU1MFo4MGVBIn0.eyJqdGkiOiI0NDA3YTliNC04YWRhLTRlMTctODQ2ZS03YjI5MjMyN2RmYTIiLCJleHAiOjE1MDc3OTM3ODcsIm5iZiI6MCwiaWF0IjoxNTA3NzkzNzI3LCJpc3MiOiJodHRwczovL3NlY3VyZS1zc28tc3NvLWRlbW8uYXBwcy5jYWZlLWJhYmUub3JnL2F1dGgvcmVhbG1zL21hc3RlciIsImF1ZCI6ImRlbW9hcHAiLCJzdWIiOiJjMDE3NWNjYi0wODkyLTRiMzEtODI5Zi1kZGE4NzM4MTVmZTgiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJkZW1vYXBwIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiMDFjOTkzNGQtNmZmOS00NWYzLWJkNWUtMTU4NDI5ZDZjNDczIiwiYWNyIjoiMSIsImNsaWVudF9zZXNzaW9uIjoiMzM3Yzk0MTYtYTdlZS00ZWUzLThjZWQtODhlODI0MGJjNTAyIiwiYWxsb3dlZC1vcmlnaW5zIjpbIioiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbImJvb3N0ZXItYWRtaW4iXX0sInJlc291cmNlX2FjY2VzcyI6eyJzZWN1cmVkLWJvb3N0ZXItZW5kcG9pbnQiOnsicm9sZXMiOlsiYm9vc3Rlci1hZG1pbiJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsInZpZXctcHJvZmlsZSJdfX0sIm5hbWUiOiJBbGljZSBJbkNoYWlucyIsInByZWZlcnJlZF91c2VybmFtZSI6ImFsaWNlIiwiZ2l2ZW5fbmFtZSI6IkFsaWNlIiwiZmFtaWx5X25hbWUiOiJJbkNoYWlucyIsImVtYWlsIjoiYWxpY2VAa2V5Y2xvYWsub3JnIn0.mjmZe37enHpigJv0BGuIitOj-kfMLPNwYzNd3n0Ax4Nga7KpnfytGyuPSvR4KAG8rzkfBNN9klPYdy7pJEeYlfmnFUkM4EDrZYgn4qZAznP1Wzy1RfVRdUFi0-GqFTMPb37o5HRldZZ09QljX_j3GHnoMGXRtYW9RZN4eKkYkcz9hRwgfJoTy2CuwFqeJwZYUyXifrfA-JoTr0UmSUed-0NMksGrtJjjPggUGS-qOn6OgKcmN2vaVAQlxW32y53JqUXctfLQ6DhJzIMYTmOflIPy0sgG1mG7sovQhw1xTg0vTjdx8zQ-EJcexkj7IivRevRZsslKgqRFWs67jQAFQA

    <SSO_AUTH_SERVER_URL>secure-sso サービスの url です。

    通常、usernamepasswordclient_secret などの属性は秘密になりますが、上記のコマンドは通常、この例で提供されているデフォルトの認証情報をデモの目的で使用します。

    jq を使用してトークンを抽出しない場合は、curl コマンドのみを実行し、アクセストークンを手動で抽出できます。

    注記

    -sk オプションは curl に対し、自己署名証明書の失敗を無視します。実稼働環境ではこのオプションを使用しないでください。macOS では、curl バージョン 7.56.1 以降がインストールされている必要があります。また、OpenSSL でビルドする必要があります。

  1. Secured サービスを起動します。アクセス (ベアラー) トークンを HTTP ヘッダーに割り当てます。

    $ curl -v -H "Authorization: Bearer <TOKEN>" http://<SERVICE_HOST>/api/greeting
    
    {
        "content": "Hello, World!",
        "id": 2
    }

    例13.2 Access (Bearer) トークンが含まれる GET リクエストヘッダーのサンプル

    > GET /api/greeting HTTP/1.1
    > Host: <SERVICE_HOST>
    > User-Agent: curl/7.51.0
    > Accept: */*
    > Authorization: Bearer <TOKEN>

    <SERVICE_HOST> は、Secured サンプルエンドポイントの URL です。詳細は、「Secured サンプルアプリケーション API エンドポイントの取得」を参照してください。

  2. アクセストークンの署名を確認します。

    アクセストークンは JSON Web トークン であるため、JWT デバッガー を使用してデコードできます。

    1. Web ブラウザーで、JWT デバッガー の Web サイトに移動します。
    2. Algorithm ドロップダウンメニューから RS256 を選択します。

      注記

      選択後に Web フォームが更新されていて、Signature セクションに正しい RSASHA256(…) 情報が表示されていることを確認してください。そうでない場合は、HS256 に切り替えてから RS256 に戻ります。

    3. 上部のテキストボックスに以下のコンテンツを VERIFY SIGNATURE セクションに貼り付けます。

      -----BEGIN PUBLIC KEY-----
      MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoETnPmN55xBJjRzN/cs30OzJ9olkteLVNRjzdTxFOyRtS2ovDfzdhhO9XzUcTMbIsCOAZtSt8K+6yvBXypOSYvI75EUdypmkcK1KoptqY5KEBQ1KwhWuP7IWQ0fshUwD6jI1QWDfGxfM/h34FvEn/0tJ71xN2P8TI2YanwuDZgosdobx/PAvlGREBGuk4BgmexTOkAdnFxIUQcCkiEZ2C41uCrxiS4CEe5OX91aK9HKZV4ZJX6vnqMHmdDnsMdO+UFtxOBYZio+a1jP4W3d7J5fGeiOaXjQCOpivKnP2yU2DPdWmDMyVb67l8DRA+jh0OJFKZ5H2fNgE3II59vdsRwIDAQAB
      -----END PUBLIC KEY-----
      注記

      これは、Secured サンプルアプリケーションの Red Hat SSO サーバーデプロイメントからのマスターレルム公開鍵です。

    4. クライアント出力から Encoded されたボックスに token 出力を貼り付けます。

      Signature Verified 記号がデバッガーページに表示されます。

13.6.7.3. Web インターフェースを使用した HTTP リクエストの認証

セキュアなエンドポイントには、HTTP API の他に、対話する Web インターフェースも含まれます。

以下の手順は、セキュリティーの実施方法、認証方法、および認証トークンの使用方法を確認するためのものです。

前提条件

手順

  1. Web ブラウザーで、エンドポイント URL に移動します。
  2. 認証されていないリクエストを実行します。

    1. Invoke ボタンをクリックします。

      図13.1 認証されていないセキュアな Web インターフェース

      sso メイン

      サービスは、HTTP 401 Unauthorized ステータスコードで応答します。

      図13.2 未認証のエラーメッセージ

      SSO が認証されていない
  3. 認証されたリクエストをユーザーとして実行します。

    1. Login ボタンをクリックして Red Hat SSO に対して認証します。SSO サーバーにリダイレクトされます。
    2. Alice ユーザー としてログインします。Web インターフェースにリダイレクトされます。

      注記

      ページ下部のコマンドライン出力に、アクセス (ベアラー)トークンが表示されます。

      図13.3 認証されセキュリティーで保護されたサンプル Web インターフェース (アリスとして)

      sso alice
    3. 再度 Invoke をクリックして Greeting サービスにアクセスします。

      例外がなく、JSON 応答ペイロードが表示されていることを確認します。つまり、サービスはアクセス (ベアラー) トークンを許可し、Greeting サービスへのアクセスが認可されていることを意味します。

      図13.4 認証されたグリーティングリクエストの結果 (アリスとして)

      sso invoke alice
    4. ログアウト。
  4. 認証されたリクエストを管理者として実行します。

    1. Invoke ボタンをクリックします。

      認証されていないリクエストが Greeting サービスに送信されていることを確認します。

    2. Login ボタンをクリックして admin ユーザー としてログインします。

      図13.5 認証されたセキュアな Web インターフェースの例 (admin として)

      sso admin
  5. Invoke ボタンをクリックします。

    このサービスは、admin ユーザーが Greeting サービスへのアクセスが許可されていないため、HTTP 403 Forbidden ステータスコードで応答します。

    図13.6 承認されていないエラーメッセージ

    承認されていない SSO

13.6.8. Thorntail Secured のサンプルアプリケーション統合テストの実行

重要

Thorntail 向けの keycloak-authz-client ライブラリーは テクノロジープレビュー として提供されます。

本セクションでは、認証された oc クライアントから提供される Red Hat SSO サーバーを使用して統合テストを実行する方法を説明します。

前提条件

  • oc クライアントが認証されました。
手順

統合テストを実行すると、サンプルアプリケーションの既存インスタンスがすべてターゲット OpenShift プロジェクトから削除されます。サンプルアプリケーションが正しく削除されないようにするには、テストを実行するために別の OpenShift プロジェクトを作成して選択してください。

  1. 端末アプリケーションで、プロジェクトのディレクトリーに移動します。
  2. Red Hat SSO サーバーをデプロイします。

    oc apply -f service.sso.yaml
  3. Red Hat SSO サーバーの準備が整うまで待ちます。Web コンソールに移動するか、または oc get pods の出力を表示して、Pod が準備状態にあるかどうかを確認します。
  4. インテグレーションテストを実行します。Red Hat SSO サーバーの URL をパラメーターとして指定します。

    $ mvn clean verify -Popenshift,openshift-it -DSSO_AUTH_SERVER_URL=$(oc get route secure-sso -o jsonpath='{"https://"}{.spec.host}{"/auth\n"}')
  5. テストが完了したら、Red Hat SSO サーバーを削除します。

    oc delete -f service.sso.yaml

13.6.9. セキュアな SSO リソース

OAuth2 仕様の背後にある原則に関する追加情報や、Red Hat SSO および Keycloak を使用してアプリケーションのセキュリティーを保護する方法については、以下のリンクを参照してください。

13.7. Thorntail のキャッシュの例

重要

以下の例は、実稼働環境での実行を目的としていません。

制限: このサンプルアプリケーションは、Minishift または CDK で実行してください。また、手動のワークフローを使用して、この例を OpenShift Online Pro および OpenShift Container Platform にデプロイすることもできます。この例は、現在 OpenShift Online Starter では使用できません。

実行レベルの例: Advanced

キャッシュ例は、キャッシュを使用してアプリケーションの応答時間を長くする方法を示しています。

この例では、以下の方法を示しています。

  • キャッシュを OpenShift にデプロイします。
  • アプリケーション内でキャッシュを使用します。

13.7.1. キャッシュの仕組みおよび必要な場合

キャッシュを使用すると、特定の期間情報を保存し、アクセスすることができます。元のサービスを繰り返し呼び出すよりも、キャッシュの情報に迅速またはより確実にアクセスすることができます。キャッシュを使用する欠点は、キャッシュされた情報が最新ではないことです。ただし、キャッシュに保存されている各値に 有効期限 または TTL (time to live) に設定すると、この問題を軽減できます。

例13.3 キャッシュの例

service1 および service2 の 2 つのアプリケーションがあるとします。

  • Service1service2 からの値によって異なります。

    • service2 からの値が頻繁に変更されると、service1 は一定期間 service2 からの値をキャッシュする可能性があります。
    • キャッシュされた値を使用すると、service2 が呼び出される回数を減らすことができます。
  • service1service2 から直接値を取得するのに 500 ミリ秒かかるが、キャッシュされた値を取得するのに 100 ミリ秒かかる場合、service1 はキャッシュされた各呼び出しのキャッシュされた値を使用して 400 ミリ秒節約します。
  • service1service2 にキャッシュされていない呼び出しを 1 秒あたり 5 回、10 秒以上行うとすると、呼び出しは 50 になります。
  • 代わりに service1 が 1 秒の TTL でキャッシュされた値の使用を開始した場合は、10 秒で 10 コールに削減されます。

キャッシュの例の仕組み

  1. cache サービス、cute name サービス、および greeting サービスがデプロイされ、公開されます。
  2. ユーザーは greeting サービスの Web フロントエンドにアクセスします。
  3. ユーザーは、Web フロントエンドのボタンを使用して greeting HTTP API を呼び出します。
  4. greeting サービスは、cute name サービスの値によって異なります。

    • greeting サービスは、最初にその値が cache サービスに保存されているかどうかを確認します。これが存在する場合は、キャッシュされた値が返されます。
    • 値がキャッシュされていない場合、greeting サービスは cute name サービスを呼び出し、値を返し、その値を 5 秒の TTL で cache サービスに保存します。
  5. Web フロントエンドは、greeting サービスからの応答と、操作の合計時間を表示します。
  6. ユーザーはサービスを複数回呼び出し、キャッシュされた操作とキャッシュされていない操作の違いを確認します。

    • キャッシュされた操作は、キャッシュされていない操作よりもはるかに高速です。
    • ユーザーは、TTL の有効期限が切れる前にキャッシュを強制的に消去することができます。

13.7.2. キャッシュサンプルアプリケーションの OpenShift Online へのデプロイ

以下のオプションのいずれかを使用して、OpenShift Online で Cache サンプルアプリケーションを実行します。

各メソッドは、同じ oc コマンドを使用してアプリケーションをデプロイしますが、developers.redhat.com/launch を使用すると、oc コマンドを実行する自動デプロイメントワークフローが提供されます。

13.7.2.1. developers.redhat.com/launch を使用したサンプルアプリケーションのデプロイ

このセクションでは、REST API Level 0 のサンプルアプリケーションをビルドし、Red Hat Developer Launcher Web インターフェースから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. ブラウザーで developers.redhat.com/launch URL に移動します。
  2. 画面上の指示に従って、Thorntail でアプリケーションのサンプルを作成して起動します。

13.7.2.2. CLI クライアント oc の認証

oc コマンドラインクライアントを使用して OpenShift Online でアプリケーションのサンプルを使用するには、OpenShift Online の Web インターフェースによって提供されるトークンを使用してクライアントを認証する必要があります。

前提条件

手順

  1. ブラウザーで OpenShift Online URL に移動します。
  2. ユーザー名の横にある Web コンソールの右上にあるクエスチョンマークアイコンをクリックします。
  3. ドロップダウンメニューで Command Line Tools を選択します。
  4. oc login コマンドをコピーします。
  5. 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して CLI クライアント ocOpenShift Online アカウントで認証します。

    $ oc login OPENSHIFT_URL --token=MYTOKEN

13.7.2.3. CLI クライアント oc を使用したキャッシュサンプルアプリケーションのデプロイ

このセクションでは、キャッシュサンプルアプリケーションをビルドし、コマンドラインから OpenShift にデプロイする方法について説明します。

前提条件

手順

  1. GitHub からプロジェクトのクローンを作成します。

    $ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git

    もしくは、プロジェクトの ZIP ファイルをダウンロードして、展開します。

    $ unzip MY_PROJECT_NAME.zip
  2. 新規プロジェクトを作成します。

    $ oc new-project MY_PROJECT_NAME
  3. アプリケーションのルートディレクトリーに移動します。
  4. キャッシュサービスをデプロイします。

    $ oc apply -f service.cache.yml
    注記

    x86_64 以外のアーキテクチャーを使用している場合は、YAML ファイルで Red Hat Data Grid のイメージ名を、そのアーキテクチャー内の関連するイメージ名に更新します。たとえば、s390x アーキテクチャーの場合は、イメージ名をその IBM Z イメージ名 registry.access.redhat.com/jboss-datagrid-7/datagrid73-openj9-11-openshift-rhel8 に更新します。

  5. Maven を使用して OpenShift へのデプロイメントを開始します。

    $ mvn clean fabric8:deploy -Popenshift
  6. アプリケーションのステータスを確認し、Pod が実行していることを確認します。

    $ oc get pods -w
    NAME                             READY     STATUS      RESTARTS   AGE
    cache-server-123456789-aaaaa             1/1       Running     0          8m
    MY_APP_NAME-cutename-1-bbbbb       1/1       Running     0          4m
    MY_APP_NAME-cutename-s2i-1-build   0/1       Completed   0          7m
    MY_APP_NAME-greeting-1-ccccc       1/1       Running     0          3m
    MY_APP_NAME-greeting-s2i-1-build   0/1       Completed   0          3m

    3 つの Pod は完全にデプロイされ、起動されると Running のステータスがなければなりません。

  7. アプリケーションのサンプルをデプロイして起動すると、そのルートを決定します。

    ルート情報の例

    $ oc get routes
    NAME                 HOST/PORT                                                     PATH      SERVICES        PORT      TERMINATION
    MY_APP_NAME-cutename   MY_APP_NAME-cutename-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME             MY_APP_NAME-cutename   8080                    None
    MY_APP_NAME-greeting   MY_APP_NAME-greeting-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME             MY_APP_NAME-greeting   8080                    None

    Pod のルート情報には、アクセスに使用するベース URL が提供されます。上記の例では、http://MY_APP_NAME-greeting-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME を使用して greeting サービスにアクセスします。

13.7.3. Cache サンプルアプリケーションの Minishift または CDK へのデプロイ

以下のオプションのいずれかを使用して、Minishift または CDK でキャッシュサンプルアプリケーションをローカルで実行します。

各メソッドは、同じ oc コマンドを使用してアプリケーションをデプロイしますが、Fabric8 Launcher を使用すると oc コマンドを実行する自動デプロイメントワークフローが提供されます。

13.7.3.1. Fabric8 Launcher ツールの URL および認証情報の取得

Minishift または CDK にサンプルアプリケーションを作成してデプロイするには、Fabric8 Launcher ツール URL およびユーザー認証情報が必要です。この情報は、Minishift または CDK の開始時に提供されます。

前提条件

  • Fabric8 Launcher ツールがインストールされ、設定され、実行されている。

手順

  1. Minishift または CDK を起動したコンソールに移動します。
  2. 実行中の Fabric8 Launcher にアクセスするのに使用できる URL およびユーザー認証情報のコンソール出力を確認します。

    Minishift または CDK 起動時のコンソール出力の例

    ...
    -- Removing temporary directory ... OK
    -- Server Information ...
       OpenShift server started.
       The server is accessible via web console at:
           https://192.168.42.152:8443
    
       You are logged in as:
           User:     developer
           Password: developer
    
       To login as administrator:
           oc login -u system:admin

13.7.3.2. Fabric8 Launcher ツールを使用したサンプルアプリケーションのデプロイ

このセクションでは、REST API Level 0 サンプルアプリケーションをビルドし、Fabric8 Launcher Web インターフェースから OpenShift にデプロイする方法を説明します。

前提条件

手順

  1. ブラウザーで Fabric8 Launcher URL に移動します。
  2. 画面上の指示に従って、Thorntail でアプリケーションのサンプルを作成して起動します。

13.7.3.3. CLI クライアント oc の認証

oc コマンドラインクライアントを使用して Minishift または CDK でアプリケーションの例を使用するには、Minishift または CDK Web インターフェースが提供するトークンを使用してクライアントを認証する必要があります。

前提条件

手順

  1. ブラウザーで Minishift または CDK URL に移動します。
  2. ユーザー名の横にある Web コンソールの右上にあるクエスチョンマークアイコンをクリックします。
  3. ドロップダウンメニューで Command Line Tools を選択します。
  4. oc login コマンドをコピーします。
  5. 端末にコマンドを貼り付けます。このコマンドは、認証トークンを使用して、Minishift または CDK アカウントで CLI クライアント oc を認証します。

    $ oc login OPENSHIFT_URL --token=MYTOKEN

13.7.3.4. CLI クライアント oc を使用したキャッシュサンプルアプリケーションのデプロイ

このセクションでは、キャッシュサンプルアプリケーションをビルドし、コマンドラインから OpenShift にデプロイする方法について説明します。

前提条件

手順

  1. GitHub からプロジェクトのクローンを作成します。

    $ git clone git@github.com:USERNAME/MY_PROJECT_NAME.git

    もしくは、プロジェクトの ZIP ファイルをダウンロードして、展開します。

    $ unzip MY_PROJECT_NAME.zip
  2. 新規プロジェクトを作成します。

    $ oc new-project MY_PROJECT_NAME
  3. アプリケーションのルートディレクトリーに移動します。
  4. キャッシュサービスをデプロイします。

    $ oc apply -f service.cache.yml
    注記

    x86_64 以外のアーキテクチャーを使用している場合は、YAML ファイルで Red Hat Data Grid のイメージ名を、そのアーキテクチャー内の関連するイメージ名に更新します。たとえば、s390x アーキテクチャーの場合は、イメージ名をその IBM Z イメージ名 registry.access.redhat.com/jboss-datagrid-7/datagrid73-openj9-11-openshift-rhel8 に更新します。

  5. Maven を使用して OpenShift へのデプロイメントを開始します。

    $ mvn clean fabric8:deploy -Popenshift
  6. アプリケーションのステータスを確認し、Pod が実行していることを確認します。

    $ oc get pods -w
    NAME                             READY     STATUS      RESTARTS   AGE
    cache-server-123456789-aaaaa             1/1       Running     0          8m
    MY_APP_NAME-cutename-1-bbbbb       1/1       Running     0          4m
    MY_APP_NAME-cutename-s2i-1-build   0/1       Completed   0          7m
    MY_APP_NAME-greeting-1-ccccc       1/1       Running     0          3m
    MY_APP_NAME-greeting-s2i-1-build   0/1       Completed   0          3m

    3 つの Pod は完全にデプロイされ、起動されると Running のステータスがなければなりません。

  7. アプリケーションのサンプルをデプロイして起動すると、そのルートを決定します。

    ルート情報の例

    $ oc get routes
    NAME                 HOST/PORT                                                     PATH      SERVICES        PORT      TERMINATION
    MY_APP_NAME-cutename   MY_APP_NAME-cutename-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME             MY_APP_NAME-cutename   8080                    None
    MY_APP_NAME-greeting   MY_APP_NAME-greeting-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME             MY_APP_NAME-greeting   8080                    None

    Pod のルート情報には、アクセスに使用するベース URL が提供されます。上記の例では、http://MY_APP_NAME-greeting-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME を使用して greeting サービスにアクセスします。

13.7.4. キャッシュサンプルアプリケーションの OpenShift Container Platform へのデプロイ

サンプルアプリケーションを OpenShift Container Platform に作成し、デプロイするプロセスは OpenShift Online に似ています。

前提条件

手順

13.7.5. 未変更の Cache サンプルアプリケーションとの対話

デフォルトの Web インターフェースを使用して、未変更の Cache サンプルアプリケーションと対話し、頻繁にアクセスされるデータの保存方法により、サービスへのアクセスに必要な時間を短縮できます。

前提条件

  • アプリケーションがデプロイされている必要があります。

手順

  1. ブラウザーを使用して greeting サービスに移動します。
  2. サービスの起動 を一度クリックします。

    duration の値が 2000 を超えることに注意してください。また、キャッシュ状態がNo cached value から A value is cached になっていることに注意してください。

  3. 5 秒間待機し、キャッシュ状態が No cached value に戻されました。

    キャッシュされた値の TTL は 5 秒に設定されています。TTL の期限が切れると、値はキャッシュされなくなります。

  4. Invoke the service を一度クリックして、値をキャッシュします。
  5. キャッシュ状態が A value is cached になっている数秒の間に Invoke the service をさらに数回クリックします。

    キャッシュされた値を使用しているため、duration の値が大幅に低いことに注意してください。Clear the cache をクリックすると、キャッシュは空になります。

13.7.6. キャッシュサンプルアプリケーション統合テストの実行

このサンプルアプリケーションには、自己完結型の統合テストセットが含まれます。OpenShift プロジェクト内で実行する場合、テストは以下を行います。

  • アプリケーションのテストインスタンスをプロジェクトにデプロイします。
  • そのインスタンスで個別のテストを実行します。
  • テストが完了したら、プロジェクトからアプリケーションのすべてのインスタンスを削除します。
警告

統合テストを実行すると、サンプルアプリケーションの既存インスタンスがすべてターゲット OpenShift プロジェクトから削除されます。サンプルアプリケーションが正しく削除されないようにするには、テストを実行するために別の OpenShift プロジェクトを作成して選択してください。

前提条件

  • oc クライアントが認証されました。
  • 空の OpenShift プロジェクト

手順

次のコマンドを実行して統合テストを実行します。

$ mvn clean verify -Popenshift,openshift-it

13.7.7. リソースのキャッシュ

背景やキャッシュに関する詳細情報は、以下を参照してください。

付録A Source-to-Image (S2I) ビルドプロセス

Source-to-Image (S2I) は、アプリケーションソースのあるオンライン SCM リポジトリーから再現可能な Docker 形式のコンテナーイメージを生成するビルドツールです。S2I ビルドを使用すると、ビルド時間を短縮し、リソースとネットワークの使用量を減らし、セキュリティーを向上させ、その他の多くの利点を活用して、アプリケーションの最新バージョンを本番環境に簡単に配信できます。OpenShift は、複数の ビルドストラテジーおよび入力ソース をサポートします。

詳細は、OpenShift Container Platform ドキュメントの「Source-to-Image (S2I) ビルド」の章を参照してください。

最終的なコンテナーイメージをアセンブルするには、S2I プロセスに 3 つの要素を提供する必要があります。

  • GitHub などのオンライン SCM リポジトリーでホストされるアプリケーションソース。
  • S2I Builder イメージ (アセンブルされたイメージの基盤となり、アプリケーションが実行されているエコシステムを提供します)
  • 必要に応じて、S2I スクリプト によって使用される環境変数およびパラメーターを指定することもできます。

このプロセスは、S2I スクリプトで指定された指示に従ってアプリケーションソースと依存関係を Builder イメージに挿入し、アセンブルされたアプリケーションを実行する Docker 形式のコンテナーイメージを生成します。詳細は、OpenShift Container Platform ドキュメントの 「S2I build requirements」「build options」、および 「how builds work」を参照してください。

付録B サンプルアプリケーションのデプロイメント設定の更新

サンプルアプリケーションのデプロイメント設定には、ルート情報や Readiness プローブの場所など、OpenShift でのアプリケーションのデプロイおよび実行に関連する情報が含まれます。サンプルアプリケーションのデプロイメント設定は YAML ファイルのセットに保存されます。Fabric8 Maven プラグインを使用する例として、YAML ファイルは src/main/fabric8/ ディレクトリーにあります。Nodeshift を使用する例として、YAML ファイルは .nodeshift ディレクトリーにあります。

重要

Fabric8 Maven プラグインおよび Nodeshift が使用するデプロイメント設定ファイルは完全な OpenShift リソース定義である必要はありません。Fabric8 Maven プラグインと Nodeshift はどちらもデプロイメント設定ファイルを取り、不足している情報を追加して完全な OpenShift リソース定義を作成できます。Fabric8 Maven プラグインによって生成されたリソース定義は、target/classes/META-INF/fabric8/ ディレクトリーにあります。Nodeshift によって生成されるリソース定義は tmp/nodeshift/resource/ ディレクトリーにあります。

前提条件

  • 既存のサンプルプロジェクト。
  • CLI クライアント oc がインストールされている。

手順

  1. 既存の YAML ファイルを編集したり、設定を更新して追加の YAML ファイルを作成します。

    • たとえば、サンプルに readinessProbe が設定された YAML ファイルがすでにある場合は、path の値を別の利用可能なパスに変更し、Readiness の有無を確認することができます。

      spec:
        template:
          spec:
            containers:
              readinessProbe:
                httpGet:
                  path: /path/to/probe
                  port: 8080
                  scheme: HTTP
      ...
    • readinessProbe が既存の YAML ファイルで設定されていない場合は、readinessProbe 設定を使用して新規 YAML ファイルを同じディレクトリーに作成することもできます。
  2. Maven または npm を使用して、サンプルの更新バージョンをデプロイします。
  3. 設定更新が、デプロイ済みの例に表示されることを確認します。

    $ oc export all --as-template='my-template'
    
    apiVersion: template.openshift.io/v1
    kind: Template
    metadata:
      creationTimestamp: null
      name: my-template
    objects:
    - apiVersion: template.openshift.io/v1
      kind: DeploymentConfig
      ...
      spec:
        ...
        template:
          ...
          spec:
            containers:
              ...
              livenessProbe:
                failureThreshold: 3
                httpGet:
                  path: /path/to/different/probe
                  port: 8080
                  scheme: HTTP
                initialDelaySeconds: 60
                periodSeconds: 30
                successThreshold: 1
                timeoutSeconds: 1
              ...

参考情報

Web ベースのコンソール、または CLI クライアント oc を使用してアプリケーションの設定を直接更新した場合は、これらの変更を YAML ファイルへエクスポートして追加します。oc export all コマンドを使用して、デプロイされたアプリケーションの設定を表示します。

付録C Fabric8 Maven プラグインでアプリケーションをデプロイする Jenkins フリースタイルプロジェクトの設定

ローカルホストの Maven および Fabric8 Maven プラグインを使用してアプリケーションをデプロイするのと同様に、Jenkins を設定して Maven および Fabric8 Maven Plugin を使用してアプリケーションをデプロイすることができます。

前提条件

  • OpenShift クラスターへのアクセス
  • 同じ OpenShift クラスターで実行している いる Jenkins コンテナーイメージ
  • Jenkins サーバーに JDK および Maven がインストールされ、設定されている。
  • pom.xml の Maven、Fabric8 Maven Plugin、および Red Hat ベースイメージを使用するように設定されたアプリケーション。

    注記

    アプリケーションをビルドおよび OpenShift にデプロイする場合、Spring Boot 2.2 は OpenJDK 8 および OpenJDK 11 をベースとしたビルダーイメージのみをサポートします。Oracle JDK および OpenJDK 9 ビルダーイメージはサポートされていません。

    pom.xml の例

    <properties>
      ...
      <fabric8.generator.from>registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift:latest</fabric8.generator.from>
    </properties>

  • GitHub で利用可能なアプリケーションのソース。

手順

  1. アプリケーションの新規 OpenShift プロジェクトを作成します。

    1. OpenShift Web コンソールを開き、ログインします。
    2. Create Project をクリックし、新規 OpenShift プロジェクトを作成します。
    3. プロジェクト情報を入力し、Create をクリックします。
  2. Jenkins がそのプロジェクトにアクセスできるようにします。

    たとえば、Jenkins のサービスアカウントを設定した場合には、アカウントに、アプリケーションのプロジェクトへの edit アクセスがあることを確認してください。

  3. Jenkins サーバーで新しい フリースタイルの Jenkins プロジェクト を作成します。

    1. New Item をクリックします。
    2. 名前を入力し、Freestyle プロジェクト を選択して OK をクリックします。
    3. Source Code ManagementGit を選択し、アプリケーションの GitHub URL を追加します。
    4. BuildAdd build step を選択し、Invoke top-level Maven target を選択します。
    5. 以下を Goals に追加します。

      clean fabric8:deploy -Popenshift -Dfabric8.namespace=MY_PROJECT

      MY_PROJECT をアプリケーションの OpenShift プロジェクトの名前に置き換えます。

    6. Save をクリックします。
  4. Jenkins プロジェクトのメインページから Build Now をクリックし、アプリケーションの OpenShift プロジェクトへのアプリケーションのビルドおよびデプロイを確認します。

    アプリケーションの OpenShift プロジェクトでルートを開いて、アプリケーションがデプロイされていることを確認することもできます。

次のステップ

  • GITSCM ポーリング を追加すること、または the Poll SCM ビルドトリガー を使用することを検討してください。これらのオプションにより、新規コミットが GitHub リポジトリーにプッシュされるたびにビルドを実行できます。
  • デプロイ前にテストを実行するビルドステップを追加することを検討してください。

付録D Thorntail フラクションリファレンス

Thorntail フラクションで提供される設定プロパティーを使用する方法は、8章Thorntail アプリケーションの設定を参照してください。

D.1. Archaius

警告

このフラクションは非推奨となっています。

Maven コーディネート

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>archaius</artifactId>
</dependency>

D.2. Bean の検証

JSR 303 に従って、クラスレベルの制約と検証を提供します。

Maven コーディネート

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>bean-validation</artifactId>
</dependency>

D.3. CDI

JSR-299 に従って context および dependency-injection のサポートを提供します。

Maven コーディネート

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>cdi</artifactId>
</dependency>

Configuration

thorntail.cdi.development-mode
Weld にはアプリケーション開発の特別なモードが含まれています。開発モードを有効にすると、CDI アプリケーションの開発を容易にする特定の組み込みツールを利用できます。この属性を true に設定すると、開発モードが有効になります。
thorntail.cdi.non-portable-mode
True にすると、移植不可なモードが有効になります。CDI SPI を適切に使用せず、CDI 1.1 のより厳密な検証によって拒否されるレガシーアプリケーションの問題を解決するために仕様で提案されます。
thorntail.cdi.require-bean-descriptor
true の場合は、Bean 記述子ファイル (beans.xml) のない暗黙的 Bean アーカイブが Weld によって無視されます。
thorntail.cdi.thread-pool-size
Weld スレッドプールによって使用されるスレッドの数。プールは、CDI 対応のすべてのデプロイメントで共有され、主に並列の Weld ブートストラップに使用されます。

D.3.1. CDI の設定

Maven コーディネート

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>cdi-config</artifactId>
</dependency>

D.4. コネクター

JCA (JSR-322) などの高レベルのフラクションをサポートするために、主に内部フラクションが使用されます。

JCA サポートが必要な場合は、JCA フラクションのドキュメントを参照してください。

Maven コーディネート

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>connector</artifactId>
</dependency>

D.5. Container

Maven コーディネート

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>container</artifactId>
</dependency>

D.6. データソース

コンテナー管理のデータベース接続のサポートを提供します。

D.6.1. 自動検出可能なドライバー

アプリケーションに通常の依存関係に適切なベンダー JDBC ライブラリーが含まれる場合、これらのドライバーは追加の作業を行わずに Thorntail によって検出され、インストールされます。

データソースの定義時に使用できる検出可能なドライバーとそれらの driver-name の一覧は、以下のようになります。

データベースdriver-name

MySQL

mysql

PostgreSQL

postgresql

H2

h2

EnterpriseDB

edb

IBM DB2

ibmdb2

Oracle DB

oracle

Microsoft SQLServer

sqlserver

Sybase

sybase

Teiid

teiid

MariaDB

mariadb

Derby

derby

Hive2

hive2

PrestoDB

prestodb

D.6.2. データソース定義の例

D.6.2.1. MySQL

接続情報、基本のセキュリティー、および検証オプションが含まれる MySQL データソースの設定例

thorntail:
  datasources:
    data-sources:
      MyDS:
        driver-name: mysql
        connection-url: jdbc:mysql://localhost:3306/jbossdb
        user-name: admin
        password: admin
        valid-connection-checker-class-name: org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker
        validate-on-match: true
        background-validation: false
        exception-sorter-class-name: org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter

D.6.2.2. PostgreSQL

接続情報、基本のセキュリティー、および検証オプションが含まれる PostgreSQL データソースの設定例

thorntail:
  datasources:
    data-sources:
      MyDS:
        driver-name: postgresql
        connection-url: jdbc:postgresql://localhost:5432/postgresdb
        user-name: admin
        password: admin
        valid-connection-checker-class-name: org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker
        validate-on-match: true
        background-validation: false
        exception-sorter-class-name: org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter

D.6.2.3. Oracle

接続情報、基本のセキュリティー、および検証オプションが含まれる Oracle データソースの設定例

thorntail:
  datasources:
    data-sources:
      MyDS:
        driver-name: oracle
        connection-url: jdbc:oracle:thin:@localhost:1521:XE
        user-name: admin
        password: admin
        valid-connection-checker-class-name: org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker
        validate-on-match: true
        background-validation: false
        stale-connection-checker-class-name: org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker
        exception-sorter-class-name: org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter

Maven コーディネート

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>datasources</artifactId>
</dependency>

Configuration

thorntail.datasources.data-sources.KEY.allocation-retry
allocation retry 要素は、例外が発生する前に接続の割り当てを試行する回数を示します。
thorntail.datasources.data-sources.KEY.allocation-retry-wait-millis
allocation retry wait millis 要素は、接続の割り当てを再試行する間隔 (ミリ秒単位) を指定します。
thorntail.datasources.data-sources.KEY.allow-multiple-users
複数のユーザーが getConnection(user, password) メソッドを使用してデータソースにアクセスするかどうかを指定します。したがって、内部プールタイプがそれを考慮する必要があるかどうかを指定します。
thorntail.datasources.data-sources.KEY.authentication-context
プールの接続を区別するために使用される javax.security.auth.Subject を定義する Elytron 認証コンテキスト。
thorntail.datasources.data-sources.KEY.background-validation
バックグラウンドスレッドで接続を検証するか、または使用前に検証されることを指定する要素。この値は無効なデータソースでのみ可能です。変更しない場合はサーバーを再起動する必要があります。
thorntail.datasources.data-sources.KEY.background-validation-millis
background-validation-millis 要素はバックグラウンド検証を実行する時間 (ミリ秒単位) を指定します。この値は無効なデータソースでのみ可能です。変更しない場合はサーバーを再起動する必要があります。
thorntail.datasources.data-sources.KEY.blocking-timeout-wait-millis
blocking-timeout-millis 要素は、例外が発生する前に接続を待機している間にブロックする最大時間 (ミリ秒単位) を指定します。これは、接続のロックを待機している間のみブロックし、新しい接続の作成に異常に長い時間がかかる場合は例外を発生させないことに注意してください
thorntail.datasources.data-sources.KEY.capacity-decrementer-class
プールの接続をデクリメントするポリシーを定義するクラス
thorntail.datasources.data-sources.KEY.capacity-decrementer-properties
プールの接続をデクリメントするポリシーを定義するクラスに挿入されるプロパティー
thorntail.datasources.data-sources.KEY.capacity-incrementer-class
プールの接続をインクリメントするポリシーを定義するクラス
thorntail.datasources.data-sources.KEY.capacity-incrementer-properties
プールの接続をインクリメントするポリシーを定義するクラスに挿入されるプロパティー
thorntail.datasources.data-sources.KEY.check-valid-connection-sql
プール接続の有効性を確認する SQL ステートメントを指定します。これは、管理された接続がプールから取得されるときに呼び出されます
thorntail.datasources.data-sources.KEY.connectable
CMR の使用を有効にします。この機能は、ローカルリソースが確実に XA トランザクションに参加できることを意味します。
thorntail.datasources.data-sources.KEY.connection-listener-class
org.jboss.jca.adapters.jdbc.spi.listener.ConnectionListener を拡張する特定のクラス名。接続がアプリケーションに戻される前、またはプールに戻される前にアクションを実行するために、接続のアクティブ化とパッシベーションをリッスンする可能性を提供します。
thorntail.datasources.data-sources.KEY.connection-listener-property
connection-listener-class で指定されたクラスに挿入されるプロパティー
thorntail.datasources.data-sources.KEY.connection-properties.KEY.value
各 connection-property は、文字列の名前と値のペア、name 属性からのプロパティー名、および要素コンテンツからの値を指定します。
thorntail.datasources.data-sources.KEY.connection-url
JDBC ドライバー接続 URL
thorntail.datasources.data-sources.KEY.credential-reference
データソース上で認証する認証情報 (認証情報ストアから)
thorntail.datasources.data-sources.KEY.datasource-class
JDBC データソースクラスの完全修飾名。
thorntail.datasources.data-sources.KEY.driver-class
JDBC ドライバークラスの完全修飾名。
thorntail.datasources.data-sources.KEY.driver-name
データソースが使用する JDBC ドライバーを定義します。インストールされたドライバーに一致するシンボリック名になります。ドライバーが jar としてデプロイされている場合、名前はデプロイメントユニットの名前になります。
thorntail.datasources.data-sources.KEY.elytron-enabled
接続の認証の処理に Elytron セキュリティーを有効にします。指定されたコンテキストがない場合に、使用される Elytron の authentication-context が現在のコンテキストになります (authentication-context を参照)。
thorntail.datasources.data-sources.KEY.enabled
データソースを有効にする必要があるかどうかを指定します。この属性は、次のバージョンではランタイムはサポートされないことに注意してください。
thorntail.datasources.data-sources.KEY.enlistment-trace
WildFly/IronJacamar がエンリストメントトレースを記録する必要があるかどうかを定義します。
thorntail.datasources.data-sources.KEY.exception-sorter-class-name
例外がエラーをブロードキャストする必要があるかどうかを検証する isExceptionFatal(SQLException) メソッドを提供する org.jboss.jca.adapters.jdbc.ExceptionSorter
thorntail.datasources.data-sources.KEY.exception-sorter-properties
例外ソーターのプロパティー
thorntail.datasources.data-sources.KEY.flush-strategy
エラーの場合にプールをフラッシュする方法を指定します。
thorntail.datasources.data-sources.KEY.idle-timeout-minutes
idle-timeout-minutes 要素は、接続が閉じられるまでアイドル状態でいられる最大時間 (分単位) を指定します。実際の最大時間は、IdleRemover スキャン時間 (プールの最小 idle-timeout-minutes の半分) にも依存します。この値は無効なデータソースでのみ可能です。変更しない場合はサーバーを再起動する必要があります。
thorntail.datasources.data-sources.KEY.initial-pool-size
initial-pool-size 要素は、プールが保持する接続の初期数を示します。
thorntail.datasources.data-sources.KEY.jndi-name
データソースの JNDI 名を指定します。
thorntail.datasources.data-sources.KEY.jta
JTA 統合の有効化
thorntail.datasources.data-sources.KEY.max-pool-size
max-pool-size 要素は、プールの接続の最大数を指定します。各サブプールで接続は作成されません。
thorntail.datasources.data-sources.KEY.mcp
ManagedConnectionPool 実装を定義します (例: org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool)
thorntail.datasources.data-sources.KEY.min-pool-size
min-pool-size 要素は、プールの最小接続数を指定します。
thorntail.datasources.data-sources.KEY.new-connection-sql
接続が接続プールに追加されるたびに実行する SQL ステートメントを指定します。
thorntail.datasources.data-sources.KEY.password
新しい接続の作成時に使用されるパスワードを指定します。
thorntail.datasources.data-sources.KEY.pool-fair
プールの使用が公正かどうかを定義します
thorntail.datasources.data-sources.KEY.pool-prefill
プールが事前に入力されている必要があります。この値は無効なデータソースでのみ可能です。変更しない場合はサーバーを再起動する必要があります。
thorntail.datasources.data-sources.KEY.pool-use-strict-min
min-pool-size を厳格に考慮するかどうかを指定します。
thorntail.datasources.data-sources.KEY.prepared-statements-cache-size
LRU キャッシュの接続ごとに準備済みステートメントの数
thorntail.datasources.data-sources.KEY.query-timeout
設定したクエリーのタイムアウト (秒単位)。指定されない場合はタイムアウトが設定されません。
thorntail.datasources.data-sources.KEY.reauth-plugin-class-name
再認証プラグイン実装の完全修飾クラス名
thorntail.datasources.data-sources.KEY.reauth-plugin-properties
再認証プラグインのプロパティー
thorntail.datasources.data-sources.KEY.security-domain
プールの接続を区別するために使用される PicketBox javax.security.auth.Subject を定義する PicketBox セキュリティードメインを指定します。
thorntail.datasources.data-sources.KEY.set-tx-query-timeout
トランザクションがタイムアウトするまでの残り時間に基づいてクエリーのタイムアウトを設定するかどうか。トランザクションがない場合は、設定済みのクエリーのタイムアウトが使用されます。
thorntail.datasources.data-sources.KEY.share-prepared-statements
準備済みステートメントを共有するかどうか。つまり、クローズせずに同じステートメントを 2 回要求するかどうかは、同じ基礎となる準備済みステートメントを使用するかどうか。
thorntail.datasources.data-sources.KEY.spy
SQL ステートメントのスパイリングの有効化
thorntail.datasources.data-sources.KEY.stale-connection-checker-class-name
isStaleConnection(SQLException) メソッドを提供する org.jboss.jca.adapters.jdbc.StaleConnectionChecker は、true を返した場合に例外を org.jboss.jca.adapters.jdbc.StaleConnectionException にラップします。
thorntail.datasources.data-sources.KEY.stale-connection-checker-properties
古い接続チェッカープロパティー
thorntail.datasources.data-sources.KEY.statistics-enabled
ランタイム統計を有効にするかどうかを定義します。
thorntail.datasources.data-sources.KEY.track-statements
接続がプールに返されたときに、結果セットが閉じられたとき、ステートメントが閉じられたとき、または準備されたステートメントキャッシュに戻るときに、閉じられていないステートメントをチェックするかどうか。有効な値は、「false」(ステートメントを追跡しない)、「true」(ステートメントと結果セットを追跡し、閉じられていない場合に警告する)、「nowarn」(ステートメントを追跡するか閉じられていないことについて警告しない) です。
thorntail.datasources.data-sources.KEY.tracking
IronJacamar がトランザクション境界全体で接続ハンドルを追跡するかどうかを定義します。
thorntail.datasources.data-sources.KEY.transaction-isolation
java.sql.Connection トランザクション分離レベルを設定します。有効な値は、TRANSACTION_READ_UNCOMMITTED、TRANSACTION_READ_COMMITTED、TRANSACTION_REPEATABLE_READ、TRANSACTION_SERIALIZABLE、および TRANSACTION_NONE です。TransactionIsolation#customLevel を使用して customLevel を設定するには、さまざまな値が使用されます
thorntail.datasources.data-sources.KEY.url-delimiter
HA データソースの connection-url に URL の区切り文字を指定します。
thorntail.datasources.data-sources.KEY.url-selector-strategy-class-name
org.jboss.jca.adapters.jdbc.URLSelectorStrategy を実装するクラス
thorntail.datasources.data-sources.KEY.use-ccm
キャッシュされた接続マネージャーの使用を有効にします。
thorntail.datasources.data-sources.KEY.use-fast-fail
最初の試行で接続割り当てが失敗した場合に失敗するか (true)、プールがすべての潜在的な接続を使い果たすまで試行を続けるか (false)。
thorntail.datasources.data-sources.KEY.use-java-context
false に設定するとデータソースがグローバル JNDI にバインドされます。
thorntail.datasources.data-sources.KEY.use-try-lock
リソースアダプターオブジェクトの内部ロックの設定済みタイムアウト (秒単位)
thorntail.datasources.data-sources.KEY.user-name
新しい接続の作成時に使用されるユーザー名を指定します。
thorntail.datasources.data-sources.KEY.valid-connection-checker-class-name
isValidConnection(Connection) メソッドを提供して接続を検証する org.jboss.jca.adapters.jdbc.ValidConnectionChecker。接続が無効であることを示す例外が返される場合。これにより、check-valid-connection-sql 要素が上書きされます。
thorntail.datasources.data-sources.KEY.valid-connection-checker-properties
有効な接続チェッカープロパティー
thorntail.datasources.data-sources.KEY.validate-on-match
validate-on-match 要素は、接続ファクトリーが管理された接続の一致を試みたときに接続の検証を行う必要があるかどうかを指定します。これは、通常、バックグラウンド検証の使用に限定されます
thorntail.datasources.installed-drivers
ランタイムにインストールされている JDBC ドライバーの一覧
thorntail.datasources.jdbc-drivers.KEY.datasource-class-info
jdbc-driver の datasource-class および xa-datasource-class の使用可能なプロパティー
thorntail.datasources.jdbc-drivers.KEY.deployment-name
ドライバーが読み込まれたデプロイメントユニットの名前
thorntail.datasources.jdbc-drivers.KEY.driver-class-name
java.sql.Driver 実装の完全修飾クラスの名前
thorntail.datasources.jdbc-drivers.KEY.driver-datasource-class-name
javax.sql.DataSource 実装の完全修飾クラスの名前
thorntail.datasources.jdbc-drivers.KEY.driver-major-version
ドライバーのメジャーバージョン番号
thorntail.datasources.jdbc-drivers.KEY.driver-minor-version
ドライバーのマイナーバージョン番号
thorntail.datasources.jdbc-drivers.KEY.driver-module-name
ドライバーが読み込まれたモジュールの名前 (モジュールパスから読み込まれた場合)
thorntail.datasources.jdbc-drivers.KEY.driver-name
データソースが使用する JDBC ドライバーを定義します。インストールされたドライバーに一致するシンボリック名になります。ドライバーが jar としてデプロイされている場合、名前はデプロイメントユニットの名前になります。
thorntail.datasources.jdbc-drivers.KEY.driver-xa-datasource-class-name
javax.sql.XADataSource 実装の完全修飾クラスの名前
thorntail.datasources.jdbc-drivers.KEY.jdbc-compliant
ドライバーが JDBC に準拠しているかどうか
thorntail.datasources.jdbc-drivers.KEY.module-slot
ドライバーが読み込まれたモジュールのスロット (モジュールパスから読み込まれた場合)
thorntail.datasources.jdbc-drivers.KEY.profile
ドライバーが定義されているドメインプロファイル。スタンドアロンサーバーの場合の null
thorntail.datasources.jdbc-drivers.KEY.xa-datasource-class
XA データソースクラス
thorntail.datasources.xa-data-sources.KEY.allocation-retry
allocation retry 要素は、例外が発生する前に接続の割り当てを試行する回数を示します。
thorntail.datasources.xa-data-sources.KEY.allocation-retry-wait-millis
allocation retry wait millis 要素は、接続の割り当てを再試行する間隔 (ミリ秒単位) を指定します。
thorntail.datasources.xa-data-sources.KEY.allow-multiple-users
複数のユーザーが getConnection(user, password) メソッドを使用してデータソースにアクセスするかどうかを指定します。したがって、内部プールタイプがそれを考慮する必要があるかどうかを指定します。
thorntail.datasources.xa-data-sources.KEY.authentication-context
プールの接続を区別するために使用される javax.security.auth.Subject を定義する Elytron 認証コンテキスト。
thorntail.datasources.xa-data-sources.KEY.background-validation
バックグラウンドスレッドで接続を検証するか、または使用前に検証されることを指定する要素。
thorntail.datasources.xa-data-sources.KEY.background-validation-millis
background-validation-millis 要素はバックグラウンド検証を実行する時間 (ミリ秒単位) を指定します。
thorntail.datasources.xa-data-sources.KEY.blocking-timeout-wait-millis
blocking-timeout-millis 要素は、例外が発生する前に接続を待機している間にブロックする最大時間 (ミリ秒単位) を指定します。これは、接続のロックを待機している間のみブロックし、新しい接続の作成に異常に長い時間がかかる場合は例外を発生させないことに注意してください
thorntail.datasources.xa-data-sources.KEY.capacity-decrementer-class
プールの接続をデクリメントするポリシーを定義するクラス
thorntail.datasources.xa-data-sources.KEY.capacity-decrementer-properties
プール内の接続を減らすためのポリシーを定義するクラスに挿入するプロパティー
thorntail.datasources.xa-data-sources.KEY.capacity-incrementer-class
プールの接続をインクリメントするポリシーを定義するクラス
thorntail.datasources.xa-data-sources.KEY.capacity-incrementer-properties
プールの接続をインクリメントするポリシーを定義するクラスに挿入するプロパティー
thorntail.datasources.xa-data-sources.KEY.check-valid-connection-sql
プール接続の有効性を確認する SQL ステートメントを指定します。これは、管理された接続がプールから取得されるときに呼び出されます
thorntail.datasources.xa-data-sources.KEY.connectable
このデータソースの CMR の使用を有効にします。この機能は、ローカルリソースが確実に XA トランザクションに参加できることを意味します。
thorntail.datasources.xa-data-sources.KEY.connection-listener-class
org.jboss.jca.adapters.jdbc.spi.listener.ConnectionListener を拡張する特定のクラス名。接続がアプリケーションに戻される前、またはプールに戻される前にアクションを実行するために、接続のアクティブ化とパッシベーションをリッスンする可能性を提供します。
thorntail.datasources.xa-data-sources.KEY.connection-listener-property
connection-listener-class で指定されたクラスに挿入されるプロパティー
thorntail.datasources.xa-data-sources.KEY.credential-reference
データソース上で認証する認証情報 (認証情報ストアから)
thorntail.datasources.xa-data-sources.KEY.driver-name
データソースが使用する JDBC ドライバーを定義します。インストールされたドライバーに一致するシンボリック名になります。ドライバーが jar としてデプロイされている場合、名前はデプロイメントユニットの名前になります。
thorntail.datasources.xa-data-sources.KEY.elytron-enabled
リカバリーに対する接続の認証の処理に Elytron セキュリティーを有効にします。指定されたコンテキストがない場合に、使用される Elytron の authentication-context が現在のコンテキストになります (authentication-context を参照)。
thorntail.datasources.xa-data-sources.KEY.enabled
データソースを有効にする必要があるかどうかを指定します。この属性は、次のバージョンではランタイムはサポートされないことに注意してください。
thorntail.datasources.xa-data-sources.KEY.enlistment-trace
WildFly/IronJacamar がエンリストメントトレースを記録する必要があるかどうかを定義します。
thorntail.datasources.xa-data-sources.KEY.exception-sorter-class-name
例外がエラーをブロードキャストする必要があるかどうかを検証する isExceptionFatal(SQLException) メソッドを提供する org.jboss.jca.adapters.jdbc.ExceptionSorter
thorntail.datasources.xa-data-sources.KEY.exception-sorter-properties
例外ソーターのプロパティー
thorntail.datasources.xa-data-sources.KEY.flush-strategy
エラーの場合にプールをフラッシュする方法を指定します。
thorntail.datasources.xa-data-sources.KEY.idle-timeout-minutes
idle-timeout-minutes 要素は、接続が閉じられるまでアイドル状態でいられる最大時間 (分単位) を指定します。実際の最大時間は、IdleRemover スキャン時間 (プールの最小 idle-timeout-minutes の半分) にも依存します。この値は無効なデータソースでのみ可能です。変更しない場合はサーバーを再起動する必要があります。
thorntail.datasources.xa-data-sources.KEY.initial-pool-size
initial-pool-size 要素は、プールが保持する接続の初期数を示します。
thorntail.datasources.xa-data-sources.KEY.interleaving
XA 接続のインターリービングを有効にする要素
thorntail.datasources.xa-data-sources.KEY.jndi-name
データソースの JNDI 名を指定します。
thorntail.datasources.xa-data-sources.KEY.max-pool-size
max-pool-size 要素は、プールの接続の最大数を指定します。各サブプールで接続は作成されません。
thorntail.datasources.xa-data-sources.KEY.mcp
ManagedConnectionPool 実装を定義します (例: org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool)
thorntail.datasources.xa-data-sources.KEY.min-pool-size
min-pool-size 要素は、プールの最小接続数を指定します。
thorntail.datasources.xa-data-sources.KEY.new-connection-sql
接続が接続プールに追加されるたびに実行する SQL ステートメントを指定します。
thorntail.datasources.xa-data-sources.KEY.no-recovery
接続プールがリカバリーから除外されるべきであるかどうかを指定します。
thorntail.datasources.xa-data-sources.KEY.no-tx-separate-pool
Oracle では、XA 接続が JTA トランザクションの内部と外部の両方で使用されることは推奨されません。この問題を回避するには、異なるコンテキストに個別のサブプールを作成します。
thorntail.datasources.xa-data-sources.KEY.pad-xid
Xid がパディングされるべき。
thorntail.datasources.xa-data-sources.KEY.password
新しい接続の作成時に使用されるパスワードを指定します。
thorntail.datasources.xa-data-sources.KEY.pool-fair
プールの使用が公正かどうかを定義します
thorntail.datasources.xa-data-sources.KEY.pool-prefill
プールが事前に入力されている必要があります。この値は無効なデータソースでのみ可能です。変更しない場合はサーバーを再起動する必要があります。
thorntail.datasources.xa-data-sources.KEY.pool-use-strict-min
min-pool-size を厳格に考慮するかどうかを指定します。
thorntail.datasources.xa-data-sources.KEY.prepared-statements-cache-size
LRU キャッシュの接続ごとに準備済みステートメントの数
thorntail.datasources.xa-data-sources.KEY.query-timeout
設定したクエリーのタイムアウト (秒単位)。指定されない場合はタイムアウトが設定されません。
thorntail.datasources.xa-data-sources.KEY.reauth-plugin-class-name
再認証プラグイン実装の完全修飾クラス名
thorntail.datasources.xa-data-sources.KEY.reauth-plugin-properties
再認証プラグインのプロパティー
thorntail.datasources.xa-data-sources.KEY.recovery-authentication-context
プールの接続を区別するために使用される javax.security.auth.Subject を定義する Elytron 認証コンテキスト。
thorntail.datasources.xa-data-sources.KEY.recovery-credential-reference
データソース上で認証する認証情報 (認証情報ストアから)
thorntail.datasources.xa-data-sources.KEY.recovery-elytron-enabled
リカバリーに対する接続の認証の処理に Elytron セキュリティーを有効にします。指定されたコンテキストがない場合に、使用される Elytron の authentication-context が現在のコンテキストになります (authentication-context を参照)。
thorntail.datasources.xa-data-sources.KEY.recovery-password
リカバリーに使用されるパスワード
thorntail.datasources.xa-data-sources.KEY.recovery-plugin-class-name
リカバリープラグイン実装の完全修飾クラスの名前
thorntail.datasources.xa-data-sources.KEY.recovery-plugin-properties
リカバリープラグインのプロパティー
thorntail.datasources.xa-data-sources.KEY.recovery-security-domain
リカバリーに使用されるセキュリティードメイン
thorntail.datasources.xa-data-sources.KEY.recovery-username
リカバリーに使用されるユーザー名
thorntail.datasources.xa-data-sources.KEY.same-rm-override
is-same-rm-override 要素を使用すると、javax.transaction.xa.XAResource.isSameRM(XAResource) が true または false を返すかどうかを無条件で設定できます。
thorntail.datasources.xa-data-sources.KEY.security-domain
プールの接続を区別するために使用される javax.security.auth.Subject を定義する PicketBox セキュリティードメインを指定します。
thorntail.datasources.xa-data-sources.KEY.set-tx-query-timeout
トランザクションがタイムアウトするまでの残り時間に基づいてクエリーのタイムアウトを設定するかどうか。トランザクションがない場合は、設定済みのクエリーのタイムアウトが使用されます。
thorntail.datasources.xa-data-sources.KEY.share-prepared-statements
準備済みステートメントを共有するかどうか。つまり、クローズせずに同じステートメントを 2 回要求するかどうかは、同じ基礎となる準備済みステートメントを使用するかどうか。
thorntail.datasources.xa-data-sources.KEY.spy
SQL ステートメントのスパイリングの有効化
thorntail.datasources.xa-data-sources.KEY.stale-connection-checker-class-name
isStaleConnection(SQLException) メソッドを提供する org.jboss.jca.adapters.jdbc.StaleConnectionChecker は、true を返した場合に例外を org.jboss.jca.adapters.jdbc.StaleConnectionException にラップします。
thorntail.datasources.xa-data-sources.KEY.stale-connection-checker-properties
古い接続チェッカープロパティー
thorntail.datasources.xa-data-sources.KEY.statistics-enabled
ランタイム統計を有効にするかどうかを定義します。
thorntail.datasources.xa-data-sources.KEY.track-statements
接続がプールに返されたときに、結果セットが閉じられたとき、ステートメントが閉じられたとき、または準備されたステートメントキャッシュに戻るときに、閉じられていないステートメントをチェックするかどうか。有効な値は、「false」(ステートメントを追跡しない)、「true」(ステートメントと結果セットを追跡し、閉じられていない場合に警告する)、「nowarn」(ステートメントを追跡するか閉じられていないことについて警告しない) です。
thorntail.datasources.xa-data-sources.KEY.tracking
IronJacamar がトランザクション境界全体で接続ハンドルを追跡するかどうかを定義します。
thorntail.datasources.xa-data-sources.KEY.transaction-isolation
java.sql.Connection トランザクション分離レベルを設定します。有効な値は、TRANSACTION_READ_UNCOMMITTED、TRANSACTION_READ_COMMITTED、TRANSACTION_REPEATABLE_READ、TRANSACTION_SERIALIZABLE、および TRANSACTION_NONE です。TransactionIsolation#customLevel を使用して customLevel を設定するには、さまざまな値が使用されます。
thorntail.datasources.xa-data-sources.KEY.url-delimiter
HA データソースの connection-url に URL の区切り文字を指定します。
thorntail.datasources.xa-data-sources.KEY.url-property
xa-datasource-property 値の URL プロパティーのプロパティーを指定します。
thorntail.datasources.xa-data-sources.KEY.url-selector-strategy-class-name
org.jboss.jca.adapters.jdbc.URLSelectorStrategy を実装するクラス
thorntail.datasources.xa-data-sources.KEY.use-ccm
キャッシュされた接続マネージャーの使用を有効にします。
thorntail.datasources.xa-data-sources.KEY.use-fast-fail
最初の試行で接続割り当てが失敗した場合に失敗するか (true)、プールがすべての潜在的な接続を使い果たすまで試行を続けるか (false)。
thorntail.datasources.xa-data-sources.KEY.use-java-context
false に設定するとデータソースがグローバル JNDI にバインドされます。
thorntail.datasources.xa-data-sources.KEY.use-try-lock
リソースアダプターオブジェクトの内部ロックの設定済みタイムアウト (秒単位)
thorntail.datasources.xa-data-sources.KEY.user-name
新しい接続の作成時に使用されるユーザー名を指定します。
thorntail.datasources.xa-data-sources.KEY.valid-connection-checker-class-name
isValidConnection(Connection) メソッドを提供して接続を検証する org.jboss.jca.adapters.jdbc.ValidConnectionChecker。接続が無効であることを示す例外が返される場合。これにより、check-valid-connection-sql 要素が上書きされます。
thorntail.datasources.xa-data-sources.KEY.valid-connection-checker-properties
有効な接続チェッカープロパティー
thorntail.datasources.xa-data-sources.KEY.validate-on-match
validate-on-match 要素は、接続ファクトリーが管理された接続の一致を試みたときに接続の検証を行う必要があるかどうかを指定します。これは、通常、バックグラウンド検証の使用に限定されます
thorntail.datasources.xa-data-sources.KEY.wrap-xa-resource
XAResource インスタンスを org.jboss.tm.XAResourceWrapper インスタンスにラップする必要があります。
thorntail.datasources.xa-data-sources.KEY.xa-datasource-class
javax.sql.XADataSource 実装の完全修飾名
thorntail.datasources.xa-data-sources.KEY.xa-datasource-properties.KEY.value
XADataSource 実装クラスに割り当てるプロパティー値を指定します。各プロパティーは name 属性で識別され、プロパティー値は xa-datasource-property 要素コンテンツによって指定されます。このプロパティーは、プロパティー名の JavaBeans スタイルの getter メソッドを検索することで XADataSource 実装にマップされます。見つかった場合は、java.beans.PropertyEditor を使用して、要素テキストを true プロパティータイプに変換して JavaBeans セッターを使用してプロパティーの値が設定されます。
thorntail.datasources.xa-data-sources.KEY.xa-resource-timeout
値は XAResource.setTransactionTimeout() (秒単位) に渡されます。デフォルトはゼロです。
thorntail.ds.connection.url
デフォルトのデータソース接続 URL
thorntail.ds.name
デフォルトデータソースの名前
thorntail.ds.password
デフォルトのデータソース接続パスワード
thorntail.ds.username
デフォルトのデータソース接続ユーザー名
thorntail.jdbc.driver
デフォルトのデータソース JDBC ドライバー名

D.7. 検出

WildFly Discovery の内部フラクション。

Maven コーディネート

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>discovery</artifactId>
</dependency>

Configuration

thorntail.discovery.aggregate-providers.KEY.providers
このプロバイダーによって集約されるプロバイダーの一覧
thorntail.discovery.static-providers.KEY.services
このプロバイダーで設定されたサービスの一覧

D.8. EE

他の高レベルのフラクションをサポートするために使用される内部のフラクション。

EE フラクションは Java EE サポートの合計を 意味するものではありません

特定の Java EE テクノロジーが必要な場合は、jaxrscdidatasourcesejb などの個別に対応します。

Maven コーディネート

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>ee</artifactId>
</dependency>

Configuration

thorntail.ee.annotation-property-replacement
Jakarta EE アノテーションにプロパティー置換が適用されるかどうかを示すフラグ
thorntail.ee.context-services.KEY.jndi-name
コンテキストサービスを検索する JNDI 名。
thorntail.ee.context-services.KEY.use-transaction-setup-provider
トランザクション設定プロバイダーを使用するかどうかを示すフラグ
thorntail.ee.default-bindings-service.context-service
デフォルトの EE コンテキストサービスがある JNDI 名
thorntail.ee.default-bindings-service.datasource
デフォルトの EE データソースが見つかる JNDI 名
thorntail.ee.default-bindings-service.jms-connection-factory
デフォルトの EE JMS 接続ファクトリーが見つかる JNDI 名
thorntail.ee.default-bindings-service.managed-executor-service
デフォルトの EE Managed Executor Service が含まれる JNDI 名
thorntail.ee.default-bindings-service.managed-scheduled-executor-service
デフォルトの EE Managed Scheduled Executor Service が見つかる JNDI 名
thorntail.ee.default-bindings-service.managed-thread-factory
デフォルトの EE 管理スレッドファクトリーが見つかる JNDI 名
thorntail.ee.ear-subdeployments-isolated
.ear 内の各サブデプロイメントが同じ .ear 内の別のサブデプロイメントに属するクラスにアクセスできるかどうかを示すフラグ。false の値は、サブデプロイメントが .ear 内の他のサブデプロイメントに属するクラスを認識できることを意味します。
thorntail.ee.global-modules
すべてのデプロイメントで利用可能にする必要のあるモジュールの一覧。
thorntail.ee.jboss-descriptor-property-replacement
JBoss 固有のデプロイメント記述子にプロパティ置換が適用されるかどうかを示すフラグ
thorntail.ee.managed-executor-services.KEY.context-service
エクゼキューターが使用するコンテキストサービスの名前。
thorntail.ee.managed-executor-services.KEY.core-threads
エクゼキューターによって使用されるスレッドの最小数。定義されていない場合は、プロセッサーの数を基にしてデフォルトの core-size が算出されます。値をゼロにすることは推奨されておらず、場合によっては無効です。キューイングストラテジーの決定にこの値がどのように使用されるかは、queue-length 属性を参照してください。
thorntail.ee.managed-executor-services.KEY.hung-task-threshold
管理されたエグゼキューターサービスによってタスクがハングすると見なされるランタイム (ミリ秒単位)。値を 0 にすると、ハングしたと見なされません。
thorntail.ee.managed-executor-services.KEY.jndi-name
管理対象エグゼキューターサービスを検索する JNDI 名。
thorntail.ee.managed-executor-services.KEY.keepalive-time
スレッド数がコアより大きい場合は、アイドル状態のスレッドが新しいタスクを終了するまで待機する最大時間 (ミリ秒単位)。
thorntail.ee.managed-executor-services.KEY.long-running-tasks
フラグは、エグゼキューターによって実行されるタスクの期間を示します。
thorntail.ee.managed-executor-services.KEY.max-threads
エクゼキューターによって使用されるスレッドの最大数。未定義のままにすると、core-size からの値が使用されます。バインドされていないキューが使用される場合、この値は無視されます (この場合は core-threads のみが使用されます)。
thorntail.ee.managed-executor-services.KEY.queue-length
エグゼキューターのタスクキュー容量。長さ 0 は直接ハンドオフを意味し、拒否される可能性があります。未定義の長さ (デフォルト) または Integer.MAX_VALUE は、無制限のキューを使用する必要があることを示します。その他のすべての値は正確なキューサイズを指定します。無制限のキューまたは直接ハンドオフが使用される場合は、ゼロより大きい core-threads の値が必要になります。
thorntail.ee.managed-executor-services.KEY.reject-policy
中止されたタスクに適用するポリシー。
thorntail.ee.managed-executor-services.KEY.thread-factory
エクゼキューターによって使用されるスレッドファクトリーの名前。
thorntail.ee.managed-scheduled-executor-services.KEY.context-service
スケジュールされたエグゼキューターによって使用されるコンテキストサービスの名前。
thorntail.ee.managed-scheduled-executor-services.KEY.core-threads
(アイドル状態であっても) スケジュール済みエグゼキューターによって使用されるスレッドの数。これが定義されていない場合、または 0 に設定されている場合、コアプールサイズは利用可能なプロセッサーの数を基に計算されます。
thorntail.ee.managed-scheduled-executor-services.KEY.hung-task-threshold
スケジュールされたエグゼキューターによってハングしたと見なされるタスクの実行時間 (ミリ秒単位)。0にすると、タスクはハングしたと見なされません。
thorntail.ee.managed-scheduled-executor-services.KEY.jndi-name
管理対象スケジュール済みエグゼキューターサービスを検索する JNDI 名。
thorntail.ee.managed-scheduled-executor-services.KEY.keepalive-time
スレッド数がコアより大きい場合は、アイドル状態のスレッドが新しいタスクを終了するまで待機する最大時間 (ミリ秒単位)。
thorntail.ee.managed-scheduled-executor-services.KEY.long-running-tasks
スケジュールされたエグゼキューターによって実行されるタスク期間を示すフラグ。
thorntail.ee.managed-scheduled-executor-services.KEY.reject-policy
中止されたタスクに適用するポリシー。
thorntail.ee.managed-scheduled-executor-services.KEY.thread-factory
スケジュールされたエグゼキューターによって使用されるスレッドファクトリーの名前。
thorntail.ee.managed-thread-factories.KEY.context-service
管理対象スレッドファクトリーによって使用されるコンテキストサービスの名前。
thorntail.ee.managed-thread-factories.KEY.jndi-name
管理対象スレッドファクトリーを検索する JNDI 名。
thorntail.ee.managed-thread-factories.KEY.priority
ファクトリーによって作成されたスレッドに適用される優先順位
thorntail.ee.spec-descriptor-property-replacement
Jakarta EE 仕様によって定義された記述子にプロパティー置換が適用されるかどうかを示すフラグ。

D.8.1. EE セキュリティー

JSR 375 に従って Java EE Security API サポートを提供します。

Maven コーディネート

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>ee-security</artifactId>
</dependency>

D.9. EJB

Maven コーディネート

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>ejb</artifactId>
</dependency>

Configuration

thorntail.ejb3.allow-ejb-name-regex
true の場合は、インターセプターバインディングで正規表現を使用して、正規表現と一致するすべての Bean にインターセプターをマップできます。
thorntail.ejb3.application-security-domains.KEY.enable-jacc
JACC を使用した承認の有効化
thorntail.ejb3.application-security-domains.KEY.referencing-deployments
現在このマッピングを参照しているデプロイメント
thorntail.ejb3.application-security-domains.KEY.security-domain
マップされたセキュリティードメインを参照するデプロイメントによって使用される Elytron セキュリティードメイン
thorntail.ejb3.async-service.thread-pool-name
非同期呼び出しを処理するスレッドプールの名前
thorntail.ejb3.caches.KEY.aliases
このキャッシュも参照できるエイリアス。
thorntail.ejb3.caches.KEY.passivation-store
このキャッシュによって使用されるパッシベーションストア
thorntail.ejb3.client-interceptors
クライアントインターセプター定義。
thorntail.ejb3.cluster-passivation-stores.KEY.bean-cache
Bean インスタンスを保存するために使用されるキャッシュの名前。
thorntail.ejb3.cluster-passivation-stores.KEY.cache-container
Bean および client-mappings キャッシュに使用されるキャッシュコンテナーの名前
thorntail.ejb3.cluster-passivation-stores.KEY.client-mappings-cache
EJB リモーティングコネクターの socket-bindings の client-mappings を保存するために使用されるキャッシュの名前
thorntail.ejb3.cluster-passivation-stores.KEY.idle-timeout
idle-timeout-unit によって指定されたユニットのタイムアウト。その後 Bean はパッシベートされます。
thorntail.ejb3.cluster-passivation-stores.KEY.idle-timeout-unit
idle-timeout のユニット
thorntail.ejb3.cluster-passivation-stores.KEY.max-size
古い Bean をパッシベートするまでのこのキャッシュが保存する最大 Bean 数
thorntail.ejb3.cluster-passivation-stores.KEY.passivate-events-on-replicate
レプリケーションが Bean でパッシベーションイベントをトリガーするかどうかを示します。
thorntail.ejb3.default-clustered-sfsb-cache
デフォルトのステートフル Bean キャッシュの名前。デプロイメントまたは Bean レベルで上書きしない限り、すべてのクラスター化されたステートフル EJB に適用されます。
thorntail.ejb3.default-distinct-name
このサーバーにデプロイされたすべての EJB に適用されるデフォルトの固有名
thorntail.ejb3.default-entity-bean-instance-pool
デフォルトのエンティティー Bean インスタンスプールの名前。デプロイメントまたは Bean レベルでオーバーライドしない限り、すべてのエンティティー Bean に適用されます。
thorntail.ejb3.default-entity-bean-optimistic-locking
true エンティティー bean に設定すると、デフォルトで最適なロックが使用されます。
thorntail.ejb3.default-mdb-instance-pool
デフォルトの MDB インスタンスプールの名前。デプロイメントまたは Bean レベルでオーバーライドしない限り、すべての MDB に適用されます。
thorntail.ejb3.default-missing-method-permissions-deny-access
true に設定すると、セキュリティードメインが指定されている EJB のメソッド、またはセキュリティーメタデータを持つ他のメソッドには、他のセキュリティーメタデータが存在しない場合は暗黙的な @DenyAll が発生します。
thorntail.ejb3.default-resource-adapter-name
デプロイメントまたは Bean レベルで上書きされない限り、MDB によって使用されるデフォルトのリソースアダプター名の名前。
thorntail.ejb3.default-security-domain
Bean が明示的に指定しない場合に EJB に使用されるデフォルトのセキュリティードメイン
thorntail.ejb3.default-sfsb-cache
デフォルトのステートフル Bean キャッシュの名前。デプロイメントまたは Bean レベルで上書きしない限り、すべてのステートフル EJB に適用されます。
thorntail.ejb3.default-sfsb-passivation-disabled-cache
デフォルトのステートフル Bean キャッシュの名前。これはパッシベーションが無効になっているすべてのステートフル EJB に適用されます。それぞれのデプロイメントまたは EJB はこのキャッシュ名を任意でオーバーライドできます。
thorntail.ejb3.default-singleton-bean-access-timeout
シングルトン Bean のデフォルトのアクセスタイムアウト
thorntail.ejb3.default-slsb-instance-pool
デフォルトのステートレス Bean インスタンスプールの名前。デプロイメントまたは Bean レベルで上書きしない限り、すべてのステートレス EJB に適用されます。
thorntail.ejb3.default-stateful-bean-access-timeout
ステートフル Bean のデフォルトのアクセスタイムアウト
thorntail.ejb3.disable-default-ejb-permissions
この非推奨となった属性には影響がなく、今後のリリースで削除されます。false 値に設定されない可能性があります。
thorntail.ejb3.enable-graceful-txn-shutdown
txn の正常なシャットダウンを有効にすると、サーバーはアクティブな EJB 関連のトランザクションが完了するのを待ってから中断します。そのため、サーバーがクラスターで実行されていると、アクティブなトランザクションがすべて完了するまで、クラスターノードが ejb 要求を受信する可能性があります。この動作を回避するには、このタグを省略します。
thorntail.ejb3.enable-statistics
true に設定した場合は、呼び出し統計のコレクションを有効にします。「statistics-enabled」が優先され非推奨となったため
thorntail.ejb3.file-passivation-stores.KEY.groups-path
パッシベートされた Bean グループを格納する relative-to によって指定されたパス内のサブディレクトリー。
thorntail.ejb3.file-passivation-stores.KEY.idle-timeout
idle-timeout-unit によって指定されたユニットのタイムアウト。その後 Bean はパッシベートされます。
thorntail.ejb3.file-passivation-stores.KEY.idle-timeout-unit
idle-timeout のユニット
thorntail.ejb3.file-passivation-stores.KEY.max-size
古い Bean をパッシベートするまでのこのキャッシュが保存する最大 Bean 数
thorntail.ejb3.file-passivation-stores.KEY.relative-to
パッシベーション Bean の格納に使用されるルートパス
thorntail.ejb3.file-passivation-stores.KEY.sessions-path
パッシベートされた Bean を格納する relative-to によって指定されたパス内のサブディレクトリー。
thorntail.ejb3.file-passivation-stores.KEY.subdirectory-count
ディレクトリーごとに作成されるファイル数を最小限にするために、保存される状態を除算するサブディレクトリーの数を指定します。
thorntail.ejb3.identity-service.outflow-security-domains
確立されたアイデンティティーの送信を試みるセキュリティードメインへの参照
thorntail.ejb3.iiop-service.enable-by-default
true に設定すると、デフォルトで IIOP 経由で EJB が公開されます。それ以外の場合は、デプロイメント記述子で明示的に有効にする必要があります。
thorntail.ejb3.iiop-service.use-qualified-name
true にすると、EJB 名が名前の先頭にアプリケーションとモジュール名 (例: myapp/mymodule/MyEjb) を使用して命名サービスにバインドされます。
thorntail.ejb3.in-vm-remote-interface-invocation-pass-by-value
false に設定すると、EJB のリモートインターフェース上でのパラメーターは参照によって渡されます。それ以外の場合は、パラメーターは値によって渡されます。
thorntail.ejb3.log-system-exceptions
true の場合は、(アプリケーションではなく) すべての EJB システム例外がログに記録されます。EJB 仕様は、この動作を必須としていますが、例外が 2 回 (EJB で 1 回、および呼び出しコードによって 1 回) ログに記録されるため、推奨されません。
thorntail.ejb3.mdb-delivery-groups.KEY.active
このグループに属するすべての MDB の配信がアクティブであるかどうかを示します。
thorntail.ejb3.passivation-stores.KEY.bean-cache
Bean インスタンスを保存するために使用されるキャッシュの名前。
thorntail.ejb3.passivation-stores.KEY.cache-container
Bean および client-mappings キャッシュに使用されるキャッシュコンテナーの名前
thorntail.ejb3.passivation-stores.KEY.max-size
古い Bean をパッシベートするまでのこのキャッシュが保存する最大 Bean 数
thorntail.ejb3.remote-service.channel-creation-options.KEY.type
チャネル作成オプションのタイプ
thorntail.ejb3.remote-service.channel-creation-options.KEY.value
EJB リモートチャネル作成オプションの値
thorntail.ejb3.remote-service.cluster
クラスター内の EJB リモーティングコネクターの socket-binding の client-mappings の保存/アクセスに使用されるクラスター化されたキャッシュコンテナーの名前
thorntail.ejb3.remote-service.connector-ref
EJB3 リモーティングチャンネルが登録されるコネクターの名前。
thorntail.ejb3.remote-service.execute-in-worker
true の場合、EJB リクエストは IO サブシステムワーカーで実行されます。そうでない場合は、EJB スレッドプールにディスパッチされます。
thorntail.ejb3.remote-service.thread-pool-name
リモート呼び出しを処理するスレッドプールの名前
thorntail.ejb3.remoting-profiles.KEY.exclude-local-receiver
このプロファイルでローカルレシーバーが使用されていない場合
thorntail.ejb3.remoting-profiles.KEY.local-receiver-pass-by-value
設定されていると、ローカルのレシーバーが ejb Bean を値で渡します。
thorntail.ejb3.remoting-profiles.KEY.remoting-ejb-receivers.KEY.channel-creation-options.KEY.type
チャネル作成オプションのタイプ
thorntail.ejb3.remoting-profiles.KEY.remoting-ejb-receivers.KEY.channel-creation-options.KEY.value
EJB リモートチャネル作成オプションの値
thorntail.ejb3.remoting-profiles.KEY.remoting-ejb-receivers.KEY.connect-timeout
リモーティング EJB レシーバーの接続タイムアウト
thorntail.ejb3.remoting-profiles.KEY.remoting-ejb-receivers.KEY.outbound-connection-ref
ejb レシーバーによって使用されるアウトバウンド接続の名前
thorntail.ejb3.remoting-profiles.KEY.static-ejb-discovery
EJB の静的検出設定を説明します。
thorntail.ejb3.server-interceptors
サーバーインターセプター定義。
thorntail.ejb3.statistics-enabled
true に設定した場合は、呼び出し統計のコレクションを有効にします。
thorntail.ejb3.strict-max-bean-instance-pools.KEY.derive-size
最大プールサイズを導出する必要があるかどうか、およびその導出元を指定します。未定義の値 (または未定義に変換される非推奨の値「none」) は、max-pool-size の明示的な値が使用されることを示します。「from-worker-pools」 の値は、最大プールサイズはシステム上で設定されたすべてのワーカープールの合計スレッドのサイズから派生する必要があることを示しています。「from-cpu-count」の値は、最大プールサイズはシステムで利用可能なプロセッサーの合計数から派生する必要があることを示しています。計算は 1 対 1 のマッピングではないので、値は他の要因によって拡張される場合もあります。
thorntail.ejb3.strict-max-bean-instance-pools.KEY.derived-size
プールが特定の時点で保持できる Bean インスタンスの導出された最大数
thorntail.ejb3.strict-max-bean-instance-pools.KEY.max-pool-size
プールが特定の時点に保持できる Bean インスタンスの最大数の設定
thorntail.ejb3.strict-max-bean-instance-pools.KEY.timeout
プールから bean インスタンスを利用できるまで待機する最大時間。
thorntail.ejb3.strict-max-bean-instance-pools.KEY.timeout-unit
インスタンス取得タイムアウト単位
thorntail.ejb3.thread-pools.KEY.active-count
タスクをアクティブに実行しているスレッドのおおよその数。
thorntail.ejb3.thread-pools.KEY.completed-task-count
実行を完了したタスクのおおよその総数。
thorntail.ejb3.thread-pools.KEY.core-threads
最大プールサイズよりも小さいコアスレッドプールサイズ。定義されていない場合、コアスレッドプールサイズは最大スレッドプールサイズと同じです。
thorntail.ejb3.thread-pools.KEY.current-thread-count
プールの現在のスレッド数。
thorntail.ejb3.thread-pools.KEY.keepalive-time
アイドル時にスレッドが実行し続ける期間を指定するために使用されます。指定しないと、スレッドはエグゼキューターがシャットダウンするまで実行します。
thorntail.ejb3.thread-pools.KEY.largest-thread-count
これまでにプールに同時に存在したスレッドの最大数。
thorntail.ejb3.thread-pools.KEY.max-threads
スレッドプールの最大サイズ。
thorntail.ejb3.thread-pools.KEY.name
スレッドプールの名前。
thorntail.ejb3.thread-pools.KEY.queue-size
キューのサイズ。
thorntail.ejb3.thread-pools.KEY.rejected-count
拒否されたタスクの数。
thorntail.ejb3.thread-pools.KEY.task-count
これまでに実行がスケジュールされたタスクのおおよその総数。
thorntail.ejb3.thread-pools.KEY.thread-factory
ワーカースレッドの作成に使用する特定のスレッドファクトリーの名前を指定します。定義しないと、適切なデフォルトスレッドファクトリーが使用されます。
thorntail.ejb3.timer-service.database-data-stores.KEY.allow-execution
このノードがタイマーの実行が許可されている場合。false の場合、タイマーがデータベースに追加され、別のノードが実行できます。更新間隔によっては、非常に短い遅延でタイマーを追加すると、別のノードが更新されるまで実行されないことに注意してください。
thorntail.ejb3.timer-service.database-data-stores.KEY.database
使用中のデータベースのタイプ。SQL はデータベースタイプごとにカスタマイズできます。
thorntail.ejb3.timer-service.database-data-stores.KEY.datasource-jndi-name
タイマーを永続化するために使用されるデータソース
thorntail.ejb3.timer-service.database-data-stores.KEY.partition
パーティション名。同じタイマーが複数のノードによって読み込まれないように、データベースを共有するすべてのノードに異なる値を設定する必要があります。
thorntail.ejb3.timer-service.database-data-stores.KEY.refresh-interval
基になるデータベースに対して設定されている現在のタイマーを更新する間隔。値が小さいほどタイマーの取得がより速くなりますが、データベースの負荷が増大します。
thorntail.ejb3.timer-service.default-data-store
永続タイマーに使用されるデフォルトのデータストア
thorntail.ejb3.timer-service.file-data-stores.KEY.path
永続的なタイマー情報を保存するディレクトリー
thorntail.ejb3.timer-service.file-data-stores.KEY.relative-to
タイマーデータストアの場所の解決に使用される相対パス
thorntail.ejb3.timer-service.thread-pool-name
タイマーサービス呼び出しの実行に使用されるスレッドプールの名前

D.9.1. EJB MDB

Message Driven Beans のサポートを提供します。

これを機能させるには、外部メッセージングサーバーのリソースアダプターをデプロイする必要があります。このリソースアダプターの名前は ejb3 サブシステムで設定する必要があります。リソースアダプターの接続ファクトリーが java:jboss/DefaultJMSConnectionFactory 以外の JNDI 名にバインドされている場合、JNDI 名は ee サブシステムで設定する必要があります。以下は例になります。

thorntail:
  # deploy AMQP resource adapter
  deployment:
    org.amqphub.jca:resource-adapter.rar:
  # configure the resource adapter
  resource-adapters:
    resource-adapters:
      # the resource adapter is called `default`
      default:
        archive: resource-adapter.rar
        transaction-support: NoTransaction
        connection-definitions:
          default:
            # the connection factory is bound to JNDI name `java:global/jms/default`
            jndi-name: java:global/jms/default
            class-name: org.jboss.resource.adapter.jms.JmsManagedConnectionFactory
            config-properties:
              ConnectionFactory:
                value: factory1
              UserName:
                value: username
              Password:
                value: password
              JndiParameters:
                value: "java.naming.factory.initial=org.apache.qpid.jms.jndi.JmsInitialContextFactory;connectionFactory.factory1=amqp://${env.MESSAGING_SERVICE_HOST:localhost}:${env.MESSAGING_SERVICE_PORT:5672}"
  # configure the `ejb3` and `ee` subsystems
  ejb3:
    default-resource-adapter-name: default
  ee:
    annotation-property-replacement: true
    default-bindings-service:
      jms-connection-factory: java:global/jms/default

Maven コーディネート

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>ejb-mdb</artifactId>
</dependency>

D.10. Elytron

Elytron は、Thorntail アプリケーションが実行されるディレクトリーに監査ログを生成できます。アプリケーションの project-defaults.yml ファイルに以下のセクションを追加します。

thorntail:
  elytron:
    file-audit-logs:
      local-audit:
        path: audit.log

クラウドなどの環境では、監査ファイルをグローバルに書き込み可能なディレクトリーに移動する必要がある場合があります。以下に例を示します。

thorntail:
  elytron:
    file-audit-logs:
      local-audit:
        path: /tmp/audit.log

Maven コーディネート

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>elytron</artifactId>
</dependency>

Configuration

thorntail.elytron.add-prefix-role-mappers.KEY.prefix
各ロールに追加する接頭辞。
thorntail.elytron.add-suffix-role-mappers.KEY.suffix
各ロールに追加する接尾辞。
thorntail.elytron.aggregate-evidence-decoders.KEY.evidence-decoders
集約する参照エビデンスデコーダー。
thorntail.elytron.aggregate-http-server-mechanism-factories.KEY.available-mechanisms
このファクトリーインスタンスから利用できる HTTP メカニズム。
thorntail.elytron.aggregate-http-server-mechanism-factories.KEY.http-server-mechanism-factories
集約する http サーバーファクトリー。
thorntail.elytron.aggregate-principal-decoders.KEY.principal-decoders
集約する参照プリンシパルデコーダー。
thorntail.elytron.aggregate-principal-transformers.KEY.principal-transformers
集約する参照プリンシパルトランスフォーマー。
thorntail.elytron.aggregate-providers.KEY.providers
集約する参照 Provider[] リソース。
thorntail.elytron.aggregate-realms.KEY.authentication-realm
認証手順に使用するセキュリティーレルムへの参照 (認証情報の取得または検証)。
thorntail.elytron.aggregate-realms.KEY.authorization-realm
認可手順 (ID の読み込み) の ID の読み込みに使用するセキュリティーレルムへの参照。
thorntail.elytron.aggregate-realms.KEY.authorization-realms
認可手順の ID の読み込みおよび属性の集計 (ID の読み込み) に使用する 1 つ以上のセキュリティーレルムへの参照。
thorntail.elytron.aggregate-realms.KEY.principal-transformer
認証の ID の読み込みと認可の ID の読み込み間で適用されるプリンシパルトランスフォーマーへの参照。
thorntail.elytron.aggregate-role-mappers.KEY.role-mappers
集約する参照ロールマッパー。
thorntail.elytron.aggregate-sasl-server-factories.KEY.available-mechanisms
すべてのフィルターが適用された後、このファクトリーで使用できる SASL メカニズム。
thorntail.elytron.aggregate-sasl-server-factories.KEY.sasl-server-factories
集約する参照 sasl サーバーファクトリー。
thorntail.elytron.aggregate-security-event-listeners.KEY.security-event-listeners
集約する参照されたセキュリティーイベントリスナーリソース。
thorntail.elytron.authentication-configurations.KEY.anonymous
匿名認証を有効にします。
thorntail.elytron.authentication-configurations.KEY.attribute-extends
拡張する以前に定義された認証設定。
thorntail.elytron.authentication-configurations.KEY.authentication-name
使用する認証名。
thorntail.elytron.authentication-configurations.KEY.authorization-name
使用する認可名。
thorntail.elytron.authentication-configurations.KEY.credential-reference
定義されたエイリアスまたはクリアテキストパスワードの CredentialStore に保存されている認証情報への参照。
thorntail.elytron.authentication-configurations.KEY.forwarding-mode
使用するセキュリティー ID 転送のタイプ。「authentication」が転送するモードは、プリンシパルと認証情報を転送します。「認可」モードでは、認可 ID が転送され、別の認証 ID が許可されます。
thorntail.elytron.authentication-configurations.KEY.host
使用するホスト。
thorntail.elytron.authentication-configurations.KEY.kerberos-security-factory
GSS kerberos 認証情報の取得に使用される kerberos セキュリティーファクトリーへの参照
thorntail.elytron.authentication-configurations.KEY.mechanism-properties
SASL 認証メカニズムの設定プロパティー。
thorntail.elytron.authentication-configurations.KEY.port
使用するポート。
thorntail.elytron.authentication-configurations.KEY.protocol
使用するプロトコル。
thorntail.elytron.authentication-configurations.KEY.realm
使用するレルム。
thorntail.elytron.authentication-configurations.KEY.sasl-mechanism-selector
SASL メカニズムセレクター文字列。
thorntail.elytron.authentication-configurations.KEY.security-domain
転送されたアイデンティティーを取得するためのセキュリティードメインへの参照。
thorntail.elytron.authentication-contexts.KEY.attribute-extends
以前に定義された拡張する認証コンテキスト。
thorntail.elytron.authentication-contexts.KEY.match-rules
この認証コンテキストの match-rules。
thorntail.elytron.caching-realms.KEY.maximum-age
項目がキャッシュ内に留まることができる時間 (ミリ秒単位)。
thorntail.elytron.caching-realms.KEY.maximum-entries
キャッシュに保持するエントリーの最大数。
thorntail.elytron.caching-realms.KEY.realm
キャッシュ可能なセキュリティーレルムへの参照。
thorntail.elytron.certificate-authorities.KEY.staging-url
実稼働前で使用する認証局の URL。
thorntail.elytron.certificate-authorities.KEY.url
認証局の URL。
thorntail.elytron.certificate-authority-accounts.KEY.alias
キーストアの認証局アカウントキーのエイリアス。エイリアスがキーストアに存在しない場合は、認証局アカウントキーが自動的に生成され、エイリアスの下に PrivateKeyEntry として保存されます。
thorntail.elytron.certificate-authority-accounts.KEY.certificate-authority
使用する認証局の名前。
thorntail.elytron.certificate-authority-accounts.KEY.contact-urls
認証局がこのアカウントに関連する問題について連絡できる URL の一覧。
thorntail.elytron.certificate-authority-accounts.KEY.credential-reference
認証局アカウントキーにアクセスする際に使用する認証情報。
thorntail.elytron.certificate-authority-accounts.KEY.key-store
認証局アカウントキーが含まれるキーストア。
thorntail.elytron.chained-principal-transformers.KEY.principal-transformers
チェーンする参照プリンシパルトランスフォーマー。
thorntail.elytron.client-ssl-contexts.KEY.active-session-count
現在のアクティブなセッションの数。
thorntail.elytron.client-ssl-contexts.KEY.cipher-suite-filter
有効な暗号スイートを指定するために適用するフィルター。
thorntail.elytron.client-ssl-contexts.KEY.key-manager
SSLContext 内で使用するキーマネージャーへの参照。
thorntail.elytron.client-ssl-contexts.KEY.protocols
有効なプロトコル。
thorntail.elytron.client-ssl-contexts.KEY.provider-name
使用するプロバイダーの名前。指定されていない場合、プロバイダーからのプロバイダーはすべて SSLContext に渡されます。
thorntail.elytron.client-ssl-contexts.KEY.providers
SSLContext の読み込みに使用する Provider[] を取得するプロバイダーの名前。
thorntail.elytron.client-ssl-contexts.KEY.ssl-sessions.KEY.application-buffer-size
SSLSession によって報告されるアプリケーションバッファーサイズ。
thorntail.elytron.client-ssl-contexts.KEY.ssl-sessions.KEY.cipher-suite
SSLSession によって報告される選択された暗号スイート。
thorntail.elytron.client-ssl-contexts.KEY.ssl-sessions.KEY.creation-time
SSLSession によって報告される作成時間。
thorntail.elytron.client-ssl-contexts.KEY.ssl-sessions.KEY.last-accessed-time
SSLSession によって報告された、最後にアクセスされた時間。
thorntail.elytron.client-ssl-contexts.KEY.ssl-sessions.KEY.local-certificates
SSLSession からのローカル証明書。
thorntail.elytron.client-ssl-contexts.KEY.ssl-sessions.KEY.local-principal
SSLSession によって報告されるローカルプリンシパル。
thorntail.elytron.client-ssl-contexts.KEY.ssl-sessions.KEY.packet-buffer-size
SSLSession によって報告されるパケットバッファーサイズ。
thorntail.elytron.client-ssl-contexts.KEY.ssl-sessions.KEY.peer-certificates
SSLSession からのピア証明書。
thorntail.elytron.client-ssl-contexts.KEY.ssl-sessions.KEY.peer-host
SSLSession によって報告されるピアホスト。
thorntail.elytron.client-ssl-contexts.KEY.ssl-sessions.KEY.peer-port
SSLSession によって報告されるピアポート。
thorntail.elytron.client-ssl-contexts.KEY.ssl-sessions.KEY.peer-principal
SSLSession によって報告されるピアプリンシパル。
thorntail.elytron.client-ssl-contexts.KEY.ssl-sessions.KEY.protocol
SSLSession によって報告されるプロトコル。
thorntail.elytron.client-ssl-contexts.KEY.ssl-sessions.KEY.valid
SSLSession によって報告されるセッションの有効性。
thorntail.elytron.client-ssl-contexts.KEY.trust-manager
SSLContext 内で使用するトラストマネージャーへの参照。
thorntail.elytron.concatenating-principal-decoders.KEY.joiner
参照されるプリンシパルデコーダーの結果に参加するために使用する文字列。
thorntail.elytron.concatenating-principal-decoders.KEY.principal-decoders
連結する参照プリンシパルデコーダー。
thorntail.elytron.configurable-http-server-mechanism-factories.KEY.available-mechanisms
このファクトリーインスタンスから利用できる HTTP メカニズム。
thorntail.elytron.configurable-http-server-mechanism-factories.KEY.filters
名前に基づいてメカニズムを有効化/無効化するために適用されるフィルタリング。
thorntail.elytron.configurable-http-server-mechanism-factories.KEY.http-server-mechanism-factory
ラップする http サーバーファクトリー。
thorntail.elytron.configurable-http-server-mechanism-factories.KEY.properties
http サーバーファクトリー呼び出しに渡されるカスタムプロパティー。
thorntail.elytron.configurable-sasl-server-factories.KEY.available-mechanisms
すべてのフィルターが適用された後、このファクトリーで使用できる SASL メカニズム。
thorntail.elytron.configurable-sasl-server-factories.KEY.filters
「or」を使用して結果を順次組み合わせて評価するフィルターの一覧。
thorntail.elytron.configurable-sasl-server-factories.KEY.properties
sasl サーバーファクトリー呼び出しに渡されるカスタムプロパティー。
thorntail.elytron.configurable-sasl-server-factories.KEY.protocol
メカニズムの作成時にファクトリーに渡されるべきプロトコル。
thorntail.elytron.configurable-sasl-server-factories.KEY.sasl-server-factory
ラップされる sasl サーバーファクトリー。
thorntail.elytron.configurable-sasl-server-factories.KEY.server-name
メカニズムの作成時にファクトリーに渡される必要があるサーバー名。
thorntail.elytron.constant-permission-mappers.KEY.permission-sets
割り当てるパーミッションセット。
thorntail.elytron.constant-permission-mappers.KEY.permissions
割り当てるパーミッション。
thorntail.elytron.constant-principal-decoders.KEY.constant
プリンシパルデコーダーが常に返す定数値。
thorntail.elytron.constant-principal-transformers.KEY.constant
この PrincipalTransformer が常に返す定数値。
thorntail.elytron.constant-realm-mappers.KEY.realm-name
返す定数レルムの名前。
thorntail.elytron.constant-role-mappers.KEY.roles
このロールマッパーによって返される定数ロール。
thorntail.elytron.credential-stores.KEY.create
認証情報ストアが存在しない場合にストレージを作成するかどうかを指定します。
thorntail.elytron.credential-stores.KEY.credential-reference
保護パラメーターの作成に使用する認証情報参照。
thorntail.elytron.credential-stores.KEY.implementation-properties
認証情報ストア実装固有のプロパティーのマップ。
thorntail.elytron.credential-stores.KEY.location
認証情報ストアストレージのファイル名。
thorntail.elytron.credential-stores.KEY.modifiable
認証情報ストアが変更可能であるかどうかを指定します。
thorntail.elytron.credential-stores.KEY.other-providers
認証情報ストア内で必要な JCA オブジェクトを作成できるプロバイダーを検索するために Providers を取得するサブシステム内に定義されたプロバイダーの名前。これは key-store ベースの CredentialStore にのみ有効です。これを指定しないと、代わりにプロバイダーのグローバル一覧が使用されます。
thorntail.elytron.credential-stores.KEY.provider-name
CredentialStoreSpi をインスタンス化するために使用するプロバイダーの名前。プロバイダーが指定されていない場合は、指定した「type」のインスタンスを作成できる、見つかった最初のプロバイダーが使用されます。
thorntail.elytron.credential-stores.KEY.providers
必要な CredentialStore タイプを作成できるプロバイダーを検索するために Providers を取得するサブシステム内に定義されたプロバイダーの名前。これを指定しないと、代わりにプロバイダーのグローバル一覧が使用されます。
thorntail.elytron.credential-stores.KEY.relative-to
ファイル名が相対する以前に定義されたパスへの参照。
thorntail.elytron.credential-stores.KEY.state
ランタイム時にこの認証情報ストアを表す基礎となるサービスの状態。
thorntail.elytron.credential-stores.KEY.type
クレデンシャルストアタイプ (例: KeyStoreCredentialStore)。
thorntail.elytron.custom-credential-security-factories.KEY.class-name
カスタムセキュリティーファクトリーの実装のクラス名。
thorntail.elytron.custom-credential-security-factories.KEY.configuration
カスタムセキュリティーファクトリーの任意のキー/値設定。
thorntail.elytron.custom-credential-security-factories.KEY.module
カスタムセキュリティーファクトリーの読み込みに使用するモジュール。
thorntail.elytron.custom-evidence-decoders.KEY.class-name
エビデンスデコーダーの完全修飾クラスの名前。
thorntail.elytron.custom-evidence-decoders.KEY.configuration
エビデンスデコーダーの任意のキー/値設定。
thorntail.elytron.custom-evidence-decoders.KEY.module
エビデンスデコーダーの読み込みに使用するモジュールの名前。
thorntail.elytron.custom-modifiable-realms.KEY.class-name
カスタムレルムの実装のクラス名。
thorntail.elytron.custom-modifiable-realms.KEY.configuration
カスタムレルムの任意のキー/値設定。
thorntail.elytron.custom-modifiable-realms.KEY.module
カスタムレルムの読み込みに使用するモジュール。
thorntail.elytron.custom-permission-mappers.KEY.class-name
パーミッションマッパーの完全修飾クラスの名前
thorntail.elytron.custom-permission-mappers.KEY.configuration
パーミッションマッパーへの任意のキー/値設定
thorntail.elytron.custom-permission-mappers.KEY.module
パーミッションマッパーの読み込みに使用するモジュールの名前
thorntail.elytron.custom-principal-decoders.KEY.class-name
プリンシパルデコーダーの完全修飾クラスの名前
thorntail.elytron.custom-principal-decoders.KEY.configuration
プリンシパルデコーダーへの任意のキー/値設定
thorntail.elytron.custom-principal-decoders.KEY.module
プリンシパルデコーダーの読み込みに使用するモジュールの名前
thorntail.elytron.custom-principal-transformers.KEY.class-name
カスタムプリンシパルトランスフォーマーの実装のクラス名。
thorntail.elytron.custom-principal-transformers.KEY.configuration
カスタムプリンシパルトランスフォーマーの任意のキー/値設定。
thorntail.elytron.custom-principal-transformers.KEY.module
カスタムプリンシパルトランスフォーマーの読み込みに使用するモジュール。
thorntail.elytron.custom-realm-mappers.KEY.class-name
RealmMapper の完全修飾クラスの名前
thorntail.elytron.custom-realm-mappers.KEY.configuration
RealmMapper への任意のキー/値設定
thorntail.elytron.custom-realm-mappers.KEY.module
RealmMapper の読み込みに使用するモジュールの名前
thorntail.elytron.custom-realms.KEY.class-name
カスタムレルムの実装のクラス名。
thorntail.elytron.custom-realms.KEY.configuration
カスタムレルムの任意のキー/値設定。
thorntail.elytron.custom-realms.KEY.module
カスタムレルムの読み込みに使用するモジュール。
thorntail.elytron.custom-role-decoders.KEY.class-name
RoleDecoder の完全修飾クラスの名前
thorntail.elytron.custom-role-decoders.KEY.configuration
RoleDecoder への任意のキー/値設定
thorntail.elytron.custom-role-decoders.KEY.module
RoleDecoder の読み込みに使用するモジュールの名前
thorntail.elytron.custom-role-mappers.KEY.class-name
RoleMapper の完全修飾クラスの名前
thorntail.elytron.custom-role-mappers.KEY.configuration
RoleMapper の任意のキー/値設定
thorntail.elytron.custom-role-mappers.KEY.module
RoleMapper の読み込みに使用するモジュールの名前
thorntail.elytron.custom-security-event-listeners.KEY.class-name
カスタムセキュリティーイベントリスナーの実装のクラス名。
thorntail.elytron.custom-security-event-listeners.KEY.configuration
カスタムセキュリティーイベントリスナーの任意のキー/値設定。
thorntail.elytron.custom-security-event-listeners.KEY.module
カスタムセキュリティーイベントリスナーの読み込みに使用するモジュール。
thorntail.elytron.default-authentication-context
すべてのデプロイメントに関連付けられるデフォルトの認証コンテキスト。
thorntail.elytron.default-ssl-context
デフォルトとしてグローバルに登録される必要がある SSLContext への参照。
thorntail.elytron.dir-contexts.KEY.authentication-context
LDAP サーバーに接続するためのログイン認証情報を取得する認証コンテキスト。authentication-level が「none」(匿名) の場合は省略できます。
thorntail.elytron.dir-contexts.KEY.authentication-level
使用する認証レベル (セキュリティーレベル/認証メカニズム)。SECURITY_AUTHENTICATION ('java.naming.security.authentication') 環境プロパティーに対応します。使用できる値は「none」、「simple」、sasl_mech です。ここで、sasl_mech は SASL メカニズム名のスペース区切りリストです。
thorntail.elytron.dir-contexts.KEY.connection-timeout
LDAP サーバーへの接続のタイムアウト (ミリ秒単位)。
thorntail.elytron.dir-contexts.KEY.credential-reference
LDAP サーバーを認証し、接続する認証情報参照。authentication-level が「none」(匿名) の場合は省略できます。
thorntail.elytron.dir-contexts.KEY.enable-connection-pooling
接続プールが有効になっているかどうかを示します。
thorntail.elytron.dir-contexts.KEY.module
クラスローディングベースとして使用されるモジュールの名前。
thorntail.elytron.dir-contexts.KEY.principal
LDAP サーバーを認証し、接続するプリンシパル。authentication-level が「none」(匿名) の場合は省略できます。
thorntail.elytron.dir-contexts.KEY.properties
DirContext の追加接続プロパティー。
thorntail.elytron.dir-contexts.KEY.read-timeout
LDAP 操作の読み取りタイムアウト (ミリ秒単位)。
thorntail.elytron.dir-contexts.KEY.referral-mode
参照に従わなければならない場合。
thorntail.elytron.dir-contexts.KEY.ssl-context
LDAP サーバーへの接続をセキュアにするために使用される ssl-context の名前。
thorntail.elytron.dir-contexts.KEY.url
接続 URL。
thorntail.elytron.disallowed-providers
プロバイダーの一覧は許可されず、providers 一覧から削除されます。
thorntail.elytron.file-audit-logs.KEY.attribute-synchronized
すべてのイベントが即時にディスクに同期されるかどうか。
thorntail.elytron.file-audit-logs.KEY.autoflush
すべてのイベントが即時にディスクにフラッシュされるかどうか (定義しないと、デフォルトで synchronized 値に設定されます)。
thorntail.elytron.file-audit-logs.KEY.format
監査イベントの記録に使用する形式。
thorntail.elytron.file-audit-logs.KEY.path
書き込まれるファイルのパス。
thorntail.elytron.file-audit-logs.KEY.relative-to
監査ログへの相対パス。
thorntail.elytron.filesystem-realms.KEY.encoded
アイデンティティー名をエンコード (Base32) そてファイル名に保存されるべきかどうか。
thorntail.elytron.filesystem-realms.KEY.levels
適用するディレクトリーハッシュのレベル数。
thorntail.elytron.filesystem-realms.KEY.path
レルムを含むファイルへのパス。
thorntail.elytron.filesystem-realms.KEY.relative-to
パスが相対的である事前定義されたパス。
thorntail.elytron.filtering-key-stores.KEY.alias-filter
KeyStore から返されるエイリアスに適用するフィルターは、返すエイリアスのコンマ区切りリスト、もしくは ALL:-alias1:-alias2 または NONE:+alias1:+alias2 形式のいずれかになります。
thorntail.elytron.filtering-key-stores.KEY.key-store
フィルターが設定された KeyStore の名前。
thorntail.elytron.filtering-key-stores.KEY.state
UP ランタイム操作以外の場合は、ランタイム時にこの KeyStore を表す基礎となるサービスの状態が利用できなくなります。
thorntail.elytron.final-providers
すべての既存のプロバイダーの後に登録する必要があるプロバイダーへの参照。
thorntail.elytron.http-authentication-factories.KEY.available-mechanisms
すべてのフィルターが適用された後にこの設定で使用できる HTTP メカニズム。
thorntail.elytron.http-authentication-factories.KEY.http-server-mechanism-factory
このリソースに関連付ける HttpServerAuthenticationMechanismFactory
thorntail.elytron.http-authentication-factories.KEY.mechanism-configurations
メカニズム固有の設定
thorntail.elytron.http-authentication-factories.KEY.security-domain
このリソースに関連付ける SecurityDomain
thorntail.elytron.identity-realms.KEY.attribute-name
このアイデンティティーに関連付けられている属性の名前。
thorntail.elytron.identity-realms.KEY.attribute-values
identity 属性に関連付けられた値。
thorntail.elytron.identity-realms.KEY.identity
セキュリティーレルムから利用できるアイデンティティーの名前。
thorntail.elytron.initial-providers
既存のすべてのプロバイダーより先に登録する必要のあるプロバイダーへの参照。
thorntail.elytron.jaspi-configurations.KEY.application-context
この構成が関連付けられるアプリケーションコンテキスト。すべてのアプリケーションコンテキストの場合は「*」。
thorntail.elytron.jaspi-configurations.KEY.description
この設定の説明。
thorntail.elytron.jaspi-configurations.KEY.layer
この設定が関連付けられるレイヤー (「*」の場合はすべてのレイヤー)
thorntail.elytron.jaspi-configurations.KEY.server-auth-modules
この設定の ServerAuthModule 定義の一覧。
thorntail.elytron.jdbc-realms.KEY.principal-query
特定のキータイプに基づいてユーザーを認証するために使用される認証クエリー。
thorntail.elytron.kerberos-security-factories.KEY.debug
認証情報を取得する JAAS ステップでデバッグロギングが有効になっている必要があります。
thorntail.elytron.kerberos-security-factories.KEY.fail-cache
前回失敗した場合にサーバー認証情報の取得を再試行するまでの秒数。
thorntail.elytron.kerberos-security-factories.KEY.mechanism-names
認証情報を使用できるメカニズム名。名前は OID に変換され、mechanism-oids 属性の OID と共に使用されます。
thorntail.elytron.kerberos-security-factories.KEY.mechanism-oids
認証情報を使用できるメカニズム OID。mechanism-names 属性の名前から派生した OID とともに使用されます。
thorntail.elytron.kerberos-security-factories.KEY.minimum-remaining-lifetime
キャッシュされた認証情報が再作成されるまでの残りの有効期間 (秒単位)。
thorntail.elytron.kerberos-security-factories.KEY.obtain-kerberos-ticket
KerberosTicket も取得して、資格情報に関連付ける必要があるか。これは、認証情報がサーバーに委譲される場合に true である必要があります。
thorntail.elytron.kerberos-security-factories.KEY.options
Krb5LoginModule 追加オプション。
thorntail.elytron.kerberos-security-factories.KEY.path
認証情報を取得するために読み込むキータブのパス。
thorntail.elytron.kerberos-security-factories.KEY.principal
KeyTab によって表されるプリンシパル
thorntail.elytron.kerberos-security-factories.KEY.relative-to
以前指定した別のパスの名前、またはシステムによって提供される標準的なパスの 1 つ。「relative-to」を指定すると、「path」属性の値は、この属性によって指定されたパスに対する相対値として処理されます。
thorntail.elytron.kerberos-security-factories.KEY.request-lifetime
新規作成された認証情報に要求する有効期間 (秒単位)。
thorntail.elytron.kerberos-security-factories.KEY.required
サービスの起動時に存在するために十分なプリンシパルが必要なキータブファイルか。
thorntail.elytron.kerberos-security-factories.KEY.server
サーバー側またはクライアント側を使用する場合
thorntail.elytron.kerberos-security-factories.KEY.wrap-gss-credential
生成された GSS 認証情報は、不適切な廃棄を防ぐためにラップする必要があるか。
thorntail.elytron.key-managers.KEY.algorithm
基礎となる KeyManagerFactory を作成するために使用するアルゴリズムの名前。
thorntail.elytron.key-managers.KEY.alias-filter
KeyStore から返されるエイリアスに適用するフィルターは、返すエイリアスのコンマ区切りリスト、もしくは ALL:-alias1:-alias2 または NONE:+alias1:+alias2 形式のいずれかになります。
thorntail.elytron.key-managers.KEY.credential-reference
KeyStore 項目を復号化する認証情報参照。(KeyStore のパスワードではありません)。
thorntail.elytron.key-managers.KEY.key-store
基礎となる KeyManagerFactory の初期化に使用する KeyStore への参照。
thorntail.elytron.key-managers.KEY.provider-name
基礎となる KeyManagerFactory を作成するために使用するプロバイダーの名前。
thorntail.elytron.key-managers.KEY.providers
基になる KeyManagerFactory の作成時に使用する Provider[] を取得するための参照。
thorntail.elytron.key-store-realms.KEY.key-store
このセキュリティーレルムをサポートするために使用される KeyStore への参照。
thorntail.elytron.key-stores.KEY.alias-filter
KeyStore から返されるエイリアスに適用するフィルターは、返すエイリアスのコンマ区切りリスト、もしくは ALL:-alias1:-alias2 または NONE:+alias1:+alias2 形式のいずれかになります。
thorntail.elytron.key-stores.KEY.attribute-synchronized
この KeyStore が最後に読み込まれた、または保存された時間。注記: 一部のプロバイダーは、KeyStore がアプリケーションサーバー内に読み込まれた後も更新の適用を続行する場合があります。
thorntail.elytron.key-stores.KEY.credential-reference
定義されたエイリアスまたはクリアテキストパスワードの CredentialStore に保存されている認証情報への参照。
thorntail.elytron.key-stores.KEY.loaded-provider
この KeyStore に使用されたプロバイダーに関する情報。
thorntail.elytron.key-stores.KEY.modified
KeyStore のインメモリー表現が最後に読み込まれまたは保存された後に変更されたかどうかを示します。注: 一部のプロバイダーでは、読み込みまたはストア呼び出しを行わなくても、更新が即時に行われる場合があります。
thorntail.elytron.key-stores.KEY.path
KeyStore ファイルへのパス。
thorntail.elytron.key-stores.KEY.provider-name
KeyStore の読み込みに使用するプロバイダーの名前。指定されたタイプの KeyStore を作成できる最初の Provider の検索を無効にします。
thorntail.elytron.key-stores.KEY.providers
検索するプロバイダーインスタンスの一覧を取得するために使用する必要があるプロバイダーへの参照。指定しないと、代わりにプロバイダーのグローバルリストが使用されます。
thorntail.elytron.key-stores.KEY.relative-to
このストアが相対するベースパス。
thorntail.elytron.key-stores.KEY.required
このファイルが、KeyStore サービスの開始時に存在している必要があるか。
thorntail.elytron.key-stores.KEY.size
KeyStore のエントリー数。
thorntail.elytron.key-stores.KEY.state
UP ランタイム操作以外の場合は、ランタイム時にこの KeyStore を表す基礎となるサービスの状態が利用できなくなります。
thorntail.elytron.key-stores.KEY.type
新規 KeyStore インスタンスの作成時に使用される KeyStore のタイプ。
thorntail.elytron.ldap-key-stores.KEY.alias-attribute
アイテムエイリアスが保存される LDAP 属性の名前。
thorntail.elytron.ldap-key-stores.KEY.certificate-attribute
証明書が保存される LDAP 属性の名前。
thorntail.elytron.ldap-key-stores.KEY.certificate-chain-attribute
証明書チェーンが保管される LDAP 属性の名前。
thorntail.elytron.ldap-key-stores.KEY.certificate-chain-encoding
証明書チェーンのエンコーディング。
thorntail.elytron.ldap-key-stores.KEY.certificate-type
証明書のタイプ。
thorntail.elytron.ldap-key-stores.KEY.dir-context
LDAP サーバーとの通信に使用される DirContext の名前。
thorntail.elytron.ldap-key-stores.KEY.filter-alias
エイリアス別に KeyStore のアイテムを取得するための LDAP フィルター。これが指定されていないと、デフォルト値は (alias_attribute={0}) になります。文字列「{0}」は検索されたエイリアスに置き換えられます。「alias_attribute」値は「alias-attribute」属性の値になります。
thorntail.elytron.ldap-key-stores.KEY.filter-certificate
証明書別に KeyStore のアイテムを取得するための LDAP フィルター。これを指定しないと、デフォルト値は (certificate_attribute={0}) になります。文字列「{0}」は検索されたエンコード済み証明書に置き換えられます。「certificate_attribute」は「certificate-attribute」属性の値になります。
thorntail.elytron.ldap-key-stores.KEY.filter-iterate
KeyStore のすべての項目を繰り返し処理するための LDAP フィルター。これが指定されていない場合、デフォルト値は (alias_attribute=*) になります。「alias_attribute」は「alias-attribute」属性の値になります。
thorntail.elytron.ldap-key-stores.KEY.key-attribute
鍵が保管される LDAP 属性の名前。
thorntail.elytron.ldap-key-stores.KEY.key-type
キーが LDAP 属性にシリアライズされる KeyStore のタイプ。
thorntail.elytron.ldap-key-stores.KEY.new-item-template
項目作成の設定。新しく作成されたキーストア項目の LDAP エントリーの表示方法を定義します。
thorntail.elytron.ldap-key-stores.KEY.search-path
検索されるキーストアアイテムが含まれる LDAP のパス。
thorntail.elytron.ldap-key-stores.KEY.search-recursive
LDAP 検索を再帰的にする必要がある場合。
thorntail.elytron.ldap-key-stores.KEY.search-time-limit
LDAP からキーストアアイテムを取得する時間制限。
thorntail.elytron.ldap-key-stores.KEY.size
アイテム/エイリアスの量で表した LDAP KeyStore のサイズ。
thorntail.elytron.ldap-key-stores.KEY.state
UP ランタイム操作以外の場合は、ランタイム時にこの KeyStore を表す基礎となるサービスの状態が利用できなくなります。
thorntail.elytron.ldap-realms.KEY.allow-blank-password
このレルムは、空白のパスワード直接検証をサポートしているか。空のパスワードの試行は拒否されます。
thorntail.elytron.ldap-realms.KEY.dir-context
LDAP サーバーに接続する設定。
thorntail.elytron.ldap-realms.KEY.direct-verification
このレルムは、認証中のアカウントとして LDAP に直接接続することで、認証情報の検証をサポートしますか。
thorntail.elytron.ldap-realms.KEY.identity-mapping
基礎となる LDAP サーバーの対応するエントリーにプリンシパルをマップする方法を定義する設定オプション。
thorntail.elytron.logical-permission-mappers.KEY.left
操作の左側に使用するパーミッションマッパーへの参照。
thorntail.elytron.logical-permission-mappers.KEY.logical-operation
パーミッションマッパーを組み合わせるために使用する論理操作。
thorntail.elytron.logical-permission-mappers.KEY.right
操作の右側に使用するパーミッションマッパーへの参照。
thorntail.elytron.logical-role-mappers.KEY.left
操作の左側で使用されるロールマッパーへの参照。
thorntail.elytron.logical-role-mappers.KEY.logical-operation
ロールマッパーマッピングで実行される論理操作。
thorntail.elytron.logical-role-mappers.KEY.right
操作の右側で使用されるロールマッパーへの参照。
thorntail.elytron.mapped-regex-realm-mappers.KEY.delegate-realm-mapper
パターンが一致しない場合に委譲する RealmMapper。委譲を指定しないと、ドメインのデフォルトのレルムが代わりに使用されます。ユーザー名がパターンに一致せず、委譲の realm-mapper が存在する場合は、delegate-realm-mapper の結果が realm-map 経由でマップされます。
thorntail.elytron.mapped-regex-realm-mappers.KEY.pattern
名前からレルムを抽出するために少なくとも 1 つのキャプチャーグループが含まれる必要がある正規表現。正規表現が複数のキャプチャーグループと一致する場合は、最初のキャプチャーグループが使用されます。
thorntail.elytron.mapped-regex-realm-mappers.KEY.realm-map
正規表現を使用して抽出したレルム名の定義レルム名へのマッピング。マッピングの値がマップにない場合、またはマッピングの結果の名前を持つレルムが特定のセキュリティードメインに存在しない場合は、デフォルトのレルムが使用されます。
thorntail.elytron.mapped-role-mappers.KEY.keep-mapped
「true」に設定すると、マッピングされたロールは、マッピングが定義されているすべてのロールを保持します。
thorntail.elytron.mapped-role-mappers.KEY.keep-non-mapped
「true」に設定すると、マッピングされたロールは、マッピングが定義されていないすべてのロールを保持します。
thorntail.elytron.mapped-role-mappers.KEY.role-map
ロールをマッピングするための文字列リストマップ。
thorntail.elytron.mechanism-provider-filtering-sasl-server-factories.KEY.available-mechanisms
すべてのフィルターが適用された後、このファクトリーで使用できる SASL メカニズム。
thorntail.elytron.mechanism-provider-filtering-sasl-server-factories.KEY.enabling
「true」に設定すると、フィルターのいずれかに一致しない限り、プロバイダーが読み込んだメカニズムは有効になりません。「false」に設定すると、逆の効果があります。
thorntail.elytron.mechanism-provider-filtering-sasl-server-factories.KEY.filters
プロバイダーのメカニズムを比較する際に適用するフィルターは、指定したすべての値がメカニズム/プロバイダーのペアと一致する場合にフィルターと一致します。
thorntail.elytron.mechanism-provider-filtering-sasl-server-factories.KEY.sasl-server-factory
この定義でラップされる sasl サーバーファクトリーへの参照。
thorntail.elytron.periodic-rotating-file-audit-logs.KEY.attribute-synchronized
すべてのイベントが即時にディスクに同期されるかどうか。
thorntail.elytron.periodic-rotating-file-audit-logs.KEY.autoflush
すべてのイベントが即時にディスクにフラッシュされるかどうか (定義しないと、デフォルトで synchronized 値に設定されます)。
thorntail.elytron.periodic-rotating-file-audit-logs.KEY.format
監査イベントの記録に使用する形式。
thorntail.elytron.periodic-rotating-file-audit-logs.KEY.path
書き込まれるファイルのパス。
thorntail.elytron.periodic-rotating-file-audit-logs.KEY.relative-to
監査ログへの相対パス。
thorntail.elytron.periodic-rotating-file-audit-logs.KEY.suffix
java.time.format.DateTimeFormatter によって認識できる形式の接尾辞文字列。ローテーションの期間は、接尾辞に基づいて自動的に算出されます。
thorntail.elytron.permission-sets.KEY.permissions
パーミッションセットのパーミッション。
thorntail.elytron.policies.KEY.custom-policy
カスタムポリシープロバイダー定義。
thorntail.elytron.policies.KEY.default-policy
使用されません。
thorntail.elytron.policies.KEY.jacc-policy
JACC および関連サービスをセットアップするポリシープロバイダー定義。
thorntail.elytron.properties-realms.KEY.attribute-synchronized
このレルムをサポートするプロパティーファイルが最後に読み込まれた時間。
thorntail.elytron.properties-realms.KEY.groups-attribute
アイデンティティーのグループメンバーシップ情報が含まれる必要がある、返された AuthorizationIdentity の属性の名前。
thorntail.elytron.properties-realms.KEY.groups-properties
ユーザーおよびそれらのグループが含まれるプロパティーファイル。
thorntail.elytron.properties-realms.KEY.users-properties
ユーザーおよびパスワードが含まれるプロパティーファイル。
thorntail.elytron.provider-http-server-mechanism-factories.KEY.available-mechanisms
このファクトリーインスタンスから利用できる HTTP メカニズム。
thorntail.elytron.provider-http-server-mechanism-factories.KEY.providers
ファクトリーを見つけるために使用するプロバイダー。指定されていない場合は、グローバルに登録されているプロバイダーのリストが使用されます。
thorntail.elytron.provider-loaders.KEY.argument
Provider がインスタンス化されるとき、コンストラクターに渡される引数。
thorntail.elytron.provider-loaders.KEY.class-names
読み込むプロバイダーの完全修飾クラスの名前。これは、サービスローダーがプロバイダーを検出した後に読み込まれ、重複はスキップされます。
thorntail.elytron.provider-loaders.KEY.configuration
初期化するためにプロバイダーに渡されるキー/値構成。
thorntail.elytron.provider-loaders.KEY.loaded-providers
このプロバイダーローダーによって読み込まれるプロバイダーの一覧。
thorntail.elytron.provider-loaders.KEY.module
プロバイダーの読み込み元となるモジュールの名前。
thorntail.elytron.provider-loaders.KEY.path
プロバイダーの初期化に使用するファイルのパス。
thorntail.elytron.provider-loaders.KEY.relative-to
設定ファイルのベースパス。
thorntail.elytron.provider-sasl-server-factories.KEY.available-mechanisms
すべてのフィルターが適用された後、このファクトリーで使用できる SASL メカニズム。
thorntail.elytron.provider-sasl-server-factories.KEY.providers
ファクトリーを見つけるために使用するプロバイダー。指定されていない場合は、グローバルに登録されているプロバイダーのリストが使用されます。
thorntail.elytron.regex-principal-transformers.KEY.pattern
置き換える名前の一部を見つけるために使用する正規表現。
thorntail.elytron.regex-principal-transformers.KEY.replace-all
一致したパターンのすべての出現箇所を置き換えるか、最初の出現箇所のみを置き換えるか。
thorntail.elytron.regex-principal-transformers.KEY.replacement
代替として使用する値。
thorntail.elytron.regex-validating-principal-transformers.KEY.match
true に設定すると、検証を成功させるには、指定のパターンに名前が一致する必要があります。false に設定すると、検証を成功させるには、指定のパターンに名前が一致しないようにする必要があります。
thorntail.elytron.regex-validating-principal-transformers.KEY.pattern
プリンシパルトランスフォーマーに使用する正規表現。
thorntail.elytron.register-jaspi-factory
Elytron JASPI ファクトリーをグローバルに登録する必要があるかどうか。
thorntail.elytron.sasl-authentication-factories.KEY.available-mechanisms
すべてのフィルターが適用された後にこの設定で使用できる SASL メカニズム。
thorntail.elytron.sasl-authentication-factories.KEY.mechanism-configurations
メカニズム固有の設定
thorntail.elytron.sasl-authentication-factories.KEY.sasl-server-factory
このリソースに関連付ける SaslServerFactory
thorntail.elytron.sasl-authentication-factories.KEY.security-domain
このリソースに関連付ける SecurityDomain
thorntail.elytron.security-domains.KEY.default-realm
このセキュリティードメインに含まれるデフォルトのレルム。
thorntail.elytron.security-domains.KEY.evidence-decoder
このドメインによって使用される EvidenceDecoder への参照。
thorntail.elytron.security-domains.KEY.outflow-anonymous
セキュリティドメインに送信する場合、送信が不可能であれば匿名 ID を使用する必要があるか。匿名のアウトフローは、そのドメインにすでに確立されているアイデンティティーをクリアする効果があります。
thorntail.elytron.security-domains.KEY.outflow-security-domains
このドメインからのセキュリティーアイデンティティーが自動的に送信するセキュリティードメインの一覧。
thorntail.elytron.security-domains.KEY.permission-mapper
このドメインによって使用される PermissionMapper への参照。
thorntail.elytron.security-domains.KEY.post-realm-principal-transformer
レルムが指定されたアイデンティティー名で操作した後に適用されるプリンシパルトランスフォーマーへの参照。
thorntail.elytron.security-domains.KEY.pre-realm-principal-transformer
レルムが選択される前に適用されるプリンシパルトランスフォーマーへの参照。
thorntail.elytron.security-domains.KEY.principal-decoder
このドメインによって使用される PrincipalDecoder への参照。
thorntail.elytron.security-domains.KEY.realm-mapper
このドメインによって使用される RealmMapper への参照。
thorntail.elytron.security-domains.KEY.realms
このセキュリティードメインに含まれるレルムの一覧。
thorntail.elytron.security-domains.KEY.role-mapper
このドメインによって使用される RoleMapper への参照。
thorntail.elytron.security-domains.KEY.security-event-listener
セキュリティーイベントのリスナーへの参照。
thorntail.elytron.security-domains.KEY.trusted-security-domains
このセキュリティードメインによって信頼されるセキュリティードメインの一覧。
thorntail.elytron.security-properties
設定するセキュリティープロパティー。
thorntail.elytron.server-ssl-contexts.KEY.active-session-count
現在のアクティブなセッションの数。
thorntail.elytron.server-ssl-contexts.KEY.authentication-optional
セキュリティードメインによるクライアント証明書の拒否は、接続を妨げません。クライアント証明書がセキュリティードメインによって拒否される場合に、フォールスルーが他の認証メカニズム (フォームログインなど) を使用できるようにします。セキュリティードメインが設定されている場合のみ有効です。
thorntail.elytron.server-ssl-contexts.KEY.cipher-suite-filter
有効な暗号スイートを指定するために適用するフィルター。
thorntail.elytron.server-ssl-contexts.KEY.final-principal-transformer
このメカニズムレルムに適用する最終のプリンシパルトランスフォーマー。
thorntail.elytron.server-ssl-contexts.KEY.key-manager
SSLContext 内で使用するキーマネージャーへの参照。
thorntail.elytron.server-ssl-contexts.KEY.maximum-session-cache-size
キャッシュの最大 SSL セッション数。デフォルト値の -1 は、JVM のデフォルト値を使用することを意味します。値がゼロの場合は無制限を意味します。
thorntail.elytron.server-ssl-contexts.KEY.need-client-auth
SSL ハンドシェイクでクライアント証明書を必要とする場合。信頼できるクライアント証明書がない接続 (trust-manager を参照) は拒否されます。
thorntail.elytron.server-ssl-contexts.KEY.post-realm-principal-transformer
レルムの選択後に適用するプリンシパルトランスフォーマー。
thorntail.elytron.server-ssl-contexts.KEY.pre-realm-principal-transformer
レルムが選択される前に適用するプリンシパルトランスフォーマー。
thorntail.elytron.server-ssl-contexts.KEY.protocols
有効なプロトコル。
thorntail.elytron.server-ssl-contexts.KEY.provider-name
使用するプロバイダーの名前。指定されていない場合、プロバイダーからのプロバイダーはすべて SSLContext に渡されます。
thorntail.elytron.server-ssl-contexts.KEY.providers
SSLContext の読み込みに使用する Provider[] を取得するプロバイダーの名前。
thorntail.elytron.server-ssl-contexts.KEY.realm-mapper
SSL 認証に使用するレルムマッパー。
thorntail.elytron.server-ssl-contexts.KEY.security-domain
SSL セッション確立中に認証に使用するセキュリティードメイン。
thorntail.elytron.server-ssl-contexts.KEY.session-timeout
SSL セッションのタイムアウト (秒単位)。デフォルト値の -1 は、JVM のデフォルト値を使用することを意味します。値がゼロの場合は無制限を意味します。
thorntail.elytron.server-ssl-contexts.KEY.ssl-sessions.KEY.application-buffer-size
SSLSession によって報告されるアプリケーションバッファーサイズ。
thorntail.elytron.server-ssl-contexts.KEY.ssl-sessions.KEY.cipher-suite
SSLSession によって報告される選択された暗号スイート。
thorntail.elytron.server-ssl-contexts.KEY.ssl-sessions.KEY.creation-time
SSLSession によって報告される作成時間。
thorntail.elytron.server-ssl-contexts.KEY.ssl-sessions.KEY.last-accessed-time
SSLSession によって報告された、最後にアクセスされた時間。
thorntail.elytron.server-ssl-contexts.KEY.ssl-sessions.KEY.local-certificates
SSLSession からのローカル証明書。
thorntail.elytron.server-ssl-contexts.KEY.ssl-sessions.KEY.local-principal
SSLSession によって報告されるローカルプリンシパル。
thorntail.elytron.server-ssl-contexts.KEY.ssl-sessions.KEY.packet-buffer-size
SSLSession によって報告されるパケットバッファーサイズ。
thorntail.elytron.server-ssl-contexts.KEY.ssl-sessions.KEY.peer-certificates
SSLSession からのピア証明書。
thorntail.elytron.server-ssl-contexts.KEY.ssl-sessions.KEY.peer-host
SSLSession によって報告されるピアホスト。
thorntail.elytron.server-ssl-contexts.KEY.ssl-sessions.KEY.peer-port
SSLSession によって報告されるピアポート。
thorntail.elytron.server-ssl-contexts.KEY.ssl-sessions.KEY.peer-principal
SSLSession によって報告されるピアプリンシパル。
thorntail.elytron.server-ssl-contexts.KEY.ssl-sessions.KEY.protocol
SSLSession によって報告されるプロトコル。
thorntail.elytron.server-ssl-contexts.KEY.ssl-sessions.KEY.valid
SSLSession によって報告されるセッションの有効性。
thorntail.elytron.server-ssl-contexts.KEY.trust-manager
SSLContext 内で使用するトラストマネージャーへの参照。
thorntail.elytron.server-ssl-contexts.KEY.use-cipher-suites-order
ローカルの暗号スイートの設定を反映する。
thorntail.elytron.server-ssl-contexts.KEY.want-client-auth
SSL ハンドシェイクでクライアント証明書を要求するため (必須ではありません)。セキュリティードメインが参照され、X509 エビデンスをサポートする場合は、これが自動的に true に設定されます。need-client-auth が設定されている場合に無視されます。
thorntail.elytron.server-ssl-contexts.KEY.wrap
返された SSLEngine インスタンス、SSLSocket インスタンス、および SSLServerSocket インスタンスをラップして、さらなる変更から保護する必要があるか。
thorntail.elytron.server-ssl-sni-contexts.KEY.default-ssl-context
SNI 情報がない場合や、いずれかのマッピングに一致しない場合に使用するコンテキスト
thorntail.elytron.server-ssl-sni-contexts.KEY.host-context-map
サーバー名と SSContext 間のマッピング
thorntail.elytron.service-loader-http-server-mechanism-factories.KEY.available-mechanisms
このファクトリーインスタンスから利用できる HTTP メカニズム。
thorntail.elytron.service-loader-http-server-mechanism-factories.KEY.module
ファクトリーを読み込むクラスローダーの取得に使用するモジュール。リソースを読み込むようにクラスローダーを指定しないと、代わりに使用されます。
thorntail.elytron.service-loader-sasl-server-factories.KEY.available-mechanisms
すべてのフィルターが適用された後、このファクトリーで使用できる SASL メカニズム。
thorntail.elytron.service-loader-sasl-server-factories.KEY.module
ファクトリーを読み込むクラスローダーの取得に使用するモジュール。リソースを読み込むようにクラスローダーを指定しないと、代わりに使用されます。
thorntail.elytron.simple-permission-mappers.KEY.mapping-mode
複数の一致が発生した場合に使用すべきマッピングモード。
thorntail.elytron.simple-permission-mappers.KEY.permission-mappings
定義されたパーミッションマッピング。
thorntail.elytron.simple-regex-realm-mappers.KEY.delegate-realm-mapper
パターンを使用して一致がない場合に委譲する RealmMapper。
thorntail.elytron.simple-regex-realm-mappers.KEY.pattern
名前からレルムを抽出するために少なくとも 1 つのキャプチャーグループが含まれる必要がある正規表現。正規表現が複数のキャプチャーグループと一致する場合は、最初のキャプチャーグループが使用されます。
thorntail.elytron.simple-role-decoders.KEY.attribute
直接ロールにマップするアイデンティティーの属性の名前。
thorntail.elytron.size-rotating-file-audit-logs.KEY.attribute-synchronized
すべてのイベントが即時にディスクにフラッシュされるかどうか (定義しないと、デフォルトで synchronized 値に設定されます)。
thorntail.elytron.size-rotating-file-audit-logs.KEY.autoflush
すべてのイベントがディスクに即座にフラッシュされるかどうか。
thorntail.elytron.size-rotating-file-audit-logs.KEY.format
監査イベントの記録に使用する形式。
thorntail.elytron.size-rotating-file-audit-logs.KEY.max-backup-index
ローテーション時のバックアップの最大ファイル数。
thorntail.elytron.size-rotating-file-audit-logs.KEY.path
書き込まれるファイルのパス。
thorntail.elytron.size-rotating-file-audit-logs.KEY.relative-to
監査ログへの相対パス。
thorntail.elytron.size-rotating-file-audit-logs.KEY.rotate-on-boot
ファイルの設定前にファイルをローテーションするかどうか。
thorntail.elytron.size-rotating-file-audit-logs.KEY.rotate-size
ファイルをローテーションするログファイルのサイズ。
thorntail.elytron.size-rotating-file-audit-logs.KEY.suffix
java.time.format.DateTimeFormatter のログファイル名の接尾辞として使用される日付の形式。この接尾辞は、ファイルのローテーションのタイミングを決定する際にロールを実行しません。
thorntail.elytron.syslog-audit-logs.KEY.format
監査イベントの記録に使用する形式。
thorntail.elytron.syslog-audit-logs.KEY.host-name
リモート syslog サーバーに送信されたすべてのイベントに組み込むホスト名。
thorntail.elytron.syslog-audit-logs.KEY.port
syslog サーバーのリッスンポート。
thorntail.elytron.syslog-audit-logs.KEY.reconnect-attempts
エンドポイントが閉じられる前に、syslog サーバーにメッセージを送信するために失敗した再接続試行の最大量。
thorntail.elytron.syslog-audit-logs.KEY.server-address
イベントを送信する syslog サーバーのサーバーアドレス。
thorntail.elytron.syslog-audit-logs.KEY.ssl-context
SSL_TCP トランスポートが使用される場合に syslog サーバーへの接続に使用する SSLContext。
thorntail.elytron.syslog-audit-logs.KEY.syslog-format
監査イベントの記述に使用される RFC 形式。
thorntail.elytron.syslog-audit-logs.KEY.transport
syslog サーバーへの接続に使用するトランスポート。
thorntail.elytron.token-realms.KEY.jwt
JWT/JWS 標準に基づいてセキュリティートークンを処理するトークンベースのレルムとともに使用されるトークンバリデーター。
thorntail.elytron.token-realms.KEY.oauth2-introspection
OAuth2 アクセストークンを処理し、OAuth2 Token Introspection 仕様 (RFC-7662) に準拠するエンドポイントを使用してトークンベースのレルムとともに使用されるトークンバリデーター。
thorntail.elytron.token-realms.KEY.principal-claim
プリンシパルの名前を取得するために使用される要求の名前。
thorntail.elytron.trust-managers.KEY.algorithm
基本となる TrustManagerFactory を作成するために使用するアルゴリズムの名前。
thorntail.elytron.trust-managers.KEY.alias-filter
KeyStore から返されるエイリアスに適用するフィルターは、返すエイリアスのコンマ区切りリスト、もしくは ALL:-alias1:-alias2 または NONE:+alias1:+alias2 形式のいずれかになります。
thorntail.elytron.trust-managers.KEY.certificate-revocation-list
トラストマネージャーへの証明書失効リストの確認を有効にします。
thorntail.elytron.trust-managers.KEY.key-store
基礎となる TrustManagerFactory の初期化に使用する KeyStore への参照。
thorntail.elytron.trust-managers.KEY.maximum-cert-path
OCSP チェックおよび CRL チェックの証明書パスに存在する可能性のある非自己発行の中間証明書の最大数。OCSP と CRL を設定しないと、この属性は有効ではありません。
thorntail.elytron.trust-managers.KEY.ocsp
トラストマネージャーへのオンライン証明書ステータスプロトコルの確認を有効にします。
thorntail.elytron.trust-managers.KEY.only-leaf-cert
リーフ証明書のみの失効ステータスをチェックするかどうか。
thorntail.elytron.trust-managers.KEY.provider-name
基礎となる TrustManagerFactory を作成するために使用するプロバイダーの名前。
thorntail.elytron.trust-managers.KEY.providers
基礎となる TrustManagerFactory の作成時に使用する Provider[] を取得するための参照。
thorntail.elytron.trust-managers.KEY.soft-fail
不明な OCSP 応答のある証明書を受け入れるべきかどうか。
thorntail.elytron.x500-attribute-principal-decoders.KEY.attribute-name
マップする X.500 属性の名前 (代わりに OID を使用して定義できます)
thorntail.elytron.x500-attribute-principal-decoders.KEY.convert
「true」に設定された場合は、プリンシパルがまだ X500Principal 変換を試行します。
thorntail.elytron.x500-attribute-principal-decoders.KEY.joiner
結合文字列
thorntail.elytron.x500-attribute-principal-decoders.KEY.maximum-segments
マップする属性の最大出現数。
thorntail.elytron.x500-attribute-principal-decoders.KEY.oid
マップする X.500 属性の OID (属性名を使用して定義できます)
thorntail.elytron.x500-attribute-principal-decoders.KEY.required-attributes
プリンシパルに存在する必要がある属性の属性名
thorntail.elytron.x500-attribute-principal-decoders.KEY.required-oids
プリンシパルに存在する必要がある属性の OID
thorntail.elytron.x500-attribute-principal-decoders.KEY.reverse
「true」に設定すると、属性値が処理され、逆の順序で返されます
thorntail.elytron.x500-attribute-principal-decoders.KEY.start-segment
マップする属性の 0 ベースの開始出現
thorntail.elytron.x509-subject-alt-name-evidence-decoders.KEY.alt-name-type
指定のエビデンスからデコードするサブジェクトの別名タイプ。使用できる値は、「rfc822Name」、「dNSName」、「directoryName」、「uniformResourceIdentifier」、「iPAddress」、「registeredID」です。
thorntail.elytron.x509-subject-alt-name-evidence-decoders.KEY.segment
マップするサブジェクトの別名の 0 ベースの出現。この属性は任意であり、指定の alt-name-type のサブジェクトの別名が複数ある場合にのみ使用されます。デフォルト値は 0 です。

D.11. Hibernate

Hibernate ORM を使用したアプリケーションのサポートと統合を提供します。これは、標準の JPA が十分ではなく、Hibernate 固有の機能が必要な場合に便利です。

Maven コーディネート

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>hibernate</artifactId>
</dependency>

D.11.1. Hibernate Validator

Hibernate Validator を使用したアプリケーションのサポートと統合を提供します。

Maven コーディネート

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>hibernate-validator</artifactId>
</dependency>

D.12. Hystrix

警告

このフラクションは非推奨となっています。

Maven コーディネート

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>hystrix</artifactId>
</dependency>

Configuration

thorntail.hystrix.collapser.default.maxRequestsInBatch
これがバッチ実行を実行する前にバッチで許可されるリクエストの最大数
thorntail.hystrix.collapser.default.requestCache.enabled
HystrixCollapser.execute() および HystrixCollapser.queue() 呼び出しに対して要求キャッシュが有効になっているかどうかを示します。
thorntail.hystrix.collapser.default.timerDelayInMilliseconds
実行がトリガーされるバッチの作成後のミリ秒数。
thorntail.hystrix.command.default.circuitBreaker.enabled
サーキットブレーカーを使用して健全性を追跡し、移動した場合に短期間サーキット要求を行うかどうかを決定します。
thorntail.hystrix.command.default.circuitBreaker.errorThresholdPercentage
サーキットがトリップオープンしてフォールバックロジックへの短絡要求を開始するエラー率
thorntail.hystrix.command.default.circuitBreaker.forceClosed
true にすると、エラー率に関係なく、強制的にサーキットブレーカーを閉じた状態にし、リクエストを許可します。
thorntail.hystrix.command.default.circuitBreaker.forceOpen
true にすると、サーキットブレーカーを強制敵にオープン (トリップされた) 状態にし、すべてのリクエストを拒否します。
thorntail.hystrix.command.default.circuitBreaker.requestVolumeThreshold
サーキットが切れるローリングウィンドウ内の最小リクエスト数
thorntail.hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds
サーキットをトリップした後、サーキットを再び閉じる必要があるかどうかを判断するための再試行を許可する前にリクエストを拒否する時間
thorntail.hystrix.command.default.execution.isolation.semaphore.maxConcurrentRequests
ExecutionIsolationStrategy.SEMAPHORE を使用している場合に、HystrixCommand.run() メソッドに許可される最大リクエスト数。
thorntail.hystrix.command.default.execution.isolation.strategy
分離ストラテジー (THREAD または SEMAPHORE)
thorntail.hystrix.command.default.execution.isolation.thread.interruptOnCancel
キャンセルの発生時に、HystrixCommand.run() の実行を中断すべきかどうかを示します。
thorntail.hystrix.command.default.execution.isolation.thread.interruptOnTimeout
タイムアウトが発生したときに、HystrixCommand.run() の実行を中断すべきかどうかを示します。
thorntail.hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds
呼び出し元がタイムアウトを監視し、コマンド実行から離れるまでのの時間 (ミリ秒単位)
thorntail.hystrix.command.default.execution.timeout.enabled
HystrixCommand.run()の実行にタイムアウトがあるかどうかを示します。
thorntail.hystrix.command.default.fallback.enabled
失敗または拒否が発生したときに、HystrixCommand.getFallback() への呼び出しを試行するかどうかを決定します。
thorntail.hystrix.command.default.fallback.isolation.semaphore.maxConcurrentRequests
ExecutionIsolationStrategy.SEMAPHORE を使用している場合に、HystrixCommand.getFallback() メソッドに許可される最大リクエスト数。
thorntail.hystrix.command.default.metrics.healthSnapshot.intervalInMilliseconds
正常性とエラーのパーセンテージを計算し、サーキットブレーカーのステータスに影響を与えるヘルススナップショットを取得できるようにするまでの待機時間 (ミリ秒)
thorntail.hystrix.command.default.metrics.rollingPercentile.bucketSize
バケットごとに保持される実行時間の最大数。
thorntail.hystrix.command.default.metrics.rollingPercentile.enabled
実行レイテンシーを追跡し、パーセントで計算するかどうかを示します。
thorntail.hystrix.command.default.metrics.rollingPercentile.numBuckets
rollingPercentile ウィンドウが分割されるバケットの数
thorntail.hystrix.command.default.metrics.rollingPercentile.timeInMilliseconds
パーセンタイル計算を可能にするために実行時間が保持されるローリングウィンドウの期間 (ミリ秒)
thorntail.hystrix.command.default.metrics.rollingStats.numBuckets
ローリング統計ウィンドウが分割されるバケットの数
thorntail.hystrix.command.default.metrics.rollingStats.timeInMilliseconds
統計のローリングウィンドウの長さ (ミリ秒単位)。これは、Hystrix が使用するサーキットブレーカーと公開のためのメトリックを保持する期間です。
thorntail.hystrix.command.default.requestCache.enabled
リクエストスコープのキャッシングによる重複排除機能を提供するために、HystrixCommand.getCacheKey() を HystrixRequestCache と共に使用する必要があるかどうかを示します
thorntail.hystrix.command.default.requestLog.enabled
HystrixCommand の実行とイベントを HystrixRequestLog ログに記録すべきかどうかを示します。
thorntail.hystrix.stream.path
ストリームのコンテキストパス
thorntail.hystrix.threadpool.default.allowMaximumSizeToDivergeFromCoreSize
maximumSize の設定を有効にすることができます
thorntail.hystrix.threadpool.default.coreSize
コアスレッドプールのサイズ
thorntail.hystrix.threadpool.default.keepAliveTimeMinutes
キープアライブ時間 (分単位)
thorntail.hystrix.threadpool.default.maxQueueSize
BlockingQueue 実装の最大キューサイズ
thorntail.hystrix.threadpool.default.maximumSize
thread-pool の最大サイズ
thorntail.hystrix.threadpool.default.metrics.rollingPercentile.numBuckets
ローリング統計ウィンドウが分割されるバケットの数
thorntail.hystrix.threadpool.default.metrics.rollingStats.timeInMilliseconds
統計のローリングウィンドウの長さ (ミリ秒単位)
thorntail.hystrix.threadpool.default.queueSizeRejectionThreshold
キューサイズの拒否しきい値 - maxQueueSize に達していなくても拒否される、人為的な最大キューサイズです。

D.13. Infinispan

Maven コーディネート

<dependency>
  <groupId>io.thorntail</groupId>
  <artifactId>infinispan</artifactId>
</dependency>

Configuration

thorntail.infinispan.cache-containers.KEY.aliases
このキャッシュコンテナーのエイリアスの一覧
thorntail.infinispan.cache-containers.KEY.async-operations-thread-pool.keepalive-time
アイドル時にスレッドが実行し続ける期間 (ミリ秒) を指定するために使用されます。指定しないと、スレッドはエグゼキューターがシャットダウンするまで実行します。
thorntail.infinispan.cache-containers.KEY.async-operations-thread-pool.max-threads
スレッドプールの最大サイズ。
thorntail.infinispan.cache-containers.KEY.async-operations-thread-pool.min-threads
最大プールサイズよりも小さいコアスレッドプールサイズ。定義されていない場合、コアスレッドプールサイズは最大スレッドプールサイズと同じです。
thorntail.infinispan.cache-containers.KEY.async-operations-thread-pool.queue-length
キューの長さ。
thorntail.infinispan.cache-containers.KEY.cache-manager-status
キャッシュマネージャーコンポーネントのステータス。キャッシュマネージャーが起動していない場合は、null を返す可能性があります。
thorntail.infinispan.cache-containers.KEY.caches.KEY.activations
キャッシュノードのアクティベーション (キャッシュストアからメモリーにノードを取り込む) の数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.average-read-time
キャッシュ読み取りの平均時間 (ミリ秒単位)。ヒットおよびミスの数が含まれます。
thorntail.infinispan.cache-containers.KEY.caches.KEY.average-remove-time
キャッシュの平均時間 (ミリ秒単位) は削除されます。
thorntail.infinispan.cache-containers.KEY.caches.KEY.average-replication-time
クラスター関連のデータを複製するのにかかった平均時間。
thorntail.infinispan.cache-containers.KEY.caches.KEY.average-write-time
キャッシュ書き込みの平均時間 (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.caches.KEY.evictions
キャッシュエビクション操作の数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.hit-ratio
キャッシュのヒット数/ミス数の比率 (hits/hits+misses)。
thorntail.infinispan.cache-containers.KEY.caches.KEY.hits
キャッシュ属性ヒットの数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.invalidations
キャッシュの無効な数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.locking-component.current-concurrency-level
このキャッシュがサポートできるスレッドを同時に更新する推定数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.locking-component.number-of-locks-available
このキャッシュで使用できるロックの数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.locking-component.number-of-locks-held
このキャッシュが現在使用中のロックの数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.misses
キャッシュ属性ミスの数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.number-of-entries
キャッシュ内のエントリー数 (パッシベートされたエントリーを含む)。
thorntail.infinispan.cache-containers.KEY.caches.KEY.number-of-entries-in-memory
パッシベートされたエントリーを除くキャッシュ内のエントリー数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.partition-handling-component.availability
キャッシュの現在の可用性を示します。
thorntail.infinispan.cache-containers.KEY.caches.KEY.passivations
キャッシュノードのパッシベーションの数 (メモリーからキャッシュストアへのノードのパッシベーション)。
thorntail.infinispan.cache-containers.KEY.caches.KEY.persistence-component.cache-loader-loads
キャッシュローダーノードが読み込む数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.persistence-component.cache-loader-misses
キャッシュローダーノードのミスの数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.read-write-ratio
キャッシュの読み取り/書き込み比率 ((hits+misses)/stores)。
thorntail.infinispan.cache-containers.KEY.caches.KEY.remove-hits
キャッシュ属性削除のヒットの数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.remove-misses
キャッシュ属性削除のミスの数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.replication-count
クラスターにデータが複製された回数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.replication-failures
データレプリケーションの失敗回数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.success-ratio
データのレプリケーション成功比率 (successes/successes+failures)。
thorntail.infinispan.cache-containers.KEY.caches.KEY.time-since-reset
キャッシュ統計がリセットされてからの時間 (秒単位)。
thorntail.infinispan.cache-containers.KEY.caches.KEY.time-since-start
キャッシュが起動してからの時間 (秒単位)。
thorntail.infinispan.cache-containers.KEY.caches.KEY.transaction-component.commits
トランザクションコミットの数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.transaction-component.prepares
準備するトランザクションの数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.transaction-component.rollbacks
ロールバックするトランザクションの数。
thorntail.infinispan.cache-containers.KEY.caches.KEY.writes
キャッシュ属性の put 操作の数。
thorntail.infinispan.cache-containers.KEY.cluster-name
このノードが属するクラスターの名前。キャッシュマネージャーが起動していない場合は、null を返す可能性があります。
thorntail.infinispan.cache-containers.KEY.coordinator-address
クラスターのコーディネーターの論理アドレス。キャッシュマネージャーが起動していない場合は、null を返す可能性があります。
thorntail.infinispan.cache-containers.KEY.default-cache
デフォルトの infinispan キャッシュ
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.activations
キャッシュノードのアクティベーション (キャッシュストアからメモリーにノードを取り込む) の数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.async-marshalling
これを有効にすると、エントリーのマーシャリングが非同期的に実行されます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.average-read-time
キャッシュ読み取りの平均時間 (ミリ秒単位)。ヒットおよびミスの数が含まれます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.average-replication-time
クラスター関連のデータを複製するのにかかった平均時間。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.average-write-time
キャッシュ書き込みの平均時間 (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.backup-for-component.remote-cache
このキャッシュがバックアップとして動作するリモートキャッシュの名前。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.backup-for-component.remote-site
このキャッシュがバックアップとして動作するリモートキャッシュのサイト。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.backups-component.backups.KEY.after-failures
このバックアップサイトがオフラインになるまでの障害の数を示します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.backups-component.backups.KEY.enabled
このバックアップサイトが有効であるかどうかを示します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.backups-component.backups.KEY.failure-policy
バックアップサイトへの接続に失敗したときに従うポリシー。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.backups-component.backups.KEY.min-wait
失敗の最大数に達した後、このバックアップサイトがオフラインになるまで待機する最小時間 (ミリ秒単位) を示します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.backups-component.backups.KEY.strategy
このキャッシュのバックアップストラテジー
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.backups-component.backups.KEY.timeout
バックアップサイトへの複製のタイムアウト。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.batching
有効にすると、このキャッシュに対して呼び出しバッチ API が利用可能になります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.behind-write.flush-lock-timeout
キャッシュストアにフラッシュされる状態を定期的に保護するロックの取得タイムアウト。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.behind-write.modification-queue-size
非同期キュー内のエントリーの最大数。キューが満杯になると、ストアは新規エントリーを受け入れるまでライトスルーになります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.behind-write.shutdown-timeout
キャッシュストアを停止するタイムアウト (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.behind-write.thread-pool-size
キャッシュストアへの変更を適用するスレッドプールのサイズ。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.binary-keyed-table
キーを文字列として表現できないキャッシュエントリーを格納するために使用されるテーブルを定義します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.binary-table.batch-size
DB 挿入の場合は、バッチサイズによって、バッチ処理される挿入の数が決まります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.binary-table.create-on-start
キャッシュの起動時にストアがこのデータベーステーブルを作成するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.binary-table.data-column
キャッシュエントリーデータを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.binary-table.drop-on-stop
キャッシュの停止時にストアがこのデータベーステーブルを削除するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.binary-table.fetch-size
DB クエリーの場合、フェッチサイズは ResultSet にフェッチサイズを設定するために使用されます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.binary-table.id-column
キャッシュエントリー ID を保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.binary-table.prefix
データベーステーブル名の接頭辞。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.binary-table.timestamp-column
キャッシュエントリーのタイムスタンプを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.cache-loader-loads
キャッシュローダーノードが読み込む数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.cache-loader-misses
キャッシュローダーノードのミスの数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.data-source
このストアへの接続に使用されるデータソースを参照します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.datasource
このストアへの接続に使用されるデータソースの jndi 名。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.dialect
このデータストアの方言。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.fetch-state
true の場合、クラスター参加時に永続状態を取得します。複数のキャッシュストアがチェーンされている場合は、このプロパティーを有効にできるのは 1 つのみです。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.max-batch-size
ストアから挿入/削除されるバッチの最大サイズ。値が 1 未満の場合は、バッチの操作数に上限は設定されません。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.passivation
true の場合、データは「パッシベーション」として知られる現象である、メモリーからエビクトされる場合に限りキャッシュストアに書き込まれます。次にデータが要求されると「アクティベート」されます。これは、データがメモリーに戻され、永続ストアから削除されることを意味します。false の場合、キャッシュストアにはメモリー内のコンテンツのコピーが含まれるため、キャッシュの結果がキャッシュストアに書き込みます。これにより、基本的に「ライトスルー」設定になります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.preload
true の場合、キャッシュが開始すると、キャッシュストアに保存されているデータがメモリーに事前に読み込まれます。これは、起動直後にキャッシュストア内のデータが必要になり、このデータの遅延読み込みの結果としてキャッシュ操作の遅延を避けたい場合に特に便利です。起動時に「ウォームキャッシュ」を提供するために使用できますが、起動時間がこのプロセスによる影響を受けるため、パフォーマンスが低下します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.properties
キャッシュストアプロパティーの一覧。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.properties.KEY.value
キャッシュストアプロパティーの値。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.purge
true の場合は、起動時にこのキャッシュストアが消去されます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.shared
複数のキャッシュインスタンスが同じキャッシュストアを共有する場合は、この設定を True に設定する必要があります (例: 同じ共有データベースを参照する JDBC ベースの CacheStore を使用するクラスター内の複数のノード)。 これを true に設定すると、複数のキャッシュインスタンスが同じ変更を複数回書き込むことを防ぎます。有効にすると、変更元となったノードのみがキャッシュストアに書き込まれます。無効にすると、各キャッシュはデータをキャッシュストアに保存して潜在的なリモート更新に対応します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-jdbc-store.singleton
true の場合は、シングルトンストアのキャッシュストアが有効になります。SingletonStore は、クラスター内の 1 つのインスタンスのみが基本となるストアと対話する必要がある場合に使用されるキャッシュストアの委譲です。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-memory.eviction-type
size 属性がキャッシュエントリーの数 (つまり COUNT) か、キャッシュエントリーの共同サイズ (つまり MEMORY) かを示します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-memory.evictions
キャッシュエビクション操作の数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.binary-memory.size
eviction-type で定義されるエビクションのしきい値。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.cache-status
キャッシュコンポーネントのステータス。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.capacity-factor
クラスター内の他のノードと比較して、ローカルノードに存在するエントリーの割合を制御します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.consistent-hash-strategy
キャッシュの一貫したハッシュ戦略を定義します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.custom-store.attribute-class
このキャッシュストアに使用するカスタムストア実装クラス。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.custom-store.behind-write.flush-lock-timeout
キャッシュストアにフラッシュされる状態を定期的に保護するロックの取得タイムアウト。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.custom-store.behind-write.modification-queue-size
非同期キュー内のエントリーの最大数。キューが満杯になると、ストアは新規エントリーを受け入れるまでライトスルーになります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.custom-store.behind-write.shutdown-timeout
キャッシュストアを停止するタイムアウト (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.custom-store.behind-write.thread-pool-size
キャッシュストアへの変更を適用するスレッドプールのサイズ。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.custom-store.cache-loader-loads
キャッシュローダーノードが読み込む数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.custom-store.cache-loader-misses
キャッシュローダーノードのミスの数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.custom-store.fetch-state
true の場合、クラスター参加時に永続状態を取得します。複数のキャッシュストアがチェーンされている場合は、このプロパティーを有効にできるのは 1 つのみです。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.custom-store.max-batch-size
ストアから挿入/削除されるバッチの最大サイズ。値が 1 未満の場合は、バッチの操作数に上限は設定されません。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.custom-store.passivation
true の場合、データは「パッシベーション」として知られる現象である、メモリーからエビクトされる場合に限りキャッシュストアに書き込まれます。次にデータが要求されると「アクティベート」されます。これは、データがメモリーに戻され、永続ストアから削除されることを意味します。false の場合、キャッシュストアにはメモリー内のコンテンツのコピーが含まれるため、キャッシュの結果がキャッシュストアに書き込みます。これにより、基本的に「ライトスルー」設定になります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.custom-store.preload
true の場合、キャッシュが開始すると、キャッシュストアに保存されているデータがメモリーに事前に読み込まれます。これは、起動直後にキャッシュストア内のデータが必要になり、このデータの遅延読み込みの結果としてキャッシュ操作の遅延を避けたい場合に特に便利です。起動時に「ウォームキャッシュ」を提供するために使用できますが、起動時間がこのプロセスによる影響を受けるため、パフォーマンスが低下します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.custom-store.properties
キャッシュストアプロパティーの一覧。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.custom-store.properties.KEY.value
キャッシュストアプロパティーの値。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.custom-store.purge
true の場合は、起動時にこのキャッシュストアが消去されます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.custom-store.shared
複数のキャッシュインスタンスが同じキャッシュストアを共有する場合は、この設定を True に設定する必要があります (例: 同じ共有データベースを参照する JDBC ベースの CacheStore を使用するクラスター内の複数のノード)。 これを true に設定すると、複数のキャッシュインスタンスが同じ変更を複数回書き込むことを防ぎます。有効にすると、変更元となったノードのみがキャッシュストアに書き込まれます。無効にすると、各キャッシュはデータをキャッシュストアに保存して潜在的なリモート更新に対応します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.custom-store.singleton
true の場合は、シングルトンストアのキャッシュストアが有効になります。SingletonStore は、クラスター内の 1 つのインスタンスのみが基本となるストアと対話する必要がある場合に使用されるキャッシュストアの委譲です。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.elapsed-time
キャッシュの開始からの時間 (秒単位)。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.expiration-component.interval
期限切れのエントリーをメモリーおよびキャッシュストアから削除するための後続の実行間の間隔 (ミリ秒単位)。定期的なエビクションプロセスを完全に無効にする場合は、wakeupInterval を -1 に設定します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.expiration-component.lifespan
キャッシュエントリーの最大有効期間 (ミリ秒単位)。この期間が経過すると、エントリーはクラスター全体で期限切れになります。-1は、エントリが期限切れにならないことを意味します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.expiration-component.max-idle
キャッシュエントリーがキャッシュに保持される最大アイドル時間 (ミリ秒単位)。アイドル時間を超えると、エントリーはクラスター全体で期限切れになります。-1 はエントリーの有効期限が切れないことを意味します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.file-store.behind-write.flush-lock-timeout
キャッシュストアにフラッシュされる状態を定期的に保護するロックの取得タイムアウト。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.file-store.behind-write.modification-queue-size
非同期キュー内のエントリーの最大数。キューが満杯になると、ストアは新規エントリーを受け入れるまでライトスルーになります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.file-store.behind-write.shutdown-timeout
キャッシュストアを停止するタイムアウト (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.file-store.behind-write.thread-pool-size
キャッシュストアへの変更を適用するスレッドプールのサイズ。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.file-store.cache-loader-loads
キャッシュローダーノードが読み込む数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.file-store.cache-loader-misses
キャッシュローダーノードのミスの数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.file-store.fetch-state
true の場合、クラスター参加時に永続状態を取得します。複数のキャッシュストアがチェーンされている場合は、このプロパティーを有効にできるのは 1 つのみです。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.file-store.max-batch-size
ストアから挿入/削除されるバッチの最大サイズ。値が 1 未満の場合は、バッチの操作数に上限は設定されません。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.file-store.passivation
true の場合、データは「パッシベーション」として知られる現象である、メモリーからエビクトされる場合に限りキャッシュストアに書き込まれます。次にデータが要求されると「アクティベート」されます。これは、データがメモリーに戻され、永続ストアから削除されることを意味します。false の場合、キャッシュストアにはメモリー内のコンテンツのコピーが含まれるため、キャッシュの結果がキャッシュストアに書き込みます。これにより、基本的に「ライトスルー」設定になります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.file-store.path
このキャッシュストアがエントリーを永続化するシステムパス。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.file-store.preload
true の場合、キャッシュが開始すると、キャッシュストアに保存されているデータがメモリーに事前に読み込まれます。これは、起動直後にキャッシュストア内のデータが必要になり、このデータの遅延読み込みの結果としてキャッシュ操作の遅延を避けたい場合に特に便利です。起動時に「ウォームキャッシュ」を提供するために使用できますが、起動時間がこのプロセスによる影響を受けるため、パフォーマンスが低下します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.file-store.properties
キャッシュストアプロパティーの一覧。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.file-store.properties.KEY.value
キャッシュストアプロパティーの値。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.file-store.purge
true の場合は、起動時にこのキャッシュストアが消去されます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.file-store.relative-to
指定されたパスが相対パスであるシステムパス。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.file-store.shared
複数のキャッシュインスタンスが同じキャッシュストアを共有する場合は、この設定を True に設定する必要があります (例: 同じ共有データベースを参照する JDBC ベースの CacheStore を使用するクラスター内の複数のノード)。 これを true に設定すると、複数のキャッシュインスタンスが同じ変更を複数回書き込むことを防ぎます。有効にすると、変更元となったノードのみがキャッシュストアに書き込まれます。無効にすると、各キャッシュはデータをキャッシュストアに保存して潜在的なリモート更新に対応します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.file-store.singleton
true の場合は、シングルトンストアのキャッシュストアが有効になります。SingletonStore は、クラスター内の 1 つのインスタンスのみが基本となるストアと対話する必要がある場合に使用されるキャッシュストアの委譲です。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hit-ratio
キャッシュのヒット数/ミス数の比率 (hits/hits+misses)。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hits
キャッシュ属性ヒットの数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hotrod-store.behind-write.flush-lock-timeout
キャッシュストアにフラッシュされる状態を定期的に保護するロックの取得タイムアウト。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hotrod-store.behind-write.modification-queue-size
非同期キュー内のエントリーの最大数。キューが満杯になると、ストアは新規エントリーを受け入れるまでライトスルーになります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hotrod-store.behind-write.shutdown-timeout
キャッシュストアを停止するタイムアウト (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hotrod-store.behind-write.thread-pool-size
キャッシュストアへの変更を適用するスレッドプールのサイズ。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hotrod-store.cache-configuration
キャッシュの作成元となる Infinispan Server で定義されたキャッシュ設定テンプレートの名前。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hotrod-store.cache-loader-loads
キャッシュローダーノードが読み込む数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hotrod-store.cache-loader-misses
キャッシュローダーノードのミスの数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hotrod-store.fetch-state
true の場合、クラスター参加時に永続状態を取得します。複数のキャッシュストアがチェーンされている場合は、このプロパティーを有効にできるのは 1 つのみです。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hotrod-store.max-batch-size
ストアから挿入/削除されるバッチの最大サイズ。値が 1 未満の場合は、バッチの操作数に上限は設定されません。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hotrod-store.passivation
true の場合、データは「パッシベーション」として知られる現象である、メモリーからエビクトされる場合に限りキャッシュストアに書き込まれます。次にデータが要求されると「アクティベート」されます。これは、データがメモリーに戻され、永続ストアから削除されることを意味します。false の場合、キャッシュストアにはメモリー内のコンテンツのコピーが含まれるため、キャッシュの結果がキャッシュストアに書き込みます。これにより、基本的に「ライトスルー」設定になります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hotrod-store.preload
true の場合、キャッシュが開始すると、キャッシュストアに保存されているデータがメモリーに事前に読み込まれます。これは、起動直後にキャッシュストア内のデータが必要になり、このデータの遅延読み込みの結果としてキャッシュ操作の遅延を避けたい場合に特に便利です。起動時に「ウォームキャッシュ」を提供するために使用できますが、起動時間がこのプロセスによる影響を受けるため、パフォーマンスが低下します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hotrod-store.properties
キャッシュストアプロパティーの一覧。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hotrod-store.properties.KEY.value
キャッシュストアプロパティーの値。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hotrod-store.purge
true の場合は、起動時にこのキャッシュストアが消去されます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hotrod-store.remote-cache-container
コンテナー管理の remote-cache-container への参照。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hotrod-store.shared
複数のキャッシュインスタンスが同じキャッシュストアを共有する場合は、この設定を True に設定する必要があります (例: 同じ共有データベースを参照する JDBC ベースの CacheStore を使用するクラスター内の複数のノード)。 これを true に設定すると、複数のキャッシュインスタンスが同じ変更を複数回書き込むことを防ぎます。有効にすると、変更元となったノードのみがキャッシュストアに書き込まれます。無効にすると、各キャッシュはデータをキャッシュストアに保存して潜在的なリモート更新に対応します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.hotrod-store.singleton
true の場合は、シングルトンストアのキャッシュストアが有効になります。SingletonStore は、クラスター内の 1 つのインスタンスのみが基本となるストアと対話する必要がある場合に使用されるキャッシュストアの委譲です。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.indexing
有効にすると、エントリーがキャッシュに追加されるとインデックス化されます。インデックスはエントリーの変更または削除として更新されます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.indexing-properties
インデックス動作を制御するプロパティー
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.invalidations
キャッシュの無効な数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.behind-write.flush-lock-timeout
キャッシュストアにフラッシュされる状態を定期的に保護するロックの取得タイムアウト。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.behind-write.modification-queue-size
非同期キュー内のエントリーの最大数。キューが満杯になると、ストアは新規エントリーを受け入れるまでライトスルーになります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.behind-write.shutdown-timeout
キャッシュストアを停止するタイムアウト (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.behind-write.thread-pool-size
キャッシュストアへの変更を適用するスレッドプールのサイズ。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.cache-loader-loads
キャッシュローダーノードが読み込む数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.cache-loader-misses
キャッシュローダーノードのミスの数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.data-source
このストアへの接続に使用されるデータソースを参照します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.datasource
このストアへの接続に使用されるデータソースの jndi 名。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.dialect
このデータストアの方言。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.fetch-state
true の場合、クラスター参加時に永続状態を取得します。複数のキャッシュストアがチェーンされている場合は、このプロパティーを有効にできるのは 1 つのみです。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.max-batch-size
ストアから挿入/削除されるバッチの最大サイズ。値が 1 未満の場合は、バッチの操作数に上限は設定されません。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.passivation
true の場合、データは「パッシベーション」として知られる現象である、メモリーからエビクトされる場合に限りキャッシュストアに書き込まれます。次にデータが要求されると「アクティベート」されます。これは、データがメモリーに戻され、永続ストアから削除されることを意味します。false の場合、キャッシュストアにはメモリー内のコンテンツのコピーが含まれるため、キャッシュの結果がキャッシュストアに書き込みます。これにより、基本的に「ライトスルー」設定になります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.preload
true の場合、キャッシュが開始すると、キャッシュストアに保存されているデータがメモリーに事前に読み込まれます。これは、起動直後にキャッシュストア内のデータが必要になり、このデータの遅延読み込みの結果としてキャッシュ操作の遅延を避けたい場合に特に便利です。起動時に「ウォームキャッシュ」を提供するために使用できますが、起動時間がこのプロセスによる影響を受けるため、パフォーマンスが低下します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.properties
キャッシュストアプロパティーの一覧。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.properties.KEY.value
キャッシュストアプロパティーの値。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.purge
true の場合は、起動時にこのキャッシュストアが消去されます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.shared
複数のキャッシュインスタンスが同じキャッシュストアを共有する場合は、この設定を True に設定する必要があります (例: 同じ共有データベースを参照する JDBC ベースの CacheStore を使用するクラスター内の複数のノード)。 これを true に設定すると、複数のキャッシュインスタンスが同じ変更を複数回書き込むことを防ぎます。有効にすると、変更元となったノードのみがキャッシュストアに書き込まれます。無効にすると、各キャッシュはデータをキャッシュストアに保存して潜在的なリモート更新に対応します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.singleton
true の場合は、シングルトンストアのキャッシュストアが有効になります。SingletonStore は、クラスター内の 1 つのインスタンスのみが基本となるストアと対話する必要がある場合に使用されるキャッシュストアの委譲です。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.string-keyed-table
永続キャッシュエントリーを保存するために使用されるテーブルを定義します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.string-table.batch-size
DB 挿入の場合は、バッチサイズによって、バッチ処理される挿入の数が決まります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.string-table.create-on-start
キャッシュの起動時にストアがこのデータベーステーブルを作成するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.string-table.data-column
キャッシュエントリーデータを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.string-table.drop-on-stop
キャッシュの停止時にストアがこのデータベーステーブルを削除するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.string-table.fetch-size
DB クエリーの場合、フェッチサイズは ResultSet にフェッチサイズを設定するために使用されます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.string-table.id-column
キャッシュエントリー ID を保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.string-table.prefix
データベーステーブル名の接頭辞。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jdbc-store.string-table.timestamp-column
キャッシュエントリーのタイムスタンプを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.jndi-name
このキャッシュインスタンスをバインドする jndi-name。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.l1-lifespan
L1 キャッシュに配置されたエントリーの最大有効期間。この要素は、「distributed」キャッシュのインスタンスに L1 キャッシュ動作を設定します。他のキャッシュモードでは、この要素は無視されます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.locking-component.acquire-timeout
特定のロック違反を試行する最大時間。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.locking-component.concurrency-level
ロックコンテナーの同時実行レベル。この値は、Infinispan と対話する同時スレッドの数に応じて調整します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.locking-component.current-concurrency-level
このキャッシュがサポートできるスレッドを同時に更新する推定数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.locking-component.isolation
キャッシュロック分離レベルを設定します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.locking-component.number-of-locks-available
このキャッシュで使用できるロックの数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.locking-component.number-of-locks-held
このキャッシュが現在使用中のロックの数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.locking-component.striping
true の場合は、ロックする必要のあるすべてのエントリーに対して共有ロックのプールが保持されます。それ以外の場合は、キャッシュのエントリーごとにロックが作成されます。ロックストライピングは、メモリーフットプリントを制御するのに役立ちますが、システムの同時実行性を低下させる可能性があります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.misses
キャッシュ属性ミスの数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.behind-write.flush-lock-timeout
キャッシュストアにフラッシュされる状態を定期的に保護するロックの取得タイムアウト。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.behind-write.modification-queue-size
非同期キュー内のエントリーの最大数。キューが満杯になると、ストアは新規エントリーを受け入れるまでライトスルーになります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.behind-write.shutdown-timeout
キャッシュストアを停止するタイムアウト (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.behind-write.thread-pool-size
キャッシュストアへの変更を適用するスレッドプールのサイズ。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.binary-keyed-table
キーを文字列として表現できないキャッシュエントリーを格納するために使用されるテーブルを定義します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.binary-table.batch-size
DB 挿入の場合は、バッチサイズによって、バッチ処理される挿入の数が決まります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.binary-table.create-on-start
キャッシュの起動時にストアがこのデータベーステーブルを作成するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.binary-table.data-column
キャッシュエントリーデータを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.binary-table.drop-on-stop
キャッシュの停止時にストアがこのデータベーステーブルを削除するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.binary-table.fetch-size
DB クエリーの場合、フェッチサイズは ResultSet にフェッチサイズを設定するために使用されます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.binary-table.id-column
キャッシュエントリー ID を保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.binary-table.prefix
データベーステーブル名の接頭辞。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.binary-table.timestamp-column
キャッシュエントリーのタイムスタンプを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.cache-loader-loads
キャッシュローダーノードが読み込む数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.cache-loader-misses
キャッシュローダーノードのミスの数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.data-source
このストアへの接続に使用されるデータソースを参照します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.datasource
このストアへの接続に使用されるデータソースの jndi 名。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.dialect
このデータストアの方言。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.fetch-state
true の場合、クラスター参加時に永続状態を取得します。複数のキャッシュストアがチェーンされている場合は、このプロパティーを有効にできるのは 1 つのみです。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.max-batch-size
ストアから挿入/削除されるバッチの最大サイズ。値が 1 未満の場合は、バッチの操作数に上限は設定されません。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.passivation
true の場合、データは「パッシベーション」として知られる現象である、メモリーからエビクトされる場合に限りキャッシュストアに書き込まれます。次にデータが要求されると「アクティベート」されます。これは、データがメモリーに戻され、永続ストアから削除されることを意味します。false の場合、キャッシュストアにはメモリー内のコンテンツのコピーが含まれるため、キャッシュの結果がキャッシュストアに書き込みます。これにより、基本的に「ライトスルー」設定になります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.preload
true の場合、キャッシュが開始すると、キャッシュストアに保存されているデータがメモリーに事前に読み込まれます。これは、起動直後にキャッシュストア内のデータが必要になり、このデータの遅延読み込みの結果としてキャッシュ操作の遅延を避けたい場合に特に便利です。起動時に「ウォームキャッシュ」を提供するために使用できますが、起動時間がこのプロセスによる影響を受けるため、パフォーマンスが低下します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.properties
キャッシュストアプロパティーの一覧。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.properties.KEY.value
キャッシュストアプロパティーの値。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.purge
true の場合は、起動時にこのキャッシュストアが消去されます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.shared
複数のキャッシュインスタンスが同じキャッシュストアを共有する場合は、この設定を True に設定する必要があります (例: 同じ共有データベースを参照する JDBC ベースの CacheStore を使用するクラスター内の複数のノード)。 これを true に設定すると、複数のキャッシュインスタンスが同じ変更を複数回書き込むことを防ぎます。有効にすると、変更元となったノードのみがキャッシュストアに書き込まれます。無効にすると、各キャッシュはデータをキャッシュストアに保存して潜在的なリモート更新に対応します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.singleton
true の場合は、シングルトンストアのキャッシュストアが有効になります。SingletonStore は、クラスター内の 1 つのインスタンスのみが基本となるストアと対話する必要がある場合に使用されるキャッシュストアの委譲です。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.string-keyed-table
永続キャッシュエントリーを保存するために使用されるテーブルを定義します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.string-table.batch-size
DB 挿入の場合は、バッチサイズによって、バッチ処理される挿入の数が決まります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.string-table.create-on-start
キャッシュの起動時にストアがこのデータベーステーブルを作成するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.string-table.data-column
キャッシュエントリーデータを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.string-table.drop-on-stop
キャッシュの停止時にストアがこのデータベーステーブルを削除するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.string-table.fetch-size
DB クエリーの場合、フェッチサイズは ResultSet にフェッチサイズを設定するために使用されます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.string-table.id-column
キャッシュエントリー ID を保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.string-table.prefix
データベーステーブル名の接頭辞。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mixed-jdbc-store.string-table.timestamp-column
キャッシュエントリーのタイムスタンプを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.mode
クラスター化されたキャッシュモード (非同期操作の場合は ASYNC、同期操作の場合は SYNC) を設定します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.module
このキャッシュの設定のビルド時にクラスローダーを使用する必要があるモジュール。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.number-of-entries
キャッシュ内のエントリー数 (パッシベートされたエントリーを含む)。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.object-memory.evictions
キャッシュエビクション操作の数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.object-memory.max-entries
キャッシュインスタンス内のエントリーの最大数。選択した値が 2 のべき乗でない場合、実際の値はデフォルトで選択した値よりも大きい 2 の最小のべき乗になります。-1は制限がないことを意味します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.object-memory.size
キャッシュエントリーの数がこのしきい値を超えると、最近使用されたエントリーのエビクションを発生させます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.object-memory.strategy
キャッシュエビクションストラテジーを設定します。使用できるオプションは、「UNORDERED」、「FIFO」、「LRU」、「LIRS」、および「NONE」(エビクションを無効にする) です。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.off-heap-memory.capacity
オフヒープストレージの容量を定義します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.off-heap-memory.eviction-type
size 属性がキャッシュエントリーの数 (つまり COUNT) か、キャッシュエントリーの共同サイズ (つまり MEMORY) かを示します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.off-heap-memory.evictions
キャッシュエビクション操作の数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.off-heap-memory.size
eviction-type で定義されるエビクションのしきい値。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.owners
各キャッシュエントリーのクラスター全体のレプリカ数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.partition-handling-component.availability
キャッシュの現在の可用性を示します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.partition-handling-component.enabled
有効にすると、キャッシュの整合性を脅かすネットワークパーティションが検出されると、キャッシュは低下 (degrade) モードになります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.passivations
キャッシュノードのパッシベーションの数 (メモリーからキャッシュストアへのノードのパッシベーション)。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.queue-flush-interval
ASYNC モードでは、この属性はレプリケーションキューのフラッシュを実行するために使用する非同期スレッドの頻度を制御します。これは、スレッドウェイクアップ時間 (ミリ秒単位) を表す正の整数である必要があります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.queue-size
ASYNC モードでは、この属性を使用して、特定のしきい値に達するとキューのフラッシュをトリガーできます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.read-write-ratio
キャッシュの読み取り/書き込み比率 ((hits+misses)/stores)。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.behind-write.flush-lock-timeout
キャッシュストアにフラッシュされる状態を定期的に保護するロックの取得タイムアウト。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.behind-write.modification-queue-size
非同期キュー内のエントリーの最大数。キューが満杯になると、ストアは新規エントリーを受け入れるまでライトスルーになります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.behind-write.shutdown-timeout
キャッシュストアを停止するタイムアウト (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.behind-write.thread-pool-size
キャッシュストアへの変更を適用するスレッドプールのサイズ。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.cache
このリモートストアに使用するリモートキャッシュの名前。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.cache-loader-loads
キャッシュローダーノードが読み込む数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.cache-loader-misses
キャッシュローダーノードのミスの数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.fetch-state
true の場合、クラスター参加時に永続状態を取得します。複数のキャッシュストアがチェーンされている場合は、このプロパティーを有効にできるのは 1 つのみです。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.max-batch-size
ストアから挿入/削除されるバッチの最大サイズ。値が 1 未満の場合は、バッチの操作数に上限は設定されません。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.passivation
true の場合、データは「パッシベーション」として知られる現象である、メモリーからエビクトされる場合に限りキャッシュストアに書き込まれます。次にデータが要求されると「アクティベート」されます。これは、データがメモリーに戻され、永続ストアから削除されることを意味します。false の場合、キャッシュストアにはメモリー内のコンテンツのコピーが含まれるため、キャッシュの結果がキャッシュストアに書き込みます。これにより、基本的に「ライトスルー」設定になります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.preload
true の場合、キャッシュが開始すると、キャッシュストアに保存されているデータがメモリーに事前に読み込まれます。これは、起動直後にキャッシュストア内のデータが必要になり、このデータの遅延読み込みの結果としてキャッシュ操作の遅延を避けたい場合に特に便利です。起動時に「ウォームキャッシュ」を提供するために使用できますが、起動時間がこのプロセスによる影響を受けるため、パフォーマンスが低下します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.properties
キャッシュストアプロパティーの一覧。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.properties.KEY.value
キャッシュストアプロパティーの値。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.purge
true の場合は、起動時にこのキャッシュストアが消去されます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.remote-servers
このキャッシュストアのリモートサーバーの一覧。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.shared
複数のキャッシュインスタンスが同じキャッシュストアを共有する場合は、この設定を True に設定する必要があります (例: 同じ共有データベースを参照する JDBC ベースの CacheStore を使用するクラスター内の複数のノード)。 これを true に設定すると、複数のキャッシュインスタンスが同じ変更を複数回書き込むことを防ぎます。有効にすると、変更元となったノードのみがキャッシュストアに書き込まれます。無効にすると、各キャッシュはデータをキャッシュストアに保存して潜在的なリモート更新に対応します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.singleton
true の場合は、シングルトンストアのキャッシュストアが有効になります。SingletonStore は、クラスター内の 1 つのインスタンスのみが基本となるストアと対話する必要がある場合に使用されるキャッシュストアの委譲です。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.socket-timeout
リモートキャッシュ通信のソケットタイムアウト。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-store.tcp-no-delay
リモートキャッシュ通信の TCP_NODELAY 値。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remote-timeout
SYNC モードでは、リモート呼び出しの実行時に確認応答を待機するためにタイムアウト (ミリ秒単位) が使用され、呼び出しが中止され、例外が発生します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remove-hits
キャッシュ属性削除のヒットの数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.remove-misses
キャッシュ属性削除のミスの数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.replication-count
クラスターにデータが複製された回数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.replication-failures
データレプリケーションの失敗回数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.segments
クラスター内のキー配布の粒度であるハッシュ領域セグメントの数を制御します。値は、正の値にしなければなりません。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.start
EAGER (即時開始) または LAZY (オンデマンド開始) のいずれかのキャッシュ開始モード。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.state-transfer-component.chunk-size
バッチ転送状態のキャッシュエントリーの最大数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.state-transfer-component.enabled
有効にすると、キャッシュは起動時に近隣のキャッシュに状態を要求するため、キャッシュは「warm」で起動しますが、起動時間に影響します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.state-transfer-component.timeout
例外をスローして起動を中止するまで、隣接キャッシュから状態を待つ最大時間 (ミリ秒単位)。タイムアウトが 0 の場合、状態遷移は非同期的に実行され、キャッシュは即座に利用可能になります。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.statistics-enabled
有効にすると、このキャッシュの統計が収集されます。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.stores
キャッシュ属性の put 操作の数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.success-ratio
データのレプリケーション成功比率 (successes/successes+failures)。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.time-since-reset
キャッシュ統計がリセットされてからの時間 (秒単位)。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.transaction-component.commits
トランザクションコミットの数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.transaction-component.locking
このキャッシュのロックモード (OPTIMISTIC または PESSIMISTIC のいずれか)。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.transaction-component.mode
キャッシュトランザクションモードを、NONE、NON_XA、NON_DURABLE_XA、FULL_XA のいずれかに設定します。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.transaction-component.prepares
準備するトランザクションの数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.transaction-component.rollbacks
ロールバックするトランザクションの数。
thorntail.infinispan.cache-containers.KEY.distributed-caches.KEY.transaction-component.stop-timeout
キャッシュの停止時に継続中のトランザクションがある場合、Infinispan は継続中のリモートトランザクションとローカルトランザクションが完了するまで待機します。待機する時間は、キャッシュ停止のタイムアウトによって定義されます。
thorntail.infinispan.cache-containers.KEY.eviction-executor
エビクションに使用されるスケジュール済みエグゼキューター
thorntail.infinispan.cache-containers.KEY.expiration-thread-pool.keepalive-time
アイドル時にスレッドが実行し続ける期間 (ミリ秒) を指定するために使用されます。指定しないと、スレッドはエグゼキューターがシャットダウンするまで実行します。
thorntail.infinispan.cache-containers.KEY.expiration-thread-pool.max-threads
スレッドプールの最大サイズ。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.activations
キャッシュノードのアクティベーション (キャッシュストアからメモリーにノードを取り込む) の数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.async-marshalling
これを有効にすると、エントリーのマーシャリングが非同期的に実行されます。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.average-read-time
キャッシュ読み取りの平均時間 (ミリ秒単位)。ヒットおよびミスの数が含まれます。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.average-replication-time
クラスター関連のデータを複製するのにかかった平均時間。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.average-write-time
キャッシュ書き込みの平均時間 (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.batching
有効にすると、このキャッシュに対して呼び出しバッチ API が利用可能になります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.behind-write.flush-lock-timeout
キャッシュストアにフラッシュされる状態を定期的に保護するロックの取得タイムアウト。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.behind-write.modification-queue-size
非同期キュー内のエントリーの最大数。キューが満杯になると、ストアは新規エントリーを受け入れるまでライトスルーになります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.behind-write.shutdown-timeout
キャッシュストアを停止するタイムアウト (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.behind-write.thread-pool-size
キャッシュストアへの変更を適用するスレッドプールのサイズ。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.binary-keyed-table
キーを文字列として表現できないキャッシュエントリーを格納するために使用されるテーブルを定義します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.binary-table.batch-size
DB 挿入の場合は、バッチサイズによって、バッチ処理される挿入の数が決まります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.binary-table.create-on-start
キャッシュの起動時にストアがこのデータベーステーブルを作成するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.binary-table.data-column
キャッシュエントリーデータを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.binary-table.drop-on-stop
キャッシュの停止時にストアがこのデータベーステーブルを削除するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.binary-table.fetch-size
DB クエリーの場合、フェッチサイズは ResultSet にフェッチサイズを設定するために使用されます。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.binary-table.id-column
キャッシュエントリー ID を保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.binary-table.prefix
データベーステーブル名の接頭辞。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.binary-table.timestamp-column
キャッシュエントリーのタイムスタンプを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.cache-loader-loads
キャッシュローダーノードが読み込む数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.cache-loader-misses
キャッシュローダーノードのミスの数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.data-source
このストアへの接続に使用されるデータソースを参照します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.datasource
このストアへの接続に使用されるデータソースの jndi 名。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.dialect
このデータストアの方言。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.fetch-state
true の場合、クラスター参加時に永続状態を取得します。複数のキャッシュストアがチェーンされている場合は、このプロパティーを有効にできるのは 1 つのみです。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.max-batch-size
ストアから挿入/削除されるバッチの最大サイズ。値が 1 未満の場合は、バッチの操作数に上限は設定されません。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.passivation
true の場合、データは「パッシベーション」として知られる現象である、メモリーからエビクトされる場合に限りキャッシュストアに書き込まれます。次にデータが要求されると「アクティベート」されます。これは、データがメモリーに戻され、永続ストアから削除されることを意味します。false の場合、キャッシュストアにはメモリー内のコンテンツのコピーが含まれるため、キャッシュの結果がキャッシュストアに書き込みます。これにより、基本的に「ライトスルー」設定になります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.preload
true の場合、キャッシュが開始すると、キャッシュストアに保存されているデータがメモリーに事前に読み込まれます。これは、起動直後にキャッシュストア内のデータが必要になり、このデータの遅延読み込みの結果としてキャッシュ操作の遅延を避けたい場合に特に便利です。起動時に「ウォームキャッシュ」を提供するために使用できますが、起動時間がこのプロセスによる影響を受けるため、パフォーマンスが低下します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.properties
キャッシュストアプロパティーの一覧。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.properties.KEY.value
キャッシュストアプロパティーの値。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.purge
true の場合は、起動時にこのキャッシュストアが消去されます。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.shared
複数のキャッシュインスタンスが同じキャッシュストアを共有する場合は、この設定を True に設定する必要があります (例: 同じ共有データベースを参照する JDBC ベースの CacheStore を使用するクラスター内の複数のノード)。 これを true に設定すると、複数のキャッシュインスタンスが同じ変更を複数回書き込むことを防ぎます。有効にすると、変更元となったノードのみがキャッシュストアに書き込まれます。無効にすると、各キャッシュはデータをキャッシュストアに保存して潜在的なリモート更新に対応します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-jdbc-store.singleton
true の場合は、シングルトンストアのキャッシュストアが有効になります。SingletonStore は、クラスター内の 1 つのインスタンスのみが基本となるストアと対話する必要がある場合に使用されるキャッシュストアの委譲です。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-memory.eviction-type
size 属性がキャッシュエントリーの数 (つまり COUNT) か、キャッシュエントリーの共同サイズ (つまり MEMORY) かを示します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-memory.evictions
キャッシュエビクション操作の数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.binary-memory.size
eviction-type で定義されるエビクションのしきい値。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.cache-status
キャッシュコンポーネントのステータス。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.custom-store.attribute-class
このキャッシュストアに使用するカスタムストア実装クラス。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.custom-store.behind-write.flush-lock-timeout
キャッシュストアにフラッシュされる状態を定期的に保護するロックの取得タイムアウト。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.custom-store.behind-write.modification-queue-size
非同期キュー内のエントリーの最大数。キューが満杯になると、ストアは新規エントリーを受け入れるまでライトスルーになります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.custom-store.behind-write.shutdown-timeout
キャッシュストアを停止するタイムアウト (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.custom-store.behind-write.thread-pool-size
キャッシュストアへの変更を適用するスレッドプールのサイズ。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.custom-store.cache-loader-loads
キャッシュローダーノードが読み込む数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.custom-store.cache-loader-misses
キャッシュローダーノードのミスの数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.custom-store.fetch-state
true の場合、クラスター参加時に永続状態を取得します。複数のキャッシュストアがチェーンされている場合は、このプロパティーを有効にできるのは 1 つのみです。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.custom-store.max-batch-size
ストアから挿入/削除されるバッチの最大サイズ。値が 1 未満の場合は、バッチの操作数に上限は設定されません。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.custom-store.passivation
true の場合、データは「パッシベーション」として知られる現象である、メモリーからエビクトされる場合に限りキャッシュストアに書き込まれます。次にデータが要求されると「アクティベート」されます。これは、データがメモリーに戻され、永続ストアから削除されることを意味します。false の場合、キャッシュストアにはメモリー内のコンテンツのコピーが含まれるため、キャッシュの結果がキャッシュストアに書き込みます。これにより、基本的に「ライトスルー」設定になります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.custom-store.preload
true の場合、キャッシュが開始すると、キャッシュストアに保存されているデータがメモリーに事前に読み込まれます。これは、起動直後にキャッシュストア内のデータが必要になり、このデータの遅延読み込みの結果としてキャッシュ操作の遅延を避けたい場合に特に便利です。起動時に「ウォームキャッシュ」を提供するために使用できますが、起動時間がこのプロセスによる影響を受けるため、パフォーマンスが低下します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.custom-store.properties
キャッシュストアプロパティーの一覧。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.custom-store.properties.KEY.value
キャッシュストアプロパティーの値。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.custom-store.purge
true の場合は、起動時にこのキャッシュストアが消去されます。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.custom-store.shared
複数のキャッシュインスタンスが同じキャッシュストアを共有する場合は、この設定を True に設定する必要があります (例: 同じ共有データベースを参照する JDBC ベースの CacheStore を使用するクラスター内の複数のノード)。 これを true に設定すると、複数のキャッシュインスタンスが同じ変更を複数回書き込むことを防ぎます。有効にすると、変更元となったノードのみがキャッシュストアに書き込まれます。無効にすると、各キャッシュはデータをキャッシュストアに保存して潜在的なリモート更新に対応します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.custom-store.singleton
true の場合は、シングルトンストアのキャッシュストアが有効になります。SingletonStore は、クラスター内の 1 つのインスタンスのみが基本となるストアと対話する必要がある場合に使用されるキャッシュストアの委譲です。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.elapsed-time
キャッシュの開始からの時間 (秒単位)。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.expiration-component.interval
期限切れのエントリーをメモリーおよびキャッシュストアから削除するための後続の実行間の間隔 (ミリ秒単位)。定期的なエビクションプロセスを完全に無効にする場合は、wakeupInterval を -1 に設定します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.expiration-component.lifespan
キャッシュエントリーの最大有効期間 (ミリ秒単位)。この期間が経過すると、エントリーはクラスター全体で期限切れになります。-1は、エントリが期限切れにならないことを意味します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.expiration-component.max-idle
キャッシュエントリーがキャッシュに保持される最大アイドル時間 (ミリ秒単位)。アイドル時間を超えると、エントリーはクラスター全体で期限切れになります。-1 はエントリーの有効期限が切れないことを意味します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.file-store.behind-write.flush-lock-timeout
キャッシュストアにフラッシュされる状態を定期的に保護するロックの取得タイムアウト。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.file-store.behind-write.modification-queue-size
非同期キュー内のエントリーの最大数。キューが満杯になると、ストアは新規エントリーを受け入れるまでライトスルーになります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.file-store.behind-write.shutdown-timeout
キャッシュストアを停止するタイムアウト (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.file-store.behind-write.thread-pool-size
キャッシュストアへの変更を適用するスレッドプールのサイズ。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.file-store.cache-loader-loads
キャッシュローダーノードが読み込む数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.file-store.cache-loader-misses
キャッシュローダーノードのミスの数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.file-store.fetch-state
true の場合、クラスター参加時に永続状態を取得します。複数のキャッシュストアがチェーンされている場合は、このプロパティーを有効にできるのは 1 つのみです。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.file-store.max-batch-size
ストアから挿入/削除されるバッチの最大サイズ。値が 1 未満の場合は、バッチの操作数に上限は設定されません。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.file-store.passivation
true の場合、データは「パッシベーション」として知られる現象である、メモリーからエビクトされる場合に限りキャッシュストアに書き込まれます。次にデータが要求されると「アクティベート」されます。これは、データがメモリーに戻され、永続ストアから削除されることを意味します。false の場合、キャッシュストアにはメモリー内のコンテンツのコピーが含まれるため、キャッシュの結果がキャッシュストアに書き込みます。これにより、基本的に「ライトスルー」設定になります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.file-store.path
このキャッシュストアがエントリーを永続化するシステムパス。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.file-store.preload
true の場合、キャッシュが開始すると、キャッシュストアに保存されているデータがメモリーに事前に読み込まれます。これは、起動直後にキャッシュストア内のデータが必要になり、このデータの遅延読み込みの結果としてキャッシュ操作の遅延を避けたい場合に特に便利です。起動時に「ウォームキャッシュ」を提供するために使用できますが、起動時間がこのプロセスによる影響を受けるため、パフォーマンスが低下します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.file-store.properties
キャッシュストアプロパティーの一覧。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.file-store.properties.KEY.value
キャッシュストアプロパティーの値。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.file-store.purge
true の場合は、起動時にこのキャッシュストアが消去されます。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.file-store.relative-to
指定されたパスが相対パスであるシステムパス。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.file-store.shared
複数のキャッシュインスタンスが同じキャッシュストアを共有する場合は、この設定を True に設定する必要があります (例: 同じ共有データベースを参照する JDBC ベースの CacheStore を使用するクラスター内の複数のノード)。 これを true に設定すると、複数のキャッシュインスタンスが同じ変更を複数回書き込むことを防ぎます。有効にすると、変更元となったノードのみがキャッシュストアに書き込まれます。無効にすると、各キャッシュはデータをキャッシュストアに保存して潜在的なリモート更新に対応します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.file-store.singleton
true の場合は、シングルトンストアのキャッシュストアが有効になります。SingletonStore は、クラスター内の 1 つのインスタンスのみが基本となるストアと対話する必要がある場合に使用されるキャッシュストアの委譲です。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hit-ratio
キャッシュのヒット数/ミス数の比率 (hits/hits+misses)。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hits
キャッシュ属性ヒットの数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hotrod-store.behind-write.flush-lock-timeout
キャッシュストアにフラッシュされる状態を定期的に保護するロックの取得タイムアウト。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hotrod-store.behind-write.modification-queue-size
非同期キュー内のエントリーの最大数。キューが満杯になると、ストアは新規エントリーを受け入れるまでライトスルーになります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hotrod-store.behind-write.shutdown-timeout
キャッシュストアを停止するタイムアウト (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hotrod-store.behind-write.thread-pool-size
キャッシュストアへの変更を適用するスレッドプールのサイズ。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hotrod-store.cache-configuration
キャッシュの作成元となる Infinispan Server で定義されたキャッシュ設定テンプレートの名前。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hotrod-store.cache-loader-loads
キャッシュローダーノードが読み込む数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hotrod-store.cache-loader-misses
キャッシュローダーノードのミスの数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hotrod-store.fetch-state
true の場合、クラスター参加時に永続状態を取得します。複数のキャッシュストアがチェーンされている場合は、このプロパティーを有効にできるのは 1 つのみです。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hotrod-store.max-batch-size
ストアから挿入/削除されるバッチの最大サイズ。値が 1 未満の場合は、バッチの操作数に上限は設定されません。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hotrod-store.passivation
true の場合、データは「パッシベーション」として知られる現象である、メモリーからエビクトされる場合に限りキャッシュストアに書き込まれます。次にデータが要求されると「アクティベート」されます。これは、データがメモリーに戻され、永続ストアから削除されることを意味します。false の場合、キャッシュストアにはメモリー内のコンテンツのコピーが含まれるため、キャッシュの結果がキャッシュストアに書き込みます。これにより、基本的に「ライトスルー」設定になります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hotrod-store.preload
true の場合、キャッシュが開始すると、キャッシュストアに保存されているデータがメモリーに事前に読み込まれます。これは、起動直後にキャッシュストア内のデータが必要になり、このデータの遅延読み込みの結果としてキャッシュ操作の遅延を避けたい場合に特に便利です。起動時に「ウォームキャッシュ」を提供するために使用できますが、起動時間がこのプロセスによる影響を受けるため、パフォーマンスが低下します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hotrod-store.properties
キャッシュストアプロパティーの一覧。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hotrod-store.properties.KEY.value
キャッシュストアプロパティーの値。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hotrod-store.purge
true の場合は、起動時にこのキャッシュストアが消去されます。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hotrod-store.remote-cache-container
コンテナー管理の remote-cache-container への参照。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hotrod-store.shared
複数のキャッシュインスタンスが同じキャッシュストアを共有する場合は、この設定を True に設定する必要があります (例: 同じ共有データベースを参照する JDBC ベースの CacheStore を使用するクラスター内の複数のノード)。 これを true に設定すると、複数のキャッシュインスタンスが同じ変更を複数回書き込むことを防ぎます。有効にすると、変更元となったノードのみがキャッシュストアに書き込まれます。無効にすると、各キャッシュはデータをキャッシュストアに保存して潜在的なリモート更新に対応します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.hotrod-store.singleton
true の場合は、シングルトンストアのキャッシュストアが有効になります。SingletonStore は、クラスター内の 1 つのインスタンスのみが基本となるストアと対話する必要がある場合に使用されるキャッシュストアの委譲です。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.indexing
有効にすると、エントリーがキャッシュに追加されるとインデックス化されます。インデックスはエントリーの変更または削除として更新されます。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.indexing-properties
インデックス動作を制御するプロパティー
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.invalidations
キャッシュの無効な数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.behind-write.flush-lock-timeout
キャッシュストアにフラッシュされる状態を定期的に保護するロックの取得タイムアウト。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.behind-write.modification-queue-size
非同期キュー内のエントリーの最大数。キューが満杯になると、ストアは新規エントリーを受け入れるまでライトスルーになります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.behind-write.shutdown-timeout
キャッシュストアを停止するタイムアウト (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.behind-write.thread-pool-size
キャッシュストアへの変更を適用するスレッドプールのサイズ。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.cache-loader-loads
キャッシュローダーノードが読み込む数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.cache-loader-misses
キャッシュローダーノードのミスの数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.data-source
このストアへの接続に使用されるデータソースを参照します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.datasource
このストアへの接続に使用されるデータソースの jndi 名。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.dialect
このデータストアの方言。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.fetch-state
true の場合、クラスター参加時に永続状態を取得します。複数のキャッシュストアがチェーンされている場合は、このプロパティーを有効にできるのは 1 つのみです。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.max-batch-size
ストアから挿入/削除されるバッチの最大サイズ。値が 1 未満の場合は、バッチの操作数に上限は設定されません。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.passivation
true の場合、データは「パッシベーション」として知られる現象である、メモリーからエビクトされる場合に限りキャッシュストアに書き込まれます。次にデータが要求されると「アクティベート」されます。これは、データがメモリーに戻され、永続ストアから削除されることを意味します。false の場合、キャッシュストアにはメモリー内のコンテンツのコピーが含まれるため、キャッシュの結果がキャッシュストアに書き込みます。これにより、基本的に「ライトスルー」設定になります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.preload
true の場合、キャッシュが開始すると、キャッシュストアに保存されているデータがメモリーに事前に読み込まれます。これは、起動直後にキャッシュストア内のデータが必要になり、このデータの遅延読み込みの結果としてキャッシュ操作の遅延を避けたい場合に特に便利です。起動時に「ウォームキャッシュ」を提供するために使用できますが、起動時間がこのプロセスによる影響を受けるため、パフォーマンスが低下します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.properties
キャッシュストアプロパティーの一覧。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.properties.KEY.value
キャッシュストアプロパティーの値。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.purge
true の場合は、起動時にこのキャッシュストアが消去されます。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.shared
複数のキャッシュインスタンスが同じキャッシュストアを共有する場合は、この設定を True に設定する必要があります (例: 同じ共有データベースを参照する JDBC ベースの CacheStore を使用するクラスター内の複数のノード)。 これを true に設定すると、複数のキャッシュインスタンスが同じ変更を複数回書き込むことを防ぎます。有効にすると、変更元となったノードのみがキャッシュストアに書き込まれます。無効にすると、各キャッシュはデータをキャッシュストアに保存して潜在的なリモート更新に対応します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.singleton
true の場合は、シングルトンストアのキャッシュストアが有効になります。SingletonStore は、クラスター内の 1 つのインスタンスのみが基本となるストアと対話する必要がある場合に使用されるキャッシュストアの委譲です。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.string-keyed-table
永続キャッシュエントリーを保存するために使用されるテーブルを定義します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.string-table.batch-size
DB 挿入の場合は、バッチサイズによって、バッチ処理される挿入の数が決まります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.string-table.create-on-start
キャッシュの起動時にストアがこのデータベーステーブルを作成するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.string-table.data-column
キャッシュエントリーデータを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.string-table.drop-on-stop
キャッシュの停止時にストアがこのデータベーステーブルを削除するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.string-table.fetch-size
DB クエリーの場合、フェッチサイズは ResultSet にフェッチサイズを設定するために使用されます。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.string-table.id-column
キャッシュエントリー ID を保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.string-table.prefix
データベーステーブル名の接頭辞。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jdbc-store.string-table.timestamp-column
キャッシュエントリーのタイムスタンプを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.jndi-name
このキャッシュインスタンスをバインドする jndi-name。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.locking-component.acquire-timeout
特定のロック違反を試行する最大時間。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.locking-component.concurrency-level
ロックコンテナーの同時実行レベル。この値は、Infinispan と対話する同時スレッドの数に応じて調整します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.locking-component.current-concurrency-level
このキャッシュがサポートできるスレッドを同時に更新する推定数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.locking-component.isolation
キャッシュロック分離レベルを設定します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.locking-component.number-of-locks-available
このキャッシュで使用できるロックの数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.locking-component.number-of-locks-held
このキャッシュが現在使用中のロックの数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.locking-component.striping
true の場合は、ロックする必要のあるすべてのエントリーに対して共有ロックのプールが保持されます。それ以外の場合は、キャッシュのエントリーごとにロックが作成されます。ロックストライピングは、メモリーフットプリントを制御するのに役立ちますが、システムの同時実行性を低下させる可能性があります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.misses
キャッシュ属性ミスの数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.behind-write.flush-lock-timeout
キャッシュストアにフラッシュされる状態を定期的に保護するロックの取得タイムアウト。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.behind-write.modification-queue-size
非同期キュー内のエントリーの最大数。キューが満杯になると、ストアは新規エントリーを受け入れるまでライトスルーになります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.behind-write.shutdown-timeout
キャッシュストアを停止するタイムアウト (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.behind-write.thread-pool-size
キャッシュストアへの変更を適用するスレッドプールのサイズ。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.binary-keyed-table
キーを文字列として表現できないキャッシュエントリーを格納するために使用されるテーブルを定義します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.binary-table.batch-size
DB 挿入の場合は、バッチサイズによって、バッチ処理される挿入の数が決まります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.binary-table.create-on-start
キャッシュの起動時にストアがこのデータベーステーブルを作成するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.binary-table.data-column
キャッシュエントリーデータを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.binary-table.drop-on-stop
キャッシュの停止時にストアがこのデータベーステーブルを削除するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.binary-table.fetch-size
DB クエリーの場合、フェッチサイズは ResultSet にフェッチサイズを設定するために使用されます。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.binary-table.id-column
キャッシュエントリー ID を保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.binary-table.prefix
データベーステーブル名の接頭辞。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.binary-table.timestamp-column
キャッシュエントリーのタイムスタンプを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.cache-loader-loads
キャッシュローダーノードが読み込む数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.cache-loader-misses
キャッシュローダーノードのミスの数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.data-source
このストアへの接続に使用されるデータソースを参照します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.datasource
このストアへの接続に使用されるデータソースの jndi 名。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.dialect
このデータストアの方言。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.fetch-state
true の場合、クラスター参加時に永続状態を取得します。複数のキャッシュストアがチェーンされている場合は、このプロパティーを有効にできるのは 1 つのみです。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.max-batch-size
ストアから挿入/削除されるバッチの最大サイズ。値が 1 未満の場合は、バッチの操作数に上限は設定されません。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.passivation
true の場合、データは「パッシベーション」として知られる現象である、メモリーからエビクトされる場合に限りキャッシュストアに書き込まれます。次にデータが要求されると「アクティベート」されます。これは、データがメモリーに戻され、永続ストアから削除されることを意味します。false の場合、キャッシュストアにはメモリー内のコンテンツのコピーが含まれるため、キャッシュの結果がキャッシュストアに書き込みます。これにより、基本的に「ライトスルー」設定になります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.preload
true の場合、キャッシュが開始すると、キャッシュストアに保存されているデータがメモリーに事前に読み込まれます。これは、起動直後にキャッシュストア内のデータが必要になり、このデータの遅延読み込みの結果としてキャッシュ操作の遅延を避けたい場合に特に便利です。起動時に「ウォームキャッシュ」を提供するために使用できますが、起動時間がこのプロセスによる影響を受けるため、パフォーマンスが低下します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.properties
キャッシュストアプロパティーの一覧。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.properties.KEY.value
キャッシュストアプロパティーの値。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.purge
true の場合は、起動時にこのキャッシュストアが消去されます。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.shared
複数のキャッシュインスタンスが同じキャッシュストアを共有する場合は、この設定を True に設定する必要があります (例: 同じ共有データベースを参照する JDBC ベースの CacheStore を使用するクラスター内の複数のノード)。 これを true に設定すると、複数のキャッシュインスタンスが同じ変更を複数回書き込むことを防ぎます。有効にすると、変更元となったノードのみがキャッシュストアに書き込まれます。無効にすると、各キャッシュはデータをキャッシュストアに保存して潜在的なリモート更新に対応します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.singleton
true の場合は、シングルトンストアのキャッシュストアが有効になります。SingletonStore は、クラスター内の 1 つのインスタンスのみが基本となるストアと対話する必要がある場合に使用されるキャッシュストアの委譲です。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.string-keyed-table
永続キャッシュエントリーを保存するために使用されるテーブルを定義します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.string-table.batch-size
DB 挿入の場合は、バッチサイズによって、バッチ処理される挿入の数が決まります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.string-table.create-on-start
キャッシュの起動時にストアがこのデータベーステーブルを作成するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.string-table.data-column
キャッシュエントリーデータを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.string-table.drop-on-stop
キャッシュの停止時にストアがこのデータベーステーブルを削除するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.string-table.fetch-size
DB クエリーの場合、フェッチサイズは ResultSet にフェッチサイズを設定するために使用されます。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.string-table.id-column
キャッシュエントリー ID を保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.string-table.prefix
データベーステーブル名の接頭辞。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mixed-jdbc-store.string-table.timestamp-column
キャッシュエントリーのタイムスタンプを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.mode
クラスター化されたキャッシュモード (非同期操作の場合は ASYNC、同期操作の場合は SYNC) を設定します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.module
このキャッシュの設定のビルド時にクラスローダーを使用する必要があるモジュール。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.number-of-entries
キャッシュ内のエントリー数 (パッシベートされたエントリーを含む)。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.object-memory.evictions
キャッシュエビクション操作の数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.object-memory.max-entries
キャッシュインスタンス内のエントリーの最大数。選択した値が 2 のべき乗でない場合、実際の値はデフォルトで選択した値よりも大きい 2 の最小のべき乗になります。-1は制限がないことを意味します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.object-memory.size
キャッシュエントリーの数がこのしきい値を超えると、最近使用されたエントリーのエビクションを発生させます。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.object-memory.strategy
キャッシュエビクションストラテジーを設定します。使用できるオプションは、「UNORDERED」、「FIFO」、「LRU」、「LIRS」、および「NONE」(エビクションを無効にする) です。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.off-heap-memory.capacity
オフヒープストレージの容量を定義します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.off-heap-memory.eviction-type
size 属性がキャッシュエントリーの数 (つまり COUNT) か、キャッシュエントリーの共同サイズ (つまり MEMORY) かを示します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.off-heap-memory.evictions
キャッシュエビクション操作の数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.off-heap-memory.size
eviction-type で定義されるエビクションのしきい値。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.passivations
キャッシュノードのパッシベーションの数 (メモリーからキャッシュストアへのノードのパッシベーション)。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.queue-flush-interval
ASYNC モードでは、この属性はレプリケーションキューのフラッシュを実行するために使用する非同期スレッドの頻度を制御します。これは、スレッドウェイクアップ時間 (ミリ秒単位) を表す正の整数である必要があります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.queue-size
ASYNC モードでは、この属性を使用して、特定のしきい値に達するとキューのフラッシュをトリガーできます。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.read-write-ratio
キャッシュの読み取り/書き込み比率 ((hits+misses)/stores)。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.behind-write.flush-lock-timeout
キャッシュストアにフラッシュされる状態を定期的に保護するロックの取得タイムアウト。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.behind-write.modification-queue-size
非同期キュー内のエントリーの最大数。キューが満杯になると、ストアは新規エントリーを受け入れるまでライトスルーになります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.behind-write.shutdown-timeout
キャッシュストアを停止するタイムアウト (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.behind-write.thread-pool-size
キャッシュストアへの変更を適用するスレッドプールのサイズ。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.cache
このリモートストアに使用するリモートキャッシュの名前。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.cache-loader-loads
キャッシュローダーノードが読み込む数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.cache-loader-misses
キャッシュローダーノードのミスの数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.fetch-state
true の場合、クラスター参加時に永続状態を取得します。複数のキャッシュストアがチェーンされている場合は、このプロパティーを有効にできるのは 1 つのみです。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.max-batch-size
ストアから挿入/削除されるバッチの最大サイズ。値が 1 未満の場合は、バッチの操作数に上限は設定されません。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.passivation
true の場合、データは「パッシベーション」として知られる現象である、メモリーからエビクトされる場合に限りキャッシュストアに書き込まれます。次にデータが要求されると「アクティベート」されます。これは、データがメモリーに戻され、永続ストアから削除されることを意味します。false の場合、キャッシュストアにはメモリー内のコンテンツのコピーが含まれるため、キャッシュの結果がキャッシュストアに書き込みます。これにより、基本的に「ライトスルー」設定になります。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.preload
true の場合、キャッシュが開始すると、キャッシュストアに保存されているデータがメモリーに事前に読み込まれます。これは、起動直後にキャッシュストア内のデータが必要になり、このデータの遅延読み込みの結果としてキャッシュ操作の遅延を避けたい場合に特に便利です。起動時に「ウォームキャッシュ」を提供するために使用できますが、起動時間がこのプロセスによる影響を受けるため、パフォーマンスが低下します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.properties
キャッシュストアプロパティーの一覧。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.properties.KEY.value
キャッシュストアプロパティーの値。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.purge
true の場合は、起動時にこのキャッシュストアが消去されます。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.remote-servers
このキャッシュストアのリモートサーバーの一覧。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.shared
複数のキャッシュインスタンスが同じキャッシュストアを共有する場合は、この設定を True に設定する必要があります (例: 同じ共有データベースを参照する JDBC ベースの CacheStore を使用するクラスター内の複数のノード)。 これを true に設定すると、複数のキャッシュインスタンスが同じ変更を複数回書き込むことを防ぎます。有効にすると、変更元となったノードのみがキャッシュストアに書き込まれます。無効にすると、各キャッシュはデータをキャッシュストアに保存して潜在的なリモート更新に対応します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.singleton
true の場合は、シングルトンストアのキャッシュストアが有効になります。SingletonStore は、クラスター内の 1 つのインスタンスのみが基本となるストアと対話する必要がある場合に使用されるキャッシュストアの委譲です。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.socket-timeout
リモートキャッシュ通信のソケットタイムアウト。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-store.tcp-no-delay
リモートキャッシュ通信の TCP_NODELAY 値。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remote-timeout
SYNC モードでは、リモート呼び出しの実行時に確認応答を待機するためにタイムアウト (ミリ秒単位) が使用され、呼び出しが中止され、例外が発生します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remove-hits
キャッシュ属性削除のヒットの数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.remove-misses
キャッシュ属性削除のミスの数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.replication-count
クラスターにデータが複製された回数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.replication-failures
データレプリケーションの失敗回数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.start
EAGER (即時開始) または LAZY (オンデマンド開始) のいずれかのキャッシュ開始モード。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.statistics-enabled
有効にすると、このキャッシュの統計が収集されます。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.stores
キャッシュ属性の put 操作の数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.success-ratio
データのレプリケーション成功比率 (successes/successes+failures)。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.time-since-reset
キャッシュ統計がリセットされてからの時間 (秒単位)。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.transaction-component.commits
トランザクションコミットの数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.transaction-component.locking
このキャッシュのロックモード (OPTIMISTIC または PESSIMISTIC のいずれか)。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.transaction-component.mode
キャッシュトランザクションモードを、NONE、NON_XA、NON_DURABLE_XA、FULL_XA のいずれかに設定します。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.transaction-component.prepares
準備するトランザクションの数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.transaction-component.rollbacks
ロールバックするトランザクションの数。
thorntail.infinispan.cache-containers.KEY.invalidation-caches.KEY.transaction-component.stop-timeout
キャッシュの停止時に継続中のトランザクションがある場合、Infinispan は継続中のリモートトランザクションとローカルトランザクションが完了するまで待機します。待機する時間は、キャッシュ停止のタイムアウトによって定義されます。
thorntail.infinispan.cache-containers.KEY.is-coordinator
このノードがクラスターのコーディネーターである場合に true に設定します。キャッシュマネージャーが起動していない場合は、null を返す可能性があります。
thorntail.infinispan.cache-containers.KEY.jgroups-transport.channel
このキャッシュコンテナーのトランスポートのチャンネル。
thorntail.infinispan.cache-containers.KEY.jgroups-transport.cluster
グループ通信クラスターの名前
thorntail.infinispan.cache-containers.KEY.jgroups-transport.executor
トランスポートに使用するエグゼキューター
thorntail.infinispan.cache-containers.KEY.jgroups-transport.lock-timeout
トランスポートのロックのタイムアウト
thorntail.infinispan.cache-containers.KEY.jgroups-transport.stack
トランスポートに使用する jgroups スタック
thorntail.infinispan.cache-containers.KEY.jndi-name
このキャッシュコンテナーをバインドする jndi 名
thorntail.infinispan.cache-containers.KEY.listener-executor
レプリケーションキューに使用されるエグゼキューター
thorntail.infinispan.cache-containers.KEY.listener-thread-pool.keepalive-time
アイドル時にスレッドが実行し続ける期間 (ミリ秒) を指定するために使用されます。指定しないと、スレッドはエグゼキューターがシャットダウンするまで実行します。
thorntail.infinispan.cache-containers.KEY.listener-thread-pool.max-threads
スレッドプールの最大サイズ。
thorntail.infinispan.cache-containers.KEY.listener-thread-pool.min-threads
最大プールサイズよりも小さいコアスレッドプールサイズ。定義されていない場合、コアスレッドプールサイズは最大スレッドプールサイズと同じです。
thorntail.infinispan.cache-containers.KEY.listener-thread-pool.queue-length
キューの長さ。
thorntail.infinispan.cache-containers.KEY.local-address
ノードのローカルアドレス。キャッシュマネージャーが起動していない場合は、null を返す可能性があります。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.activations
キャッシュノードのアクティベーション (キャッシュストアからメモリーにノードを取り込む) の数。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.average-read-time
キャッシュ読み取りの平均時間 (ミリ秒単位)。ヒットおよびミスの数が含まれます。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.average-write-time
キャッシュ書き込みの平均時間 (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.batching
有効にすると、このキャッシュに対して呼び出しバッチ API が利用可能になります。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.behind-write.flush-lock-timeout
キャッシュストアにフラッシュされる状態を定期的に保護するロックの取得タイムアウト。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.behind-write.modification-queue-size
非同期キュー内のエントリーの最大数。キューが満杯になると、ストアは新規エントリーを受け入れるまでライトスルーになります。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.behind-write.shutdown-timeout
キャッシュストアを停止するタイムアウト (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.behind-write.thread-pool-size
キャッシュストアへの変更を適用するスレッドプールのサイズ。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.binary-keyed-table
キーを文字列として表現できないキャッシュエントリーを格納するために使用されるテーブルを定義します。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.binary-table.batch-size
DB 挿入の場合は、バッチサイズによって、バッチ処理される挿入の数が決まります。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.binary-table.create-on-start
キャッシュの起動時にストアがこのデータベーステーブルを作成するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.binary-table.data-column
キャッシュエントリーデータを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.binary-table.drop-on-stop
キャッシュの停止時にストアがこのデータベーステーブルを削除するかどうかを示します。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.binary-table.fetch-size
DB クエリーの場合、フェッチサイズは ResultSet にフェッチサイズを設定するために使用されます。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.binary-table.id-column
キャッシュエントリー ID を保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.binary-table.prefix
データベーステーブル名の接頭辞。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.binary-table.timestamp-column
キャッシュエントリーのタイムスタンプを保持するデータベース列。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.cache-loader-loads
キャッシュローダーノードが読み込む数。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.cache-loader-misses
キャッシュローダーノードのミスの数。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.data-source
このストアへの接続に使用されるデータソースを参照します。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.datasource
このストアへの接続に使用されるデータソースの jndi 名。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.dialect
このデータストアの方言。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.fetch-state
true の場合、クラスター参加時に永続状態を取得します。複数のキャッシュストアがチェーンされている場合は、このプロパティーを有効にできるのは 1 つのみです。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.max-batch-size
ストアから挿入/削除されるバッチの最大サイズ。値が 1 未満の場合は、バッチの操作数に上限は設定されません。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.passivation
true の場合、データは「パッシベーション」として知られる現象である、メモリーからエビクトされる場合に限りキャッシュストアに書き込まれます。次にデータが要求されると「アクティベート」されます。これは、データがメモリーに戻され、永続ストアから削除されることを意味します。false の場合、キャッシュストアにはメモリー内のコンテンツのコピーが含まれるため、キャッシュの結果がキャッシュストアに書き込みます。これにより、基本的に「ライトスルー」設定になります。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.preload
true の場合、キャッシュが開始すると、キャッシュストアに保存されているデータがメモリーに事前に読み込まれます。これは、起動直後にキャッシュストア内のデータが必要になり、このデータの遅延読み込みの結果としてキャッシュ操作の遅延を避けたい場合に特に便利です。起動時に「ウォームキャッシュ」を提供するために使用できますが、起動時間がこのプロセスによる影響を受けるため、パフォーマンスが低下します。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.properties
キャッシュストアプロパティーの一覧。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.properties.KEY.value
キャッシュストアプロパティーの値。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.purge
true の場合は、起動時にこのキャッシュストアが消去されます。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.shared
複数のキャッシュインスタンスが同じキャッシュストアを共有する場合は、この設定を True に設定する必要があります (例: 同じ共有データベースを参照する JDBC ベースの CacheStore を使用するクラスター内の複数のノード)。 これを true に設定すると、複数のキャッシュインスタンスが同じ変更を複数回書き込むことを防ぎます。有効にすると、変更元となったノードのみがキャッシュストアに書き込まれます。無効にすると、各キャッシュはデータをキャッシュストアに保存して潜在的なリモート更新に対応します。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-jdbc-store.singleton
true の場合は、シングルトンストアのキャッシュストアが有効になります。SingletonStore は、クラスター内の 1 つのインスタンスのみが基本となるストアと対話する必要がある場合に使用されるキャッシュストアの委譲です。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-memory.eviction-type
size 属性がキャッシュエントリーの数 (つまり COUNT) か、キャッシュエントリーの共同サイズ (つまり MEMORY) かを示します。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-memory.evictions
キャッシュエビクション操作の数。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.binary-memory.size
eviction-type で定義されるエビクションのしきい値。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.cache-status
キャッシュコンポーネントのステータス。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.custom-store.attribute-class
このキャッシュストアに使用するカスタムストア実装クラス。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.custom-store.behind-write.flush-lock-timeout
キャッシュストアにフラッシュされる状態を定期的に保護するロックの取得タイムアウト。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.custom-store.behind-write.modification-queue-size
非同期キュー内のエントリーの最大数。キューが満杯になると、ストアは新規エントリーを受け入れるまでライトスルーになります。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.custom-store.behind-write.shutdown-timeout
キャッシュストアを停止するタイムアウト (ミリ秒単位)。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.custom-store.behind-write.thread-pool-size
キャッシュストアへの変更を適用するスレッドプールのサイズ。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.custom-store.cache-loader-loads
キャッシュローダーノードが読み込む数。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.custom-store.cache-loader-misses
キャッシュローダーノードのミスの数。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.custom-store.fetch-state
true の場合、クラスター参加時に永続状態を取得します。複数のキャッシュストアがチェーンされている場合は、このプロパティーを有効にできるのは 1 つのみです。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.custom-store.max-batch-size
ストアから挿入/削除されるバッチの最大サイズ。値が 1 未満の場合は、バッチの操作数に上限は設定されません。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.custom-store.passivation
true の場合、データは「パッシベーション」として知られる現象である、メモリーからエビクトされる場合に限りキャッシュストアに書き込まれます。次にデータが要求されると「アクティベート」されます。これは、データがメモリーに戻され、永続ストアから削除されることを意味します。false の場合、キャッシュストアにはメモリー内のコンテンツのコピーが含まれるため、キャッシュの結果がキャッシュストアに書き込みます。これにより、基本的に「ライトスルー」設定になります。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.custom-store.preload
true の場合、キャッシュが開始すると、キャッシュストアに保存されているデータがメモリーに事前に読み込まれます。これは、起動直後にキャッシュストア内のデータが必要になり、このデータの遅延読み込みの結果としてキャッシュ操作の遅延を避けたい場合に特に便利です。起動時に「ウォームキャッシュ」を提供するために使用できますが、起動時間がこのプロセスによる影響を受けるため、パフォーマンスが低下します。
thorntail.infinispan.cache-containers.KEY.local-caches.KEY.custom-store.properties
キャッシュストアプロパティーの一覧。
thorntail.infinispan.cache-containers.KEY.local-caches.K