概要
MCIは、インターフェースを処理する際に、正常なユーザーの要求だけを処理するようにセッションを管理する。
インターフェースの要求が、正常にログインしたユーザーの要求であるかを確認し、正常なログイン状態でない場合は、当該インターフェースをエラーとして処理する。
セッション情報は、Status Monitoring > Terminal Status
画面で、ユーザーID、端末番号、およびログイン時間などの情報が確認できる。
セッション情報
セッションに指定する情報は、下記のとおりである。
セッションID : セッション情報を識別するID
社員番号 : ログインユーザーのID
端末番号 : ログインした端末の端末番号
部署番号 : ログインユーザーの部署ID。 部署IDは、BID取引で使用される。
端末Mac Address : ログインした端末のMac Address
責任者の端末であるかどうか : 責任者がログインした端末であるかどうか
BIDメッセージ送信の端末であるかどうか : BIDメッセージを受信できる端末であるかどうか
セッション状態 : セッション状態情報であり
A
: Active状態、E
: Expired状態を意味初回取引時間 : 初回取引開始時間を意味し、一般的にログイン時間
最終取引時間 : 最終取引時間を意味
セッションタイムアウト時間 : セッションタイムアウト時間を意味
セッション管理
セッション作成
セッションは、ログイン取引ごとにユーザー別に作成され、一度作成されたセッションはタイムアウトが発生しない限り、引き続き使用することができる。 タイムアウト時間は、IDLE方式で取引が発生すると延長される。
ログインインターフェースの応答電文を受信後、応答電文が正常の場合、SystemUserLoginRouter
でセッション情報を作成する。
セッションを作成するログイン取引の処理フローは下記のとおりである。

コアシステムからログイン応答電文を受けた後、応答電文が正常の場合にはセッション情報を作成してIMDGに保存する。 また、端末状態モニタリングのために、データベースにも保存される。
端末のモニタリングは、Status Monitoring > Terminal Status
画面から確認できる。
ログイン後、端末ではすべての取引に対して、セッションIDを電文に含めて伝送する必要がある。 これはMCIが一般取引の場合、ユーザーがログインしたかどうかを、セッションIDで検証してエラー処理するからである。
セッションIDを、HTTPヘッダーに保存するか、電文に保存するかは、プロジェクト内で検討して決定する。

セッション検証
ログイン後、端末から要求する電文のセッションIDを利用して、そのユーザーがログインしているかどうか、およびセッションが完了しているかどうかを検証する。
セッションを検証するルーターはsystemLoginValidationRouter
であり、要求フローに追加してセッションを検証する。
セッションを検証するためには、セッションを検証するルーターをフローに追加する必要がある。 セッション検証ルーターがない場合、セッション検証なしで取引を処理するため、事故の発生可能性がある。セッション検証が必要な取引には、セッション検証ルーターを登録する必要がある。

上の図で、インターフェース情報の「要求フローID」はTERM-REQ-NOMAP-0001
である。
フローTERM-REQ-NOMAP-0001
に登録されたルーターの処理手順を確認すると、systemLoginValidationRouter
ルーターが追加されている。
よって、インターフェースCI-001-0101-011
取引は、ログインを先に行ってはじめて処理可能な取引である。
もし、セッションを検証しない、インターネットバンキングやARS取引であれば、セッション検証ルーターを追加しない別のフローを登録して使用する。
セッション解除
ログイン取引で作成されたセッション情報は、ログアウト取引、またはタイムアウトによって解除できる。
☑ ログアウト
ログアウトインターフェースの応答電文を受信後、応答電文が正常の場合SystemUserLogoutRouter
でセッション情報を解除する。
セッションを解除するログアウト取引の処理フローは、下記のとおりである。

☑ タイムアウト
セッションタイムアウトは、IDLE方式で取引が発生するとセッションタイムアウト時間が延長される。 最後の取引以降、セッションタイムアウト時間までに取引がなければセッションタイムアウトが発生する。
セッションが解除された後、セッション検証を必要とするすべての取引に対してエラー処理する。
端末のモニタリングは、Status Monitoring > Terminal Status
画面から確認できる。