9.4. OpenShift での Camel Spring Boot XA クイックスタートの実行

この手順では、実行中の単一ノードの OpenShift クラスターでクイックスタートを実行する方法を説明します。

手順

  1. Camel Spring Boot XA プロジェクトをダウンロードします。

    git clone --branch spring-boot-camel-xa-7.10.0.fuse-sb2-7_10_0-00013-redhat-00001 https://github.com/jboss-fuse/spring-boot-camel-xa
  2. spring-boot-camel-xa ディレクトリーに移動し、以下のコマンドを実行します。

    mvn clean install
  3. OpenShift サーバーにログインします。

    oc login -u developer -p developer
  4. test という名前のプロジェクト namespace が存在しない場合は作成します。

    oc new-project test

    test プロジェクト namespace がすでに存在する場合は、以下のコマンドを使用して切り替えます。

    oc project test
  5. 依存関係をインストールします。

    • ユーザー名 theuser とパスワード Thepassword1! を使用して、postgresql をインストールします。

      oc new-app --param=POSTGRESQL_USER=theuser --param=POSTGRESQL_PASSWORD='Thepassword1!' --env=POSTGRESQL_MAX_PREPARED_TRANSACTIONS=100 --template=postgresql-persistent
    • ユーザー名 theuser とパスワード Thepassword1! を使用して、A-MQ ブローカーをインストールします。

      oc new-app --param=MQ_USERNAME=theuser --param=MQ_PASSWORD='Thepassword1!' --template=amq63-persistent
  6. トランザクションログの永続ボリュームクレームを作成します。

    oc create -f persistent-volume-claim.yml
  7. クイックスタートをビルドおよびでデプロイします。

    mvn oc:deploy -Popenshift
  8. レプリカの数を必要に合わせてスケールアップします。

    oc scale statefulset spring-boot-camel-xa --replicas 3

    注記: Pod 名はトランザクションマネージャー ID として使用されます (spring.jta.transaction-manager-id プロパティー)。また、現在の実装によってトランザクションマネージャー ID の長さも制限されます。よって、以下の点に注意してください。

    • StatefulSet の名前はトランザクションシステムの識別子であるため、変更しないでください。
    • Pod の名前が 23 文字以下になるように StatefulSet の名前を付ける必要があります。Pod 名は、<statefulset-name>-0, <statefulset-name>-1 のような慣例を使用して、OpenShift によって作成されます。Narayana はできる限り、同じ ID を持つリカバリーマネージャーが複数存在しないようにするため、Pod 名が制限よりも長い場合は、最後の 23 バイトがトランザクション ID として適用されます (ーなどの一部の文字の削除後)。
  9. クイックスタートが実行されたら、以下のコマンドを使用してベースサービス URL を取得します。

    NARAYANA_HOST=$(oc get route spring-boot-camel-xa -o jsonpath={.spec.host})