Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7079573B2 - 楽観的排他処理直列化装置、楽観的排他処理直列化方法、および、楽観的排他処理直列化プログラム - Google Patents
[go: Go Back, main page]

JP7079573B2 - 楽観的排他処理直列化装置、楽観的排他処理直列化方法、および、楽観的排他処理直列化プログラム - Google Patents

楽観的排他処理直列化装置、楽観的排他処理直列化方法、および、楽観的排他処理直列化プログラム Download PDF

Info

Publication number
JP7079573B2
JP7079573B2 JP2017139183A JP2017139183A JP7079573B2 JP 7079573 B2 JP7079573 B2 JP 7079573B2 JP 2017139183 A JP2017139183 A JP 2017139183A JP 2017139183 A JP2017139183 A JP 2017139183A JP 7079573 B2 JP7079573 B2 JP 7079573B2
Authority
JP
Japan
Prior art keywords
transaction
target data
update
target
execution
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
JP2017139183A
Other languages
English (en)
Other versions
JP2019021043A (ja
Inventor
英晴 永井
剛光 上野
Original Assignee
株式会社オービック
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 株式会社オービック filed Critical 株式会社オービック
Priority to JP2017139183A priority Critical patent/JP7079573B2/ja
Publication of JP2019021043A publication Critical patent/JP2019021043A/ja
Application granted granted Critical
Publication of JP7079573B2 publication Critical patent/JP7079573B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、楽観的排他処理直列化装置、楽観的排他処理直列化方法、および、楽観的排他処理直列化プログラムに関する。
特許文献1には、入力されるトランザクション自体にロックを取得して動作するか否かの属性を予め備えさせておき、トランザクションの実行の前段階としてロック取得に対する楽観的排他制御をかける構成が開示されている。
特開2016-95638号公報
しかしながら、上記特許文献1においては、
トランザクション自体にロックを取得して動作するか否かの属性を予め設定しておく必要があるだけでなく、ロックを取得しないで動作するトランザクション同士の間では、通常の楽観的排他制御になってしまうという課題があった。
本発明は、上記問題点に鑑みてなされたものであって、楽観的排他処理自体をデータベースのトランザクション特性を利用して複数ユーザによる排他処理を直列化することにより、排他処理の堅牢性と一貫性とを担保できるようにする楽観的排他処理直列化装置、楽観的排他処理直列化方法、および、楽観的排他処理直列化プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係る楽観的排他処理直列化装置は、記憶部と制御部とを備えた楽観的排他処理直列化装置であって、前記記憶部は、対象データを記憶する対象データ記憶手段、を備え、前記制御部は、前記対象データ記憶手段に記憶された前記対象データに対するトランザクションを実行させるトランザクション実行手段と、前記対象データ記憶手段に記憶された前記対象データに対する前記トランザクションとは別の別トランザクションを実行させる別トランザクション実行手段と、前記トランザクション内でオブジェクトが作成された場合、前記別トランザクション内での当該オブジェクトと同名の同名オブジェクトの作成要求を検出する排他チェック手段と、前記排他チェック手段により前記別トランザクション内で前記同名オブジェクトの作成要求が検出された場合、当該別トランザクションの実行を中断させて待機させる待機手段と、前記トランザクション実行手段により前記トランザクションの実行が完了した場合、当該トランザクションをコミットさせ、前記トランザクション実行手段により前記トランザクションの実行にエラーが生じた場合、当該トランザクションをロールバックさせるトランザクション確定手段と、前記トランザクション確定手段により前記トランザクションがコミットまたはロールバックされた場合、前記待機手段による前記別トランザクションの待機を解除する待機解除手段と、を備えたことを特徴とする。
また、本発明に係る楽観的排他処理直列化装置は、前記制御部は、前記トランザクションがコミットされた場合、当該トランザクションに基づいて、前記対象データ記憶手段に記憶された前記対象データを更新する更新手段と、前記更新手段により更新された前記対象データに対する更新を制限する制限手段と、を更に備えたことを特徴とする。
また、本発明に係る楽観的排他処理直列化装置は、前記制御部は、前記別トランザクションのユーザに対して、前記トランザクションの実行対象である前記対象データの対象リストを通知する通知手段と、前記通知手段により通知された前記対象リストに含まれる前記対象データが前記ユーザにより上書更新対象として選択された場合、当該上書更新対象の前記対象データを特定する上書更新対象特定手段と、を更に備え、前記更新手段は、更に、前記上書更新対象特定手段により前記上書更新対象の対象データが特定された場合、前記制限手段による制限を解除し、前記別トランザクションに基づいて、前記対象データ記憶手段に記憶された当該上書更新対象の対象データを更新することを特徴とする。
また、本発明に係る楽観的排他処理直列化装置は、前記トランザクション確定手段は、更に、前記トランザクション実行手段により前記トランザクションの実行が完了した場合、前記オブジェクトを削除することを特徴とする。
また、本発明に係る楽観的排他処理直列化装置は、前記トランザクション確定手段は、更に、前記トランザクション実行手段により前記トランザクションの実行にエラーが生じた場合、前記オブジェクトを削除することを特徴とする。
また、本発明に係る楽観的排他処理直列化方法は、記憶部と制御部とを備えた楽観的排他処理直列化装置に実行させるための楽観的排他処理直列化方法であって、前記記憶部は、対象データを記憶する対象データ記憶手段、を備え、前記制御部で実行させる、前記対象データ記憶手段に記憶された前記対象データに対するトランザクションを実行させるトランザクション実行ステップと、前記対象データ記憶手段に記憶された前記対象データに対する前記トランザクションとは別の別トランザクションを実行させる別トランザクション実行ステップと、前記トランザクション内でオブジェクトが作成された場合、前記別トランザクション内での当該オブジェクトと同名の同名オブジェクトの作成要求を検出する排他チェックステップと、前記排他チェックステップにて前記別トランザクション内で前記同名オブジェクトの作成要求が検出された場合、当該別トランザクションの実行を中断させて待機させる待機ステップと、前記トランザクションの実行が完了した場合、当該トランザクションをコミットさせ、前記トランザクションの実行にエラーが生じた場合、当該トランザクションをロールバックさせるトランザクション確定ステップと、前記トランザクション確定ステップにて前記トランザクションがコミットまたはロールバックされた場合、前記別トランザクションの待機を解除する待機解除ステップと、を含むことを特徴とする。
また、本発明に係る楽観的排他処理直列化プログラムは、記憶部と制御部とを備えた楽観的排他処理直列化装置に実行させるための楽観的排他処理直列化プログラムであって、前記記憶部は、対象データを記憶する対象データ記憶手段、を備え、前記制御部において、前記対象データ記憶手段に記憶された前記対象データに対するトランザクションを実行させるトランザクション実行ステップと、前記対象データ記憶手段に記憶された前記対象データに対する前記トランザクションとは別の別トランザクションを実行させる別トランザクション実行ステップと、前記トランザクション内でオブジェクトが作成された場合、前記別トランザクション内での当該オブジェクトと同名の同名オブジェクトの作成要求を検出する排他チェックステップと、前記排他チェックステップにて前記別トランザクション内で前記同名オブジェクトの作成要求が検出された場合、当該別トランザクションの実行を中断させて待機させる待機ステップと、前記トランザクションの実行が完了した場合、当該トランザクションをコミットさせ、前記トランザクションの実行にエラーが生じた場合、当該トランザクションをロールバックさせるトランザクション確定ステップと、前記トランザクション確定ステップにて前記トランザクションがコミットまたはロールバックされた場合、前記別トランザクションの待機を解除する待機解除ステップと、を実行させることを特徴とする。
本発明によれば、楽観的排他処理に対して悲観的排他処理を行うことで、楽観的排他処理を占有および直列化させることができるため、楽観的排他処理のデメリットを回避することができるという効果を奏する。また、本発明によれば、リレーショナルデータベースマネジメントシステム(RDBMS)の性質を応用した悲観的排他処理を実現することができるという効果を奏する。また、本発明によれば、データ取得から更新終了ではなく、処理開始から排他チェック終了までに待機時間を抑えることができるため、ロック待ちの待機時間を圧縮することができるという効果を奏する。また、本発明によれば、悲観的排他処理と異なり、エラー時でも強い確実なロック解放を行うことができるという効果を奏する。また、本発明によれば、ユーザ判断による選択的排他を実行することができるという効果を奏する。
図1は、複数人による同時更新の一例を示す図である。 図2は、悲観的排他処理の一例を示す図である。 図3は、楽観的排他処理の一例を示す図である。 図4は、楽観的排他処理の一例を示す図である。 図5は、楽観的排他処理直列化装置の構成の一例を示すブロック図である。 図6は、本実施形態における楽観的排他処理直列化装置の処理の一例を示すフローチャートである。 図7は、本実施形態における楽観的排他処理直列化フローの一例を示す図である。 図8は、本実施形態における排他トランザクションの一例を示す図である。 図9は、本実施形態における待機処理の一例を示す図である。 図10は、本実施形態における待機処理の一例を示す図である。 図11は、本実施形態における楽観的排他制御の一例を示す図である。 図12は、本実施形態における楽観的排他制御の一例を示す図である。 図13は、本実施形態における選択的上書更新処理の一例を示す図である。
本発明の実施形態を図面に基づいて詳細に説明する。なお、本発明は本実施形態により限定されるものではない。
[1.概要]
まず、図1から図4を参照して、従来のデータベース更新処理の一例について説明する。図1は、複数人による同時更新の一例を示す図である。図2は、悲観的排他処理の一例を示す図である。図3および図4は、楽観的排他処理の一例を示す図である。
図1に示すように、従来のデータベース更新処理においては、複数人(UserAおよびUserB)がデータベースに記憶された伝票データ(J001)に対して同時に更新を実行した場合、J001をもとにした売上が二重計上される不整合が生じることがあった。
また、図2に示すように、従来の悲観的排他処理においては、排他テーブルを参照して、先にUserAの処理がJ001を使用していることが検知された場合、UserBの処理によるJ001の呼出が不可とされ、データを明示的にロックすることで、他者(UserB)の操作を封じる状態にし、UserAの処理が完全に完了後、排他テーブルをクリアしてUserBの処理の操作を可能にしていた。
このように、従来の悲観的排他処理においては、何らかの手法を用いてデータ取得時にデータロックを行っていた。それにより、従来の悲観的排他処理においては、一人のユーザが呼出中は、他のユーザは必ずロック待ちの状態になってしまっていた。また、従来の悲観的排他処理においては、呼出中のユーザがWebアプリケーションにてブラウザを閉じる操作を行ってしまったり、接続を切断したりした場合、データがロックされたままになってしまっていた。
すなわち、従来の悲観的排他処理においては、Webアプリケーションにおけるロック解放失敗の発生頻度が高いため、データの整合性を保てるものの、随時必要に応じて開放する負荷が高くなっていた。また、従来の悲観的排他処理においては、ロック待ちが発生することでWebサイトのタイムアウトを誘発し、ユーザのシステム操作に影響を及ぼしていたため、通常運用を円滑に回すことを目的とした場合、楽観的排他処理が採用されていた。
一方、図3に示すように、従来の楽観的排他処理においては、先にUserAの処理がJ001を使用していたとしても、先にUserBの処理がJ001を更新したことが検知された場合、すなわち、UserAの処理の処理完了前に、J001のデータ取得時のタイムスタンプと現在のタイムスタンプとを比較して異なっていた場合、UserBの先勝有効となり、UserAの処理を破棄(ロールバック)していた。
このように、従来の楽観的排他処理においては、ロックを掛けることはないが、処理の最後でチェックを行うため、NGとなった場合に、処理に要した時間が無駄になってしまっていた。
また、図4に示すように、従来の楽観的排他処理においては、UserAの処理が大量データ処理中にUserBの処理が1伝票(J001)のみデータ処理を行う際に、UserAの処理が更新日時確認を行っている最中にUserBの処理が全ての処理が完了した場合、UserAの処理は既に更新日時確認中であるが、UserBの処理による更新日時変更を検知できず、そのままJ001に対する売上が二重計上される不整合が生じることがあった。
このように、従来の楽観的排他処理においては、更新が同時に発生した場合、または、処理量が多い場合、チェックをすり抜ける可能性があった。すなわち、従来の楽観的排他処理においては、データの大規模化または処理内容の複雑化によって、相当な時間が経過した上で更新が破棄されてしまう、または、排他チェックの時間が重複してしまい、チェックが正常に掛からないといったケースが発生していた。
以上のように、従来、相当量の伝票に対する一括更新処理等を行うWeb商材等において、複数ユーザ間で同時に処理対象データを奪い合うような場合、楽観的排他処理では限界が出てきていた。また、従来、確実な悲観的排他制御を掛けた場合、他のユーザの更新完了を待たなければならないため、ユーザの無駄な待機時間が必要となってしまうこと、および、条件緩和した楽観的排他制御を掛けた場合、同時実行性を捨てなければならないことの2点を同時にクリアすることが難しかった。
そこで、本実施形態においては、データに対する悲観的排他制御を掛けることが難しいWeb商材等において採用する楽観的排他処理のデメリットである堅牢性・一貫性・排他検出時間を解消できるようにしている。
[2.構成]
本実施形態に係る楽観的排他処理直列化装置100の構成の一例について、図5を参照して説明する。図5は、楽観的排他処理直列化装置100の構成の一例を示すブロック図である。
楽観的排他処理直列化装置100は、市販のデスクトップ型パーソナルコンピュータである。なお、楽観的排他処理直列化装置100は、デスクトップ型パーソナルコンピュータのような据置型情報処理装置に限らず、市販されているノート型パーソナルコンピュータ、PDA(Personal Digital Assistants)、スマートフォン、タブレット型パーソナルコンピュータなどの携帯型情報処理装置であってもよい。
楽観的排他処理直列化装置100は、制御部102と通信インターフェース部104と記憶部106と入出力インターフェース部108と、を備えている。楽観的排他処理直列化装置100が備えている各部は、任意の通信路を介して通信可能に接続されている。
通信インターフェース部104は、ルータ等の通信装置および専用線等の有線または無線の通信回線を介して、楽観的排他処理直列化装置100をネットワーク300に通信可能に接続する。通信インターフェース部104は、他の装置と通信回線を介してデータを通信する機能を有する。ここで、ネットワーク300は、楽観的排他処理直列化装置100とサーバ200とを相互に通信可能に接続する機能を有し、例えばインターネットやLAN(Local Area Network)等である。
記憶部106には、各種のデータベース、テーブル、およびファイルなどが格納される。記憶部106には、OS(Operating System)と協働してCPU(Central Processing Unit)に命令を与えて各種処理を行うためのコンピュータプログラムが記録される。記憶部106として、例えば、RAM(Random Access Memory)・ROM(Read Only Memory)等のメモリ装置、ハードディスクのような固定ディスク装置、フレキシブルディスク、および光ディスク等を用いることができる。記憶部106は、対象データデータベース106aを備えている。
対象データデータベース106aは、対象データを記憶する。ここで、対象データは、複数人が一度に更新(改定)するようなマスタデータ等であってもよい。なお、対象データは、伝票データ、法人データ、個人データ、単価データ、予算改定の対象となる予算データ、目標改定の対象となる目標データ、商品データ、製品データ、不動産データ、テナントデータ、または、契約データ等であってもよい。ここで、法人データは、与信改定業務等の対象となる顧客データまたは取引先データ等であってもよい。また、個人データは、与信改定、決済条件もしくは住所変更等の対象となる顧客データ、または、給与賞与査定、人事考課もしくは入退社等といった人事・給与業務の対象となる社員データ等であってもよい。また、単価データは、単価改定の対象となる売買単価データ、契約単価データ、上代データ、下代データまたは原価単価データ等であってもよい。また、不動産データは、建物データまたは部屋データ等であってもよい。例えば、対象データは、売買における単価もしくは貸出、サービス契約の単価もしくは定価、または、仕切率もしくは低価法採用時における原価の一括変更等の対象となるマスタデータであってもよい。
入出力インターフェース部108には、入力装置112および出力装置114が接続されている。出力装置114には、モニタ(タッチパネルを含む)の他、スピーカやプリンタを用いることができる。入力装置112には、キーボード、マウス、およびマイクの他、マウスと協働してポインティングデバイス機能を実現するモニタを用いることができる。なお、以下では、出力装置114をモニタ114またはプリンタ114とし、入力装置112をキーボード112またはマウス112として記載する場合がある。
制御部102は、楽観的排他処理直列化装置100を統括的に制御するCPU等である。制御部102は、OS等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどを格納するための内部メモリを有し、格納されているこれらのプログラムに基づいて種々の情報処理を実行する。制御部102は、機能概念的に、トランザクション実行部102aと、排他チェック部102bと、待機部102cと、トランザクション確定部102dと、待機解除部102eと、通知部102fと、上書更新対象特定部102gと、更新部102hと、制限部102iとを備えている。
トランザクション実行部102aは、対象データデータベース106aに記憶された対象データに対するトランザクションを実行させる。ここで、トランザクション実行部102aは、対象データデータベース106aに記憶された対象データに対するトランザクションとは別の別トランザクションを実行させてもよい。
排他チェック部102bは、トランザクション内でオブジェクトが作成された場合、別トランザクション内での当該オブジェクトと同名の同名オブジェクトの作成要求を検出する。
待機部102cは、排他チェック部102bにより別トランザクション内で同名オブジェクトの作成要求が検出された場合、当該別トランザクションの実行を中断させて待機させる。
トランザクション確定部102dは、トランザクション実行部102aによりトランザクションの実行が完了した場合、当該トランザクションをコミットさせ、トランザクション実行部102aによりトランザクションの実行にエラーが生じた場合、当該トランザクションをロールバックさせる。ここで、トランザクション確定部102dは、更に、トランザクション実行部102aによりトランザクションの実行が完了した場合、オブジェクトを削除してもよい。また、トランザクション確定部102dは、更に、トランザクション実行部102aによりトランザクションの実行にエラーが生じた場合、オブジェクトを削除してもよい。
待機解除部102eは、トランザクション確定部102dによりトランザクションがコミットまたはロールバックされた場合、待機部102cによる別トランザクションの待機を解除する。
通知部102fは、別トランザクションのユーザに対して、トランザクションの実行対象である対象データの対象リストを通知する。ここで、通知部102fは、別トランザクションのユーザに対して、トランザクションの実行対象である対象データの対象リストを出力装置114に表示させることで通知してもよい。
上書更新対象特定部102gは、通知部102fにより通知された対象リストに含まれる対象データがユーザにより上書更新対象として選択された場合、当該上書更新対象の対象データを特定する。ここで、上書更新対象特定部102gは、通知部102fにより通知された対象リストに含まれる対象データがユーザにより入力装置112を介して上書更新対象として選択された場合、当該上書更新対象の対象データを特定してもよい。
更新部102hは、トランザクションがコミットされた場合、当該トランザクションに基づいて、対象データデータベース106aに記憶された対象データを更新する。ここで、更新部102hは、更に、上書更新対象特定部102gにより上書更新対象の対象データが特定された場合、制限部102iによる制限を解除し、別トランザクションに基づいて、対象データデータベース106aに記憶された当該上書更新対象の対象データを更新してもよい。
制限部102iは、更新部102hにより更新された対象データに対する更新を制限する。
[3.具体例]
本実施形態の具体例について、図6から図13を参照して説明する。
[楽観的排他処理直列化]
ここで、図6を参照して、本実施形態における楽観的排他処理直列化の一例について説明する。図6は、本実施形態における楽観的排他処理直列化装置100の処理の一例を示すフローチャートである。
図6に示すように、トランザクション実行部102aは、伝票データに対する更新指示がユーザAにより入力装置112を介して入力された場合、対象データデータベース106aに記憶された伝票データに対する排他トランザクションを実行させる(ステップSA-1)。なお、トランザクション実行部102aは、排他トランザクションの実行を、ステップSA-1からステップSA-4の間、または、ステップSA-1からステップSA-10の間、他の処理と並行して実行させる。
そして、排他チェック部102bは、トランザクション内でテーブルが作成された場合、排他トランザクションとは別の別トランザクション内での当該テーブルと同名の同名テーブルの作成要求を検出する(ステップSA-2)。
そして、制御部102は、排他チェック部102bにより別排他トランザクション内で同名テーブルの作成要求が検出されたか否かを判定する(ステップSA-3)。
そして、制御部102は、別排他トランザクション内で同名テーブルの作成要求が検出されなかったと判定した場合(ステップSA-3:No)、処理をステップSA-4に移行させる。
そして、トランザクション確定部102dは、トランザクション実行部102aにより排他トランザクションの実行が完了した場合、テーブルを削除して当該排他トランザクションをコミットさせ、トランザクション実行部102aにより排他トランザクションの実行にエラーが生じた場合、当該排他トランザクションをロールバックさせる(ステップSA-4)。
そして、制御部102は、排他トランザクションがコミットしたか否かを判定する(ステップSA-5)。
そして、制御部102は、排他トランザクションがコミットしていない(ロールバックした)と判定した場合(ステップSA-5:No)、処理を終了する。
一方、制御部102は、排他トランザクションがコミットしたと判定した場合(ステップSA-5:Yes)、処理をステップSA-6に移行させる。
そして、更新部102hは、排他トランザクションに基づいて、対象データデータベース106aに記憶された伝票データに対する実処理(実更新処理)トランザクションを実行させることで、対象データデータベース106aに記憶された伝票データを更新する(ステップSA-6)。
そして、制限部102iは、更新部102hにより更新された伝票データに対する更新を制限し(ステップSA-7)、処理を終了する。
一方、制御部102は、別排他トランザクション内で同名テーブルの作成要求が検出されたと判定した場合(ステップSA-3:Yes)、処理をステップSA-8に移行させる。
そして、待機部102cは、別排他トランザクションの実行を中断させて待機させる(ステップSA-8)。
そして、通知部102fは、別排他トランザクションのユーザBに対して、排他トランザクションの実行対象である伝票データの伝票リストを出力装置114に選択可能に表示させることで通知する(ステップSA-9)。
そして、トランザクション確定部102dは、トランザクション実行部102aにより排他トランザクションの実行が完了した場合、テーブルを削除して当該排他トランザクションをコミットさせ、トランザクション実行部102aにより排他トランザクションの実行にエラーが生じた場合、当該排他トランザクションをロールバックさせる(ステップSA-10)。
そして、制御部102は、排他トランザクションがコミットしたか否かを判定する(ステップSA-11)。
そして、制御部102は、排他トランザクションがコミットしていない(ロールバックした)と判定した場合(ステップSA-11:No)、処理をステップSA-12に移行させる。
そして、待機解除部102eは、待機部102cによる別排他トランザクションの待機を解除し(ステップSA-12)、待機を解除した(実行を再開させた)別排他トランザクションを新たな排他トランザクションと設定しなおして、処理をステップSA-2に移行させる。
一方、制御部102は、排他トランザクションがコミットしたと判定した場合(ステップSA-11:Yes)、処理をステップSA-13に移行させる。
そして、待機解除部102eは、待機部102cによる別トランザクションの待機を解除する(実行を再開させる)(ステップSA-13)。
そして、更新部102hは、排他トランザクションに基づいて、対象データデータベース106aに記憶された伝票データに対する実処理トランザクションを実行させることで、対象データデータベース106aに記憶された伝票データを更新する(ステップSA-14)。
そして、制限部102iは、更新部102hにより更新された伝票データに対する更新を制限する(ステップSA-15)。
そして、上書更新対象特定部102gは、通知部102fにより通知された伝票リストに含まれる伝票データがユーザBにより入力装置112を介して上書更新対象として選択されたか否かを判定する(ステップSA-16)。
そして、上書更新対象特定部102gは、伝票リストに含まれる伝票データがユーザBにより上書更新対象として選択されなかった場合(ステップSA-16:No)、処理を終了する。
一方、上書更新対象特定部102gは、伝票リストに含まれる伝票データがユーザBにより上書更新対象として選択された場合(ステップSA-16:Yes)、処理をステップSA-17に移行させる。
そして、上書更新対象特定部102gは、ユーザBにより選択された上書更新対象の伝票データを特定する(ステップSA-17)。
そして、更新部102hは、制限部102iによる制限を解除し、別トランザクションに基づいて、対象データデータベース106aに記憶された上書更新対象の伝票データに対する実処理トランザクションを実行させることで、対象データデータベース106aに記憶された上書更新対象の伝票データを上書更新し(ステップSA-18)、処理を終了する。
ここで、図7から図13を参照して、楽観的排他処理直列化の詳細について説明する。
まず、図7および図8を参照して、本実施形態における楽観的排他処理の一例について説明する。図7は、本実施形態における楽観的排他処理直列化フローの一例を示す図である。図8は、本実施形態における排他トランザクションの一例を示す図である。
図7に示すように、本実施形態においては、UserAによる対象データ(J001)に対する更新指示に基づいて、排他トランザクションが実施され、テーブルaを作成する。ここで、本実施形態においては、既にUserAの排他トランザクション内でテーブルaの生成が行われているため、別のトランザクションで同名テーブルの生成が実行された場合、先行トランザクションが確定するまでロックが掛かる機能を利用して、UserAの排他トランザクションが確定(ロールバックまたはコミット)するまで、UserBの排他トランザクションを、テーブルaの作成で強制的に待機させる。これにより、本実施形態においては、楽観的排他処理の操作を確実に一人だけしか行えない状況を作り出している。ここで、本実施形態においては、UserBの処理が待機している間に、UserAの排他トランザクションは、排他チェック、および、後続者に自身の更新対象を知らせる為の処理を行ってもよい。そして、本実施形態においては、UserAの排他トランザクションがコミットした場合、UserAの排他トランザクションは、そのまま実処理トランザクションによる更新へ移り、UserBの排他トランザクションは、待機していたテーブルaの作成を再開する。そして、本実施形態においては、排他チェックにてUserAの実処理トランザクション内で書き換えた結果が確認された場合、UserAの処理を全て破棄する。
また、図8に示すように、本実施形態における排他トランザクションにおいては、排他チェックエラーおよび異常終了(異常系処理)を想定して、楽観的排他処理直列化装置100内でのトランザクションロールバックさせる処理SB-1(例えば、サーバ障害等により明示的コミットがされない場合、自動的にロールバックさせる処理)を実装してもよい。これにより、本実施形態においては、ロールバックによりテーブルaの作成要求自体を無かったことにしてもよい。
また、図8に示すように、本実施形態における排他トランザクションにおいては、排他チェック正常終了(正常系処理)を想定して、テーブルaを作成した自身の排他トランザクション内でコミット前にテーブルaを削除する処理SB-2を実装してもよい。これにより、本実施形態においては、コミット前のテーブルa削除処理を通して、コミット後のデータベースにテーブルaが不在の状況を作ることができる。
すなわち、トランザクションがコミット済みでテーブルaが既に存在する状態で、別トランザクション内でテーブルaの作成処理が試みられた場合、データベースエラーとなるため、当該作成処理を行うためにはテーブルaを手動削除する等の手当てが必要であったが、本実施形態における排他トランザクションにおいては、2段構えでこの状況を回避している。
このように、本実施形態においては、悲観的排他処理のデメリットであったロック待ちの待機時間に関して、楽観的排他処理中のみという最低限の時間に絞って待機させることで、実処理トランザクションの処理量と比にならない程度に待機時間を抑えられている。また、本実施形態においては、不用意なロックという点でも、テーブルaが存在する状態で、UserAの排他トランザクションがコミットした場合、UserBの排他トランザクションは、同名テーブル作成によりエラーとなってしまうが、UserAの更新処理の正常完了時は、テーブルaの削除が行われた後に排他トランザクションがコミットされるため、テーブルaが確実に消えることで、UserBの排他トランザクションがエラーとなることが無いようにしている。また、本実施形態において、UserAの排他トランザクションは、サーバーエラー等を含むエラー時に、ロールバックされるため、UserAの処理によるテーブルaの作成が無かったことになることで、UserBの排他トランザクションがエラーとなることが無いようにしている。
また、図9および図10を参照して、本実施形態における待機処理の一例について説明する。図9および図10は、本実施形態における待機処理の一例を示す図である。
図9に示すように、本実施形態においては、UserAの処理が排他チェックに際して排他トランザクション内でテーブルaを作成した場合、他のユーザの処理が同名のテーブルaを作成できるようになるためには、UserAの処理がトランザクションを開放する必要があり、開放するまでの間、他のユーザの処理によるテーブルaの作成要求は待たされることになる。そのため、本実施形態において、UserBの処理は、自身の排他チェックに際してテーブルaの作成要求をした時点で、先行するUserAが排他チェックを終えるまで一時的な待ちが発生することになる。すなわち、UserAの処理からすると、自身のテーブルa作成要求が通った時点で排他チェックを行っているのは自身だけという状態となる。
また、図10に示すように、本実施形態においては、さらに後続のUserCが現れた場合、UserAの排他トランザクションおよびUserBの排他トランザクションが完了するまでの間、UserCの処理に対する強制的な待ちが発生するため、同じ時間帯に複数ユーザの処理による同じ排他チェックが掛かることは無い。
また、図11および図12を参照して、本実施形態における楽観的排他制御の一例について説明する。図11および図12は、本実施形態における楽観的排他制御の一例を示す図である。
図11に示すように、本実施形態においては、UserAの排他トランザクション後および実処理トランザクション後にUserBの処理が実行されても、UserAが書き換えた更新日時とUserBがデータ取得した時点での更新日時とが比較されるため、楽観的排他チェックによりUserBの処理は全て破棄される。
また、図12に示すように、本実施形態においては、UserBが別の伝票を計上しようとする場合、テーブルaの作成時に待機が発生するが、UserAの処理が書き換えた伝票データではなく別の伝票データを参照するため、UserBの処理は排他トランザクションを経て実処理トランザクションへと遷移することができる。
また、図13を参照して、本実施形態における選択的上書更新処理の一例について説明する。図13は、本実施形態における選択的上書更新処理の一例を示す図である。
図13に示すように、本実施形態においては、UserAの排他トランザクションにより排他エラーが検知された場合、UserBの排他トランザクション中に伝票毎の結果リスト(対象伝票リスト)がUserB側に通知される。そして、図13に示すように、本実施形態においては、エラー検知されてステータスが上書可能な伝票に対して、UserBの判断で選択し、上書対象の伝票を再度受け取った後に処理を続行することができる。すなわち、図13には、UserAの処理によりJ001およびJ002が更新され、J004が削除された場合に、UserBがJ001を上書更新対象をとして選択した例が示してあり、UserBの処理完了後の対象データの状態としては、J001についてUserBの処理による上書更新が反映され、J002についてUserAの処理による更新が反映され、J003についてUserBの処理による更新が反映され、J003についてUserAの処理による削除が反映された状態となる。
例えば、運送業務のように大量の注文に対して車の割当をするような業務においては、複数の配車担当者が効率良く配送が出来るよう、都度投入される伝票だけでなく、割当済の伝票も含めて見直しを行いながら配車業務に従事している場合があり、後から更新した担当者が最新の情報を元に配車している可能性が高く、当該担当者が先に更新された内容の正当性を判断し、最新データとすることが望ましいため、完全後勝または完全先勝とした場合、業務が回らなくなる可能性がある。そこで、本実施形態においては、排他処理を実装しなかった場合、完全後勝となり、排他処理を実装した場合、完全先勝になるが、特に大量の伝票を大人数で同時に捌くような業務形態において、伝票修正時に操作者の判断により部分的に自身の更新で上書きしたい案件の場合、選択的後勝更新の実装を可能としている。
このように、従来、排他エラーとなった場合、その時点で再入力等となるが、本実施形態においては、エラー結果をユーザに返し、自身の更新値を最新として上書するかどうかをユーザサイドに委ねる選択的後勝更新を可能としている。
また、従来の楽観的排他処理においては、全ての更新が完了したタイミングで他のユーザの待機解除が実施されるが、本実施形態においては、更新実処理を切り分け、更新実処理前に待機解除を行うことで、排他チェックに掛かるユーザの待ち時間を最小限に短縮することを可能としている。
[4.他の実施形態]
本発明は、上述した実施形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
例えば、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
また、本明細書中や図面中で示した処理手順、制御手順、具体的名称、各処理の登録データや検索条件等のパラメータを含む情報、画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
また、楽観的排他処理直列化装置100に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
例えば、楽観的排他処理直列化装置100が備える処理機能、特に制御部102にて行われる各処理機能については、その全部または任意の一部を、CPUおよび当該CPUにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、本実施形態で説明した処理を情報処理装置に実行させるためのプログラム化された命令を含む一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じて楽観的排他処理直列化装置100に機械的に読み取られる。すなわち、ROMまたはHDD(Hard Disk Drive)などの記憶部などには、OSと協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAMにロードされることによって実行され、CPUと協働して制御部を構成する。
また、このコンピュータプログラムは、楽観的排他処理直列化装置100に対して任意のネットワークを介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
また、本実施形態で説明した処理を実行するためのプログラムを、一時的でないコンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、USB(Universal Serial Bus)メモリ、SD(Secure Digital)カード、フレキシブルディスク、光磁気ディスク、ROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable and Programmable Read Only Memory)、CD-ROM(Compact Disk Read Only Memory)、MO(Magneto-Optical disk)、DVD(Digital Versatile Disk)、および、Blu-ray(登録商標) Disc等の任意の「可搬用の物理媒体」を含むものとする。
また、「プログラム」とは、任意の言語または記述方法にて記述されたデータ処理方法であり、ソースコードまたはバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OSに代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施形態に示した各装置において記録媒体を読み取るための具体的な構成および読み取り手順ならびに読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
記憶部106に格納される各種のデータベース等は、RAM、ROM等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および、ウェブページ用ファイル等を格納する。
また、楽観的排他処理直列化装置100は、既知のパーソナルコンピュータまたはワークステーション等の情報処理装置として構成してもよく、また、任意の周辺装置が接続された当該情報処理装置として構成してもよい。また、楽観的排他処理直列化装置100は、当該装置に本実施形態で説明した処理を実現させるソフトウェア(プログラムまたはデータ等を含む)を実装することにより実現してもよい。
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じてまたは機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。
本発明は、食品業界、流通業界、建材業界または運送業界等の大量データを同時処理する必要がある業界において有用である。
100 楽観的排他処理直列化装置
102 制御部
102a トランザクション実行部
102b 排他チェック部
102c 待機部
102d トランザクション確定部
102e 待機解除部
102f 通知部
102g 上書更新対象特定部
102h 更新部
102i 制限部
104 通信インターフェース部
106 記憶部
106a 対象データデータベース
108 入出力インターフェース部
112 入力装置
114 出力装置
200 サーバ
300 ネットワーク

Claims (5)

  1. 記憶部と制御部とを備えた楽観的排他処理直列化装置であって、
    前記記憶部は、
    対象データを記憶する対象データ記憶手段、
    を備え、
    前記制御部は、
    前記対象データ記憶手段に記憶された前記対象データに対するトランザクションを実行させるトランザクション実行手段と、
    前記対象データ記憶手段に記憶された前記対象データに対する前記トランザクションとは別の別トランザクションを実行させる別トランザクション実行手段と、
    前記トランザクションおよび前記別トランザクションに基づく前記対象データの更新の完了前に、前記トランザクション内でオブジェクトが作成された場合、前記別トランザクション内での当該オブジェクトと同名の同名オブジェクトの作成要求を検出する排他チェック手段と、
    前記トランザクションおよび前記別トランザクションに基づく前記対象データの更新の完了前に、前記排他チェック手段により前記別トランザクション内で前記同名オブジェクトの作成要求が検出された場合、当該別トランザクションの実行を中断させて待機させる待機手段と、
    前記別トランザクションのユーザに対して、前記トランザクションの実行対象である前記対象データの対象リストを通知する通知手段と、
    前記トランザクション実行手段により前記トランザクションの実行が完了した場合、当該トランザクションをコミットさせ、前記トランザクション実行手段により前記トランザクションの実行にエラーが生じた場合、当該トランザクションをロールバックさせるトランザクション確定手段と、
    前記トランザクション確定手段により前記トランザクションがコミットまたはロールバックされた場合、前記待機手段による前記別トランザクションの待機を解除する待機解除手段と、
    前記トランザクションがコミットされた場合、当該トランザクションに基づいて、前記対象データ記憶手段に記憶された前記対象データを更新する更新手段と、
    前記更新手段により更新された前記対象データに対する更新を制限する制限手段と、
    前記通知手段により通知された前記対象リストに含まれる前記対象データが前記ユーザにより上書更新対象として選択された場合、当該上書更新対象の前記対象データを特定する上書更新対象特定手段と、
    を備え
    前記更新手段は、
    更に、前記上書更新対象特定手段により前記上書更新対象の対象データが特定された場合、前記制限手段による制限を解除し、前記別トランザクションに基づいて、前記対象データ記憶手段に記憶された当該上書更新対象の対象データを更新することを特徴とする楽観的排他処理直列化装置。
  2. 前記トランザクション確定手段は、
    更に、前記トランザクション実行手段により前記トランザクションの実行が完了した場合、前記オブジェクトを削除することを特徴とする請求項1に記載の楽観的排他処理直列化装置。
  3. 前記トランザクション確定手段は、
    更に、前記トランザクション実行手段により前記トランザクションの実行にエラーが生じた場合、前記オブジェクトを削除することを特徴とする請求項1または2に記載の楽観的排他処理直列化装置。
  4. 記憶部と制御部とを備えた楽観的排他処理直列化装置に実行させるための楽観的排他処理直列化方法であって、
    前記記憶部は、
    対象データを記憶する対象データ記憶手段、
    を備え、
    前記制御部で実行させる、
    前記対象データ記憶手段に記憶された前記対象データに対するトランザクションを実行させるトランザクション実行ステップと、
    前記対象データ記憶手段に記憶された前記対象データに対する前記トランザクションとは別の別トランザクションを実行させる別トランザクション実行ステップと、
    前記トランザクションおよび前記別トランザクションに基づく前記対象データの更新の完了前に、前記トランザクション内でオブジェクトが作成された場合、前記別トランザクション内での当該オブジェクトと同名の同名オブジェクトの作成要求を検出する排他チェックステップと、
    前記トランザクションおよび前記別トランザクションに基づく前記対象データの更新の完了前に、前記排他チェックステップにて前記別トランザクション内で前記同名オブジェクトの作成要求が検出された場合、当該別トランザクションの実行を中断させて待機させる待機ステップと、
    前記別トランザクションのユーザに対して、前記トランザクションの実行対象である前記対象データの対象リストを通知する通知ステップと、
    前記トランザクションの実行が完了した場合、当該トランザクションをコミットさせ、前記トランザクションの実行にエラーが生じた場合、当該トランザクションをロールバックさせるトランザクション確定ステップと、
    前記トランザクション確定ステップにて前記トランザクションがコミットまたはロールバックされた場合、前記別トランザクションの待機を解除する待機解除ステップと、
    前記トランザクションがコミットされた場合、当該トランザクションに基づいて、前記対象データ記憶手段に記憶された前記対象データを更新する更新ステップと、
    前記更新ステップにて更新された前記対象データに対する更新を制限する制限ステップと、
    前記通知ステップにて通知された前記対象リストに含まれる前記対象データが前記ユーザにより上書更新対象として選択された場合、当該上書更新対象の前記対象データを特定する上書更新対象特定ステップと、
    を含み、
    前記更新ステップにおいて、
    更に、前記上書更新対象特定ステップにて前記上書更新対象の対象データが特定された場合、前記制限ステップにおける制限を解除し、前記別トランザクションに基づいて、前記対象データ記憶手段に記憶された当該上書更新対象の対象データを更新することを特徴とする楽観的排他処理直列化方法。
  5. 記憶部と制御部とを備えた楽観的排他処理直列化装置に実行させるための楽観的排他処理直列化プログラムであって、
    前記記憶部は、
    対象データを記憶する対象データ記憶手段、
    を備え、
    前記制御部において、
    前記対象データ記憶手段に記憶された前記対象データに対するトランザクションを実行させるトランザクション実行ステップと、
    前記対象データ記憶手段に記憶された前記対象データに対する前記トランザクションとは別の別トランザクションを実行させる別トランザクション実行ステップと、
    前記トランザクションおよび前記別トランザクションに基づく前記対象データの更新の完了前に、前記トランザクション内でオブジェクトが作成された場合、前記別トランザクション内での当該オブジェクトと同名の同名オブジェクトの作成要求を検出する排他チェックステップと、
    前記トランザクションおよび前記別トランザクションに基づく前記対象データの更新の完了前に、前記排他チェックステップにて前記別トランザクション内で前記同名オブジェクトの作成要求が検出された場合、当該別トランザクションの実行を中断させて待機させる待機ステップと、
    前記別トランザクションのユーザに対して、前記トランザクションの実行対象である前記対象データの対象リストを通知する通知ステップと、
    前記トランザクションの実行が完了した場合、当該トランザクションをコミットさせ、前記トランザクションの実行にエラーが生じた場合、当該トランザクションをロールバックさせるトランザクション確定ステップと、
    前記トランザクション確定ステップにて前記トランザクションがコミットまたはロールバックされた場合、前記別トランザクションの待機を解除する待機解除ステップと、
    前記トランザクションがコミットされた場合、当該トランザクションに基づいて、前記対象データ記憶手段に記憶された前記対象データを更新する更新ステップと、
    前記更新ステップにて更新された前記対象データに対する更新を制限する制限ステップと、
    前記通知ステップにて通知された前記対象リストに含まれる前記対象データが前記ユーザにより上書更新対象として選択された場合、当該上書更新対象の前記対象データを特定する上書更新対象特定ステップと、
    を実行させ
    前記更新ステップにおいて、
    更に、前記上書更新対象特定ステップにて前記上書更新対象の対象データが特定された場合、前記制限ステップにおける制限を解除し、前記別トランザクションに基づいて、前記対象データ記憶手段に記憶された当該上書更新対象の対象データを更新するための楽観的排他処理直列化プログラム。
JP2017139183A 2017-07-18 2017-07-18 楽観的排他処理直列化装置、楽観的排他処理直列化方法、および、楽観的排他処理直列化プログラム Active JP7079573B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017139183A JP7079573B2 (ja) 2017-07-18 2017-07-18 楽観的排他処理直列化装置、楽観的排他処理直列化方法、および、楽観的排他処理直列化プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017139183A JP7079573B2 (ja) 2017-07-18 2017-07-18 楽観的排他処理直列化装置、楽観的排他処理直列化方法、および、楽観的排他処理直列化プログラム

Publications (2)

Publication Number Publication Date
JP2019021043A JP2019021043A (ja) 2019-02-07
JP7079573B2 true JP7079573B2 (ja) 2022-06-02

Family

ID=65355643

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017139183A Active JP7079573B2 (ja) 2017-07-18 2017-07-18 楽観的排他処理直列化装置、楽観的排他処理直列化方法、および、楽観的排他処理直列化プログラム

Country Status (1)

Country Link
JP (1) JP7079573B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12197382B2 (en) * 2020-02-03 2025-01-14 Oracle International Corporation Handling faulted database transaction records

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012155498A (ja) 2011-01-25 2012-08-16 Fujitsu Ltd データベースサーバ装置、データベース更新方法及びデータベース更新プログラム
JP2016066333A (ja) 2014-09-26 2016-04-28 株式会社野村総合研究所 データベースのロック制御システム及び方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3621433B2 (ja) * 1993-05-24 2005-02-16 日本電信電話株式会社 データベース排他制御方法
JP2654612B2 (ja) * 1995-02-23 1997-09-17 日本電気株式会社 排他ウエイト削減制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012155498A (ja) 2011-01-25 2012-08-16 Fujitsu Ltd データベースサーバ装置、データベース更新方法及びデータベース更新プログラム
JP2016066333A (ja) 2014-09-26 2016-04-28 株式会社野村総合研究所 データベースのロック制御システム及び方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
速水治夫ほか,データベースの実装とシステム運用管理,初版,株式会社コロナ社,2010年10月08日,pp.19-31

Also Published As

Publication number Publication date
JP2019021043A (ja) 2019-02-07

Similar Documents

Publication Publication Date Title
KR101099199B1 (ko) 데이터베이스 복구 중의 스냅샷 질의를 위한 시스템 및 방법
TW396306B (en) A method of executing perform locked operation instructions for supporting recovery of data consistency if lost due to processor failure, and a method of recovering the data consistency after processor failure
US10198452B2 (en) Document tracking for safe save operations
US7200617B2 (en) Program for managing external storage, recording medium, management device, and computing system
KR101099297B1 (ko) 전자파일의 제1 버전과 제2 버전을 동기화하기 위한 방법 및 컴퓨터 판독가능 기록 매체
US5924102A (en) System and method for managing critical files
US8768966B2 (en) Method for managing simultaneous modification of database objects during development
JP2004528636A (ja) 自動データ更新
WO1993018454A1 (en) Distributed transaction processing system
US7016920B2 (en) Method for tracking relationships between specified file name and particular program used for subsequent access in a database
WO2020060629A1 (en) Techniques for updating big data tables using snapshot isolation
CN102214088A (zh) 文件解锁的方法和装置
US8381104B2 (en) Systems and methods for providing context recognition
JP2001092702A (ja) 情報処理システム、サーバ装置、クライアント装置、及び記録媒体
US11113251B2 (en) Transaction manager
EP1517261A2 (en) Work-flow system and work-flow system management method
JP7079573B2 (ja) 楽観的排他処理直列化装置、楽観的排他処理直列化方法、および、楽観的排他処理直列化プログラム
US8918370B2 (en) Dynamic allocation of program libraries
JP5057481B2 (ja) ワークフローシステム、制御方法、およびプログラム
JP4432087B2 (ja) データベース更新管理システム、プログラムおよび方法
US8868511B2 (en) Archiving—safe replication of relational data
JP2006244177A (ja) データベース装置
JPH09146762A (ja) システムファイルのバックアップ方法及び復元方法
JP2019185234A (ja) 推奨処置通知プログラム、推奨処置通知方法、及び情報処理装置
US9846695B2 (en) Information processing apparatus, control method, and storage medium storing program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200702

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210409

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210623

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20211207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220216

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220216

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220228

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220301

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: 20220426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220523

R150 Certificate of patent or registration of utility model

Ref document number: 7079573

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250