intra-mart Accel Platform IMBox 仕様書 第19版 2023-04-01

IM共通マスタとの同期

IMBoxでは以下の方法で、IM共通マスタからCassandraの情報に同期を行っています。
  1. テナント環境セットアップ
  2. IM共通マスタのリスナ
  3. ジョブスケジューラ

コラム

ジョブスケジューラの詳細は「ジョブスケジューラ」を参照してください。

同期する情報

IM共通マスタからCassandraに同期している情報は以下です。
  1. 会社情報
  2. 所属情報
  3. ユーザ情報

テナント環境セットアップ

テナント環境セットアップ実行時に、Cassandra接続情報で選択したクラスタのキースペースにIM共通マスタから以下の情報を登録します。
  1. 実行日に有効なIM共通マスタの会社情報
  2. 実行日に有効なIM共通マスタのユーザ情報
  3. 上記でCassandraに登録したユーザの所属情報

注意

テナント環境セットアップ実行時に、有効期間が無効な会社、ユーザの情報は作成されません。
テナント環境セットアップ後に有効にした場合、IM共通マスタとCassandra情報とに不整合が発生する場合があります。
IM共通マスタとCassandraのデータに不整合が発生した場合、「ジョブスケジューラ」を実行し同期を行ってください。

IM共通マスタのリスナ

IM共通マスタの変更通知を受け取り(リスナ)、Cassandraに同期を行っています。
IM共通マスタのリスナは、IM共通マスタの画面での処理実行時やジョブによるインポートなどで通知されます。

コラム

IM共通マスタのリスナについての詳細はAPIドキュメントの「CompanyListener 」、「UserListener 」を参照してください。

会社情報

IM共通マスタの会社情報の変更通知でCassandraに会社情報を同期しています。
同期内容は、以下「CompanyListener利用メソッド一覧(会社情報)」を参照してください。
CompanyListener利用メソッド一覧(会社情報)
メソッド名 Cassandraへの同期処理概要
createDepartment
Cassandraに会社情報を登録します。
Cassandraに登録する会社名は、IM共通マスタから組織情報の取得を行います。
removeCompany Cassandraから会社情報と所属するユーザの公開先会社情報、所属情報を削除します。
removeDepartment removeCompanyと同様の処理を行います。
updateDepartment
Cassandraの会社情報を更新します。

所属情報

IM共通マスタの会社情報の変更通知でCassandraに所属情報を同期しています。
同期内容は、以下 「CompanyListener利用メソッド一覧(所属情報)」を参照してください。
CompanyListener利用メソッド一覧(所属情報)
メソッド名 Cassandraへの同期処理概要
createUserAttach
ユーザの期間情報が有効な場合に、Cassandraにユーザの所属情報を登録します。
所属情報を登録したユーザのタグへのフォロー情報、ユーザのフォロー情報、マイリスト情報をCassandraに再登録します。(無効化および、削除されたユーザを再作成した場合)
createUserAttachTerm createUserAttachと同様の処理を行います。
removeUserAttach
ユーザに所属する組織が存在しない場合、Cassandraからユーザの所属情報、公開先会社情報を削除します。
所属する会社が公開先会社として設定されているグループの参加情報、参加申請情報、参加招待情報を削除します。
所属情報を削除したユーザのタグへのフォロー情報、ユーザのフォロー情報、マイリスト情報をCassandraから削除します。
同一会社内で削除された所属組織以外にも所属がある場合は処理を行いません。
updateUserAttach
ユーザの期間情報が有効な場合にCassandraに所属情報を登録します。
所属がない場合または、全所属の期間が対象外の場合はCassandraから所属情報を削除します。
所属期間が存在しない場合、タグへのフォロー情報、ユーザのフォロー情報、マイリスト情報をCassandraから削除します。
期間情報が有効な場合、タグへのフォロー情報、ユーザのフォロー情報、マイリスト情報をCassandraに再登録します。(無効化および、削除されたユーザを再作成した場合)

ユーザ情報

IM共通マスタのユーザ情報の変更通知でCassandraにユーザ情報を同期しています。
同期内容は、以下「UserListener利用メソッド一覧」を参照してください。
UserListener利用メソッド一覧
メソッド名 Cassandraへの同期処理概要
createUser
Cassandraにユーザ情報を登録します。
ユーザの名前は、IM共通マスタからユーザ情報の取得を行い登録します。
処理実行日時がユーザの有効期間開始日時と終了日時に含まれている場合、ユーザは論理削除状態で登録されます。
updateUser
処理実行日時がユーザの有効期間開始日時と終了日時に含まれている場合に、Cassandraのユーザ情報を更新します。
Cassandraにユーザ情報が存在しない場合、ユーザ情報の登録を行います。
removeUser
Cassandraのユーザ情報を物理削除します。

注意

IMBoxで表示するユーザの名前は、「IMBox表示名のユーザによる変更」の可否により更新時に同期される場合とされない場合があります。
ユーザ名の同期に関しての詳細は、「 IMBox 管理者操作ガイド 」-「 IMBox設定情報編集 」を参照してください。

同期が行われない場合

IM共通マスタからの変更通知のみではCassandraに同期が行えない場合があります。
IM共通マスタとCassandra情報との不整合は以下のが生じる場合があります。
  • 変更通知を受け取った時点でCassandraが起動されていない場合
  • テナント環境セットアップ前にユーザ情報が無効であったユーザをテナント環境セットアップ後に有効にした場合
  • 所属有効期間終了後
  • ユーザ有効期間終了後

注意

IM共通マスタとCassandraのデータに不整合が発生した場合、「ジョブスケジューラ」を実行し同期を行ってください。