複数のデータサーバと、各データサーバの稼動状態を監視し、前記各データサーバの稼動状態の情報を作成し閲覧可能に公開する管理サーバと、前記各データサーバの稼動状態の情報を前記管理サーバから取得し、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択し、前記各データサーバの稼動状態の情報に反して、前記選択したデータサーバにデータを書き込めないとき、前記選択したデータサーバの稼動状態を書き込み可能から書き込み不能へと前記管理サーバに更新させるクライアント装置と、を備えることを特徴とするデータ分散システム。複数のデータサーバと、各データサーバの稼動状態を監視し、前記各データサーバの稼動状態の情報を作成し閲覧可能に公開する管理サーバと、前記各データサーバの稼動状態の情報を前記管理サーバから取得し、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択し、前記選択したデータサーバにデータを書き込むクライアント装置と、前記クライアント装置が、前記各データサーバの稼動状態の情報に反して、前記選択したデータサーバに前記データを書き込めないとき、前記クライアント装置が選択したデータサーバに代わり前記データの書き込みを受け付け、前記クライアント装置が選択したデータサーバが、書き込み可能に復旧したとき、前記クライアント装置が選択したデータサーバに前記データを書き戻す代理サーバと、を備えることを特徴とするデータ分散システム。複数のデータサーバの稼動状態を監視する稼動状態監視部と、各データサーバの稼動状態の情報を作成し閲覧可能に公開する稼動状態作成部と、クライアント装置が、前記各データサーバの稼動状態の情報を取得し、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択し、前記各データサーバの稼動状態の情報に反して、前記選択したデータサーバにデータを書き込めないときにおいて、その旨の通知に基づいて、前記クライアント装置が選択したデータサーバの稼動状態を書き込み可能から書き込み不能へと更新する稼動状態更新部と、を備えることを特徴とする管理サーバ。複数のデータサーバの稼動状態を監視する稼動状態監視部と、各データサーバの稼動状態の情報を作成し閲覧可能に公開する稼動状態作成部と、クライアント装置が、前記各データサーバの稼動状態の情報を取得し、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択し、前記各データサーバの稼動状態の情報に反して、前記選択したデータサーバにデータを書き込めないときにおいて、前記クライアント装置が選択したデータサーバの稼動回復を確認したとき、前記クライアント装置が選択したデータサーバに代わり前記データの書き込みを受け付ける代理サーバに対して、前記クライアント装置が選択したデータサーバの稼動回復を通知し、前記クライアント装置が選択したデータサーバに前記データを書き戻させる稼動回復通知部と、を備えることを特徴とする管理サーバ。複数のデータサーバの稼動状態を監視する管理サーバから、各データサーバの稼動状態の情報を取得する稼動状態取得部と、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択するデータサーバ選択部と、前記各データサーバの稼動状態の情報に反して、前記データサーバ選択部が選択したデータサーバにデータを書き込めないとき、前記データサーバ選択部が選択したデータサーバの稼動状態を書き込み可能から書き込み不能へと前記管理サーバに更新させる書込不可通知部と、を備えることを特徴とするクライアント装置。複数のデータサーバの稼動状態を監視する管理サーバから、各データサーバの稼動状態の情報を取得する稼動状態取得部と、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択するデータサーバ選択部と、前記各データサーバの稼動状態の情報に反して、前記データサーバ選択部が選択したデータサーバにデータを書き込めないとき、前記データサーバ選択部が選択したデータサーバに代わり前記データの書き込みを受け付ける代理サーバに前記データを書き込むデータ書込部と、を備えることを特徴とするクライアント装置。複数のデータサーバの稼動状態を監視する稼動状態監視手順と、各データサーバの稼動状態の情報を作成し閲覧可能に公開する稼動状態作成手順と、クライアント装置が、前記各データサーバの稼動状態の情報を取得し、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択し、前記各データサーバの稼動状態の情報に反して、前記選択したデータサーバにデータを書き込めないときにおいて、その旨の通知に基づいて、前記クライアント装置が選択したデータサーバの稼動状態を書き込み可能から書き込み不能へと更新する稼動状態更新手順と、をコンピュータに順に実行させるための管理サーバプログラム。複数のデータサーバの稼動状態を監視する稼動状態監視手順と、各データサーバの稼動状態の情報を作成し閲覧可能に公開する稼動状態作成手順と、クライアント装置が、前記各データサーバの稼動状態の情報を取得し、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択し、前記各データサーバの稼動状態の情報に反して、前記選択したデータサーバにデータを書き込めないときにおいて、前記クライアント装置が選択したデータサーバの稼動回復を確認したとき、前記クライアント装置が選択したデータサーバに代わり前記データの書き込みを受け付ける代理サーバに対して、前記クライアント装置が選択したデータサーバの稼動回復を通知し、前記クライアント装置が選択したデータサーバに前記データを書き戻させる稼動回復通知手順と、をコンピュータに順に実行させるための管理サーバプログラム。複数のデータサーバの稼動状態を監視する管理サーバから、各データサーバの稼動状態の情報を取得する稼動状態取得手順と、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択するデータサーバ選択手順と、前記各データサーバの稼動状態の情報に反して、前記データサーバ選択手順が選択したデータサーバにデータを書き込めないとき、前記データサーバ選択手順が選択したデータサーバの稼動状態を書き込み可能から書き込み不能へと前記管理サーバに更新させる書込不可通知手順と、をコンピュータに順に実行させるためのクライアント装置プログラム。複数のデータサーバの稼動状態を監視する管理サーバから、各データサーバの稼動状態の情報を取得する稼動状態取得手順と、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択するデータサーバ選択手順と、前記各データサーバの稼動状態の情報に反して、前記データサーバ選択手順が選択したデータサーバにデータを書き込めないとき、前記データサーバ選択手順が選択したデータサーバに代わり前記データの書き込みを受け付ける代理サーバに前記データを書き込むデータ書込手順と、をコンピュータに順に実行させるためのクライアント装置プログラム。ここで、管理サーバが自己の内部で管理するデータサーバの稼動状態の情報内部用リストは、稼動状態が変化するたびに更新される。しかし、管理サーバがクライアントに公開するデータサーバの稼動状態の情報公開用リストは、稼動状態が変化するたびに更新されるのではなく、有効期限が経過するたびに内部用リストに基づいて更新される。よって、内部用リスト及び公開用リストは、常には一致しない。公開用リストの有効期限が経過するまでの間に、データサーバの稼動状態が変化することがある。従って、活きているとされているデータサーバが書き込み時には死んでいる可能性があり、その場合クライアントは書き込みに失敗してしまう。この可能性を低く抑えるために死活監視の頻度を上げると、やはり管理サーバの負荷が高くなってしまう。データサーバの選択方法によっては、書き込みに失敗した際に改めて別個のデータサーバを選択し直すことも考えられる。しかし、例えばデータサーバのランダムな選択を求められており、全ての活きているデータサーバに対して確率均等に選択することが重要である場合は、そのような選び直しをすることで偏りが生じ均等性が失われてしまうため、選び直しは望ましくない。また、データサーバの選択が一意に決まる場合、例えばデータサーバが冗長化されていない環境でデータのIDのハッシュ値によって割り振る場合などは、そもそも選び直すこと自体が原理的に不可能である。管理サーバを分散させてスケールアウトさせることも可能であるが、コストの問題から、集中させるか分散させるとしても少ない台数に抑えることが好ましい。いずれにせよ、管理サーバの負荷を小さく抑える技術が重要である。そこで、前記課題を解決するために、本発明は、管理サーバの負荷低減のため、管理サーバによるデータサーバの監視の頻度を下げても、クライアントの書き込み失敗を増やすことなく、別個のデータサーバの選び直しをなくすことを目的とする。上記目的を達成するために、クライアント装置は、各データサーバの稼動状態の情報に反して、選択したデータサーバにデータを書き込めないとき、管理サーバに、選択したデータサーバの稼動状態を、書き込み可能から書き込み不能へと更新させることとした。具体的には、本発明は、複数のデータサーバと、各データサーバの稼動状態を監視し、前記各データサーバの稼動状態の情報を作成し閲覧可能に公開する管理サーバと、前記各データサーバの稼動状態の情報を前記管理サーバから取得し、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択し、前記各データサーバの稼動状態の情報に反して、前記選択したデータサーバにデータを書き込めないとき、前記選択したデータサーバの稼動状態を書き込み可能から書き込み不能へと前記管理サーバに更新させるクライアント装置と、を備えることを特徴とするデータ分散システムである。また、本発明は、複数のデータサーバの稼動状態を監視する稼動状態監視部と、各データサーバの稼動状態の情報を作成し閲覧可能に公開する稼動状態作成部と、クライアント装置が、前記各データサーバの稼動状態の情報を取得し、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択し、前記各データサーバの稼動状態の情報に反して、前記選択したデータサーバにデータを書き込めないときにおいて、その旨の通知に基づいて、前記クライアント装置が選択したデータサーバの稼動状態を書き込み可能から書き込み不能へと更新する稼動状態更新部と、を備えることを特徴とする管理サーバである。また、本発明は、複数のデータサーバの稼動状態を監視する管理サーバから、各データサーバの稼動状態の情報を取得する稼動状態取得部と、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択するデータサーバ選択部と、前記各データサーバの稼動状態の情報に反して、前記データサーバ選択部が選択したデータサーバにデータを書き込めないとき、前記データサーバ選択部が選択したデータサーバの稼動状態を書き込み可能から書き込み不能へと前記管理サーバに更新させる書込不可通知部と、を備えることを特徴とするクライアント装置である。また、本発明は、複数のデータサーバの稼動状態を監視する稼動状態監視手順と、各データサーバの稼動状態の情報を作成し閲覧可能に公開する稼動状態作成手順と、クライアント装置が、前記各データサーバの稼動状態の情報を取得し、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択し、前記各データサーバの稼動状態の情報に反して、前記選択したデータサーバにデータを書き込めないときにおいて、その旨の通知に基づいて、前記クライアント装置が選択したデータサーバの稼動状態を書き込み可能から書き込み不能へと更新する稼動状態更新手順と、をコンピュータに順に実行させるための管理サーバプログラムである。また、本発明は、複数のデータサーバの稼動状態を監視する管理サーバから、各データサーバの稼動状態の情報を取得する稼動状態取得手順と、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択するデータサーバ選択手順と、前記各データサーバの稼動状態の情報に反して、前記データサーバ選択手順が選択したデータサーバにデータを書き込めないとき、前記データサーバ選択手順が選択したデータサーバの稼動状態を書き込み可能から書き込み不能へと前記管理サーバに更新させる書込不可通知手順と、をコンピュータに順に実行させるためのクライアント装置プログラムである。この構成によれば、管理サーバの負荷低減のため、管理サーバによるデータサーバの監視の頻度を下げても、クライアントが管理サーバと併せてデータサーバの稼動状態を監視するため、クライアントの書き込み失敗を増やさないことができる。さらに、管理サーバによるデータサーバの監視の頻度を下げたまま、データサーバの稼動状態の情報の更新頻度を上げることができるため、クライアントの書き込み失敗を減らすこともできる。上記目的を達成するために、代理サーバは、選択されたデータサーバに代わりデータの書き込みを受け付け、管理サーバは、選択されたデータサーバの稼動回復を確認したとき、代理サーバに対して選択されたデータサーバにデータを書き戻させることとした。具体的には、本発明は、複数のデータサーバと、各データサーバの稼動状態を監視し、前記各データサーバの稼動状態の情報を作成し閲覧可能に公開する管理サーバと、前記各データサーバの稼動状態の情報を前記管理サーバから取得し、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択し、前記選択したデータサーバにデータを書き込むクライアント装置と、前記クライアント装置が、前記各データサーバの稼動状態の情報に反して、前記選択したデータサーバに前記データを書き込めないとき、前記クライアント装置が選択したデータサーバに代わり前記データの書き込みを受け付け、前記クライアント装置が選択したデータサーバが、書き込み可能に復旧したとき、前記クライアント装置が選択したデータサーバに前記データを書き戻す代理サーバと、を備えることを特徴とするデータ分散システムである。また、本発明は、複数のデータサーバの稼動状態を監視する稼動状態監視部と、各データサーバの稼動状態の情報を作成し閲覧可能に公開する稼動状態作成部と、クライアント装置が、前記各データサーバの稼動状態の情報を取得し、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択し、前記各データサーバの稼動状態の情報に反して、前記選択したデータサーバにデータを書き込めないときにおいて、前記クライアント装置が選択したデータサーバの稼動回復を確認したとき、前記クライアント装置が選択したデータサーバに代わり前記データの書き込みを受け付ける代理サーバに対して、前記クライアント装置が選択したデータサーバの稼動回復を通知し、前記クライアント装置が選択したデータサーバに前記データを書き戻させる稼動回復通知部と、を備えることを特徴とする管理サーバである。また、本発明は、複数のデータサーバの稼動状態を監視する管理サーバから、各データサーバの稼動状態の情報を取得する稼動状態取得部と、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択するデータサーバ選択部と、前記各データサーバの稼動状態の情報に反して、前記データサーバ選択部が選択したデータサーバにデータを書き込めないとき、前記データサーバ選択部が選択したデータサーバに代わり前記データの書き込みを受け付ける代理サーバに前記データを書き込むデータ書込部と、を備えることを特徴とするクライアント装置である。また、本発明は、複数のデータサーバの稼動状態を監視する稼動状態監視手順と、各データサーバの稼動状態の情報を作成し閲覧可能に公開する稼動状態作成手順と、クライアント装置が、前記各データサーバの稼動状態の情報を取得し、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択し、前記各データサーバの稼動状態の情報に反して、前記選択したデータサーバにデータを書き込めないときにおいて、前記クライアント装置が選択したデータサーバの稼動回復を確認したとき、前記クライアント装置が選択したデータサーバに代わり前記データの書き込みを受け付ける代理サーバに対して、前記クライアント装置が選択したデータサーバの稼動回復を通知し、前記クライアント装置が選択したデータサーバに前記データを書き戻させる稼動回復通知手順と、をコンピュータに順に実行させるための管理サーバプログラムである。また、本発明は、複数のデータサーバの稼動状態を監視する管理サーバから、各データサーバの稼動状態の情報を取得する稼動状態取得手順と、前記各データサーバの稼動状態の情報に基づいて、書き込み可能であるデータサーバを選択するデータサーバ選択手順と、前記各データサーバの稼動状態の情報に反して、前記データサーバ選択手順が選択したデータサーバにデータを書き込めないとき、前記データサーバ選択手順が選択したデータサーバに代わり前記データの書き込みを受け付ける代理サーバに前記データを書き込むデータ書込手順と、をコンピュータに順に実行させるためのクライアント装置プログラムである。この構成によれば、管理サーバの負荷低減のため、管理サーバによるデータサーバの監視の頻度を下げても、データを代理のサーバに退避させた後にデータを本来のサーバに書き戻すため、別個のデータサーバの選び直しをなくすことができる。本発明は、管理サーバの負荷低減のため、管理サーバによるデータサーバの監視の頻度を下げても、クライアントの書き込み失敗を増やすことなく、別個のデータサーバの選び直しをなくすことができる。添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施の例であり、本発明は以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。データ分散システムの構成の概要データ分散システムの構成を示すブロック図を図1に示す。データ分散システムは、分散データベース1、管理サーバ2、クライアント3及び代理サーバ4から構成される。分散データベース1は、複数のデータベース部11、12、13を備える。管理サーバ2は、死活監視部21、稼動状態管理部22、稼動状態リスト公開部23、報告受付部24及びデータベース制御部25から構成される。死活監視部21は、稼動状態監視部として、複数のデータベース部11、12、13の稼動状態を監視する。稼動状態作成部として、稼動状態管理部22は、各データベース部11、12、13の稼動状態の情報を作成し、稼動状態リスト公開部23は、各データベース部11、12、13の稼動状態の情報を閲覧可能に公開する。報告受付部24は、クライアント3が、各データベース部11、12、13の稼動状態の情報を取得し、各データベース部11、12、13の稼動状態の情報に基づいて、書き込み可能であるいずれかのデータベース部を選択し、各データベース部11、12、13の稼動状態の情報に反して、選択したいずれかのデータベース部にデータを書き込めないときにおいて、その旨の通知を受ける。稼動状態管理部22は、稼動状態更新部として、その旨の通知に基づいて、クライアント3が選択したいずれかのデータベース部の稼動状態を書き込み可能から書き込み不能へと更新する。データベース制御部25は、稼動回復通知部として、クライアント3が選択したいずれかのデータベース部の稼動回復を確認したとき、クライアント3が選択したいずれかのデータベース部に代わりデータの書き込みを受け付ける代理サーバ4に対して、クライアント3が選択したいずれかのデータベース部の稼動回復を通知し、クライアント3が選択したいずれかのデータベース部にデータを書き戻させる。クライアント3は、管理サーバ対応部31、稼動状態リスト管理部32、サーバ選択部33及びデータ入出力部34から構成される。管理サーバ対応部31は、稼動状態取得部として、複数のデータベース部11、12、13の稼動状態を監視する管理サーバ2から、各データベース部11、12、13の稼動状態の情報を取得する。稼動状態リスト管理部32は、各データベース部11、12、13の稼動状態の情報を保持する。サーバ選択部33は、データサーバ選択部として、各データベース部11、12、13の稼動状態の情報に基づいて、書き込み可能であるいずれかのデータベース部を選択する。データ入出力部34は、データ書込部として、書き込み可能であるいずれかのデータベース部にデータを書き込む。管理サーバ対応部31は、書込不可通知部として、各データベース部11、12、13の稼動状態の情報に反して、サーバ選択部33が選択したいずれかのデータベース部にデータを書き込めないとき、サーバ選択部33が選択したいずれかのデータベース部の稼動状態を書き込み可能から書き込み不能へと管理サーバ2に更新させる。データ入出力部34は、データ書込部として、サーバ選択部33が選択したデータベース部に代わりデータの書き込みを受け付ける代理サーバ4にデータを書き込む。代理サーバ4は、クライアント3が選択したいずれかのデータベース部に代わりデータの書き込みを受け付け、データ入出力部41、データベース部42、管理サーバ対応部43及びテーブル管理部44から構成される。データ入出力部41は、クライアント3が選択したいずれかのデータベース部が書き込み不能となったとき、クライアント3からデータを入力し、クライアント3が選択したいずれかのデータベース部が書き込み可能となったとき、そのデータベース部にデータを出力する。データベース部42は、クライアント3からのデータを格納する。管理サーバ対応部43は、クライアント3が選択したいずれかのデータベース部が書き込み可能となったとき、管理サーバ2のデータベース制御部25からその旨の通知を受ける。管理サーバ対応部43は、クライアント3が選択したいずれかのデータベース部に書き戻しが終了したとき、管理サーバ2の報告受付部24にその旨を通知する。テーブル管理部44は、クライアント3が選択したデータベース部がいずれであるかに応じて、クライアント3が出力したデータをデータベース部42の適切な領域において管理する。図1に説明した各装置は、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。発明が解決しようとする課題において記載したように、公開用リストの有効期限が経過するまでの間に、データサーバの稼動状態が変化する場合には、活きているとされているデータベース部が書き込み時には死んでいる可能性がある。しかし、図1のように、クライアント3は、各データベース部11、12、13の稼動状態の情報に反して、選択したいずれかのデータベース部にデータを書き込めないとき、管理サーバ2に、選択したいずれかのデータベース部の稼動状態を、書き込み可能から書き込み不能へと更新させる。つまり、クライアント3が管理サーバ2と併せてデータベース部11、12、13の稼動状態を監視するため、管理サーバ2の負荷を高くすることなくクライアント3の書き込み失敗を減らすことができる。そして、図1のように、代理サーバ4は、選択されたいずれかのデータベース部に代わりデータの書き込みを受け付け、管理サーバ2は、選択されたいずれかのデータベース部の稼動回復を確認したとき、代理サーバ4に対して選択されたいずれかのデータベース部にデータを書き戻させる。つまり、データを代理のサーバに退避させた後にデータを本来のサーバに書き戻すため、別個のデータサーバの選び直しをなくすことができる。データの書き込みに成功する場合の処理次に、データの書き込みに成功する場合の処理について説明する。データ分散システムにおけるデータの書き込みの処理を示すブロック図を図2に示す。管理サーバ2は、各データベース部11、12、13にpingを送信し、各データベース部11、12、13の稼動状態を監視する。そして、管理サーバ2は、各データベース部11、12、13の稼動状態の情報を示す公開用リストPを公開する。ここで、公開用リストPのうち{1、2、3}は、DB1、DB2、DB3とマークされたデータベース部11、12、13に書き込み可能であることを示す。クライアント3は、管理サーバ2に公開用リストPを要求し、管理サーバ2から公開用リストPを取得する。そして、クライアント3は、公開用リストPに基づいて、データベース部11、12、13に書き込み可能であることを確認し、データベース部13にデータDを書き込む。データ分散システムにおける稼動状態の監視の処理を示すシーケンスを図3に示す。稼動状態管理部22は、稼動状態リストを2つ保持しており、1つは内部用internalリストIで、もう1つは公開用publishリストPである。死活監視部21は、定期的にデータベース部11、12、13の稼動状態をチェックする。稼動状態には、正常、準備中、異常の3種類がある。正常は、正常に動いており、クライアント3からの書き込みを受け付けられる状態、準備中は、正常に動いているが、クライアント3からの書き込みを受け付けられない状態、異常は、正常に動いておらず、クライアント3からの書き込みを受け付けられない状態を表す。死活監視部21は、データベース部11、12、13に対してpingを投げる。そして、正しく返ってきた場合、今まで正常であったデータベース部は引き続き正常と判断し、今まで異常であったデータベース部は準備中と判断する。しかし、正しく返らなかった場合、今まで異常であったデータベース部は引き続き異常と判断し、今まで正常であったデータベース部は異常と判断する。稼動状態管理部22は、内部用リストIを更新する。このチェックを例えば5分おきに行う。また、前述したように、クライアント3がデータベース部の異常を報告してくる場合がある。この場合、報告受付部24がその報告を受け、稼動状態管理部22が内部用リストIの該当する稼動状態を異常に更新する。また、前述したように、代理サーバ4がデータベース部の復旧を報告してくる場合がある。この場合、報告受付部24がその報告を受け、稼動状態管理部22が内部用リストIの該当する稼動状態を正常に更新する。稼動状態管理部22は、例えば5分おきに内部用リストIのうち正常状態にあるデータベース部のリストを公開用リストPとして作成する。稼動状態リスト公開部23は、有効期限を例えば5分後までとして公開用リストPを公開する。図3においては、初期状態では、内部用リストIも公開用リストP1も、{1、2、3}を示している。まず、稼動状態管理部22は、データベース部13の異常の報告を受けたとき、内部用リストIを{1、2、3}から{1、2}へと更新し、内部用リストI1を作成する。しかし、稼動状態リスト公開部23は、有効期限が経過していないため、公開用リストP1を更新するわけではない。次に、稼動状態リスト公開部23は、有効期限が経過しているため、内部用リストI1に基づいて、公開用リストP1を{1、2、3}から{1、2}へと更新し、公開用リストP2を公開する。以下、内部用リストI2、I3、I4、I5及び公開用リストP3、P4、P5が、内部用リストI1及び公開用リストP1、P2と同様にして、作成されて公開される。このように、稼動状態リストは、内部用と公開用で常には一致しない。ここで、管理サーバ2がクライアント3に、内部用リストIではなく公開用リストPを公開する理由を説明する。管理サーバ2は、クライアント3がいずれのデータベース部の集合からデータベース部を選択したかを把握する必要があり、少なくともクライアント3が何台のデータベース部の集合からデータベース部を選択したかを把握する必要がある。管理サーバ2は、データベース部13の集合であるいくつの分散データベース1からデータベース部13が選択されたかに基づいて、後に統計処理を実行するためである。まず、管理サーバ2がクライアント3に内部用リストIを公開する場合を考える。内部用リストIは、稼動状態が変化するたび更新されるため、同一の時刻において、各クライアント3が保持している稼動状態リストは、それぞれ異なることがある。よって、クライアント3がいずれの時点で更新された内部用リストIに基づいてデータベース部を選択したのかを、管理サーバ2は把握することが負担になる。次に、管理サーバ2がクライアント3に公開用リストPを公開する場合を考える。公開用リストPは、有効期限が経過してから更新されるため、同一の時刻において、各クライアント3が保持している稼動状態リストは、それぞれ同一と保証される。よって、クライアント3が有効期限満了で更新された公開用リストPに基づいてデータベース部を選択したことを、管理サーバ2は把握することが容易になる。そこで、管理サーバ2はクライアント3に、内部用リストIではなく公開用リストPを公開する。しかし、公開用リストの有効期限が経過するまでの間に、データサーバの稼動状態が変化する可能性があり、活きているとされているデータベース部が書き込み時には死んでいる可能性がある。そこで、本発明が適用されるのである。クライアントの処理を示すフローチャートを図4に示す。クライアント3において、データが発生するステップS1。稼動状態リスト管理部32は、稼動状態リストが有効期限内にあるか、又は稼動状態リストが保持されているかを確認するステップS2。稼動状態リスト管理部32が、稼動状態リストが有効期限内にあることを確認したときステップS2においてYESについて説明する。サーバ選択部33は、稼動状態リストに基づいて、データベース部を選択するステップS5。データ入出力部34は、そのデータベース部にデータを書き込むことを試みるステップS6。稼動状態リスト管理部32が、稼動状態リストが有効期限内にないこと、又は稼動状態リストが保持されていないことを確認したときステップS2においてNOについて説明する。管理サーバ対応部31は、管理サーバ2から稼動状態リストを取得するステップS3。稼動状態リスト管理部32は、その稼動状態リストを保持するステップS4。ステップS5、S6については、前述と同様にして実行される。データ入出力部34が、データベース部にデータを書き込むことができたときステップS7においてYES、一連の処理は終了する。データ入出力部34が、データベース部にデータを書き込むことができないときステップS7においてNO、管理サーバ対応部31は、その旨を管理サーバ2に報告しステップS8、データ入出力部34は、データを代理サーバ4に書き込むステップS9。ステップS8、S9については、データの書き込みに失敗する場合の処理の項目で詳述する。データの書き込みに失敗する場合の処理次に、データの書き込みに失敗する場合の処理について説明する。データ分散システムにおけるデータの書き戻しの処理を示すブロック図を図5に示す。クライアント3は、公開用リストPに基づいて、データベース部11、12、13に書き込み可能であることを確認し、データベース部13にデータDを書き込もうとする。しかし、クライアント3は、公開用リストPに反して、データベース部13にデータDを書き込めない。そこで、クライアント3は、データベース部13に書き込み不能であることを、管理サーバ2に通知する。さらに、クライアント3は、データベース部13の識別子IDを紐付けたデータDを、代理サーバ4に書き込む。管理サーバ2は、内部用リストIを更新する。つまり、内部用リストIのうち、{1、2、3}は{1、2}に更新される。代理サーバ4は、データDを格納する。管理サーバ2は、データベース部13にpingを送信し、データベース部13の稼動状態を監視する。管理サーバ2は、データベース部13に書き込み可能であることを確認したとき、その旨を代理サーバ4に通知する。代理サーバ4は、その旨の通知を受けたとき、データDをデータベース部13に書き戻す。クライアント3は、書き戻しの際に関与していない。データ分散システムにおけるデータの書き戻しの処理を示すシーケンスを図6に示す。管理サーバ対応部31は、稼動状態リスト公開部23に稼動状態リストを要求するステップS11。稼動状態リスト公開部23は、管理サーバ対応部31に稼動状態リストを公開するステップS12。このとき、内部用リストI11は、{1、2、3}を示している。その後、データベース部13は、異常状態になっている。しかし、内部用リストI11は、{1、2、3}を示したままである。データ入出力部34は、データベース部13にデータを書き込むことを試みるが、データベース部13にデータを書き込めないステップS13。管理サーバ対応部31は、その旨を報告受付部24に報告するステップS14。稼動状態管理部22は、内部用リストI11を{1、2、3}から{1、2}へと更新し、内部用リストI12を作成する。報告受付部24は、代理サーバ4のアドレスを管理サーバ対応部31に通知するがステップS15、稼動状態リスト公開部23が、代理サーバ4のアドレスを管理サーバ対応部31に公開することもできる。データ入出力部34は、データベース部13の識別子IDを紐付けたデータを、代理サーバ4に書き込むステップS16。稼動状態管理部22は、死活監視部21が内部用リストI12で異常となっているデータベース部13からpingを正常に受け取った時点で、または、運用者がデータベース部13を復旧させた旨を稼動状態管理部22へ直接登録した時点で、内部用リストI12のデータベース部13の稼動状態を準備中に更新するステップS17。データベース制御部25は、管理サーバ対応部43に、データベース部13の稼動状態が準備中になったことを通知するステップS18。テーブル管理部44は、データベース部13へ紐付けられているテーブルを選び、その全データをデータベース部42から読み込み、データ入出力部41を通してデータベース部13へ書き戻すステップS19。その後、テーブル管理部44は、データベース部13へ紐付けられているテーブルをテーブル管理部44及びデータベース部42から削除する。そして、管理サーバ対応部43は、処理が終了したことを報告受付部24へ報告するステップS20。稼動状態管理部22は、代理サーバ4からの処理終了の報告を受けてデータベース部13が復旧したと判断し、内部用リストI12を{1、2}から{1、2、3}へと更新し、内部用リストI13を作成する。なお、書き戻し中にデータベース部13に異常が発生した場合は、データ入出力部41は書き戻し処理を中止し、テーブル管理部44はデータを削除せず、管理サーバ対応部43は報告受付部24にその旨を伝え、稼動状態管理部22は内部用リストIのうちデータベース部13の稼動状態を異常に戻し、死活監視部21は監視を続ける。また、データベース部13の異常が、クライアント3からの報告ではなく死活監視部21のチェックにより気付いたものであり、その後もクライアント3から一度もデータベース部13の異常について報告が無いまま、データベース部13が復旧する場合がある。この場合、代理サーバ4にはデータベース部13に紐付けられているデータは無いと判断することも可能である。そこで、死活監視部21がデータベース部13の復旧に気付いた時点で、前述した書き戻し処理を実行することなく、稼動状態管理部22は内部用リストIのうちデータベース部13の稼動状態を正常に戻すことにしても良い。代理サーバの第1のデータ構造を示す図を図7に示す。データベース部11、12、13に紐付けられたデータが、一括のテーブルによって管理されている。データベース部の識別用のカラムが存在しており、データの読み込みおよび削除の前にデータベース部の識別子で全データをフィルタする処理が必要であるが、テーブル管理部44は不要である。代理サーバの第2のデータ構造を示す図を図8に示す。データベース部11、12、13に紐付けられたデータが、別個のテーブルによって管理されている。データベース部毎にテーブルが管理されており、テーブル管理部44は必要であるが、データの読み込みおよび削除の前にデータベース部の識別子で全データをフィルタする処理は不要である。なお、テーブルではなくデータベースを別個にすることも可能である。