JP6201478B2 - 処理順序制御装置、処理順序制御方法及び処理順序制御プログラム - Google Patents
処理順序制御装置、処理順序制御方法及び処理順序制御プログラム Download PDFInfo
- Publication number
- JP6201478B2 JP6201478B2 JP2013151711A JP2013151711A JP6201478B2 JP 6201478 B2 JP6201478 B2 JP 6201478B2 JP 2013151711 A JP2013151711 A JP 2013151711A JP 2013151711 A JP2013151711 A JP 2013151711A JP 6201478 B2 JP6201478 B2 JP 6201478B2
- Authority
- JP
- Japan
- Prior art keywords
- lock
- control
- execution order
- control process
- processes
- 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.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
まず、コンピュータによって複数処理を順次実行する複数の方法の例についていくつか列挙し、その問題点について説明する。ここでは、プロセスAの処理A、プロセスBの処理B、プロセスCの処理Cの順で処理を実行する場合における種々の方法について説明する。
以下に説明する技術は、上記のような問題点を解決するものである。以下、実施例を示して説明する。
<システム構成>
図1は、第1実施例におけるシステム構成を示す。本実施例では、システムが、サーバ1を備える。サーバ1では、プログラムがロードされて実行されることによって実現される、制御プロセス実行部10が実行する制御プロセス11が動作するとともに、処理実行部20が実行するプロセスA21、プロセスB22及びプロセスC23が動作している。プロセスA21は処理Aを、プロセスB22は処理Bを、プロセスC23は処理Cを夫々実行する。
ここで、第1実施例で実現する処理の実行順序の制御の概要について、図2〜図4を参照して説明する。本説明では、プロセスAの処理A、プロセスBの処理B、プロセスCの処理Cの順に実行する例を示して説明する。また、当該制御において、処理A、処理B、処理Cは、夫々、ファイル31の1バイト目、2バイト目、3バイト目を、実行順序の制御の対象領域として使用するものとする。換言すれば、ファイル31のうち、処理A、処理B、処理Cに対応する箇所が夫々1バイト目、2バイト目、3バイト目であり、これらの箇所は処理A、処理B、処理Cの実行順序に対応させて配置されている。図2〜図4に示す101〜109では、ファイル31に対してロックをする処理及びロックをしている状態を実線矢印、ロック要求がWait(待機)状態となる処理及びWait状態を破線矢印、アンロックをする処理をブロック矢印(白色矢印)で示す。また、以下、本明細書において、「処理」が行うこととして記載している内容は、「処理を実行するプロセス」が行うことと同義とする。
(102)処理A〜処理Cが、夫々ファイル31の1バイト目〜3バイト目に対してロックを要求する。しかし、すでに(101)で制御プロセス11によりロックされているため、処理A〜処理Cによるロック要求はWait状態となる。
(104)処理Aは、(103)でファイル31の1バイト目のロック要求のWait状態が解除されると即時に1バイト目をロックする。そして、処理Aは、処理A本体の実行を開始する。
(106)処理Aは、処理A本体の実行が終了すると、1バイト目をアンロックする。すると、制御プロセス11による1バイト目のロック要求のWait状態が解除される。
(108)制御プロセス11は、次に2バイト目をアンロックする。すると、処理Bによる2バイト目のロック要求のWait状態が解除される。
(109)処理Bは、(108)で2バイト目のロック要求のWait状態が解除されると、即時に2バイト目をロックする。そして、処理Bは、処理B本体の実行を開始する。
以降、同様にして、処理Bに続いて処理Cが実行される。
図5は、制御プロセス11及び各処理のうちの1つの処理である処理nが実行する、処理の実行順序の制御処理の一例につき、フローチャート及びファイル31の領域例を用いて説明した図である。ステップS1〜ステップS7が制御プロセス11による処理を示し、ステップS11〜ステップS14が処理nによる処理を示す。当該説明では、処理nは、ファイル31のうちnバイト目に対してロックをかけるものとして説明する。なお、図5では、処理nを実行するプロセスの図示は省略する。
一方、ステップS11で、処理nが、自処理の実行順序に対応するnバイト目に対してロックを要求する。しかし、制御プロセス11がすでにnバイト目を含めた対象領域の全バイトをロックしているため、処理nのロック要求はWait状態となる。
ステップS3で、制御プロセス11が、iバイト目をアンロックする。
すると、制御プロセス11は、iバイト目に対するロックのWait状態が解除され、ステップS5で、iバイト目のロックに成功する。
なお、処理nがiバイト目に対してロックをかけない場合、制御プロセス11はステップS4でiバイト目にロック要求をかけ、すぐにステップS5でロックに成功することができる。この場合、制御プロセスは、ステップS6〜ステップS7を経て、ファイルの次の箇所の処理を開始する。
本技術では、このように複数の処理を順次実行するときに、ファイルロックの機能を用いて処理の実行順序を制御することにより、次のような効果を奏する。すなわち、本技術では、各処理を実行するプロセスは、記憶手段30のファイル31の対象領域のうち、自プロセスが実行する処理の実行順序に対応する箇所に対してロック又はアンロックを行うだけであり、他の処理やプロセスとの通信を行わない。一方、制御プロセス11も同様であり、ファイル31の対象領域に各処理の実行順序に対応させて配置された箇所に対して、実行順序と対応させて順次ロック又はアンロックを行うだけである。このように、各プロセスが疎に連携しているため、システムの更新によりプロセスの構成や処理の実行順序等を変更する場合に、変更作業が容易となる。具体的には、例えば、プロセスの構成を変更する場合であっても、実行順序の制御に伴うプロセスの通信論理を変更する必要がない。また、例えば、処理の実行順序を変更する場合には、各処理がロックをする領域を必要に応じて変更するだけでよい。
さらに、当該処理の実行順序の制御において使用する記憶領域は、単にロック又はアンロックされるだけであって、処理の実行順序を制御するための情報を持つ必要がないため、データの内容が破壊されることによる不整合も発生しづらい。
なお、各処理の実行順序の制御に用いる記憶手段の対象領域は、ファイル形式に限らず、いかなる態様であってもよい。
第2実施例は、第1実施例と異なり、実行順序の制御対象となる処理を実行する全てのプロセスが共通してアクセスする記憶手段を設けることができない場合であっても、処理の実行順序の制御を実現するものである。
マスターサーバ2では、サーバ3−1及びサーバ3−2で夫々動作する制御プロセス15と通信可能であり制御プロセス15の夫々に対して動作指示を行う、総合制御プロセス実行部12が実行する総合制御プロセス13が動作する。
(112)サーバ3−1で動作する処理A及び処理Cが、夫々ファイル31−1の1バイト目及び3バイト目に対してロックを要求する。しかし、すでに(111)で制御プロセス15−1によりロックされているため、処理A及び処理Cによるロック要求はWait状態となる。一方、サーバ3−2で動作する処理Bも、ファイル31−2の2バイト目に対してロックを要求する。しかし、同様に、すでに(111)で制御プロセス15−2によりロックされているため、処理Bによるロック要求はWait状態となる。
(114)サーバ3−1の制御プロセス15−1が、ファイル31−1の1バイト目をアンロックする。すると、処理Aによる1バイト目のロック要求のWait状態が解除される。一方、サーバ3−2の制御プロセス15−2も、ファイル31−2の1バイト目をアンロックする。
(116)サーバ3−1の制御プロセス15−1が、ファイル31−1の1バイト目に対して再度ロックを要求する。しかし、1バイト目は(115)ですでに処理Aによりロックされているため、制御プロセス15−1によるロック要求はWait状態となる。一方、サーバ3−2の制御プロセス15−2が、ファイル31−2の1バイト目に対して再度ロックを要求する。ファイル31−2の1バイト目は他の処理によってロックされていないため、制御プロセス15−2は、再ロックに成功する。
(118)サーバ3−1の処理Aは、処理A本体の実行が終了すると、ファイル31−1の1バイト目をアンロックする。すると、制御プロセス15−1によるファイル31−1の1バイト目のロック要求のWait状態が解除される。
(120)サーバ3−1の制御プロセス15−1は、ファイル31−1の1バイト目の再ロックに成功したことを、マスターサーバ2の総合制御プロセス13に通知する。
(122)サーバ3−1の制御プロセス15−1が、ファイル31−1の2バイト目をアンロックする。一方、サーバ3−2の制御プロセス15−2も、ファイル31−2の2バイト目をアンロックする。すると、処理Bによるファイル31−2の2バイト目のロック要求のWait状態が解除される。
なお、制御プロセスは、上記(111)の処理も、総合制御プロセス13の指示によって行ってもよい。
図14は、マスターサーバ2の総合制御プロセス13、各サーバ3の制御プロセス15及び各処理のうちの1つの処理である処理nが実行する処理の一例につき、フローチャート及びファイルの領域例を用いて説明した図である。ステップS31〜ステップS35が総合制御プロセス13による処理を示す。また、ステップS41〜ステップS46が制御プロセス15による処理を示し、ステップS51〜ステップS54が処理nによる処理を示す。当該説明では、処理nは、ファイルのうちnバイト目に対してロックをかけるものとして説明する。なお、図13及び図13を参照した説明では、処理nが含まれるプロセスについての記載は省略する。
一方、ステップS51で、処理nが、処理nの実行順序に対応するnバイト目に対してロックを要求する。しかし、制御プロセス15がすでにnバイト目を含めた対象領域の全バイトをロックしているため、処理nのロック要求はWait状態となる。
ステップS32で、マスターサーバ2の総合制御プロセス13が、全サーバの制御プロセス15に対し、各サーバのファイル31のiバイト目をアンロックするように指示を送信する。その後、総合制御プロセス13は、全サーバからファイル31のiバイト目の再ロックが成功したことの通知を受信するまで待機する。
すると、制御プロセス15は、iバイト目に対するロック要求のWait状態が解除され、ステップS45で、iバイト目のロックに成功する。そして、ステップS46で、総合制御プロセス13に対し、iバイト目のロックが成功したことを通知する。
ステップS35で、総合制御プロセス13は、変数iに1を加算してステップS32に戻り、ファイル31の次の箇所の処理を開始する。
第2実施例によれば、第1実施例で説明した効果に加えて、次のような効果を奏する。すなわち、複数の異なるサーバで処理が実行されている場合において、各処理からアクセス可能な記憶手段や共有ファイルが存在しないシステム構成であっても、ファイルロックの機能を用いた処理の実行順序の制御が可能となる。
なお、上記説明では、総合制御プロセス13が、各処理を実行するサーバ3とは別のマスターサーバ2で動作していたが、各処理を実行する全てのサーバ3と通信可能であれば、総合制御プロセス13は、例えばサーバ3のうちのいずれかで動作していてもよい。
その他の変形例等については、第1実施例と同様である。
図15は、前述の各実施例のサーバやマスターサーバとして機能する情報処理装置のハードウェア構成の一例を示す。本情報処理装置は、プロセッサ101、メモリ102、ストレージ103、可搬記憶媒体駆動装置104、入出力装置105及び通信インタフェース106を備える。
本明細書で説明した情報処理装置の機能的構成及び物理的構成は、上述の態様に限るものではなく、例えば、各機能や物理資源を統合して実装したり、逆に、さらに分散して実装したりすることも可能である。
(付記1)
1又は複数のコンピュータで動作する1又は複数のプロセスが実行する複数の処理の実行順序を制御する制御プロセスが、当該制御プロセス及び前記プロセスがアクセス可能な記憶手段に含まれる所定の記憶領域に対してロックを実行し、
前記プロセスが、前記制御プロセスによりロックが実行された前記記憶領域のうち、前記複数の処理の実行順序に対応した箇所に対してロックを要求し、
前記制御プロセスが、前記プロセスによりロックが要求された箇所のロックを、前記複数の処理の実行順序と対応させて順次解放し、
前記プロセスが、要求していたロックが実行できると、当該箇所に対応する処理を実行する
処理を含んだ処理順序制御方法。
前記プロセスが、処理の実行を終了したときに、当該処理に対応する箇所に対するロックを解放し、
前記ロックを順次解放する処理は、前記制御プロセスが、前記プロセスにより実行を終了した処理に対応する箇所に対するロックが解放されると、当該箇所に対するロックを再実行し、当該箇所に対応する実行順序の次の実行順序に対応する箇所のロックを解放する、付記1記載の処理順序制御方法。
前記複数の処理が複数のコンピュータで実行され、前記制御プロセスが前記複数のコンピュータの夫々で動作し、
前記制御プロセスの夫々と通信可能な総合制御プロセスが、前記制御プロセスの夫々に対し、前記記憶領域のうち前記制御プロセスの夫々が実行順序を制御する処理の実行順序に対応する箇所のロックを順次解放する指示を行い、
前記ロックを順次解放する処理は、前記制御プロセスの夫々が、前記総合制御プロセスによる指示に応じて、少なくとも前記記憶領域のうち自制御プロセスが実行順序を制御する処理の実行順序に対応する箇所のロックを順次解放する、付記1又は2に記載の処理順序制御方法。
前記ロックを順次解放する指示を行う処理は、総合制御プロセスが、前記制御プロセスの夫々に対し、同時に同一の実行順序に対応する箇所のロックを解放する指示を行い、
前記ロックを順次解放する処理は、前記制御プロセスの夫々が、前記総合制御プロセスによる指示に応じて、他の制御プロセスと同一の実行順序に対応する箇所のロックを順次解放する、付記3記載の処理順序制御方法。
前記記憶領域のうち前記複数の処理の実行順序の夫々に対応する箇所には、少なくとも1つの処理の実行順序に対応する箇所分の間隔を空けて前記複数の処理が夫々対応付けられている、付記1又は2に記載の処理順序制御方法。
1又は複数のコンピュータで動作する1又は複数のプロセスが実行する複数の処理の実行順序を制御する制御プロセスが、当該制御プロセス及び前記プロセスがアクセス可能な記憶手段に含まれる所定の記憶領域に対してロックを実行し、
前記プロセスが、前記制御プロセスによりロックが実行された前記記憶領域のうち、前記複数の処理の実行順序に対応した箇所に対してロックを要求し、
前記制御プロセスが、前記プロセスによりロックが要求された箇所のロックを、前記複数の処理の実行順序と対応させて順次解放し、
前記プロセスが、要求していたロックが実行できると、当該箇所に対応する処理を実行する
処理をコンピュータに実行させる処理順序制御プログラム。
複数の処理を実行する1又は複数のプロセスを実行する処理実行部と、
前記複数の処理の実行順序を制御する制御プロセスを実行する制御プロセス実行部と
を含み、
前記制御プロセスが、当該制御プロセス及び前記プロセスがアクセス可能な記憶手段に含まれる所定の記憶領域に対してロックを実行し、
前記プロセスが、前記制御プロセスによりロックが実行された前記記憶領域のうち、前記複数の処理の実行順序に対応した箇所に対してロックを要求し、
前記制御プロセスが、前記プロセスによりロックが要求された箇所のロックを、前記複数の処理の実行順序と対応させて順次解放し、
前記プロセスが、要求していたロックが実行できると、当該箇所に対応する処理を実行する
処理順序制御装置。
Claims (7)
- 1又は複数のコンピュータで動作する複数のプロセスが夫々実行する処理の実行順序を制御する制御プロセスが、当該制御プロセス及び前記プロセスによりアクセス可能な記憶手段に含まれる所定の記憶領域の複数の箇所に対して、ロックを実行し、
前記プロセスが、前記制御プロセスによりロックが実行された前記記憶領域のうち、各プロセスの自処理の実行順序に対応する箇所に対してロックを要求し、
前記制御プロセスが、前記プロセスからの前記ロックの要求を前記実行順序に対応する前記箇所毎に前記ロックが解放されるまで待機状態とし、
前記制御プロセスが、前記プロセスによりロックが要求された箇所のロックを、前記処理の前記実行順序と対応させて順次解放する
処理を含んだ処理順序制御方法。 - 前記ロックを順次解放する処理は、前記制御プロセスが、前記プロセスにより実行を終了した処理に対応する箇所に対するロックが解放されると、当該箇所に対するロックを再実行し、当該箇所に対応する実行順序の次の実行順序に対応する箇所のロックを解放する、請求項1記載の処理順序制御方法。
- 前記処理が複数の異なるコンピュータで実行され、前記制御プロセスが前記複数の異なるコンピュータの夫々で動作し、
前記制御プロセスの夫々と通信可能な総合制御プロセスが、前記制御プロセスの夫々に対し、前記複数の異なるコンピュータの夫々に設けられた前記記憶領域のうち前記制御プロセスの夫々が実行順序を制御する処理の実行順序に対応する箇所のロックを順次解放する指示を行い、
前記ロックを順次解放する処理は、前記制御プロセスの夫々が、前記総合制御プロセスによる指示に応じて、少なくとも前記記憶領域のうち自制御プロセスが実行順序を制御する処理の実行順序に対応する箇所のロックを順次解放する、請求項1又は2に記載の処理順序制御方法。 - 前記ロックを順次解放する指示を行う処理は、総合制御プロセスが、前記制御プロセスの夫々に対し、同時に同一の実行順序に対応する箇所のロックを解放する指示を行い、
前記ロックを順次解放する処理は、前記制御プロセスの夫々が、前記総合制御プロセスによる指示に応じて、他の制御プロセスと同一の実行順序に対応する箇所のロックを順次解放する、請求項3記載の処理順序制御方法。 - 前記制御プロセスは、前記実行順序の夫々に対応する箇所と当該実行順序を規定する通し番号のいずれかの値とを対応付け、当該通し番号のうちでより小さい前記値が対応付けられている処理から前記ロックを解放するようにし、
前記実行順序の夫々に対応する箇所には、新たな処理を実行するプロセスが空いている領域の箇所にロックをかけられるように、少なくとも1つの処理の実行順序に対応する箇所分の間隔を空けて前記値が夫々対応付けられている、請求項1又は2に記載の処理順序制御方法。 - コンピュータで動作する複数のプロセスが夫々実行する処理の実行順序を制御する制御プロセスが、当該制御プロセス及び前記プロセスによりアクセス可能な記憶手段に含まれる所定の記憶領域の複数の箇所に対して、ロックを実行し、
前記プロセスが、前記制御プロセスによりロックが実行された前記記憶領域のうち、各プロセスの自処理の実行順序に対応する箇所に対してロックを要求し、
前記制御プロセスが、前記プロセスからの前記ロックの要求を前記実行順序に対応する前記箇所毎に前記ロックが解放されるまで待機状態とし、
前記制御プロセスが、前記プロセスによりロックが要求された箇所のロックを、前記処理の前記実行順序と対応させて順次解放する
処理をコンピュータに実行させる処理順序制御プログラム。 - 複数のプロセスが夫々処理を実行する処理実行部と、
前記処理の実行順序を制御する制御プロセスを実行する制御プロセス実行部と
を含み、
前記制御プロセスが、当該制御プロセス及び前記プロセスによりアクセス可能な記憶手段に含まれる所定の記憶領域の複数の箇所に対して、ロックを実行し、
前記プロセスが、前記制御プロセスによりロックが実行された前記記憶領域のうち、各プロセスの自処理の実行順序に対応する箇所に対してロックを要求し、
前記制御プロセスが、前記プロセスからの前記ロックの要求を前記実行順序に対応する前記箇所毎に前記ロックが解放されるまで待機状態とし、
前記制御プロセスが、前記プロセスによりロックが要求された箇所のロックを、前記処理の前記実行順序と対応させて順次解放する
処理順序制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013151711A JP6201478B2 (ja) | 2013-07-22 | 2013-07-22 | 処理順序制御装置、処理順序制御方法及び処理順序制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013151711A JP6201478B2 (ja) | 2013-07-22 | 2013-07-22 | 処理順序制御装置、処理順序制御方法及び処理順序制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015022626A JP2015022626A (ja) | 2015-02-02 |
JP6201478B2 true JP6201478B2 (ja) | 2017-09-27 |
Family
ID=52486988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013151711A Expired - Fee Related JP6201478B2 (ja) | 2013-07-22 | 2013-07-22 | 処理順序制御装置、処理順序制御方法及び処理順序制御プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6201478B2 (ja) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04127322A (ja) * | 1990-09-19 | 1992-04-28 | Fujitsu Ltd | ジョブ実行制御装置 |
US6598068B1 (en) * | 1996-01-04 | 2003-07-22 | Sun Microsystems, Inc. | Method and apparatus for automatically managing concurrent access to a shared resource in a multi-threaded programming environment |
JPH1165863A (ja) * | 1997-08-26 | 1999-03-09 | Hitachi Ltd | 共有資源管理方法 |
US6779090B2 (en) * | 2002-05-21 | 2004-08-17 | International Business Machines Corporation | Spinlock for shared memory |
JP2011118587A (ja) * | 2009-12-02 | 2011-06-16 | Hitachi Ltd | 複数サーバによる連携サービス実行システム |
JP2011129024A (ja) * | 2009-12-21 | 2011-06-30 | Renesas Electronics Corp | データ処理システム及びデータ処理方法 |
US9058205B2 (en) * | 2011-10-24 | 2015-06-16 | Symantec Corporation | Automatically performing operations on applications based on dependencies on other applications |
-
2013
- 2013-07-22 JP JP2013151711A patent/JP6201478B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2015022626A (ja) | 2015-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3701377B1 (en) | Method and apparatus for updating shared data in a multi-core processor environment | |
EP3138013B1 (en) | System and method for providing distributed transaction lock in transactional middleware machine environment | |
US10579413B2 (en) | Efficient task scheduling using a locking mechanism | |
US11294737B2 (en) | Self-managed lock access | |
EP3230860B1 (en) | Technologies for efficient synchronization barriers with work stealing support | |
US9378069B2 (en) | Lock spin wait operation for multi-threaded applications in a multi-core computing environment | |
CN108369507A (zh) | 用于使用存储器中处理来处理指令的方法和设备 | |
JPH1115793A (ja) | 資源の保全性を保護する方法 | |
KR102450133B1 (ko) | 분산 잠금 관리를 하는 분산 시스템 및 그것의 동작 방법 | |
US10372352B2 (en) | Concurrent virtual storage management | |
CN113806031A (zh) | 通过对象锁保护资源的方法和装置 | |
JP6201478B2 (ja) | 処理順序制御装置、処理順序制御方法及び処理順序制御プログラム | |
US10324902B2 (en) | Method and apparatus for locking file in memory | |
JP6036692B2 (ja) | 情報処理装置、情報処理システム、情報処理方法および制御プログラム記録媒体 | |
CN111367682B (zh) | 一种资源操作锁的控制方法、系统、装置及可读存储介质 | |
JP7183384B2 (ja) | 分散コンピューティングシステムにおける共有リソースの管理 | |
US20090307442A1 (en) | Memory Access Control | |
KR101789933B1 (ko) | 데이터 일관성을 위한 컴퓨팅 시스템 및 방법 | |
JP5890194B2 (ja) | 情報処理装置、及び、情報処理方法 | |
CN112947677B (zh) | 一种计时器读取方法、计算设备及可读存储介质 | |
JP7595553B2 (ja) | アプリケーションプログラム実行方法 | |
US11775337B2 (en) | Prioritization of threads in a simultaneous multithreading processor core | |
JP3063658B2 (ja) | 排他制御処理装置 | |
JP2926873B2 (ja) | 計算機システム | |
JP2009026292A (ja) | データ分配方法、データ分配プログラム、及び並列データベースシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160405 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170417 |
|
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: 20170801 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170814 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6201478 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |