14.3.28 importecf(永続データの再配置)
この項の内容は,ディスクキャッシュ,および2Wayキャッシュを使用する場合にお読みください。
- 〈この項の構成〉
(1) 機能
指定したディレクトリのキャッシュデータファイル,およびキャッシュインデックスファイルのデータを再度putすることで,永続データを再配置します。
EADSサーバをクラスタに追加したり,EADSサーバをクラスタから削除したりする場合や,データの多重度やデータサイズを変更する場合は,このサブコマンドを使用して,キャッシュデータファイルからデータを再配置します。
(2) 規則
-
このサブコマンドは,クラスタが次の状態のときに実行できます。
-
クラスタ稼働中(AVAILABLE)
-
-
このサブコマンドは,クラスタへの参加状況がonlineのEADSサーバを処理対象とします。ただし,クラスタへの参加状況がstandbyのEADSサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については,eztool statusコマンドで確認できます。
-
このサブコマンドは,処理対象のEADSサーバが次の状態のときに実行できます。
-
初期化状態(initialized)
-
-
稼働中のFullGCの発生を抑えるため,このサブコマンドが終了するタイミングで,各EADSサーバがFullGCを実施します。
-
このサブコマンドがEADSサーバから排他を取得している間,EADSサーバは縮退状態(isolated)になりません。なお,EADSサーバから排他を取得している間にプロセスがダウンしたり,EADSサーバが停止したりした場合は,排他を解除したあとに縮退が実行されます。
(3) 形式
eztool importecf [--convertid <EADSサーバID変換ルール>] <キャッシュデータファイルとキャッシュインデックスファイルの格納先パス名>
(4) オプションおよび引数
(a) --convertid <EADSサーバID変換ルール>
格納先のEADSサーバIDを指定してkeyをグルーピングしている場合(EADSサーバID指定グループを使用している場合)に,指定したEADSサーバIDを別のEADSサーバIDに変換して,データを読み込みたいときに指定します。
EADSサーバID変換ルールは,次の形式で指定します。
<変換元EADSサーバID>><変換先EADSサーバID>
変換元EADSサーバIDおよび変換先EADSサーバIDには,1〜96の整数が指定できます(01や02など,10の位が0の整数は指定できません)。
変換元EADSサーバIDと変換先EADSサーバIDに,同じ値は指定できません。
EADSサーバID変換ルールを複数指定する場合は,コンマ区切りで指定します。EADSサーバID変換ルールを複数指定した場合に,指定順による優先度の差はありません。ただし,同じ変換元EADSサーバIDは,複数指定できません。
次に示す文字または文字列は無視されます。
-
先頭または末尾のコンマ
(例)「--convertid ,1>2,」
-
コンマで区切られた空文字列,またはコンマで区切られたスペースだけの文字列
(例)「--convertid 1>2,, ,」
(b) <キャッシュデータファイルとキャッシュインデックスファイルの格納先パス名>
読み込みたいキャッシュデータファイルとキャッシュインデックスファイルの格納先パス名を指定します。
パス名には,アスタリスク(*),二重引用符("),疑問符(?),縦線(|),小なり演算子(<),大なり演算子(>)を含むディレクトリは指定できません。
キャッシュデータファイルとキャッシュインデックスファイルの格納先パスに相対パスを指定した場合,運用ディレクトリが起点となります。
(5) リターンコード
次の表に示すリターンコードが返却されます。
項番 |
リターンコード |
リターンコードの説明 |
|
---|---|---|---|
コマンド定義のeads.command.compatパラメタを指定していない場合 |
コマンド定義のeads.command.compatパラメタに0300を指定した場合 |
||
1 |
0 |
0 |
コマンドの実行に成功しました。 |
2 |
10 |
10 |
データ自動削除機能を使用している場合,レンジのデータ件数がデータ自動削除機能のしきい値(キャッシュ定義のeads.cache.eviction.keyCountパラメタの指定値)を超えたため,一部のデータはインポートされませんでした。 |
3 |
101 |
101 |
コマンドの初期化に失敗しました。 |
4 |
110 |
接続に失敗しました。 |
|
5 |
111 |
通信タイムアウトで失敗しました。 |
|
6 |
120 |
構文不正で失敗しました。 |
|
7 |
130 |
コマンドを実行できない状態のため失敗しました。 |
|
8 |
131 |
ほかのコマンドが実行中のため失敗しました。 |
|
9 |
150 |
コマンド実行中に失敗しました。 |
|
10 |
200 |
コマンドタイムアウトで失敗しました。 |
(6) 注意事項
-
キャッシュ情報ファイル,キャッシュインデックスファイル,およびキャッシュデータファイルの出力先ディレクトリは指定できません。
-
このサブコマンドを実行すると,読み込み対象のディレクトリ下にあるキャッシュ永続データファイル,およびキャッシュインデックスファイルはすべて読み込まれます。
-
読み込み対象となるキャッシュデータファイル,およびキャッシュインデックスファイルが破損していたり,障害時のファイルだったりした場合は,削除したデータが復活することがあります。
-
データ自動削除機能を使用している場合,読み込み対象のファイルが破損していたり,障害時のファイルだったりした場合は読み込まないで,eztool createcacheコマンドでキャッシュを再作成し,必要に応じてデータを再投入することを推奨します。また,読み込み対象のファイルが破損していたり,障害時のファイルだったりした場合に読み込むときは,データ自動削除機能のしきい値(eads.cache.eviction.keyCountパラメタの指定値)をキャッシュ使用時に設定してあったしきい値よりも小さい値に変更しないでください。
-
読み込み対象となるキャッシュデータファイル,およびキャッシュインデックスファイルの処理中にエラーが発生した場合,次のキャッシュデータファイル,およびキャッシュインデックスファイルの処理を続けます。ただし,サブコマンドの結果はエラーとなります。このため,サブコマンドの結果がエラーとなった場合は,次の内容に問題がないかどうかを確認してください。
-
eztool statusコマンドでクラスタの状態を確認する。
-
eztool listcacheコマンドでキャッシュの一覧を確認する。
-
-
データを一つ一つ登録し直すため,データ数やデータ量によっては,かなりの時間が掛かります。
-
putするkeyのデータがすでに存在する場合は,keyの更新日時をチェックして,putするkeyのデータの更新日時が新しいときだけデータを上書きします。
-
データ自動削除機能を使用する場合は,レンジごとのしきい値を超えるデータは読み捨てられます。ただし,全レンジでしきい値の上限を超えた場合でも,putするkeyのデータがすでに存在する場合に更新時刻が新しいデータがあれば上書きできるように,読み込み処理は継続します。
-
EADSサーバID指定グループを含むkeyのデータを登録する際に,指定されたEADSサーバIDのレンジが存在しない場合,そのデータは登録しません。このとき,1回だけ警告メッセージが出力されます。
-
このサブコマンドの実行中,データ総量監視機能は動作しません。