共通¶
アプリケーションロックはテナントを意識して利用する必要があります。¶
アプリケーションロックはシステム全体で管理されます。(テナントごとのロック管理は行われません)テナントごとにロックを管理したい場合は、それぞれのテナント間でもロック ID が重複しないようにしてください。具体的には、ロック ID に テナント ID を含めるなどの対応が必要です。この対応を行わなかった場合、バーチャルテナントによる複数テナント で意図しないロック競合やロック解除が発生する可能性があります。
非同期処理の直列タスクキューはテナントを意識して利用する必要があります。¶
非同期処理の直列タスクキューはシステム全体で管理されます。(テナントごとのキュー管理は行われません)テナントごとに異なる直列タスクキューを利用したい場合は、テナントごとに異なるキュー ID を割り当ててください。具体的には、キュー ID にテナント ID を含めるなどの対応が必要です。
FileExchange でアップロードしたファイルはテナント単位で管理されるようになりました。¶
FileExchange でアップロードしたファイルはテナント単位で管理されるようになりました。そのため、アップロード先のテナントと操作対象のテナントが異なる場合は、ファイルをダウンロードできません。例えば、デフォルトテナント「 default 」と 2つ目のテナント「 secondary 」が存在している環境で、「 default 」テナントにファイルをアップロードした場合、そのファイルをダウンロードできるユーザは以下の通りです。(◯:ダウンロード可能、×:ダウンロード不可)
ダウンロードユーザ制限を「ログインユーザのみ」に指定した場合
- ◯:「 default 」 にログインしているユーザ
- ×:「 secondary 」にログインしているユーザ
- ×:ゲストユーザ(操作対象テナントが「 default 」の場合)
- ×:ゲストユーザ(操作対象テナントが「 secondary 」の場合)
ダウンロードユーザ制限を「制限なし」に指定した場合
- ◯:「 default 」にログインしているユーザ
- ×:「 secondary 」にログインしているユーザ
- ◯:ゲストユーザ(操作対象テナントが「 default 」の場合)
- ×:ゲストユーザ(操作対象テナントが「 secondary 」の場合)
(ゲストユーザの操作対象テナントは、リクエスト情報を利用したテナント自動解決機能によって変わります。)
CacheManager はテナント単位でキャッシュするようになりました。¶
CacheManager は、これまでシステム単位でキャッシュしていましたが、テナント単位でキャッシュするようになりました。
ショートカット URL はテナント単位で管理されるようになりました。¶
ショートカット URL は、これまでシステム単位で管理されていましたが、テナント単位で管理されるようになりました。
imuiPicture が生成する URL はテナント単位で管理されるようになりました。¶
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 のユーザを処理対象者として指定することはできません。テナントを跨った処理は、IM-BIS for Accel Platformや Webサービス等によるサービス連携をご利用ください。
特定のテナントを対象とした画面のカスタマイズはできません。¶
バーチャルテナント機能は、特定のテナントを対象とした画面のカスタマイズはできません。テナントごとにカスタマイズが必要な場合は、WARファイルによる複数テナント をご利用ください。
パスワードリマインダ機能の有効・無効は画面から変更できません。¶
パスワードリマインダ機能の有効・無効は、これまでパスワードリマインダ設定画面から変更できましたが、システム単位で管理されるようになったため画面から変更することはできません。有効・無効を切り替える場合は、設定ファイルの内容を変更してください。詳しい設定内容は「設定ファイルリファレンス」 - 「パスワードリマインダ機能」を参照してください。