JP2785342B2 - Processing system - Google Patents
Processing systemInfo
- Publication number
- JP2785342B2 JP2785342B2 JP1162059A JP16205989A JP2785342B2 JP 2785342 B2 JP2785342 B2 JP 2785342B2 JP 1162059 A JP1162059 A JP 1162059A JP 16205989 A JP16205989 A JP 16205989A JP 2785342 B2 JP2785342 B2 JP 2785342B2
- Authority
- JP
- Japan
- Prior art keywords
- processing unit
- information
- program
- processing
- control
- 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
- Retry When Errors Occur (AREA)
Description
【発明の詳細な説明】 〔概 要〕 計算機システムのフォルトトレラント化に関し、 処理システムにおいて、ある処理部(プログラム)が
他の処理部(プログラム)を起動したあとクラッシュし
た場合に、起動元の処理部の再起動により、起動先処理
部と共に処理を継続できるようにすることを目的とす
る。DETAILED DESCRIPTION OF THE INVENTION [Summary] Regarding the fault-tolerance of a computer system, when a processing unit (program) crashes after starting another processing unit (program) in a processing system, the processing of the starting source is performed. An object of the present invention is to enable processing to be continued together with a start destination processing unit by restarting a unit.
第1の処理部と、該第1の処理部の要求により起動さ
れる第2の処理部と、第1の処理部からの第2の処理部
の起動要求を受け、第2の処理部の実行の制御を行う制
御部を有する処理システムにおいて、 前記制御部は、識別情報を含む第2の処理部の起動要
求に対応して、起動要求のあった第2の処理部の実行状
況を示す制御情報を、該識別情報に対応して記憶する記
憶部と、第1の処理部からの、識別情報を含んだ、第2
の処理部の起動要求に対応して、該識別情報に対応する
制御情報が無の場合に、第2の処理部を起動する手段
と、第2の処理部が終了した場合に、対応する制御情報
に、該第2の処理部が終了したことを記憶する手段と、
前記制御情報に従って、第1の処理部に第2の処理部の
終了を通知する手段と、前記第1の処理部からの、識別
情報を含んだ、制御情報の削除要求に基づき、該識別情
報に対応する制御情報を削除する手段とを有し、前記第
1の処理部は、前記識別情報を含んだ、第2の処理部の
起動要求を、前記制御部に発行する手段と、前記制御情
報の削除要求を前記制御部に対して発行していないこと
を示す情報を、不揮発性の記憶部に格納する手段と、前
記不揮発性の記憶部の情報に基づいて、前記識別情報を
含んだ、前記制御情報の削除要求を発行すると共に、前
記不揮発性の記憶部の該当する情報を削除する手段とを
有するように構成する。A first processing unit, a second processing unit activated by a request from the first processing unit, and a second processing unit activation request received from the first processing unit. In a processing system having a control unit that controls execution, the control unit indicates an execution status of the second processing unit that has been requested to start, in response to a start request of the second processing unit including identification information. A storage unit for storing the control information in correspondence with the identification information; and a second unit including the identification information from the first processing unit.
Means for activating the second processing unit when there is no control information corresponding to the identification information in response to the activation request of the processing unit, and controlling the corresponding processing when the second processing unit is terminated. Means for storing in the information that the second processing section has been completed;
Means for notifying the first processing unit of the end of the second processing unit in accordance with the control information, and the identification information based on the control information deletion request including the identification information from the first processing unit. Means for deleting control information corresponding to the control information, wherein the first processing unit issues a start request of the second processing unit including the identification information to the control unit; and Means for storing information indicating that an information deletion request has not been issued to the control unit in the nonvolatile storage unit, and the identification information based on the information in the nonvolatile storage unit. And a means for issuing a request to delete the control information and deleting the corresponding information from the nonvolatile storage unit.
本発明は、計算機システムをフォルトトレラント化す
るためのプログラム終了同期処理方式に関する。The present invention relates to a program termination synchronous processing method for making a computer system fault-tolerant.
計算機システムのいわゆるフォルトトレラント(faul
t−tolerant、障害許容)化とは、システムの一部に異
常が発生しても、適当な自動的処置によってシステムの
サービスを継続できるようにする技術として需要が高ま
っている。The so-called fault tolerant of computer systems (faul
The demand for “t-tolerant (tolerant of failure)” is increasing as a technology that enables the service of the system to be continued by an appropriate automatic action even if an abnormality occurs in a part of the system.
そのようなシステムのプログラムをフォルトトレラン
ト化した場合には、あるプログラムの実行中に実行を継
続できないような異常状態、いわゆるクラッシュ、が起
きたことを検出すると、その時点までの状態を復元する
に必要な情報の保存等の処置をして実行を中断した後再
起動し、中断した処理を継続するように制御する。When a program of such a system is made fault-tolerant, if an abnormal state that cannot continue execution during execution of a certain program, so-called crash, is detected, the state up to that point is restored. Control is performed so that execution is interrupted after taking necessary measures such as storage of necessary information, restarted, and the interrupted processing is continued.
こゝで、ある第1のプログラムが実行を開始した後、
その処理の中で他の第2のプログラムを起動し、起動先
の第2のプログラムの完了前に、起動元の第1のプログ
ラムがクラッシュした場合には、起動元プログラムを前
記のように中断する。又、その結果起動先プログラムに
は、終了結果を受け取る相手が無くなるので、起動先プ
ログラムも異常終了させる。Here, after a certain first program starts executing,
In the process, another second program is started, and if the first program of the start source crashes before the completion of the second program of the start destination, the start source program is interrupted as described above. I do. Further, as a result, there is no partner in the boot destination program that receives the end result, so that the boot destination program is also abnormally terminated.
このために、クラッシュした起動元プログラムを再起
動しても、起動先プログラムの処理の進行状態を反映で
きないので、再起動による処理結果を保証できない。例
えば、起動先プログラムがファイルを更新する処理を行
う場合等に、クラッシュがファイル更新前か、更新後か
等によって再起動後に異なった処理を行う必要がある
が、そのような場合に適切に対応することができないと
いう問題がある。For this reason, even if the crashed boot source program is restarted, the progress of the processing of the boot destination program cannot be reflected, and the processing result by the restart cannot be guaranteed. For example, when the boot target program performs a process to update a file, etc., it is necessary to perform different processes after restarting depending on whether the crash is before file update or after update, etc. There is a problem that you can not.
本発明は、プログラムが他のプログラムを起動してク
ラッシュした場合に、プログラム再起動により、他のプ
ログラムと共に処理を正しく継続できるようにしたプロ
グラム終了同期処理方式を目的とする。An object of the present invention is to provide a program end synchronous processing method that can correctly continue processing with another program by restarting the program when the program starts and crashes another program.
第1図は、本発明の構成を示すブロック図である。 FIG. 1 is a block diagram showing the configuration of the present invention.
第1の処理部1と、該第1の処理部1の要求により起
動される第2の処理部2と、第1の処理部1からの第2
の処理部2の起動要求を受け、第2の処理部2の実行の
制御を行う制御部3を有する処理システムにおいて、 前記制御部3は、 識別情報を含む第2の処理部2の起動要求に対応し
て、起動要求のあった第2の処理部2の実行状況を示す
制御情報を、該識別情報に対応して記憶する記憶部4
と、第1の処理部1からの、識別情報を含んだ、第2の
処理部2の起動要求に対応して、該識別情報に対応する
制御情報が無の場合に、第2の処理部2を起動する手段
と、第2の処理部2が終了した場合に、対応する制御情
報に、該第2の処理部2が終了したことを記憶する手段
と、前記制御情報に従って、第1の処理部1に第2の処
理部2の終了を通知する手段と、前記第1の処理部1か
らの、識別情報を含んだ、制御情報の削除要求に基づ
き、該識別情報に対応する制御情報を削除する手段とを
有し、 前記第1の処理部1は、 前記識別情報を含んだ、第2の処理部2の起動要求
を、前記制御部3に発行する手段と、前記制御情報の削
除要求を前記制御部3に対して発行していないことを示
す情報を、不揮発性の記憶部に格納する手段と、前記不
揮発性の記憶部4の情報に基づいて、前記識別情報を含
んだ、前記制御情報の削除要求を発行すると共に、前記
不揮発性の記憶部の該当する情報を削除する手段とを有
する ことを特徴とする処理システム。A first processing unit 1, a second processing unit 2 activated by a request from the first processing unit 1, and a second processing unit
In a processing system having a control unit 3 that receives a start request of the second processing unit 2 and controls execution of the second processing unit 2, the control unit 3 requests the start of the second processing unit 2 including identification information. The storage unit 4 stores control information indicating the execution status of the second processing unit 2 that has requested activation, in accordance with the identification information.
In response to a start request of the second processing unit 2 including the identification information from the first processing unit 1 and no control information corresponding to the identification information, the second processing unit Means for activating the second processing section 2, means for storing that the second processing section 2 has been completed in the corresponding control information when the second processing section 2 has been completed, and the first processing section according to the control information. Means for notifying the processing unit 1 of the end of the second processing unit 2, and control information corresponding to the identification information based on a request for deleting control information including the identification information from the first processing unit 1. The first processing unit 1 issues a start request of the second processing unit 2 including the identification information to the control unit 3, and the first processing unit 1 Means for storing information indicating that a deletion request has not been issued to the control unit 3 in a nonvolatile storage unit; Means for issuing a control information deletion request including the identification information based on the information in the non-volatile storage unit 4 and deleting corresponding information in the non-volatile storage unit. Characteristic processing system.
この構成により、ある処理部(起動元処理部:起動元
プログラム)が他の処理部(起動先処理部:起動先プロ
グラム)を起動したあとクラッシュした場合に、再起動
された起動元処理部が、クラッシュ発生後も継続して起
動状態にある起動先処理部の終了結果を受け取るように
することができる。従って、起動先処理部がファイル更
新を行う場合等であっても、起動元処理部の再起動によ
って処理を正しく継続できる。With this configuration, when a certain processing unit (boot source processing unit: boot source program) crashes after starting another processing unit (boot destination processing unit: boot destination program), the restarted boot source processing unit is activated. It is also possible to receive the end result of the boot destination processing unit which is continuously running even after the crash occurs. Therefore, even when the boot destination processing unit updates the file, the processing can be correctly continued by restarting the boot source processing unit.
第2図は、第1図の第1のプログラム1(Aプログラ
ムとする)の処理の流れの一例を示す図であり、Aプロ
グラムが起動されると処理ステップ10で、状態情報領域
4に所定のレコード(起動情報レコードとする)が書き
込まれているかテストする。FIG. 2 is a diagram showing an example of the flow of processing of the first program 1 (referred to as an A program) in FIG. 1. When the A program is started, a predetermined information is stored in the state information area 4 in processing step 10. Test whether the record (startup information record) is written.
状態情報領域4は、不揮発性の記憶領域とするため
に、例えば磁気ディスク記憶装置等に設定したファイル
として生成され、起動時にAプログラムに割り当てら
れ、Aプログラムがクラッシュ後再起動された場合に
は、クラッシュ前と同一の状態情報領域を継続して割り
当てることにより、後述のようにクラッシュ時の状態に
関する情報を得られるようにする。The state information area 4 is generated as a file set in, for example, a magnetic disk storage device in order to make it a nonvolatile storage area, is assigned to the A program at the time of startup, and when the A program is restarted after a crash, By continuously allocating the same state information area as before the crash, information on the state at the time of the crash can be obtained as described later.
起動情報レコードは、この後の処理ステップ11で所定
の状態情報を書き込んで生成されるが、Aプログラムが
初めて起動されたとき(再起動でないとき)は、未だ生
成されていない初期状態になっている。従って、処理ス
テップ10で起動情報レコードが書き込まれていないこと
を識別すると、初めての起動として以下の処理を進め
る。The start information record is generated by writing predetermined state information in the subsequent processing step 11, but when the program A is started for the first time (when it is not restarted), it becomes an initial state that has not been generated yet. I have. Therefore, if it is determined in the processing step 10 that the activation information record has not been written, the following processing is performed as the first activation.
即ち、先ず処理ステップ11でこれからAプログラムが
第2のプログラム2(Bプログラムとする)を起動する
ことを示す状態情報として、起動に関するコマンドを含
む所定の状態情報を、起動情報レコードに書き込む。こ
の情報には、コマンド名と、起動先プログラム(Bプロ
グラム)の指定、この起動処理についてユニークに定め
る関連識別子等のパラメータ等が含まれる。That is, first, in processing step 11, predetermined state information including a command related to the start is written in the start information record as state information indicating that the program A will start the second program 2 (hereinafter referred to as a program B). This information includes a command name, designation of a start destination program (B program), and parameters such as a related identifier uniquely defining the start processing.
次に処理ステップ12でAプログラムから前記コマンド
を発行して、制御部3にBプログラムの起動を依頼し、
制御部3は、コマンドに従って、Bプログラムの起動に
関する制御情報を作成して起動制御を実行し、Bプログ
ラムを起動させる。Next, in the processing step 12, the command is issued from the program A, and the control unit 3 is requested to start the program B.
The control unit 3 creates control information relating to the activation of the B program according to the command, executes the activation control, and activates the B program.
この制御情報はコマンドで指定された関連識別子で識
別され、以後Bプログラムに関して発行されるコマンド
の制御の場合に参照される。This control information is identified by the related identifier specified by the command, and is referred to in the case of controlling a command issued for the B program thereafter.
次にAプログラムは例えば必要な処理時点で、Bプロ
グラムの終了同期をとるために、処理ステップ13によ
り、Bプログラムの終了事象の発生を待つことを示すコ
マンドを発行して、事象発生の通知を待つ。Next, in order to synchronize the end of the B program, for example, at the required processing time, the A program issues a command indicating that the end event of the B program is to be waited for by the processing step 13 to notify the occurrence of the event. wait.
その結果、Bプログラムの終了通知を制御部から受け
ると、処理ステップ14に進んで、制御部3に終了結果の
受け取りを要求するコマンドを発行し、Bプログラムか
らの終了結果の情報を受け取り、処理ステップ15でその
情報を状態情報領域4に終了結果レコードとして記憶し
た後、処理ステップ16でBプログラム起動要求の終結を
制御部3に要求する。As a result, when the end notification of the B program is received from the control unit, the process proceeds to a processing step 14, in which a command requesting the control unit 3 to receive the end result is issued, and information of the end result from the B program is received. After storing the information as an end result record in the status information area 4 in step 15, the control section 3 requests the control section 3 to end the B program activation request in processing step 16.
制御部3は、この終結要求を受け取るまで、Bプログ
ラムの起動に関する制御情報を保持して、Aプログラム
が中断される場合にもBプログラムの実行を継続してお
り、終結要求を受け取るとそれを消去する。The control unit 3 keeps control information on the activation of the B program until receiving the termination request, and continues the execution of the B program even when the A program is interrupted. to erase.
先の処理ステップ10の識別において、起動情報レコー
ドがあった場合には再起動であるので、以下のように処
理をする。In the identification of the previous processing step 10, if there is an activation information record, it is a reboot, so the following processing is performed.
即ち、処理ステップ17に進んで起動情報レコードと、
既に書き込まれている場合には終了結果レコードも読み
出して、Aプログラム内の必要な情報をクラッシュによ
る中断前の状態に設定する。次に処理ステップ18で終了
結果レコードの有無により分岐し、終了結果レコードが
無い場合には、処理ステップ12に進んで、Bプログラム
の起動要求コマンドの発行以降の処理を前記のように進
める。That is, the process proceeds to processing step 17, and a start information record,
If it has already been written, the end result record is also read, and the necessary information in the A program is set to the state before the interruption due to the crash. Next, in process step 18, the process branches depending on the presence or absence of the end result record. If there is no end result record, the process proceeds to process step 12, and the processes after the issuance of the B program start request command are performed as described above.
この場合に制御部3は、起動コマンドで指定される関
連識別子と同一の関連識別子を持つ制御情報を既に保持
していることから、起動コマンドが再発行されたことを
識別して、新たな起動制御は実行せず。以後従来のよう
に制御を継続する。In this case, since the control unit 3 already holds the control information having the same related identifier as the related identifier specified by the start command, the control unit 3 identifies that the start command has been reissued, and performs a new start. No control is performed. Thereafter, control is continued as in the conventional case.
又、終了結果レコードがあった場合にAプログラム
は、処理ステップ18から処理ステップ16に進み、前記と
同様にBプログラム起動要求の終結を制御部3に要求す
る。この場合に制御部3は、指定の関連識別子を持つ制
御情報を保持していれば、それを消去する。When there is an end result record, the program A proceeds from the processing step 18 to the processing step 16, and requests the control unit 3 to terminate the B program activation request as described above. In this case, if the control unit 3 holds the control information having the specified related identifier, it deletes it.
以上の説明では、Aプログラムから起動する起動先プ
ログラムは、Bプログラムのみとしたが、複数の起動先
プログラムがある場合には、それぞれの起動先プログラ
ムごとに対する終了結果レコードを状態情報領域に記憶
するようにすることにより、各起動先プログラムについ
ては前記と同様に処理できる。In the above description, only the B program is started from the A program. However, when there are a plurality of started programs, an end result record for each of the started programs is stored in the state information area. By doing so, each boot destination program can be processed in the same manner as described above.
又、状態情報領域に起動情報レコードを設けること
は、起動先プログラムが常に1個の場合には、適当な他
の手段で再起動を識別できるようにすることを条件とし
て必須ではないが、特に起動先プログラムが複数で、そ
れらすべてを起動するか確定しないような場合等には、
各起動先プログラムごとに対して起動情報レコードを設
ければ、Aプログラムの再起動時に処理を要するする起
動先プログラムを決定し易い。Providing a startup information record in the status information area is not essential, provided that if there is always one boot destination program, restarting can be identified by other appropriate means. If there are multiple startup programs and you do not want to start all of them,
If an activation information record is provided for each activation destination program, it is easy to determine an activation destination program that requires processing when the A program is restarted.
以上の説明から明らかなように本発明によれば、計算
機システムにおいて、プログラムが他のプログラムを起
動してクラッシュした場合に、プログラム再起動によ
り、他のプログラムと共に処理を継続できるので、計算
機のフォルトトレラント機能が更に高度化されるという
著しい工業的効果がある。As is apparent from the above description, according to the present invention, in a computer system, when a program starts another program and crashes, by restarting the program, it is possible to continue processing with the other program. There is a remarkable industrial effect that the tolerant function is further enhanced.
第1図は本発明の構成を示すブロック図、 第2図は本発明の処理の流れ図である。 図において、 1は第1のプログラム、2は第2のプログラム、 3は制御部、4は状態情報領域、 10〜18は処理ステップを示す。 FIG. 1 is a block diagram showing the configuration of the present invention, and FIG. 2 is a flowchart of the processing of the present invention. In the figure, 1 indicates a first program, 2 indicates a second program, 3 indicates a control unit, 4 indicates a state information area, and 10 to 18 indicate processing steps.
Claims (1)
より起動される第2の処理部と、第1の処理部からの第
2の処理部の起動要求を受け、第2の処理部の実行の制
御を行う制御部を有する処理システムにおいて、 前記制御部は、 識別情報を含む第2の処理部の起動要求に対応して、起
動要求のあった第2の処理部の実行状況を示す制御情報
を、該識別情報に対応して記憶する記憶部と、 第1の処理部からの、識別情報を含んだ、第2の処理部
の起動要求に対応して、該識別情報に対応する制御情報
が無の場合に、第2の処理部を起動する手段と、 第2の処理部が終了した場合に、対応する制御情報に、
該第2の処理部が終了したことを記憶する手段と、 前記制御情報に従って、第1の処理部に第2の処理部の
終了を通知する手段と、 前記第1の処理部からの、識別情報を含んだ、制御情報
の削除要求に基づき、該識別情報に対応する制御情報を
削除する手段とを有し、 前記第1の処理部は、 前記識別情報を含んだ、第2の処理部の起動要求を、前
記制御部に発行する手段と、 前記制御情報の削除要求を前記制御部に対して発行して
いないことを示す情報を、不揮発性の記憶部に格納する
手段と、 前記不揮発性の記憶部の情報に基づいて、前記識別情報
を含んだ、前記制御情報の削除要求を発行すると共に、
前記不揮発性の記憶部の該当する情報を削除する手段と
を有する ことを特徴とする処理システム。A first processing unit, a second processing unit started by a request from the first processing unit, and a first processing unit receiving a request from the first processing unit to start the second processing unit. A processing system having a control unit for controlling execution of the second processing unit, wherein the control unit responds to a start request of the second processing unit including identification information, And a control unit that stores control information indicating the execution status of the second processing unit including the identification information from the first processing unit. Means for activating the second processing unit when there is no control information corresponding to the identification information; and control information corresponding to when the second processing unit is terminated.
Means for storing the end of the second processing unit, means for notifying the first processing unit of the end of the second processing unit according to the control information, and identification from the first processing unit. Means for deleting control information corresponding to the identification information, based on a control information deletion request including the information, wherein the first processing unit includes: a second processing unit including the identification information. Means for issuing a start request to the control unit; means for storing information indicating that the control information deletion request has not been issued to the control unit in a nonvolatile storage unit; Based on the information of the storage unit of sex, including the identification information, and issues a request to delete the control information,
Means for deleting corresponding information from the nonvolatile storage unit.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1162059A JP2785342B2 (en) | 1989-06-23 | 1989-06-23 | Processing system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1162059A JP2785342B2 (en) | 1989-06-23 | 1989-06-23 | Processing system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0327448A JPH0327448A (en) | 1991-02-05 |
| JP2785342B2 true JP2785342B2 (en) | 1998-08-13 |
Family
ID=15747312
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1162059A Expired - Fee Related JP2785342B2 (en) | 1989-06-23 | 1989-06-23 | Processing system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2785342B2 (en) |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5962957A (en) * | 1982-08-25 | 1984-04-10 | Fujitsu Ltd | Data updating system |
| JPH0769847B2 (en) * | 1987-02-26 | 1995-07-31 | 富士通株式会社 | Job control method during rerun |
-
1989
- 1989-06-23 JP JP1162059A patent/JP2785342B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0327448A (en) | 1991-02-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4363676B2 (en) | Computer system | |
| EP0405925B1 (en) | Method and apparatus for managing a shadow set of storage media | |
| JP4321705B2 (en) | Apparatus and storage system for controlling acquisition of snapshot | |
| USRE37038E1 (en) | Method and system for automated termination and resumption in a time zero backup copy process | |
| WO2000020971A1 (en) | Recovery of file systems after modification failure | |
| JPS633341B2 (en) | ||
| JP2002132554A (en) | Database access method | |
| US7194675B2 (en) | Backup method, backup system, disk controller and backup program | |
| JP2785342B2 (en) | Processing system | |
| CN114328374B (en) | Snapshot method, snapshot device, related equipment and database system | |
| US7107485B2 (en) | Method, apparatus, and computer readable medium for managing multiple system | |
| JP2002049509A (en) | Data processing system | |
| CN117666950A (en) | Hard disk data migration method, device, medium and NAS equipment | |
| CN115408039A (en) | Uninterrupted control method and system for upgrading virtual machine system of super-fusion system | |
| JP3604171B2 (en) | Process automatic restart processing method | |
| CN120523500B (en) | Refresh method, device, storage medium and program product of baseboard management controller | |
| EP4095688B1 (en) | Method and apparatus for processing transaction | |
| JP2909128B2 (en) | Startup processing takeover processor | |
| JPH11338843A (en) | Recovery system for system linking device and recording medium recording recovery program | |
| JPH08272655A (en) | Operating system and file deletion method | |
| JPH0973372A (en) | Storage control method and storage control device | |
| JPH04105159A (en) | Work substitute system | |
| CN107678880A (en) | A kind of minicomputer calculates partition operating system Backup and Restore device and method | |
| JPH09288655A (en) | How to add a processor | |
| CN121785538A (en) | Processing method and device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |