7.16. サービス提供可否チェック

この機能では、アプリケーションが提供する機能に対して、サービス提供可否をチェックする。

この機能を使うことで、以下のようなことが実現できる。

  • ウェブにおいて一部機能へのアクセスを遮断し、503エラーを返す。
  • 常駐バッチにおいて、空回り(処理せずに待機する状態)を行う。

重要

本機能は、アプリケーションの要件が合致する場合に限り、使用すること。 本機能は、データベースを使用してサービス提供可否の状態を管理し、 リクエスト単位でサービス提供可否を設定する( サービス提供可否チェックを使うための設定 を参照)。 例えば、ウェブの登録機能といった場合、初期表示/確認/戻る/登録といった複数リクエストで構成されるのが一般的である。 そのため、本機能は、細かくサービス提供可否を設定できる反面、非常に細かいデータ設計が必要となり、 開発時の生産性低下やリリース後の運用負荷が高まる可能性がある。

7.16.1. 機能概要

7.16.1.1. リクエスト単位でサービス提供可否をチェックできる

サービス提供可否チェックハンドラ をハンドラキューに設定することで、 ウェブでも常駐バッチでも、リクエスト単位でサービス提供可否をチェックできるようになる。 この機能は、ウェブや常駐バッチといった処理方式に依存しない。

詳細は以下を参照。

7.16.2. モジュール一覧

<dependency>
  <groupId>com.nablarch.framework</groupId>
  <artifactId>nablarch-common-auth</artifactId>
</dependency>
<dependency>
  <groupId>com.nablarch.framework</groupId>
  <artifactId>nablarch-common-auth-jdbc</artifactId>
</dependency>

7.16.3. 使用方法

7.16.3.1. サービス提供可否チェックを使うための設定

この機能では、データベースを使用してサービス提供可否の状態を管理する。 テーブルのレイアウトは以下となる。

リクエストID(PK) リクエストを識別するための値。文字列型
サービス提供可否状態 可の場合は”1”。文字列型。設定で値を変更できる。

サービス提供可否チェックを使うためには、 BasicServiceAvailability の定義をコンポーネント設定ファイルに追加する。 コンポーネント名には serviceAvailability と指定する。

<component name="serviceAvailability" class="nablarch.common.availability.BasicServiceAvailability">
  <!-- テーブル名 -->
  <property name="tableName" value="REQUEST"/>
  <!-- リクエストIDのカラム名 -->
  <property name="requestTableRequestIdColumnName" value="REQUEST_ID"/>
  <!-- サービス提供可否状態のカラム名 -->
  <property name="requestTableServiceAvailableColumnName" value="SERVICE_AVAILABLE"/>
  <!-- サービス提供可を示す値 -->
  <property name="requestTableServiceAvailableOkStatus" value="1"/>
  <!-- データベースアクセスに使用するトランザクションマネージャ -->
  <property name="dbManager" ref="serviceAvailabilityDbManager"/>
</component>

7.16.3.2. サービス提供可否をチェックする

サービス提供可否チェックは、 ServiceAvailabilityUtil を使用する。

7.16.3.3. サービス提供可否に応じて画面表示を制御する

サービス提供可否に応じてボタンやリンクの非表示(非活性)を制御したい場合は、カスタムタグを使用する。 認可チェック/サービス提供可否に応じてボタン/リンクの表示/非表示を切り替える を参照。