JP7098280B2 - 情報処理システム、および制御方法 - Google Patents

情報処理システム、および制御方法 Download PDF

Info

Publication number
JP7098280B2
JP7098280B2 JP2017107071A JP2017107071A JP7098280B2 JP 7098280 B2 JP7098280 B2 JP 7098280B2 JP 2017107071 A JP2017107071 A JP 2017107071A JP 2017107071 A JP2017107071 A JP 2017107071A JP 7098280 B2 JP7098280 B2 JP 7098280B2
Authority
JP
Japan
Prior art keywords
message
data
tenants
queue
processed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017107071A
Other languages
English (en)
Other versions
JP2018205839A (ja
Inventor
哲也 松本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2017107071A priority Critical patent/JP7098280B2/ja
Priority to US15/971,512 priority patent/US11461268B2/en
Priority to DE102018112559.3A priority patent/DE102018112559A1/de
Publication of JP2018205839A publication Critical patent/JP2018205839A/ja
Application granted granted Critical
Publication of JP7098280B2 publication Critical patent/JP7098280B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • G06F16/125File system administration, e.g. details of archiving or snapshots using management policies characterised by the use of retention policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、キューに登録されたメッセージに基づく処理を実行する情報処理システム、および制御方法に関する。
クラウドサービス基盤を利用して構築され、顧客にサービスを提供している情報処理システムがある。また、非同期で実行する処理や定期的に実行する処理を、キューを用いた仕組みで実現している情報処理システムがある。クラウドサービス基盤を利用して構築された情報処理システムでは、すべての顧客について実行する定期処理がある。例えば、顧客のデータの定期集計処理などである。定期集計処理は、サービスが管理する顧客数の増加に伴い、処理対象のデータが増加し、処理に要する時間が増加する。
特許文献1には、キューに登録されたメッセージ数に応じて、メッセージに対する処理を実行するサーバーの数を増減する技術が開示されている。これによれば、システムへの処理要求数に応じてクラウド資源(サーバー)を増減することで、クラウド資源を適正に利用でき、コストが削減できる。
特開2015-072716号公報
前述した集計処理のような処理では、処理を実行するサーバーがデータベースにクエリーを発行することで処理を実行する。顧客のデータを、データベースの顧客ごとの専用の記憶領域であるテナントで管理しているシステムにおいては、処理対象のデータに対応するテナントごとに処理が行われることが一般的である。したがって、処理対象のデータに対応するテナントの数に比例して、処理時間が長くなる。このような場合、処理を実行するサーバーの数の増加に伴い、データベースへのクエリー発行数も増加し、データベースの負荷が高くなる。ここで、データベースは、処理を実行するサーバーとは異なり、動的に(システムを停止させずに)数を増加することや、性能を上げることが困難である。したがって、定期集計のような処理においては、処理対象のデータに対応するテナントの数に応じて、処理を実行するサーバーの数を増加させるだけでは、処理に要する時間が長くかかるという課題を解決できない。
本発明は、複数のデータの処理において、処理対象のデータに対応するテナントごとに処理を実行する場合と比較して、処理時間を短くするための仕組みを提供することを目的とする。
上記課題を解決するために、本発明は、複数顧客のデータを、データベースの顧客ごとの専用の記憶領域である複数テナントを用いて管理する管理手段と、処理対象のデータの処理のためのリクエストを受信する受信手段と、前記受信したリクエストに対応する処理対象のデータが、前記複数テナントにわたった一括処理されないデータである場合、前記受信したリクエストに対応する処理対象のデータが管理される1テナントへのアクセスが必要となる第1処理を実行するための第1メッセージをキューに登録し、前記受信したリクエストに対応する処理対象のデータが、前記複数テナントのうちの予め決められた2以上のテナントにわたった一括処理されるデータである場合、前記受信したリクエストに対応する処理対象のデータが管理される前記2以上のテナントそれぞれへのアクセスが必要となる第2処理を実行するための1つの第2メッセージを前記キューに登録する登録手段と、前記キューに登録されたメッセージを取得する取得手段と、前記取得したメッセージが前記第1メッセージである場合、当該第1メッセージに基づき、前記データベースの前記1テナントへのアクセスが必要となる前記第1処理を実行し、前記取得したメッセージが前記第2メッセージである場合、当該第2メッセージに基づき、前記データベースの前記2以上のテナントそれぞれへのアクセスが必要となる前記第2処理を実行する実行手段と、を有することを特徴とする。
本発明によれば、複数のデータの処理において、処理対象のデータに対応するテナントごとに処理を実行する場合と比較して、処理時間を短くすることができる。
本発明の実施形態におけるシステムの全体構成の一例を示す図 情報処理装置のハードウェア構成の一例を示す図 集計指示サーバー105の機能構成の一例を示す図 データロードサーバー107の機能構成の一例を示す図 データ集計サーバー109の機能構成の一例を示す図 集計指示処理の手順例を示すフローチャート データロード処理の手順例を示すフローチャート リトライメッセージ登録処理の手順例を示すフローチャート データ集計処理の手順例を示すフローチャート 実施例2におけるデータロード処理の手順例を示すフローチャート 実施例2におけるリトライメッセージ登録処理の手順例を示すフローチャート
以下、本発明を実施するための最良の形態について図面を用いて説明する。
(実施例1)
<システム構成>
図1は、本発明の実施形態におけるシステムの全体構成の一例を示す図である。
図1において、101は情報処理システムである。情報処理システム101は、クラウドサービス基盤を利用して構築され、顧客にサービスを提供するシステムである。クラウドサービスでは、クラウドサービスベンダが、ネットワークを介して、仮想マシンやキュー、ストレージなどのコンピューターリソースをクラウドサービス利用者に提供する。ここで、仮想マシンとは、仮想化技術によって、サーバーを物理的な構成にとらわれずに論理的な単位で分割し、それぞれが独立したオペレーティングシステムをもって動作する論理的なコンピューターである。
情報処理システム101は、Webサーバー103、スケジューラー104、集計指示サーバー105、データロードキュー106、データロードサーバー107を含む。さらに、情報処理システム101は、データ集計キュー108、データ集計サーバー109、ファイルサーバー110、データベース111も含む。情報処理システム101に含まれるこれらの要素は、クラウドサービスベンダによって提供されるコンピューターリソースとしての仮想マシンやキュー、ストレージを用いて、それぞれの機能が実現される。
ここで、情報処理システム101において、顧客の情報はそれぞれ、データベース111内の専用の記憶領域であるテナントで管理される。ユーザーが管理システムで管理される情報にアクセスする場合には、自分の所属する顧客のテナントで保持されているデータにしかアクセスできず、他のテナントへのアクセスを制限される。
情報端末102は、情報処理システム101が提供するサービスを利用する顧客に所属するユーザーが使用するPC(Personal Computer)などの端末である。ユーザーは、情報処理システム101が提供するWebページを通して、情報処理システム101に処理の実行要求をする。
Webサーバー103は、ユーザーがサービスを利用するためのWebページを提供する。Webサーバー103は、Webページを通してユーザーからの処理の実行要求を受信する。実行要求された処理が集計処理の場合、Webサーバー103はユーザーの所属する顧客の集計要求を集計指示サーバー105に送信する。なお、Webサーバー103は複数存在しても良い。
スケジューラー104は、定期処理の実行要求をする。定期処理とは定期間隔で実行する処理を示す。スケジューラー104は、予め設定された定期処理の実行時刻になると、定期処理を実行するための実行要求を行う。定期集計処理の場合、スケジューラー104は定期集計要求を集計指示サーバー105に送信する。なお、定期集計処理とは、情報処理システムで管理している全ての顧客を対象とする処理である。
集計指示サーバー105は、集計処理を実行するためのメッセージを作成してデータロードキュー106に登録する。集計指示サーバー105は、Webサーバー103またはスケジューラー104から集計要求を受信すると、処理対象の顧客(複数指定も可)のデータを含むデータロード要求メッセージを作成し、データロードキュー106に登録する。なお、集計指示サーバー105は複数存在しても良い。
データロードキュー106は、登録されたデータロード要求メッセージを管理する。データロードキュー106は、メッセージが取得された際に所定時間が経過するまでメッセージを不可視状態にする(以下、この所定時間を不可視時間と呼ぶ)。
データロードキュー106に格納されるメッセージは、キューから取得されるだけではキューから削除されたことはならない。キューから取得されたメッセージは、他の処理サーバーから取得されないように一時的に不可視状態となる。その後、データロードサーバー107によるメッセージの処理が完了した後、キューに対して該メッセージを削除するための指示が行われる。
不可視状態により、あるデータロードサーバーがメッセージを処理している際に、他のデータロードサーバーが同一のメッセージを取得して、そのメッセージに基づく処理を実行しないように制御できる。また、データロードサーバー107がキューからメッセージを削除した後の一定時間の間に、キューに対して該メッセージの削除指示が行われない場合には、該メッセージは不可視状態が解除され、いずれのデータロードサーバーによっても取得可能な状態となる。なお、キューに対して設定する不可視時間は、メッセージの処理に要する時間や処理失敗時のリトライ間隔を考慮し、各処理で適切な値を設定する。
データロードサーバー107は、データロードキュー106に登録されたメッセージを取得し、データロード処理を実行する。データロード処理とは、集計処理で使用するデータを、集計処理で使用するデータベースにロードする処理を示す。つまり、データロード処理は、データロードキューから取得したメッセージに基づき、処理対象のデータに対応するテナントを参照するためにデータベースへアクセスする処理を指す。ここで、処理対象が複数のデータである場合には、複数のデータに対応する、それぞれ異なるテナントを参照するためにデータベースへのアクセスが必要となる。データロード処理を、複数のテナントへの一括処理とも呼ぶ。データロード処理後、後続処理であるデータ集計処理を実行するため、データロードサーバー107は処理対象の顧客の情報を含むデータ集計要求メッセージを作成し、データ集計キュー108に登録する。なお、データロードサーバー107は複数存在しても良い。また、データロードサーバー107は、データロードキュー106に格納されるメッセージの数またはデータロードサーバー107の処理負荷に基づき、自動で台数が調整されるものとする。
データ集計キュー108は、登録されたデータ集計要求メッセージを管理する。
データ集計サーバー109は、データ集計キュー108に登録されたメッセージを取得し、データ集計処理を実行する。なお、データ集計サーバー109は複数存在しても良い。また、データ集計サーバー109は、データ集計キュー108に格納されるメッセージの数またはデータ集計サーバー109の処理負荷に基づき、自動で台数が調整されるものとする。
ファイルサーバー110は、情報処理システムが管理する各種データファイルを格納する。
データベース111は、情報処理システムが管理する各種データを格納する。データベース111は、顧客のデータを、顧客ごとの専用の記憶領域であるテナントを用いて管理している。また、データベース111は、クエリーを受信してクエリーの結果を返信する。
以上説明した102乃至111の各部は、インターネットなどの既知の技術により相互に通信可能に接続されている。
<情報処理装置の内部構成>
図2は、情報処理装置のハードウェア構成の一例を示す図である。本実施例における情報処理装置としては、情報端末102や、情報処理システム101を実現するためのデータセンター上に存在するサーバーコンピューターなどが該当する。
情報処理装置は、記憶装置であるハードディスクドライブ(HDD)210に記憶されたソフトウェアを実行するCPU201を備える。CPU201はシステムバス204に接続される各ハードウェアを総括的に制御する。
202はメモリーで、CPU201の主メモリー、ワークエリア等として機能する。
203はネットワークインターフェースカード(NIC)で、ネットワークを介して、他のノードと双方向にデータをやりとりする。
205はキーボードコントローラーで、PCに備えられたキーボード206からの指示入力を制御する。なお、情報処理装置の役割によっては、キーボードコントローラー205、キーボード206がない構成でも良い。
207はディスプレイコントローラーで、例えば液晶ディスプレイなどで構成される表示モジュール208の表示を制御する。なお、情報処理装置の役割によっては、ディスプレイコントローラー207、表示モジュール208がない構成でも良い。
209はディスクコントローラーであり、大容量記憶装置であるハードディスクドライブ(HDD)210を制御する。
なお、以降で説明する各機能は、情報処理システム101が構築されるサーバーコンピューターのHDD210に記憶されているプログラムを、CPU201がメモリー202に読み出して実行することによって実現される。
<集計指示サーバーの機能構成>
図3は、集計指示サーバー105の機能構成の一例を示す図である。
301は集計要求受信部であり、Webサーバー103またはスケジューラー104から集計要求を受信する。302は集計指示実行部であり、集計要求受信後に、集計指示処理を実行し、データロード要求のためのメッセージを作成する。303はメッセージ登録部であり、作成したメッセージをデータロードキュー106に登録する。集計指示処理の詳細については後述する。
<データロードサーバーの機能構成>
図4は、データロードサーバー107の機能構成の一例を示す図である。
401はメッセージ取得部であり、データロードキュー106に登録されたメッセージを取得する。402はデータロード実行部であり、メッセージ取得後に、データロード処理を実行する。また、データロード実行部402は、データロード処理後にデータ集計要求メッセージを作成する。さらに、データロード実行部402は、図8を用いて後述するリトライ用のメッセージを作成して、データロードキュー106に登録する。403はメッセージ登録部であり、作成したメッセージをデータ集計キュー108に登録する。404はメッセージ削除部であり、処理実行後に、実行したメッセージをデータロードキュー106から削除する。データロード処理の詳細については後述する。
<データ集計サーバーの機能構成>
図5は、データ集計サーバー109の機能構成の一例を示す図である。
501はメッセージ取得部であり、データ集計キュー108に登録されたメッセージを取得する。502はデータ集計実行部であり、メッセージ取得後に、データ集計処理を実行する。503はメッセージ削除部であり、処理実行後に、実行したメッセージをデータ集計キュー108から削除する。データ集計処理の詳細については後述する。
<集計指示処理>
図6は、集計指示サーバー105が実行する集計指示処理の手順例を示すフローチャートである。Webサーバー103またはスケジューラー104から集計要求を受信した際に、本処理が開始する。本処理では、受信した集計要求をもとに、集計処理を実行するためのメッセージ(データロード要求メッセージ)を作成してキューに登録する。データロード処理とは、集計処理で使用するデータを、集計処理で使用するデータベースにロードする処理である。データロード処理は、顧客ごとに処理するよりも、複数の顧客を一括処理する方が、効率が良い処理である。さらに、データロード処理では、顧客ごとの設定に依存しないため、対象の全ての顧客に対して一括処理を行うことができる。そのため、本処理では、受信した集計要求をもとに、複数顧客を一括処理するか否かを判断する。そして、複数顧客を一括処理すると判断した場合は、一括処理可能な顧客をグループ化し、顧客グループごとの処理要求メッセージを作成する。これにより、データロード処理は複数顧客を一括処理することになり、処理時間の顧客数への依存度を減らすことができる。
集計指示を開始するとS601で、集計指示実行部302は、受信した集計要求をもとに、処理対象のデータが所定の条件を満たすか否かに基づいて、複数顧客を一括処理するか否かを判定する。本実施例では、受信した集計要求での処理対象のデータが所定の条件を満たすとして、定期的な集計要求での処理対象となるデータである場合は一括処理すると判定する。ここで、集計指示実行部302が、複数顧客を一括処理すると判定した場合はS602に進む。一方、集計指示実行部302が、複数顧客を一括処理しない、つまり顧客ごとに処理すると判定した場合はS606に進む。
続いてS602で、集計指示実行部302は、システムで管理する全ての顧客を、一括処理可能な単位でグループ分けする。なお、処理対象の顧客は、システムで管理する全顧客のうちの一部であっても良い。例えば、顧客によってデータが格納されているデータベーススキーマやテーブルが異なるような場合は、同一のスキーマやテーブルにデータが格納されている顧客を同一のグループにする。
続いてS603で、集計指示実行部302は、S602で作成した顧客グループの内、S603~S605のフローを未処理の顧客グループについて、一顧客グループずつ処理を繰り返す。
続いてS604で、集計指示実行部302は、処理中の顧客グループのデータロード要求メッセージを作成する。本処理では、一括処理が可能な複数顧客の一括処理を要求するための一つのメッセージを作成する。本処理で作成するデータロード要求メッセージの一例(JSON形式)を以下に示す。例では、一括処理可能な複数顧客の情報を、顧客IDの配列で指定している。顧客IDとは、顧客をシステム内で一意に識別するIDである。

“customers”: [
“100”,
“110”,
“120”

続いてS605で、集計指示実行部302は、S603~S605の処理を行っていない顧客グループがあるか否かを判定する。ここで、集計指示実行部302が、S603~S605の処理を行っていない顧客グループがあると判定した場合はS603に戻り処理を繰り返す。一方、集計指示実行部302が、S603~S605の処理を行っていない顧客グループがないと判定した場合はS607に進む。
一方S606で、集計指示実行部302は、受信した集計要求の顧客のデータロード要求メッセージを作成する。本処理では、一つのメッセージで一顧客の処理を要求するメッセージを作成する。
続いてS607で、メッセージ登録部303は、S604またはS606で作成したメッセージをデータロードキュー106に登録し、本処理を終了する。
<データロード処理>
図7は、データロードサーバー107が実行するデータロード処理の手順例を示すフローチャートである。本処理は、データロードサーバー107がデータロードキュー106に登録されているメッセージを確認し、取得可能なメッセージがある際に実行する処理である。データロード処理とは、集計処理で使用するデータを、集計処理で使用するデータベースにロードする処理である。データロード処理は、顧客ごとに処理するよりも、複数顧客を一括処理する方が、効率が良い処理である。さらに、データロード処理は、顧客ごとの設定に依存しない、つまりすべての顧客で同一の処理である。そのため、本処理内のデータロードを実行する処理は、顧客ごとではなく複数顧客を一括処理する。これにより、処理時間の顧客数への依存度を減らすことができる。さらに、データロード処理後に後続処理であるデータ集計処理を実行するため、データロードサーバー107は、データ集計要求メッセージを作成し、データ集計キュー108に登録する。データ集計処理は、データロード処理とは異なり、顧客ごとの設定に依存する、そのため、データ集計要求メッセージは、顧客ごとに作成する。
データロード処理を開始するとS701で、メッセージ取得部401は、取得可能なメッセージをデータロードキュー106から1つ取得する。
続いてS702で、データロード実行部402は、S701で取得したメッセージで指定されている処理対象の顧客の内、S702~S704のフローを未処理の顧客について、一顧客ずつ処理を繰り返す。ここでの処理は、S705で後述する複数顧客についてのデータロード処理の実行前に行われる処理である。
続いてS703で、データロード実行部402は、処理中の顧客それぞれの集計状態を「実行中」に変更する。ここで表Aは、データベース111が保持し、データロード処理およびデータ集計処理で使用する集計状態情報の構成の一例を示す、集計状態テーブルである。本テーブルは、該当レコードがどの顧客の集計状態情報かを示す顧客IDカラムを備える。さらに本テーブルは、顧客の集計状態を示す状態カラムを備える。本例では状態として「実行中」と「未実行」の2つがある。「実行中」は、集計に関する処理が開始されてから、完了するまでの間の状態を示す。「未実行」は、集計に関する処理が実行されていない状態を示す。本処理では、処理中の顧客の集計状態が「未実行」の場合のみ「実行中」に変更される。処理中の顧客の集計状態が「実行中」の場合は、処理中の顧客の処理が失敗したと判定する。これにより、複数のサーバーが同一顧客の処理を同時に実行しないように制御できる。なお、集計状態が「実行中」の顧客について、顧客の処理が失敗した判定された後、一定時間経過した後には、「未実行」に戻すものとする。これにより、その後の顧客の処理がリトライ可能となる。
Figure 0007098280000001
続いてS704で、データロード実行部402は、S702~S704の処理を行っていない顧客があるか否かを判定する。ここで、データロード実行部402が、S702~S704の処理を行っていない顧客があると判定した場合はS702に戻り処理を繰り返す。一方、データロード実行部402が、S702~S704の処理を行っていない顧客がないと判定した場合はS705に進む。
続いてS705で、データロード実行部402は、S701で取得したメッセージで指定された処理対象の複数顧客について、データロード処理を一括実行する。具体的には、ファイルサーバー110が格納する集計対象のデータファイルを、データベース111にロードする処理である。このとき、ロード対象データファイルは、例えば、前回の定期的な集計処理後に追加や更新された差分である。そのため、ロード対象データファイルを示す設定として、前回の定期的な集計処理が行われた日時(すべての顧客で同一)を指定する。つまり、本処理は顧客ごとの設定に依存しない処理である。
続いてS706で、データロード実行部402は、S701で取得したメッセージで指定されている処理対象の顧客の内、S706~S710のフローを未処理の顧客について、一顧客ずつ処理を繰り返す。
続いてS707で、データロード実行部402は、処理中の顧客の集計状態を未実行に変更する。
続いてS708で、データロード実行部402は、処理中の顧客のデータ集計要求メッセージを作成する。なお、本処理は、処理中の顧客がS703の処理で失敗した場合、またはS705の処理が失敗した場合は実行されない。
続いてS709で、メッセージ登録部403は、S708で作成したメッセージをデータ集計キュー108に登録する。なお、本処理は、処理中の顧客がS703の処理で失敗した場合、またはS705の処理が失敗した場合は実行しない。
続いてS710で、データロード実行部402は、S706~S710の処理を行っていない顧客があるか否かを判定する。ここで、データロード実行部402が、S706~S710の処理を行っていない顧客があると判定した場合はS706に戻り処理を繰り返す。一方、データロード実行部402は、S706~S710の処理を行っていない顧客がないと判定した場合はS711に進む。
続いてS711で、メッセージ削除部404は、S701で取得したメッセージをデータロードキュー106から削除する。
続いてS712で、データロード実行部402は、S703、S705、S708、S709の処理がすべて成功したか否かを判定する。ここで、データロード実行部402は、処理がすべて成功したと判定した場合は、S701に戻り別のメッセージを処理する。一方、データロード実行部402は、処理のいずれかが失敗したと判定した場合はS713に進む。
続いてS713で、データロード実行部402は、リトライ用のメッセージをデータロードキュー106に登録し、S701に戻り別のメッセージを処理する。リトライメッセージ登録処理の詳細については後述する。
なお、処理対象の顧客それぞれについての前処理(S703)で失敗した場合には、一括処理(S705)が行われなくても良い。一方、処理対象の顧客それぞれについての前処理(S703)で成功した後に一括処理(S705)で失敗した場合には、処理対象の顧客それぞれについての後処理(S707~S709)は行われるものとする。
<リトライメッセージ登録処理>
図8は、図7に示したS713で実行するリトライメッセージ登録処理の詳細手順例を示すフローチャートである。リトライメッセージ登録処理とは、データロード処理のいずれかが失敗した場合に、リトライするためのメッセージをデータロードキューに登録する処理である。データロード処理には、顧客ごとに行われる個別処理と、複数顧客の一括処理がある。顧客ごとの処理が失敗した場合は、失敗した顧客のみリトライする方が効率的である。また、複数顧客の一括処理が失敗した場合は、処理対象のすべての顧客についてリトライする必要がある。そのため、本処理では、顧客ごとの処理で失敗したか、複数顧客の一括処理で失敗したかにもとづき、リトライ方法を変更する。これにより、複数顧客の一括処理が含まれる処理について、効率良くリトライできる。
リトライメッセージ登録処理を開始するとS801で、データロード実行部402は、複数顧客の一括処理(S705)が失敗したか否かを判定する。ここで、データロード実行部402が、複数顧客の一括処理が失敗したと判定した場合はS802に進む。一方、データロード実行部402が、複数顧客の一括処理は失敗していない、つまり、複数顧客の一括処理は成功しており且つ顧客ごとに行われる個別処理(S703、S708、S709)が失敗したと判定した場合はS803に進む。
続いてS802で、データロード実行部402は、S701で取得したメッセージをリトライ用のメッセージとして、データロードキュー106に登録し、本処理を終了する。複数顧客の一括処理で失敗した場合は、処理対象のすべての顧客についてリトライが必要である。そのため、処理対象のすべての顧客の処理を要求するメッセージ(S701で取得したメッセージ)をリトライ用のメッセージとする。
一方S803で、データロード実行部402は、顧客ごとの処理が失敗した顧客のみの処理を要求するメッセージを作成する。つまり、顧客ごとの処理が失敗した複数顧客の一括処理を要求する一つのメッセージを作成する。
続いてS804で、データロード実行部402は、S803で作成したメッセージをリトライ用のメッセージとして、データロードキュー106に登録し、本処理を終了する。
なお、複数顧客の一括処理および顧客ごとの処理のいずれも失敗した場合は、S801でYesに進み、S802の処理が行われる。
<データ集計処理>
図9は、データ集計実行部502が実行するデータ集計処理の手順例を示すフローチャートである。本処理は、データ集計サーバー109がデータ集計キュー108に登録されているメッセージを確認し、取得可能なメッセージがある際に実行する処理である。本処理では、集計クエリーをデータベース111に送信し、返信されたクエリー結果を集計結果として保存する。例えば、顧客の締め日の設定をもとに、データを月単位で集計する。そのため、データ集計処理は、データロード処理とは異なり、顧客ごとの設定に依存する処理である。よって、データ集計処理は、複数顧客を一括処理できず、顧客ごとに処理する必要がある。
データ集計処理を開始するとS901で、メッセージ取得部501は、取得可能なメッセージをデータ集計キュー108から1つ取得する。
続いてS902で、データ集計実行部502は、顧客の集計状態を実行中に変更する。本処理では、顧客の集計状態が「未実行」の場合のみ「実行中」に変更する。顧客の集計状態が「実行中」の場合は、対象顧客の処理が失敗したと判定する。
続いてS903で、データ集計実行部502は、顧客のデータ集計処理を実行する。続いてS904で、データ集計実行部502は、顧客の集計状態を未実行に変更する。続いてS905で、メッセージ削除部503は、S901で取得したメッセージをデータ集計キュー108から削除する。
続いてS906で、データ集計実行部502は、S902、S903の処理がすべて成功したか否かを判定する。ここで、データ集計実行部502が、処理がすべて成功したと判定した場合は、S901に戻り別のメッセージを処理する。一方、データ集計実行部502が、処理のいずれかが失敗したと判定した場合はS907に進む。
続いてS907で、データ集計実行部502は、S901で取得したメッセージをリトライ用のメッセージとして、データ集計キュー108に登録し、本処理を終了する。
本実施例では、集計指示サーバー105が、複数顧客を一括処理するためのメッセージを作成してデータロードキュー106に登録し、データロードサーバー107がそのメッセージに基づく一括処理を行った。本実施例によれば、複数顧客の処理において一括処理を行うことで、顧客ごとに処理を行う場合と比べて、処理時間を短縮することが可能となる。
(実施例2)
実施例1のメッセージをキューから取得して実行する処理では、処理の成功・失敗に関わらず、取得したメッセージをキューから削除し、リトライが必要な場合にリトライ用のメッセージをキューに再登録するリトライ方法を示した。本実施例では、不可視時間経過後にメッセージが可視状態になるというキューの特性を使用した、別のリトライ方法を示す。なお、以下では実施例1との差分について説明する。
<データロード処理>
図10は、実施例2におけるデータロードサーバー107が実行するデータロード処理の手順例を示すフローチャートである。本処理は、実施例1の図7で示したデータロード処理を変更したものである。実施例2では、不可視時間経過後にメッセージが可視状態になるというキューの特性を使用した、別のリトライ方法を示す。そのため、処理の成功・失敗に関わらず、取得したメッセージをキューから削除していた処理(S711)以降を変更している。
S701~S710は、実施例1で示した通りである。
S1001で、データロード実行部402は、S703、S705、S708、S709の処理がすべて成功したか否かを判定する。ここで、データロード実行部402は、処理がすべて成功したと判定した場合はS1002に進む。一方、データロード実行部402は、処理のいずれかが失敗したと判定した場合はS1003に進む。
続いてS1002で、メッセージ削除部404は、S701で取得したメッセージをデータロードキュー106から削除し、S701に戻り別のメッセージを処理する。
続いてS1003で、データロード実行部402は、リトライ用のメッセージをデータロードキュー106に登録し、S701に戻り別のメッセージを処理する。実施例2におけるリトライメッセージ登録処理の詳細については後述する。
<リトライメッセージ登録処理>
図11は、図10に示したS1003で実行する実施例2におけるリトライメッセージ登録処理の詳細手順例を示すフローチャートである。本処理は、実施例1の図8で示したリトライメッセージ登録処理を変更したものである。実施例2では、不可視時間経過後にメッセージが可視状態になるというキューの特性を使用した、別のリトライ方法を示す。
データロード処理における複数顧客の一括処理(S705)で失敗した場合は、データロードキューからそのメッセージを削除しないようにする。すると、不可視時間経過後にメッセージが可視状態になり、処理対象の複数顧客についての一括処理がリトライされる。
一方、データロード処理における顧客ごとの処理(S703、S707~S709)が失敗した場合は、失敗した顧客のみリトライする方が効率的である。よって、本処理では、顧客ごとの処理が失敗した場合は、メッセージをキューから削除し、失敗した顧客のみリトライする新規メッセージを作成して登録する。
リトライメッセージ登録処理を開始するとS1101で、データロード実行部402は、複数顧客の一括処理(S705)が失敗したか否かを判定する。ここで、データロード実行部402が、複数顧客の一括処理が失敗していない、つまり、顧客ごとの処理(S703.S707~S709)で失敗したと判定した場合には、S1102に進む。一方、データロード実行部402が、複数顧客の一括処理で失敗したと判定した場合は本処理を終了する。複数の一括処理が失敗した場合は、不可視時間経過後にメッセージが可視状態になることで、処理対象のすべての顧客についてリトライできる。
続いてS1102で、メッセージ削除部404は、S701で取得したメッセージをデータロードキュー106から削除する。続いてS1103で、データロード実行部402は、顧客ごとの処理が失敗した顧客のみの処理を要求するメッセージを作成する。つまり、顧客ごとの処理が失敗した複数顧客の一括処理を要求する一つのメッセージを作成する。
続いてS1104で、データロード実行部402は、S1103で作成したメッセージをリトライ用のメッセージとして、データロードキュー106に登録し、本処理を終了する。
本実施例では、複数顧客の一括処理で失敗した場合には、データロードキューからそのメッセージを削除しないようにした。これにより、不可視時間経過後にメッセージが可視状態になるというキューの特性を使用して、効率良くリトライできる。
(他の実施例)
本発明は、上述した実施形態を適宜組み合わせることにより構成された装置あるいはシステムやその方法も含まれるものとする。
ここで、本発明は、上述した実施形態の機能を実現する1つ以上のソフトウェア(プログラム)を実行する主体となる装置あるいはシステムである。また、その装置あるいはシステムで実行される上述した実施形態を実現するための方法も本発明の1つである。また、そのプログラムは、ネットワークまたは各種記憶媒体を介してシステムあるいは装置に供給され、そのシステムあるいは装置の1つ以上のコンピューター(CPUやMPU等)によりそのプログラムが読み出され、実行される。つまり、本発明の1つとして、さらにそのプログラム自体、あるいは当該プログラムを格納したコンピューターにより読み取り可能な各種記憶媒体も含むものとする。また、上述した実施形態の機能を実現する回路(例えば、ASIC)によっても、本発明は実現可能である。
101 情報処理システム
105 集計指示サーバー

Claims (13)

  1. 複数顧客のデータを、データベースの顧客ごとの専用の記憶領域である複数テナントを用いて管理する管理手段と、
    処理対象のデータの処理のためのリクエストを受信する受信手段と、
    前記受信したリクエストに対応する処理対象のデータが、前記複数テナントにわたった一括処理されないデータである場合、前記受信したリクエストに対応する処理対象のデータが管理される1テナントへのアクセスが必要となる第1処理を実行するための第1メッセージをキューに登録し、前記受信したリクエストに対応する処理対象のデータが、前記複数テナントのうちの予め決められた2以上のテナントにわたった一括処理されるデータである場合、前記受信したリクエストに対応する処理対象のデータが管理される前記2以上のテナントそれぞれへのアクセスが必要となる第2処理を実行するための1つの第2メッセージを前記キューに登録する登録手段と、
    前記キューに登録されたメッセージを取得する取得手段と、
    前記取得したメッセージが前記第1メッセージである場合、当該第1メッセージに基づき、前記データベースの前記1テナントへのアクセスが必要となる前記第1処理を実行し、前記取得したメッセージが前記第2メッセージである場合、当該第2メッセージに基づき、前記データベースの前記2以上のテナントそれぞれへのアクセスが必要となる前記第2処理を実行する実行手段と、を有することを特徴とする情報処理システム。
  2. 前記第2処理は、前記データベースの前記2以上のテナントそれぞれへのアクセスが必要となる一括処理であることを特徴とする請求項1に記載の情報処理システム。
  3. 前記第1処理は、前記複数テナントにわたった一括処理ではなく、前記データベースの前記1テナントへのアクセスが必要となる処理であることを特徴とする請求項1または2に記載の情報処理システム。
  4. 前記キューに登録されたメッセージの数または前記実行手段の処理負荷に基づき、前記実行手段の数が調整されることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理システム。
  5. 前記キューに対して、前記取得したメッセージを削除するための指示を行う指示手段を更に有し、
    前記指示手段は、前記実行手段による処理が終了した後、前記取得したメッセージを削除するための指示を行い、
    前記指示に応じて、前記取得したメッセージが前記キューから削除されることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理システム。
  6. 前記実行手段は、前記2以上のテナントにわたった一括処理に失敗した場合、前記取得したメッセージを前記キューに登録することを特徴とする請求項1乃至5のいずれか1項に記載の情報処理システム。
  7. 前記実行手段は、前記取得したメッセージが前記第メッセージである場合に、当該第メッセージに基づき、前記2以上のテナントそれぞれへのアクセスが必要となる一括処理の実行前または実行後に、前記2以上のテナントそれぞれへの個別処理を行うことを特徴とする請求項1乃至6のいずれか1項に記載の情報処理システム。
  8. 前記実行手段は、前記2以上のテナントへの一括処理に成功し、かつ、前記2以上のテナントそれぞれへの個別処理の少なくとも一部に失敗した場合、該失敗した個別処理のみを再び行うためのメッセージを作成し、該作成したメッセージを前記キューに登録することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理システム。
  9. 前記キューに対して、前記取得したメッセージを削除するための指示を行う指示手段を更に有し、
    前記指示手段は、前記2以上のテナントへの一括処理および前記2以上のテナントそれぞれへの個別処理のいずれも成功した場合に、前記キューに対して前記取得したメッセージを削除するための指示を行い、
    前記指示手段による前記指示に応じて、前記取得したメッセージが前記キューから削除されることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理システム。
  10. 前記指示手段は、前記2以上のテナントへの一括処理に失敗した場合、前記キューに対して前記取得したメッセージを削除するための指示を行わず、
    前記取得したメッセージは、前記実行手段が該メッセージを取得してから一定時間経過した後に、前記実行手段により取得可能となることを特徴とする請求項9に記載の情報処理システム。
  11. 前記第2処理の処理対象の複数のデータは、定期的な集計処理の対象となるデータであることを特徴とする請求項1乃至10のいずれか1項に記載の情報処理システム。
  12. 前記受信したリクエストに対応する処理対象のデータが前記複数テナントのうちの予め決められた2以上のテナントにわたった一括処理されるデータである場合、前記受信したリクエストに対応する処理対象のデータが管理される前記2以上のテナントに対応する複数顧客をグループ化するグループ化手段を更に有し、
    前記登録手段は、前記グループ化された複数顧客に対応する前記2以上のテナントそれぞれへのアクセスが必要となる第2処理を実行するための前記第2メッセージを前記キューに登録することを特徴とする請求項1乃至11のいずれか1項に記載の情報処理システム。
  13. 複数顧客のデータを、データベースの顧客ごとの専用の記憶領域である複数テナントを用いて管理する管理工程と、
    処理対象のデータの処理のためのリクエストを受信する受信工程と、
    前記受信したリクエストに対応する処理対象のデータが、前記複数テナントにわたった一括処理されないデータである場合、前記受信したリクエストに対応する処理対象のデータが管理される1テナントへのアクセスが必要となる第1処理を実行するための第1メッセージをキューに登録し、前記受信したリクエストに対応する処理対象のデータが、前記複数テナントのうちの予め決められた2以上のテナントにわたった一括処理されるデータである場合、前記受信したリクエストに対応する処理対象のデータが管理される前記2以上のテナントそれぞれへのアクセスが必要となる第2処理を実行するための1つの第2メッセージを前記キューに登録する登録工程と、
    前記キューに登録されたメッセージを取得する取得工程と、
    前記取得したメッセージが前記第1メッセージである場合、当該第1メッセージに基づき、前記データベースの前記1テナントへのアクセスが必要となる前記第1処理を実行し、前記取得したメッセージが前記第2メッセージである場合、当該第2メッセージに基づき、前記データベースの前記2以上のテナントそれぞれへのアクセスが必要となる前記第2処理を実行する実行工程と、を有することを特徴とする情報処理システムの制御方法。
JP2017107071A 2017-05-30 2017-05-30 情報処理システム、および制御方法 Active JP7098280B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017107071A JP7098280B2 (ja) 2017-05-30 2017-05-30 情報処理システム、および制御方法
US15/971,512 US11461268B2 (en) 2017-05-30 2018-05-04 Information processing system and control method
DE102018112559.3A DE102018112559A1 (de) 2017-05-30 2018-05-25 Informationsverarbeitungssystem und Steuerverfahren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017107071A JP7098280B2 (ja) 2017-05-30 2017-05-30 情報処理システム、および制御方法

Publications (2)

Publication Number Publication Date
JP2018205839A JP2018205839A (ja) 2018-12-27
JP7098280B2 true JP7098280B2 (ja) 2022-07-11

Family

ID=64279327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017107071A Active JP7098280B2 (ja) 2017-05-30 2017-05-30 情報処理システム、および制御方法

Country Status (3)

Country Link
US (1) US11461268B2 (ja)
JP (1) JP7098280B2 (ja)
DE (1) DE102018112559A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110324734B (zh) * 2019-06-27 2022-06-17 烽火通信科技股份有限公司 一种pon终端的地域定制化配置的自动导入方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008159081A (ja) 2008-02-21 2008-07-10 Nec Corp キューイング装置、キュー処理方法、およびキュー処理プログラム
US20110246434A1 (en) 2010-04-01 2011-10-06 Salesforce.Com Methods and systems for bulk uploading of data in an on-demand service environment
JP2013069213A (ja) 2011-09-26 2013-04-18 Fujitsu Ltd 検索要求処理装置
US20140304246A1 (en) 2013-04-03 2014-10-09 Salesforce.Com, Inc. Systems and methods for implementing bulk handling in asynchronous processing

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2667818B2 (ja) 1986-10-09 1997-10-27 株式会社日立製作所 トランザクション処理方法
US7146233B2 (en) * 2000-02-11 2006-12-05 Sun Microsystems, Inc. Request queue management
JP2011123660A (ja) * 2009-12-10 2011-06-23 Toshiba Tec Corp 決済端末、pos端末及びその制御プログラム
US8473953B2 (en) * 2010-07-21 2013-06-25 International Business Machines Corporation Batching transactions to apply to a database
US20130145371A1 (en) * 2011-12-01 2013-06-06 Sap Ag Batch processing of business objects
US9495411B2 (en) * 2012-09-24 2016-11-15 Salesforce.Com, Inc. Increased parallelism performance of batch requests
US20140278812A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation Diagnostics storage within a multi-tenant data center
JP5885818B2 (ja) 2014-12-16 2016-03-16 キヤノン株式会社 情報処理システム、情報処理システム制御方法、およびそのプログラム
WO2016115735A1 (en) * 2015-01-23 2016-07-28 Murthy Sharad R Processing high volume network data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008159081A (ja) 2008-02-21 2008-07-10 Nec Corp キューイング装置、キュー処理方法、およびキュー処理プログラム
US20110246434A1 (en) 2010-04-01 2011-10-06 Salesforce.Com Methods and systems for bulk uploading of data in an on-demand service environment
JP2013069213A (ja) 2011-09-26 2013-04-18 Fujitsu Ltd 検索要求処理装置
US20140304246A1 (en) 2013-04-03 2014-10-09 Salesforce.Com, Inc. Systems and methods for implementing bulk handling in asynchronous processing

Also Published As

Publication number Publication date
US20180349392A1 (en) 2018-12-06
DE102018112559A1 (de) 2018-12-06
JP2018205839A (ja) 2018-12-27
US11461268B2 (en) 2022-10-04

Similar Documents

Publication Publication Date Title
JP6023221B2 (ja) 環境設定サーバ、計算機システム、及び環境設定方法
EP3143501B1 (en) Mechanism for performing rolling updates with data unavailability check in a networked virtualization environment for storage management
US9442809B2 (en) Management computer used to construct backup configuration of application data
US8572037B2 (en) Database server, replication server and method for replicating data of a database server by at least one replication server
US8489739B2 (en) Method, computer system and management computer for managing performance of a storage network
JP5309263B2 (ja) 計算機システム及びその管理方法
US11169835B1 (en) VM data migration between storage devices
US20150236974A1 (en) Computer system and load balancing method
US9984139B1 (en) Publish session framework for datastore operation records
JP2009116796A (ja) データ読出し方法、データ管理システム及びストレージシステム
US20210073198A1 (en) Using persistent memory and remote direct memory access to reduce write latency for database logging
WO2016143095A1 (ja) 計算機システム及びトランザクション処理の管理方法
JP2004303190A (ja) プログラム、情報処理装置、情報処理装置の制御方法、及び記録媒体
US11449241B2 (en) Customizable lock management for distributed resources
CN109684270A (zh) 数据库归档方法、装置、系统、设备及可读存储介质
US20210374107A1 (en) Distributed file system and distributed file managing method
US20130159255A1 (en) Storage system and method for controlling storage system
US11138198B2 (en) Handling of unresponsive read only instances in a reader farm system
JP6828253B2 (ja) バックアップ制御装置、バックアップ制御方法及びプログラム
JP2018063672A (ja) メッセージ実行サーバー、制御方法、およびプログラム
JP7098280B2 (ja) 情報処理システム、および制御方法
JP6755680B2 (ja) データ移行システム、及び、データ移行システムの制御方法
US10942821B1 (en) Method and apparatus for dynamic binding and unbinding thin logical storage volumes to snapshots of a file system
WO2019143967A1 (en) Methods for automated artifact storage management and devices thereof
WO2014030249A1 (ja) ボリュームのi/o性能の検証システム及び検証方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200521

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220203

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220531

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220629

R151 Written notification of patent or utility model registration

Ref document number: 7098280

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151