intra-mart Accel Platform — バーチャルテナントにおける変更点 第4版 2018-12-01

Copyright © 2014 NTT DATA INTRAMART CORPORATION↑Top
1

intra-mart Accel Platform — バーチャルテナントにおける変更点 第4版 2018-12-01

目次
改訂情報
はじめに
用語解説
基盤機能
セットアップ・環境構築
共通
ログ
システム管理認証
Webサービス・外部ソフトウェア接続モジュール
テナント管理テナント管理外部メニュー連携
アプリケーション
IMBox
IM-Workflow
IM-ContentsSearch for Accel Platform
IM-BIS for Accel Platform
Jaspersoft

2

intra-mart Accel Platform — バーチャルテナントにおける変更点 第4版 2018-12-01

改訂情報
変更年月日

変更内容

2014-04-01

初版

2014-09-01

第２版

下記を追加しました「共通」に 「テナントのリソースにアクセスするためには、処理対象のテナントが特定されている必要があります。 」を追加しました。
2015-12-01

第３版

下記を追加しました「共通」に 起動時では利用できない互換APIを追記しました。

2018-12-01

第４版

下記を追加しました「セットアップ・環境構築」にテナント環境情報に関する説明を追記しました。

3

intra-mart Accel Platform — バーチャルテナントにおける変更点 第4版 2018-12-01

はじめに
intra-mart Accel Platform 2014 Spring(Granada) よりバーチャルテナント機能が追加されました。
このドキュメントでは、バーチャルテナント機能の追加にあたって、 intra-mart Accel Platform
2013 Winter(Felicia) と比べて変更された内容について説明します。
詳細な設定等については、各種ドキュメントを参照してください。

用語解説
Storage として使用するディレクトリを %STORAGE_PATH% と略します。
Webアプリケーションのコンテキストパスを %CONTEXT_PATH% と略します。

4

intra-mart Accel Platform — バーチャルテナントにおける変更点 第4版 2018-12-01

基盤機能セットアップ・環境構築
テナントごとにライセンス数を割り当てる必要があります。
ライセンスの割り当ては必要ありませんでしたが、テナントごとにライセンス数を割り当てる必要があります。

SMTPサーバ設定（javamail-config）がテナント単位で設定できるようになりました。
SMTPサーバ設定（javamail-config）がテナント単位で設定できるようになりました。

パスワード履歴管理設定（password-history-config）がテナント単位で設定できるようになりました。
パスワード履歴管理設定（password-history-config）がテナント単位で設定できるようになりました。

データソース情報が画面から登録・参照できるようになりました。（Resin のみ）
データソース情報が画面から登録・参照できるようになりました。（Resin のみ）
システム管理者 の「データソース設定」画面で設定することが可能です。
新しく登録したデータソース情報は、%STORAGE_PATH%/system/storage/conf/resinresource-config.xml に保存されます。
なお、システムデータベースのデータソース情報、および、テナント初期設定で利用するテナン
トデータベースのデータソース情報は、 %CONTEXT_PATH%/WEB-INF/resin-web.xml に設定する必要があります。

テナントデータベースのリソース参照名が画面から設定できるようになりました。（Resin のみ）
テナントデータベースのリソース参照名が画面から設定できるようになりました。（Resin のみ）
テナント新規作成時（テナント初期設定を含む）は「テナント環境情報」で設定することが可能です。
既存のテナントに対しては「テナント管理」画面の「テナント環境情報」タブで設定することが5intra-mart Accel Platform — バーチャルテナントにおける変更点 第4版 2018-12-01
可能です。
設定ファイルのデータソースマッピング設定（data-source-mapping-config）と異なる設定を行った場合、 %STORAGE_PATH%/system/storage/conf/data-source-mappingconfig.xml にすべての設定が保存されます。（以降、システムストレージの設定ファイルが参照されます。）
なお、システムデータベースのデータソースマッピングは、データソースマッピング設定（data-source-mapping-config）に設定する必要があります。

コラム
intra-mart Accel Platform 2018 Winter(Urara) 以降、「Payaraデータソース設定」モジュールを適用している場合、Payara でもテナントデータベースのリソース参照名を画面から設定できるようになりました。

パブリックストレージのルートパスが画面から設定できるようになりました。
（Resin のみ）
パブリックストレージのルートパスが画面から設定できるようになりました。（Resin のみ）
テナント新規作成時（テナント初期設定を含む）は「テナント環境情報」で設定することが可能です。
既存のテナントに対しては「テナント管理」画面の「テナント環境情報」タブで設定することが可能です。
設定したパスは、システムデータベースに登録されます。
画面で設定しない場合のパブリックストレージのルートパス
は、%STORAGE_PATH%/public/storage/<テナントID> です。

コラム
intra-mart Accel Platform 2018 Winter(Urara) 以降、すべてアプリケーションサーバに対して、パブリックストレージのルートパスを画面から設定できるようになりました。

ベースURLが画面から設定できるようになりました。（Resin のみ）
ベースURLが画面から設定できるようになりました。（Resin のみ）
テナント新規作成時（テナント初期設定を含む）は「テナント環境情報」で設定することが可能です。
既存のテナントに対しては「テナント管理」画面の「テナント環境情報」タブで設定することが可能です。

6

intra-mart Accel Platform — バーチャルテナントにおける変更点 第4版 2018-12-01
設定したベースURLは、システムデータベースに登録されます。
画面で設定しない場合は、サーバコンテキスト設定（server-context-config）の設定が有効です。

コラム
intra-mart Accel Platform 2018 Winter(Urara) 以降、すべてアプリケーションサーバに対して、ベースURLを画面から設定できるようになりました。

ジョブスケジューラの管理テーブルはシステムデータベースに移動しました。
ジョブスケジューラの管理テーブルは、テナントデータベースからシステムデータベースに移動しました。
これにより、システムデータベース と テナントデータベース が異なるデータベースを参照している場合、「データベース操作」画面からは、ジョブスケジューラの管理テーブルの操作を行うことはできません。

ジョブスケジューラはサーバ起動時に開始するようになりました。
ジョブスケジューラは、これまでテナント環境セットアップの完了後に開始していましたが、サーバ起動時に開始するようになりました。

パブリックストレージの資材はテナント環境セットアップ時に展開されるようになりました。
パブリックストレージの資材は、これまでサーバ起動時に展開されていましたが、テナント環境セットアップ時に展開されるようになりました。

共通
アプリケーションロックはテナントを意識して利用する必要があります。
アプリケーションロックはシステム全体で管理されます。（テナントごとのロック管理は行われません）
テナントごとにロックを管理したい場合は、それぞれのテナント間でもロック ID が重複しないようにしてください。
具体的には、ロック ID に テナント ID を含めるなどの対応が必要です。
この対応を行わなかった場合、バーチャルテナントによる複数テナント で意図しないロック競合やロック解除が発生する可能性があります。

非同期処理の直列タスクキューはテナントを意識して利用する必要があります。
7

intra-mart Accel Platform — バーチャルテナントにおける変更点 第4版 2018-12-01
非同期処理の直列タスクキューはシステム全体で管理されます。（テナントごとのキュー管理は行われません）
テナントごとに異なる直列タスクキューを利用したい場合は、テナントごとに異なるキュー IDを割り当ててください。
具体的には、キュー ID にテナント ID を含めるなどの対応が必要です。

FileExchange でアップロードしたファイルはテナント単位で管理されるようになりました。
FileExchange でアップロードしたファイルはテナント単位で管理されるようになりました。
そのため、アップロード先のテナントと操作対象のテナントが異なる場合は、ファイルをダウンロードできません。
例えば、デフォルトテナント「 default 」と 2つ目のテナント「 secondary 」が存在している環境で、「 default 」テナントにファイルをアップロードした場合、そのファイルをダウンロードできるユーザは以下の通りです。
（◯：ダウンロード可能、×：ダウンロード不可）
ダウンロードユーザ制限を「ログインユーザのみ」に指定した場合◯：「 default 」にログインしているユーザ

×：「 secondary 」にログインしているユーザ
×：ゲストユーザ（操作対象テナントが「 default 」の場合）
×：ゲストユーザ（操作対象テナントが「 secondary 」の場合）
ダウンロードユーザ制限を「制限なし」に指定した場合◯：「 default 」にログインしているユーザ
×：「 secondary 」にログインしているユーザ◯：ゲストユーザ（操作対象テナントが「 default 」の場合）
×：ゲストユーザ（操作対象テナントが「 secondary 」の場合）（ゲストユーザの操作対象テナントは、リクエスト情報を利用したテナント自動解決機能によって変わります。）

CacheManager はテナント単位でキャッシュするようになりました。
CacheManager は、これまでシステム単位でキャッシュしていましたが、テナント単位でキャッシュするようになりました。

ショートカット URL はテナント単位で管理されるようになりました。
ショートカット URL は、これまでシステム単位で管理されていましたが、テナント単位で管理されるようになりました。

imuiPicture が生成する URL はテナント単位で管理されるようになりました。
8

intra-mart Accel Platform — バーチャルテナントにおける変更点 第4版 2018-12-01
imuiPicture が生成する URL は、これまでシステム単位で管理されていましたが、テナント単位で管理されるようになりました。

アカウントコンテキストに「テナント ID 」プロパティが追加されました。
バーチャルテナントによる複数テナント により、1つの WAR ファイルで マルチテナント 環境を構築できるようになりました。
これに伴い、操作対象のテナントを特定するためのプロパティ「テナント ID 」がアカウントコンテキストに追加されました。
テナントが複数存在する場合は、テナント ID を指定してログインする必要があります。
なお、リクエスト情報を利用したテナント自動解決機能を利用すると、ログイン時にテナントを指定せずに、操作対象のテナントを自動的に解決することが可能です。

テナントのリソースにアクセスするためには、処理対象のテナントが特定されている必要があります。
処理対象のテナントが特定されていない状態では、テナントデータベースやパブリックストレージにアクセスすることはできません。
また、互換 API の VirtualFile (スクリプト開発)および NetworkFile ( java 開発)も利用できません。
intra-mart Accel Platform では、以下のタイミングにおいてテナントが解決されていません。
サーバ起動時
共通ライブラリの初期化時などが該当します。
アカウントコンテキスト生成時
SSO ユーザコードプロバイダの実行時などが該当します。

サーバ起動時はアカウントコンテキストのテナント ID に依存した API を利用することはできません。
サーバ起動時、アカウントコンテキストのテナント ID には null が設定されます。
そのため、サーバ起動時はアカウントコンテキストのテナント ID に依存した API を利用することはできません。
例えば、 AccountInfoManager はアカウントコンテキストのテナント ID を利用してテナントデータベースへアクセスするため、サーバ起動時に利用することはできません。
また、互換 API の VirtualFile (スクリプト開発)および NetworkFile ( java 開発)も利用できません。

テナントを跨った処理には対応していません。
バーチャルテナント機能は、それぞれのテナントを跨った処理には対応していません。
例えば、テナント A で運用しているワークフローでは、テナント B のユーザを処理対象者として指定することはできません。

9intra-mart Accel Platform — バーチャルテナントにおける変更点 第4版 2018-12-01
テナントを跨った処理は、IM-BIS for Accel Platformや Webサービス等によるサービス連携をご利用ください。

特定のテナントを対象とした画面のカスタマイズはできません。
バーチャルテナント機能は、特定のテナントを対象とした画面のカスタマイズはできません。
テナントごとにカスタマイズが必要な場合は、WARファイルによる複数テナント をご利用ください。

パスワードリマインダ機能の有効・無効は画面から変更できません。
パスワードリマインダ機能の有効・無効は、これまでパスワードリマインダ設定画面から変更できましたが、システム単位で管理されるようになったため画面から変更することはできません。
有効・無効を切り替える場合は、設定ファイルの内容を変更してください。
詳しい設定内容は「設定ファイルリファレンス」 - 「パスワードリマインダ機能」を参照してください。

ログ
テナントIDが標準で出力されるようになりました。
ログにテナントIDが標準で出力されるようになりました。
これにより、ログを参照する際にどのテナントの情報であるかを判別したり、テナント単位でログファイルを分割することが可能になりました。
この変更に伴い、ログ出力時のフォーマットパターンが変わりました。
例えば、 標準のシステムログ設定ファイル（%CONTEXT_PATH%/WEBINF/conf/log/im_logger.xml） では、「テナントID (%X{tenant.id})」は、「ロガー名(%logger{255})」 と 「ログID (%X{log.id})」 の 間に出力されます。
intra-mart Accel Platform 2013 Winter(Felicia)<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}][%thread]%-5level%logger{255} %X{log.id}%X{request.id} [%X{log.message.code}]%msg%nopex%n</pattern>

intra-mart Accel Platform 2014 Spring(Granada)<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}][%thread]%-5level%logger{255} %X{tenant.id} %X{log.id}%X{request.id} [%X{log.message.code}] %msg%nopex%n</pattern>

ログファイルを利用して自動的にエラー検知を行っている場合は、フォーマットパターンが変わることによる影響有無を確認してください。

10intra-mart Accel Platform — バーチャルテナントにおける変更点 第4版 2018-12-01
影響がある場合は、エラー検知手段の変更や、2013 Winter(Felicia) まで利用していたログ設定ファイルを利用するなどを検討してください。

システム管理システム管理者がログイン直後に操作対象となるテナントは デフォルトテナントです。
システム管理者がログイン直後に操作対象となるテナントは デフォルトテナント です。
なお、操作対象のテナントは「テナントの切り替え」画面で切り替えることができます。

一般ユーザに対して認可設定権限を与えることができるようになりました。
一般ユーザに対して認可設定権限を与えることができるようになりました。
既存のテナント管理者が何らかの理由でログインできなくなった場合や、認可設定が可能なユーザが不在となった場合に実行します。

認可設定、および、ジョブ管理に必要な認可リソースを復元できるようになりました。
テナントの運用に必要な最低限のデータを、システム管理者が復元できるようになりました。
具体的には、認可設定、および、ジョブ管理に必要な認可リソースを復元します。
認可設定やジョブ管理に関する認可リソースが誤って削除されてしまい、画面上で設定できなくなった場合に実行します。

テナント管理者を容易に作成できるようになりました。
テナント管理者を容易に作成できるようになりました。
テナント環境セットアップでテナント管理者が作成されなかった場合に実行します。

認証
一般ユーザの操作対象テナントはログイン時に指定したテナントです。
一般ユーザの操作対象テナントは、ログイン時に指定したテナントです。
テナントが複数ある場合、ログイン画面に テナントID 入力フィールドが表示されます。
一般ユーザは、ログイン画面で入力したテナントにログインします。
ただし、リクエスト情報を利用したテナント自動解決機能が有効である場合、解決されたテナン
トにログインします。
（ログイン時のテナントID入力は不要です。）

11intra-mart Accel Platform — バーチャルテナントにおける変更点 第4版 2018-12-01

ゲストユーザの操作対象テナントはデフォルトテナントです。
ゲストユーザの操作対象テナントはデフォルトテナントです。
（ログイン前、および、ログアウト後の操作対象テナントはデフォルトテナントです）
ゲストユーザでアクセスした際のロケールやテーマは、デフォルトテナントの設定が利用されます。
ただし、リクエスト情報を利用したテナント自動解決機能が有効である場合、解決されたテナントが操作対象テナントです。

自動ログイン機能にテナントIDを指定するためのパラメータ「im_tenant_id」が追加されました。
自動ログイン機能にテナントIDを指定するためのパラメータ「im_tenant_id」が追加されました。
ただし、リクエスト情報を利用したテナント自動解決機能が有効な場合、解決されたテナントにログインします。（パラメータで指定されたテナントIDは無視されます。）
リクエスト情報を利用したテナント自動解決機能が無効、かつ、パラメータの指定を省略した場
合は、デフォルトテナントが操作対象テナントです。

LDAP認証の設定が画面から設定できるようになりました。
LDAP認証の設定が画面から設定できるようになりました。
テナント新規作成時（テナント初期設定を含む）は「LDAP連携・設定」で設定することが可能です。
既存のテナントに対しては「テナント管理」画面の「LDAP連携・設定」タブで設定することが可能です。
LDAP認証設定ファイル（ldap-certification-config）の内容はテナントを作成する際のひな形として利用されます。

統合Windows認証 での認証は、Resin 上で行うようになりました。
統合Windows認証 での認証は、これまで IIS上で行われていましたが、 Resin 上で行うようになりました。
これに伴い、接続先のテナントを解決するためのプラグイン設定が必要になりました。

統合Windows認証 で認証に失敗した場合、Internal Server Error（HTTPス
テータスコード：500）を返却するようになりました。
統合Windows認証 で認証に失敗した場合、これまでゲストユーザとしてアクセスしていましたが、Internal Server Error（HTTPステータスコード：500）を返却するようになりました。

12intra-mart Accel Platform — バーチャルテナントにおける変更点 第4版 2018-12-01

IM-SecureSignOn for Accel Platform 利用時はログインサーバの設定が必要となりました。
IM-SecureSignOn for Accel Platform 利用時は、接続するテナントを解決するために、ログインサーバの設定が必要となりました。

IM-SecureSignOn for Accel Platform 利用時にユーザコードが解決されない場合、Internal Server Error（HTTPステータスコード：500）を返却するようになりました。
IM-SecureSignOn for Accel Platform 利用時にユーザコードが解決されない場合、これまでゲストユーザとしてアクセスしていましたが、Internal Server Error（HTTPステータスコード：500）を返却するようになりました。

Webサービス・外部ソフトウェア接続モジュール
Webサービスに対して、実行対象のテナントが指定可能になりました。
Webサービスに対して、実行対象のテナントが指定可能になりました。
未指定の場合、実行対象のテナントは デフォルトテナント です。
ただし、リクエスト情報を利用したテナント自動解決機能が有効、かつ、 Webサービス・プロバイダ の「wsTenantIdResolveType」設定が strict である場合、 自動解決されたテナント と指定したテナントが一致しない場合はエラーが発生します。

外部ソフトウェア接続モジュールを利用したプログラムに対して、実行対象のテナントが指定可能になりました。
外部ソフトウェア接続モジュールを利用したプログラムに対して、実行対象のテナントが指定可能になりました。
未指定の場合、実行対象のテナントは デフォルトテナント です。
ただし、リクエスト情報を利用したテナント自動解決機能が有効な場合、 自動解決されたテナ
ント と 指定したテナントが一致しない場合はエラーが発生します。

13

intra-mart Accel Platform — バーチャルテナントにおける変更点 第4版 2018-12-01

テナント管理テナント管理テナント管理者がデータベース操作を利用可能になりました。
データベース操作は、これまでシステム管理者だけが利用可能でしたが、テナント管理者も利用可能になりました。
テナントデータベースの操作履歴は、システム管理者 と テナント管理者で別々に管理されます。

テナント管理者がファイル操作を利用可能になりました。
ファイル操作は、これまでシステム管理者だけが利用可能でしたが、テナント管理者も利用可能になりました。
操作できるストレージはログインしているテナントのパブリックストレージです。

外部メニュー連携
外部メニュー情報取得時の連携先テナントを指定することが可能になりました。
外部メニュー情報取得時の連携先テナントを指定することが可能になりました。
メニュープロバイダが バーチャルテナントによる複数テナント 環境を構築している場合に、 どのテナントのメニュー情報と連携するのかを指定できるようになりました。

外部メニュー情報の適用先テナントを指定することが可能になりました。
外部メニュー情報の適用先テナントを指定することが可能になりました。
これにより、外部メニュー情報を、どのテナントで利用するかを制御できるようになりました。
例えば、メニュープロバイダ設定（menu-provider-config）の <menu-providers>/<menuprovider> の target-tenant 属性に「テナントA」を指定した場合、 該当するメニュープロバ
イダから取得した外部メニュー情報は、「テナントA」のメニュー設定画面では表示されますが、「テナントB」のメニュー設定画面には表示されません。

14

intra-mart Accel Platform — バーチャルテナントにおける変更点 第4版 2018-12-01

アプリケーション
IMBox
Cassandraの接続情報を「テナント管理のCassandra接続情報」画面から設定できるようになりました。
Cassandraの接続情報は、システム管理者が「テナント管理のCassandra接続情報」画面で設定した内容を取得するようになりました。
今まで利用していた Cassandra設定（cassandra-config） の設定値はCassandra接続情報登録時の初期値になりました。

通知メールの送信元アドレス、および送信者名は「IMBox設定情報編集」画面から設定できるようになりました。
通知メールの送信元アドレス、および送信者名は「IMBox設定情報編集」画面から設定できるようになりました。
送信元アドレスは、標準の設定ではテナント管理者のみ変更できます。
今まで利用していた IMBox設定（imbox-config） の メールに関する設定（ tns:mail タグ）の設定は有効にならず、テナントのメールアドレスが初期値になりました。

IM-Workflow「ワークフローパラメータ」機能から、システム単位の設定が廃止になりました。
「ワークフローパラメータ」機能から、システム単位の設定が廃止になりました。
システム単位の設定は以下の設定ファイルに移動しました。
%CONTEXT_PATH%/WEB-INF/conf/im-workflow-designer-config.xml%CONTEXT_PATH%/WEB-INF/conf/im-workflow-system-config.xml

起動中にシステム単位の設定が変更できなくなりました。
システム単位の設定がconfディレクトリ配下の設定ファイルに移動したので、起動中にシステム単位の設定が変更できなくなりました。
システム単位の設定には以下のような設定が存在します。
案件終了処理、到達処理、メール送信処理、IMBox送信処理の同期／非同期制御の設定
XMLファイルキャッシュの設定
処理対象者標準プラグイン結果キャッシュ設定

ノードアイコンはシステムストレージに配置されるようになりました。
15

intra-mart Accel Platform — バーチャルテナントにおける変更点 第4版 2018-12-01
パブリックストレージに配置されていたノードアイコンは、システムストレージに配置されるようになりました。
アイコンを変更するには、システム単位の設定で定義したアイコンパスが示す場所（システムストレージ配下）に、差し替え後のアイコンがデプロイされるようユーザモジュールを作成し、WARファイルにユーザモジュールを含めてください。

「処理対象者標準プラグイン結果キャッシュ削除」ジョブで、キャッシュを削除する範囲の初期値がテナント単位になりました。
「処理対象者標準プラグイン結果キャッシュ削除」ジョブで、キャッシュを削除する範囲の初期値が、システム単位からテナント単位になりました。
ジョブのパラメータを変更することでシステム単位に変更できます。

「代理先同期」ジョブで、無効な代理設定を削除する機能が追加になりました。
「代理先同期」ジョブで、無効な代理設定を削除する機能が追加になりました。
標準では、無効な代理設定は削除します。
ジョブのパラメータを変更することで、無効な代理設定の削除実施要否を変更できます。

システム単位の設定にはユーザ独自のパラメータを設定できなくなりました。
システム単位の設定にはユーザ独自のパラメータを設定できなくなりました。
システム単位の設定にユーザ独自のパラメータが存在する場合は、必要に応じてテナント単位の設定に移植するなどの対応が必要です。

IM-ContentsSearch for Accel Platform
Solrの接続情報を「テナント管理のSolr接続情報」画面から設定できるようになりました。
Solrの接続情報は、システム管理者が「テナント管理のSolr接続情報」画面で設定した内容を取得するようになりました。
Solrサーバ接続設定（solr-config）の設定値はテナント環境セットアップ時の初期自動登録値、または「Solr接続設定」画面の初期値になりました。

IM-BIS for Accel Platform
データソース定義で使用するjarファイルの配置場所がテナント単位で設定できるようになりました。
データソース種別「Java」のjarファイルの配置場所が バーチャルテナントによる複数テナント

16

intra-mart Accel Platform — バーチャルテナントにおける変更点 第4版 2018-12-01単位で設定できるようになりました。
同様に、IM-BIS/OpenRulesコネクタを追加している場合は、データソース種別「ルール」 で使用するjarファイルの参照先を設定できるようになりました。

Jaspersoft
JasperReports Serverがテナント単位で設定できるようになりました。
JasperReports Serverがテナント単位で設定できるようになりました。

17