インメモリデータグリッド　Hitachi Elastic Application Data Store ユーザーズガイド

解説・手引・文法・操作書

3020-3-V22-50

前書き

対象製品

●適用OS：Red Hat Enterprise Linux 6（64-bit x86_64），Red Hat Enterprise Linux 7（64-bit x86_64）

P-9W43-8A51 Hitachi Elastic Application Data Store 05-30

P-9W43-8B51 Hitachi Elastic Application Data Store Client for Java 05-30

P-9W43-8C51 Hitachi Elastic Application Data Store Client for C 05-30

輸出時の注意

本製品を輸出される場合には、外国為替及び外国貿易法の規制並びに米国輸出管理規則など外国の輸出関連法規をご確認の上、必要な手続きをお取りください。

なお、不明な場合は、弊社担当営業にお問い合わせください。

商標類

HITACHI，Cosminexus，JP1，uCosminexusは，株式会社 日立製作所の商標または登録商標です。

AMDは，Advanced Micro Devices, Inc.の商標です。

BSAFEは，Dell Inc.の米国およびその他の国における商標または登録商標です。

Dell Technologies, Dell, EMCおよびDell EMCが提供する製品及びサービスにかかる商標は，米国Dell Inc. 又はその関連会社の商標又は登録商標です。

Intelは，Intel Corporationまたはその子会社の商標です。

Linuxは，Linus Torvalds氏の日本およびその他の国における登録商標または商標です。

OracleおよびJavaは，オラクルおよびその関連会社の登録商標です。

Red Hat is a registered trademark of Red Hat, Inc. in the United States and other countries.

Red Hatは，米国およびその他の国におけるRed Hat, Inc.の登録商標です。

Red Hat Enterprise Linux is a registered trademark of Red Hat, Inc. in the United States and other countries.

Red Hat Enterprise Linuxは，米国およびその他の国におけるRed Hat, Inc.の登録商標です。

本製品は，米国Dell Inc.のDell BSAFETMソフトウェアを搭載しています。

This product includes software developed by the Apache Software Foundation (http://www.apache.org/).

This product includes software developed by IAIK of Graz University of Technology.

This product includes software developed by Ben Laurie for use in the Apache-SSL HTTP server project.

Portions of this software were developed at the National Center for Supercomputing Applications (NCSA) at the University of Illinois at Urbana-Champaign.

This product includes software developed by the University of California, Berkeley and its contributors.

This software contains code derived from the RSA Data Security Inc. MD5 Message-Digest Algorithm, including various modifications by Spyglass Inc., Carnegie Mellon University, and Bell Communications Research, Inc (Bellcore).

Regular expression support is provided by the PCRE library package, which is open source software, written by Philip Hazel, and copyright by the University of Cambridge, England. The original software is available from 　ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

This product includes software developed by Ralf S. Engelschall <rse@engelschall.com> for use in the mod_ssl project (http://www.modssl.org/).

This product includes software developed by the Java Apache Project for use in the Apache JServ servlet engine project (http://java.apache.org/).

This product includes software developed by Daisuke Okajima and Kohsuke Kawaguchi (http://relaxngcc.sf.net/).

This product includes software developed by Andy Clark.

Java is a registered trademark of Oracle and/or its affiliates.

1. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)

2．This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)

3. This product includes software written by Tim Hudson (tjh@cryptsoft.com)

4. 本製品にはOpenSSL ToolkitソフトウェアをOpenSSL LicenseおよびOriginal SSLeay Licenseに従い使用しています。OpenSSL LicenseおよびOriginal SSLeay Licenseは以下のとおりです。

LICENSE ISSUES

==============

The OpenSSL toolkit stays under a dual license, i.e. both the conditions of

the OpenSSL License and the original SSLeay license apply to the toolkit.

See below for the actual license texts. Actually both licenses are BSD-style

Open Source licenses. In case of any license issues related to OpenSSL

please contact openssl-core@openssl.org.

OpenSSL License

---------------

/* ====================================================================

* Copyright (c) 1998-2016 The OpenSSL Project. All rights reserved.

*

* Redistribution and use in source and binary forms, with or without

* modification, are permitted provided that the following conditions

* are met:

*

* 1. Redistributions of source code must retain the above copyright

* notice, this list of conditions and the following disclaimer.

*

* 2. Redistributions in binary form must reproduce the above copyright

* notice, this list of conditions and the following disclaimer in

* the documentation and/or other materials provided with the

* distribution.

*

* 3. All advertising materials mentioning features or use of this

* software must display the following acknowledgment:

* "This product includes software developed by the OpenSSL Project

* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"

*

* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to

* endorse or promote products derived from this software without

* prior written permission. For written permission, please contact

* openssl-core@openssl.org.

*

* 5. Products derived from this software may not be called "OpenSSL"

* nor may "OpenSSL" appear in their names without prior written

* permission of the OpenSSL Project.

*

* 6. Redistributions of any form whatsoever must retain the following

* acknowledgment:

* "This product includes software developed by the OpenSSL Project

* for use in the OpenSSL Toolkit (http://www.openssl.org/)"

*

* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY

* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR

* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR

* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT

* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;

* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)

* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,

* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)

* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED

* OF THE POSSIBILITY OF SUCH DAMAGE.

* ====================================================================

*

* This product includes cryptographic software written by Eric Young

* (eay@cryptsoft.com). This product includes software written by Tim

* Hudson (tjh@cryptsoft.com).

*

*/

Original SSLeay License

-----------------------

/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)

* All rights reserved.

*

* This package is an SSL implementation written

* by Eric Young (eay@cryptsoft.com).

* The implementation was written so as to conform with Netscapes SSL.

*

* This library is free for commercial and non-commercial use as long as

* the following conditions are aheared to. The following conditions

* apply to all code found in this distribution, be it the RC4, RSA,

* lhash, DES, etc., code; not just the SSL code. The SSL documentation

* included with this distribution is covered by the same copyright terms

* except that the holder is Tim Hudson (tjh@cryptsoft.com).

*

* Copyright remains Eric Young's, and as such any Copyright notices in

* the code are not to be removed.

* If this package is used in a product, Eric Young should be given attribution

* as the author of the parts of the library used.

* This can be in the form of a textual message at program startup or

* in documentation (online or textual) provided with the package.

*

* Redistribution and use in source and binary forms, with or without

* modification, are permitted provided that the following conditions

* are met:

* 1. Redistributions of source code must retain the copyright

* notice, this list of conditions and the following disclaimer.

* 2. Redistributions in binary form must reproduce the above copyright

* notice, this list of conditions and the following disclaimer in the

* documentation and/or other materials provided with the distribution.

* 3. All advertising materials mentioning features or use of this software

* must display the following acknowledgement:

* "This product includes cryptographic software written by

* Eric Young (eay@cryptsoft.com)"

* The word 'cryptographic' can be left out if the rouines from the library

* being used are not cryptographic related :-).

* 4. If you include any Windows specific code (or a derivative thereof) from

* the apps directory (application code) you must include an acknowledgement:

* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"

*

* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND

* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE

* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS

* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)

* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT

* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY

* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

* SUCH DAMAGE.

*

* The licence and distribution terms for any publically available version or

* derivative of this code cannot be changed. i.e. this code cannot simply be

* copied and put under another distribution licence

* [including the GNU Public Licence.]

*/

本製品には，市販暗号プログラムとして「uCosminexus Primary Server Base」が含まれています。

当該製品の使用方法につきましては，以下のマニュアルを参照して下さい。

日立ソフトウェアマニュアル：オンラインマニュアル Cosminexus

http://itdoc.hitachi.co.jp/Pages/document_list/manuals/cosmiv9.html

その他記載の会社名，製品名は，それぞれの会社の商標もしくは登録商標です。

発行

2021年9月　3020-3-V22-50

著作権

All Rights Reserved. Copyright (C) 2015, 2021, Hitachi, Ltd.

変更内容

変更内容（3020-3-V22-50）　Hitachi Elastic Application Data Store 05-30

追加・変更内容

変更個所

ノンブロッキングI/O通信制御をサポートしました。

ノンブロッキングI/O通信制御の概要について説明を追加しました。

2.14

統計情報に，ノンブロッキングI/O通信制御の統計情報を追加しました。

7.4.2，11.13，11.13.6，13.1.2(1)(c)，13.1.2(2)(c)

ノンブロッキングI/O通信制御で使用するパラメタを追加しました。

eads.server.nonBlocking.enable

eads.server.nonBlocking.processorThreads

eads.server.nonBlocking.selectorThreads

eads.server.nonBlocking.maxAllocateConnections

eads.statistics.nonBlocking.enable

eads.server.nonBlocking.external.heapsize

7.8，9.1.1，9.1.3，9.1.3(2)(c)，9.1.3(2)(e)，9.1.3(2)(i)，9.2.3，9.2.3(1)(a)，9.2.3(1)(b)，9.2.3(1)(c)，9.2.3(1)(d)，11.14，21.1.1(1)，21.1.1(3)

次のエラーコードを追加しました。

4400

4410

次のエラーコードに説明を追加しました。

2040

3040

18.1.5(5)(c)，20.2

EADSの最小値・最大値の一覧に，次の項目を追加しました。

1EADSサーバ当たりの，EADSクライアントからの接続数（ノンブロッキングI/O通信制御を使用する場合）

21.5

スケールアウト処理・リバランス処理中のスループットを改善しました。

スケールアウト処理・リバランス処理で使用するパラメタを追加しました。

eads.scaling.moveDataWithUpdateRequest.enable

eads.scaling.moveData.interval

eads.scaling.requestQueuing.enable

eads.scaling.eviction.targetKeyCount

7.9，21.1.1(1)，21.1.1(3)

次のコマンド使用時の注意事項を追加しました。

ezstartコマンド

ezserverコマンド

eztool rebalanceコマンド

14.2.1(6)，14.2.2(6)，14.3.24(6)

次のエラーコードを追加しました。

4120

18.1.5(5)(c)，20.2

リソースの見積もりを追加・変更しました。

4.1.1，4.1.1(2)，4.1.2(1)，4.1.2(1)(a)，4.1.2(1)(b)，4.1.2(1)(c)，4.1.2(1)(e)，4.1.3，4.1.3(2)，4.1.3(3)，4.1.3(4)，4.1.4，4.1.4(1)，4.2.1(1)(d)，4.2.2(1)，4.2.2(1)(b)，4.3.1(1)，4.3.2(1)，4.4.1(2)，4.1.2(2)

EADSクライアントのログファイルに依存するパラメタに，次のパラメタを追加しました。

eads.client.logger.maintenance.filesize

eads.client.logger.maintenance.filenum

8.4.1，8.4.3，8.4.4，8.4.4(1)(f)，8.4.4(1)(g)，21.1.2(1)

メモリ・バッファに関連するパラメタに，次のパラメタを追加しました。

eads.java.nio.maxCachedBufferSize

9.1.3，9.1.3(1)(j)，21.1.1(1)

タイムアウトに関連するパラメタのうち，次のパラメタの最大値を60000から3600000に変更しました。

eads.admin.operation.isolate.gracefulstop.waitTimeパラメタ

9.3.3

データ自動削除機能に関する説明を追加・変更・削除しました。

11.1.1(1)，11.15.1(2)，11.15.1(3)，11.15.1(4)，11.15.1(5)，14.3.24(2)，14.3.24(6)

次のメッセージを追加しました。

KDEA07302-E

次のメッセージを変更しました。

KDEA00057-E，KDEA00058-E

次のメッセージを削除しました。

KDEA07301-E

−

単なる誤字・脱字などはお断りなく訂正しました。

はじめに

このマニュアルは，Hitachi Elastic Application Data Storeの設計・構築・運用方法，およびAPの開発方法について説明したものです。

対象読者

Hitachi Elastic Application Data Storeを導入したシステムを設計，構築，運用する方々，およびAPの開発者の方々を対象にしています。

このマニュアルの記述は，次に示す知識があることを前提にしています。

インメモリデータグリッドに関する基本的な知識

Linuxに関する基本的な知識

Java言語またはC言語を使用したプログラム開発に関する基本的な知識（APの開発者の方）

このマニュアルでの表記

このマニュアルでは，製品名およびJava関連用語について次のように表記しています。

表記

製品名またはJava関連用語

EADS

EADSサーバ

Hitachi Elastic Application Data Store

EADSクライアント

EADSクライアント（Java）

Hitachi Elastic Application Data Store Client for Java

EADSクライアント（C）

Hitachi Elastic Application Data Store Client for C

JavaVM

Java Virtual Machine

JDK

Java Developer's Kit

このマニュアルで使用する略語

このマニュアルで使用している英略語の一覧を次に示します。

英字での表記

英略語

Application Program

AP

Application Programming Interface

API

Hard disk drive

HDD

Key-Value store

KVS

Non-Volatile Memory Express

NVMe

Solid state drive

SSD

このマニュアルで使用する記号

コマンドの説明で使用している記号を次に示します。

なお，この記号は説明のために使用している記号のため，コマンド中に記述しないでください。

記号

意味

例

［　］

この記号で囲まれている項目は省略できます。

eztool status ［-v|--verbose］

このコマンドの例の場合，-vまたは--verboseを省略できることを意味しています。

…

この記号の直前の項目を繰り返し指定できます。

eztool status --columns ＜列名＞［,＜列名＞］…

このコマンドの例の場合，＜列名＞を繰り返し指定できることを意味しています。

このマニュアルで使用する構文要素記号

構文要素記号

意味

＜文字列＞

任意の文字列を指定できます。半角文字を使用してください。

KB（キロバイト）などの単位表記について

1KB（キロバイト），1MB（メガバイト），1GB（ギガバイト），1TB（テラバイト）はそれぞれ1,024バイト，1,024²バイト，1,024³バイト，1,024⁴バイトです。

第1編　解説

1　Hitachi Elastic Application Data Storeとは

Hitachi Elastic Application Data Storeは，インメモリデータグリッドを構築するための製品です。この章では，Hitachi Elastic Application Data Storeの概要，および特長について説明します。

1.1　ITシステムの特性に合わせて，大量データを効率的に処理するインメモリデータグリッド

Hitachi Elastic Application Data Store（以降，EADSと表記します）は，インメモリデータグリッドを構築する，データ処理基盤製品です。インメモリデータグリッドとは，複数サーバのメモリ上に大量データを分散配置し，そのデータを効率的に処理するデータ処理基盤のことです。

IT技術の進歩，特にインターネット技術の進歩と，インターネット上に展開されるサービスの拡充によって，社会インフラは急激に変化しています。また，携帯電話やスマートフォンといった高性能のモバイル機器の普及が，社会インフラの変化をさらに加速させています。

このような社会インフラの変化に伴って，ITシステムが取り扱うデータ量が爆発的に増加しています。また，「アクセスのピーク時にも，高速なレスポンスを実現したい」，「アクセス数やデータ量の変動に合わせてサーバを追加したい」というように，ITシステムに対する要件も多様化しています。

そのため，これまでのRDBMS（リレーショナルデータベース管理システム）だけがデータ管理を担うITシステムでは，多様化する要件に応えることが難しくなってきています。

そこで，インメモリデータグリッドなど，従来のRDBMSとは異なる思想に基づくデータ処理基盤ソフトウェアが注目されるようになりました。いわゆるNoSQL（Not Only SQL）と言われる，RDBMSを補完するソフトウェアです。

NoSQLの登場によって，RDBMSだけにすべてのデータ管理を任せるのではなく，RDBMSとそれを補完するソフトウェアを組み合わせることで，多様な要件に応えることができるようになってきました。

EADSは，高スケーラビリティと高信頼性を両立するインメモリデータグリッドを構築することで，RDBMSを補完するデータ処理基盤を提供します。

1.2　EADSの概要

EADSの概要について説明します。

図1‒1　EADSの概要

1.2.1　シンプルなデータ管理，シンプルなインタフェース

EADSでは，インメモリデータグリッドの実装方式の1つとしてインメモリ型分散KVSを採用しています。KVSでは，データ（value）と，データを一意に識別するキー（key）というシンプルな形式でデータを管理します。keyを指定してvalueを取得するというシンプルなインタフェースのため，APの開発も容易です。

1.2.2　メモリ上でデータを管理

EADSでは，メモリ領域でデータを管理します。これによって，ディスクアクセスによる処理のオーバヘッドをなくしています。

1.2.3　複数サーバで構成される大容量のメモリ領域

EADSでは，複数のサーバを1つのグループとして管理します。このグループをクラスタと呼びます。EADSでは，クラスタを構成する個々のサーバのメモリ領域を，1つのメモリ領域として使用します。これによって，個々のサーバのメモリ容量を超える大容量のデータを処理できます。

また，クライアントからは個々のサーバを意識しないでデータにアクセスできます。

1.3　EADSの特長

EADSには，次の特長があります。

高いスケーラビリティとスモールスタートへの対応

データの多重化によるシステムの高可用性と耐障害性の実現

高速データ処理によるレスポンス性能の向上

ユーザのニーズに応じた柔軟なデータ操作の実現

ディスク領域を使用したデータの永続化

それぞれの特長について説明します。

1.3.1　高いスケーラビリティとスモールスタートへの対応

EADSでは，サーバの追加や削除といったシステム構成の変更を容易に行うことができます。また，システム構成の変更時にデータを再配置することで，柔軟なスケールイン・スケールアウトが可能となります。これによって，高いスケーラビリティを実現します。

運用開始後のシステム構成の変更が容易なため，初期費用を抑えることができ（スモールスタート），ビジネス規模の拡大に応じてシステムを拡張することができます。

1.3.2　データの多重化によるシステムの高可用性と耐障害性の実現

EADSでは，複数のサーバに自動的にデータをコピーして，データを多重化できます。そのため，あるサーバに障害が発生しても，他サーバにコピーしたデータを使って処理を継続できます。

また，データを多重化することによって，メモリ上のデータが障害時に消失することを防ぐことができます。

1.3.3　高速データ処理によるレスポンス性能の向上

EADSは，処理するデータをすべてメモリ上に配置します。そのため，ディスクアクセスに掛かるオーバヘッドをなくすことができ，高速にデータを処理できます。

また，keyとvalueというシンプルなデータ構造のため，例えばSQLのような複雑な問い合わせはできませんが，データアクセスに掛かる時間は短縮されます。

これらによって，高速なレスポンス性能を実現しています。

1.3.4　ユーザのニーズに応じた柔軟なデータ操作の実現

EADSでは，基本的なデータ操作のためのAPI以外にも，ユーザのニーズに応じた柔軟なデータ操作を実現するためのAPIを提供しています。EADSが提供するAPIを利用することで，データの集計や分析など，一連のデータ操作（ユーザ処理）を定義したプログラムを，サーバ上で実行できます。

1.3.5　ディスク領域を使用したデータの永続化

EADSでは基本的にメモリ領域でデータを管理しますが，データを永続化するために，メモリ領域とディスク領域を併用したり，ディスク領域だけでデータを管理したりすることもできます。

ただし，ディスク領域を使用する場合は，ディスクアクセスによる処理のオーバヘッドが発生するため，メモリ領域でデータを管理する場合に比べると，レスポンス性能は低下します。

参考

データの格納先としてSSDを使用することもできます。高速かつ低レイテンシなNVMeインタフェースを採用した高性能SSDなどを使用する場合には，高性能SSDの特性を考慮したファイルアクセスができます。

また，従来のフラッシュメモリよりも高速に読み書きができ，かつ電源が失われても書き込んだデータが保持される不揮発性のメモリ，いわゆるストレージクラスメモリもデータの格納先として使用できます。

1.4　EADSの適用ケース

EADSを導入して，効果が期待できるケースと期待できないケースを次に示します。

■EADSを導入すると効果が期待できるケース

大量データの高速処理など，定型業務に向いています。

また，データの多重化によってシステムの高可用性と耐障害性を実現しているため，高い信頼性が要求される基幹系システムにも適用できます。

EADSをライトバッファとして利用する例を「1.4.1　ライトバッファとしての利用」に，リードキャッシュとして利用する例を「1.4.2　リードキャッシュとしての利用」に示します。

■EADSを導入しても効果が期待できないケース

keyとvalueというシンプルな形式でデータを管理するため，SQLのような複雑な問い合わせを必要とする非定型業務には向きません。

1.4.1　ライトバッファとしての利用

EADSは，業務システム内のライトバッファとして利用できます。ライトバッファとは，データ書き込み時のディスクアクセスに掛かるオーバヘッドを回避するために，データを一時的に格納しておくメモリのことです。

予約システムやオンライントレードなど，多種多様な大量データを扱うシステムの更新系APで，EADSをライトバッファとして利用する例を次の図に示します。

図1‒2　ライトバッファとしての利用

クライアントからEADSにアクセスして，予約情報などのデータを更新します。

クライアントが操作するデータをEADSで一時的に蓄積します（ライトバッファ）。

更新されたデータをRDBMSに書き込みます。

データベースにデータを直接書き込むのではなく，EADSをライトバッファとして利用することで，ディスクアクセスに掛かるオーバヘッドをなくすことができ，高速にデータを処理できます。

1.4.2　リードキャッシュとしての利用

EADSは，業務システム内のリードキャッシュとして利用できます。リードキャッシュとは，読み込みを高速化するために，データを一時的に格納しておくメモリのことです。

オンラインショッピングなど，会員情報や購買履歴を表示するような参照系APで，EADSをリードキャッシュとして利用する例を次の図に示します。

図1‒3　リードキャッシュとしての利用

購買履歴など，必要なデータをあらかじめRDBMSからEADSに読み込ませます（リードキャッシュ）。

クライアントはEADSにアクセスしてデータを参照します。

RDBMSから直接データを読み込むのではなく，EADSをリードキャッシュとして利用することで，ディスクアクセスに掛かるオーバヘッドをなくすことができ，高速にデータを処理できます。

1.5　対象ユーザの作業項目とマニュアルの対応

このマニュアルでは，次の対象読者を想定しています。

システム設計者

システム運用管理者

AP開発者

このマニュアルは次の5編から構成されます。

第1編　解説

第2編　設計・構築

第3編　運用

第4編　AP開発

第5編　よく使用する一覧集・メッセージ

対象ユーザの作業項目とマニュアルの対応を次の図に示します。

2　アーキテクチャ

この章では，EADSの構成，およびアーキテクチャについて説明します。

2.1　EADSの構成

EADSを導入したシステムの構成，およびプロセス構成について説明します。

2.1.1　システム構成

システム構成を次の図に示します。

図2‒1　システム構成

(1)　実行環境

分散KVSにアクセスするAPや分散KVS自体を使用するための環境です。

信頼性の高いネットワークでの使用が前提となります。信頼性を高めるため，EADSサーバ間のネットワークは二重化することを推奨します。

(a)　EADSサーバ

keyとvalueで構成されるデータを管理するサーバプロセスです。

EADSサーバを構築するためのプログラムプロダクトを次に示します。

Hitachi Elastic Application Data Store

(b)　クラスタ

通常，システムは複数のEADSサーバで構成されます。複数のEADSサーバの集合を，クラスタといいます。クラスタは，EADSクライアントからは1つの格納先として認識されます。

クラスタは同じセグメント内で同じマルチキャストアドレスおよびポート番号を設定したEADSサーバ群で構成されます。

注意事項

クラスタを構成するEADSサーバ数は，「データの多重度×2−1」以上であることが前提です。

データの多重度については，「2.9　データの多重化」を参照してください。

(c)　EADSクライアント

EADSが提供するクライアントライブラリを使用して，EADSサーバに接続するユーザプログラムです。

EADSクライアントには，APを作成する言語（Java言語またはC言語）によって，次の2種類のプログラムプロダクトがあります。

EADSクライアント（Java）

Hitachi Elastic Application Data Store Client for Java

EADSクライアント（C）

Hitachi Elastic Application Data Store Client for C

注意事項

EADSクライアント・EADSサーバ間の通信で，IPアドレスまたはポート番号の変換を行うシステム構成では使用できません。

2.1.2　プロセス構成

EADSを導入したサーバは次の図に示すプロセスで構成されます。

図2‒2　プロセス構成

(1)　EADSサーバ

keyとvalueで構成されるデータを管理するサーバプロセスです。

(2)　起動シェル

EADSサーバを起動します。

2.2　EADSの通信処理の仕組み

EADSの通信処理の仕組みについて説明します。

2.2.1　通信に使用するプロトコル

EADSクライアント・EADSサーバ間，およびEADSサーバ間の通信に使用するプロトコルを次の図に示します。

図2‒3　通信に使用するプロトコル

(1)　EADSクライアント・EADSサーバ間の通信

EADSクライアント・EADSサーバ間の通信にはTCPプロトコルを使用します。

(2)　EADSサーバ間の通信

EADSサーバ間の通信には，TCPプロトコルおよびUDPプロトコルを使用します。

次に示すEADSサーバ間の通信には，TCPプロトコルを使用します。

データの多重化

生存確認※

復旧処理

スケールアウト処理（EADSサーバの追加）

リバランス処理

また，次に示すEADSサーバ間の通信には，UDPプロトコルを使用します。

ハートビート※

注※

クラスタ内では，ハートビートをマルチキャストで送信しています。

ハートビートとは，EADSサーバが正常に稼働していることを知らせるためにクラスタ内で配信するパケットのことです。

ハートビートを送信しないEADSサーバに対して，ダウンしていないかどうか，クラスタ内の他EADSサーバが確認することを生存確認といいます。

詳細については，「2.10　クラスタ監視」を参照してください。

2.2.2　通信で使用するバッファ

TCPプロトコルを使用するEADSクライアント・EADSサーバ間，およびEADSサーバ間の通信では，次のバッファを使用します。

データの送受信バッファ

合意メッセージの送受信バッファ

扱うデータ量に合わせて，それぞれのバッファサイズを調節することで，通信効率の向上を図ることができます。詳細については，「9.1.2　バッファサイズの設定」を参照してください。

通信で使用するバッファを次の図に示します。

図2‒4　通信で使用するバッファの概要

合意メッセージについては，「2.4.9　データアクセスの流れ」を参照してください。

2.3　keyとvalueを格納する領域

keyとvalueはキャッシュという領域に格納されます。

キャッシュは複数のEADSサーバにわたって作成される，論理的なデータ格納領域です。キャッシュを共有し，1つの論理的なKVSを構成するEADSサーバの集合をクラスタといいます。

図2‒5　キャッシュの概要

キャッシュの作成には，eztool createcacheコマンドを使用します。キャッシュはクラスタ内に最大16個作成できます。

キャッシュの作成方法については，「10.2　EADSサーバを開始する（キャッシュを新規に作成する場合）」または「11.5　キャッシュを追加または削除したい」を参照してください。

2.3.1　キャッシュの種類（キャッシュタイプ）

EADSで作成できるキャッシュの種類（キャッシュタイプ）には，次の3種類があります。運用方法に合わせた種類のキャッシュを作成してください。

表2‒1　キャッシュの種類（キャッシュタイプ）と特徴

項番

キャッシュの種類

データの格納先

特徴

1

メモリキャッシュ

メモリ領域

高速にデータを参照・更新できます。

メモリ上でデータを管理するため，障害発生時にデータが消失するおそれがあります。

2

ディスクキャッシュ

ディスク領域

ファイルを使用することで，データを永続化できます。

データの参照・更新では，ディスクアクセスによるオーバヘッドが発生します。

物理メモリ以上の大容量のデータを格納できます。

データを多重化する場合，多重度以上のEADSサーバに障害が発生しても，データの復旧ができます。

3

2Wayキャッシュ

メモリ領域およびディスク領域

高速にデータを参照できます。

ファイルを使用することで，データを永続化できます。

データの更新では，ディスクアクセスによるオーバヘッドが発生します。

データを多重化する場合，多重度以上のEADSサーバに障害が発生しても，データの復旧ができます。

2.4　データアクセス

キャッシュのデータ操作には次の種類があります。

データの更新操作

put（データの格納）

create（データの新規格納）

update（データの更新）

replace（データの置換）

remove（データの削除）

データの参照操作

get（データの取得）

操作の種類によっては，キャッシュ内のデータを一括で操作することもできます。

キャッシュのデータはAPIおよびコマンドで操作できます。データ操作とAPIおよびコマンドの対応を次の表に示します。

表2‒2　データ操作とAPIおよびコマンドの対応

データ操作

API

コマンド

データの更新操作

put

create

update

replace

remove

eztool putコマンド

eztool removeコマンド

データの更新操作（一括操作）

putAll

removeAll

eztool removeallコマンド

データの参照操作

get

eztool getコマンド

データの参照操作（一括操作）

getAll

該当するコマンドはありません。

注意事項

指定できるデータ型とサイズについて，API・コマンド間に完全な互換性はありません。

データの更新操作の違い

データの更新操作を行うAPI（put，create，update，replace，putAll）およびeztool putコマンドによって，実行できるデータ操作が異なります。APIおよびコマンドで実行できるデータ操作を次の表に示します。

APIまたはコマンド

新規のデータを格納する

既存のデータを更新する

put

put All

eztool putコマンド

○

○

create

○

×

update

×

○

replace

×

○※

（凡例）

○：実行できます。

×：実行できません。

注※

指定した値とvalueが一致している場合だけvalueを置換します。

2.4.1　データの格納（put）

キャッシュにデータを格納します。

valueに任意のkeyを関連づけ，keyとvalueのペアで格納（put）します。指定したkeyがすでにキャッシュに格納されている場合は，無条件にvalueを更新（put）します。

keyにはキャッシュ内でユニークな値を設定します。格納先のキャッシュ名が異なれば，keyが同じデータを格納できます。

キャッシュ1およびキャッシュ2に，同じkeyのデータを格納する例を次の図に示します。

図2‒6　データの格納（put）の概要

2.4.2　データの新規格納（create）

キャッシュに新規のデータを格納します。

新規にkeyを格納する場合だけ，valueに任意のkeyを関連づけ，keyとvalueのペアで格納（create）します。

createは新規のデータの格納だけを行います。そのため，指定したkeyがすでにキャッシュに格納されている場合はエラーとなります。

図2‒7　データの新規格納（create）の概要

2.4.3　データの更新（update）

すでにキャッシュに格納されているデータを更新します。

updateは，指定したkeyがすでにキャッシュに格納されている場合だけ，valueをkeyに関連づけて更新（update）します。そのため，指定したkeyがキャッシュに格納されていない場合はエラーとなります。

図2‒8　データの更新（update）の概要

2.4.4　データの置換（replace）

キャッシュのデータを置換します。

putが無条件にvalueを更新するのに対して，replaceは，指定した値とvalueが一致している場合だけvalueを置換します。

keyが001のvalueをBBBBに置換する例を次の図に示します。

図2‒9　データの置換（replace）の概要

指定した値（AAAA）とvalueが一致したため，valueをBBBBに置換します。

参考

putとreplaceの違い

例えば，格納されているvalueの内容を確認してからvalueを更新したい場合，getでvalueを取得し，APで値を判定してからputを実行すると，getとputの処理の間に，ほかのAPによってvalueが更新されてしまうおそれがあります。replaceを使用すれば，このようなケースを防ぐことができます。

「ABC」を「DEF」に置換する場合を例にして，putとreplaceの違いを次の図に示します。

図2‒10　putとreplaceの違い

2.4.5　データの取得（get）

キャッシュからデータを取得します。

取得したいvalueに関連づけられたkeyを指定して，valueを取得（get）します。

keyが001のvalueを取得する例を次の図に示します。

図2‒11　データの取得（get）の概要

2.4.6　データの削除（remove）

キャッシュからデータを削除します。

削除したいvalueに関連づけられたkeyを指定して，keyとvalueを削除（remove）します。

keyが001のデータを削除する例を次の図に示します。

図2‒12　データの削除（remove）の概要

2.4.7　キャッシュに対する一括操作

キャッシュ内の複数のデータを一括で操作します。一括操作には次の種類があります。

データの一括格納（putAll）

データの一括取得（getAll）

データの一括削除（removeAll）

図2‒13　キャッシュに対する一括操作の概要（putAllの例）

一括操作の対象となるデータは，次の方法で指定できます。

複数のkeyまたはデータを一括で指定する

keyが属しているグループ名を指定する

データの格納先のEADSサーバを指定する

グループ名（keyのグルーピング）については，「2.6　特定のEADSサーバへのデータ配置（keyのグルーピング）」を参照してください。

2.4.8　EADSサーバの位置を意識しないデータアクセス

EADSでは，コンシステント・ハッシングというアルゴリズムを利用して，クラスタ内のEADSサーバにデータを分散配置します。

分散配置されているデータにアクセスする際，EADSクライアントは，EADSクライアントが保持している接続先の情報（クラスタ構成情報）を基にデータの格納先EADSサーバを特定します。このため，AP作成時にデータが格納されているEADSサーバの物理位置を意識する必要はありません。

図2‒14　図 EADSサーバに対するアクセスの概要

なお，データが多重化されている場合は，データの格納先EADSサーバにアクセスします。データの多重化については，「2.9　データの多重化」を参照してください。

クラスタ構成情報については，「2.10.1　ハートビートの送信によるクラスタ監視の概要」を参照してください。

データの分散配置の概要については，「2.5　コンシステント・ハッシングによるデータの分散配置」を参照してください。

2.4.9　データアクセスの流れ

データアクセスの流れについて説明します。

(1)　データの更新操作

EADSクライアントは，EADSクライアントが保持しているクラスタ構成情報を基にデータの格納先EADSサーバを特定し，データを更新します。

多重度を3に設定している場合のput処理を例に，データアクセスの流れを次の図に示します。

図2‒15　データアクセスの流れ

EADSクライアントがput処理のリクエストを送信します。

EADSサーバ1がリクエストを受信すると，データのコピー先EADSサーバに対して合意メッセージを送信し，put処理を実行してよいか合意を取ります。

EADSサーバ1は，各EADSサーバから合意メッセージを受信し，多重度と同数の合意が得られると処理を行います。これによって，データを多重化する際の，データの整合性を確保します。この例の場合，多重度が3なので，put処理を実行するためには3つのEADSサーバの合意が必要です。

なお，一定時間内（デフォルトは0.8秒）に合意処理が完了しない場合はタイムアウトして，再度，合意処理を行います。

自EADSサーバを含む3つの合意を得ると，データの格納および多重化を行います。この例の場合，多重度が3なので，EADSサーバ2，およびEADSサーバ3にデータがコピーされます。なお，各EADSサーバ内の処理は非同期に行われます。

リクエストを受信したEADSサーバ1にデータが格納されると，EADSクライアントに処理結果が返されます。

次に，データの格納や多重化に失敗した場合について説明します。

データの格納や多重化に失敗した場合は，次の要因が考えられます。

接続先EADSサーバやネットワークに障害が発生している。

keyとvalueのうち，value部分を格納する領域が不足している。※

1EADSサーバに格納できるデータ数を超えている。※

注※

データ総量監視機能を有効にすると，データの格納先の空き容量が不足することが予想される場合に，その処理をエラーとすることで，EADSサーバが縮退することを防ぐことができます。このため，データ総量監視機能は有効にすることを推奨します。

(a)　データの格納に失敗した場合

多重度を3に設定している場合のput処理を例に，データの格納に失敗した場合の動作について説明します。

この例の場合，EADSサーバ1へのデータの格納に失敗し，EADSクライアントにエラーが返却されます。

データの多重化は実行されます。

データの格納に失敗したEADSサーバは縮退状態※に遷移しますが，クラスタは継続します。この状態では，データの多重度が下がったままです。データの多重度を元に戻すには，縮退状態に遷移したEADSサーバの問題を取り除いてから，復旧を行います。

注※

縮退状態とは，EADSクライアントからのリクエストが受け付けられない状態です。

(b)　データの格納は成功したが，データの多重化に失敗した場合

多重度を3に設定している場合のput処理を例に，データの格納は成功したが，データの多重化に失敗した場合の動作について説明します。

この例の場合，put処理を実行するためには，3つのEADSサーバの合意が必要です。しかし，データのコピー先であるEADSサーバ3からの応答がないため，別のEADSサーバ（EADSサーバ4）の合意を得て，put処理を実行します。ただし，EADSサーバ4は，データの多重化は実行しません。

データの多重化に失敗したEADSサーバは縮退状態に遷移しますが，クラスタは継続します。この状態では，データの多重度が下がったままです。データの多重度を元に戻すには，縮退状態に遷移したEADSサーバの問題を取り除いてから，復旧を行います。

(2)　データの参照操作

EADSクライアントは，EADSクライアントが保持しているクラスタ構成情報を基にデータの格納先EADSサーバを特定し，データを参照します。

データの格納先EADSサーバがダウンしている場合，データが多重化されていれば，データのコピー先EADSサーバにアクセスしてデータを参照します。

2.4.10　データアクセス時の排他制御

複数のEADSクライアントやコマンドによって同一データが同時に操作され，データに矛盾が発生することを防ぐため，EADSサーバではデータの更新処理中に，レンジ単位に排他制御を行います。

レンジとは，あるキャッシュのデータを，EADSサーバの位置によって区切った，データの格納範囲のことです。詳細については，「2.5.1　データの分散配置の概要」を参照してください。

同一レンジのデータに対する複数アクセス時の同時実行可否を次の表に示します。

表2‒3　同一レンジのデータに対する複数アクセスの同時実行可否

実行中の処理

同時に実行する処理

データの更新操作※1

データの参照操作※2

データの更新操作※1

×

○

データの参照操作※2

○

○

（凡例）

○：同時に実行できます。実行中の処理の完了を待たないで，処理を実行します。

×：同時に実行できません。実行中の処理が完了してから，処理を実行します。

注※1

データの更新操作とは，次のAPIまたはコマンドのことです。

API（put，putAll，create，update，replace，remove，removeAll）

eztool putコマンド

eztool removeコマンド

eztool removeallコマンド

APIには，ユーザファンクション内で実行されるAPIを含みます。

注※2

データの参照操作とは，次のAPIまたはコマンドのことです。

API（get，getAll）

Groupインタフェースの，次に示すIterator系メソッド

・keyIterator()

・descendingKeyIterator()

・higherKeyIterator()

・lowerDescendingKeyIterator()

eztool getコマンド

APIには，ユーザファンクション内で実行されるAPIを含みます。

put処理を例に排他範囲を次の図に示します。

図2‒16　排他範囲

2.4.11　データ自動削除機能

データ自動削除機能は，指定したしきい値を超えるデータがレンジに登録されないように，指定されたポリシーに従って優先度の低いデータを自動で削除する機能です。

例えば，EADSをリードキャッシュとして適用する運用などで，EADSクライアントから使用しなくなったデータを削除することなく，新しいデータを登録できます。

データ総量監視機能が有効な場合に，データ自動削除機能を使用できます。

また，メモリキャッシュまたはディスクキャッシュの場合に，データ自動削除機能を使用できます。2Wayキャッシュの場合には使用できません。

2.5　コンシステント・ハッシングによるデータの分散配置

EADSでは，コンシステント・ハッシングというアルゴリズムを利用して，クラスタ内のEADSサーバにデータを分散配置します。

2.5.1　データの分散配置の概要

データの分散配置の概要について説明します。

図2‒17　コンシステント・ハッシングによるデータの分散配置

コンシステント・ハッシングでは，サーバやkeyが同一の円周上に配置されるものとして考えます。この円周上には，連番の整数が反時計回りに昇順で割り振られています。

この図の場合，まず，EADSサーバ（1〜5），および格納するデータのkeyのハッシュ値を求めます。そのハッシュ値に従ってそれぞれを円周上に配置します。

各データのkeyは，配置された地点から時計回りで最初に見つかるEADSサーバに保存されます。

また，あるキャッシュのコンシステント・ハッシングの円周上を，EADSサーバの位置によって区切ったハッシュ値の範囲をレンジといいます。レンジはレンジIDで管理されます。この図の場合，レンジ4に配置されたkeyは，EADSサーバ4に格納されます。

なお，この円はEADSサーバの物理配置とは関係ありません。

2.5.2　データの分散配置の詳細

データの分散配置の詳細について説明します。

コンシステント・ハッシングでは，サーバやkeyが円周上に配置されるものとして考えますが，便宜上，ここでは次の図のように線で表して説明します。

2.5.3　EADSサーバの追加とデータの再配置（スケールアウトとリバランス）

EADSでは，クラスタを停止させないで，新しいEADSサーバを追加し，クラスタ内のデータを再配置できます。

クラスタを停止させないで，新しいEADSサーバをクラスタに追加する処理を，スケールアウト処理といいます。追加するEADS サーバは，コンシステント・ハッシングの円周上の任意の位置に追加できます。

スケールアウト処理を実行してEADSサーバを追加すると，新しいEADSサーバを追加したレンジが分割されます。そのため，各レンジの大きさ（各レンジに格納できるkeyの数）に偏りが生じるおそれがあります。このような場合に，EADSサーバの位置を変更して，各レンジに格納できるkeyの数を均等にすることで，クラスタ内のデータを配置し直すことができます。

クラスタを停止させないで，クラスタ内のデータを再配置する処理を，リバランス処理といいます。

各EADSサーバの容量を均等に近づけるために，スケールアウト処理と併せてリバランス処理を実行することを推奨します。

(1)　EADSサーバの追加（スケールアウト）

スケールアウト処理では，クラスタを停止させないで，EADSサーバを追加できます。

スケールアウト処理を実行すると，新しいEADSサーバを追加したレンジが分割されます。追加されたEADSサーバの位置（ハッシュ値）よりも大きな値の範囲が，新しいレンジとなります。また，分割前のレンジを管理していたEADSサーバから，追加されたレンジの範囲のデータが，追加されたEADSサーバに転送されます。

新しいEADSサーバをクラスタに追加することで，クラスタ全体の物理的なメモリの総容量を増加させたり，クラスタ全体の処理性能を向上させたりすることができます。また，レンジを分割することで，分割前のレンジを管理していたEADSサーバのメモリ使用量を低減したり，負荷を軽減したりすることができます。

クラスタに新しいEADSサーバを1台追加したときの概要を次の図に示します。

図2‒18　スケールアウト処理（EADSサーバの追加）の概要

なお，スケールアウト処理を実行すると，各レンジに格納できるkeyの数が均等に配分されなくなるおそれがあります。スケールアウト処理後は，リバランス処理を実行して，各レンジに格納できるkeyの数を均等に配分し直すことを推奨します。

(2)　クラスタ内のデータの再配置（リバランス）

リバランス処理では，クラスタを停止させないで，クラスタ内のEADSサーバの位置を変更します。EADSサーバの位置を変更することで，クラスタ内のデータを配置し直します。

リバランス処理をすることによって，各EADSサーバが保持するデータの容量やデータの数，および各レンジに格納できるkeyの数を均等に近づけることができます。

リバランス処理は，スケールアウト処理後など，各レンジに格納できるkeyの数が均等に配分されていない場合に実行します。

リバランス処理の概要を次の図に示します。

図2‒19　リバランス処理（クラスタ内のデータの再配置）の概要

リバランス処理を実行するには，任意のEADSサーバ上でeztool rebalanceコマンドを実行します。

リバランス処理を実行すると，まず起点となるEADSサーバが1つ決められます。その後，そのEADSサーバを起点に，ほかのEADSサーバをコンシステント・ハッシングの円周上に均等に配置し直します（各レンジに格納できるkeyの数が均等になるようにEADSサーバの位置を変更します）。

各レンジの大きさ（各レンジに格納できるkeyの数）は，各EADSサーバが管理するレンジを分割および結合して均等にされます。EADSサーバが新しく管理するレンジのデータは，元々そのレンジを管理していたEADSサーバ（分割前のレンジを管理していたEADSサーバ）から転送されます。

リバランス処理の流れを次の図に示します。なお，コンシステント・ハッシングでは，EADSサーバやkeyが円周上に配置されるものとして考えますが，便宜上，ここでは次の図のように線で表して説明します。

図2‒20　リバランス処理の流れ

参考

EADSサーバの位置の変更処理

EADSサーバの位置の変更処理を実行することで，各レンジの大きさ（各レンジに格納できるkeyの数）を均等にします。

EADSサーバの位置の変更が大きい場合，1回で位置を変更しないで，複数回に分けて位置を変更します。

各EADSサーバは，コンシステント・ハッシングの円周上をハッシュ値が小さくなる方に移動します。

1回の処理では，1つのEADSサーバの位置が変更されます。EADSサーバの位置の変更処理は，複数のEADSサーバに対して同時に実行されません。

レンジの分割および結合処理

位置を変更するEADSサーバが管理しているレンジに隣接するレンジが分割されます。分割されたレンジは，位置を変更するEADSサーバが管理しているレンジに結合されます。

ポイント

スケールアウト処理で増えたクラスタのメモリ容量を効果的に使用するため，リバランス処理が完了してからクラスタに格納するデータ量を増やすことを推奨します。

2.6　特定のEADSサーバへのデータ配置（keyのグルーピング）

EADSでは，関連するデータを同じEADSサーバに配置するために，あらかじめ，複数のkeyを1つのグループとしてグルーピングしておくことができます。これをkeyのグルーピングといいます。

keyをグルーピングしない場合，データはクラスタ上のEADSサーバに分散配置されます。そのため，データの集計などでデータを操作する際には，クラスタ上に分散配置されたデータにアクセスする必要があります。このとき，各EADSサーバからデータを取得するために，毎回通信を行うことになります。

このように，処理対象のkeyが決まっているときは，そのkeyをグルーピングすることで，関連するデータを同じEADSサーバに配置できます。これによって，ユーザファンクションでグループ単位の処理を実行できるようになり，データ処理の効率化を図ることができます。

ユーザファンクションについては，「2.7　ユーザファンクションによる効率的なデータ処理」を参照してください。

図2‒21　特定のEADSサーバへのデータ配置（keyのグルーピング）

2.6.1　keyのグルーピング

keyにグループ名を指定することで，keyをグルーピングできます。ここでは，グループ名と要素名，およびグループの階層化について説明します。

(1)　グループ名と要素名

keyにグループ名を指定することで，keyをグルーピングできます。

keyは「グループ名:要素名」の形式で定義します。グループ名と要素名はコロン（:）で区切ります。

keyをグルーピングする場合の，keyの構成を次の図に示します。

図2‒22　keyの構成

グループ名

特定のkeyをまとめるグループの名称です。

要素名

valueを一意に識別するための名称です。

グルーピングしない場合，これがkeyになります。

(2)　グループ名と要素名の定義

keyは，キャッシュ内ではユニークにする必要があります。そのため，グループ名と要素名の組み合わせが同じkeyは同じキャッシュ内には定義できません。

次の図に示すように，格納先のキャッシュが異なれば，グループ名と要素名の組み合わせが同じでも，keyとして定義できます。

(3)　グループの階層化

「Group1:Group2:Group3:ElementA」のように，複数のグループの名称を定義することで，グループを階層化できます。このとき，1つ1つのグループの名称をグループ階層名といいます。

グループを階層化することで，例えば，「Group1のデータのうち，Group2に属するデータの集計」といった，特定の階層に絞り込んだデータ操作もできます。

グループを階層化している場合，最上位階層のグループ階層名から，任意の階層のグループ階層名までをまとめたものがグループ名になります。例えば，「Group1:Group2:Group3:ElementA」の場合，グループ階層名は「Group1」，「Group2」および「Group3」，グループ名は「Group1」，「Group1:Group2」および「Group1:Group2:Group3」となります。

2.6.2　keyをグルーピングした場合のデータの分散配置

グループ名が定義されたデータでは，グループ名のハッシュ値から格納先のEADSサーバが決まります。

グループが階層化されている場合は，先頭のグループ階層名のハッシュ値から格納先のEADSサーバが決まります。先頭のグループ階層名が同じデータは同じハッシュ値になるため，格納先のEADSサーバが同じになります。

例えば，次に示すkeyのデータは，同じEADSサーバに格納されます。

「Group1:Group2:ElementA」

「Group1:Group3:ElementB」

「Group1:ElementC」

データの分散配置の概要については，「2.5　コンシステント・ハッシングによるデータの分散配置」を参照してください。

ポイント

格納先のEADSサーバのEADSサーバIDを指定して，keyをグルーピングすることもできます。このようなグループを，EADSサーバID指定グループといいます。EADSサーバID指定グループを使用してkeyをグルーピングする場合は，keyの先頭（最上位階層のグループ階層名の先頭）に，EADSサーバIDを，左角括弧（[）および右角括弧（]）で囲んで指定します。

例えば，次に示すkeyのデータは，グループ「[1]Group1」に属し，EADSサーバIDが1のEADSサーバに格納されます（「Group1」などのEADSサーバIDのあとに続く文字列は考慮されないで，指定したEADSサーバIDだけで格納先のEADSサーバが決定されます）。

「[1]Group1:Group2:ElementA」

「[1]Group1:Group3:ElementB」

「[1]Group1:ElementC」

2.7　ユーザファンクションによる効率的なデータ処理

ユーザファンクションとは，データの集計や分析など，キャッシュ内の特定のデータに対して実行する一連のデータ操作（ユーザ処理）を定義したプログラムです。

ユーザが作成して，あらかじめEADSサーバ上に配置しておき，EADSクライアントから呼び出すことで実行できます。

ユーザファンクションは，ユーザファンクションが実行されたEADSサーバに格納されているデータにだけアクセスして処理を実行します。そのため，EADSクライアントを使用して処理するよりも，通信のオーバヘッドが減り，効率的にデータを処理できます。

ユーザファンクションは，Java言語で作成します。

2.7.1　ユーザファンクションの仕組み

ユーザファンクションには次の2種類の実行方法があります。

keyまたはグループ指定による実行方法

EADSサーバ指定による実行方法

図2‒23　ユーザファンクションの仕組み

ユーザファンクションを使用する場合は，ユーザファンクションを作成し，クラスタ内のすべてのEADSサーバに配置します。

それぞれのユーザファンクションの仕組みについて説明します。

(1)　keyまたはグループ指定による実行方法

EADSクライアントからkeyまたはグループ名，ユーザファンクション名を指定して，ユーザファンクションを呼び出します。指定されたkeyまたはグループ名のハッシュ値から，アクセスするEADSサーバを決定します。

(2)　EADSサーバ指定による実行方法

EADSクライアントからEADSサーバ，ユーザファンクション名を指定して，ユーザファンクションを呼び出します。指定されたEADSサーバのアドレス情報（IPアドレスとポート番号）を取得し，アクセスするEADSサーバを決定します。

2.8　イベントリスナによるイベントの発生を契機にしたデータ処理

イベントリスナとは，EADSサーバ上でのイベントの発生（クラスタ構成情報の更新）を契機に，ユーザが定義した処理を，EADSクライアント上で実行させるプログラムです。

イベントリスナは，ユーザが作成します。作成したイベントリスナを，あらかじめEADSクライアント上に配置しておきます。EADSサーバの追加などのイベントが発生すると，EADSサーバからEADSクライアントに対してクラスタ構成情報の更新が通知されて，EADSクライアント上でイベントリスナが実行されます。

イベントリスナを利用することで，クラスタ構成情報の更新と同期したユーザ処理が実行しやすくなります。

イベントリスナは，Java言語またはC言語で作成します。

2.8.1　イベントリスナの仕組み

イベントリスナには，次の2種類があります。

クラスタイベントリスナ

EADSサーバがクラスタに追加された場合に実行させるイベントリスナです。

ノードイベントリスナ

EADSサーバの縮退や復旧など，クラスタを構成するEADSサーバの状態が変わった場合に実行させるイベントリスナです。

ノードイベントリスナの実行の契機は，ノードイベントリスナを追加するときに指定できます。

イベントリスナの仕組みを次の図に示します。

図2‒24　イベントリスナの仕組み

クラスタイベントリスナを使用する場合，EADSサーバがクラスタに追加されると，各EADSサーバからEADSクライアントに対してクラスタ構成情報の更新が通知されます。EADSクライアントは，EADSサーバからの通知を受けて，クラスタイベントリスナを実行します。

ノードイベントリスナを使用する場合，EADSサーバの縮退や復旧など，EADSサーバの状態が変わると，各EADSサーバからEADSクライアントに対してクラスタ構成情報の更新が通知されます。EADSクライアントは，EADSサーバからの通知を受けて，ノードイベントリスナを実行します。

参考

EADSサーバとEADSクライアントで通信するため，イベントリスナ用のコネクションが1つ用意されます。このコネクションをクラスタイベントリスナ，およびノードイベントリスナで共用します。

クラスタ内のEADSサーバのうち，通信できるすべてのEADSサーバからクラスタ構成情報の変更が通知されます。なお，複数のEADSサーバから同じクラスタ構成情報の変更が通知されても，ノードイベントリスナが実行されるのは1回だけです。

イベントリスナを使用する例を次に示します。

クラスタに1つ，クラスタイベントリスナを作成する。

ノードイベントリスナを実行したいEADSサーバごとに，ノードイベントリスナを作成する。

作成したイベントリスナは，APIを使用してEADSクライアント上に配置します。

図2‒25　イベントリスナの配置の例

ポイント

イベントリスナは次のように動作させることを推奨します。

クラスタイベントリスナ，およびノードイベントリスナの両方を使用する。

クラスタイベントリスナでは，EADSサーバの追加が通知されたら，追加されたEADSサーバ用のノードイベントリスナを生成する。

ノードイベントリスナでは，ノードイベントリスナの実行の契機となるすべてのイベントを処理する。

2.9　データの多重化

EADSでは，複数のEADSサーバに自動的にデータをコピーして，データを多重化できます。そのため，あるEADSサーバに障害が発生しても，他EADSサーバにコピーしたデータを使って処理を継続できます。また，データを多重化することによって，メモリ上のデータが障害時に消失することを防ぐことができます。

2.9.1　データの多重化の概要

データの多重化の概要について説明します。

図2‒26　データの多重化の概要

EADSでは，指定された多重度に従って，時計回りの方向にある複数のEADSサーバにデータをコピーします。

この図のように，多重度が3で，データの格納先がEADSサーバ1の場合，まずEADSサーバ1にデータが格納されます。それから，EADSサーバ1から時計回りの方向にあるEADSサーバ2およびEADSサーバ3に，データが複製としてコピーされます。

2.9.2　データの多重化による，障害時の処理の継続

データを多重化している場合，EADSクライアントは，データの格納先EADSサーバにアクセスします。データのコピー先EADSサーバにはアクセスしません。

障害などが発生し，データの格納先EADSサーバにアクセスできない場合，EADSクライアントでは，アクセス先を自動的にデータのコピー先EADSサーバに切り替えて処理を継続します。

EADSサーバ1をデータの格納先EADSサーバとした場合のデータアクセスと，障害発生時のアクセス先の切り替えを次の図に示します。

図2‒27　データを多重化している場合のデータアクセスと障害発生時のアクセス先の切り替え

注意事項

クラスタを構成するEADSサーバ数は，「データの多重度×2−1」以上であることが前提です。

障害発生時にデータの多重度未満の数のEADSサーバがダウンしても，データの整合性は確保されます。

例えば，データの多重度が3，EADSサーバ数が5つの場合，2つのEADSサーバがダウンしても，データが欠落することはありません。

2.10　クラスタ監視

クラスタ内のEADSサーバは，互いにハートビート（クラスタ内で配信するパケット）を送信し合い，正常に稼働していることをクラスタ内に知らせています。ハートビートを送信しないEADSサーバに対しては，クラスタ内のEADSサーバが，そのEADSサーバに対して生存確認を行います。これをクラスタ監視といいます。

クラスタ監視では，ハートビートの間隔などをユーザが指定することで，障害を検知するスピードをチューニングできます。

2.10.1　ハートビートの送信によるクラスタ監視の概要

クラスタ内のEADSサーバは，互いにハートビートをあらかじめ設定した間隔（デフォルトは0.4秒）で送信し合います。

クラスタ内のEADSサーバは，各自で管理するクラスタ構成情報と，マルチキャストで送信されたハートビートを照らし合わせて，クラスタの状態を確認します。

クラスタ構成情報とは，クラスタ内のEADSサーバの死活状態に関する情報のことです。

図2‒28　クラスタ監視の概要

2.10.2　一定数の同意によって確定するEADSサーバダウン

あらかじめ設定したタイムアウト時間（デフォルトは2秒）が経過してもハートビートを送信しないEADSサーバがある場合，クラスタ内のEADSサーバはそのEADSサーバに対して生存確認を行います。生存確認がタイムアウトすると，一定数（デフォルトは1）の同意によってEADSサーバダウンを判定します。ダウンが確定すると，そのEADSサーバはクラスタから削除されます。

EADSサーバ間のハートビートの送信によって常時クラスタを監視しているため，早期にEADSサーバダウンを検知できます。

EADSサーバダウンを検知するまでの流れを，次の図に示します。

図2‒29　EADSサーバダウンを検知するまでの流れ

EADSサーバ3からハートビートが送信されない場合，クラスタ内のEADSサーバはEADSサーバ3に対して生存確認を行います。

EADSサーバ3からハートビートが送信されないまま，生存確認がタイムアウトすると，クラスタ内のEADSサーバは，「EADSサーバ3が危険状態である」という情報を付与してハートビートを送信し合います。

一定数（デフォルトは1）のEADSサーバがEADSサーバ3の状態が危険であることに同意すると，EADSサーバ3のダウンが確定します。

クラスタ内のEADSサーバに対して，EADSサーバ3をクラスタから削除してよいか合意を取ります。クラスタ内で過半数の合意を得たら，EADSサーバ3はクラスタから削除されます。

削除されたEADSサーバは強制的に縮退状態となります。縮退状態とは，EADSクライアントからのリクエストを受け付けない状態のことです。

注意事項

障害発生時にデータの多重度未満の数のEADSサーバがダウンしても，クラスタを継続できます。

例えば，データの多重度が3，EADSサーバ数が5つの場合，2つのEADSサーバがダウンしても，クラスタを継続して監視できます。

2.11　EADSクライアントによるクラスタ構成情報の更新確認

キャッシュのデータにアクセスする際，EADSクライアントは，EADSクライアントが保持しているクラスタ構成情報を基にデータの格納先EADSサーバを特定します。このため，EADSクライアントからデータにアクセスする際に，データの格納先のEADSサーバを意識する必要はありません。

EADSクライアントの初期設定完了からEADSクライアントの終了までの間，EADSクライアントは，一定の間隔（デフォルトは1秒）でクラスタ内の1つ1つのEADSサーバからクラスタ構成情報を取得します。これによって，EADSクライアントが古いクラスタ構成情報を保持したままになることを防止します。

なお，EADSサーバからクラスタ構成情報を取得する際には，EADSクライアントが保持しているクラスタ構成情報を基に，EADSサーバの論理的な位置（ハッシュ値）の昇順にアクセスします。

図2‒30　クラスタ構成情報の更新確認の概要

タイムアウト時間を超えても応答がない場合はエラーとなります。エラーとなった場合でも，EADSクライアントは全EADSサーバに対してクラスタ構成情報の更新確認を続けます。

2.12　クラスタおよびEADSサーバの状態遷移

クラスタやEADSサーバの状態によって，実行できる運用（APIやコマンド）が異なります。

そのため，次の点に注意してください。

AP開発者はクラスタやEADSサーバの状態を意識して，APを設計する必要があります。

システム運用管理者は，クラスタおよびEADSサーバの状態を確認してからコマンドを実行する必要があります。クラスタおよびEADSサーバの状態は，eztool statusコマンドで確認できます。

2.12.1　クラスタの状態遷移

クラスタの状態遷移を次の図に示します。

図2‒31　クラスタの状態遷移

図中の各状態の説明を，次の表に示します。

表2‒4　クラスタの状態

クラスタの状態

説明

状態名

eztool statusコマンドでの表示内容

クラスタ稼働中

AVAILABLE

クラスタが正常に稼働している状態です。

クラスタ一部稼働中

PARTIALLY_AVAILABLE

クラスタの一部が稼働している状態です。

keyによっては，アクセスできない場合があります。

クラスタを構成するEADSサーバ数が「データの多重度×2−1」以上の場合，多重度以上の数のEADSサーバがダウンすると，この状態に遷移する可能性があります。

この状態に一度遷移すると，全EADSサーバを停止しないかぎり，クラスタ稼働中（AVAILABLE）の状態には遷移できません。

クラスタ動作不能

NOT_AVAILABLE

クラスタが稼働していない状態です。

次のどちらかの場合，この状態に遷移します。

スプリットブレインが発生した場合

クラスタ内の半数以上のEADSサーバが同時にダウンした場合

スプリットブレインから回復した場合は，クラスタ稼働中（AVAILABLE）の状態またはクラスタ一部稼働中（PARTIALLY_AVAILABLE）の状態に遷移できます。

2.12.2　EADSサーバのクラスタへの参加状況

EADSサーバのクラスタへの参加状況の遷移を次の図に示します。

図2‒32　クラスタへの参加状況の遷移

図中の各状態の説明を，次の表に示します。

表2‒5　EADSサーバのクラスタへの参加状況

クラスタへの参加状況

説明

参加状況

eztool statusコマンドでの表示内容

クラスタ参加

online

EADSサーバが，稼働中のクラスタに参加しています。

クラスタ不参加

offline

EADSサーバが，稼働中のクラスタに参加していません。

通信障害などによって，クラスタから削除されたEADSサーバはこの状況になります。

この状況のEADSサーバは，データアクセスおよびコマンドの実行対象にならない場合があります。

この状況になっているEADSサーバの状態を確認し，復旧させることで，EADSサーバがクラスタに参加します。

クラスタ参加予定

standby

EADSサーバが，稼働中のクラスタに一度も参加していません。

クラスタ定義に定義したEADSサーバを開始していない場合に，この状況になります。

この状況になっているEADSサーバを開始すると，EADSサーバがクラスタに参加します。

2.12.3　EADSサーバの状態遷移

EADSサーバの状態遷移を次の図に示します。

図2‒33　EADSサーバの状態遷移（通常開始の場合）

図2‒34　EADSサーバの状態遷移（復旧処理の場合）

注※

復旧に成功すると，復旧開始時のクラスタ内の，すでに起動しているほかのEADSサーバの状態と同じ状態に遷移します。

例えば，復旧開始時に，すでに起動しているほかのEADSサーバの状態がrunningであれば，復旧後のEADSサーバの状態もrunningになります。

図2‒35　EADSサーバの状態遷移（スケールアウト処理（EADSサーバの追加）の場合）

注※

EADSサーバの追加に成功すると，EADSサーバの追加開始時のクラスタ内の，すでに起動しているほかのEADSサーバの状態と同じ状態に遷移します。

例えば，EADSサーバの追加開始時に，すでに起動しているほかのEADSサーバの状態がrunningであれば，追加したEADSサーバの状態もrunningになります。

図中の各状態の説明を，次の表に示します。

表2‒6　EADSサーバの状態

EADSサーバの状態

説明

状態名

eztool statusコマンドでの表示内容

初期化中

initializing

EADSサーバを初期化中の状態です。

ezstart -rコマンドなどによるEADSサーバの復旧中や，ezstart -aiコマンドなどによるEADSサーバの追加中にも表示されます。

復旧中

追加中

初期化状態

initialized

EADSサーバの初期化が完了した状態です。閉塞状態と同じく，EADSクライアントからのリクエストは受け付けられない状態です。

稼働状態

running

EADSクライアントからのリクエストが受け付けられる状態です。

閉塞中

closing

EADSクライアントからのリクエストは受け付けられませんが，まだ動作中のスレッドが残っている状態です。

閉塞状態

closed

EADSクライアントからのリクエストが受け付けられない状態です。

縮退状態

isolated

閉塞状態と同じく，EADSクライアントからのリクエストが受け付けられない状態です。

通信障害などによって，クラスタから削除されたEADSサーバは，強制的に縮退状態となります。

縮退状態になったEADSサーバは，eztool isolate --stopコマンドを実行して，個別に終了してください。

停止中

stopping

EADSサーバを停止処理中の状態です。

停止状態

-----------

EADSサーバを停止した状態です。

2.13　スレッドプールおよびコネクションプールを使用したスループットの向上

EADSクライアント・EADSサーバ間では，スレッドプールおよびコネクションプールを使用します。

あらかじめスレッドやコネクションをプールしておくことで，リクエスト集中時のEADSサーバ全体のレスポンス速度の低下を防ぐことができます。

EADSを使用するシステムの要件に応じて，スレッドプールおよびコネクションプールをチューニングしてください。

図2‒36　スレッドプールおよびコネクションプールの概要

2.13.1　スレッドプール

EADSサーバでは，EADSクライアントからのリクエストを処理するためのスレッドをあらかじめ生成してプールしておきます。これをスレッドプールと呼びます。

スレッドプールには，EADSサーバ起動時に最大同時接続数と同数のスレッドがプールされます。

EADSサーバでは，リクエストを受け付けるとスレッドプールからスレッドが割り当てられ，リクエストが処理されます。

スレッドプールに空いているスレッドがない場合，エラーとなって通信が切断されます。最大同時実行スレッド数を超えるリクエストを受け付けた場合は，処理待ちになります。

リクエストの処理が完了すると，スレッドは次のリクエストを待ちます。

スレッドプールを使用することで，何度もスレッドを生成・削除する必要がなくなるため，スレッド生成・削除に掛かるオーバヘッドを軽減できます。

2.13.2　コネクションプール

EADSクライアントでは，一度確立されたコネクションを接続先ごとにプールして再利用します。これをコネクションプールと呼びます。

通信開始時，EADSクライアントは接続先のコネクションがすでに存在するかどうか確認します。コネクションがプールされている場合は，そのコネクションを使用して通信を開始します。

通信が終了すると，使用していたコネクションはコネクションプールに戻されます。

リクエストが集中してコネクションプールのコネクションがすべて使用されている場合，プールできるコネクションの最大個数分まで，新しくコネクションを確立します。

すでにプールできるコネクションの最大個数に達している場合は，コネクションがプールに戻されるまで処理待ちとなります。なお，処理待ちにしないでエラーにすることもできます。

コネクションプールを使用することで，何度もコネクションを確立する必要がなくなるため，通信時のオーバヘッドを軽減できます。

2.14　ノンブロッキングI/O通信制御

ノンブロッキングI/O通信制御は，今までの通信制御（ブロッキングI/O通信制御）と比べて，次に示すとおり接続数を拡張する機能です。

最大同時接続数を1,024から32,768に拡張できる

そのため，最大同時接続数を増やしたい場合に，ノンブロッキングI/O通信制御を使用することを検討してください。

ただし，ノンブロッキングI/O通信制御を使用することでリクエスト処理に関する処理数が増加します。そのため，最大同時接続数が1,024以下の場合にノンブロッキングI/O通信制御を使用すると，処理速度が低下するおそれがあります。

最大同時接続数を1,025以上に拡張する必要がある場合に，ノンブロッキングI/O通信制御を使用してください。

第2編　設計・構築

3　システム設計・構築の流れ

この章では，EADSを導入したシステムの設計・構築の流れについて説明します。

3.1　システム設計・構築の流れ

システム設計・構築の流れを次の図に示します。

3.1.1　必要なリソースを確認する

システムを構築する前に，想定されるシステムのリソース量を見積もり，それを処理するのに十分なマシン台数やEADSサーバ数を決定します。

なお，クラスタを構成するEADSサーバ数は，「データの多重度×2−1」以上であることが前提です。

「4.　必要なリソースを確認する」を参照してください。

3.1.2　インストールおよびセットアップを行う

前提となるプログラムプロダクトをインストールし，EADSサーバおよびEADSクライアントをセットアップします。また，準備した実行環境で実運用に近い負荷を掛けてテストを行います。

「5.　インストールおよびセットアップを行う（EADSサーバ）」または「6.　インストールおよびセットアップを行う（EADSクライアント）」を参照してください。

3.1.3　環境依存パラメタを設計する

システムの環境依存パラメタを設計します。

環境依存パラメタとは，システムを構築する環境に依存し，システムを起動させるために最低限設計が必要なパラメタのことです。

「7.　環境依存パラメタを設計する（EADSサーバ）」または「8.　環境依存パラメタを設計する（EADSクライアント）」を参照してください。

3.1.4　チューニングパラメタを設計する

システムのチューニングパラメタを設計します。

チューニングパラメタとは，システムを安定稼働させるために設計が必要なパラメタのことです。

「9.　チューニングパラメタを設計する」を参照してください。

4　必要なリソースを確認する

この章では，メモリ使用量やディスク使用量の見積もり方法について説明します。

4.1　メモリ使用量を見積もる

EADSを使用するために必要なメモリ使用量の見積もりについて説明します。

4.1.1　メモリ構成

EADSサーバが使用するメモリの構成を次の図に示します。

図4‒1　メモリ構成

(1)　Javaヒープ

Javaヒープは大きくNew領域とTenured領域から構成され，Tenured領域にデータのkey部分が格納されます。

格納されるkeyがTenured領域の1/2を超えてしまうと，FullGC（フルガーベージコレクション）が発生します。そのため，Tenured領域の使用量を基にJavaヒープサイズを見積もる必要があります。Javaヒープサイズの見積もりについては，「4.1.2　Javaヒープサイズを見積もる」を参照してください。

(2)　Explicitヒープ

Explicitヒープは，keyとvalueのうち，value部分を格納するための領域と，更新操作の履歴とノンブロッキングI/O通信バッファが格納される領域から構成されます。

更新操作の履歴とは，APIの種別，およびkeyとvalueの情報のことです。

なお，Explicitヒープサイズの3%は管理領域として使用されます。

Explicitヒープサイズの見積もりについては，「4.1.3　Explicitヒープサイズを見積もる」を参照してください。

4.1.2　Javaヒープサイズを見積もる

Javaヒープサイズを見積もる計算式を次に示します。

(1)　1EADSサーバ当たりのJavaヒープサイズを見積もる

1EADSサーバ当たりのTenured領域の使用量を3倍にした値がJavaヒープサイズとなります。

算出した値は，共通設定のeads.java.heapsizeパラメタに指定します。デフォルトは3ギガバイトです。

ノンブロッキングI/O通信制御を使用しない場合は，ノンブロッキングI/O通信制御を使用しない場合の計算式で見積もってください。

ノンブロッキングI/O通信制御を使用する場合は，ノンブロッキングI/O通信制御を使用する場合の計算式で見積もってください。

参考

ディスク上にキャッシュを作成する場合は，そのキャッシュが使用するJavaヒープサイズの合計を，1EADSサーバ当たりのJavaヒープサイズに加算します。見積もりについては，「4.1.2(2)　ディスク上のキャッシュが使用するJavaヒープサイズを見積もる」を参照してください。

■ノンブロッキングI/O通信制御を使用しない場合

Javaヒープサイズ（単位：メガバイト）（ノンブロッキングI/O通信制御を使用しない場合）＝

　｛（クラスタに格納できるkeyの最大サイズ（単位：バイト）＋850バイト）

　×1EADSサーバに格納するデータ件数

　＋（クラスタに格納できるkeyの最大サイズ（単位：バイト）＋250バイト）

　×グループ名の数※1

　＋EADSサーバへの最大同時接続数

　×（14＋データの送受信バッファのサイズ（単位：バイト）×3）

　＋EADSサーバ数※2×409,600バイト

　＋更新操作の履歴の管理で使用するJavaヒープ領域（単位：バイト）

　＋縮退処理・復旧処理・スケールアウト処理・リバランス処理で使用するJavaヒープ領域（単位：バイト）

　＋データ自動削除機能で使用するJavaヒープ領域（単位：バイト）｝

　×3÷1,0242※3

■ノンブロッキングI/O通信制御を使用する場合

Javaヒープサイズ（単位：メガバイト）（ノンブロッキングI/O通信制御を使用する場合）＝

　｛（クラスタに格納できるkeyの最大サイズ（単位：バイト）＋850バイト）

　×1EADSサーバに格納するデータ件数

　＋（クラスタに格納できるkeyの最大サイズ（単位：バイト）＋250バイト）

　×グループ名の数※1

　＋EADSサーバへの最大同時接続数

　×（14＋データの送受信バッファのサイズ（単位：バイト）×2）

　＋ノンブロッキングI/O通信バッファのサイズ（単位：バイト）

　＋EADSサーバ数※2×409,600バイト

　＋更新操作の履歴の管理で使用するJavaヒープ領域（単位：バイト）

　＋縮退処理・復旧処理・スケールアウト処理・リバランス処理で使用するJavaヒープ領域（単位：バイト）

　＋データ自動削除機能で使用するJavaヒープ領域（単位：バイト）｝

　×3÷1,0242※3

注※1

グループを階層化している場合は，先頭のグループ名の数です。

注※2

クラスタを停止させないで，EADSサーバをクラスタに追加する（スケールアウト処理を実行する）予定がある場合は，EADSサーバ数に，追加するEADSサーバの数を含めてください。追加するEADSサーバの数が予測できない場合は，EADSサーバ数に，96を代入してください。

注※3

小数点以下の値は切り上げてください。

クラスタに格納できるkeyの最大サイズ（単位：バイト）：

共通設定のeads.cache.key.maxsizeパラメタの指定値

1EADSサーバに格納するデータ件数

「4.1.2(1)(a)　1EADSサーバに格納するデータ件数」を参照してください。

EADSサーバへの最大同時接続数：

サーバ定義のeads.server.maxConnectionsパラメタの指定値

データの送受信バッファのサイズ（単位：バイト）：

サーバ定義のeads.server.connection.buffersizeパラメタの指定値

ノンブロッキングI/O通信バッファのサイズ（単位：バイト）：

「4.1.3(3)　ノンブロッキングI/O通信バッファのサイズ」を参照してください。

更新操作の履歴の管理で使用するJavaヒープ領域（単位：バイト）：

「4.1.2(1)(b)　更新操作の履歴の管理で使用するJavaヒープ領域」を参照してください。

縮退処理・復旧処理・スケールアウト処理・リバランス処理で使用するJavaヒープ領域（単位：バイト）：

「4.1.2(1)(c)　縮退処理・復旧処理・スケールアウト処理・リバランス処理で使用するJavaヒープ領域」を参照してください。

データ自動削除機能で使用するJavaヒープ領域（単位：バイト）：

次の計算式で見積もった値を代入してください。

データ自動削除機能で使用するJavaヒープ領域（単位：バイト）＝

　a＋Σb（キャッシュ数）

a：

データ自動削除機能の使用有無に関係なく加算が必要なヒープサイズです。次の計算式で見積もった値を代入してください。

1,232バイト＋（データの多重度×2）×キャッシュ数×376バイト

b：

キャッシュごとに加算が必要なヒープサイズです。1EADSサーバに格納するデータ件数分のデータのアクセス順を管理するリストのヒープサイズを追加します。

次の計算式で見積もった値を代入してください。もし，データ自動削除機能を使用しない場合は，次の計算式の中で「eads.cache.eviction.keyCountパラメタの指定値」に0バイトを代入してください。

（データの多重度×2−1）×37,296バイト

＋データの多重度×eads.cache.eviction.keyCountパラメタの指定値×72バイト

＋19,520バイト

(a)　1EADSサーバに格納するデータ件数

1EADSサーバに格納するデータ件数を見積もる計算式を次に示します。

1EADSサーバに格納するデータ件数＝

　1レンジ当たりのデータ件数×データの多重度

1レンジ当たりのデータ件数：

1レンジ当たりのデータ件数を見積もる計算式を次に示します。

データ総量監視機能を使用する場合は，見積もった値を共通設定のeads.cache.keyCountパラメタに指定してください。

1レンジ当たりのデータ件数＝

　（1レンジ当たりのメモリキャッシュに格納するデータ件数

　＋1レンジ当たりの2Wayキャッシュに格納するデータ件数

　＋1レンジ当たりのディスクキャッシュに格納するデータ件数）

■1レンジ当たりのメモリキャッシュに格納するデータ件数：

1レンジ当たりのメモリキャッシュに格納するデータ件数を見積もる計算式を次に示します。

1レンジ当たりのメモリキャッシュに格納するデータ件数＝

　クラスタのメモリキャッシュに格納するデータ件数※1

　×余裕値係数

　÷クラスタ内のEADSサーバの台数※2

　＋データ総量監視機能用にメモリキャッシュのデータとして加算する件数

注※1

データ自動削除機能を使用する場合は，「4.1.2(1)(d)　データ自動削除機能を使用する場合のキャッシュに格納するデータ件数」を参照してください。

注※2

小数点以下の値は切り上げてください。

余裕値係数：

「4.1.2(1)(e)　余裕値係数」を参照してください。

なお，メモリキャッシュが複数ある場合は，メモリキャッシュごとに余裕値係数を掛ける必要があるため，次の計算式で求めてください。

1レンジ当たりのメモリキャッシュに格納するデータ件数＝

　（クラスタのメモリキャッシュ［1］に格納するデータ件数

　×メモリキャッシュ［1］の余裕値係数

　＋．．．

　クラスタのメモリキャッシュ［n］に格納するデータ件数

　×メモリキャッシュ［n］の余裕値係数）※1

　÷クラスタ内のEADSサーバの台数※2

　＋データ総量監視機能用にメモリキャッシュのデータとして加算する件数

注※1

［n］はn番目のメモリキャッシュを示します。

注※2

小数点以下の値は切り上げてください。

データ総量監視機能用にメモリキャッシュのデータとして加算する件数：

データ総量監視機能用にメモリキャッシュのデータとして加算する件数を見積もる計算式を次に示します。

データ総量監視機能を使用しない場合は，0を代入してください。

メモリキャッシュだけを使用する場合に，この件数を加算してください。2Wayキャッシュまたはディスクキャッシュを使用する場合は，0を代入してください。

データ総量監視機能用にメモリキャッシュのデータとして加算する件数＝

　EADSサーバへの最大同時接続数×最大同時更新データ件数

EADSサーバへの最大同時接続数：

　サーバ定義のeads.server.maxConnectionsパラメタの指定値

最大同時更新データ件数：

　データの一括操作を実行する場合は，10を代入してください。一括操作を実行しない場合は，1を代入してください。

■1レンジ当たりの2Wayキャッシュに格納するデータ件数：

1レンジ当たりの2Wayキャッシュに格納するデータ件数を見積もる計算式を次に示します。

1レンジ当たりの2Wayキャッシュに格納するデータ件数＝

　クラスタの2Wayキャッシュに格納するデータ件数

　×余裕値係数

　÷クラスタ内のEADSサーバの台数※

　＋データ総量監視機能用に2Wayキャッシュのデータとして加算する件数

注※

小数点以下の値は切り上げてください。

余裕値係数：

「4.1.2(1)(e)　余裕値係数」を参照してください。

なお，2Wayキャッシュが複数ある場合は，2Wayキャッシュごとに余裕値係数を掛ける必要があるため，次の計算式で求めてください。

1レンジ当たりの2Wayキャッシュに格納するデータ件数＝

　（クラスタの2Wayキャッシュ［1］に格納するデータ件数

　×2Wayキャッシュ［1］の余裕値係数

　＋．．．

　クラスタの2Wayキャッシュ［n］に格納するデータ件数

　×2Wayキャッシュ［n］の余裕値係数）※1

　÷クラスタ内のEADSサーバの台数※2

　＋データ総量監視機能用に2Wayキャッシュのデータとして加算する件数

注※1

［n］はn番目の2Wayキャッシュを示します。

注※2

小数点以下の値は切り上げてください。

データ総量監視機能用に2Wayキャッシュのデータとして加算する件数：

データ総量監視機能用に2Wayキャッシュのデータとして加算する件数を見積もる計算式を次に示します。

データ総量監視機能を使用しない場合は，0を代入してください。

2Wayキャッシュだけを使用する場合，またはメモリキャッシュ，ディスクキャッシュ，2Wayキャッシュを混在させて使用する場合に，この件数を加算してください。メモリキャッシュだけ，またはディスクキャッシュだけを使用する場合は，0を代入してください。

データ総量監視機能用に2Wayキャッシュのデータとして加算する件数＝

　EADSサーバへの最大同時接続数×最大同時更新データ件数

EADSサーバへの最大同時接続数：

　サーバ定義のeads.server.maxConnectionsパラメタの指定値

最大同時更新データ件数：

　メモリキャッシュを使用して，データの一括操作を実行する場合は，10を代入してください。それ以外の場合は，1を代入してください。

■1レンジ当たりのディスクキャッシュに格納するデータ件数：

1レンジ当たりのディスクキャッシュに格納するデータ件数を見積もる計算式を次に示します。

1レンジ当たりのディスクキャッシュに格納するデータ件数＝

　クラスタのディスクキャッシュに格納するデータ件数※1

　×余裕値係数

　÷クラスタ内のEADSサーバの台数※2

　＋データ総量監視機能用にディスクキャッシュのデータとして加算する件数

注※1

データ自動削除機能を使用する場合は，「4.1.2(1)(d)　データ自動削除機能を使用する場合のキャッシュに格納するデータ件数」を参照してください。

注※2

小数点以下の値は切り上げてください。

余裕値係数：

「4.1.2(1)(e)　余裕値係数」を参照してください。

なお，ディスクキャッシュが複数ある場合は，ディスクキャッシュごとに余裕値係数を掛ける必要があるため，次の計算式で求めてください。

1レンジ当たりのディスクキャッシュに格納するデータ件数＝

　（クラスタのディスクキャッシュ［1］に格納するデータ件数

　×ディスクキャッシュ［1］の余裕値係数

　＋．．．

　クラスタのディスクキャッシュ［n］に格納するデータ件数

　×ディスクキャッシュ［n］の余裕値係数）※1

　÷クラスタ内のEADSサーバの台数※2

　＋データ総量監視機能用にディスクキャッシュのデータとして加算する件数

注※1

［n］はn番目のディスクキャッシュを示します。

注※2

小数点以下の値は切り上げてください。

データ総量監視機能用にディスクキャッシュのデータとして加算する件数：

データ総量監視機能用にディスクキャッシュのデータとして加算する件数を見積もる計算式を次に示します。

データ総量監視機能を使用しない場合は，0を代入してください。

ディスクキャッシュだけを使用する場合に，この件数を加算してください。メモリキャッシュまたは2Wayキャッシュを使用する場合は，0を代入してください。

データ総量監視機能用にディスクキャッシュのデータとして加算する件数＝

　EADSサーバへの最大同時接続数×最大同時更新データ件数

EADSサーバへの最大同時接続数：

　サーバ定義のeads.server.maxConnectionsパラメタの指定値

最大同時更新データ件数：

　1を代入してください。

データの多重度：

共通設定のeads.replication.factorパラメタの指定値

(b)　更新操作の履歴の管理で使用するJavaヒープ領域

更新操作の履歴の管理で使用するJavaヒープ領域を見積もる計算式を次に示します。

更新操作の履歴の管理で使用するJavaヒープ領域（単位：バイト）＝

　3,584×（更新操作の履歴が保持される最大数

　＋合意処理で一度に合意できる処理の最大数）

　×（データの多重度×2−1）×キャッシュ数

　＋16×合意メッセージの送信キューの長さ×（EADSサーバ数※−1）

注※

クラスタを停止させないで，EADSサーバをクラスタに追加する（スケールアウト処理を実行する）予定がある場合は，EADSサーバ数に，追加するEADSサーバの数を含めてください。追加するEADSサーバの数が予測できない場合は，EADSサーバ数に，96を代入してください。

更新操作の履歴が保持される最大数：

更新操作の履歴が保持される最大数を見積もる計算式を次に示します。

更新操作の履歴が保持される最大数＝

　（（ハートビートのタイムアウト時間

　＋MAX（生存確認の接続タイムアウト時間，生存確認の受信タイムアウト時間）

　×（生存確認タイムアウト時のリトライ回数＋1）

　＋ハートビートの送信間隔時間×疑惑しきい値係数）÷1,000）

　×1EADSサーバへのデータの更新操作のスループット（単位：件/秒）※1，※2

注※1

キャッシュごとにスループットが大きく異なる場合は，キャッシュごとに算出したスループットのうち，最大の値を代入してください。

注※2

データ自動削除機能を使用する場合，create，put，putAllで更新するデータ件数分のデータを削除するため，create，put，putAllでデータを更新する件数を倍にして1EADSサーバへのデータの更新操作のスループットを見積もってください。

ハートビートのタイムアウト時間：

サーバ定義のeads.failureDetector.heartbeat.timeoutパラメタの指定値

MAX：

計算結果の最も大きい値を選ぶことを示しています。

（例）MAX（2，10）の計算結果は10となります。

生存確認の接続タイムアウト時間：

サーバ定義のeads.failureDetector.connection.timeoutパラメタの指定値

生存確認の受信タイムアウト時間：

サーバ定義のeads.failureDetector.read.timeoutパラメタの指定値

生存確認タイムアウト時のリトライ回数：

サーバ定義のeads.failureDetector.retryパラメタの指定値

ハートビートの送信間隔時間：

サーバ定義のeads.failureDetector.heartbeat.intervalパラメタの指定値

疑惑しきい値係数：

サーバ定義のeads.failureDetector.assertive.thresholdパラメタの指定値が1の場合は1を代入してください。2以上の場合は2を代入してください。

合意処理で一度に合意できる処理の最大数：

共通設定のeads.replication.preparationsパラメタの指定値

データの多重度：

共通設定のeads.replication.factorパラメタの指定値

合意メッセージの送信キューの長さ：

サーバ定義のeads.replication.sendQueue.lengthパラメタの指定値

(c)　縮退処理・復旧処理・スケールアウト処理・リバランス処理で使用するJavaヒープ領域

縮退処理および復旧処理・スケールアウト処理・リバランス処理で使用するJavaヒープ領域の最大値をそれぞれ見積もり，どちらか大きい方の値を代入してください。

縮退処理で使用するJavaヒープ領域（単位：バイト）＝

　（合意処理で一度に合意できる処理の最大数×2

　×更新操作の履歴の最大サイズ（単位：バイト）

　×（キャッシュ単位に行われる処理の最大同時実行スレッド数

　＋キャッシュ数）＋（データの多重度−1）×キャッシュ数

　×更新操作の履歴の補完処理で送信するデータサイズ（単位：バイト））

　×MIN（4×（データの多重度−1），EADSサーバ数※1−1）

復旧処理・スケールアウト処理・リバランス処理で使用するJavaヒープ領域（単位：バイト）＝

　更新操作の履歴が格納される領域のサイズ（単位：メガバイト）×1,024²

　÷（データの多重度×2−1）※2

　＋復旧処理・スケールアウト処理・リバランス処理で送信するデータサイズ（単位：バイト）

注※1

クラスタを停止させないで，EADSサーバをクラスタに追加する（スケールアウト処理を実行する）予定がある場合は，EADSサーバ数に，追加するEADSサーバの数を含めてください。追加するEADSサーバの数が予測できない場合は，EADSサーバ数に，96を代入してください。

注※2

小数点以下の値は切り上げてください。

合意処理で一度に合意できる処理の最大数：

共通設定のeads.replication.preparationsパラメタの指定値

更新操作の履歴の最大サイズ（単位：バイト）：

更新操作の履歴の最大サイズを見積もる計算式を次に示します。

更新操作の履歴の最大サイズ（単位：バイト）＝

　MAX（クラスタに格納できるkeyの最大サイズ＋valueの最大サイズ×2,（クラスタに格納できるkeyの最大サイズ＋valueの最大サイズ）×最大同時更新データ件数）

MAX：

計算結果の最も大きい値を選ぶことを示しています。

（例）MAX（2，10）の計算結果は10となります。

クラスタに格納できるkeyの最大サイズ：

共通設定のeads.cache.key.maxsizeパラメタの指定値

valueの最大サイズ：

put，create，update，replace実行時に指定するvalueの最大サイズ

最大同時更新データ件数：

メモリキャッシュを使用して，データの一括操作を実行する場合は10を代入してください。それ以外の場合は，1を代入してください。

キャッシュ単位に行われる処理の最大同時実行スレッド数：

データの多重度−1（データの多重度が1の場合は1）

データの多重度：

共通設定のeads.replication.factorパラメタの指定値

更新操作の履歴の補完処理で送信するデータサイズ（単位：バイト）：

サーバ定義のeads.replication.fillgap.copy.datasizeパラメタの指定値

MIN：

計算結果の最も小さい値を選ぶことを示しています。

（例）MIN（3×6，4＋7）の計算結果は11となります。

更新操作の履歴が格納される領域のサイズ：

共通設定のeads.replication.external.heapsizeパラメタの指定値

見積もりについては，「4.1.3(2)　更新操作の履歴が格納される領域のサイズ」を参照してください。

復旧処理・スケールアウト処理・リバランス処理で送信するデータサイズ：

復旧処理・スケールアウト処理・リバランス処理で送信するデータサイズをキャッシュごとに見積もり，その中で最大の値を代入してください。

メモリキャッシュの場合

サーバ定義のeads.transfer.datasizeパラメタの指定値（復旧処理・スケールアウト処理）またはサーバ定義のeads.rebalance.transfer.datasizeパラメタの指定値（リバランス処理）

ディスクキャッシュ，および2Wayキャッシュの場合

キャッシュ定義のeads.cache.disk.transfer.datasizeパラメタの指定値

(d)　データ自動削除機能を使用する場合のキャッシュに格納するデータ件数

データ自動削除機能を使用する場合，次の計算式を求める必要があります。

クラスタのメモリキャッシュに格納するデータ件数（データ自動削除機能の使用時）

クラスタのディスクキャッシュに格納するデータ件数（データ自動削除機能の使用時）

求めた値を，「4.1.2(1)(a)　1EADSサーバに格納するデータ件数」にある次の変数に代入してください。

■代入する変数

クラスタのメモリキャッシュに格納するデータ件数

クラスタのディスクキャッシュに格納するデータ件数

データ自動削除機能を使用する場合に求める計算式を次に示します。

クラスタのメモリキャッシュに格納するデータ件数（データ自動削除機能の使用時）：

クラスタのメモリキャッシュに格納するデータ件数（データ自動削除機能の使用時）を見積もる計算式を次に示します。

クラスタのメモリキャッシュに格納するデータ件数（データ自動削除機能の使用時）＝

　各メモリキャッシュに格納するデータ件数の総数

各メモリキャッシュに格納するデータ件数の総数：

各メモリキャッシュに格納するデータ件数をすべて合計した値を代入します。

各メモリキャッシュに格納するデータ件数：

各メモリキャッシュに格納するデータ件数を見積もる計算式を次に示します。メモリキャッシュごとに見積もる必要があります。

各メモリキャッシュに格納するデータ件数＝

　（各メモリキャッシュの1レンジ当たりに格納するデータ件数＋1）

　×クラスタ内のEADSサーバの台数

各メモリキャッシュの1レンジ当たりに格納するデータ件数：

データ自動削除機能のデータ削除のしきい値で使用する1レンジ当たりのデータ件数（eads.cache.eviction.keyCountパラメタの指定値）を代入してください。もし，各メモリキャッシュに格納するデータ件数を決めてから，各メモリキャッシュの1レンジ当たりに格納するデータ件数を決める場合は，逆算してください。

クラスタのディスクキャッシュに格納するデータ件数（データ自動削除機能の使用時）：

クラスタのディスクキャッシュに格納するデータ件数（データ自動削除機能の使用時）を見積もる計算式を次に示します。

クラスタのディスクキャッシュに格納するデータ件数（データ自動削除機能の使用時）＝

　各ディスクキャッシュに格納するデータ件数の総数

各ディスクキャッシュに格納するデータ件数の総数：

各ディスクキャッシュに格納するデータ件数をすべて合計した値を代入します。

各ディスクキャッシュに格納するデータ件数：

各ディスクキャッシュに格納するデータ件数を見積もる計算式を次に示します。ディスクキャッシュごとに見積もる必要があります。

各ディスクキャッシュに格納するデータ件数＝

　（各ディスクキャッシュの1レンジ当たりに格納するデータ件数＋1）

　×クラスタ内のEADSサーバの台数

各ディスクキャッシュの1レンジ当たりに格納するデータ件数：

データ自動削除機能のデータ削除のしきい値で使用する1レンジ当たりのデータ件数（eads.cache.eviction.keyCountパラメタの指定値）を代入してください。もし，各ディスクキャッシュに格納するデータ件数を決めてから，各ディスクキャッシュの1レンジ当たりに格納するデータ件数を決める場合は，逆算してください。

(e)　余裕値係数

データの格納先は，keyのハッシュ値によって決定されるため，レンジ間のデータ件数には差異が生じます。この差異により，平均データ件数を上回ることがあっても全データを格納できるようにするため，次の余裕値係数を掛けてください。また，余裕値係数を使用した計算式で小数点以下の値は切り上げてください。

余裕値係数は，キャッシュに格納するデータ件数と，クラスタのEADSサーバの数によって異なります。キャッシュを複数扱う場合は，キャッシュごとに余裕値係数を設定してください。

キャッシュ[n]の余裕値係数＝

　「クラスタのキャッシュ[n]に各納するデータ件数÷クラスタのEADSサーバ台数」の数値をaとしたとき，

　・1,000,000 ≦ aの場合は，1.01

　・100,000 ≦ a ＜ 1,000,000の場合は，a × -2.223 × 10^-8 ＋ 1.033

　・10,000 ≦ a ＜ 100,000の場合は，a × -4.445 × 10^-7 ＋ 1.075

　・1,000 ≦ a ＜ 10,000の場合は，a × -1.445 × 10^-5 ＋ 1.215

　・1,000未満の場合，レンジ間のデータ件数が極端に偏る場合があります。

実際にデータを格納して偏りの有無を検証の上で，十分な余裕値を設定することを推奨します。

なお，keyのグルーピングを行った場合，データ格納先の偏りは，グループの最上位階層の種類数に依存します。上記の「クラスタのキャッシュ[n]に格納するデータ件数」は，キャッシュ[n]に格納するグループの最上位階層の種類数に置き換えて計算してください。

（例）

キー一覧が，"AAA:key1", "AAA:aaa:key2", "BBB;key3", "CCC:key4", "CCC:ccc;key5"のような場合，グループの最上位階層の種類数は，"AAA", "BBB", "CCC"の3種類となります。

また，グループの最上位階層の文字列で同一のキーが存在し，その件数がグループごとに異なる場合は，グループに属するデータ件数が多いものが特定のレンジに偏った場合を考慮し，安全係数を設定してください。

上記の例では，"AAA"は2件，"BBB"は1件，"CCC"は2件と，グループによって件数が異なっています。

注意事項

データ件数のEADSサーバ間の差異は，キーの設計によって大きく変化します。上記の余裕率は十分に大きな値を設定していますが，キーの設計によっては超過するおそれがあります。特にデータ件数が少ない場合や，keyのグルーピングによって，特定のグループにデータが偏る場合などは，実際にEADSサーバに全データを格納するような方法で，レンジ間のデータ件数に大きな差異がないか検証することを推奨します。

レンジ間でデータ件数に大きな差異が生じた場合は，実際の差異に合わせて再見積もりを行って差異を許容できるようにしてください。または，キー設計を変更したり，EADSサーバのポジションを設定したりすることでデータ配置を調整してください。

なお，ポジションの変更については「7.5.1　EADSサーバの位置の設定」を参照してください。

(2)　ディスク上のキャッシュが使用するJavaヒープサイズを見積もる

ディスクキャッシュ，および2Wayキャッシュを使用する場合は，各キャッシュが使用するJavaヒープサイズを求めます。

ディスクキャッシュ，および2Wayキャッシュ1つ当たりのJavaヒープサイズを見積もる計算式を次に示します。この計算式でキャッシュごとに見積もったあと，算出した値を合計します。その値を「4.1.2(1)　1EADSサーバ当たりのJavaヒープサイズを見積もる」で見積もったJavaヒープサイズに加算します。

2Wayキャッシュの場合

Javaヒープサイズの見積もりの値に加算する値（単位：メガバイト）＝

　（1,600＋8×1レンジ当たりのキャッシュデータファイルの面数

　＋0.8×1レンジ当たりの2Wayキャッシュに格納するデータ件数）×データの多重度÷1,024※

注※

小数点以下の値は切り上げてください。

ディスクキャッシュの場合※1

Javaヒープサイズの見積もりの値に加算する値（単位：メガバイト）＝

　（1,600＋8×1レンジ当たりのキャッシュデータファイルの面数

　−0.4×1レンジ当たりのディスクキャッシュに格納するデータ件数）×データの多重度÷1,024※2

注※1

格納するデータ件数が多いときは，計算結果が負の値になることがあります。そのときは，負の値のまま代入してください。

注※2

小数点以下の値は切り上げてください。

1レンジ当たりのキャッシュデータファイルの面数：

キャッシュ定義のeads.cache.disk.filenumパラメタの指定値

見積もりについては，「4.4.1　キャッシュデータファイルのサイズおよび面数を見積もる」を参照してください。

データの多重度：

共通設定のeads.replication.factorパラメタの指定値

さらに，eads.cache.disk.highSpecDrive.enableパラメタにtrueを指定する場合は，次に示す計算式で，キャッシュごとにJavaヒープサイズに加算する値を見積もります。そのあとで算出した値を合計して，上述の計算式で求めたJavaヒープサイズに加算します。

ディスクキャッシュ，および2Wayキャッシュ1つ当たりのJavaヒープサイズの見積もり値に加算する値を見積もる計算式を次に示します。

Javaヒープサイズの見積もり値に加算する値（単位：メガバイト）＝

　384×データの多重度÷1,024※

注※

小数点以下の値は切り上げてください。

4.1.3　Explicitヒープサイズを見積もる

Explicitヒープサイズを見積もる計算式を次に示します。

ノンブロッキングI/O通信制御を使用しない場合は，ノンブロッキングI/O通信制御を使用しない場合の計算式で見積もってください。

ノンブロッキングI/O通信制御を使用する場合は，ノンブロッキングI/O通信制御を使用する場合の計算式で見積もってください。

keyとvalueのうち，value部分が格納される領域と，更新操作の履歴が格納される領域を足した値がExplicitヒープサイズとなります。なお，Explicitヒープサイズの3%は管理領域として使用されます。

算出した値は，共通設定のeads.java.external.heapsizeパラメタに指定します。

■ノンブロッキングI/O通信制御を使用しない場合

Explicitヒープサイズ（単位：メガバイト）（ノンブロッキングI/O通信制御を使用しない場合）＝

　（a÷1,0242※1＋b÷1,024²）÷0.97※2

■ノンブロッキングI/O通信制御を使用する場合

Explicitヒープサイズ（単位：メガバイト）（ノンブロッキングI/O通信制御を使用する場合）＝

　（a÷1,0242※1＋b÷1,024²＋c÷1,024²）÷0.97※2

変数の説明

a：value部分が格納される領域のサイズ（単位：バイト）

b：更新操作の履歴が格納される領域のサイズ（単位：バイト）

c：ノンブロッキングI/O通信バッファのサイズ（単位：バイト）

注※1

データ総量監視機能を使用する場合，「a÷1,024²」は，データの多重度の倍数（単位：メガバイト）になるよう切り上げてください。

注※2

「a÷1,024²」，「b÷1,024²」，「c÷1,024²」のそれぞれの計算式では小数点以下の値は切り上げてください。そのあとで，最終的な計算結果も小数点以下の値は切り上げてください。

各領域のサイズを見積もる計算式を次に示します。

(1)　value部分が格納される領域のサイズ

keyとvalueのうち，value部分が格納される領域のサイズを見積もる計算式を次に示します。ただし，valueをExplicitヒープに格納しない（キャッシュタイプがディスクキャッシュのキャッシュだけを使用する）場合は，0としてください。

value部分が格納される領域のサイズ（単位：バイト）＝

　（メモリキャッシュおよび2Wayキャッシュに格納するデータ1件当たりのvalueサイズ※1（単位：バイト）

　＋2バイト）※2

　×（1レンジ当たりのメモリキャッシュおよび2Wayキャッシュに格納するデータ件数の合計×データの多重度

　＋メモリキャッシュおよび2Wayキャッシュのキャッシュ数の合計

　×データの多重度＋500）

注※1

シリアライズ後のサイズです。

注※2

この括弧内の計算式は16バイト単位で切り上げて見積もってください。

データの多重度：

共通設定のeads.replication.factorパラメタの指定値

(2)　更新操作の履歴が格納される領域のサイズ

更新操作の履歴が格納される領域のサイズを見積もる計算式を次に示します。

算出した値は，メガバイト単位に切り上げてから，共通設定のeads.replication.external.heapsizeパラメタに指定します。

更新操作の履歴が格納される領域（単位：バイト）＝

　｛（データの多重度×2−1）×キャッシュ数×更新操作の履歴の最大数＋500｝

　×（更新操作の履歴の最大サイズ（単位：バイト）＋1,024）＋1,048,576

注

小数点以下の値は切り上げます。

データの多重度：

共通設定のeads.replication.factorパラメタの指定値

更新操作の履歴の最大数：

更新操作の履歴の最大数を見積もる計算式を次に示します。

更新操作の履歴の最大数＝

　更新操作の履歴が保持される最大数＋合意処理で一度に合意できる処理の最大数

更新操作の履歴が保持される最大数：

更新操作の履歴が保持される最大数を見積もる計算式を次に示します。

更新操作の履歴が保持される最大数＝

　（（ハートビートのタイムアウト時間

　＋MAX（生存確認の接続タイムアウト時間，生存確認の受信タイムアウト時間）

　×（生存確認タイムアウト時のリトライ回数＋1）

　＋ハートビートの送信間隔時間×疑惑しきい値係数）÷1,000）

　×1EADSサーバへのデータの更新操作のスループット（単位：件/秒）※1，※2

注※1

キャッシュごとにスループットが大きく異なる場合は，キャッシュごとに算出したスループットのうち，最大の値を代入してください。

注※2

データ自動削除機能を使用する場合，create，put，putAllで更新するデータ件数分のデータを削除するため，create，put，putAllでデータを更新する件数を倍にして1EADSサーバへのデータの更新操作のスループットを見積もってください。

ハートビートのタイムアウト時間：

サーバ定義のeads.failureDetector.heartbeat.timeoutパラメタの指定値

MAX：

計算結果の最も大きい値を選ぶことを示しています。

（例）MAX（2，10）の計算結果は10となります。

生存確認の接続タイムアウト時間：

サーバ定義のeads.failureDetector.connection.timeoutパラメタの指定値

生存確認の受信タイムアウト時間：

サーバ定義のeads.failureDetector.read.timeoutパラメタの指定値

生存確認タイムアウト時のリトライ回数：

サーバ定義のeads.failureDetector.retryパラメタの指定値

ハートビートの送信間隔時間：

サーバ定義のeads.failureDetector.heartbeat.intervalパラメタの指定値

疑惑しきい値係数：

サーバ定義のeads.failureDetector.assertive.thresholdパラメタの指定値が1の場合は1を代入してください。2以上の場合は2を代入してください。

合意処理で一度に合意できる処理の最大数：

共通設定のeads.replication.preparationsパラメタの指定値

更新操作の履歴の最大サイズ（単位：バイト）：

更新操作の履歴の最大サイズを見積もる計算式を次に示します。

更新操作の履歴の最大サイズ（単位：バイト）＝

　MAX（クラスタに格納できるkeyの最大サイズ＋valueの最大サイズ×2,（クラスタに格納できるkeyの最大サイズ＋valueの最大サイズ）×最大同時更新データ件数）

MAX：

計算結果の最も大きい値を選ぶことを示しています。

（例）MAX（2，10）の計算結果は10となります。

クラスタに格納できるkeyの最大サイズ：

共通設定のeads.cache.key.maxsizeパラメタの指定値

valueの最大サイズ：

put，create，update，replace実行時に指定するvalueの最大サイズ

最大同時更新データ件数：

メモリキャッシュを使用して，データの一括操作を実行する場合は，10を代入してください。それ以外の場合は，1を代入してください。

(3)　ノンブロッキングI/O通信バッファのサイズ

ノンブロッキングI/O通信制御用の通信バッファサイズを見積もる計算式を次に示します。求めた値は，メガバイト単位に切り上げてから，共通設定のeads.server.nonBlocking.external.heapsizeパラメタに指定してください。

ノンブロッキングI/O通信バッファサイズ（単位：バイト）＝

　MAX（最大通信データサイズ（単位：バイト）×最大同時割当数，1×1,024²）

MAX：

計算結果の最も大きい値を選ぶことを示しています。

（例）MAX（2，10）の計算結果は10となります。

最大通信データサイズ（単位：バイト）：

次の表から使用するクライアントAPIの中で最も大きい通信データサイズを確認してください。その際，ノンブロッキングI/O通信バッファのサイズは，クラスタを再起動して変更するため，Key長などの変数は，現在値ではなく将来を見越した値を代入してください。

表4‒1　クライアントAPIと通信データサイズの一覧

項番

クライアントAPI

通信方向

通信データサイズ（単位：バイト）※

1

get

リクエスト

150＋CacheName長＋Key長

2

get

レスポンス

100＋Value長

3

remove

リクエスト

150＋CacheName長＋Key長

4

remove

レスポンス

50

5

put

リクエスト

150＋CacheName長＋Key長＋Value長

6

put

レスポンス

50

7

create

リクエスト

150＋CacheName長＋Key長＋Value長

8

create

レスポンス

50

9

update

リクエスト

150＋CacheName長＋Key長＋Value長

10

update

レスポンス

50

11

replace

リクエスト

150＋CacheName長＋Key長＋Value長＋比較Value長

12

replace

レスポンス

50

13

putAll

リクエスト

150＋CacheName長＋Σ[一括操作数]（各要素のKey長＋25）＋Σ[一括操作数]（各要素のValue長＋25）

14

putAll

レスポンス

50

15

putAll：失敗

レスポンス

100＋一括操作数×25

16

getAll（キー指定）

リクエスト

150＋CacheName長＋Σ[一括操作数]（各要素のKey長＋25）

17

getAll（キー指定）

レスポンス

100＋Σ[一括操作数]（各要素のValue長＋25）

18

getAll（グループ指定）

リクエスト

150＋CacheName長＋Group長＋Key長

19

getAll（グループ指定）

レスポンス

100＋Σ[一括操作数]（各要素のKey長＋25）＋Σ[一括操作数]（各要素のValue長＋25）

20

removeAll（キー指定）

リクエスト

150＋CacheName長＋Σ[一括削除数]（各要素のKey長＋25）

21

removeAll（キー指定）

レスポンス

50

22

removeAll（キー指定）：失敗

レスポンス

100＋一括削除数×25

23

removeAll（グループ指定）

リクエスト

150＋CacheName長＋Group長

24

removeAll（グループ指定）

レスポンス

50

25

removeAll（ノード指定）

リクエスト

150＋CacheName長

26

removeAll（ノード指定）

レスポンス

50

27

getGroupNameSet

リクエスト

150＋CacheName長

28

getGroupNameSet

レスポンス

100＋Σ[一括取得Group数]（各要素のGroup長＋25）

29

getKeySet（グループ指定）

リクエスト

150＋CacheName長＋Group長

30

getKeySet（グループ指定）

レスポンス

100＋Σ[一括取得Key数]（各要素のKey長＋25）

31

getKeySet（ノード指定）

リクエスト

150＋CacheName長

32

getKeySet（ノード指定）

レスポンス

100＋Σ[一括取得Key数]（各要素のKey長＋25）

33

getGroupCount

リクエスト

150＋CacheName長

34

getGroupCount

レスポンス

100

35

getKeyCount（グループ指定）

リクエスト

150＋CacheName長＋Group長

36

getKeyCount（グループ指定）

レスポンス

100

37

getKeyCount（ノード指定）

リクエスト

150＋CacheName長

38

getKeyCount（ノード指定）

レスポンス

100

39

getFirstKey（グループ指定）

リクエスト

150＋CacheName長＋Group長

40

getFirstKey（グループ指定）

レスポンス

100＋Key長

41

getFirstKey（ノード指定）

リクエスト

150＋CacheName長

42

getFirstKey（ノード指定）

レスポンス

100＋Key長

43

getNextKey（グループ指定）

リクエスト

150＋CacheName長＋Group長＋Key長

44

getNextKey（グループ指定）

レスポンス

100＋Key長

45

getNextKey（ノード指定）

リクエスト

150＋CacheName長＋Key長

46

getNextKey（ノード指定）

レスポンス

100＋Key長

47

executeFunction（キーまたはグループ指定）

リクエスト

150＋CacheName長＋FunctionName長＋Key長またはGroup長＋Function引数長

48

executeFunction（キーまたはグループ指定）

レスポンス

100＋Function戻り値長

49

executeFunction（ノード指定）

リクエスト

150＋CacheName長＋FunctionName長＋Function引数長

50

executeFunction（ノード指定）

レスポンス

100＋Function戻り値長

注※

通信データサイズは，計算した結果に対して16バイト単位で切り上げて見積もってください。

CacheName長：

キャッシュ名の文字数を代入してください。不明な場合は最大値（32）を代入してください。

Key長：

キー名の文字数を代入してください。不明な場合は共通設定のeads.cache.key.maxsizeパラメタの指定値を代入してください。

Group長：

グループ名の文字数を代入してください。不明な場合は｛共通設定のeads.cache.key.maxsizeパラメタの指定値−2｝を代入してください。

Value長，比較Value長：

Value，比較Valueがnullである場合は0を代入してください。バイト配列である場合はそのバイト配列の長さを代入してください。オブジェクトである場合はそのオブジェクトをjava.io.ObjectOutputStream#writeObjectメソッドでシリアライズした際のバイト配列の長さを代入してください。不明な場合は最大値（262,144）を代入してください。

FunctionName長：

ファンクション名の文字数を代入してください。不明な場合はEADSサーバにデプロイした全ファンクション中，最も長いファンクション名の文字数を代入してください。

Function引数長, Function戻り値長：

nullである場合は0を代入してください。バイト配列である場合はそのバイト配列の長さを代入してください。オブジェクトである場合はそのオブジェクトをjava.io.ObjectOutputStream#writeObjectメソッドでシリアライズした際のバイト配列の長さを代入してください。

一括操作数：

APIの引数に渡したKey数とクライアント設定のeads.client.batchOperation.unitパラメタの指定値のどちらか小さい方を代入してください。

一括削除数：

APIの引数に渡したKey数と1,024のどちらか小さい方を代入してください。

一括取得Group数：

Groupの格納状況によって1EADSサーバで取得できると想定されるGroup数を代入してください。

一括取得Key数：

Keyの格納状況および引数によって取得できると想定されるKey数を代入してください。

最大同時割当数

サーバ設定のeads.server.nonBlocking.maxAllocateConnectionsパラメタの指定値

最大同時割当数を見積もる式を次に示します。

最大同時割当数＝「最大通信データサイズ＞データの送受信バッファのサイズ」を満たしており，

かつ同時に実行されるキャッシュ操作およびファンクション操作リクエスト数の最大値

最大通信データサイズ（単位：バイト）

この「4.1.3(3)　ノンブロッキングI/O通信バッファのサイズ」の冒頭で見積もった最大通信データサイズの値

データの送受信バッファのサイズ（単位：バイト）

サーバ設定のeads.server.connection.buffersizeパラメタの指定値

(4)　Explicitヒープサイズを見積もる際の注意事項

Explicitヒープサイズを見積もる際の注意事項を次に示します。

Explicitヒープの見積もりが適切でない場合，Explicitヒープの空き容量が少なくなると，value，更新操作の履歴およびノンブロッキングI/O通信バッファのフラグメントが発生し，性能が低下するおそれがあります。また，データ総量監視機能を使用していない場合，Explicitヒープの空き容量が不足して，valueを格納できなくなると，EADSサーバが縮退します。

Explicitヒープの空き容量が不足して更新操作の履歴が格納できなくなると，EADSサーバは既存の更新操作の履歴を削除することでExplicitヒープを確保しようとします。これによって，EADSサーバ間での更新操作の履歴の補完処理に失敗するおそれがあります。更新操作の履歴の補完処理については，「9.3.2(8)　更新操作の履歴の補完処理」を参照してください。

ノンブロッキングI/O通信バッファが不足してノンブロッキングI/O通信バッファを割り当てられない場合，または1ギガバイトより大きいサイズのノンブロッキングI/O通信バッファを要求された場合，EADSクライアントが次のエラーを返す場合があります。

クライアントAPI実行時：EAD_ERROR_SERVER_LIMIT_RECEIVE_BUFFER，またはEAD_ERROR_SERVER_LIMIT_SEND_BUFFER

EADSクライアント初期化時：EAD_ERROR_INIT_CLUSTERINFO

4.1.4　EADSサーバのメモリ使用量を見積もる

EADSサーバのメモリ使用量を見積もる計算式を次に示します。

EADSサーバのメモリ使用量※1（単位：メガバイト）＝

　Javaヒープサイズ＋Explicitヒープサイズ＋Metaspace領域サイズ＋658

　＋1×1EADSサーバプロセス当たりのスレッド数

　＋｛MIN（MAX（データの送受信バッファのサイズ，8,192），OSが許可する最大TCP受信バッファサイズ）

　＋MIN（MAX（データの送受信バッファのサイズ，8,192），OSが許可する最大TCP送信バッファサイズ）｝

　×EADSサーバへの最大同時接続数÷1,0242※2

　＋ダイレクトバッファ領域のサイズ

注※1

ユーザファンクションを使用する場合は，EADSサーバのメモリ使用量にユーザファンクションで使用するメモリ量を加算してください。

注※2

小数点以下の値は切り上げてください。

Metaspace領域サイズ：

共通設定のeads.java.metaspace.maxsizeパラメタの指定値

MIN：

計算結果の最も小さい値を選ぶことを示しています。

（例）MIN（2，10）の計算結果は2となります。

MAX：

計算結果の最も大きい値を選ぶことを示しています。

（例）MAX（2，10）の計算結果は10となります。

データの送受信バッファのサイズ（単位：バイト）：

サーバ定義のeads.server.connection.buffersizeパラメタの指定値

OSが許可する最大TCP受信バッファサイズ（単位：バイト）

OSが提供するTCP受信バッファサイズの制限方法を参照してください。

OSが許可する最大TCP送信バッファサイズ（単位：バイト）

OSが提供するTCP送信バッファサイズの制限方法を参照してください。

1EADSサーバプロセス当たりのスレッド数：

「4.3.1(1)　1EADSサーバプロセス当たりのスレッド数」を参照してください。

ダイレクトバッファ領域のサイズ：

「4.1.4(1)　ダイレクトバッファ領域のサイズ」を参照してください。

(1)　ダイレクトバッファ領域のサイズ

EADSサーバプロセスとTCPソケットの間で，データのやり取りをするためのダイレクトバッファ領域のサイズを見積もる計算式を次に示します。

ノンブロッキングI/O通信制御を使用しない場合は，ノンブロッキングI/O通信制御を使用しない場合の計算式で見積もってください。

ノンブロッキングI/O通信制御を使用する場合は，ノンブロッキングI/O通信制御を使用する場合の計算式で見積もってください。

■ノンブロッキングI/O通信制御を使用しない場合

ダイレクトバッファ領域のサイズ（単位：メガバイト）＝

　｛EADSサーバへの最大同時接続数×EADSクライアントとの通信での使用量

　＋2×（EADSサーバ台数−1）×合意メッセージ送受信での使用量

　＋3×データ転送での使用量

　＋EADSクライアントとの通信での一時的使用量

　＋EADSサーバ間の通信での一時的使用量

　＋1,048,576

　｝÷1,048,576※

注※

小数点以下の値は切り上げてください。

EADSサーバへの最大同時接続数：

サーバ定義のeads.server.maxConnectionsパラメタの指定値

EADSクライアントとの通信での使用量：

・eads.java.nio.maxCachedBufferSizeパラメタを指定していない場合：

次に示す値のうち，最も大きな値を代入してください。

8192

keyサイズ＋valueサイズ＋128

replaceを使用する場合，引数に指定するkeyサイズ＋2×valueサイズ＋128

一括操作または参照操作を実行する場合，eads.client.batchOperation.unitパラメタの指定値×（keyサイズ＋valueサイズ）＋128

ユーザファンクションを呼び出す場合，ユーザファンクション名のサイズ＋実行時に指定するkeyサイズ＋引数長と戻り値長のどちらか大きい方＋128

・eads.java.nio.maxCachedBufferSizeパラメタを指定している場合：

eads.java.nio.maxCachedBufferSizeパラメタの指定値

合意メッセージ送受信での使用量：

eads.java.nio.maxCachedBufferSizeパラメタを指定していない場合：

「4.1.2(1)(c)　縮退処理・復旧処理・スケールアウト処理・リバランス処理で使用するJavaヒープ領域」で見積もった「更新操作の履歴の最大サイズ」とeads.replication.connection.buffersizeパラメタの指定値のどちらか大きい方

eads.java.nio.maxCachedBufferSizeパラメタを指定している場合：

eads.java.nio.maxCachedBufferSizeパラメタの指定値をeads.replication.connection.buffersizeパラメタの指定値の倍数に切り上げた値

データ転送での使用量：

eads.java.nio.maxCachedBufferSizeパラメタを指定していない場合：

keyサイズの最大値＋valueサイズの最大値＋128

eads.java.nio.maxCachedBufferSizeパラメタを指定している場合：

eads.java.nio.maxCachedBufferSizeパラメタの指定値

EADSクライアントとの通信での一時的使用量：

eads.java.nio.maxCachedBufferSizeパラメタを指定していない場合：

0を代入してください。

eads.java.nio.maxCachedBufferSizeパラメタを指定している場合：

eads.java.nio.maxCachedBufferSizeパラメタの指定値（EADSサーバでキャッシュされるダイレクトバッファ1つ当たりのサイズ）よりも大きいサイズのデータがEADSクライアントとの通信で扱われた場合，データのサイズに応じたダイレクトバッファが一時的に使用されます。

EADSクライアントとの通信での一時的使用量を見積もる計算式を次に示します。

EADSクライアントとの通信での一時的使用量（単位：バイト）＝

　EADSサーバへの同時リクエスト数×EADSクライアントとの通信データサイズ

EADSサーバへの同時リクエスト数：

EADSサーバに同時に送信されるリクエストの数

EADSクライアントとの通信データサイズ：

eads.java.nio.maxCachedBufferSizeパラメタの指定値と次に示す値のうち，最も大きな値を比較してください。比較した値が等しい場合，またはeads.java.nio.maxCachedBufferSizeパラメタの指定値の方が大きい場合は0を代入してください。それ以外の場合は，比較した最も大きな値を代入してください。

8192

keyサイズ＋valueサイズ＋128

replaceを使用する場合，引数に指定するkeyサイズ＋2×valueサイズ＋128

一括操作または参照操作を実行する場合，eads.client.batchOperation.unitパラメタの指定値×（keyサイズ＋valueサイズ）＋128

ユーザファンクションを呼び出す場合，ユーザファンクション名のサイズ＋実行時に指定するkeyサイズ＋引数長と戻り値長のどちらか大きい方＋128

なお，特定のリクエストだけEADSクライアントとの通信データサイズが極端に大きくなる場合，次のように特定のリクエストの同時リクエスト数と通信データサイズから特定のリクエストの使用量を個別に計算して，一時的使用量に合算してください。このとき，特定のリクエスト以外のEADSサーバへの同時リクエスト数には，全体の同時リクエスト数から特定のリクエストの同時リクエスト数を引いた値を代入してください。

EADSクライアントとの通信での一時的使用量（単位：バイト）＝

　特定のリクエストAの同時リクエスト数×特定のリクエストAの通信データサイズ

　＋特定のリクエストBの同時リクエスト数×特定のリクエストBの通信データサイズ

　：

　＋特定のリクエスト以外のEADSサーバへの同時リクエスト数×EADSクライアントとの通信データサイズ

EADSサーバ間の通信での一時的使用量：

eads.java.nio.maxCachedBufferSizeパラメタを指定していない場合：

0を代入してください。

eads.java.nio.maxCachedBufferSizeパラメタを指定している場合：

eads.java.nio.maxCachedBufferSizeパラメタの指定値（EADSサーバでキャッシュされるダイレクトバッファ1つ当たりのサイズ）よりも大きいサイズのデータがEADSサーバ間の通信で扱われた場合，データのサイズに応じたダイレクトバッファが一時的に使用されます。

eads.java.nio.maxCachedBufferSizeパラメタの指定値と「更新操作の履歴の最大サイズ」を比較して，比較した値が等しい場合，またはeads.java.nio.maxCachedBufferSizeパラメタの指定値の方が大きい場合は0を代入してください。それ以外の場合は，次に示すEADSサーバ間の通信での一時的使用量の計算式の計算結果を代入してください。

EADSサーバ間の通信での一時的使用量（単位：バイト）＝

　4×（データの多重度−1）×更新操作の履歴の最大サイズ

データの多重度：

共通設定のeads.replication.factorパラメタの指定値

更新操作の履歴の最大サイズ：

「4.1.2(1)(c)　縮退処理・復旧処理・スケールアウト処理・リバランス処理で使用するJavaヒープ領域」で見積もった「更新操作の履歴の最大サイズ」の値

■ノンブロッキングI/O通信制御を使用する場合

ダイレクトバッファ領域のサイズ（単位：メガバイト）＝

　｛リクエスト処理スレッド数×EADSクライアントとの通信での使用量

　＋2×（EADSサーバ台数−1）×合意メッセージ送受信での使用量

　＋3×データ転送での使用量

　＋EADSサーバ間の通信での一時的使用量

　＋1,048,576

　｝÷1,048,576※

注※

小数点以下の値は切り上げてください。

リクエスト処理スレッド数：

サーバ定義のeads.server.nonBlocking.processorThreadsパラメタの指定値

EADSクライアントとの通信での使用量：

サーバ定義のeads.server.connection.buffersizeパラメタの指定値

合意メッセージ送受信での使用量：

eads.java.nio.maxCachedBufferSizeパラメタを指定していない場合：

「4.1.2(1)(c)　縮退処理・復旧処理・スケールアウト処理・リバランス処理で使用するJavaヒープ領域」で見積もった「更新操作の履歴の最大サイズ」とeads.replication.connection.buffersizeパラメタの指定値のどちらか大きい方

eads.java.nio.maxCachedBufferSizeパラメタを指定している場合：

eads.java.nio.maxCachedBufferSizeパラメタの指定値をeads.replication.connection.buffersizeパラメタの指定値の倍数に切り上げた値

データ転送での使用量：

eads.java.nio.maxCachedBufferSizeパラメタを指定していない場合：

keyサイズの最大値＋valueサイズの最大値＋128

eads.java.nio.maxCachedBufferSizeパラメタを指定している場合：

eads.java.nio.maxCachedBufferSizeパラメタの指定値

EADSサーバ間の通信での一時的使用量：

eads.java.nio.maxCachedBufferSizeパラメタを指定していない場合：

0を代入してください。

eads.java.nio.maxCachedBufferSizeパラメタを指定している場合：

eads.java.nio.maxCachedBufferSizeパラメタの指定値（EADSサーバでキャッシュされるダイレクトバッファ1つ当たりのサイズ）よりも大きいサイズのデータがEADSサーバ間の通信で扱われた場合，データのサイズに応じたダイレクトバッファが一時的に使用されます。

eads.java.nio.maxCachedBufferSizeパラメタの指定値と「更新操作の履歴の最大サイズ」を比較して，比較した値が等しい場合，またはeads.java.nio.maxCachedBufferSizeパラメタの指定値の方が大きい場合は0を代入してください。それ以外の場合は，次に示すEADSサーバ間の通信での一時的使用量の計算式の計算結果を代入してください。

EADSサーバ間の通信での一時的使用量（単位：バイト）＝

　4×（データの多重度−1）×更新操作の履歴の最大サイズ

データの多重度：

共通設定のeads.replication.factorパラメタの指定値

更新操作の履歴の最大サイズ：

「4.1.2(1)(c)　縮退処理・復旧処理・スケールアウト処理・リバランス処理で使用するJavaヒープ領域」で見積もった「更新操作の履歴の最大サイズ」の値

4.2　ディスク使用量を見積もる

EADSを使用するために必要なディスク使用量の見積もりについて説明します。

4.2.1　EADSサーバのディスク使用量を見積もる

EADSサーバのディスク使用量の見積もりについて説明します。

ディスクキャッシュ，および2Wayキャッシュを使用する場合は，ここで算出する次の値に，「4.4　キャッシュファイルの容量を見積もる」で見積もったディスク使用量を加算してください。

1EADSサーバ当たりのログファイルの容量

ストアデータファイルの容量

(1)　1EADSサーバ当たりのログファイルの容量を算出する

1EADSサーバ当たりのログファイルの容量を見積もる計算式を次に示します。

1EADSサーバ当たりのログファイルの容量（単位：メガバイト）＝

　a＋b＋c＋d＋e

変数の説明

a：EADSサーバによって出力されるメッセージログファイルの容量

b：コマンド実行時に出力されるメッセージログファイルの容量

c：Javaログファイルの容量

d：統計情報ファイルの容量

e：ユーザログファイルの容量

各ログファイルの容量を見積もる計算式を次に示します。

なお，EADSサーバが管理するログファイルについては，「7.4.1　ログファイルの種類」を参照してください。

(a)　EADSサーバによって出力されるメッセージログファイルの容量

EADSサーバによって出力されるメッセージログファイルの容量を見積もる計算式を次に示します。

EADSサーバによって出力されるメッセージログファイルの容量

（単位：メガバイト）＝

　メッセージログファイルのファイルサイズ（単位：バイト）÷1,024²

　×メッセージログファイルのファイル数＋100

メッセージログファイルのファイルサイズ（単位：バイト）：

サーバ定義のeads.logger.message.filesizeパラメタの指定値

メッセージログファイルのファイル数：

サーバ定義のeads.logger.message.filenumパラメタの指定値

サーバ定義のeads.logger.message.filesizeパラメタの指定値はバイト単位に指定するので，メガバイト単位に切り上げて計算します。

(b)　コマンド実行時に出力されるメッセージログファイルの容量

コマンド実行時に出力されるメッセージログファイルの容量を見積もる計算式を次に示します。

コマンド実行時に出力されるメッセージログファイルの容量（単位：メガバイト）＝

　メッセージログファイルのファイルサイズ（単位：バイト）÷1,024²

　×メッセージログファイルのファイル数

メッセージログファイルのファイルサイズ（単位：バイト）：

コマンド定義のeads.command.logger.message.filesizeパラメタの指定値

メッセージログファイルのファイル数：

コマンド定義のeads.command.logger.message.filenumパラメタの指定値

コマンド定義のeads.command.logger.message.filesizeパラメタの指定値はバイト単位に指定するので，メガバイト単位に切り上げて計算します。

(c)　Javaログファイルの容量

Javaログファイルの容量を見積もる計算式を次に示します。

Javaログファイルの容量（単位：メガバイト）＝

　（Javaログファイルのファイルサイズ（単位：メガバイト）

　×Javaログファイルのファイル数）×2＋32

Javaログファイルのファイルサイズ（単位：メガバイト）：

サーバ定義のeads.java.log.filesizeパラメタの指定値

Javaログファイルのファイル数：

サーバ定義のeads.java.log.filenumパラメタの指定値

(d)　統計情報ファイルの容量

統計情報ファイルの容量を見積もる計算式を次に示します。

ノンブロッキングI/O通信制御を使用しない場合は，ノンブロッキングI/O通信制御を使用しない場合の計算式で見積もってください。

ノンブロッキングI/O通信制御を使用する場合は，ノンブロッキングI/O通信制御を使用する場合の計算式で見積もってください。

■ノンブロッキングI/O通信制御を使用しない場合

統計情報ファイルの容量（単位：メガバイト）（ノンブロッキングI/O通信制御を使用しない場合）＝

　（統計情報ファイル（eads_stats.csv）の容量

　＋キャッシュの統計情報ファイル（eads_cache_stats.csv）の容量

　＋レンジごとの統計情報ファイル（eads_store_stats.csv）の容量

　＋ユーザファンクションの統計情報ファイル（eads_function_stats.csv）の容量）

　÷1,024²

■ノンブロッキングI/O通信制御を使用する場合

統計情報ファイルの容量（単位：メガバイト）（ノンブロッキングI/O通信制御を使用する場合）＝

　（統計情報ファイル（eads_stats.csv）の容量

　＋キャッシュの統計情報ファイル（eads_cache_stats.csv）の容量

　＋レンジごとの統計情報ファイル（eads_store_stats.csv）の容量

　＋ユーザファンクションの統計情報ファイル（eads_function_stats.csv）の容量

　＋ノンブロッキングI/O通信制御の統計情報ファイル（eads_nonblocking_stats.csv）の容量）

　÷1,024²

各統計情報ファイルの容量を見積もる計算式を次に示します。

統計情報ファイル（eads_stats.csv）の容量

統計情報ファイル（eads_stats.csv）の容量（単位：バイト）＝

　｛1,024＋1,024×（86,400÷統計情報を出力する間隔）｝

　×（統計情報の取得ファイル数＋1）

キャッシュの統計情報ファイル（eads_cache_stats.csv）の容量

キャッシュの統計情報ファイル（eads_cache_stats.csv）の容量（単位：バイト）＝

　｛1,024＋（2,048

　×（メモリキャッシュの数＋（ディスクキャッシュの数＋2Wayキャッシュの数）×データの多重度））

　×（86,400÷統計情報を出力する間隔）｝

　×（統計情報の取得ファイル数＋1）

レンジごとの統計情報ファイル（eads_store_stats.csv）の容量

■データ総量監視機能を使用する場合

レンジごとの統計情報ファイル（eads_store_stats.csv）の容量（単位：バイト）＝

　｛1,024＋（2,048

　×（データの多重度＋ディスクキャッシュの数＋2Wayキャッシュの数））

　×（86,400÷統計情報を出力する間隔）｝

　×（統計情報の取得ファイル数＋1）

■データ総量監視機能を使用しない場合

レンジごとの統計情報ファイル（eads_store_stats.csv）の容量（単位：バイト）＝

　0

ユーザファンクションの統計情報ファイル（eads_function_stats.csv）の容量

ユーザファンクションの統計情報ファイル（eads_function_stats.csv）の容量（単位：バイト）＝

　｛1,024＋（2,048×ユーザファンクション数）

　×（86,400÷統計情報を出力する間隔）｝

　×（統計情報の取得ファイル数＋1）

ノンブロッキングI/O通信制御の統計情報ファイル（eads_nonblocking_stats.csv）の容量

統計情報ファイル（eads_nonblocking_stats.csv）の容量（単位：バイト）＝

　｛1,024＋1,024×（86,400÷統計情報を出力する間隔）｝

　×（統計情報の取得ファイル数＋1）

統計情報を出力する間隔：

サーバ定義のeads.statistics.intervalパラメタの指定値

統計情報の取得ファイル数：

サーバ定義のeads.statistics.filenumパラメタの指定値

(e)　ユーザログファイルの容量

ユーザログファイルの容量を見積もる計算式を次に示します。

ユーザログファイルの容量（単位：メガバイト）＝

　ユーザログファイルのファイルサイズ（単位：バイト）÷1,024²

　×ユーザログファイルのファイル数

ユーザログファイルのファイルサイズ（単位：バイト）：

サーバ定義のeads.user.logger.filesizeパラメタの指定値

ユーザログファイルのファイル数：

サーバ定義のeads.user.logger.filenumパラメタの指定値

サーバ定義のeads.user.logger.filesizeパラメタの指定値はバイト単位に指定するので，メガバイト単位に切り上げて計算します。

(2)　ストアデータファイルの容量を算出する

ストアデータファイルの容量を見積もる計算式を次に示します。

ストアデータファイルの容量（単位：メガバイト）＝

　（1件当たりのkeyサイズ＋1件当たりのvalueサイズ※1＋100）

　×1EADSサーバに格納するデータ件数※2

　×（eztool exportコマンド実行時に出力されるストアデータファイルの世代数の上限値

　＋eztool stopコマンド実行時に出力されるストアデータファイルの世代数の上限値＋1）

　÷1,024²

注※1

シリアライズ後のサイズです。

注※2

多重化によってコピーされたデータ件数も含みます。

eztool exportコマンド実行時に出力されるストアデータファイルの世代数の上限値：

共通設定のeads.admin.backup.exportCommand.generation.maxNumパラメタの指定値

eztool stopコマンド実行時に出力されるストアデータファイルの世代数の上限値：

共通設定のeads.admin.backup.stopCommand.generation.maxNumパラメタの指定値

注意事項

メモリ上にデータがない状態でストアデータファイルに書き出した場合でも，管理情報が格納され，最大4キロバイトを使用します。そのため，ストアデータファイルの使用量は0バイトにはなりません。

なお，ストアデータファイルについては，「7.4.1　ログファイルの種類」を参照してください。

(3)　1EADSサーバ当たりのログファイルの容量とストアデータファイルの容量の合計値を算出する

「4.2.1(1)　1EADSサーバ当たりのログファイルの容量を算出する」および「4.2.1(2)　ストアデータファイルの容量を算出する」で算出した値を合計します。

ディスクキャッシュ，および2Wayキャッシュを使用する場合は，「4.4　キャッシュファイルの容量を見積もる」で見積もったディスク使用量をさらに加算します。

4.2.2　EADSクライアントのディスク使用量を見積もる

EADSクライアントのディスク使用量の見積もりについて説明します。

(1)　1EADSクライアント当たりのログファイルの容量を見積もる

1EADSクライアント当たりのログファイルの容量を見積もる計算式を次に示します。

1EADSクライアント当たりのログファイルの容量（単位：メガバイト）＝

　a＋b

変数の説明

a：EADSクライアントによって出力されるメッセージログファイルの容量

b：EADSクライアントによって出力される保守ログファイルの容量

なお，EADSクライアントが管理するログファイルについては，「8.4.1　ログファイルの種類」を参照してください。

(a)　EADSクライアントによって出力されるメッセージログファイルの容量

EADSクライアントによって出力されるメッセージログファイルの容量を見積もる計算式を次に示します。

EADSクライアントによって出力されるメッセージログファイルの容量（単位：メガバイト）＝

　メッセージログファイルのファイルサイズ（単位：バイト）÷1,024²

　×メッセージログファイルのファイル数

メッセージログファイルのファイルサイズ（単位：バイト）：

クライアント定義のeads.client.logger.message.filesizeパラメタの指定値

メッセージログファイルのファイル数：

クライアント定義のeads.client.logger.message.filenumパラメタの指定値

クライアント定義のeads.client.logger.message.filesizeパラメタの指定値はバイト単位に指定するので，メガバイト単位に切り上げて計算します。

(b)　EADSクライアントによって出力される保守ログファイルの容量

EADSクライアントによって出力される保守ログファイルの容量を見積もる計算式を次に示します。

EADSクライアントによって出力される保守ログファイルの容量（単位：メガバイト）＝

　保守ログファイルのファイルサイズ（単位：バイト）÷1,024²

　×保守ログファイルのファイル数

保守ログファイルのファイルサイズ（単位：バイト）：

クライアント定義のeads.client.logger.maintenance.filesizeパラメタの指定値

保守ログファイルのファイル数：

クライアント定義のeads.client.logger.maintenance.filenumパラメタの指定値

クライアント定義のeads.client.logger.maintenance.filesizeパラメタの指定値はバイト単位に指定するので，メガバイト単位に切り上げて計算します。

4.3　スレッド数とファイルディスクリプタ数を見積もる

EADSを使用するために必要なスレッド数とファイルディスクリプタ数の見積もりについて説明します。

4.3.1　スレッド数を見積もる

(1)　1EADSサーバプロセス当たりのスレッド数

1EADSサーバプロセス当たりのスレッド数を見積もる計算式を次に示します。

ノンブロッキングI/O通信制御を使用しない場合は，ノンブロッキングI/O通信制御を使用しない場合の計算式で見積もってください。

ノンブロッキングI/O通信制御を使用する場合は，ノンブロッキングI/O通信制御を使用する場合の計算式で見積もってください。

■ノンブロッキングI/O通信制御を使用しない場合

1EADSサーバプロセス当たりのスレッド数（ノンブロッキングI/O通信制御を使用しない場合）＝

　｛キャッシュ数×（データの多重度×2−1）×2＋EADSサーバ数※1×6

　＋キャッシュ単位に行われる処理の最大同時実行スレッド数

　＋キャッシュ数×3

　＋EADSサーバへの最大同時接続数＋73｝÷0.8※2

■ノンブロッキングI/O通信制御を使用する場合

1EADSサーバプロセス当たりのスレッド数（ノンブロッキングI/O通信制御を使用する場合）＝

　｛キャッシュ数×（データの多重度×2−1）×2＋EADSサーバ数※1×6

　＋キャッシュ単位に行われる処理の最大同時実行スレッド数

　＋キャッシュ数×3

　＋リクエスト処理スレッド数＋セレクタスレッド数＋73｝÷0.8※2

注※1

クラスタを停止させないで，EADSサーバをクラスタに追加する（スケールアウト処理を実行する）予定がある場合は，EADSサーバ数に，追加するEADSサーバの数を含めてください。追加するEADSサーバの数が予測できない場合は，EADSサーバ数に，96を代入してください。

注※2

小数点以下の値は切り上げてください。

データの多重度：

共通設定のeads.replication.factorパラメタの指定値

キャッシュ単位に行われる処理の最大同時実行スレッド数：

データの多重度−1（データの多重度が1の場合は1）

EADSサーバへの最大同時接続数：

サーバ定義のeads.server.maxConnectionsパラメタの指定値

リクエスト処理スレッド数：

サーバ定義のeads.server.nonBlocking.processorThreadsパラメタの指定値

リクエスト処理スレッド数を見積もる計算式を次に示します。なお，この見積もりによる計算値は，決定値ではなくチューニングの際の参考値であるため，実際の環境や性能に応じて変更が必要な可能性があります。また，リクエスト処理スレッド数は「同時に実行されるキャッシュ操作およびファンクション操作リクエスト数の最大値」まで増やすと，EADSサーバの処理性能が改善することがあります。

リクエスト処理スレッド数＝

　MAX（1EADSサーバに対して割り当て可能な論理コア数−セレクタスレッド数−1， 1)

MAX：

計算結果の最も大きい値を選ぶことを示しています。

（例）MAX（2，10）の計算結果は10となります。

セレクタスレッド数：

サーバ定義のeads.server.nonBlocking.selectorThreadsパラメタの指定値

セレクタスレッド数には1を指定することを推奨します。なお，1EADSサーバに対して割り当て可能な論理コア数が多い場合には，指定値を大きくすると，EADSサーバの処理性能が改善することがあります。

(2)　1コマンドプロセス当たりのスレッド数

1コマンドプロセス当たりのスレッド数を見積もる計算式を次に示します。

1コマンドプロセス当たりのスレッド数＝EADSサーバプロセス数×2＋50

4.3.2　ファイルディスクリプタ数を見積もる

(1)　1EADSサーバプロセス当たりのファイルディスクリプタ数

1EADSサーバプロセス当たりのファイルディスクリプタ数を見積もる計算式を次に示します。

ノンブロッキングI/O通信制御を使用しない場合は，ノンブロッキングI/O通信制御を使用しない場合の計算式で見積もってください。

ノンブロッキングI/O通信制御を使用する場合は，ノンブロッキングI/O通信制御を使用する場合の計算式で見積もってください。

■ノンブロッキングI/O通信制御を使用しない場合

1EADSサーバプロセス当たりのファイルディスクリプタ数（ノンブロッキングI/O通信制御を使用しない場合）＝

　EADSサーバ数※1×15＋EADSサーバへの最大同時接続数

　＋ユーザが作成するライブラリ数※2

　＋90

　＋ディスク上のキャッシュが使用するファイルディスクリプタ数

■ノンブロッキングI/O通信制御を使用する場合

1EADSサーバプロセス当たりのファイルディスクリプタ数（ノンブロッキングI/O通信制御を使用する場合）＝

　EADSサーバ数※1×15＋EADSサーバへの最大同時接続数

　＋セレクタスレッド数×3

　＋ユーザが作成するライブラリ数※2

　＋92

　＋ディスク上のキャッシュが使用するファイルディスクリプタ数

注※1

クラスタを停止させないで，EADSサーバをクラスタに追加する（スケールアウト処理を実行する）予定がある場合は，EADSサーバ数に，追加するEADSサーバの数を含めてください。追加するEADSサーバの数が予測できない場合は，EADSサーバ数に，96を代入してください。

注※2

ユーザが作成するユーザファンクションのjarファイル数と，ユーザファンクションで使用するライブラリ数の合計です。

EADSサーバへの最大同時接続数：

サーバ定義のeads.server.maxConnectionsパラメタの指定値

セレクタスレッド数：

サーバ定義のeads.server.nonBlocking.selectorThreadsパラメタの指定値

「4.3.1(1)　1EADSサーバプロセス当たりのスレッド数」で求めるセレクタスレッド数を確認して，値を代入してください。

ディスク上のキャッシュが使用するファイルディスクリプタ数：

ディスクキャッシュ，および2Wayキャッシュを使用する場合は，次の計算式で見積もった値を加算します。

ディスク上のキャッシュが使用するファイルディスクリプタ数＝

　5×データの多重度×ディスクを使用するキャッシュ数

データの多重度：

共通設定のeads.replication.factorパラメタの指定値

ディスクを使用するキャッシュ数：

ディスクキャッシュ，および2Wayキャッシュのキャッシュ数の合計

eztool importコマンド実行時のファイルディスクリプタ数を見積もる計算式を次に示します。

eztool importコマンド実行時のファイルディスクリプタ数＝

　EADSサーバへの最大同時接続数×（データの多重度−1）×2

　＋EADSサーバプロセス数×100＋ユーザが作成するライブラリ数※

　＋ユーザプログラムで必要なファイルディスクリプタ数

注※

ユーザが作成するユーザファンクションのjarファイル数と，ユーザファンクションで使用するライブラリ数の合計です。

EADSサーバへの最大同時接続数：

サーバ定義のeads.server.maxConnectionsパラメタの指定値

データの多重度：

共通設定のeads.replication.factorパラメタの指定値

(2)　1コマンドプロセス当たりのファイルディスクリプタ数

1コマンドプロセス当たりのファイルディスクリプタ数を見積もる計算式を次に示します。

1コマンドプロセス当たりのファイルディスクリプタ数＝

　EADSサーバプロセス数×10＋100

4.4　キャッシュファイルの容量を見積もる

この節の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

ディスクキャッシュ，および2Wayキャッシュを使用する場合は，「4.2.1　EADSサーバのディスク使用量を見積もる」で見積もったディスク使用量に，キャッシュごとに次のファイルの容量を見積もって加算します。

キャッシュデータファイル

キャッシュインデックスファイル

なお，キャッシュデータファイルおよびキャッシュインデックスファイルについては，「7.7.2　キャッシュファイルの種類と格納先の設定」を参照してください。

ディスクキャッシュの格納先として不揮発性メモリを使用する場合は，「4.4.3　ディスクキャッシュの格納先として不揮発性メモリを使用する場合のリソースを見積もる」を参照してください。

4.4.1　キャッシュデータファイルのサイズおよび面数を見積もる

ここでは，次の値の見積もりについて説明します。

キャッシュデータファイルのサイズ

キャッシュデータファイルの面数

キャッシュデータファイルのサイズおよび面数は次の手順で見積もります。

媒体への書き込みブロックサイズを決定します。

キャッシュデータファイルに格納する，レコード1件分のサイズを見積もります。

キャッシュデータファイル1面のサイズと実際に格納できるデータ量を見積もります。

2.を基に，システムで管理する有効データの最大量を見積もります。

コンパクションの実施間隔を決定します。

2.と5.を基に，コンパクション中に更新されるデータを格納するための容量（更新データ用の容量）を見積もります。

4.と6.から，1レンジ当たりのキャッシュデータファイルに必要な容量を見積もります。

7.から，キャッシュ定義のeads.cache.disk.filesizeパラメタに指定する，1レンジ当たりのキャッシュデータファイルのサイズ，およびキャッシュ定義のeads.cache.disk.filenumパラメタに指定する，1レンジ当たりのキャッシュデータファイルの面数を見積もります。

システムの運用前に，コンパクションに掛かる時間などに問題がないことを確認します。

8.から，全レンジのキャッシュデータファイルの容量を見積もります。

それぞれの説明を次に示します。

(1)　書き込みブロックサイズを決定する

キャッシュデータファイルに対して，1回で書き込むデータサイズを，書き込みブロックサイズといいます。

書き込みブロックサイズは，キャッシュデータファイルの格納先の媒体に合わせて設定します。設定した値は，キャッシュ定義のeads.cache.disk.blocksizeパラメタに指定します。

格納先の媒体がHDDの場合

1キロバイト（デフォルト）

格納先の媒体がSSDの場合

使用するSSDのページサイズ（単位：キロバイト）

(2)　レコード1件分のサイズを見積もる

EADSサーバに格納する1件分のデータは，key，value，および制御情報を合わせて，レコードという単位で格納します。

レコード1件分のサイズを見積もる計算式を次に示します。

レコード1件分のサイズ（単位：キロバイト）＝

　（EADSサーバに格納されるkeyのサイズ（単位：バイト）

　＋EADSサーバに格納されるvalueのサイズ（単位：バイト）＋36）※1÷1,024※2

注※1

この括弧内の値は，「4.4.1(1)　書き込みブロックサイズを決定する」で決定した書き込みブロックサイズ（単位：キロバイト）（キャッシュ定義のeads.cache.disk.blocksizeパラメタの指定値）の整数倍に切り上げて見積もってください。

注※2

小数点以下の値は切り上げてください。

EADSサーバに格納されるkeyのサイズ：

EADSサーバに格納されるkeyのサイズを見積もる計算式を次に示します。

EADSサーバに格納されるkeyのサイズ（単位：バイト）＝

　keyの文字数＋4

EADSサーバに格納されるvalueのサイズ：

EADSサーバに格納されるvalueのサイズを見積もる計算式は，APを作成する言語によって異なります。計算式を次に示します。

C言語の場合，またはJava言語でバイト配列を使用する場合

EADSサーバに格納されるvalueのサイズ（単位：バイト）＝

　APIで指定したvalueのバイト数＋2

Java言語でバイト配列以外を使用する場合

EADSサーバに格納されるvalueのサイズ（単位：バイト）＝

　java.io.ObjectOutputStreamクラスで直列化したあとのvalueのバイト数＋2

参考

EADSサーバは，処理の効率化のために，keyおよびvalueを独自の形式で格納しています。このため，EADSサーバに格納されるkeyおよびvalueのサイズは，上記の計算式を使用して見積もる必要があります。

(3)　キャッシュデータファイル1面のサイズと格納できるデータ量を見積もる

キャッシュデータファイルの1面のサイズは，キャッシュ定義のeads.cache.disk.filesizeパラメタに指定したサイズです。キャッシュデータファイルにはブロックサイズの2倍となる管理情報が含まれるため，実際のデータの格納領域のサイズは，次に示す計算式で算出されるサイズとなります。

キャッシュデータファイル1面のデータの格納領域（単位：キロバイト）＝

　（キャッシュデータファイル1面のサイズ（単位：メガバイト）×1,024）

　−（書き込みブロックサイズ（単位：キロバイト）×2）

キャッシュデータファイル1面のサイズ

キャッシュ定義のeads.cache.disk.filesizeパラメタの指定値

書き込みブロックサイズ：

「4.4.1(1)　書き込みブロックサイズを決定する」で決定した値（キャッシュ定義のeads.cache.disk.blocksizeパラメタの指定値）

上記の式で算出したデータの格納領域のサイズと「4.4.1(2)　レコード1件分のサイズを見積もる」で算出したレコードのサイズによって，キャッシュデータファイルに格納できるデータ量を求めることができます。

(4)　有効データの最大量を見積もる

システムで管理する有効データの最大量を算出します。

ここでの有効データとは，更新や削除で無効となったデータを除く，getで取得できるデータのことです。

有効データの最大量を見積もる計算式を次に示します。

有効データの最大量（単位：キロバイト）＝

　1レンジ当たりのディスクキャッシュに格納するデータ件数×レコード1件分のサイズ（単位：キロバイト）

レコード1件分のサイズ：

「4.4.1(2)　レコード1件分のサイズを見積もる」で算出した値

参考

更新や削除で無効となるデータについては，「10.9　キャッシュデータファイルの使用量を削減する（キャッシュデータファイルをコンパクションする）」を参照してください。

(5)　コンパクションの実施間隔を決定する

ディスクキャッシュ，および2Wayキャッシュを使用する場合は，キャッシュデータファイルのコンパクションが必要です。

EADSサーバに格納するデータの量に応じて，「コンパクションの実施間隔（単位：時間）」を決定します。

コンパクションの処理については，「10.9　キャッシュデータファイルの使用量を削減する（キャッシュデータファイルをコンパクションする）」を参照してください。

(6)　更新データ用の容量を見積もる

キャッシュデータファイルには常に追記でデータが格納されるため，データを更新すると，キャッシュデータファイル内のデータ量が増加します。そのため，キャッシュデータファイルには，「コンパクションの実施間隔（単位：時間）」および「1回のコンパクションに掛かる時間（単位：時間）」の間に増加するデータ分の容量が必要となります。

1回のコンパクションを実行している間に更新されるデータ（更新データ）の容量を見積もります。更新データ用の容量を見積もる計算式を次に示します。

更新データ用の容量（単位：キロバイト）＝

　1EADSサーバの1時間当たりの更新回数×レコード1件分のサイズ（単位：キロバイト）

　×（コンパクションの実施間隔（単位：時間）＋1回のコンパクションに掛かる時間（単位：時間））

1EADSサーバの1時間当たりの更新回数：

put，create，update，およびreplaceの実行回数

レコード1件分のサイズ：

「4.4.1(2)　レコード1件分のサイズを見積もる」で算出した値

コンパクションの実施間隔：

「4.4.1(5)　コンパクションの実施間隔を決定する」で決定した値

1回のコンパクションに掛かる時間：

この時間はシステムによって異なります。システムの運用前にコンパクションにかかる時間を確認し，その値を代入してください。

(7)　1レンジ当たりのキャッシュデータファイルに必要な容量を見積もる

1レンジ当たりのキャッシュデータファイルに必要な容量を見積もる計算式を次に示します。

1レンジ当たりのキャッシュデータファイルに必要な容量（単位：メガバイト）＝

　（有効データの最大量（単位：キロバイト）×2

　　＋更新データ用の容量（単位：キロバイト））÷1,024

有効データの最大量：

「4.4.1(4)　有効データの最大量を見積もる」で算出した値

更新データ用の容量：

「4.4.1(6)　更新データ用の容量を見積もる」で算出した値

(8)　キャッシュデータファイルのサイズおよび面数を設計する

「4.4.1(7)　1レンジ当たりのキャッシュデータファイルに必要な容量を見積もる」で算出した，1レンジ当たりのキャッシュデータファイルに必要な容量を基に，次の式を満たすように，キャッシュデータファイル1面のサイズ，および1レンジ当たりのキャッシュデータファイルの面数を設計します。

1レンジ当たりのキャッシュデータファイルに必要な容量（単位：メガバイト）≦

　（キャッシュデータファイル1面のデータ格納領域（単位：キロバイト）

　×1レンジ当たりのキャッシュデータファイルの面数※）÷1,024

注※

キャッシュデータファイルの容量の拡張が考えられる場合は，その分の面数も考慮して決定してください。

上記の式を満たすためにキャッシュデータファイル1面のデータ格納領域を増やす場合は，キャッシュ定義のeads.cache.disk.filesizeパラメタに新しい値を指定し，「4.4.1(3)　キャッシュデータファイル1面のサイズと格納できるデータ量を見積もる」を参照して，キャッシュデータファイル1面のサイズと格納できるデータ量を再度算出してください。

1レンジ当たりのキャッシュデータファイルの面数を見積もる計算式を次に示します。

1レンジ当たりのキャッシュデータファイルの面数＝

　キャッシュデータファイルの面数＋2※

注※

データ総量監視機能を使用しない場合は，1としてください。

算出した値は，キャッシュ定義のeads.cache.disk.filenumパラメタに指定します。

(9)　コンパクションの運用計画を確認する

システムの運用前に，コンパクションに掛かる時間，およびに確保される容量に問題がないことを確かめてください。

次の計算式を満たしていない場合，コンパクションがデータの更新に間に合わないため，容量不足によるエラーが発生するおそれがあります。

更新データ用の容量＜1回のコンパクションで確保される容量

注意事項

上記の計算式を満たしていない原因がハードウェアの性能不足の場合，コンパクションの回数や実施間隔のチューニングだけでなく，ハードウェアの更新やホストの追加も考慮した対策を検討してください。

(10)　全レンジのキャッシュデータファイルの容量を見積もる

データの多重度を考量した，全レンジのキャッシュデータファイルの容量を見積もる計算式を次に示します。この計算式で算出した値を「4.2.1　EADSサーバのディスク使用量を見積もる」で見積もったディスク使用量に加算します。

全レンジのキャッシュデータファイルの容量（単位：メガバイト）＝

　キャッシュデータファイル1面のサイズ（単位：メガバイト）

　×1レンジ当たりのキャッシュデータファイルの面数

　×データの多重度

キャッシュデータファイル1面のサイズ：

キャッシュ定義のeads.cache.disk.filesizeパラメタの指定値

1レンジ当たりのキャッシュデータファイルの面数：

キャッシュ定義のeads.cache.disk.filenumパラメタの指定値

データの多重度：

共通設定のeads.replication.factorパラメタの指定値

4.4.2　キャッシュインデックスファイルのサイズを見積もる

ここでは，キャッシュインデックスファイルのサイズの見積もりについて説明します。

(1)　キャッシュインデックスファイル1面のサイズを見積もる

キャッシュインデックスファイル1面分のサイズを見積もる計算式を次に示します。

キャッシュインデックスファイル1面のサイズ（単位：バイト）＝

　48＋4×｛（キャッシュデータファイル1面のサイズ（単位：メガバイト）×1,024

　÷書き込みブロックサイズ（単位：キロバイト））−2｝

キャッシュデータファイル1面のサイズ：

キャッシュ定義のeads.cache.disk.filesizeパラメタの指定値

書き込みブロックサイズ：

「4.4.1(1)　書き込みブロックサイズを決定する」で決定した値（キャッシュ定義のeads.cache.disk.blocksizeパラメタの指定値）

(2)　全レンジのキャッシュインデックスファイルの容量を見積もる

データの多重度を考量した，全レンジのキャッシュインデックスファイルの容量を見積もる計算式を次に示します。この計算式で算出した値を「4.2.1　EADSサーバのディスク使用量を見積もる」で見積もったディスク使用量に加算します。

全レンジのキャッシュインデックスファイルの容量（単位：メガバイト）＝

　キャッシュインデックスファイル1面のサイズ（単位：バイト）

　×1レンジ当たりのキャッシュデータファイルの面数

　×データの多重度÷1,048,576

キャッシュインデックスファイル1面のサイズ：

キャッシュ定義のeads.cache.disk.filesizeパラメタの指定値

1レンジ当たりのキャッシュデータファイルの面数：

キャッシュ定義のeads.cache.disk.filenumパラメタの指定値

データの多重度：

共通設定のeads.replication.factorパラメタの指定値

4.4.3　ディスクキャッシュの格納先として不揮発性メモリを使用する場合のリソースを見積もる

ディスクキャッシュの格納先として不揮発性メモリを使用する場合のリソースの見積もりについて説明します。

(1)　不揮発性メモリに格納するキャッシュファイルの容量を見積もる

ディスクキャッシュの格納先として不揮発性メモリを使用する場合，EADSサーバは，キャッシュデータファイルおよびキャッシュインデックスファイルを不揮発性メモリのデバイスファイル内に格納します。格納対象の各ファイルのサイズは，「4.4　キャッシュファイルの容量を見積もる」の内容を参照して見積もってください。

ただし，「4.4　キャッシュファイルの容量を見積もる」に記載された，キャッシュ定義のeads.cache.disk.blocksizeパラメタの指定値の値は，キャッシュ定義のeads.cache.disk.persistentMemory.blocksizeパラメタに読み替えてください。

不揮発性メモリのブロックサイズの単位はバイトです。計算式の書き込みブロックサイズの単位はキロバイトとなっているため，256バイトは0.25キロバイト，512バイトは0.5キロバイトとして計算してください。また，各計算式で求めた数値に小数点以下の端数が発生した場合は，切り上げて以降の計算をしてください。

(2)　不揮発性メモリのデバイスファイルに必要な容量を見積もる

EADSサーバが1キャッシュで必要とする不揮発性メモリの容量を次の計算式に示します。キャッシュが複数あり，キャッシュごとに容量が異なる場合は，それぞれ見積もる必要があります。

キャッシュデータファイルとキャッシュインデックスファイルを格納するのに

必要な不揮発性メモリのデバイスファイルの容量（単位：メガバイト）≧

　（（キャッシュデータファイルのサイズ（単位：メガバイト）×1,048,576

　＋キャッシュインデックスファイルのサイズ（単位：バイト））

　×１レンジ当たりのキャッシュデータファイルの面数×データの多重度

　＋不揮発性メモリのデバイスファイル管理領域のサイズ（単位：バイト））

　÷1,048,576

キャッシュデータファイルのサイズ：

キャッシュ定義のeads.cache.disk.filesizeパラメタの指定値

「4.4.1　キャッシュデータファイルのサイズおよび面数を見積もる」で算出した値を指定します。

キャッシュインデックスファイルのサイズ：

キャッシュ定義のeads.cache.disk.filesizeパラメタの指定値

「4.4.2　キャッシュインデックスファイルのサイズを見積もる」で算出した値を，キャッシュ定義のeads.cache.disk.persistentMemory.blocksizeパラメタの整数倍になるように切り上げた値を指定します。

1レンジ当たりのキャッシュデータファイルの面数：

キャッシュ定義のeads.cache.disk.filenumパラメタの指定値

「4.4.1　キャッシュデータファイルのサイズおよび面数を見積もる」で算出した値を指定します。

データの多重度：

共通設定のeads.replication.factorパラメタの指定値

不揮発性メモリのデバイスファイル管理領域のサイズ：

キャッシュ定義のeads.cache.disk.persistentMemory.blocksizeパラメタの指定値

(3)　ディスク使用量を見積もる

不揮発性メモリのデバイスファイルからeztool exportecfコマンドでキャッシュファイルを出力する場合，「4.4.3(2)　不揮発性メモリのデバイスファイルに必要な容量を見積もる」で算出した容量と同一の容量を「4.2　ディスク使用量を見積もる」の算出結果に加算してください。

eztool exportecfコマンドをバックアップのために使用して複数の世代を保存する場合には，その世代数分の容量を加算してください。

(4)　不揮発性メモリ使用上の注意事項

ディスクキャッシュの格納先として不揮発性メモリを使用する場合，EADSサーバで使用するリソースのほかに，OSやサーバでリソースが必要になります。また，OSやサーバによっては不揮発性メモリを使用する際に条件があります。そのため，不揮発性メモリを使用する場合にはOSやサーバなどのマニュアルを参照し，それぞれのリソースに問題がないか，使用条件を満たしているかを確認してください。

5　インストールおよびセットアップを行う（EADSサーバ）

この章では，EADSサーバの構築方法について説明します。

5.1　EADSサーバをインストールする

EADSサーバをインストールする手順を説明します。

インストールはroot（スーパユーザ）で行います。

5.1.1　インストール前にすること

EADSサーバをインストールする前に，root（スーパユーザ）で次のことを行います。

(1)　hostsファイルを設定する

hostsファイルで，IPアドレスとホスト名を対応づけます。

注意事項

設定に誤りがあると，EADSが正しく動作しないおそれがあります。

5.1.2　インストール手順

注意事項

すでに別バージョンのEADSサーバがインストールされている場合，上書きインストールされます（ただし，03-00以降のバージョンに限ります）。また，EADSサーバプロセスが起動していないことを確認してからインストールしてください。

インストール手順について説明します。

インストールするマシンにroot権限でログインします。

インストールCD-ROMをCD-ROMドライブにセットします。

OSのmountコマンドで，CD-ROMファイルシステムをマウントします。

mountコマンドの実行例を次に示します。

下線部には，CD-ROMファイルシステムのマウントディレクトリ名を指定します。

mount -r -o mode=0544 /dev/cdrom /mnt/cdrom

日立PPインストーラのsetupコマンドで，セットアッププログラムを起動します。

setupコマンドの実行例を次に示します。

下線部には，CD-ROMファイルシステムのマウントディレクトリ名を指定します。

/mnt/cdrom/X64LIN/setup /mnt/cdrom

日立PPインストーラのメインメニューで，［I］キーを押します。

プログラムの選択画面が表示されます。

プログラムの選択画面で，インストールしたいプログラムにカーソルを移動させ，［スペース］キーを押します。

インストールしたいプログラムを選択してください。選択したプログラムの左側には「@」が表示されます。

選択したプログラムの左側に「@」が表示されていることを確認し，［I］キーを押します。

いちばん下の行に，次のメッセージが表示されます。

Install PP? (y: install, n: cancel)==>

インストールするかどうかを確認するメッセージが出力されたら，［Y］キーを押します。

インストールが開始されます。［N］キーを押すと，インストールが中止されてプログラムの選択画面に戻ります。

インストール終了を示すメッセージが出力されたら，［Q］キーを押します。

メインメニューに戻ります。

メインメニューで，［Q］キーを押します。

これで，インストールは完了です。

5.1.3　インストール後にすること

EADSサーバをインストールしたあと，root（スーパユーザ）で次のことを行います。

(1)　ディレクトリ構成を確認する

インストール後，EADSサーバのディレクトリ構成を確認します。

図5‒1　EADSサーバのディレクトリ構成

図に示したEADSサーバのディレクトリ構成について説明します。

ディレクトリ

説明

/opt/hitachi/xeads/server/

EADSサーバのインストールディレクトリです。

lib

EADSサーバを実行するためのライブラリファイルが格納されています。

ライブラリファイルは編集できません。

sample

eztool execfuncコマンドで実行できるユーザファンクションのサンプルプログラムが格納されています。

servers

EADSサーバの運用ディレクトリ※を配置します。

template

運用ディレクトリ※のテンプレートです。

bin

EADSサーバを運用操作するコマンドが格納されています。

コマンドは編集できません。

conf

次に示す定義ファイルが格納されています。

サーバ定義ファイル

クラスタ定義ファイル

共通設定ファイル

コマンド定義ファイル

キャッシュ定義ファイル

app

ファンクション定義ファイル，およびjarファイル（ユーザファンクション）の格納先です。

lib

ユーザファンクションを実行するためのライブラリファイルの格納先です。

logs

ログファイルの出力先（デフォルト）です。

maintenance

保守ログファイル（システムが使用するファイル）の出力先（デフォルト）です。

stats

統計情報ファイルの出力先（デフォルト）です。

store

ストアデータファイル，キャッシュ情報ファイルおよびキャッシュインデックスファイルの出力先（デフォルト）です。

/opt/hitachi/xeads/javaclient/

EADSクライアント（Java）のインストールディレクトリです。

conf

クライアント定義ファイルが格納されています。

lib

ライブラリファイルが格納されています。

/opt/hitachi/xeads/PSB

EADSで使用するJDKの格納用ディレクトリです。

jdk

JDKのインストールディレクトリです。

注※

運用ディレクトリとは，EADSサーバの運用で使用するディレクトリのことです。運用ディレクトリには，EADSサーバの稼働に必要な定義ファイルや稼働時に出力されるログなどが格納されます。

注意事項

EADSのインストールによって配置されるディレクトリとファイルの所有者，グループ，権限を変更しないでください。また，運用ディレクトリの配下以外に，ユーザ固有のファイルを格納しないでください。これらを行うと，EADSが正しく動作しないおそれがあります。

5.2　EADSサーバをセットアップする

インストール以降の作業はOSユーザ（システム運用管理者）が行います。

5.2.1　運用ディレクトリを作成する

EADSサーバの運用で使用するディレクトリを運用ディレクトリといいます。運用ディレクトリには，EADSサーバの稼働に必要な定義ファイルや稼働時に出力されるログなどが格納されます。

EADSサーバを運用するOSユーザ（システム運用管理者）でログインし，運用ディレクトリのテンプレートである/opt/hitachi/xeads/server/servers/templateディレクトリを，/opt/hitachi/xeads/server/serversディレクトリ下に別名でコピーします。運用ディレクトリ名には，最大32文字の半角英数字（0〜9，A〜Z，a〜z），およびアンダースコア（_）が指定できます。

cp -rf /opt/hitachi/xeads/server/servers/template /opt/hitachi/xeads/server/servers/＜任意の運用ディレクトリ名＞

なお，このマニュアルで表記する「EADSサーバ名」とは，運用ディレクトリ名を指します。

EADSサーバごとにOSユーザ（システム運用管理者）を割り当てることができます。運用ディレクトリのアクセス権は必要に応じて変更してください。

注意事項

すでに存在する運用ディレクトリを使用する場合，次に示すファイルとディレクトリを別のディレクトリに移動するか，または削除してください。

サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリ

コマンド定義のeads.command.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリ

また，すでに存在する運用ディレクトリを使用する場合，＜運用ディレクトリ＞/bin下のコマンドは，/opt/hitachi/xeads/server/servers/template/binディレクトリ下のコマンドに，インストール時に上書きされます。

参考

/opt/hitachi/xeads/server/serversディレクトリ下に作成したシンボリックリンクを運用ディレクトリとして使用できます。

運用ディレクトリ直下に出力されるコアダンプを別のディスクに出力したい場合などに使用します。ただし，実体側の運用ディレクトリではコマンドを実行できないため，注意してください。

5.2.2　定義ファイルを編集する

「7.　環境依存パラメタを設計する（EADSサーバ）」で設計したパラメタの指定値を，＜運用ディレクトリ＞/conf下の次の定義ファイルに設定します。

サーバ定義ファイル（eads_server.properties）

クラスタ定義ファイル（eads_cluster.properties）

共通設定ファイル（eads_shared.properties）

コマンド定義ファイル（eads_command.properties）

キャッシュ定義ファイル（eads_cache.＜キャッシュ名＞.properties）※

注※　メモリキャッシュを作成する場合，キャッシュ定義ファイルの作成は任意です。

それぞれの定義ファイルに指定できるパラメタの一覧については，「21.1　パラメタ一覧」を参照してください。

チューニングパラメタについては，「9.　チューニングパラメタを設計する」を参照して設計します。設計した値を各定義ファイルに設定してください。

ユーザファンクションを使用する場合，ファンクション定義ファイルを任意で作成します。ファンクション定義ファイルは，実行環境のEADSサーバが停止した状態で，ユーザファンクションと一緒に，＜運用ディレクトリ＞/app下にコピーします。詳細については，「17.4　ファンクション定義ファイルを作成する（任意）」および「17.9　実行環境に配布する」を参照してください。

注意事項

クラスタ定義ファイルおよび共通設定ファイルの定義内容は，クラスタを構成する全EADSサーバで同一になるようにしてください。同一でないとクラスタが構築できないため，EADSサーバは起動しません。

キャッシュ定義ファイルの次のパラメタの定義内容は，クラスタを構成する全EADSサーバで同じになるようにしてください。同じでないとキャッシュを作成できません。

・eads.cache.type

・eads.cache.eviction.policy

・eads.cache.eviction.keyCount（データ自動削除機能を使用する場合）

・eads.cache.disk.filesize

・eads.cache.disk.filenum

・eads.cache.disk.blocksize

・eads.cache.disk.persistentMemory.enable

・eads.cache.disk.persistentMemory.blocksize（ディスクキャッシュの格納先として不揮発性メモリを使用する場合）

5.2.3　APを配置する

開発環境で作成したAPを，実行環境に配布します。

ユーザファンクションの実行環境への配布については，「17.9　実行環境に配布する」を参照してください。

5.3　テストを行う

構築後の実行環境が正常に動作するかどうかテストします。テストにはコマンドを使用します。テストの流れについて，次の図に示します。

図5‒2　テストの流れ

5.3.1　EADSサーバを開始する（キャッシュを新規に作成する）

EADSサーバを開始して，キャッシュを新規に作成します。

手順については，「10.2　EADSサーバを開始する（キャッシュを新規に作成する場合）」を参照してください。

5.3.2　コマンドを使用してテスト用のデータを操作する

キャッシュが作成できたら，コマンドを使用してテスト用のデータを操作します。

(1)　テスト用のデータを格納する

eztool putコマンドを実行して，テスト用のデータを格納します。

eztool put ＜キャッシュ名＞ ＜key＞ ＜value＞

コマンド実行例

(2)　正常に動作したかどうか確認する

eztool status -vコマンドを実行して，EADSサーバが保持するkeyの数を表示します。

eztool status -v

コマンド実行例

KeyCount欄に，格納されたkeyの数が表示されます。

(3)　格納したデータを取得する

eztool getコマンドを実行して，格納したvalueを取得します。

eztool get ＜キャッシュ名＞ ＜key＞

コマンド実行例

(4)　格納したデータを削除する

eztool removeコマンドを実行して，格納したvalueを削除します。

eztool remove ＜キャッシュ名＞ ＜key＞

コマンド実行例

指定したキャッシュに格納されているkey，およびkeyに関連づけられたvalueをすべて削除したい場合は，eztool removeallコマンドを実行します。

eztool removeall ［-g ＜グループ名＞］ ＜キャッシュ名＞

コマンド実行例

また，eztool removeallコマンドに-gオプションを指定すると，指定したキャッシュに格納されているkeyのうち，指定したグループに属するkey，およびそのkeyに関連づけられたvalueをすべて削除できます。

5.3.3　EADSサーバを終了する

EADSサーバを終了します。

EADSサーバを終了すると，メモリ上のデータはすべて破棄されます。

手順については，「10.4　EADSサーバを終了する（メモリ上のデータを破棄する場合）」を参照してください。

5.4　EADSサーバをアンセットアップする

EADSサーバをアンセットアップする場合は，次に示すOSのコマンドを実行して，セットアップした運用ディレクトリを削除します。

rm -rf /opt/hitachi/xeads/server/servers/＜運用ディレクトリ名＞

これで，インストール時の状態に戻すことができます。

5.5　EADSサーバをアンインストールする

注意事項

EADSサーバプロセスが起動していないことを確認してからアンインストールしてください。

EADSサーバをアンインストールする手順を説明します。

なお，EADSサーバをアンインストールすると運用ディレクトリ以外は，すべて削除されます。そのため，製品のディレクトリ下にユーザ固有のファイルを格納しないでください。

EADSサーバをアンインストールするマシンにroot権限でログインします。

OSのコマンドで，セットアッププログラムを起動します。

/etc/hitachi_x64setup

日立PPインストーラのメインメニューで，［D］キーを押します。

現在インストールされているプログラムの一覧が表示されます。

アンインストールしたいプログラムにカーソルを移動させ，［スペース］キーを押します。

選択したプログラムの左側には「@」が表示されます。

［D］キーを押します。

アンインストールが開始されます。アンインストールが終了すると，次のメッセージが表示されます。

Delete procedure completed.

アンインストール終了を示すメッセージが出力されたら，［Q］キーを押します。

メインメニューに戻ります。

メインメニューで，［Q］キーを押します。

これで，アンインストール作業は完了です。

6　インストールおよびセットアップを行う（EADSクライアント）

この章では，EADSクライアントの構築方法について説明します。

6.1　EADSクライアントをインストールする

EADSクライアントをインストールする手順を説明します。

インストールはroot（スーパユーザ）で行います。

使用するAPの言語によって，インストールする手順が異なります。

Java言語の場合

まずEADSサーバとして使用するマシンに，EADSサーバをインストールします。EADSクライアント（Java）はEADSサーバのインストールディレクトリに格納されています。

EADSサーバのインストール手順については，「5.1.2　インストール手順」を参照してください。

EADSサーバをインストール後，EADSクライアントをインストールする別のマシンに次のディレクトリをコピーします。

/opt/hitachi/xeads/javaclient

C言語の場合

次のプログラムプロダクトをインストールしてください。

Hitachi Elastic Application Data Store Client for C

インストール手順については，「5.1.2　インストール手順」を参照してください。

6.1.1　インストール後にすること

EADSクライアントをインストールしたあと，次のことを行います。

(1)　ディレクトリ構成を確認する

インストール後，EADSクライアントのディレクトリ構成を確認します。

図6‒1　EADSクライアントのディレクトリ構成

図に示したEADSクライアントのディレクトリ構成について説明します。

ディレクトリ

説明

＜任意のディレクトリ＞/javaclient/

EADSクライアント（Java）のコピー先ディレクトリです。

conf

クライアント定義ファイルが格納されています。

lib

ライブラリファイルが格納されています。

/opt/hitachi/xeads/cclient/

EADSクライアント（C）のインストールディレクトリです。

conf

クライアント定義ファイルが格納されています。

include

ヘッダファイルが格納されています。

lib32

32ビット版のライブラリファイルが格納されています。

lib64

64ビット版のライブラリファイルが格納されています。

注意事項

EADSのインストールによって配置されるディレクトリとファイルの所有者，グループ，権限を変更しないでください。また，運用ディレクトリの配下以外に，ユーザ固有のファイルを格納しないでください。これらを行うと，EADSが正しく動作しないおそれがあります。

(2)　ライブラリを設定する

ライブラリを設定します。

(a)　Java言語の場合

次に示すライブラリを，クラスパスに設定します。

/opt/hitachi/xeads/javaclient/lib/eads-client.jar

/opt/hitachi/xeads/javaclient/lib/eads-common.jar

/opt/hitachi/xeads/javaclient/lib/hntrlib2-eads-j.jar

なお，Java EEサーバ（uCosminexus Application Server）上で実行する場合は，次に示すライブラリをAP（WARファイル（WEB-INF/libディレクトリ））に取り込む必要があります。Java EEサーバでは，ServletまたはJSPから実行できます。

/opt/hitachi/xeads/javaclient/lib/eads-client.jar

/opt/hitachi/xeads/javaclient/lib/eads-common.jar

/opt/hitachi/xeads/javaclient/lib/hntrlib2-eads-j.jar

(b)　C言語の場合

次に示すライブラリを，環境変数LD_LIBRARY_PATHに設定します。

32ビット版の場合

/opt/hitachi/xeads/cclient/lib32

64ビット版の場合

/opt/hitachi/xeads/cclient/lib64

6.2　EADSクライアントをセットアップする

APの配置と，クライアント定義ファイルの編集方法について説明します。

6.2.1　APを配置する

APを任意のディレクトリに配置します。

注意事項

Java EEサーバ（uCosminexus Application Server）上で実行する場合は，デプロイします。この場合，SecurityManagerが解除された状態で実行してください。

APの作成方法については，「第4編　AP開発」を参照してください。

6.2.2　クライアント定義ファイルを編集する

クライアント定義ファイルを編集する手順を説明します。

次に示すディレクトリ下のクライアント定義ファイルを，APで指定したディレクトリにコピーします（ファイル名もAPで指定したファイル名に合わせます）。

Java言語の場合

/opt/hitachi/xeads/javaclient/conf/eads_sample_client.properties

C言語の場合

/opt/hitachi/xeads/cclient/conf/eads_sample_client.properties

クライアント定義ファイルを編集します。

「8.　環境依存パラメタを設計する（EADSクライアント）」で設計した値をクライアント定義ファイルに設定します。

クライアント定義ファイルに指定できるパラメタの一覧については，「21.1.2(1)　クライアント定義ファイル」を参照してください。

チューニングパラメタについては，「9.　チューニングパラメタを設計する」を参照して設計します。設計した値をクライアント定義ファイルに設定してください。

6.3　EADSクライアントをアンインストールする

EADSクライアントをアンインストールする手順を次に示します。使用するAPの言語によって，アンインストールの手順が異なります。

Java言語の場合

EADSサーバの次のディレクトリをコピーしたディレクトリを削除してください。

/opt/hitachi/xeads/javaclient

C言語の場合

次のプログラムプロダクトをアンインストールしてください。

Hitachi Elastic Application Data Store Client for C

アンインストールする手順については，「5.5　EADSサーバをアンインストールする」を参照してください。参照する際は，「EADSサーバ」を「EADSクライアント」に読み替えてください。

7　環境依存パラメタを設計する（EADSサーバ）

この章では，EADSサーバの，環境依存パラメタの設計指針について説明します。

7.1　定義ファイルの種類（EADSサーバ）

EADSサーバで使用する定義ファイルの種類を次の表に示します。

なお，この章では，環境依存パラメタについてだけ説明しています。それぞれの定義ファイルに指定できるパラメタの一覧については，「21.1　パラメタ一覧」を参照してください。

表7‒1　定義ファイルの種類（EADSサーバ）

項番

定義ファイル

ファイル名

説明

1

サーバ定義ファイル

eads_server.properties

EADSサーバの実行環境を定義します。

2

クラスタ定義ファイル

eads_cluster.properties

クラスタの構成を定義します。

3

共通設定ファイル

eads_shared.properties

各EADSサーバで共通の設定を定義します。

4

コマンド定義ファイル

eads_command.properties

コマンド実行時の設定を定義します。

5

キャッシュ定義ファイル

eads_cache.＜キャッシュ名＞.properties

キャッシュの設定を定義します。キャッシュごとに作成します。

メモリキャッシュの場合，作成は任意です。

ディスクキャッシュまたは2Wayキャッシュの場合，必ず作成してください。

6

ファンクション定義ファイル

ファイル名は任意です。詳細については，「17.4　ファンクション定義ファイルを作成する（任意）」を参照してください。

ユーザファンクション実行時の設定を定義します。

作成は任意です。

注意事項

クラスタ定義ファイルおよび共通設定ファイルの定義内容は，クラスタを構成する全EADSサーバで同じになるようにしてください。同じでないとクラスタが構築できないため，EADSサーバは起動しません。

キャッシュ定義ファイルの次のパラメタの定義内容は，クラスタを構成する全EADSサーバで同じになるようにしてください。同じでないとキャッシュを作成できません。

・eads.cache.type

・eads.cache.eviction.policy

・eads.cache.eviction.keyCount（データ自動削除機能を使用する場合）

・eads.cache.disk.filesize

・eads.cache.disk.filenum

・eads.cache.disk.blocksize

・eads.cache.disk.persistentMemory.enable

・eads.cache.disk.persistentMemory.blocksize（ディスクキャッシュの格納先として不揮発性メモリを使用する場合）

その他の定義ファイルの定義内容については，同一にする必要はありませんが，同一にすることを推奨します（IPアドレスやポート番号は除きます）。

7.2　定義ファイルの形式

次のようにパラメタを指定します。

＜パラメタ名＞=＜指定値＞

指定方法

改行までが値になります。

#で始まる行はコメントと見なされます。

空行は無視されます。

値の後ろには，コメントなどの文字列は追加できません。追加した場合，不正な値と解釈されます。

同じパラメタを指定した場合，後から記述したパラメタの指定が有効になります。例えば，次のように指定されている場合，falseが有効になります。

eads.logger.message.console.enable=true
eads.logger.message.console.enable=false

なお，シェルスクリプトの場合は，次の点にも注意してください。

使用できる文字はASCIIコード「0x20」〜「0x7E」の文字，改行文字（'¥n'），復帰文字（'¥r'），タブ（'¥t'）です。

1行に1つのパラメタを指定します。1行は改行（'¥n'または'¥r¥n'）またはEOF（End Of File）までとなります。

区切り文字（パラメタ名と指定値の区切り）には，イコール（=）だけが使用できます。

（例）a△b = c

注　△は半角空白を表します。

a△bがパラメタ名，cが指定値と解釈されます。

パラメタ名と指定値の前後には，半角空白またはタブが入力できます。ただし，半角空白またはタブは削除されて解釈されます。

（例）△a△=△b△

注　△は半角空白またはタブを表します。

aがパラメタ名，bが指定値と解釈されます。

区切り文字，半角空白，またはタブを2つ以上記述した場合，2つ目以降は指定値の一部と解釈されます。

（例）a==b

aがパラメタ名，=bが指定値と解釈されます。

指定値がない場合（パラメタ名と区切り文字だけの場合），指定値は空文字列と解釈されます。

パラメタ名に制御文字を含んでいたり，パラメタ名だけを記述したりした場合は，その指定は無効となります。

7.3　通信に依存するパラメタの設計

通信に依存するパラメタを設計します。

7.3.1　IPアドレスまたはホスト名，およびポート番号の設定

EADSサーバがEADSクライアントおよび他EADSサーバとの通信で使用するIPアドレス（IPv4）またはホスト名，およびポート番号を指定します。

通信処理の仕組みについては，「2.2　EADSの通信処理の仕組み」を参照してください。

EADSクライアントおよびEADSサーバとの通信で使用する通信ポートを次の図に示します。

図7‒1　EADSクライアントおよびEADSサーバとの通信で使用する通信ポート

図中のポート番号に付いているアルファベットは，「7.3.2　通信に依存するパラメタ」の説明と次のように対応しています。

(b)：「7.3.2(1)(b)　eads.server.port」

(c)：「7.3.2(1)(c)　eads.replication.port」

(d)：「7.3.2(1)(d)　eads.failureDetector.port」

(e)：「7.3.2(1)(e)　eads.transfer.port」

(f)：「7.3.2(1)(f)　eads.admin.operation.port」

なお，コマンド定義にeztoolコマンドの接続先EADSサーバを指定しておくことで，eztoolコマンドの初期接続時にサーバ定義で指定したEADSサーバに接続できない場合に，別のEADSサーバに接続を試みることができます。

EADSサーバ間のハートビートの送信に使用するポート番号については，「7.5.3　クラスタ構成に依存するパラメタ」の「7.5.3(2)(b)　eads.failureDetector.heartbeat.port」を参照してください。

参考

ハートビートの送信はマルチキャスト通信を使用するため，ネットワークの設計時に注意が必要です。共通設定のeads.failureDetector.heartbeat.addressパラメタには，マルチキャストアドレスを指定する必要があります。

ポート番号を指定する場合は，ほかのアプリケーションとの重複を避けるため，OSが任意に割り当てるポート番号は使用しないでください。OSが任意に割り当てるポート番号は，OSの種別やバージョンによって異なります。詳細については，ご使用のOSのマニュアルを参照してください。

7.3.2　通信に依存するパラメタ

通信に依存するパラメタの一覧を次の表に示します。

なお，必ず指定するパラメタを太字で表記しています。

表7‒2　通信に依存するパラメタ一覧（EADSサーバ）

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

サーバ定義ファイル

eads.server.address

IPアドレスまたはホスト名

なし

2

eads.server.port

ポート番号

24600

3

eads.replication.port

ポート番号

24633

4

eads.failureDetector.port

ポート番号

24631

5

eads.transfer.port

ポート番号

24632

6

eads.admin.operation.port

ポート番号

24620

7

コマンド定義ファイル

eads.command.connect.sub.servers

接続先EADSサーバを識別するための名称（任意の名称）

なし

8

eads.command.＜接続先EADSサーバ＞.address

IPアドレスまたはホスト名

なし

9

eads.command.＜接続先EADSサーバ＞.admin.operation.port

ポート番号

24620

(1)　サーバ定義ファイル

(a)　eads.server.address

EADSサーバのIPアドレスまたはホスト名を指定します。

ホスト名で指定する場合は，ホスト名からIPアドレスが一意に識別できるホスト名を指定してください。

(b)　eads.server.port

EADSクライアントとの通信に使用するEADSサーバのポート番号を指定します。

(c)　eads.replication.port

EADSサーバ間の通信に使用するポート番号を指定します。

(d)　eads.failureDetector.port

EADSサーバ間の生存確認に使用するポート番号を指定します。

(e)　eads.transfer.port

EADSサーバの復旧処理，スケールアウト処理，またはリバランス処理に使用するポート番号を指定します。

(f)　eads.admin.operation.port

コマンドが使用するポート番号を指定します。

(2)　コマンド定義ファイル

(a)　eads.command.connect.sub.servers

eztoolコマンドの接続先EADSサーバを識別するための名称（任意の名称）を指定します。

名称には，半角英数字（0〜9，A〜Z，a〜z）が指定できます。

複数指定する場合は，コンマ区切りで指定してください。

コマンドの実行時，コマンドを実行したEADSサーバ（サーバ定義のeads.server.addressパラメタとサーバ定義のeads.admin.operation.portパラメタで指定した接続先）にコマンドが初期接続します。

クラスタを実行対象とするeztoolコマンドの実行時，コマンドを実行したEADSサーバへの初期接続に失敗した場合は，このパラメタに指定した順に接続先EADSサーバへの接続が試行されます。このパラメタの指定を省略した場合，およびこのパラメタに空文字を指定した場合は，コマンドを実行したEADSサーバにだけ初期接続します。

また，次に示すコマンドの実行時は，このパラメタの指定値は無視されます。

eztool listgroup

eztool listkey

eztool removeall

eztool execfunc

なお，このパラメタとコマンド定義のeads.command.＜接続先EADSサーバ＞.admin.operation.portパラメタで指定した接続先のうち，サーバ定義のeads.server.addressパラメタとサーバ定義のeads.admin.operation.portパラメタで指定した接続先と同じ接続先は無視されます。

(b)　eads.command.＜接続先EADSサーバ＞.address

eztoolコマンドの接続先EADSサーバのIPアドレスまたはホスト名を指定します。

ホスト名で指定する場合は，ホスト名からIPアドレスが一意に識別できるホスト名を指定してください。

eads.command.connect.sub.serversパラメタと対で指定します。接続先EADSサーバには，eads.command.connect.sub.serversパラメタに指定したEADSサーバを識別するための名称を指定してください。

(c)　eads.command.＜接続先EADSサーバ＞.admin.operation.port

eztoolコマンドの接続先EADSサーバのポート番号を指定します。

eads.command.connect.sub.serversパラメタと対で指定します。接続先EADSサーバには，eads.command.connect.sub.serversパラメタに指定したEADSサーバを識別するための名称を指定してください。

(d)　eads.command.connect.sub.serversパラメタの指定例

eads.command.connect.sub.serversパラメタの指定例を次に示します。

eads.command.connect.sub.servers=sv1,sv2,sv3
eads.command.sv1.address=XXX.XXX.X.138
eads.command.sv1.admin.operation.port=24600
eads.command.sv2.address=XXX.XXX.X.139
eads.command.sv2.admin.operation.port=24601
eads.command.sv3.address=XXX.XXX.X.140
eads.command.sv3.admin.operation.port=24602

7.4　ログファイルに依存するパラメタの設計

ログファイルに依存するパラメタを設計します。

7.4.1　ログファイルの種類

EADSサーバが管理するログファイルの種類を次の表に示します。

表7‒3　ログファイルの種類（EADSサーバ）

項番

ログファイル

説明

1

メッセージログファイル

動作確認やエラー監視用のメッセージログを出力するファイルです。

メッセージログは，EADSサーバまたはコマンドによって出力されます。

2

例外ログファイル

障害原因の調査で必要となるスタックトレースを出力するファイルです。

3

ユーザログファイル

ユーザファンクションの実行情報を出力するファイルです。

4

ユーザ例外ログファイル

ユーザファンクションで発生した例外のスタックトレースを出力するファイルです。

5

キャッシュファイル操作ログファイル

キャッシュデータファイルの使用状況，およびコンパクションの状況を確認，監視するための情報を出力するファイルです。

6

保守ログファイル

システムが使用するファイルです。

ユーザが設定するパラメタはありません。

7

分散保守ログファイル

システムが使用するファイルです。

ユーザが設定するパラメタはありません。

8

統計情報ファイル

チューニングの見直し，性能測定，リソース見積もりなどに使用する統計情報を出力するファイルです。

9

Javaログファイル

JavaVMのGC（ガーベージコレクション）やメモリに関する情報を出力するファイルです。

10

スレッドダンプ

Javaプロセス内で動作しているスレッドの情報を出力するファイルです。

11

起動ログファイル

ezstartコマンドによるEADSサーバ起動時のログを出力するファイルです。

ユーザが設定するパラメタはありません。

7.4.2　ファイルの出力先の設定

ログファイルの出力先は変更できます。ファイルの出力先を次の表に示します。

表7‒4　ファイルの出力先（EADSサーバ）

項番

ログファイル種別

出力先

ファイル名

1

EADSサーバによって出力されるメッセージログファイル

（メッセージログの情報）

サーバ定義のeads.logger.dirパラメタに指定したディレクトリ

Wrap

eads_server_message[n].log

Shift

eads_server_message.log

2

EADSサーバによって出力される例外ログファイル

（例外ログ情報）

サーバ定義のeads.logger.dirパラメタに指定したディレクトリ

Wrap

eads_server_exception[n].log

Shift

eads_server_exception.log

3

ユーザログファイル

サーバ定義のeads.logger.dirパラメタに指定したディレクトリ

Wrap

eads_user_message[n].log

Shift

eads_user_message.log

4

ユーザ例外ログファイル

サーバ定義のeads.logger.dirパラメタに指定したディレクトリ

Wrap

eads_user_exception[n].log

Shift

eads_user_exception.log

5

キャッシュファイル操作ログファイル

サーバ定義のeads.logger.dirパラメタに指定したディレクトリ

Wrap

eads_server_cache[n].log

Shift

eads_server_cache.log

6

EADSサーバによって出力される保守ログファイル

（保守ログ情報）

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/maintenance

eads_server_maintenance[n].log

7

EADSサーバによって出力される分散保守ログファイル

（保守ログ情報）

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/maintenance

eads_dist_maintenance[n].log

8

コマンド実行時に出力されるメッセージログファイル

（メッセージログの情報）

コマンド定義のeads.command.logger.dirパラメタに指定したディレクトリ

Wrap

eads_command_message[n].log

Shift

eads_command_message.log

9

コマンド実行時に出力される例外ログファイル

（例外ログ情報）

コマンド定義のeads.command.logger.dirパラメタに指定したディレクトリ

Wrap

eads_command_exception[n].log

Shift

eads_command_exception.log

10

コマンド実行時に出力される保守ログファイル

（保守ログ情報）

＜コマンド定義のeads.command.logger.dirパラメタに指定したディレクトリ＞/maintenance

eads_command_maintenance[n].log

11

統計情報ファイル

（EADSサーバ）

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/stats

eads_stats.csv

eads_stats_[n].csv※1

12

統計情報ファイル

（キャッシュ）

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/stats

eads_cache_stats.csv

eads_cache_stats_[n].csv※1

13

統計情報ファイル

（ユーザファンクション）

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/stats

eads_function_stats.csv

eads_function_stats_[n].csv※1

14

統計情報ファイル（レンジ）

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/stats

eads_store_stats.csv

eads_store_stats_[n].csv※1

15

統計情報ファイル

（ノンブロッキングI/O通信制御）

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/stats

eads_nonblocking_stats.csv

eads_nonblocking_stats_[n].csv※1

16

統計情報ファイル

（保守情報）

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/maintenance/stats

eads_maintenance_stats.csv

eads_maintenance_stats_[n].csv※1

17

Javaログファイル

サーバ定義のeads.logger.dirパラメタに指定したディレクトリ

javalog[nn].log

ehjavalog[nn].log※2

18

スレッドダンプ

サーバ定義のeads.logger.dirパラメタに指定したディレクトリ

javacore[PID].[YYMMDDhhmmss].txt

19

起動ログファイル

サーバ定義のeads.logger.dirパラメタに指定したディレクトリ

eads_start.log

（凡例）

[n]，[nn]，[nnn]：ファイル数の通番

[PID]：EADSサーバのプロセスID

[YYMMDDhhmmss]：YY：年，MM：月，DD：日，hh：時（00〜23），mm：分，ss：秒

Wrap，Shift：ログのローテーション方式

ログのローテーション方式は，次のどちらかを選択できます。

Wrap：ラップアラウンド方式

ファイル名にファイル数の通番が付与されます。

Shift：シフト方式

ファイル名は固定です。

ログファイルのバックアップファイル名にファイル数の通番が付与されます。

注※1

統計情報ファイルは1日ごとにファイルをローテーションし，ファイル名には通番が付与されます。ローテーションする際，サーバ定義のeads.statistics.filenumパラメタに指定した数の統計情報ファイルをバックアップファイルとして残します。

統計情報ファイルのローテーションについては，「7.4.4　統計情報ファイルのローテーションの設定」を参照してください。

注※2

Explicitヒープに関するログを出力するファイルです。

注意事項

ファイルの出力先に，ネットワークで接続された別マシンのディレクトリは指定できません。

7.4.3　ファイルサイズおよびファイル数の設定

ログファイルのファイルサイズおよびファイル数は，基本的にデフォルト値を設定してください。EADSサーバ構築後，必要に応じてパラメタの指定値を変更してください。

7.4.4　統計情報ファイルのローテーションの設定

統計情報は，統計情報が更新されるタイミングでファイルに出力されます。

取得する統計情報ファイル数をサーバ定義のeads.statistics.filenumパラメタに指定します。

1日分の統計情報が1ファイルに出力されます。統計情報ファイルは1日ごとにファイルをローテーションします。

固定の時刻（00時00分）を過ぎてから，最初に統計情報が更新されるタイミングで出力先のファイルが切り替わります。

なお，統計情報ファイルは，ローテーションするごとにファイル名がeads_stats_[n].csvにリネームされます。[n]はファイルの通番を表します。番号の小さいファイルほど新しく作成されたファイルとなり，eads_stats.csv（通番のないファイル）が最新のファイルになります。

7.4.5　ログファイルに依存するパラメタ

ログファイルに依存するパラメタの一覧を次の表に示します。

表7‒5　ログファイルに依存するパラメタ一覧（EADSサーバ）

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

サーバ定義ファイル

eads.logger.dir

パス名

＜運用ディレクトリ＞/logs

2

eads.logger.message.rotationStyle

Wrap

Shift

Wrap

3

eads.logger.message.filesize

ファイルサイズ（4096バイト〜2147483647バイト）

1048576バイト

4

eads.logger.message.filenum

ファイル数（1〜16）

2

5

eads.logger.message.console.enable

true

false

false

6

eads.logger.exception.rotationStyle

Wrap

Shift

Wrap

7

eads.logger.exception.filesize

ファイルサイズ（4096バイト〜2147483647バイト）

1048576バイト

8

eads.logger.exception.filenum

ファイル数（1〜16）

2

9

eads.user.logger.rotationStyle

Wrap

Shift

Wrap

10

eads.user.logger.filesize

ファイルサイズ（4096バイト〜2147483647バイト）

1048576バイト

11

eads.user.logger.filenum

ファイル数（1〜16）

2

12

eads.user.logger.exception.rotationStyle

Wrap

Shift

Wrap

13

eads.user.logger.exception.filesize

ファイルサイズ（4096バイト〜2147483647バイト）

1048576バイト

14

eads.user.logger.exception.filenum

ファイル数（1〜16）

2

15

eads.cache.logger.diskCache.rotationStyle

Wrap

Shift

Wrap

16

eads.cache.logger.diskCache.filesize

ファイルサイズ（4096バイト〜2147483647バイト）

1048576バイト

17

eads.cache.logger.diskCache.filenum

ファイル数（1〜16）

2

18

eads.statistics.interval

1〜3600

1

19

eads.statistics.filenum

1〜366

7

20

eads.statistics.compaction.effect.division

1〜10

5

21

eads.java.log.filesize

ファイルサイズ（1メガバイト〜2097152メガバイト）

8メガバイト

22

eads.java.log.filenum

ファイル数（1〜99）

4

23

コマンド定義ファイル

eads.command.logger.dir

パス名

＜運用ディレクトリ＞/logs

24

eads.command.logger.message.rotationStyle

Wrap

Shift

Wrap

25

eads.command.logger.message.filesize

ファイルサイズ（4096バイト〜2147483647バイト）

1048576バイト

26

eads.command.logger.message.filenum

ファイル数（1〜64）

2

27

eads.command.logger.exception.rotationStyle

Wrap

Shift

Wrap

28

eads.command.logger.exception.filesize

ファイルサイズ（4096バイト〜2147483647バイト）

1048576バイト

29

eads.command.logger.exception.filenum

ファイル数（1〜16）

2

(1)　サーバ定義ファイル

(a)　eads.logger.dir

EADSサーバによって出力されるログファイルの出力先ディレクトリのパスを指定します。

指定されたパスが存在しない場合は作成します。

このパラメタに指定したディレクトリ下に出力されるログファイルについては，「7.4.2　ファイルの出力先の設定」を参照してください。

出力先ディレクトリのパスには，最大96文字の半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），コロン（:），およびセパレータ（スラッシュ（/））が指定できます。

このパラメタの指定値を変更した場合は，このパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(b)　eads.logger.message.rotationStyle

EADSサーバによって出力されるメッセージログのローテーション方式を指定します。

Wrap：

ラップアラウンド方式を使用します。

Shift：

シフト方式を使用します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(c)　eads.logger.message.filesize

EADSサーバによって出力されるメッセージログの1ファイル当たりのファイルサイズ（単位：バイト）を指定します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(d)　eads.logger.message.filenum

EADSサーバによって出力されるメッセージログのファイル数を指定します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(e)　eads.logger.message.console.enable

EADSサーバによって出力されるメッセージログの，標準出力への出力を有効にするか，無効にするかを指定します。

true：

標準出力への出力を有効にします。

false：

標準出力への出力を無効にします。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(f)　eads.logger.exception.rotationStyle

EADSサーバによって出力される例外ログのローテーション方式を指定します。

Wrap：

ラップアラウンド方式を使用します。

Shift：

シフト方式を使用します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(g)　eads.logger.exception.filesize

EADSサーバによって出力される例外ログの1ファイル当たりのファイルサイズ（単位：バイト）を指定します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(h)　eads.logger.exception.filenum

EADSサーバによって出力される例外ログのファイル数を指定します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(i)　eads.user.logger.rotationStyle

ユーザログのローテーション方式を指定します。

Wrap：

ラップアラウンド方式を使用します。

Shift：

シフト方式を使用します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(j)　eads.user.logger.filesize

ユーザログの1ファイル当たりのファイルサイズ（単位：バイト）を指定します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(k)　eads.user.logger.filenum

ユーザログのファイル数を指定します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(l)　eads.user.logger.exception.rotationStyle

ユーザ例外ログのローテーション方式を指定します。

Wrap：

ラップアラウンド方式を使用します。

Shift：

シフト方式を使用します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(m)　eads.user.logger.exception.filesize

ユーザ例外ログの1ファイル当たりのファイルサイズ（単位：バイト）を指定します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(n)　eads.user.logger.exception.filenum

ユーザ例外ログのファイル数を指定します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(o)　eads.cache.logger.diskCache.rotationStyle

キャッシュファイル操作ログのローテーション方式を指定します。

Wrap：

ラップアラウンド方式を使用します。

Shift：

シフト方式を使用します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(p)　eads.cache.logger.diskCache.filesize

キャッシュファイル操作ログの1ファイル当たりのファイルサイズ（単位：バイト）を指定します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(q)　eads.cache.logger.diskCache.filenum

キャッシュファイル操作ログのファイル数を指定します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(r)　eads.statistics.interval

統計情報を出力する間隔（単位：秒）を指定します。

(s)　eads.statistics.filenum

統計情報の取得ファイル数を指定します。

このパラメタの指定値を変更した場合は，次に示すファイルを別のディレクトリに移動するか，または削除してください。

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/stats下の，拡張子が.mmの全ファイル

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/maintenance/stats下の，拡張子が.mmの全ファイル

(t)　eads.statistics.compaction.effect.division

キャッシュの統計情報で使用する，コンパクションの効果のファイル数の分布を分割する個数を指定します。

例えば，このパラメタに4を指定した場合，分布は4つに分割されるため，コンパクションの効果が「0〜25%」，「26〜50%」，「51〜75%」および「76〜100%」であるファイル数がそれぞれ出力されます。

効果の値が整数にならない場合，小数点以下はすべて切り捨てられます。

(u)　eads.java.log.filesize

Javaログのファイルサイズ（単位：メガバイト）を指定します。

(v)　eads.java.log.filenum

Javaログのファイル数を指定します。

(2)　コマンド定義ファイル

(a)　eads.command.logger.dir

コマンド実行時に出力されるログファイルの出力先ディレクトリのパスを指定します。

指定されたパスが存在しない場合は作成します。

このパラメタに指定したディレクトリ下に出力されるログファイルについては，「7.4.2　ファイルの出力先の設定」を参照してください。

出力先ディレクトリのパスには，最大96文字の半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），コロン（:），およびセパレータ（スラッシュ（/））が指定できます。

このパラメタの指定値を変更した場合は，このパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(b)　eads.command.logger.message.rotationStyle

コマンド実行時に出力されるメッセージログのローテーション方式を指定します。

Wrap：

ラップアラウンド方式を使用します。

Shift：

シフト方式を使用します。

このパラメタの指定値を変更した場合は，コマンド定義のeads.command.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(c)　eads.command.logger.message.filesize

コマンド実行時に出力されるメッセージログの1ファイル当たりのファイルサイズ（単位：バイト）を指定します。

このパラメタの指定値を変更した場合は，コマンド定義のeads.command.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(d)　eads.command.logger.message.filenum

コマンド実行時に出力されるメッセージログのファイル数を指定します。

このパラメタの指定値を変更した場合は，コマンド定義のeads.command.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(e)　eads.command.logger.exception.rotationStyle

コマンド実行時に出力される例外ログのローテーション方式を指定します。

Wrap：

ラップアラウンド方式を使用します。

Shift：

シフト方式を使用します。

このパラメタの指定値を変更した場合は，コマンド定義のeads.command.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(f)　eads.command.logger.exception.filesize

コマンド実行時に出力される例外ログの1ファイル当たりのファイルサイズ（単位：バイト）を指定します。

このパラメタの指定値を変更した場合は，コマンド定義のeads.command.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(g)　eads.command.logger.exception.filenum

コマンド実行時に出力される例外ログのファイル数を指定します。

このパラメタの指定値を変更した場合は，コマンド定義のeads.command.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

7.5　クラスタ構成に依存するパラメタの設計

クラスタ構成に依存するパラメタを設計します。

7.5.1　EADSサーバの位置の設定

EADSサーバをクラスタ内のどこに配置するかをeads.node.＜EADSサーバID＞.positionパラメタで設定します。EADSサーバの位置（ハッシュ値）を指定することで，負荷を分散させることができます。

位置を指定しなければ，EADSサーバはクラスタ上の論理的な位置に均等に分散配置されます。

keyや業務の特性によって，データの配置（データ数，データ使用量，またはデータアクセス数）が偏ることがあります。そうなると，一部のEADSサーバに負荷が掛かり，レスポンス速度の低下やリソース不足などにつながります。

EADSサーバの位置を指定する場合は，統計情報（KeyCount，UsedMemorySize，およびRequestCount）を確認し，位置を分析します。

図7‒2　EADSサーバの位置の設定

データの分散配置については，「2.5　コンシステント・ハッシングによるデータの分散配置」を参照してください。

7.5.2　データの多重度の設定

eads.replication.factorパラメタでデータの多重度を設定します。

クラスタを構成するEADSサーバ数は，「データの多重度×2−1」以上であることが前提です。障害発生時にデータの多重度未満の数のEADSサーバがダウンしても，データの整合性は確保されます。そのため，多重度を上げると信頼性と耐障害性が向上します。

一方で，必要なメモリ所要量が増加したり，EADSサーバ間の通信などのオーバヘッドが大きくなったりします。

多重度はこのようなメリット，デメリットを考慮して設定する必要があります。

多重度を3に設定した場合の例を次の図に示します。

図7‒3　データの多重度の設定

多重度を3に設定した場合，EADSサーバ数は最小で5つ必要です。5つであれば，障害発生時に2つのEADSサーバがダウンしても，データが欠落することはありません。

データの多重化については，「2.9　データの多重化」を参照してください。

7.5.3　クラスタ構成に依存するパラメタ

クラスタ構成に依存するパラメタの一覧を次の表に示します。

なお，必ず指定するパラメタを太字で表記しています。

表7‒6　クラスタ構成に依存するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

クラスタ定義ファイル

eads.node.＜EADSサーバID＞.address

IPアドレスまたはホスト名

なし

2

eads.node.＜EADSサーバID＞.port

ポート番号

なし

3

eads.node.＜EADSサーバID＞.position

-2147483648〜2147483647

なし

4

共通設定ファイル

eads.failureDetector.heartbeat.address

IPアドレス（マルチキャストアドレス）

239.255.2.1

5

eads.failureDetector.heartbeat.port

ポート番号

24630

6

eads.replication.factor

1〜5

2

注意事項

クラスタ定義ファイルおよび共通設定ファイルの定義内容は，クラスタを構成する全EADSサーバで同じになるようにしてください。同一でないとクラスタが構築できないため，EADSサーバは起動しません。

また，範囲外の値が設定されていた場合は，デフォルト値が設定されます。

(1)　クラスタ定義ファイル

(a)　eads.node.＜EADSサーバID＞.address

クラスタを構成するEADSサーバのIPアドレスまたはホスト名（サーバ定義のeads.server.addressパラメタの値）を指定します。

ホスト名で指定する場合は，ホスト名からIPアドレスが一意に識別できるホスト名を指定してください。

EADSサーバIDはユーザが任意に割り振る番号（1〜96の整数）です。EADSサーバIDはクラスタ内のEADSサーバを一意に識別するために，ストアデータファイル名に使用されます。連番でなくてもかまいませんが，クラスタ内ではユニークにする必要があります。

(b)　eads.node.＜EADSサーバID＞.port

クラスタを構成するEADSサーバのポート番号（サーバ定義のeads.server.portパラメタの値）を指定します。

EADSサーバIDはユーザが任意に割り振る番号（1〜96の整数）です。EADSサーバIDはクラスタ内のEADSサーバを一意に識別するために，ストアデータファイル名に使用されます。連番でなくてもかまいませんが，クラスタ内ではユニークにする必要があります。

(c)　eads.node.＜EADSサーバID＞.position

EADSサーバの位置（ハッシュ値）を指定します。

EADSサーバIDはユーザが任意に割り振る番号（1〜96の整数）です。EADSサーバIDはクラスタ内のEADSサーバを一意に識別するために，ストアデータファイル名に使用されます。連番でなくてもかまいませんが，クラスタ内ではユニークにする必要があります。

このパラメタは省略できます。省略した場合，EADSサーバがクラスタ上の論理的な位置に均等に分散配置されるように設定されます。

指定する場合は，クラスタを構成する全EADSサーバの位置を指定してください。指定の有無が混在した場合はエラーとなり，EADSサーバの起動に失敗します。

(2)　共通設定ファイル

(a)　eads.failureDetector.heartbeat.address

EADSサーバ間のハートビートの送信に使用するIPアドレス（マルチキャストアドレス）を指定します。

IPアドレスのエイリアス名でも指定できます。

(b)　eads.failureDetector.heartbeat.port

EADSサーバ間のハートビートの送信に使用するポート番号を指定します。

(c)　eads.replication.factor

データの多重度を指定します。

注意事項

クラスタを構成するEADSサーバ数は，「データの多重度×2−1」以上であることが前提です。

クラスタを構成するEADSサーバ数が，「データの多重度×2−1」より少なかった場合，エラーとなりEADSサーバの開始に失敗します。

7.6　バックアップファイルに依存するパラメタの設計

バックアップファイルに依存するパラメタを設計します。

メモリキャッシュに格納されているデータを出力するバックアップファイルを，ストアデータファイルといいます。

7.6.1　ファイルの出力先の設定

ストアデータファイルの出力先は変更できます。ファイルの出力先を次の表に示します。

表7‒7　ストアデータファイルの出力先

項番

ストアデータファイル種別

出力先

ファイル名

1

eztool exportコマンド実行時に出力されるストアデータファイル

サーバ定義のeads.admin.backup.dirパラメタに指定したディレクトリ

eads_[xxx]_[EADSサーバID].esd

eads_single_[xxx]_[EADSサーバID].esd

2

eztool stopコマンド実行時に出力されるストアデータファイル

サーバ定義のeads.admin.backup.dirパラメタに指定したディレクトリ

eads_stop_[YYYYMMDDhhmmss]_[EADSサーバID].esd

（凡例）

[xxx]：eztool exportコマンド実行時に指定したストアデータファイルキー

[YYMMDDhhmmss]：YY：年，MM：月，DD：日，hh：時（00〜23），mm：分，ss：秒

注

ストアデータファイル名は，接頭辞，ストアデータファイルキー（任意の値），接尾辞で構成されます。接頭辞は，ストアデータファイルを出力したコマンドによって異なります。

eztool exportコマンド実行時に出力されるストアデータファイルの場合，ストアデータファイルキーを省略すると，次の表に示すように，コマンド実行日時がストアデータファイルキーとなります。

なお，eztool stopコマンド実行時に出力されるストアデータファイルの場合，ストアデータファイルキーは指定できません。コマンド実行日時がストアデータファイルキーとなります。

-sまたは--single

オプション指定

ストアデータファイル名

世代管理

の対象

なし

eads_[YYYYMMDDhhmmss]_[EADSサーバID].esd

対象

あり

eads_single_[YYYYMMDDhhmmss]_[EADSサーバID].esd

対象外

（凡例）

[YYYYMMDDhhmmss]：コマンド実行日時

YYYY：年，MM：月，DD：日，hh：時（00〜23），mm：分，ss：秒

注意事項

ファイルの出力先に，ネットワークで接続された別マシンのディレクトリは指定できません。

7.6.2　ストアデータファイルの世代数の設定

ストアデータファイルはeztool exportコマンド，またはeztool stopコマンド実行時に出力されます。

(1)　eztool exportコマンド実行時に出力されるストアデータファイル

eztool exportコマンドを実行してデータを書き出すとき，通常はストアデータファイルキーを省略します。省略すると，次に示すように，コマンド実行日時がストアデータファイルキーとなります。

eads_[YYYYMMDDhhmmss]_[EADSサーバID].esd

（凡例）

[YYYYMMDDhhmmss]：コマンド実行日時

YYYY：年，MM：月，DD：日，hh：時（00〜23），mm：分，ss：秒

ストアデータファイルキーには，自動的に接頭辞（eads_）と接尾辞（_EADSサーバID.拡張子）が付きます。拡張子は「.esd」です。

ストアデータファイルキーが上記の形式であれば，eztool importコマンドを実行してデータを読み込むとき，コマンド実行日時が最新のストアデータファイルが自動的に読み込まれます。

ストアデータファイルには，EADSサーバが保持する全データが出力されます。全データには，多重化によってコピーされたデータも含みます。1つのデータに対してキャッシュ名，key，更新日付，およびvalueが出力されます。

ストアデータファイルの出力先については，「7.4.2　ファイルの出力先の設定」を参照してください。

なお，出力先にすでに同じ名称のストアデータファイルが存在する場合は，上書きされないでeztool exportコマンドがエラーとなります。

(2)　ストアデータファイルの世代管理

コマンド実行日時が同じストアデータファイルは1つのグループとして見なされ，共通設定のeads.admin.backup.exportCommand.generation.maxNumパラメタに指定した上限値まで，クラスタ全体で世代管理されます。これによって，ストアデータファイルの増加によるディスク容量の圧迫を防ぎます。

クラスタ全体で保持するストアデータファイルの世代数の上限値を2（デフォルト）に設定した場合の例を次の図に示します。

図7‒4　ストアデータファイルの世代数の設定

この上限値を超えるストアデータファイルが出力されると，eztool exportコマンドはエラーとなります。eztool deleteesdコマンドを実行して，不要なストアデータファイルを削除してください。

ストアデータファイルの確認および削除手順については，「11.7　ストアデータファイルを管理したい」を参照してください。

注意事項

ストアデータファイルが世代管理されないケースを次に示します。

世代数の上限値（共通設定のeads.admin.backup.exportCommand.generation.maxNumパラメタ）に0を指定した場合

eztool exportコマンドに-sまたは--singleオプションを指定した場合

(3)　eztool stopコマンド実行時に出力されるストアデータファイル

eztool stopコマンドを実行してEADSサーバを終了するとき，データをファイルに書き出してからEADSサーバを終了します。

このとき，ストアデータファイルキーは指定できません。次に示すように，コマンド実行日時がストアデータファイルキーとなります。

また，ストアデータファイルキーには，自動的に接頭辞（eads_stop_）と接尾辞（_EADSサーバID.拡張子）が付きます。拡張子は「.esd」です。

eads_stop_[YYYYMMDDhhmmss]_[EADSサーバID].esd

（凡例）

[YYYYMMDDhhmmss]：コマンド実行日時

YYYY：年，MM：月，DD：日，hh：時（00〜23），mm：分，ss：秒

eztool stopコマンド実行時に出力されるストアデータファイルの世代数の上限値を，共通設定のeads.admin.backup.stopCommand.generation.maxNumパラメタに指定します。

この上限値を超えるストアデータファイルが出力されると，最新のストアデータファイルが出力されたあと，最も古いストアデータファイルが自動的に削除されます。

注意事項

eztool stopコマンドに--no_exportオプションを指定した場合は，EADSサーバ終了時に，データをファイルに出力しません。

7.6.3　バックアップファイルに依存するパラメタ

バックアップファイルに依存するパラメタの一覧を次の表に示します。

表7‒8　バックアップファイルに依存するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

サーバ定義ファイル

eads.admin.backup.dir

パス名

＜運用ディレクトリ＞/store

2

共通設定ファイル

eads.admin.backup.exportCommand.generation.maxNum

0〜32

2

3

eads.admin.backup.stopCommand.generation.maxNum

1〜32

1

(1)　サーバ定義ファイル

(a)　eads.admin.backup.dir

ストアデータファイルの出力先ディレクトリのパスを指定します。

(2)　共通設定ファイル

(a)　eads.admin.backup.exportCommand.generation.maxNum

eztool exportコマンド実行時に出力されるストアデータファイルの世代数の上限値を指定します。

この上限値を超えるストアデータファイルが出力されると，eztool exportコマンドはエラーとなります。

また，出力先にすでに同じ名称のストアデータファイルが存在する場合は，上書きされないでeztool exportコマンドがエラーとなります。

このパラメタに0を指定した場合，ストアデータファイルは世代管理されません。

(b)　eads.admin.backup.stopCommand.generation.maxNum

eztool stopコマンド実行時に出力されるストアデータファイルの世代数の上限値を指定します。

この上限値を超えるストアデータファイルが出力されると，最新のストアデータファイルが出力されたあと，最も古いストアデータファイルが自動的に削除されます。

7.7　キャッシュの運用に依存するパラメタの設計

この節の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

キャッシュの運用に依存するパラメタを設計します。

7.7.1　キャッシュタイプごとのパラメタの設定

作成するキャッシュタイプによって，キャッシュ定義のパラメタの設定が異なります。

キャッシュタイプについては，「2.3.1　キャッシュの種類（キャッシュタイプ）」を参照してください。

(1)　メモリキャッシュを作成する場合

メモリキャッシュを作成する場合，キャッシュ定義ファイルの作成は任意です。

キャッシュ定義ファイルを作成する場合，eads.cache.typeパラメタにMemoryを指定します。

(2)　ディスクキャッシュ，または2Wayキャッシュを作成する場合

ディスクキャッシュ，または2Wayキャッシュを作成する場合，キャッシュ定義ファイルを必ず作成します。

また，次のキャッシュ定義のパラメタは必ず指定します。

eads.cache.type

ディスクキャッシュを作成する場合は，Diskを指定します。

2Wayキャッシュを作成する場合は，2Wayを指定します。

eads.cache.disk.<n>.dir

「7.7.2(2)　キャッシュファイルの格納先の設定」を参照してください。

eads.cache.disk.filesize

「4.4.1　キャッシュデータファイルのサイズおよび面数を見積もる」で見積もった値を指定します。

eads.cache.disk.filenum

「4.4.1　キャッシュデータファイルのサイズおよび面数を見積もる」で見積もった値を指定します。

eads.cache.disk.persistentMemory.device

ディスクキャッシュの格納先として不揮発性メモリを使用する場合（eads.cache.disk.persistentMemory.enableパラメタにtrueを指定する場合）に必ず指定します。

「7.7.2(2)　キャッシュファイルの格納先の設定」を参照してください。

7.7.2　キャッシュファイルの種類と格納先の設定

ディスクキャッシュ，および2Wayキャッシュを使用する場合に，キャッシュの情報を格納するファイルの格納先を指定します。

キャッシュの情報を格納するファイルを，キャッシュファイルといいます。

ディスクキャッシュ，および2Wayキャッシュを使用する場合は，キャッシュファイルの格納先を指定します。

ディスクキャッシュの格納先には，不揮発性メモリも使用できます（eads.cache.disk.persistentMemory.enableパラメタで指定します）。詳細については，「7.7.2(4)　ディスクキャッシュの格納先として不揮発性メモリを使用する」を参照してください。

(1)　キャッシュファイルの種類

キャッシュファイルには次の3種類があります。

(a)　キャッシュデータファイル

キャッシュに格納するデータ（keyおよびvalue）を格納するファイルです。

(b)　キャッシュインデックスファイル

キャッシュデータファイルに含まれるデータのインデックスを格納するファイルです。

キャッシュデータファイルと同じ数のファイルが作成されます。

(c)　キャッシュ情報ファイル

キャッシュの設定情報を格納するファイルです。

キャッシュごとにファイルが1つ作成されます。

(2)　キャッシュファイルの格納先の設定

キャッシュファイルの格納先を指定します。

キャッシュファイルのうち，キャッシュデータファイルの格納先は必ず指定します。キャッシュファイルの格納先を次の表に示します。

表7‒9　キャッシュファイルの格納先とファイル名

項番

キャッシュファイル種別

格納先

ファイル名

1

キャッシュデータファイル

＜キャッシュ定義のeads.cache.disk.<n>.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞

eads_data_[EADSサーバID]_[キャッシュ名]_[レンジID]_[nnnnn].ecf

＜キャッシュ定義のeads.cache.disk.persistentMemory.deviceパラメタで指定した不揮発性メモリのデバイスファイル＞※1

−※2

2

キャッシュインデックスファイル

＜キャッシュ定義のeads.cache.disk.info.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞

eads_index_[EADSサーバID]_[キャッシュ名]_[レンジID]_[nnnnn].ecf

＜キャッシュ定義のeads.cache.disk.persistentMemory.deviceパラメタで指定した不揮発性メモリのデバイスファイル＞※1

−※2

3

キャッシュ情報ファイル

＜キャッシュ定義のeads.cache.disk.info.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞

eads_info_[EADSサーバID]_[キャッシュ名].ecf

（凡例）

[レンジID]：キャッシュ内のレンジを識別するための番号（01〜96の整数）です。データの格納先EADSサーバのサーバIDと一致します。

[nnnnn]：ファイル数の連番（5桁の整数）です。

−：該当しません。

注※1

ディスクキャッシュの格納先として不揮発性メモリを使用する場合の格納先です。

注※2

ディスクキャッシュの格納先として不揮発性メモリを使用する場合，指定したデバイスファイルにキャッシュが作成されるため，キャッシュファイルは作成されません。

なお，キャッシュデータファイルとキャッシュインデックスファイルを配置できるファイルシステムは，EADSがサポートしているファイルシステム（EADSが動作するOSがデフォルトで提供しているファイルシステム）です。

EADSが動作するOSと，キャッシュデータファイルおよびキャッシュインデックスファイルを配置できるファイルシステムを次の表に示します。

表7‒10　EADSが動作するOSと，キャッシュデータファイルおよびキャッシュインデックスファイルを配置できるファイルシステム

項番

EADSが動作するOS

キャッシュデータファイルおよびキャッシュインデックスファイルを配置できるファイルシステム

1

Red Hat Enterprise Linux 6（64-bit x86_64）

ext4

2

Red Hat Enterprise Linux 7（64-bit x86_64）

xfs

ポイント

ディスクキャッシュの格納先として不揮発性メモリを使用する場合（eads.cache.disk.persistentMemory.enableパラメタにtrueを指定する場合）は，不揮発性メモリに対応するデバイスファイルの領域に各ファイルが格納されます。そのため，OSが提供するファイルシステムは使用しません。

その代わりに，不揮発性メモリのデバイスファイルを使用する前に，不揮発性メモリを初期化する必要があります。不揮発性メモリのデバイスファイルの作成や初期化の手順については，リリースノートを参照してください。

(3)　データを多重化している場合の，キャッシュデータファイルの格納先とEADSサーバの関係

キャッシュデータファイルの格納先は，eads.cache.disk.<n>.dirパラメタで，指定した多重度の数だけ指定する必要があります。例えば，データの多重度を3に設定している場合，nには1〜3を指定します。

データの多重度を3に設定している場合の，キャッシュデータファイルの格納先とEADSサーバの関係について，EADSサーバ1を例にして説明します。

図7‒5　キャッシュデータファイルの格納先とEADSサーバの関係

EADSではデータが分散配置されるため，キャッシュデータファイルは各EADSサーバに格納されます。

EADSサーバ1には，次のキャッシュデータファイルが格納されます。

レンジ1の範囲のデータ（コピー元のデータ）を格納するキャッシュデータファイル

レンジ4の範囲のデータのコピーを格納するキャッシュデータファイル

レンジ5の範囲のデータのコピーを格納するキャッシュデータファイル

このキャッシュデータファイルの格納先を，それぞれキャッシュ定義のeads.cache.disk.<n>.dirパラメタで指定します。

eads.cache.disk.<n>.dirパラメタの指定例（キャッシュデータファイルを同じディレクトリで管理する場合）

eads.cache.disk.1.dir=/hdd/cache_server01     # コピー元のデータの格納先
eads.cache.disk.2.dir=/hdd/cache_server01     # レンジ5のデータ（コピー1）の格納先
eads.cache.disk.3.dir=/hdd/cache_server01     # レンジ4のデータ（コピー2）の格納先

eads.cache.disk.<n>.dirパラメタの指定例（キャッシュデータファイルを異なるディレクトリで管理する場合）

eads.cache.disk.1.dir=/hdd/cache_server01_range01     # コピー元のデータの格納先
eads.cache.disk.2.dir=/hdd/cache_server01_range05     # レンジ5のデータ（コピー1）の格納先
eads.cache.disk.3.dir=/hdd/cache_server01_range04     # レンジ4のデータ（コピー2）の格納先

(4)　ディスクキャッシュの格納先として不揮発性メモリを使用する

ディスクキャッシュの格納先として不揮発性メモリを使用することができます。不揮発性メモリを使用する場合は，キャッシュ定義のeads.cache.disk.persistentMemory.enableパラメタにtrueを指定します。

ディスクキャッシュの格納先として不揮発性メモリを使用すると，キャッシュファイル（キャッシュデータファイル，キャッシュインデックスファイル）は不揮発性メモリのデバイスファイルに格納されます。また，データアクセス処理も不揮発性メモリに最適化された方式になります。

キャッシュファイルの格納先となるデバイスファイルはキャッシュ定義のeads.cache.disk.persistentMemory.deviceパラメタで指定します。1つのデバイスファイルに対して，対象となるキャッシュのコピー元のデータとコピーされたデータが格納されます。パラメタの指定例を次に示します。

eads.cache.disk.persistentMemory.deviceパラメタの指定例（キャッシュデータファイルを不揮発性メモリのデバイスファイルで管理する場合）

eads.cache.disk.persistentMemory.device=/dev/dax0.0

説明

図7-5の例の場合，dax0.0はコピー元のデータの格納先，レンジ5のデータ（コピー1）の格納先，レンジ4のデータ（コピー2）の格納先となります。

格納先のデバイスファイルに指定できるのはDevice DAXモードで生成されたcharacter deviceだけです。Device DAXモードでcharacter deviceを生成する方法については，リリースノートを参照してください。

ポイント

不揮発性メモリのデバイスファイルを使用する前に，不揮発性メモリを初期化する必要があります。不揮発性メモリを初期化する手順については，リリースノートを参照してください。

(a)　不揮発性メモリ内のファイルへのアクセス

ディスクキャッシュの格納先として不揮発性メモリを使用する場合，EADSが不揮発性メモリ内にキャッシュデータファイルおよびキャッシュインデックスファイルに相当する領域を作成してアクセスします。そのため，OSから不揮発性メモリ内のキャッシュデータファイルおよびキャッシュインデックスファイルは参照できません。キャッシュファイルの確認やバックアップなどを行う場合には，eztoolコマンドを使用してください。

なお，不揮発性メモリのデバイスファイル内の各ファイルがログなどに出力される場合は，次の形式で出力されます。

形式：

＜不揮発性メモリのデバイスファイルの絶対パス＞/＜キャッシュファイル名＞

例：

/dev/dax0.0/eads_data_01_cachename_01_00001.ecf

参考

不揮発性メモリのデバイスファイルに対する操作には，PMDK（Persistent Memory Development Kit）に含まれるツールとライブラリを使用します。詳細については，リリースノートを参照してください。

(b)　不揮発性メモリのデバイスファイルの構成

キャッシュ定義のeads.cache.disk.persistentMemory.deviceパラメタで不揮発性メモリのデバイスファイルを指定する際は，1つのキャッシュにつき1つの不揮発性メモリのデバイスファイルを割り当ててください。また，対応するキャッシュの見積もり結果に従って，各デバイスファイルに容量を割り当ててください。

不揮発性メモリのデバイスファイルの構成を次の図に示します。

図7‒6　不揮発性メモリのデバイスファイルの構成

EADSサーバ内の複数のキャッシュが同一の不揮発性メモリのデバイスファイルを使用することはできません。

同一OS上に複数のEADSサーバを配置する場合，EADSサーバ間で同一の不揮発性メモリのデバイスファイルを指定したときは，EADSサーバの動作およびデータは保証されません。同じようにEADSサーバ以外の他プロセスが，EADSサーバが使用している不揮発性メモリのデバイスファイルを使用してデータを更新した場合もEADSサーバの動作およびデータは保証されません。

注意事項

EADSと他プロセスとの間で，デバイスファイルの排他は行われません。他EADSサーバと他プログラムが同一のデバイスファイルを指定した場合，データが破壊されるおそれがあるので注意してください。

(c)　不揮発性メモリを使用する場合の注意事項

ディスクキャッシュの格納先として不揮発性メモリを使用する場合の注意事項を次に示します。

ディスクキャッシュの格納先として，高性能SSDと不揮発性メモリを同時に使用することはできません。また，2Wayキャッシュの格納先として不揮発性メモリは使用できません。

次の場合はキャッシュが作成できません。

Device DAX以外のモードで生成されたデバイスファイルが指定された場合

指定したデバイスファイルに割り当てられているサイズが，格納するキャッシュデータファイルおよびキャッシュインデックスファイルの総容量よりも小さい場合

キャッシュ作成時に指定したデバイスファイルが，同一EADSサーバ内の作成済みキャッシュを格納しているデバイスファイルと重複した場合

不揮発性メモリにミラーリングなどの冗長化機能がない場合は，不揮発性メモリが故障した際のデータの消失を防ぐため，次のような運用にすることを推奨します。

共通設定のeads.replication.factorパラメタの値を2以上にして，複数の不揮発性メモリ上にデータを複製する構成にする。

定期的にeztool exportecfコマンドを実行してバックアップを取得する。

OSのマシンチェック機能のToleranceLevelには0を設定してください。この設定をすると，不揮発性メモリに発生した不良ブロックにアクセスしたときに，破損データによって処理が継続することをOSが再起動することで防止できます。

ただし，OS起動時にEADSサーバを自動で復旧する設定にしている場合，OSの起動時に毎回不良ブロックにアクセスして，再起動を繰り返すおそれがあります。そのため，EADSサーバを自動で復旧する設定にしている場合は，復旧を試みる回数に上限を設けたり，復旧処理前に不良ブロックが発生していないかを確認してからEADSサーバを起動したりするように設計してください。

7.7.3　キャッシュファイルのサイズの設定

キャッシュファイルのサイズの設定については，「4.4　キャッシュファイルの容量を見積もる」を参照してください。

7.7.4　キャッシュの運用に依存するパラメタ

キャッシュの運用に依存するパラメタの一覧を次の表に示します。

なお，必ず指定するパラメタを太字で表記しています。

表7‒11　キャッシュの運用に依存するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

サーバ定義ファイル

eads.cache.disk.getError.isolate.enable

true

false

true

2

キャッシュ定義ファイル

eads.cache.type

Memory

Disk

2Way

なし

3

eads.cache.eviction.policy

FIFO

LRU

None

None

4

eads.cache.eviction.keyCount

1024〜1073741823

なし

5

eads.cache.disk.info.dir

パス名

＜運用ディレクトリ＞/store

6

eads.cache.disk.<n>.dir※

パス名

なし

7

eads.cache.disk.filesize

ファイルサイズ（16メガバイト〜128メガバイト）

なし

8

eads.cache.disk.filenum

ファイル数（8〜32768）

なし

9

eads.cache.disk.blocksize

データサイズ

1キロバイト

2キロバイト

4キロバイト

8キロバイト

16キロバイト

32キロバイト

64キロバイト

128キロバイト

1キロバイト

10

eads.cache.disk.transfer.interval

0〜60000（ミリ秒）

1000ミリ秒

11

eads.cache.disk.transfer.datasize

10240バイト〜2147483647バイト

102400バイト

12

eads.cache.disk.highSpecDrive.enable

true

false

false

13

eads.cache.disk.persistentMemory.enable

true

false

false

14

eads.cache.disk.persistentMemory.device※

パス名

なし

15

eads.cache.disk.persistentMemory.blocksize

256バイト

512バイト

1024バイト

256バイト

注意事項

キャッシュ定義ファイルの次のパラメタの定義内容は，クラスタを構成する全EADSサーバで同じになるようにしてください。同じでないとキャッシュを作成できません。

eads.cache.type

eads.cache.eviction.policy

eads.cache.eviction.keyCount（データ自動削除機能を使用する場合）

eads.cache.disk.filesize

eads.cache.disk.filenum

eads.cache.disk.blocksize

eads.cache.disk.persistentMemory.enable

eads.cache.disk.persistentMemory.blocksize（ディスクキャッシュの格納先として不揮発性メモリを使用する場合）

注※

ディスクキャッシュの格納先として不揮発性メモリを使用しない場合はeads.cache.disk.<n>.dirパラメタが，使用する場合はeads.cache.disk.persistentMemory.deviceパラメタが必ず指定するパラメタになります。

(1)　サーバ定義ファイル

(a)　eads.cache.disk.getError.isolate.enable

ディスクキャッシュおよび2WayキャッシュでディスクI/Oエラーが発生した場合に，EADSサーバを縮退させるかどうかを指定します。

true：

ディスクI/Oエラーが発生した場合に，EADSサーバを縮退させます。

false：

ディスクI/Oエラーが発生しても，次に示すデータの整合性に影響を与えないAPIでのディスクI/Oエラーの場合は，EADSサーバを縮退させません。

API（get，getAll）

Groupインタフェースの次に示すメソッド

・getLastUpdateTime()

・getValueUsageSize()

Storeインタフェースの次に示すメソッド

・getLastUpdateTime()

・getEHeapUsageSize()

・getDiskUsageSize()

eztool getコマンド

APIには，ユーザファンクション内で実行されるAPIを含みます。

このパラメタにfalseを指定すると，一時的なディスク障害によるディスクI/Oエラーがget処理などで発生してもEADSサーバが縮退しません。このため，可用性の向上が期待できます。

しかし，get処理だけが長時間続くようなAPの場合は，恒久的なディスク障害が発生しても縮退処理が行われないため，get処理のエラーが長時間にわたって発生してしまうおそれがあります。

なお，ディスクキャッシュおよび2Wayキャッシュを使用しない場合は，このパラメタの指定値は無視されます。

(2)　キャッシュ定義ファイル

(a)　eads.cache.type

キャッシュのキャッシュタイプを指定します。

Memory：

メモリキャッシュを使用します。

Disk：

ディスクキャッシュを使用します。

2Way：

2Wayキャッシュを使用します。

(b)　eads.cache.eviction.policy

データの自動削除ポリシーを指定します。データ自動削除機能を使用して，しきい値を超えたデータを削除する場合の動作を指定します。

FIFO：

データの更新順が古いデータから自動的に削除します。

LRU：

データの更新順または参照順が古いデータから自動的に削除します。

None：

データを自動で削除しません（データ自動削除機能を使用しません）。

注意事項

データ総量監視機能が無効（共通設定ファイルのeads.cache.limiter.enableパラメタにfalseが指定されている）な場合，データ自動削除機能を使用できません。そのため，None以外を指定できません。

eads.cache.typeパラメタに2Wayが指定されている場合，データ自動削除機能を使用できません。そのため，None以外を指定できません。

(c)　eads.cache.eviction.keyCount

データ自動削除機能で，データを削除するためのしきい値として使用する1レンジ当たりのデータ件数を指定します。

このパラメタの指定値を超えるデータは格納されません（自動的に削除されます）。

注意事項

eads.cache.eviction.policyパラメタにNoneが指定された場合，このパラメタに指定された値は無視されます。

(d)　eads.cache.disk.info.dir

キャッシュ情報ファイル，およびキャッシュインデックスファイルの格納先を指定します。

格納先ディレクトリのパスには，最大200文字の半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），コロン（:），およびセパレータ（スラッシュ（/））が指定できます。

このパラメタに指定したディレクトリ下に格納されるファイルのファイル名については，「7.7.2(2)　キャッシュファイルの格納先の設定」を参照してください。

なお，ディスクキャッシュの格納先として不揮発性メモリを使用する場合（eads.cache.disk.persistentMemory.enableパラメタにtrueを指定している場合），キャッシュインデックスファイルは，eads.cache.disk.persistentMemory.deviceパラメタで指定したデバイスファイルに作成されます。

注意事項

同一EADSサーバ内で，このパラメタの指定値の絶対パスとeads.cache.disk.<n>.dirパラメタの指定値の絶対パスが同じにならないようにしてください。

(e)　eads.cache.disk.<n>.dir

キャッシュデータファイルの格納先を指定します。

<n>には，1〜データの多重度（eads.replication.factorパラメタの指定値）の整数を指定します。

データを多重化している場合は，データの多重度の数だけ，このパラメタを指定します。

格納先ディレクトリのパスには，最大1,024文字の半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），コロン（:），およびセパレータ（スラッシュ（/））が指定できます。

このパラメタに指定したディレクトリ下に格納されるファイルのファイル名については，「7.7.2(2)　キャッシュファイルの格納先の設定」を参照してください。

注意事項

同一EADSサーバ内で，このパラメタの指定値の絶対パスとeads.cache.disk.info.dirパラメタの指定値の絶対パスが同じにならないようにしてください。

eads.cache.disk.info.dirパラメタに指定したディレクトリ直下のディレクトリを指定する場合，キャッシュ名と同じ名前のディレクトリを指定しないでください。

クラスタを構成するEADSサーバ間で，キャッシュデータファイルの格納先にSSDとHDDを混在させるなど，極端に速度差が発生するようなディスク構成にすることはできません。

1台の物理マシン上で複数のEADSサーバを動作させる場合，EADSサーバごとに異なる格納先を指定してください。

ディスクキャッシュの格納先として不揮発性メモリを使用する場合（eads.cache.disk.persistentMemory.enableパラメタにtrueを指定する場合），このパラメタの指定値は無視されます。

(f)　eads.cache.disk.filesize

1レンジ当たりのキャッシュデータファイルのサイズ（単位：メガバイト）を指定します。

(g)　eads.cache.disk.filenum

1レンジ当たりのキャッシュデータファイルの面数を指定します。

(h)　eads.cache.disk.blocksize

キャッシュデータファイルに1回で書き込むデータサイズ（単位：キロバイト）を指定します。

キャッシュデータファイルの格納先の媒体がHDDの場合は，このパラメタには1キロバイト（デフォルト）を指定してください。SSDの場合は，SSDのページサイズを指定してください。

注意事項

ディスクキャッシュの格納先として不揮発性メモリを使用する場合（eads.cache.disk.persistentMemory.enableパラメタにtrueを指定する場合），1回で書き込むデータサイズはこのパラメタではなく，eads.cache.disk.persistentMemory.blocksizeパラメタで指定した値が有効になります。

参考

ディスクキャッシュの格納先として不揮発性メモリを使用する場合でも，このパラメタに不正な値が指定されているとエラーになります。ディスクキャッシュの格納先として不揮発性メモリを使用する場合には，このパラメタをキャッシュ定義ファイル上でコメントアウトしておくことを推奨します。

(i)　eads.cache.disk.transfer.interval

ディスクキャッシュ，および2Wayキャッシュの復旧処理でのデータ送信間隔（単位：ミリ秒）を指定します。

復旧処理では，復旧対象のEADSサーバでこのパラメタに指定した値が適用されます。

このパラメタの指定値とキャッシュ定義のeads.cache.disk.transfer.datasizeパラメタの指定値は，次の式を満たすように設定してください。

復旧処理のデータ送信に使用できる帯域（単位：bps）≧

　MAX（各キャッシュの復旧処理のデータ送信に使用できる帯域（単位：bps））

MAX：

計算結果の最も大きい値を選ぶことを示しています。

（例）MAX（3×6，4＋7）の計算結果は18となります。

各キャッシュの復旧処理のデータ送信に使用できる帯域（単位：bps）：

キャッシュごとに，次の式で求めます。

メモリキャッシュの場合

復旧処理のデータ送信に使用できる帯域（単位：bps）≧

　（復旧処理で送信するデータサイズ（単位：バイト）×8）

　÷｛（復旧処理でのデータ送信間隔（単位：ミリ秒）

　＋データ送信に掛かる時間（単位：ミリ秒））÷1,000｝

復旧処理で送信するデータサイズ（単位：バイト）：

サーバ定義のeads.transfer.datasizeパラメタの指定値

復旧処理でのデータ送信間隔（単位：ミリ秒）：

サーバ定義のeads.transfer.intervalパラメタの指定値

データ送信に掛かる時間（単位：ミリ秒）：

サーバ定義のeads.transfer.datasizeパラメタに指定したサイズのデータ送信に掛かる時間（単位：ミリ秒）

ディスクキャッシュおよび2Wayキャッシュの場合

復旧処理のデータ送信に使用できる帯域（単位：bps）≧

　（復旧処理で送信するデータサイズ（単位：バイト）×8）

　÷｛（復旧処理でのデータ送信間隔（単位：ミリ秒）

　＋データ送信に掛かる時間（単位：ミリ秒））÷1,000｝

復旧処理で送信するデータサイズ（単位：バイト）：

キャッシュ定義のeads.cache.disk.transfer.datasizeパラメタの指定値

復旧処理でのデータ送信間隔（単位：ミリ秒）：

キャッシュ定義のeads.cache.disk.transfer.intervalパラメタの指定値

データ送信に掛かる時間（単位：ミリ秒）：

キャッシュ定義のeads.cache.disk.transfer.datasizeパラメタに指定したサイズのデータ送信に掛かる時間（単位：ミリ秒）

「9.3.2(5)　クラスタの復旧処理」の図中の「復旧処理（データ送信）」に掛かる時間を示します。この時間は環境によって異なります。

復旧処理に掛かる時間を短くすると，復旧処理の通信負荷が高くなります。逆に，復旧処理の通信負荷を低くすると，復旧処理に掛かる時間が長くなります。

メモリキャッシュを使用する場合，このパラメタの指定は無効になり，サーバ定義のeads.transfer.intervalパラメタの指定値が有効となります。

復旧処理については，「9.3.2(5)　クラスタの復旧処理」を参照してください。

注意事項

ディスクの書き込み性能を超えないように，このパラメタの指定値を決定してください。

(j)　eads.cache.disk.transfer.datasize

ディスクキャッシュ，および2Wayキャッシュの復旧処理で送信するデータサイズ（単位：バイト）を指定します。

復旧処理では，復旧対象のEADSサーバでこのパラメタに指定した値が適用されます。

復旧処理では，データの整合性を回復するために，稼働中のEADSサーバが復旧対象のEADSサーバにデータを送信します。復旧対象のEADSサーバのeads.cache.disk.transfer.intervalパラメタに指定した間隔で，このパラメタの指定値を超えるまで，10キロバイト単位でデータを連続して送信します。

メモリキャッシュを使用する場合，このパラメタの指定は無効になり，サーバ定義のeads.transfer.datasizeパラメタの指定値が有効となります。

注意事項

復旧処理では最低1個のデータを送信します。そのため，送信データのサイズが，このパラメタの指定値を超えることがあります。なお，このパラメタにEADSサーバに格納しているデータのサイズよりも小さい値を指定しても，送信量を制限することはできません。

復旧データの転送速度がディスクの書き込み速度を超えないように，このパラメタの指定値を決定してください。

(k)　eads.cache.disk.highSpecDrive.enable

高性能SSDに対応したファイルアクセスをするかどうかを指定します。

このパラメタにtrueを指定した場合，高性能SSDに対応した次のファイルアクセスを行います。

キャッシュデータファイルをDirectIOモードで開き，当該キャッシュデータファイルのページキャッシュを介さないで，ファイルにアクセスします。

キャッシュデータファイルの作成直後に全データを0で埋め尽くす（ゼロフィル）処理を実行し，データ更新時の書き込み回数と書き込みデータ量を削減します。

注意事項

高性能SSD以外（HDDなどの記憶装置）では，trueを指定しないでください。

このパラメタにtrueを指定した場合は，追加でゼロフィル処理を行うため，falseを指定した場合に比べて，次に示すコマンドの処理時間が長くなるおそれがあります。

・eztool createcache（キャッシュの作成）

・eztool resume（キャッシュの再開）

そのため，このパラメタにtrueを指定する場合は，eztoolコマンドの-tオプション（コマンドのタイムアウト時間）を当該コマンドの処理時間よりも長くなるように設定することを推奨します。

このパラメタにtrueを指定した場合は，追加でゼロフィル処理を行うため，falseを指定した場合に比べて，次に示すコマンドの処理時間が長くなるおそれがあります。

・eztool compaction（キャッシュデータファイルのコンパクション）

・ezstart -r，ezserver -r（EADSサーバのクラスタへの復旧）

そのため，このパラメタにtrueを指定する場合は，当該コマンドの処理が想定時間内に終わることを事前に確認することを推奨します。

このパラメタにtrueを指定した場合，キャッシュデータファイルへの書き込み回数が，falseを指定した場合（1回）に比べて，1回増える（2回になる）ため，高性能SSDの寿命を計算する際には考慮してください。

このパラメタとeads.cache.disk.persistentMemory.enableパラメタに，同時にtrueは指定できません。

(l)　eads.cache.disk.persistentMemory.enable

ディスクキャッシュの格納先として，不揮発性メモリを使用するかどうかを指定します。

不揮発性メモリはディスクキャッシュでだけ使用できます。また，高性能SSDに対応したファイルアクセスとは同時に使用できません。このため，このパラメタにtrueを指定する場合には次の条件を満たす必要があります。

eads.cache.typeパラメタにDiskを指定します。

eads.cache.disk.highSpecDrive.enableパラメタにfalseを指定します。

(m)　eads.cache.disk.persistentMemory.device

キャッシュデータファイルおよびキャッシュインデックスファイルの格納先となる不揮発性メモリのデバイスファイルを指定します。

不揮発性メモリのデバイスファイルには，最大200文字の半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.），およびセパレータ（スラッシュ（/））が指定できます。

このパラメタに指定したデバイスファイルに格納されるファイルのファイル名については，「7.7.2(2)　キャッシュファイルの格納先の設定」を参照してください。

注意事項

eads.cache.disk.persistentMemory.enableパラメタにfalseを指定している場合，このパラメタに指定された値は無視されます。

同一EADSサーバ内で，このパラメタの指定値の絶対パスと，他キャッシュ定義ファイルの，このパラメタの指定値の絶対パスが同じにならないようにしてください。

1台の物理マシン上で，複数のEADSサーバを動作させる場合，他のEADSサーバが使用している不揮発性メモリのデバイスファイルは，このパラメタに指定できません。

(n)　eads.cache.disk.persistentMemory.blocksize

不揮発性メモリ上のキャッシュデータファイルに1回で書き込むデータサイズ（単位：バイト）を指定します。

このパラメタには，2の累乗数（256，512，1024）が指定できます。

eads.cache.disk.persistentMemory.enableパラメタにtrueを指定している場合，1回で書き込むデータサイズはeads.cache.disk.blocksizeパラメタではなく，このパラメタで指定した値が有効になります。

注意事項

eads.cache.disk.persistentMemory.enableパラメタにfalseを指定している場合，このパラメタに指定された値は無視されます。

使用する不揮発性メモリに合わせて値を指定してください。詳細については，リリースノートを参照してください。使用する不揮発性メモリに関する記載がリリースノートにない場合は，キャッシュ定義ファイル上でこのパラメタをコメントアウトしてください。

7.8　ノンブロッキングI/O通信制御に依存するパラメタの設計

ノンブロッキングI/O通信制御に依存するパラメタを設計します。

7.8.1　ノンブロッキングI/O通信制御の設定

今までの通信制御（ブロッキングI/O通信制御）の場合，EADSクライアント・EADSサーバ間の最大同時接続数は1,024以下です。そのため，EADSクライアント・EADSサーバ間の最大同時接続数が1,025以上の場合は，ノンブロッキングI/O通信制御を使用することを検討してください。ノンブロッキングI/O通信制御を使用する場合は，eads.server.nonBlocking.enableパラメタにtrueを指定する必要があります。

ただし，EADSクライアント・EADSサーバ間の最大同時接続数が1,024以下の場合は，ノンブロッキングI/O通信制御を使用しないでください。処理性能が低下するため，ノンブロッキングI/O通信制御の効果が期待できません。

注意事項

一部のEADSサーバだけでノンブロッキングI/O通信制御を使用するような運用はできません。クラスタ内のすべてのEADSサーバで，必ずeads.server.nonBlocking.enableパラメタの指定を一致させてください。

ノンブロッキングI/O通信制御とイベントリスナは同時に使用しないでください。同時に使用した場合，動作は保証されません。

ノンブロッキングI/O通信制御とeztool isolateコマンドをあわせて使用する際，同時に実行されるキャッシュ操作およびファンクション操作リクエスト数の最大値が1,024を超える場合は，EADSクライアントでコネクションエラーが発生するおそれがあります。そのため，eads.admin.operation.isolate.gracefulstop.waitTimeパラメタの指定値には，十分大きな値を指定してください。EADSサーバのクラスタ構成情報の更新が完了してから縮退処理が完了するまでの時間が長くなっても問題がないようにしてください。

また，それに伴ってeztool isolateコマンドの実行時間も延びます。そのため，プロパティやコマンドオプションを使用して，eztool isolateコマンドのタイムアウト時間がeads.admin.operation.isolate.gracefulstop.waitTimeパラメタの指定値よりも大きな値になるように指定してください。

ブロッキングI/O通信制御とノンブロッキングI/O通信制御の違いについて，次で説明します。

(1)　ブロッキングI/O通信制御

今までの通信制御である，ブロッキングI/O通信制御を使用したEADSクライアント・EADSサーバ間の通信制御を次の図に示します。

図7‒7　ブロッキングI/O通信制御の概要

ブロッキングI/O通信制御では，リクエストを処理する間はそのリクエストを処理するスレッドが占有されるため，EADSサーバは最大同時接続数と同じ数のリクエスト処理スレッドを生成します。

(2)　ノンブロッキングI/O通信制御

ノンブロッキングI/O通信制御を使用したEADSクライアント・EADSサーバ間の通信制御を次の図に示します。

図7‒8　ノンブロッキングI/O通信制御の概要

ノンブロッキングI/O通信制御は，リクエストを処理するスレッドが占有されないため，EADSサーバは最大同時接続数とリクエスト処理スレッド数が同数である必要はありません。これを実現するため，EADSサーバは複数の接続を一括監視して送受信可能になった接続を検知するセレクタスレッドを1個以上生成します。

また，キャッシュおよびファンクションの同時実行スレッド数の制御はタスクスケジューラで行われます。

7.8.2　滞留中I/Oデータ流量制御

滞留中I/Oデータ流量制御とは，ノンブロッキングI/O通信制御を使用してサーバ定義のeads.server.connection.buffersizeパラメタの指定値よりも大きなデータサイズの通信を行う場合に，EADSサーバはそのデータの送受信が完了するまでの間はそのリクエストを滞留させて，ほかのリクエストの処理を実行する制御のことです。

リクエストを滞留させる際，そのデータ（滞留中I/Oデータ）をFullGCの対象外にするため，EADSサーバはExplicitヒープ中に確保したノンブロッキングI/O通信バッファをそのリクエストに一時的に割り当てて，滞留中I/Oデータを格納します。

しかし，大量のリクエストが同時に滞留することによって，ノンブロッキングI/O通信バッファが枯渇するおそれがあります。

そこで，滞留中I/Oデータ流量制御によって，ノンブロッキングI/O通信バッファを割り当てるリクエストの最大同時割当数を制御することで，滞留中I/Oデータの総量が大きくなることを防ぎます。

7.8.3　ノンブロッキングI/O通信制御に依存するパラメタ

ノンブロッキングI/O通信制御に依存するパラメタの一覧を次の表に示します。

表7‒12　ノンブロッキングI/O通信制御に依存するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

サーバ定義ファイル

eads.server.nonBlocking.enable

true

false

false

2

eads.server.nonBlocking.processorThreads

1〜8192

10

3

eads.server.nonBlocking.selectorThreads

1〜32

1

4

eads.server.nonBlocking.maxAllocateConnections

1〜32768

10

5

eads.statistics.nonBlocking.enable

true

false

true

6

共通設定ファイル

eads.server.nonBlocking.external.heapsize

1〜268435456

30

(1)　サーバ定義ファイル

(a)　eads.server.nonBlocking.enable

ノンブロッキングI/O通信制御を有効にするかどうかを指定します。

(b)　eads.server.nonBlocking.processorThreads

ノンブロッキングI/O通信制御を使用する際の，リクエスト処理スレッド数を指定します。

注意事項

eads.server.nonBlocking.enableパラメタにfalseを指定している場合，このパラメタに指定された値は無視されます。

eads.server.nonBlocking.enableパラメタの指定値がtrueの場合，かつeads.server.maxConnectionsパラメタの指定値よりもこのeads.server.nonBlocking.processorThreadsパラメタの指定値が大きい場合は，このパラメタにはデフォルト値が設定されます。

(c)　eads.server.nonBlocking.selectorThreads

ノンブロッキングI/O通信制御を使用する際の，セレクタスレッド数を指定します。

注意事項

eads.server.nonBlocking.enableパラメタにfalseを指定している場合，このパラメタに指定された値は無視されます。

(d)　eads.server.nonBlocking.maxAllocateConnections

ノンブロッキングI/O通信制御を使用する際の，最大同時割当数を指定します。滞留中I/Oデータ流量制御では，ノンブロッキングI/O通信バッファを同時に割り当てるリクエスト数の上限です。

注意事項

eads.server.nonBlocking.enableパラメタにfalseを指定している場合，このパラメタに指定された値は無視されます。

(e)　eads.statistics.nonBlocking.enable

ノンブロッキングI/O通信制御に関する統計情報を出力する場合に指定します。

注意事項

eads.server.nonBlocking.enableパラメタにfalseを指定している場合，このパラメタに指定された値は無視され，ノンブロッキングI/O通信制御に関する統計情報は出力されません。

(2)　共通設定ファイル

(a)　eads.server.nonBlocking.external.heapsize

ノンブロッキングI/O通信バッファサイズ（単位：メガバイト）を指定します。

注意事項

eads.server.nonBlocking.enableパラメタにfalseを指定している場合，このパラメタに指定された値は無視されます。

7.9　スケールアウト処理・リバランス処理に依存するパラメタの設計

スケールアウト処理・リバランス処理に依存するパラメタを設計します。

7.9.1　スケールアウト処理・リバランス処理に依存するパラメタ

スケールアウト処理・リバランス処理に依存するパラメタの一覧を次の表に示します。

表7‒13　スケールアウト処理・リバランス処理に依存するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

サーバ定義ファイル

eads.scaling.moveDataWithUpdateRequest.enable

true

false

true

2

eads.scaling.moveData.interval

0〜60000

0

3

共通設定ファイル

eads.scaling.requestQueuing.enable

true

false

true

4

eads.scaling.eviction.targetKeyCount

1024〜1073741824

8192

(1)　サーバ定義ファイル

(a)　eads.scaling.moveDataWithUpdateRequest.enable

スケールアウト処理中またはリバランス処理中の更新リクエスト実行時に，データを移動させるかどうかを指定します。

true：

データを移動させます。

false：

データを移動させません。

ポイント

05-30より前のバージョンと同じ動作にしたい場合は，trueを指定してください。

スケールアウト処理の開始直後，またはリバランス処理中のリクエストの応答に一時的に時間が掛かる場合，それを回避したいときはfalseを指定してください。

スケールアウト処理中，またはリバランス処理中にリクエストが実行されない場合は，falseを指定してください。

(b)　eads.scaling.moveData.interval

スケールアウト処理中，またはリバランス処理中のデータの移動間隔（単位：ミリ秒）を指定します。

このパラメタに0以外を指定すると，スケールアウト処理，またはデータ自動削除機能を使用するキャッシュが存在しないときのリバランス処理の実行完了までの時間が，最大で次に示す時間分だけ従来よりも増加する場合があります。

スケールアウト処理の場合

分割元レンジでのデータ移動回数×このパラメタの指定値（単位：ミリ秒）＋リクエスト増加数分の処理時間※1

　分割元レンジでのデータ移動回数≒

　　Σ（キャッシュ単位でのデータ移動件数÷1,000）※2

注※1

スケールアウト処理の実行完了までの時間が長くなることで，スケールアウト処理中のリクエスト数が従来よりも増加する場合の，増加数分のリクエストの処理時間を指します。

注※2

小数点以下の値は切り上げてください。

リバランス処理の場合

（移動元レンジでのデータ移動回数＋移動先レンジでのデータ移動回数）

　×このパラメタの指定値（単位：ミリ秒）＋リクエスト増加数分の処理時間※1

　移動元レンジでのデータ移動回数≒

　　Σ（キャッシュ単位でのデータ移動件数÷1,000）※2

　移動先レンジでのデータ移動回数≒

　　Σ（キャッシュ単位でのデータ移動件数÷1,000）※2

注※1

リバランス処理の実行完了までの時間が長くなることで，リバランス処理中のリクエスト数が従来よりも増加する場合の，増加数分のリクエストの処理時間を指します。

注※2

小数点以下の値は切り上げてください。

スケールアウト処理，またはリバランス処理の実行完了までの時間の増加を回避するためには，次のように値を指定してください。

運用によって，スケールアウト処理，またはデータ自動削除機能を使用しない場合のリバランス処理の実行時間の上限があるときは，その時間内に収まるように指定値を小さくする

スケールアウト処理中，またはデータ自動削除機能を使用しない場合のリバランス処理中のリクエストの応答時間の上限があるときは，その時間内に収まるように指定値を調整する

ポイント

05-30より前のバージョンと同じ動作にしたい場合は，0を指定してください。

スケールアウト処理の開始直後のリクエストの応答，またはデータ自動削除機能を使用するキャッシュが存在しないときのリバランス処理中のリクエストの応答に一時的に時間が掛かる場合，それを回避したいときは0以外を指定してください。

スケールアウト処理中，またはデータ自動削除機能を使用するキャッシュが存在しないときのリバランス処理中にリクエストが実行されない場合は，0を指定してください。

データ自動削除機能を使用するキャッシュが存在するときのリバランス処理の場合は，指定した値に関係なく，0が指定されたときと同じ動作になります。

(2)　共通設定ファイル

(a)　eads.scaling.requestQueuing.enable

スケールアウト処理において，分割前のレンジを管理していたEADSサーバから，追加されたEADSサーバに追加されたレンジの範囲のデータを転送する間に，分割前のレンジを管理していたEADSサーバで受け付けたリクエストを一時的に待機させることをリクエスト・キューイングといいます。

このパラメタでは，スケールアウト処理中に，受付済みで未実行のリクエストをキューイングするかエラーにするかを指定します。

true：

受付済みで未実行のリクエストをキューイングします。

false：

受付済みで未実行のリクエストをエラーにします。

EADSクライアントにはエラーコード4120が返却されます。

このパラメタを指定する場合は，次の説明も参照してください。

「14.2.1　ezstart（EADSサーバの開始）」の「(6)　注意事項」

「14.2.2　ezserver（EADSサーバのフォアグラウンドでの開始）」の「(6)　注意事項」

ポイント

05-30より前のバージョンと同じ動作にしたい場合は，trueを指定してください。

(b)　eads.scaling.eviction.targetKeyCount

データ自動削除機能を使用するキャッシュが存在する場合の，リバランス処理の移動レンジのキー数を指定します。

ポイント

次のどちらかに該当する場合は，1073741824を指定してください。

・05-30より前のバージョンと同じ動作にしたい場合

・データ自動削除機能を使用するキャッシュが存在するときのリバランス処理中にリクエストが実行されない場合

データ自動削除機能を使用するキャッシュが存在しない場合は，指定値は使用されません。

データ自動削除機能を使用するキャッシュが存在するときのリバランス処理中のリクエストの応答に一時的に時間が掛かる場合は，1073741824未満の値を指定してください。

運用上，リバランス処理の実行時間に上限がある場合，実行時間の上限を超えないようにこのパラメタの指定値を大きくしてください。

8　環境依存パラメタを設計する（EADSクライアント）

この章では，EADSクライアントの，環境依存パラメタの設計指針について説明します。

8.1　定義ファイルの種類（EADSクライアント）

EADSクライアントで使用する定義ファイルの種類を次の表に示します。

この章では，環境依存パラメタについてだけ説明しています。クライアント定義ファイルに指定できるパラメタの一覧については，「21.1.2(1)　クライアント定義ファイル」を参照してください。

表8‒1　定義ファイルの種類（EADSクライアント）

定義ファイル

ファイル名

説明

クライアント定義ファイル

任意※

EADSクライアントの実行環境を定義します。

注※

次に示すディレクトリ下のクライアント定義ファイルを，APで指定したディレクトリにコピーして編集します（ファイル名もAPで指定したファイル名に合わせます）。

Java言語の場合

/opt/hitachi/xeads/javaclient/conf/eads_sample_client.properties

C言語の場合

/opt/hitachi/xeads/cclient/conf/eads_sample_client.properties

8.2　定義ファイルの形式

次のようにパラメタを指定します。

＜パラメタ名＞=＜指定値＞

指定方法

改行までが値になります。

#で始まる行はコメントと見なされます。

空行は無視されます。

値の後ろには，コメントなどの文字列は追加できません。追加した場合，不正な値と解釈されます。

同じパラメタを指定した場合，後から記述したパラメタの指定が有効になります。例えば，次のように指定されている場合，falseが有効になります。

eads.client.logger.message.console.enable=true
eads.client.logger.message.console.enable=false

なお，APで使用する言語がC言語の場合は，次の点にも注意してください。

使用できる文字はASCIIコード「0x20」〜「0x7E」の文字，改行文字（'¥n'），復帰文字（'¥r'），タブ（'¥t'）です。

1行に1つのパラメタを指定します。1行は改行（'¥n'または'¥r¥n'）またはEOF（End Of File）までとなります。

区切り文字（パラメタ名と指定値の区切り）には，イコール（=）のほかに，半角空白，タブが使用できます。

区切り文字を2つ以上記述した場合，2つ目以降の区切り文字は指定値の一部と解釈されます。

（例1）a=b=c

aがパラメタ名，b=cが指定値と解釈されます。

（例2）a b = c

aがパラメタ名，b = cが指定値と解釈されます。

指定値がない場合（パラメタ名と区切り文字だけの場合），指定値は空文字列と解釈されます。

制御文字を含んでいたり，パラメタ名だけを記述したりした場合は無効となります。

パラメタ名と指定値の前後には，半角空白またはタブが使用できますが，半角空白またはタブは削除されて解釈されます。

（例）△a△=△b△

注　△は半角空白またはタブを表します。

aがパラメタ名，bが指定値と解釈されます。

8.3　通信に依存するパラメタの設計

通信に依存するパラメタを設計します。

8.3.1　接続先EADSサーバ，IPアドレスまたはホスト名，およびポート番号の設定

EADSサーバへの初回接続時，EADSクライアントはクライアント定義のeads.client.connect.serversパラメタで指定したEADSサーバからランダムに接続先を決定します（2回目以降の接続では，EADSサーバから取得したクラスタ構成情報に従って接続先を選択します）。

クライアント定義に複数のEADSサーバを指定しておくことで，EADSサーバに接続できないときに，別のEADSサーバに接続を試みることができます。

通信処理の仕組みについては「2.2　EADSの通信処理の仕組み」を参照してください。

図8‒1　通信に依存するパラメタの設計（EADSクライアント）

8.3.2　通信に依存するパラメタ

通信に依存するパラメタの一覧を次の表に示します。

なお，必ず指定するパラメタを太字で表記しています。

表8‒2　通信に依存するパラメタ一覧（EADSクライアント）

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

クライアント定義ファイル

eads.client.connect.servers

接続先EADSサーバを識別するための名称（任意の名称）

なし

2

eads.client.＜接続先EADSサーバ＞.address

IPアドレスまたはホスト名

なし

3

eads.client.＜接続先EADSサーバ＞.port

ポート番号

24600

(1)　クライアント定義ファイル

(a)　eads.client.connect.servers

EADSクライアントの初期設定時に接続する，接続先EADSサーバを識別するための名称（任意の名称）を指定します。

名称には，半角英数字（0〜9，A〜Z，a〜z）が指定できます。

複数指定する場合は，コンマ区切りで指定してください。複数指定する場合，EADSサーバへの初回接続時，EADSクライアントはこのパラメタに指定したEADSサーバからランダムに決定します。2回目以降の接続では，EADSサーバから取得したクラスタ構成情報に従って接続先を選択します。

EADSサーバへの接続に失敗した場合は，接続に失敗したEADSサーバを基点として，指定された順にEADSサーバへの接続が試行されます。

注意事項

コンマ区切りで複数の名称を指定した場合，空文字列の名称が存在するときはAPで使用する言語によって処理が異なります。

EADSクライアント（Java）では，空文字列の名称は無視して処理が続行されます。

EADSクライアント（C）では，不正な定義としてエラーになります。

(b)　eads.client.＜接続先EADSサーバ＞.address

EADSクライアントの初期設定時に接続する，接続先EADSサーバのIPアドレスまたはホスト名を指定します。

ホスト名で指定する場合は，ホスト名からIPアドレスが一意に識別できるホスト名を指定してください。

eads.client.connect.serversパラメタと対で指定します。接続先EADSサーバには，eads.client.connect.serversパラメタに指定したEADSサーバを識別するための名称を指定してください。

(c)　eads.client.＜接続先EADSサーバ＞.port

EADSクライアントの初期設定時に接続する，接続先EADSサーバのポート番号を指定します。

eads.client.connect.serversパラメタと対で指定します。接続先EADSサーバには，eads.client.connect.serversパラメタに指定したEADSサーバを識別するための名称を指定してください。

(d)　eads.client.connect.serversパラメタの指定例

eads.client.connect.serversパラメタの指定例を次に示します。

eads.client.connect.servers=sv1,sv2,sv3
eads.client.sv1.address=XXX.XXX.X.138
eads.client.sv1.port=24600
eads.client.sv2.address=XXX.XXX.X.139
eads.client.sv2.port=24601
eads.client.sv3.address=XXX.XXX.X.140
eads.client.sv3.port=24602

8.4　ログファイルに依存するパラメタの設計

ログファイルに依存するパラメタを設計します。

8.4.1　ログファイルの種類

EADSクライアントが管理するログファイルの種類を次の表に示します。

表8‒3　ログファイルの種類（EADSクライアント）

項番

ログファイル

説明

1

メッセージログファイル

動作確認やエラー監視用のメッセージログを出力するファイルです。

2

保守ログファイル

システムが使用するファイルです。

8.4.2　ファイルの出力先の設定

ログファイルの出力先は変更できます。ファイルの出力先を次の表に示します。

表8‒4　ファイルの出力先の設定（EADSクライアント）

ログファイル名

出力先

ファイル名

メッセージログファイル

＜eads.client.logger.dirパラメタに指定したディレクトリ＞/＜EADSクライアント名※＞

eads_client_message[n].log

保守ログファイル

＜eads.client.logger.dirパラメタに指定したディレクトリ＞/＜EADSクライアント名※＞/maintenance

eads_client_maintenance[n].log

（凡例）

[n]：ファイル数の通番です。

注※

クライアントAPIで指定したEADSクライアント名です。EADSクライアント名が空文字列の場合，EADSクライアント名のサブディレクトリを省略して出力します。

注意事項

ファイルの出力先に，ネットワークで接続された別マシンのディレクトリは指定しないでください。ネットワークで接続された別マシンのディレクトリを指定した場合，動作は保証されません。

8.4.3　ファイルサイズおよびファイル数の設定

ログファイルのファイルサイズおよびファイル数は，基本的にデフォルト値を設定してください。EADSクライアント構築後，必要に応じてパラメタの指定値を変更してください。

パラメタの指定値を変更する場合の注意事項を次に示します。

ログファイルのファイル数またはファイルサイズにデフォルト値より小さい値を設定すると，当然蓄積されるログが少なくなります。そのため，障害発生時の調査に影響することがあります。ログファイルのパラメタの変更は，そのことに留意して実施してください。

ログファイルのファイル数は1または3以上を設定してください。

ディスク容量を節約したい場合は，ログファイルのファイルサイズを小さく変更することで対応してください。

ログファイルのファイル数は3以上，かつすべてのログファイルの合計サイズが16メガバイト以上になるように設定してください。

8.4.4　ログファイルに依存するパラメタ

ログファイルに依存するパラメタの一覧を次の表に示します。

なお，必ず指定するパラメタを太字で表記しています。

表8‒5　ログファイルに依存するパラメタ一覧（EADSクライアント）

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

クライアント定義ファイル

eads.client.logger.dir

パス名

なし

2

eads.client.logger.message.filesize

ファイルサイズ（4096バイト〜2147483647バイト）

1048576バイト

3

eads.client.logger.message.filenum

ファイル数（1〜16）

2

4

eads.client.logger.message.console.enable

true

false

false

5

eads.client.logger.initErrorOut

true

false

false

6

eads.client.logger.maintenance.filesize

ファイルサイズ（4096バイト〜2147483647バイト）

16777216バイト

7

eads.client.logger.maintenance.filenum

ファイル数（1〜16）

16

(1)　クライアント定義ファイル

(a)　eads.client.logger.dir

ログファイルの出力先ディレクトリのパスを指定します。

指定されたパスが存在しない場合は作成します。

このパラメタに指定したディレクトリ下に出力されるログファイルについては，「8.4.2　ファイルの出力先の設定」を参照してください。

なお，複数プロセスで同じ出力先を同時に使用しないでください。

(b)　eads.client.logger.message.filesize

メッセージログの1ファイル当たりのファイルサイズ（単位：バイト）を指定します。

(c)　eads.client.logger.message.filenum

メッセージログのファイル数を指定します。

(d)　eads.client.logger.message.console.enable

メッセージログの標準出力への出力を有効にするか，無効にするかを指定します。

true：

標準出力への出力を有効にします。

false：

標準出力への出力を無効にします。

(e)　eads.client.logger.initErrorOut

ロガーの初期化失敗時に，標準エラー出力にエラーメッセージを出力するかどうかを指定します。

true：

標準出力にエラーメッセージを出力します。

false：

標準出力にエラーメッセージを出力しません。

(f)　eads.client.logger.maintenance.filesize

保守ログの1ファイル当たりのファイルサイズ（単位：バイト）を指定します。

(g)　eads.client.logger.maintenance.filenum

保守ログのファイル数を指定します。

9　チューニングパラメタを設計する

この章では，チューニングパラメタの設計指針について説明します。

9.1　メモリ・バッファに関連するパラメタの設計

メモリ・バッファに関連するパラメタを設計します。

9.1.1　メモリサイズの設定

EADSサーバが使用するメモリの構成を次の図に示します。

図9‒1　メモリ構成

Explicitヒープは，次の領域から構成されます。

更新操作の履歴が格納される領域

メモリキャッシュ，および2Wayキャッシュの場合に，keyとvalueのうち，value部分を格納するための領域

ノンブロッキングI/O通信バッファが格納される領域

更新操作の履歴とは，APIの種別，およびkeyとvalueの情報のことです。更新操作の履歴はデータを多重化する際，データの整合性を確保するために使用されます。

合意処理中に障害が発生した場合，障害が発生したEADSサーバの代わりに，稼働している別のEADSサーバがこの履歴を基に合意処理に参加します。履歴は前の処理の合意および書き込み処理が完了するまで保持されます。

更新操作の履歴は，EADSサーバが不要と判断した時点で自動的に削除されます。

考え方

「4.1.2　Javaヒープサイズを見積もる」，および「4.1.3　Explicitヒープサイズを見積もる」を参照し，1EADSサーバ当たりのJavaヒープサイズとExplicitヒープサイズを決定します。

9.1.2　バッファサイズの設定

EADSサーバが通信で使用するバッファの概要を次の図に示します。

EADSクライアントから送信されたリクエストは，EADSサーバ内で次のように制御されます。

EADSクライアントから送信されたリクエスト（データの更新操作）は，履歴に保持され，合意メッセージの送信キューで待機します。合意メッセージの送信キューは，合意メッセージの送信先となるEADSサーバの数だけ確保されます。

また，合意メッセージの送信キューの長さを，サーバ定義のeads.replication.sendQueue.lengthパラメタで，送信キューに格納できるデータの最大サイズを，サーバ定義のeads.replication.sendQueue.datasizeパラメタで設定できます。

なお，共通設定のeads.replication.preparationsパラメタで，一度に合意できる処理の最大数を設定することもできます。

最大同時接続数および最大同時実行スレッド数の設定については，「9.2　スレッドプールおよびコネクションプールに関連するパラメタの設計」を参照してください。

考え方

扱うデータ量に合わせてバッファサイズを調節することで，効率良くデータを送受信できます。

9.1.3　メモリ・バッファに関連するパラメタ

メモリ・バッファに関連するパラメタの一覧を次の表に示します。

表9‒1　メモリ・バッファに関連するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

サーバ定義ファイル

eads.server.connection.buffersize

バッファサイズ（1024バイト〜16777216バイト）

4096バイト

2

eads.replication.connection.buffersize

バッファサイズ（1024バイト〜16777216バイト）

131071バイト

3

eads.replication.sendQueue.length

キューの長さ

（10000〜1000000）

100000

4

eads.replication.sendQueue.datasize

1048576バイト〜2147483647バイト

16777216バイト

5

eads.transfer.connection.buffersize

バッファサイズ（1024バイト〜16777216バイト）

131071バイト

6

eads.transfer.datasize

10240バイト〜2147483647バイト

1048576バイト

7

eads.rebalance.transfer.datasize

10240バイト〜2147483647バイト

1048576バイト

8

eads.replication.fillgap.copy.datasize

1024バイト〜16777216バイト

10240バイト

9

eads.admin.operation.resume.send.datasize

0バイト〜2147483647バイト

1048576バイト

10

eads.java.nio.maxCachedBufferSize

0〜9223372036854775807バイト

なし

11

共通設定ファイル

eads.cache.key.maxsize

1バイト〜1024バイト

1024バイト

12

eads.replication.preparations

1〜100

20

13

eads.replication.external.heapsize

1メガバイト〜268435456メガバイト

450メガバイト

14

eads.java.heapsize

ヒープサイズ※1

3072メガバイト

15

eads.java.external.heapsize

ヒープサイズ（2メガバイト〜2147483647メガバイト）

1024メガバイト

16

eads.java.metaspace.maxsize

メモリサイズ※2

83メガバイト

17

eads.cache.limiter.enable

true

false

true

18

eads.cache.keyCount

1024〜1073741824

1048576

19

eads.server.nonBlocking.external.heapsize

1メガバイト〜268435456メガバイト

30メガバイト

20

クライアント定義ファイル

eads.client.connection.buffersize

バッファサイズ（1024バイト〜16777216バイト）

4096バイト

注※1

指定した値が，JavaVMのヒープサイズオプション（-Xmxおよび-Xms）に適用されます。

注※2

指定した値が，JavaVMのメモリサイズオプション（-XX:MetaspaceSizeおよび-XX:MaxMetaspaceSize）に適用されます。

(1)　サーバ定義ファイル

(a)　eads.server.connection.buffersize

コネクション単位で確保する，データの送受信で使用する作業領域のバッファサイズ（単位：バイト）を指定します。

(b)　eads.replication.connection.buffersize

合意メッセージの送受信バッファサイズ（単位：バイト）を指定します。

OSで設定されたTCPのウィンドウサイズを指定することを推奨します。

なお，OSによって，このパラメタに指定した値と異なるサイズのバッファが使用されることがあります。

(c)　eads.replication.sendQueue.length

合意メッセージの送信キューの長さを指定します。

送信キューは，合意メッセージの送信先となるEADSサーバの数だけ確保されます。

次の計算式から見積もってください。見積もった結果，このパラメタの最小値よりも小さい場合は，最小値を設定してください。

2×a×b＋2×a×キャッシュ数＋（c−1）×a×キャッシュ数

a：共通設定のeads.replication.preparationsの指定値

b：共通設定のeads.replication.factor−1（データの多重度が1の場合は1）

c：共通設定のeads.replication.factorパラメタの指定値

注意事項

設定した送信キューの長さを超える量の合意メッセージが送信キューに入った場合，通信エラーになります。

(d)　eads.replication.sendQueue.datasize

合意メッセージの送信キューに格納できるデータの最大サイズ（単位：バイト）を指定します。

次の計算式から見積もってください。

2×a×b×（c＋キャッシュ数）＋d×（e−1）×キャッシュ数

a：共通設定のeads.replication.preparationsの指定値

b：更新操作の履歴の最大サイズ

更新操作の履歴の最大サイズ（単位：バイト）を見積もる計算式を次に示します。

MAX（keyの最大サイズ＋valueの最大サイズ×2,（keyの最大サイズ＋valueの最大サイズ）×最大同時更新データ件数）

（凡例）

MAX：

計算結果の最も大きい値を選ぶことを示しています。

（例）MAX（2，10）の計算結果は10となります。

keyの最大サイズ：

共通設定のeads.cache.key.maxsizeパラメタの指定値

valueの最大サイズ：

put，create，update，replace実行時に指定するvalueの最大サイズです。

最大同時更新データ件数：

メモリキャッシュを使用して，データの一括操作を実行する場合は10を代入します。それ以外の場合は，1を代入します。

c：共通設定のeads.replication.factor−1（データの多重度が1の場合は1）

d：サーバ定義のeads.replication.fillgap.copy.datasizeパラメタの指定値

e：共通設定のeads.replication.factorパラメタの指定値

注意事項

見積もった結果に対して非常に小さい値を設定した場合，送信キューあふれによるリトライが頻発し，処理が継続できなくなるおそれがあります。

(e)　eads.transfer.connection.buffersize

復旧処理，スケールアウト処理，およびリバランス処理で使用するデータの送受信バッファサイズ（単位：バイト）を指定します。

OSで設定されたTCPのウィンドウサイズを指定することを推奨します。

なお，OSによって，このパラメタに指定した値と異なるサイズのバッファが使用されることがあります。

(f)　eads.transfer.datasize

復旧処理およびスケールアウト処理で送信するデータサイズ（単位：バイト）を指定します。

復旧処理およびスケールアウト処理では，復旧対象のEADSサーバ，およびスケールアウト処理で追加したEADSサーバでこのパラメタに指定した値が適用されます。

復旧処理およびスケールアウト処理では，データの整合性を回復するために，稼働中のEADSサーバが復旧対象のEADSサーバ，およびスケールアウト処理で追加したEADSサーバにデータを送信します。eads.transfer.intervalパラメタに指定した間隔で，このパラメタの指定値を超えるまで，10キロバイト単位でデータを連続して送信します。

復旧処理については，「9.3.2(5)　クラスタの復旧処理」を参照してください。スケールアウト処理については，「9.3.2(6)　クラスタのスケールアウト処理（EADSサーバの追加）」を参照してください。

ディスクキャッシュ，および2Wayキャッシュを復旧する場合，このパラメタの指定は無効になり，キャッシュ定義のeads.cache.disk.transfer.datasizeパラメタの指定値が有効となります。

注意事項

復旧処理およびスケールアウト処理では，最低1個のデータを送信します。そのため，このパラメタにEADSサーバに格納しているデータのサイズよりも小さい値を指定しても，送信量を制限することはできません。

(g)　eads.rebalance.transfer.datasize

リバランス処理のデータ転送で送信するデータサイズ（単位：バイト）を指定します。

リバランス処理では，EADSサーバが新しく管理するレンジのデータは，元々そのレンジを管理していたEADSサーバ（分割前のレンジを管理していたEADSサーバ）から転送されます。その際，このパラメタに指定したデータサイズで，データを転送します。

分割前のレンジを管理していたEADSサーバと，分割後（結合後）のレンジを管理するEADSサーバで，このパラメタの指定値が異なる場合には，分割後（結合後）のレンジを管理するEADSサーバのパラメタの指定値が適用されます。

なお，eztool rebalanceコマンドの--datasizeオプションを指定した場合には，このパラメタの指定値よりも，--datasizeオプションの指定値が優先されます。

eads.rebalance.transfer.intervalパラメタに指定した間隔で，このパラメタの指定値を超えるまで，10キロバイト単位でデータを連続して送信します。

注意事項

リバランス処理では，最低1個のデータを送信します。そのため，このパラメタにEADSサーバに格納しているデータのサイズよりも小さい値を指定しても，送信量を制限することはできません。

(h)　eads.replication.fillgap.copy.datasize

EADSサーバに対して，更新操作の履歴の補完処理でデータをコピーする際，1回当たりに送信するデータサイズ（単位：バイト）を指定します。

更新操作の履歴の補完処理については，「9.3.2(8)　更新操作の履歴の補完処理」を参照してください。

次の計算式から見積もってください。

更新操作の履歴の最大サイズ×合意処理で一度に合意できる処理の最大数

更新操作の履歴の最大サイズ：

更新操作の履歴の最大サイズ（単位：バイト）を見積もる計算式を次に示します。

MAX（keyの最大サイズ＋valueの最大サイズ×2,（keyの最大サイズ＋valueの最大サイズ）×最大同時更新データ件数）

（凡例）

MAX：

計算結果の最も大きい値を選ぶことを示しています。

（例）MAX（2，10）の計算結果は10となります。

keyの最大サイズ：

共通設定のeads.cache.key.maxsizeパラメタの指定値

valueの最大サイズ：

put，create，update，replace実行時に指定するvalueの最大サイズです。

最大同時更新データ件数：

メモリキャッシュを使用して，データの一括操作を実行する場合は10を代入します。それ以外の場合は，1を代入します。

合意処理で一度に合意できる処理の最大数：

共通設定のeads.replication.preparationsの指定値

注意事項

メモリ使用量やCPU使用率に影響するため，必要以上に大きな値を設定しないでください。

このパラメタの指定値を超えるサイズのデータが送信されることがあります。

データサイズを小さく設定しても，最低1履歴分は補完処理が行われます。

(i)　eads.admin.operation.resume.send.datasize

eztool resumeコマンド実行時に，1回で転送する差分のデータサイズ（単位：バイト）を指定します。

0を指定すると，1回の通信でデータ1つを送信します。

(j)　eads.java.nio.maxCachedBufferSize

EADSサーバでキャッシュされる1ダイレクトバッファ当たりのサイズの上限を指定します。上限を設定することでダイレクトバッファのメモリ使用量を制限できます。

このパラメタに指定した値は，システムプロパティjdk.nio.maxCachedBufferSizeに設定されます。

このパラメタに値を指定しなかった場合，または0〜2⁶³−1の範囲外の値もしくは数値以外を指定した場合は，2⁶³−1として扱われ，無制限となります。

このパラメタにはeads.server.connection.buffersizeパラメタと同じ値を指定することを推奨します。ただし，eads.server.nonBlocking.enableパラメタの指定値がfalse，かつeads.server.connection.buffersizeパラメタの指定値が8192未満の場合は，8192を指定することを推奨します。

EADSサーバの処理性能を重視する場合は，パラメタに値を指定しないか，またはEADSクライアントとEADSサーバ間で通信するデータの最大サイズを設定してください。

注意事項

このパラメタに1024未満の値を指定すると，性能が大きく劣化することがあります。

このパラメタに指定した値以上のデータサイズを扱うリクエストでは，このパラメタに値を指定しない場合に比べて，性能が劣化することがあります。

(2)　共通設定ファイル

(a)　eads.cache.key.maxsize

クラスタに格納できるkeyの最大サイズ（単位：バイト）を指定します。

このパラメタに指定したサイズでkeyの格納領域を確保します。

keyの最大サイズを制限することで，デフォルトのまま使用するよりも，keyが格納されるJavaヒープのサイズを小さく設計することができます。

注意事項

keyの最大サイズを大きく設定したクラスタで出力されたストアデータファイルは，それよりも小さく設定したクラスタでは読み込めないことがあります。

ディスクキャッシュ，および2Wayキャッシュを使用する場合，keyの最大サイズを大きく設定したクラスタで出力されたキャッシュデータファイルとキャッシュインデックスファイルは，それよりも小さく設定したクラスタでは，データの再配置に使用できないことがあります。

(b)　eads.replication.preparations

合意処理で，一度に合意できる処理の最大数を指定します。

同時に実行される更新操作が多い場合，大きな値を設定することでスループットが向上する場合がありますが，デフォルト値のままにしておくことを推奨します。

(c)　eads.replication.external.heapsize

更新操作の履歴が格納される領域のサイズ（単位：メガバイト）を指定します。

このパラメタの指定値が，次のどちらかを満たす場合，EADSサーバの起動に失敗するので注意してください。

共通設定のeads.java.external.heapsizeパラメタの指定値×0.97（メガバイト単位で小数点以下は切り捨て）より大きい場合

サーバ定義のeads.server.nonBlocking.enableパラメタがtrue，かつ共通設定のeads.server.nonBlocking.external.heapsizeパラメタの指定値＋このパラメタの指定値が，共通設定のeads.java.external.heapsizeパラメタの指定値×0.97（メガバイト単位で小数点以下は切り捨て）より大きい場合

(d)　eads.java.heapsize

keyが格納されるJavaヒープのサイズ（単位：メガバイト）を指定します。

(e)　eads.java.external.heapsize

valueおよび更新操作の履歴が格納されるExplicitヒープのサイズ（単位：メガバイト）を指定します。

指定したExplicitヒープサイズの3%（メガバイト単位で小数点以下は切り上げ）は管理領域として使用されます。

このパラメタの指定値が，次のどちらかを満たす場合，EADSサーバの起動に失敗するので注意してください。

共通設定のeads.replication.external.heapsizeパラメタの指定値が，このパラメタの指定値×0.97（メガバイト単位で小数点以下は切り捨て）より大きい場合

サーバ定義のeads.server.nonBlocking.enableパラメタがtrue，かつ共通設定のeads.server.nonBlocking.external.heapsizeパラメタの指定値＋eads.replication.external.heapsizeパラメタの指定値が，このパラメタの指定値×0.97（メガバイト単位で小数点以下は切り捨て）より大きい場合

(f)　eads.java.metaspace.maxsize

metaspace領域のサイズ（単位：メガバイト）を指定します。

metaspace領域は，ロードされたEADSサーバ，ユーザファンクションのclassなどの情報が格納される領域です。

(g)　eads.cache.limiter.enable

データ総量監視機能を有効にするかどうかを指定します。

データ総量監視機能を有効にすると，データの格納先の容量が不足することが予想される場合に，その処理をエラーとすることで，EADSサーバがダウンすることを防ぎます。

true：

データ総量監視機能を有効にします。

false：

データ総量監視機能を無効にします。

(h)　eads.cache.keyCount

データ総量監視機能で監視する，1レンジ当たりのデータ件数を指定します。

eads.cache.limiter.enableパラメタにfalseを指定している場合（データ総量監視機能が無効になっている場合），このパラメタの指定値は無効となります。

(i)　eads.server.nonBlocking.external.heapsize

ノンブロッキングI/O通信バッファサイズ（単位：メガバイト）を指定します。詳細は，「7.8.3　ノンブロッキングI/O通信制御に依存するパラメタ」のeads.server.nonBlocking.external.heapsizeパラメタを参照してください。

(3)　クライアント定義ファイル

(a)　eads.client.connection.buffersize

EADSクライアントがデータの送受信で使用するバッファのサイズ（単位：バイト）を指定します。

9.2　スレッドプールおよびコネクションプールに関連するパラメタの設計

同時に実行されるリクエスト処理数に応じて，スレッドプールおよびコネクションプールに関連するパラメタを設計します。

9.2.1　最大同時接続数の設定

EADSでは，スレッドプールおよびコネクションプールを使用することで，スレッドやコネクションの生成に掛かるオーバヘッドを軽減し，スループットの向上を図ります。スレッドプールおよびコネクションプールについては，「2.13　スレッドプールおよびコネクションプールを使用したスループットの向上」を参照してください。

考え方

最大同時接続数（サーバ定義のeads.server.maxConnectionsパラメタの指定値）を調節することで，リソースの使用効率を改善できます。

9.2.2　最大同時実行スレッド数の設定

EADSサーバは，EADSクライアントからの同時接続数および同時実行スレッド数を制御します。

同時実行スレッド数については，EADSサーバに対するリクエストをデータ操作とユーザファンクションに分けて制御します。

データ操作の同時実行スレッド数

サーバ定義のeads.server.cache.maxExecuteThreadsパラメタで指定します。

EADSクライアント・EADSサーバ間の接続を切断するまでの間（サーバ定義のeads.server.connection.keepAlive.timeoutパラメタの指定値），最大同時実行スレッド数を超えるリクエストはキューに待機します。

ユーザファンクションの同時実行スレッド数

ユーザファンクションごとの同時実行スレッド数（ファンクション定義のeads.function.＜ユーザファンクション名＞.maxExecuteThreadsパラメタ）を制御し，その上でユーザファンクション全体の同時実行スレッド数（サーバ定義のeads.server.function.maxExecuteThreadsパラメタ）を制御します。

考え方

最大同時実行スレッド数を調節することで，リソースの使用効率を改善できます。

9.2.3　スレッドプールおよびコネクションプールに関連するパラメタ

スレッドプールおよびコネクションプールに関連するパラメタの一覧を次の表に示します。

表9‒2　スレッドプールおよびコネクションプールに関連するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

サーバ定義ファイル

eads.server.maxConnections※

1〜1024

10

2

eads.server.cache.maxExecuteThreads

1〜eads.server.maxConnectionsパラメタの指定値

eads.server.maxConnectionsパラメタの指定値

3

eads.server.function.maxExecuteThreads

1〜eads.server.maxConnectionsパラメタの指定値

eads.server.maxConnectionsパラメタの指定値

4

eads.server.nonBlocking.processorThreads

1〜8192

10

5

ファンクション定義ファイル

eads.function.＜ユーザファンクション名＞.maxExecuteThreads

0〜eads.server.function.maxExecuteThreadsパラメタの指定値

0

6

クライアント定義ファイル

eads.client.connectionPool.poolsize

1〜1024

10

7

eads.client.connectionPool.exceedMaxSizeError.enable

true

false

false

注※

サーバ定義のeads.server.nonBlocking.enableパラメタにtrueを指定した場合の最小値およびデフォルト値は1024，最大値は32768です。

(1)　サーバ定義ファイル

(a)　eads.server.maxConnections

EADSサーバへの最大同時接続数を指定します。

最大同時接続数を超える接続に対しては，エラーを返却し，通信を切断します。

次に示す値の合計以上を設定してください。

接続するEADSクライアントのクライアント定義に設定したeads.client.connectionPool.poolsizeパラメタの値の総和

eads.client.eventListener.enableパラメタにtrueを指定したEADSクライアントの総和

同時実行する次のコマンドの数

eztool putコマンド

eztool getコマンド

eztool removeコマンド

eztool removeallコマンド

eztool execfuncコマンド

ただし，eads.server.nonBlocking.enableパラメタにtrueを指定した場合の最小値およびデフォルト値は1024，最大値は32768です。

なお，eads.client.connectionPool.poolsizeパラメタに設定した値はListenキューのbacklogにも設定されます。設定値がOSの制限値を超えた場合は，OSの制限値が設定されます。

クライアント定義のeads.client.connectionPool.poolsizeパラメタに設定する値を考慮して，OSの制限値を拡張してください。制限値を拡張する方法については，OSのマニュアルを参照してください。

(b)　eads.server.cache.maxExecuteThreads

データ操作の最大同時実行スレッド数を指定します。

ただし，eads.server.nonBlocking.enableパラメタにtrueを指定した場合のデフォルト値および最大値は，両方ともeads.server.nonBlocking.processorThreadsパラメタの指定値になります。

(c)　eads.server.function.maxExecuteThreads

ユーザファンクション全体の最大同時実行スレッド数を指定します。

ただし，eads.server.nonBlocking.enableパラメタにtrueを指定した場合のデフォルト値および最大値は，両方ともeads.server.nonBlocking.processorThreadsパラメタの指定値になります。

(d)　eads.server.nonBlocking.processorThreads

ノンブロッキングI/O通信制御を使用する際の，リクエスト処理スレッド数を指定します。詳細は，「7.8.3　ノンブロッキングI/O通信制御に依存するパラメタ」のeads.server.nonBlocking.processorThreadsパラメタを参照してください。

(2)　ファンクション定義ファイル

(a)　eads.function.＜ユーザファンクション名＞.maxExecuteThreads

ユーザファンクション単位の最大同時実行スレッド数を指定します。

ユーザファンクション名には，完全修飾クラス名を指定します。

0を指定した場合は無制限となります。

(3)　クライアント定義ファイル

(a)　eads.client.connectionPool.poolsize

同一接続先に対してプールしておく，コネクションの最大個数を指定します。

指定した個数まで，コネクションを確立できます。

クライアントAPIを同時に実行するスレッド数の値を設定してください。

(b)　eads.client.connectionPool.exceedMaxSizeError.enable

同一接続先に対してプールしておくコネクションがすでに最大個数に達していて，すべて使用中の場合に，EADSクライアントからのリクエストをエラーにするかどうかを指定します。

true：

クライアントAPIをエラーにします。

false：

クライアントAPIをエラーにしません。クライアントAPIは処理待ちとなります。

9.3　タイムアウトに関連するパラメタの設計

タイムアウトに関連するパラメタを設計します。

9.3.1　通信を監視するタイマの設定

TCPプロトコルを使用するEADSクライアント・EADSサーバ間の通信では，次に示す時間を監視することによって，通信障害を検知しています。

ソケットによる接続開始から接続完了までの時間

データの書き込み開始から書き込み完了までの時間

データの読み込み開始から読み込み完了までの時間

データの読み込みについては，1つの電文を受信する際に複数回発生することがあります。

考え方

監視時間を短くすることで通信障害を検知するスピードを早めたり，長くすることで頻繁にタイムアウトが発生するのを防いだりします。

(1)　EADSクライアント・EADSサーバ間での通信タイムアウトの設定

EADSクライアント・EADSサーバ間の通信では，次の図に示す通信タイムアウトが設定できます。

図9‒2　EADSクライアント・EADSサーバ間での通信タイムアウトの設定

通信タイムアウトの設定で使用するパラメタを次の表に示します。表の項番は，図9-2の(1)〜(8)に対応しています。

表9‒3　通信タイムアウトの設定で使用するパラメタ

項番

設定するタイムアウト

定義ファイル

パラメタ名

1

EADSサーバへの接続

クライアント定義ファイル

eads.client.connection.send.timeout

2

EADSサーバへのデータ送信

3

EADSサーバからのデータ受信

eads.client.connection.receive.timeout

4

EADSクライアントからのデータ受信

サーバ定義ファイル

eads.server.connection.timeout

5

EADSクライアントへのデータ送信

6

通信のない常設コネクションの切断

eads.server.connection.keepAlive.timeout

7

イベントリスナ用のコネクションの再接続

クライアント定義ファイル

eads.client.eventListener.reconnect.interval

8

サーバ定義ファイル

eads.server.eventListener.notify.retry.timeout

EADSクライアント・EADSサーバ間の通信で，タイムアウトが設定できる個所を次の図に示します。

図9‒3　EADSクライアント・EADSサーバ間の通信で，タイムアウトが設定できる個所（データ操作の場合）

図9‒4　EADSクライアント・EADSサーバ間の通信で，タイムアウトが設定できる個所（イベントリスナを使用する場合）

各タイムアウト（図中の(1)〜(8)）に設定する値の考え方については，次の個所で説明します。

「9.3.1(2)　通信タイムアウトに設定する値の考え方」

「9.3.1(3)　リクエスト処理用の常設コネクション切断までのタイムアウト値の設定」

「9.3.1(4)　イベントリスナ用のコネクションの再接続のタイムアウト値の設定」

また，ポイントとなる項目（★1〜★7）については，「9.3.1(5)　タイムアウトに設定する値を考慮する際のポイント」で説明します。

(2)　通信タイムアウトに設定する値の考え方

通信タイムアウト（図9-3の(1)〜(5)）は，設定したタイムアウト時間内に処理が完了することを期待するものではなく，次のような状態を検知するための機能です。

通信路の物理的な切断

通信先の障害などによる，通信先との通信路の切断

そのため，期待する時間内に応答がない場合でも，通信タイムアウトの機能で通信を切断することは推奨しません。

EADSサーバの処理は，EADSクライアントとの通信路の状態とは関係なく進みます。EADSクライアントへの応答時に通信路の切断を検知しても，データのロールバックは行いません。そのため，通信タイムアウトの機能で通信を切断してしまうと，EADSクライアントでは，データ操作の結果がわからなくなります。

処理の遅延やネットワークの遅延ではなく，通信先の障害や通信路の切断などを正しく検知できるように，通信タイムアウトの時間をチューニングすることを推奨します。

(3)　リクエスト処理用の常設コネクション切断までのタイムアウト値の設定

リクエスト処理用の常設コネクション切断までのタイムアウト値の設定（図9-3の(6)）は，AP（ユーザプログラム）が動作するOS，またはホストがダウンした場合に，EADSサーバが気づくことができないときに，OSに設定されたTCPのkeep-aliveのアイドル時間までコネクション，およびスレッドが占有されることを防ぐためのものです。

むだな通信の切断やエラーを回避するために，タイムアウト値には大きめの値を設定することを推奨します。ただし，ほかの機能に影響を与えないように，次の点も考慮してください。

EADSクライアント側のコネクション数との関係

EADSクライアントはAPから一定の期間EADSサーバへの操作がないときでもリクエスト処理用の常設コネクションを保持します。リクエスト処理用の常設コネクションはクラスタ構成情報の確認処理のために定期的に使用されます。1つのEADSサーバに対するリクエスト処理用の常設コネクション数は最大で，クライアント定義のeads.client.connectionPool.poolsizeパラメタで指定した数となります。また，各EADSサーバに対してクライアント定義のeads.client.clusterInfo.update.intervalパラメタに指定した間隔で常設コネクションを使用します。

クラスタ構成情報の確認は1スレッドで実行しているため，OSが正常に動作していないホストのアドレスに対して，クラスタ構成情報の確認処理を行うと，最大でクライアント定義のeads.client.connection.send.timeoutパラメタに設定した時間の待ちが発生し，その間，ほかのEADSサーバに対するクラスタ構成情報の確認処理で通信が滞ります。

上記の場合で，かつEADSクライアントからのリクエストがないときに，リクエスト処理用の常設コネクションの切断を防ぐために，サーバ定義のeads.server.connection.keepAlive.timeoutパラメタの値には，次の関係を保つことができる，十分な時間を設定する必要があります。

サーバ定義のeads.server.connection.keepAlive.timeoutパラメタの指定値

　＞（クライアント定義のeads.client.connection.send.timeoutパラメタの指定値×〔許容するEADSサーバの障害数〕

　＋クライアント定義のeads.client.clusterInfo.update.intervalパラメタの指定値）

　×クライアント定義のeads.client.connectionPool.poolsizeパラメタの指定値

なお，EADSサーバプロセスがダウンしてもOSに問題がない場合，上記のeads.client.connection.send.timeoutパラメタに指定した分の待ち時間は発生しません。そのため，許容するEADSサーバの障害数は，プロセス障害ではなく，ホスト障害などの許容範囲を考慮してください。

EADSサーバ側の接続最大数との関係

サーバ定義のeads.server.maxConnectionsパラメタを指定すると，EADSクライアントからの接続数が制限され，設定した値を超えた接続はエラーとなります。

必要最小限の値をこのパラメタに設定している場合，ホストやOSの異常によってEADSサーバ側のネットワークで検知できないネットワーク切断が発生すると，サーバ定義のeads.server.connection.keepAlive.timeoutパラメタに設定した時間までEADSサーバの接続が保持されます。この結果，EADSクライアント側で障害回復後の再接続ができなくなるおそれがあります。この問題を解決するためには，次の式を満たすように，パラメタを設定する必要があります。

サーバ定義のeads.server.connection.keepAlive.timeoutパラメタの指定値

　＜〔障害発生からEADSクライアントが再接続までに必要とする時間〕

ただし，障害の内容によって対応に掛かる時間が大きく変わるため，メモリに余裕がある場合は，再接続に使用する数をeads.server.maxConnectionsパラメタにあらかじめ加算し，eads.server.connection.keepAlive.timeoutパラメタには3600秒など余裕を持った値を設定することを推奨します。

(4)　イベントリスナ用のコネクションの再接続のタイムアウト値の設定

イベントリスナ用のコネクションの再接続のタイムアウト（図9-4の(7)および(8)）は，次の目的のために設定します。

EADSサーバが動作するOS，またはホストがダウンした場合，EADSクライアントがコネクションの再接続を繰り返すときに，CPUやネットワークの帯域などのリソースが占有されることを防ぐ。

AP（ユーザプログラム）が動作するOS，またはホストがダウンした場合，EADSサーバが気づくことができないときに，イベントの再送用のメモリが占有されることを防ぐ。

むだな通信の切断やエラーを回避するために，タイムアウト値には大きめの値を設定することを推奨します。ただし，ほかの機能に影響を与えないように，次の点も考慮してください。

EADSクライアント側の再接続間隔との関係

EADSクライアントはイベントリスナ用のコネクションを保持します。1つのEADSサーバに対するイベントリスナ用の常設コネクション数は1です。

コネクションが切断された場合，1回目の再接続では，即時に再接続することで，一時的なネットワーク障害が発生してもイベントの通知が遅延しないようにします。2回目以降の再接続では，クライアント定義のeads.client.eventListener.reconnect.intervalパラメタに指定した間隔で，各EADSサーバに対してコネクションを再接続します。

ただし，1回目の再接続でも，接続先EADSサーバの最大同時接続数を超えて接続しようとした場合は，即時に再接続しません。この場合は，クライアント定義のeads.client.eventListener.reconnect.intervalパラメタに指定した間隔で，コネクションを再接続します。

なお，コネクションの再接続は1スレッドで実行されますが，複数のEADSサーバとの通信は並列に処理されます。このため，OSが正常に動作していないホストのアドレスに対して再接続しても，その間，ほかのEADSサーバからの再接続やイベントの通知が滞ることはありません。

EADSサーバ側の再接続間隔との関係

イベントリスナ用のコネクションが切断された場合，EADSサーバは，EADSクライアントからの再接続待ちとなります。

サーバ定義のeads.server.eventListener.notify.retry.timeoutパラメタには，EADSクライアントに再送するデータを破棄するまでの待ち時間を指定します。再接続する前にメモリを解放すると，そのEADSサーバからのイベントの通知が欠落するおそれがあります。そのため，サーバ定義のeads.server.eventListener.notify.retry.timeoutパラメタの値には，次の関係を保つことができる，十分な時間を設定する必要があります。

サーバ定義のeads.server.eventListener.notify.retry.timeoutパラメタの指定値

　＞クライアント定義のeads.client.connection.send.timeoutパラメタの指定値

　＋クライアント定義のeads.client.eventListener.reconnect.intervalパラメタの指定値

なお，コネクションの再接続待ちは1スレッドで実行されますが，複数のEADSクライアントとの通信は並列に処理されます。このため，OSが正常に動作していないホストのアドレスに対して再接続しても，その間，ほかのEADSクライアントへの再接続やイベントの通知が滞ることはありません。

EADSサーバ側の接続最大数との関係

サーバ定義のeads.server.maxConnectionsパラメタを指定すると，EADSクライアントからの接続数が制限され，設定した値を超えた接続はエラーとなります。

必要最小限の値をこのパラメタに設定している場合，ホストやOSの異常によってEADSサーバ側のネットワークで検知できないネットワーク切断が発生すると，サーバ定義のeads.server.connection.keepAlive.timeoutパラメタに設定した時間までEADSサーバの接続が保持されます。この結果，EADSクライアント側で障害回復後の再接続ができなくなるおそれがあります。この問題を解決するため，メモリに余裕がある場合は，再接続に使用するコネクション数をeads.server.maxConnectionsパラメタにあらかじめ加算することを推奨します。

(5)　タイムアウトに設定する値を考慮する際のポイント

タイムアウトに設定する値を考慮する際に，ポイントとなる項目について説明します。なお，このポイントは図9-3および図9-4の★1〜★7に対応しています。

ポイント1（★1）

EADSクライアントからの通信は，通常，常設コネクションを使用します。そのため，初回接続時や，クライアントライブラリを使用するスレッドが増加した場合にだけ接続処理が発生します。接続タイムアウトには送信タイムアウトと同じ値（クライアント定義のeads.client.connection.send.timeoutパラメタの値）が使用されます。

ポイント2（★2）

データ送信処理は送信側の送信バッファにデータを格納した時点で送信完了と見なされます。そのため，送信バッファに収まるサイズの送信処理では，受信側プロセスや通信路の状態に関係なく，データの送信処理が成功します（通信路に問題がある場合は，次の受信処理でエラーになります）。

送信バッファより大きいサイズのデータを送信する場合，FullGCなど受信側プロセスの問題で送信エラーが発生することがあります。送信バッファのサイズを超えるような大きなデータを送信する場合は，受信側プロセスのFullGCなどに掛かる時間を考慮する必要があります。

ポイント3（★3）

送信処理，受信処理は，内部では複数回に分けて実行されます。その際，それぞれの処理でタイムアウト値が適用されます。そのため，タイムアウト値は応答が戻るまでの時間を保証するものではありません。

ポイント4（★4）

EADSクライアントは，EADSクライアント側の送信処理が終わった時点から次の読み込み処理に移ります。このとき，送信したデータをEADSサーバが受信しているかどうかは考慮されません。

また，EADSクライアントの受信タイムアウトに含まれる時間には，EADSサーバ上のデータ操作やユーザファンクションの実行時間が含まれます。処理に時間が掛かるユーザファンクションが存在する場合，ユーザファンクションの処理時間に合わせてクライアント定義を設定すると，通常の通信には適さない値となるおそれがあります。そのような場合には，クライアント定義でタイムアウト値を設定するのではなく，タイムアウトつきのAPIの使用を推奨します。

ポイント5（★5）

EADSクライアントへのレスポンス送信を終えたEADSサーバは，次のリクエスト待ちとなります。この受信処理には，通常の通信タイムアウト（サーバ定義のeads.server.connection.timeoutパラメタで指定した値）ではなく，常設コネクションのタイムアウト（サーバ定義のeads.server.connection.keepAlive.timeoutパラメタで指定した値）が適用されます。常設コネクションのタイムアウトの設定値については，「9.3.1(3)　リクエスト処理用の常設コネクション切断までのタイムアウト値の設定」を参照してください。

ポイント6（★6）

EADSクライアントは，イベントリスナ用のコネクションを保持し続けます。コネクションが切断された場合には，EADSサーバに対して再接続を繰り返します。

イベントリスナ用のコネクションの再接続については，「9.3.1(4)　イベントリスナ用のコネクションの再接続のタイムアウト値の設定」を参照してください。

ポイント7（★7）

EADSサーバは，イベントリスナ用のコネクションを保持し続けます。コネクションが切断された場合には，EADSクライアントからの再接続を待ちます。

イベントリスナ用のコネクションの再接続については，「9.3.1(4)　イベントリスナ用のコネクションの再接続のタイムアウト値の設定」を参照してください。

9.3.2　クラスタを監視するタイマの設定

クラスタ内のEADSサーバは，互いにハートビートを送信し合い，正常に稼働していることをクラスタ内に知らせています。

また，コマンド実行時のEADSサーバとの通信や，コマンド実行開始から終了までに掛かる時間を監視することによって，通信障害を検知しています。

考え方

監視時間を短くすることで通信障害を検知するスピードを早めたり，長くすることで頻繁にタイムアウトが発生するのを防いだりします。

(1)　ハートビートの送信，および生存確認

ハートビートの送信によるクラスタ監視については，「2.10　クラスタ監視」を参照してください。

ハートビートの送信，および生存確認のタイマを次の図に示します。

図中のアルファベットは，「9.3.3　タイムアウトに関連するパラメタ」の説明と次のように対応しています。

(c)：「9.3.3(1)(c)　eads.failureDetector.heartbeat.interval」

(d)：「9.3.3(1)(d)　eads.failureDetector.heartbeat.timeout」

(e)：「9.3.3(1)(e)　eads.failureDetector.connection.timeout」

(f)：「9.3.3(1)(f)　eads.failureDetector.read.timeout」

(2)　クラスタの開始

ezstartコマンドを実行してクラスタを開始する場合を例に，EADSサーバ開始時のタイマを次の図に示します。

図中のアルファベットは，「9.3.3　タイムアウトに関連するパラメタ」の説明と次のように対応しています。

(i)：「9.3.3(1)(i)　eads.admin.boot.timeout」

なお，クラスタ内では，クラスタ定義で設定したEADSサーバIDがいちばん小さいEADSサーバから起動します。以降，順番に起動したEADSサーバは，最初に起動したEADSサーバからのハートビートを受信し，クラスタに参加していきます。

最初に起動したEADSサーバは，ほかのEADSサーバから受信したハートビートを基に，クラスタ構成情報を更新します。更新したクラスタ構成情報は，クラスタ内で共有します。

(a)　クラスタ定義の内容がほかのEADSサーバと異なる場合

すでに起動しているEADSサーバは，ハートビートにクラスタ定義の内容をハッシュ化した値を付与して送信します。

すでに起動しているEADSサーバからハートビートを受信すると，そのハッシュ値をチェックして，ハッシュ値が異なれば，起動に失敗します。

(b)　クラスタ起動中に，すでにクラスタに参加しているEADSサーバがダウンした場合

クラスタ起動中に，すでにクラスタに参加しているEADSサーバがダウンした場合，ダウンしたEADSサーバは縮退状態に遷移します。ほかのEADSサーバも起動処理を中断し，起動に失敗します。

クラスタ内の半数以上のEADSサーバが同時にダウンした場合，タイムアウトします。

(c)　クラスタ起動中に，まだクラスタに参加していないEADSサーバがダウンした場合

クラスタ起動中に，まだクラスタに参加していないEADSサーバがダウンした場合，全EADSサーバの起動処理が完了しないため，すでに起動しているEADSサーバはタイムアウトします。

(3)　クラスタの運用操作

eztoolコマンドを実行して，クラスタを運用操作する際のタイマを次の図に示します。

図中のアルファベットは，「9.3.3　タイムアウトに関連するパラメタ」の説明と次のように対応しています。

(a)：「9.3.3(2)(a)　eads.command.connection.timeout」

(b)：「9.3.3(2)(b)　eads.command.common.read.timeout」※1

(c)：「9.3.3(2)(c)　eads.command.common.execution.timeout」※2

注※1

コマンド定義のeads.command.＜サブコマンド名＞.read.timeoutパラメタを指定した場合は，eads.command.＜サブコマンド名＞.read.timeoutパラメタの値が適用されます。

注※2

コマンド定義のeads.command.＜サブコマンド名＞.execution.timeoutパラメタを指定した場合は，eads.command.＜サブコマンド名＞.execution.timeoutパラメタの値が適用されます。

(4)　EADSサーバの縮退処理

EADSサーバの縮退処理の流れとタイマの関係を次の図に示します。

図中のアルファベットは，「9.3.3　タイムアウトに関連するパラメタ」の説明と次のように対応しています。

(c)：「9.3.3(3)(c)　eads.client.clusterInfo.update.interval」

(k)：「9.3.3(1)(k)　eads.admin.operation.isolate.gracefulstop.waitTime」

eztool isolateコマンドを実行してEADSサーバを縮退させる場合，サーバ定義のeads.admin.operation.isolate.gracefulstop.waitTimeパラメタで，EADSサーバのクラスタ構成情報の更新が完了してから縮退処理が完了するまでの時間を指定できます。この値よりも小さい値をクライアント定義のeads.client.clusterInfo.update.intervalパラメタに指定することで，EADSクライアントのクラスタ構成情報の更新完了後に，EADSサーバを縮退できます。

なお，クラスタ監視によってEADSサーバが縮退する場合，eads.admin.operation.isolate.gracefulstop.waitTimeパラメタの指定は無効となります。

更新操作の履歴の補完処理については，「9.3.2(8)　更新操作の履歴の補完処理」を参照してください。

(5)　クラスタの復旧処理

クラスタを復旧する際のタイマを次の図に示します。

図中のアルファベットは，「9.3.3　タイムアウトに関連するパラメタ」の説明と次のように対応しています。

(m)：「9.3.3(1)(m)　eads.transfer.timeout」

(n)：「9.3.3(1)(n)　eads.transfer.interval」

復旧対象のEADSサーバのサーバ定義のeads.transfer.datasizeパラメタに指定したサイズを超えるまで，10キロバイト単位でデータを連続して送信します。例えば，25キロバイトを指定した場合は，30キロバイトまでデータを送信します。

復旧処理では，データの整合性を回復するために，稼働中のEADSサーバが復旧対象のEADSサーバにデータを送信します。

そのため，次の点に留意してください。

EADSサーバが復旧するまでに，少なくともデータ取得分の時間が掛かります。

データ送信元のEADSサーバでは，データを送信する分，CPUのリソースやネットワークの帯域を使用するといった影響があります。

データ操作と復旧処理が重なってEADSサーバ内の処理が追いつかなくなった場合は，メモリが枯渇しないように，データ操作を待たせることがあります。

参考

ディスクキャッシュ，および2Wayキャッシュを復旧する場合は，復旧処理で送信するデータサイズをキャッシュ定義のeads.cache.disk.transfer.datasizeパラメタで指定します。また，復旧処理でのデータ送信間隔をeads.cache.disk.transfer.intervalパラメタで指定します。

データの更新中でも，データの整合性を回復した状態で，縮退したEADSサーバをクラスタに復帰させることができます。縮退状態が発生した場合の復旧までの流れについては，「12.2.1　縮退状態が発生した場合」を参照してください。

更新操作の履歴の補完処理については，「9.3.2(8)　更新操作の履歴の補完処理」を参照してください。

(6)　クラスタのスケールアウト処理（EADSサーバの追加）

クラスタをスケールアウトする（クラスタにEADSサーバを追加する）際のタイマは，クラスタを復旧する際のタイマと同じです。

クラスタを復旧する際のタイマについては，「9.3.2(5)　クラスタの復旧処理」を参照してください。その際には，説明の「復旧」を「スケールアウト」に読み替えてください。

(7)　クラスタのリバランス処理（レンジに格納できるkeyの数の均等化）

クラスタをリバランスする（レンジに格納できるkeyの数を均等にする）際のタイマは，クラスタを復旧する際のタイマと同じです。

クラスタを復旧する際のタイマについては，「9.3.2(5)　クラスタの復旧処理」を参照してください。その際には，説明の「復旧」を「リバランス」に読み替えてください。

また，リバランスの場合は，稼働中のEADSサーバから稼働中のEADSサーバに対してデータを送信します。このため，説明のパラメタ名を次のように読み替えてください。

「eads.transfer.datasizeパラメタ」を「eads.rebalance.transfer.datasizeパラメタ」に読み替える

「eads.transfer.intervalパラメタ」を「eads.rebalance.transfer.intervalパラメタ」に読み替える

(8)　更新操作の履歴の補完処理

EADSサーバの縮退処理，復旧処理，スケールアウト処理，リバランス処理，および排他制御では，EADSサーバ間で更新操作の履歴を確認します。EADSサーバ間で更新操作の履歴に差異がある場合は，更新操作の履歴の補完処理を行います。これによって，データの書き込み順序の整合性を確保します。

更新操作の履歴の補完処理は，次の2つの処理から成ります。

他EADSサーバの更新操作の履歴の補完処理

自EADSサーバの更新操作の履歴の補完処理

なお，この場合の自EADSサーバとは次のEADSサーバを指します。

縮退処理の場合：

縮退するEADSサーバの処理を引き継ぐEADSサーバ（データのコピー先EADSサーバ）

復旧処理，スケールアウト処理，およびリバランス処理の場合：

復旧対象のEADSサーバ，スケールアウト処理で追加するEADSサーバ，およびリバランス処理で位置を変更するEADSサーバ

更新操作の履歴の補完処理の流れとタイマの関係を次の図に示します。

図中のアルファベットは，「9.3.3　タイムアウトに関連するパラメタ」の説明と次のように対応しています。

(p)：「9.3.3(1)(p)　eads.replication.fillgap.copy.timeout」

他EADSサーバの更新操作の履歴の補完処理

自EADSサーバの更新操作の履歴を各EADSサーバに送信します。

自EADSサーバと他EADSサーバの更新操作の履歴に差異がある場合，他EADSサーバに対して，自EADSサーバの更新操作の履歴を送信します。このとき，サーバ定義のeads.replication.fillgap.copy.datasizeパラメタに指定したサイズのデータを送信します。

他EADSサーバは，自EADSサーバから送信された更新操作の履歴を基に更新操作の履歴を補完します。

他EADSサーバの更新操作の履歴は次のように補完されます。

他EADSサーバの更新操作の履歴の補完処理は，データのコピー先EADSサーバに対して，更新操作の履歴の差異の数だけ実行されます。

自EADSサーバの更新操作の履歴の補完処理

自EADSサーバの更新操作の履歴に差異があるかを確認するため，各EADSサーバに更新操作の履歴の補完処理の要求を送信します。

更新操作の履歴の補完処理の要求に対して合意処理が行われます。

サーバ定義のeads.replication.consensus.timeoutパラメタに指定した時間内に合意処理が完了しない場合はタイムアウトして，再度，合意処理を行います。合意できるまで無限に繰り返します。

合意処理によって，他EADSサーバから自EADSサーバに更新操作の履歴が送信されます。

自EADSサーバは，各EADSサーバから送信された更新操作の履歴を基に更新操作の履歴を補完します。

自EADSサーバの更新操作の履歴は次のように補完されます。

自EADSサーバの更新操作の履歴の補完処理は，自EADSサーバの更新操作の履歴の差異の数だけ実行されます。

1回の縮退処理，復旧処理，スケールアウト処理，またはリバランス処理に対して，更新操作の履歴の補完処理が1回だけとは限りません。最大で（データの多重度−1）×（キャッシュ数）回，実行されます。

更新操作の履歴の補完処理の同時実行スレッド数は，データの多重度−1（データの多重度が1の場合は1）になります。

9.3.3　タイムアウトに関連するパラメタ

タイムアウトに関連するパラメタの一覧を次の表に示します。

表9‒4　タイムアウトに関連するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

サーバ定義ファイル

eads.server.connection.timeout

100〜3600000

（ミリ秒）

60000

2

eads.admin.operation.connection.timeout

100〜3600000

（ミリ秒）

10000

3

eads.failureDetector.heartbeat.interval

10〜60000

（ミリ秒）

400

4

eads.failureDetector.heartbeat.timeout

10〜86400000

（ミリ秒）

2000

5

eads.failureDetector.connection.timeout

1〜60000

（ミリ秒）

500

6

eads.failureDetector.read.timeout

1〜60000

（ミリ秒）

500

7

eads.failureDetector.retry

0〜100

0

8

eads.failureDetector.assertive.threshold

1〜49

1

9

eads.admin.boot.timeout

1〜86400

（秒）

60

10

eads.server.connection.keepAlive.timeout

0〜3600（秒）

3600

11

eads.admin.operation.isolate.gracefulstop.waitTime

0〜3600000

（ミリ秒）

3000

12

eads.replication.consensus.timeout

10〜3600000

（ミリ秒）

800

13

eads.transfer.timeout

100〜3600000（ミリ秒）

60000

14

eads.transfer.interval

0〜60000

（ミリ秒）

1000

15

eads.rebalance.transfer.interval

1〜60000（ミリ秒）

1000

16

eads.replication.fillgap.copy.timeout

100〜3600000（ミリ秒）

2000

17

eads.admin.operation.resume.send.interval

0〜2147483647（ミリ秒）

0

18

eads.server.eventListener.notify.retry.timeout

10〜3600000（ミリ秒）

120000

19

コマンド定義ファイル

eads.command.connection.timeout

0〜2147483647

（ミリ秒）

3000

20

eads.command.common.read.timeout

0〜2147483647

（ミリ秒）

600000

21

eads.command.common.execution.timeout

0〜2147483647

（秒）

600

22

eads.command.＜サブコマンド名＞.read.timeout

0〜2147483647

（ミリ秒）

600000

23

eads.command.＜サブコマンド名＞.execution.timeout

0〜2147483647

（秒）

600

24

クライアント定義ファイル

eads.client.connection.send.timeout

100〜3600000

（ミリ秒）

60000

25

eads.client.connection.receive.timeout

100〜3600000

（ミリ秒）

60000

26

eads.client.clusterInfo.update.interval

10〜60000

（ミリ秒）

1000

27

eads.client.eventListener.enable

true

false

false

28

eads.client.eventListener.reconnect.interval

1000〜60000（ミリ秒）

1000

(1)　サーバ定義ファイル

(a)　eads.server.connection.timeout

クラスタ構成情報の更新確認やデータ送受信のタイムアウト時間（単位：ミリ秒）を指定します。

(b)　eads.admin.operation.connection.timeout

次に示すコマンド実行時の，EADSサーバ間の接続やデータ送受信のタイムアウト時間（単位：ミリ秒）を指定します。

eztool import

eztool resume

eztool importecf

(c)　eads.failureDetector.heartbeat.interval

ハートビートの送信間隔（単位：ミリ秒）を指定します。

このパラメタの指定値が大きいほど，復旧処理，スケールアウト処理，およびリバランス処理の性能に影響が出やすくなります。また，クラスタの起動時にタイムアウトが発生しやすくなります。

このパラメタの指定値が小さいほど，処理の通信負荷が高くなります。

このパラメタには，次に示すパラメタの指定値より小さい値を指定してください。

サーバ定義のeads.admin.boot.timeoutパラメタ

サーバ定義のeads.transfer.timeoutパラメタ

コマンド定義のeads.command.common.read.timeoutパラメタ

コマンド定義のeads.command.common.execution.timeoutパラメタ

コマンド定義のeads.command.＜サブコマンド名＞.read.timeoutパラメタ

コマンド定義のeads.command.＜サブコマンド名＞.execution.timeoutパラメタ

(d)　eads.failureDetector.heartbeat.timeout

ハートビートのタイムアウト時間（単位：ミリ秒）を指定します。

このパラメタの指定値が大きいほど，障害を検知するまでに時間が掛かります。一方で，このパラメタの指定値が小さ過ぎると，障害を誤検知するおそれがあります。

また，このパラメタの指定値が大きいほど，更新操作の履歴を管理および格納するために，より多くのJavaヒープサイズ（共通設定のeads.java.heapsizeパラメタの指定値）およびExplicitヒープサイズ（共通設定のeads.java.external.heapsizeパラメタの指定値）が必要になります。

一時的な障害が発生した際に，EADSサーバを縮退させないで合意処理を行うために，このパラメタにサーバ定義のeads.replication.consensus.timeoutパラメタの指定値より大きい値を設定してください。このパラメタにサーバ定義のeads.replication.consensus.timeoutパラメタより小さい値を設定した場合は，縮退処理中にタイムアウトが発生し，縮退が完了するまでに余計な時間が掛かるおそれがあります。

(e)　eads.failureDetector.connection.timeout

生存確認の接続タイムアウト時間（単位：ミリ秒）を指定します。

このパラメタの指定値が大きいほど，コネクションを確立できない場合に，障害を検知するまでの時間が掛かります。一方で，このパラメタの指定値が小さ過ぎると，コネクションを正常に確立する前にタイムアウトするおそれがあります。

このパラメタには，サーバ定義のeads.replication.consensus.timeoutパラメタと近い値を指定することを推奨します。

(f)　eads.failureDetector.read.timeout

生存確認の受信タイムアウト時間（単位：ミリ秒）を指定します。

このパラメタの指定値が大きいほど，障害を検知するまでの時間が掛かります。一方で，このパラメタの指定値が小さ過ぎると，障害を誤検知するおそれがあります。

このパラメタには，サーバ定義のeads.replication.consensus.timeoutパラメタと近い値を指定することを推奨します。

(g)　eads.failureDetector.retry

生存確認タイムアウト時のリトライ回数を指定します。

(h)　eads.failureDetector.assertive.threshold

EADSサーバダウンに同意するEADSサーバ数を指定します。

（クラスタを構成するEADSサーバ数＋1）÷2を切り上げた値以下となるように設定してください。例えば，クラスタを構成するEADSサーバ数が5つの場合は，このパラメタに3以下の値を指定してください。

このパラメタの指定値を大きくすると，ダウンしたEADSサーバをいつまでも縮退できなくなるおそれがあります。その代わり，スプリットブレイン発生時などネットワークの一時的な障害が起きた場合に，EADSサーバがすぐに縮退されることを防ぐことができます。

(i)　eads.admin.boot.timeout

クラスタを構成する全EADSサーバが開始するまでの最大待ち時間（単位：秒）を指定します。

(j)　eads.server.connection.keepAlive.timeout

EADSクライアント・EADSサーバ間の接続を切断するまでの時間（単位：秒）を指定します。

リクエスト待ちの状態（通信が行われない状態）が，指定した時間以上続いた場合，接続が切断されます。

0を指定した場合，タイムアウトなし（無限）となります。

(k)　eads.admin.operation.isolate.gracefulstop.waitTime

eztool isolateコマンドを実行したEADSサーバのクラスタ構成情報の更新が完了してから，縮退処理が完了するまでの時間（単位：ミリ秒）を指定します。

EADSクライアントからクラスタ構成情報の更新確認を受信したEADSサーバが縮退する際，EADSクライアントのクラスタ構成情報の更新が完了する前にコネクションがクローズしてしまうと，通信エラーになります。このパラメタの指定値を調整することで，EADSクライアントのクラスタ構成情報の更新完了後に，EADSサーバを縮退できます。

(l)　eads.replication.consensus.timeout

合意処理のタイムアウト時間（単位：ミリ秒）を指定します。

指定した時間内に合意処理ができない場合は，タイムアウトして再度合意処理をし直します。

(m)　eads.transfer.timeout

復旧処理，スケールアウト処理，およびリバランス処理でのデータ送信タイムアウト時間（単位：ミリ秒）を指定します。

扱うデータサイズに合わせて指定してください。

このパラメタは，復旧処理，スケールアウト処理，およびリバランス処理で，次のようなケースが発生した場合に備えるために設定します。

データの転送元のEADSサーバがダウンした際に，データの転送先のEADSサーバが待ち状態になる

データの転送先のEADSサーバがコネクションを保持したままハングアップした際に，データの転送元のEADSサーバが待ち状態になる

(n)　eads.transfer.interval

復旧処理およびスケールアウト処理でのデータ送信間隔（単位：ミリ秒）を指定します。

復旧処理およびスケールアウト処理では，復旧対象のEADSサーバ，またはスケールアウト処理で追加したEADSサーバで，このパラメタに指定した値が適用されます。

このパラメタの指定値とサーバ定義のeads.transfer.datasizeパラメタの指定値は，次の式を満たすように設定してください。

復旧処理およびスケールアウト処理のデータ送信に使用できる帯域（単位：bps）≧

　（復旧処理およびスケールアウト処理で送信するデータサイズ（単位：バイト）×8）

　÷｛（復旧処理およびスケールアウト処理でのデータ送信間隔（単位：ミリ秒）

　＋データ送信に掛かる時間（単位：ミリ秒））÷1,000｝

復旧処理およびスケールアウト処理で送信するデータサイズ（単位：バイト）：

サーバ定義のeads.transfer.datasizeパラメタの指定値

復旧処理およびスケールアウト処理でのデータ送信間隔（単位：ミリ秒）：

サーバ定義のeads.transfer.intervalパラメタの指定値

データ送信に掛かる時間（単位：ミリ秒）：

サーバ定義のeads.transfer.datasizeパラメタに指定したサイズのデータ送信に掛かる時間（単位：ミリ秒）

「9.3.2(5)　クラスタの復旧処理」の図中の「復旧処理（データ送信）」に掛かる時間を示します（スケールアウト処理の場合は，「復旧」を「スケールアウト」に読み替えてください）。この時間は環境によって異なります。

復旧処理およびスケールアウト処理に掛かる時間を短くすると，復旧処理およびスケールアウト処理の通信負荷が高くなります。通信負荷が高くなると，キャッシュを更新するAPの処理速度が低下するおそれがあります。逆に，復旧処理およびスケールアウト処理の通信負荷を低くすると，復旧処理およびスケールアウト処理に掛かる時間が長くなります。

ディスクキャッシュ，および2Wayキャッシュを復旧する場合，このパラメタの指定は無効になり，キャッシュ定義のeads.cache.disk.transfer.intervalパラメタの指定値が有効となります。

(o)　eads.rebalance.transfer.interval

リバランス処理でのデータ転送の送信間隔（単位：ミリ秒）を指定します。

リバランス処理では，EADSサーバが新しく管理するレンジのデータは，元々そのレンジを管理していたEADSサーバ（分割前のレンジを管理していたEADS サーバ）から転送されます。その際，このパラメタに指定した送信間隔で，データを転送します。

分割前のレンジを管理していたEADSサーバと，分割後（結合後）のレンジを管理するEADSサーバで，このパラメタの指定値が異なる場合には，分割後（結合後）のレンジを管理するEADSサーバのパラメタの指定値が優先されます。

また，eztool rebalanceコマンドの-iまたは--intervalオプションを指定した場合には，このパラメタの指定値よりも，-iまたは--intervalオプションの指定値が優先されます。

(p)　eads.replication.fillgap.copy.timeout

更新操作の履歴の補完処理で，更新操作の履歴を送信する際の送信タイムアウト時間（単位：ミリ秒）を指定します。

次に示す値のうち，最も大きな値を処理できる時間を設定してください。

データのコピー先EADSサーバに対して，1回当たりに送信するデータサイズ（サーバ定義のeads.replication.fillgap.copy.datasizeパラメタの値）

keyの最大サイズ＋valueの最大サイズ×2

（keyの最大サイズ＋valueの最大サイズ）×最大同時更新データ件数

（凡例）

keyの最大サイズ：

共通設定のeads.cache.key.maxsizeパラメタの指定値

valueの最大サイズ：

put，create，update，replace実行時に指定するvalueの最大サイズです。

最大同時更新データ件数：

メモリキャッシュを使用して，データの一括操作を実行する場合は10を代入します。それ以外の場合は，1を代入します。

更新操作の履歴の補完処理については，「9.3.2(8)　更新操作の履歴の補完処理」を参照してください。

(q)　eads.admin.operation.resume.send.interval

eztool resumeコマンド実行時の差分転送間隔（単位：ミリ秒）を指定します。

(r)　eads.server.eventListener.notify.retry.timeout

イベントリスナ用のコネクションが切断された場合に，EADSサーバがEADSクライアントに対して，イベントの再送をリトライする時間（単位：ミリ秒）を指定します。

注意事項

このパラメタに指定した時間の間は，EADSクライアントに再送するデータをEADSサーバがJavaヒープに保持します。時間を過ぎるとEADSクライアントに再送するデータは破棄されます。

(2)　コマンド定義ファイル

(a)　eads.command.connection.timeout

コマンド実行時のEADSサーバとの通信の接続タイムアウト時間（単位：ミリ秒）を指定します。

このパラメタに0を指定した場合，タイムアウトしません。

なお，次のコマンドではこのパラメタの指定は無効になります。

eztool threaddump

eztool snapshot

eztool forcestop

(b)　eads.command.common.read.timeout

コマンド実行時のEADSサーバとの通信の受信タイムアウト時間（単位：ミリ秒）を指定します。

このパラメタの指定値には，サーバ定義のeads.admin.operation.isolate.gracefulstop.waitTimeパラメタの指定値より大きな値を指定してください。

このパラメタに0を指定した場合，タイムアウトしません。

なお，次のコマンドではこのパラメタの指定は無効になります。

eztool threaddump

eztool snapshot

eztool forcestop

次のコマンドを実行する場合は，このパラメタの値を，クライアント定義のeads.client.connection.receive.timeoutパラメタに適用します。

eztool put

eztool get

eztool remove

eztool listgroup

eztool listkey

eztool removeall

eztool execfunc

ただし，次の場合はこのパラメタの値を適用しません。

このパラメタに0を指定した場合，または，クライアント定義のeads.client.connection.receive.timeoutパラメタの最大値以上の値を指定した場合

eads.client.connection.receive.timeoutパラメタの最大値を適用します。

クライアント定義のeads.client.connection.receive.timeoutパラメタの最小値以下の値を指定した場合

eads.client.connection.receive.timeoutパラメタの最小値を適用します。

(c)　eads.command.common.execution.timeout

コマンド実行開始からのタイムアウト時間（単位：秒）を指定します。

このパラメタに0を指定した場合，タイムアウトしません。

なお，次のコマンドではこのパラメタの指定は無効になります。

eztool threaddump

eztool snapshot

eztool forcestop

(d)　eads.command.＜サブコマンド名＞.read.timeout

特定のサブコマンド実行時の，EADSサーバとの通信の受信タイムアウト時間（単位：ミリ秒）を指定します。

サブコマンド名には，このパラメタの指定値を適用したいサブコマンド名を指定します。サブコマンド名を指定したサブコマンドの実行時には，コマンド定義のeads.command.common.read.timeoutパラメタの指定値よりも，このパラメタの指定値が優先されます。

このパラメタの指定値には，サーバ定義のeads.admin.operation.isolate.gracefulstop.waitTimeパラメタの指定値より大きな値を指定してください。

このパラメタに0を指定した場合，タイムアウトしません。

なお，次のコマンドではこのパラメタの指定は無効になります。

eztool threaddump

eztool snapshot

eztool forcestop

次のコマンドを実行する場合は，このパラメタの値を，クライアント定義のeads.client.connection.receive.timeoutパラメタに適用します。

eztool put

eztool get

eztool remove

eztool listgroup

eztool listkey

eztool removeall

eztool execfunc

ただし，次の場合はこのパラメタの値を適用しません。

このパラメタに0を指定した場合，または，クライアント定義のeads.client.connection.receive.timeoutパラメタの最大値以上の値を指定した場合

eads.client.connection.receive.timeoutパラメタの最大値を適用します。

クライアント定義のeads.client.connection.receive.timeoutパラメタの最小値以下の値を指定した場合

eads.client.connection.receive.timeoutパラメタの最小値を適用します。

(e)　eads.command.＜サブコマンド名＞.execution.timeout

特定のサブコマンドの実行開始からのタイムアウト時間（単位：秒）を指定します。

サブコマンド名には，このパラメタの指定値を適用したいサブコマンド名を指定します。サブコマンド名を指定したサブコマンドの実行時には，コマンド定義のeads.command.common.execution.timeoutパラメタの指定値よりも，このパラメタの指定値が優先されます。

このパラメタに0を指定した場合，タイムアウトしません。

なお，次のコマンドではこのパラメタの指定は無効になります。

eztool threaddump

eztool snapshot

eztool forcestop

(3)　クライアント定義ファイル

(a)　eads.client.connection.send.timeout

クラスタ構成情報の更新確認やデータ送信のタイムアウト時間（単位：ミリ秒）を指定します。

(b)　eads.client.connection.receive.timeout

クラスタ構成情報の更新確認やデータ受信のタイムアウト時間（単位：ミリ秒）を指定します。

次の時間を考慮してください。

EADSサーバに配置しているユーザファンクションの実行時間

(c)　eads.client.clusterInfo.update.interval

EADSクライアントがクラスタ内の一つ一つのEADSサーバに対してクラスタ構成情報の更新確認を行う間隔（単位：ミリ秒）を指定します。

このパラメタの指定値には，サーバ定義のeads.admin.operation.isolate.gracefulstop.waitTimeパラメタの指定値より小さい値を指定してください。

クラスタを構成するEADSサーバ数を考慮してください。

クラスタを構成するEADSサーバ数が増えると，このパラメタに指定した時間内に通信する回数が増えるため，EADSクライアントへの負荷が増加します。

(d)　eads.client.eventListener.enable

イベントリスナを使用するかどうかを指定します。

true：

イベントリスナを使用します。

false：

イベントリスナを使用しません。

trueを指定すると，クラスタイベントリスナおよびノードイベントリスナのイベントが発生した場合に，EADSサーバがEADSクライアントに対してクラスタ構成情報の更新を通知します。

(e)　eads.client.eventListener.reconnect.interval

イベントリスナ用のコネクションが切断された場合に，コネクションを再接続する間隔（単位：ミリ秒）を指定します。

9.4　コマンドの運用に関連するパラメタの設計

コマンドの運用に関連するパラメタを設計します。

9.4.1　コマンドの運用に関連するパラメタ

コマンドの運用に関連するパラメタの一覧を次の表に示します。

表9‒5　コマンドの運用に関連するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

コマンド定義ファイル

eads.command.compat

0300

なし

(1)　コマンド定義ファイル

(a)　eads.command.compat

コマンドが互換動作するバージョンを指定します。

0300を指定すると，コマンドの表示結果およびリターンコードが03-60以前のコマンドと同じになります。

0300以外の値を設定した場合，またはこのパラメタの指定を省略した場合，表示結果およびリターンコードは，使用しているコマンドのバージョンに従います。

9.5　APの運用に関連するパラメタの設計

APの運用に関連するパラメタを設計します。

9.5.1　APの運用に関連するパラメタ

APの運用に関連するパラメタの一覧を次の表に示します。

表9‒6　APの運用に関連するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

クライアント定義ファイル

eads.client.batchOperation.unit

1〜1024

10

2

eads.client.compat

0300

なし

(1)　クライアント定義ファイル

(a)　eads.client.batchOperation.unit

キャッシュ内のデータに対して一括操作を実行する際に，一度のEADSサーバとの通信で，何回データ操作を実行するかを指定します。このパラメタを指定することで，一括操作時の各リソースの使用量や使用率を調整できます。

このパラメタの指定値を大きくすることによる影響を次に示します。

EADSサーバとの通信回数の減少による，性能向上が期待できます。

大量のデータ送信に伴い，ネットワークやメモリなどのリソースを占有することによって，性能に影響が出るおそれがあります。

注意事項

環境によって適切な値が異なります。動作検証を行った上で，適切な値を指定してください。

このパラメタの指定値は，次に示すAPIで使用されます。

Java言語のクライアントライブラリで使用できるメソッド

CacheクラスのputAll()

CacheクラスのgetAll()（Set指定）

CacheクラスのgetAll()（グループ指定）

C言語のクライアントライブラリで使用できる関数

ead_put_all()

ead_get_all()

ead_get_group()

次に示すAPIは，通信にvalueを含みません。このため，このパラメタの指定値に関係なく，一度のEADSサーバとの通信で，最大1,024回データ操作を実行します。

Java言語のクライアントライブラリで使用できるメソッド

CacheクラスのremoveAll()（Set指定）

C言語のクライアントライブラリで使用できる関数

ead_remove_all()

また，次に示すAPIは，このパラメタの指定値に関係なく，一度のEADSサーバとの通信で，対象の操作をすべて実行します。

Java言語のクライアントライブラリで使用できるメソッド

CacheクラスのremoveAll()（グループ指定）

CacheクラスのremoveAll()（EADSサーバ指定）

C言語のクライアントライブラリで使用できる関数

ead_remove_group()

ead_remove_node()

(b)　eads.client.compat

EADSクライアントが互換動作するバージョンを指定します。

0300を指定すると，03-60以前のEADSクライアントと同じエラーコードが返却されます。

0300以外の値を設定した場合，またはこのパラメタの指定を省略した場合は，使用しているEADSクライアントのバージョンのエラーコードが返却されます。

9.6　コンパクションに関連するパラメタの設計

この節の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

キャッシュデータファイルのコンパクションに関連するパラメタを設計します。コンパクションについては，「10.9　キャッシュデータファイルの使用量を削減する（キャッシュデータファイルをコンパクションする）」を参照してください。

9.6.1　コンパクションの効果のしきい値の設定

キャッシュデータファイルに対する，コンパクションの効果のしきい値を設定できます。コンパクションの効果のしきい値の概要を次の図に示します。

図9‒5　コンパクションの効果のしきい値の概要

考え方

キャッシュデータファイルごとに，コンパクションの効果は異なります。eztool compactionコマンドを実行する際，しきい値を設定することで，例えば，一定以上のコンパクションの効果があるキャッシュデータファイルに絞って，コンパクションを実行する，という運用ができます。

次のコマンドで--thresholdオプションを省略した際に設定される，コンパクションの効果のしきい値を，コマンド定義のeads.command.compaction.effect.thresholdパラメタで設定できます。

eztool listecfコマンド

eztool compactionコマンド

この図の例では，キャッシュデータファイル2と5がコンパクションの効果がしきい値以上のファイルとなります。このとき，-thresholdオプションを省略してeztool compactionコマンドを実行すると，キャッシュデータファイル2と5がコンパクションの対象となります。

9.6.2　コンパクションに関連するパラメタ

コンパクションに関連するパラメタの一覧を次の表に示します。

表9‒7　コンパクションに関連するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

コマンド定義ファイル

eads.command.compaction.effect.threshold

1〜100（%）

50

2

eads.command.compaction.effect.division

1〜10

5

(1)　コマンド定義ファイル

(a)　eads.command.compaction.effect.threshold

次に示すコマンドで使用する，コンパクションの効果のしきい値（単位：%）を指定します。

eztool listecf

eztool compaction

(b)　eads.command.compaction.effect.division

eztool listecfコマンドで使用する，コンパクションの効果のファイル数の分布を分割する個数を指定します。

例えば，このパラメタに4を指定した場合，分布は4つに分割されるため，コンパクションの効果が「0〜25%」，「26〜50%」，「51〜75%」および「76〜100%」であるファイル数がそれぞれ出力されます。

効果の値が整数にならない場合，小数点以下はすべて切り捨てられます。

第3編　運用

10　通常運用

この章では，システム運用管理者の主な作業項目と，EADSの通常運用の方法について説明します。

10.1　システム運用管理者が行うこと

通常運用の流れを次の図に示します。

図10‒1　通常運用の流れ

システムのメンテナンスが必要な際は，保守運用を行います。保守運用については，「11.　保守運用」を参照してください。

システムに障害が発生した際は，障害運用を行います。障害運用については，「12.　障害運用」を参照してください。

10.2　EADSサーバを開始する（キャッシュを新規に作成する場合）

EADSサーバを起動したあとに，キャッシュを新規に作成します。

10.2.1　EADSサーバを開始する手順（メモリ上にキャッシュを作成する）

EADSサーバを起動したあとに，メモリキャッシュを新規に作成する手順について説明します。

(1)　EADSサーバを起動する

EADSサーバを起動するホストにログインしてezstartコマンドを実行し，EADSサーバを起動します。このコマンドはEADSサーバごとに実行する必要があります。

ezstart

(2)　初期化が完了していることを確認する

EADSサーバの起動に成功すると，初期化状態に遷移します。

eztool statusコマンドを実行して，全EADSサーバの初期化が完了していることを確認します。

eztool status

コマンド実行例

初期化が完了している場合，State欄にinitializedが表示されます。

(3)　キャッシュを作成する

eztool createcacheコマンドを実行して，keyとvalueを格納するキャッシュを作成します。

eztool createcache ＜キャッシュ名＞

コマンド実行例

(4)　キャッシュが作成されていることを確認する

eztool listcacheコマンドを実行して，キャッシュの一覧を表示します。

eztool listcache

コマンド実行例

CacheName欄に表示されるキャッシュ名，およびCacheType欄に表示されるキャッシュタイプから，キャッシュが作成されていることを確認してください。

(5)　クラスタの閉塞状態を解除する

初期化状態は閉塞状態と同じく，EADSクライアントからのリクエストが受け付けられない状態です。eztool openコマンドを実行して，クラスタの閉塞状態を解除します。

eztool open

コマンド実行例

(6)　閉塞状態が解除できていることを確認する

eztool statusコマンドを実行して，全EADSサーバの閉塞状態が解除できていることを確認します。

eztool status

コマンド実行例

閉塞状態が解除できている場合，State欄にrunningが表示されます。

10.2.2　EADSサーバを開始する手順（ディスク上にキャッシュを作成する）

この項の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

EADSサーバを起動したあとに，ディスクキャッシュまたは2Wayキャッシュを新規に作成する手順について説明します。

(1)　キャッシュ定義ファイルを作成する

キャッシュタイプやキャッシュの格納先などを指定するための，キャッシュ定義ファイルを作成します。

キャッシュ定義ファイルのファイル名はeads_cache.＜キャッシュ名＞.propertiesです。

キャッシュ定義のパラメタについては，「7.7　キャッシュの運用に依存するパラメタの設計」を参照してください。

注意事項

キャッシュ定義ファイルの次のパラメタの定義内容は，クラスタを構成する全EADSサーバで同じになるようにしてください。同じでないとキャッシュを作成できません。

eads.cache.type

eads.cache.eviction.policy

eads.cache.eviction.keyCount（データ自動削除機能を使用する場合）

eads.cache.disk.filesize

eads.cache.disk.filenum

eads.cache.disk.blocksize

eads.cache.disk.persistentMemory.enable

eads.cache.disk.persistentMemory.blocksize（ディスクキャッシュの格納先として不揮発性メモリを使用する場合）

EADSサーバ5台，データの多重度3でディスクキャッシュを作成する場合の，キャッシュ定義ファイルの例を次に示します。

eads.cache.type=Disk
eads.cache.disk.info.dir=store
eads.cache.disk.1.dir=/hdd/cache_server01_range01
eads.cache.disk.2.dir=/hdd/cache_server01_range05
eads.cache.disk.3.dir=/hdd/cache_server01_range04
eads.cache.disk.filesize=128
eads.cache.disk.filenum=8
eads.cache.disk.blocksize=1

(2)　EADSサーバを起動する

EADSサーバを起動するホストにログインしてezstartコマンドを実行し，EADSサーバを起動します。このコマンドはEADSサーバごとに実行する必要があります。

ezstart

(3)　初期化が完了していることを確認する

EADSサーバの起動に成功すると，初期化状態に遷移します。

eztool statusコマンドを実行して，全EADSサーバの初期化が完了していることを確認します。

eztool status

コマンド実行例

初期化が完了している場合，State欄にinitializedが表示されます。

(4)　キャッシュを作成する

eztool createcacheコマンドを実行して，キャッシュを作成します。

eztool createcache ＜キャッシュ名＞

コマンド実行例

キャッシュを作成すると，次のディレクトリにキャッシュファイルが作成されます。

通常の場合（ディスクキャッシュの格納先として不揮発性メモリを使用しない場合）

キャッシュデータファイル

＜キャッシュ定義のeads.cache.disk.<n>.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞

キャッシュインデックスファイルおよびキャッシュ情報ファイル

＜キャッシュ定義のeads.cache.disk.info.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞（デフォルトは＜運用ディレクトリ＞/store/＜キャッシュ名＞）

ディスクキャッシュの格納先として不揮発性メモリを使用する場合

キャッシュデータファイルおよびキャッシュインデックスファイル※

＜キャッシュ定義のeads.cache.disk.persistentMemory.deviceパラメタで指定した不揮発性メモリのデバイスファイル＞

キャッシュ情報ファイル

＜キャッシュ定義のeads.cache.disk.info.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞（デフォルトは＜運用ディレクトリ＞/store/＜キャッシュ名＞）

注※

指定したデバイスファイルにキャッシュデータファイルおよびキャッシュインデックスファイルが格納されます。

(5)　キャッシュが作成されていることを確認する

eztool listcacheコマンドを実行して，キャッシュの一覧を表示します。

eztool listcache

コマンド実行例

CacheName欄に表示されるキャッシュ名，およびCacheType欄に表示されるキャッシュタイプから，キャッシュが作成されていることを確認してください。

(6)　クラスタの閉塞状態を解除する

初期化状態は閉塞状態と同じく，EADSクライアントからのリクエストが受け付けられない状態です。eztool openコマンドを実行して，クラスタの閉塞状態を解除します。

eztool open

コマンド実行例

(7)　閉塞状態が解除できていることを確認する

eztool statusコマンドを実行して，全EADSサーバの閉塞状態が解除できていることを確認します。

eztool status

コマンド実行例

閉塞状態が解除できている場合，State欄にrunningが表示されます。

10.2.3　複数のキャッシュを使用する場合の注意点

複数のキャッシュを使用する場合，次に示す点に注意してください。

キャッシュ単位にできる操作が限られているため，キャッシュ単位でのきめ細かな運用ができません。

キャッシュに関連した各種リソースが増加します。

1つのプロセスが使用するJavaヒープが大きくなるため，GCによる性能の問題が発生しやすくなります。

使用するキャッシュ数が多い場合は，次に示す方法でキャッシュ数を減らすことができます。

1つのクラスタ内でキャッシュを分けるのではなく，クラスタ自体を分ける。

異なるデータで同じkey名を使うときに，複数のキャッシュを使用するのではなく，複数のグループを使用する。

10.3　EADSサーバを開始する（ファイルからデータを読み込んでキャッシュを作成する場合）

EADSサーバを起動したあとに，前回稼働時にストアデータファイルに書き出したデータを，再度メモリ上に読み込ませます。または，EADSサーバを起動したあとに，キャッシュファイルにアクセスしてキャッシュを再開します。

10.3.1　EADSサーバを開始する手順（メモリ上にキャッシュを作成する）

EADSサーバを起動したあとに，前回稼働時にストアデータファイルに書き出したデータを，再度メモリキャッシュに読み込ませる手順について説明します。

(1)　EADSサーバを起動する

EADSサーバを起動するホストにログインしてezstartコマンドを実行し，EADSサーバを起動します。このコマンドはEADSサーバごとに実行する必要があります。

ezstart

(2)　初期化が完了していることを確認する

EADSサーバの起動に成功すると，初期化状態に遷移します。

eztool statusコマンドを実行して，全EADSサーバの初期化が完了していることを確認します。

eztool status

コマンド実行例

初期化が完了している場合，State欄にinitializedが表示されます。

(3)　データをメモリ上に読み込ませる

eztool importコマンドを実行して，前回稼働時にストアデータファイルに書き出した最新のデータを，メモリ上に読み込ませます。

eztool import

コマンド実行例

この例のように，ストアデータファイルキーを省略すると，eztool listesdコマンドで，latestに表示される最新のストアデータファイルキーのストアデータファイルを自動的に読み込みます。

省略しない場合は，任意のストアデータファイルのストアデータファイルキーを指定します。

注意事項

前回稼働時にメモリ容量が満杯に近い状態でeztool exportコマンドを実行した場合，次回開始時にeztool importコマンドを実行すると，メモリ容量不足のためにデータの読み込みに失敗することがあります。

例えば，データを多重化する際にコピー先のメモリ容量があふれ，その状態でeztool exportコマンドを実行した場合などが該当します。

このような場合は，共通設定のeads.java.external.heapsizeパラメタの指定値を大きくしてから，eztool importコマンドを再実行してください。

また，eztool importコマンドを実行したときにメモリ容量が不足すると，eztool importコマンドがハングアップすることがあります。eztool importコマンドがハングアップしたときは，EADSサーバのメッセージログに，メモリ容量不足のエラーが出力されていないかを確認してください。

(4)　キャッシュが作成されていることを確認する

eztool listcacheコマンドを実行して，キャッシュの一覧を表示します。

eztool listcache

コマンド実行例

CacheName欄に表示されるキャッシュ名，およびCacheType欄に表示されるキャッシュタイプから，キャッシュが作成されていることを確認してください。

(5)　クラスタの閉塞状態を解除する

初期化状態は閉塞状態と同じく，EADSクライアントからのリクエストが受け付けられない状態です。eztool openコマンドを実行して，クラスタの閉塞状態を解除します。

eztool open

コマンド実行例

(6)　閉塞状態が解除できていることを確認する

eztool statusコマンドを実行して，全EADSサーバの閉塞状態が解除できていることを確認します。

eztool status

コマンド実行例

閉塞状態が解除できている場合，State欄にrunningが表示されます。

10.3.2　EADSサーバを開始する手順（ディスク上のキャッシュを再開する）

この項の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

EADSサーバを起動したあとに，前回終了時の状態のキャッシュファイルにアクセスして，ディスクキャッシュ，および2Wayキャッシュを再開する手順について説明します。

(1)　EADSサーバを起動する

EADSサーバを起動するホストにログインしてezstartコマンドを実行し，EADSサーバを起動します。このコマンドはEADSサーバごとに実行する必要があります。

ezstart

(2)　初期化が完了していることを確認する

EADSサーバの起動に成功すると，初期化状態に遷移します。

eztool statusコマンドを実行して，全EADSサーバの初期化が完了していることを確認します。

eztool status

コマンド実行例

初期化が完了している場合，State欄にinitializedが表示されます。

(3)　キャッシュファイルにアクセスしてキャッシュを再開する

eztool resumeコマンドを実行し，キャッシュファイルにアクセスしてキャッシュを再開します。

eztool resume

コマンド実行例

2Wayキャッシュの場合は，キャッシュの再開のタイミングで，キャッシュデータファイルの内容をメモリ上に読み込みます。

(4)　キャッシュが再開されていることを確認する

eztool listcacheコマンドを実行して，キャッシュの一覧を表示します。

eztool listcache

コマンド実行例

CacheName欄に表示されるキャッシュ名，およびCacheType欄に表示されるキャッシュタイプから，キャッシュが再開されていることを確認してください。

(5)　クラスタの閉塞状態を解除する

初期化状態は閉塞状態と同じく，EADSクライアントからのリクエストが受け付けられない状態です。eztool openコマンドを実行して，クラスタの閉塞状態を解除します。

eztool open

コマンド実行例

(6)　閉塞状態が解除できていることを確認する

eztool statusコマンドを実行して，全EADSサーバの閉塞状態が解除できていることを確認します。

eztool status

コマンド実行例

閉塞状態が解除できている場合，State欄にrunningが表示されます。

10.4　EADSサーバを終了する（メモリ上のデータを破棄する場合）

メモリキャッシュのデータをストアデータファイルに書き出さないでEADSサーバを終了します。

eztool stopコマンド実行時，--no_exportオプションを指定すると，メモリキャッシュのデータはすべて破棄されます。

次回開始時にメモリキャッシュのデータを引き継ぎたい場合は，ストアデータファイルにメモリキャッシュのデータを書き出してからEADSサーバを終了します。手順については，「10.5　EADSサーバを終了する（メモリ上のデータをファイルに書き出す場合）」を参照してください。

10.4.1　EADSサーバを終了する手順

メモリキャッシュのデータをストアデータファイルに書き出さないでEADSサーバを終了する手順について説明します。

(1)　クラスタを閉塞状態にする

eztool closeコマンドを実行して，クラスタを閉塞状態にします。

eztool close

コマンド実行例

(2)　閉塞していることを確認する

EADSサーバを閉塞後，eztool statusコマンドを実行して，クラスタの状態を確認します。

eztool status

コマンド実行例

閉塞している場合，State欄にclosedが表示されます。

(3)　EADSサーバを終了する

eztool stop --no_exportコマンドを実行して，メモリキャッシュのデータをストアデータファイルに書き出さないで，クラスタ内の全EADSサーバを終了します。

eztool stop --no_export

コマンド実行例

(4)　終了していることを確認する

EADSサーバのメッセージログを確認します。

10.5　EADSサーバを終了する（メモリ上のデータをファイルに書き出す場合）

次回開始時にデータを再構築できるように，ストアデータファイルにメモリキャッシュのデータを書き出してからEADSサーバを終了します。

10.5.1　EADSサーバを終了する手順

次回開始時にデータを再構築できるように，ストアデータファイルにメモリキャッシュのデータを書き出してからEADSサーバを終了する手順について説明します。

(1)　クラスタを閉塞状態にする

eztool closeコマンドを実行して，クラスタを閉塞状態にします。

eztool close

コマンド実行例

(2)　閉塞していることを確認する

EADSサーバを閉塞後，eztool statusコマンドを実行して，クラスタの状態を確認します。

eztool status

コマンド実行例

閉塞している場合，State欄にclosedが表示されます。

(3)　EADSサーバを終了する

eztool stopコマンドを実行して，ストアデータファイルに最新のデータを書き出してから，クラスタ内の全EADSサーバを終了します。

eztool stop

コマンド実行例

(4)　終了していることを確認する

EADSサーバのメッセージログを確認します。

10.6　EADSサーバを終了する（ディスク上のキャッシュを終了する場合）

この節の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

ディスクキャッシュ，および2Wayキャッシュを使用するEADSサーバを終了します。

10.6.1　EADSサーバを終了する手順

ディスクキャッシュ，および2Wayキャッシュを終了する手順について説明します。

(1)　クラスタを閉塞状態にする

eztool closeコマンドを実行して，クラスタを閉塞状態にします。

eztool close

コマンド実行例

(2)　閉塞していることを確認する

EADSサーバを閉塞後，eztool statusコマンドを実行して，クラスタの状態を確認します。

eztool status

コマンド実行例

閉塞している場合，State欄にclosedが表示されます。

(3)　EADSサーバを終了する

eztool stopコマンドを実行して，ディスクキャッシュ，および2Wayキャッシュを終了してから，クラスタ内の全EADSサーバを終了します。

eztool stop

コマンド実行例

なお，EADSサーバにメモリキャッシュが存在しない場合，eztool stopコマンド実行時にストアデータファイルは作成されません。

(4)　終了していることを確認する

EADSサーバのメッセージログを確認します。

10.7　クラスタおよびEADSサーバの状態を確認する

eztool statusコマンドを実行して，クラスタおよびEADSサーバの状態を確認します。

クラスタおよびEADSサーバの状態については，「2.12　クラスタおよびEADSサーバの状態遷移」を参照してください。

eztool status ［-v|--verbose］

コマンド実行例

また，-vまたは--verboseオプションを指定すると，詳細を表示できます。

10.8　キャッシュの一覧を表示する

eztool listcacheコマンドを実行して，キャッシュの一覧を表示します。

eztool listcache ［-v|--verbose］

コマンド実行例

また，-vまたは--verboseオプションを指定すると，詳細を表示できます。

10.9　キャッシュデータファイルの使用量を削減する（キャッシュデータファイルをコンパクションする）

この節の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

ディスクキャッシュ，および2Wayキャッシュでは，追記方式でキャッシュデータファイルにデータを格納します。このため，データの更新や削除をすると，ファイル内に無効なデータができます。この無効なデータを削除して，キャッシュデータファイルの使用量を削減することを，コンパクションといいます。

コンパクションの処理を次の図に示します。

図10‒2　コンパクションの処理

なお，コンパクションを実行しても，キャッシュ定義のeads.cache.disk.filesizeに指定したファイルサイズは変更されません。

参考

EADSでは，キャッシュデータファイルの更新処理方式として追記方式を採用しています。追記方式では，データを削除した場合，削除対象のデータは無効になりますが，ディスクからは削除されません。また，データを更新した場合，更新対象のデータが無効になり，更新後のデータが新たなデータとして追加されます。更新前の無効になったデータは，ディスクからは削除されません。

定期的にコンパクションをすることで，無効なデータを整理し，効率良くディスクを使用することができます。

10.9.1　キャッシュデータファイルをコンパクションする手順

キャッシュデータファイルをコンパクションする手順について説明します。

(1)　コンパクションの効果を確認する

eztool listecf -sコマンドを実行して，コンパクションの効果を確認します。

eztool listecf -s

コマンド実行例

UnusedFC欄に，未使用のキャッシュデータファイルの数が表示されます。データを格納（put）した順とは無関係に，ランダムにデータの格納（put）や削除（remove）をするような運用をする場合，この項目を監視してください。

MaxCE欄に，レンジ内のキャッシュデータファイルが持つコンパクションの効果の最大値が表示されます。データを格納（put）した順に削除（remove）するような運用をする場合，この項目が100%，または100%に近くなったらコンパクションを実行してください。

(2)　クラスタを閉塞状態にする（任意）

必要に応じて，eztool closeコマンドを実行し，クラスタを閉塞状態にします。

参考

EADSサーバが稼働状態（running）の場合もコンパクションは実行できますが，性能に影響が出るおそれがあります。

eztool close

コマンド実行例

(3)　閉塞していることを確認する（任意）

「10.9.1(2)　クラスタを閉塞状態にする（任意）」でクラスタを閉塞状態にした場合は，eztool statusコマンドを実行して，クラスタの状態を確認します。

eztool status

コマンド実行例

閉塞している場合，State欄にclosedが表示されます。

(4)　キャッシュデータファイルをコンパクションする

eztool compactionコマンドを実行して，コンパクションを実行します。

eztool compaction

コマンド実行例

注意事項

コンパクションは長時間実行される場合が多いため，必要に応じて，タイムアウト時間の設計をしてください。

(a)　データを格納した順に削除するような運用をする場合

データを格納（put）した順に削除（remove）するような運用をする場合，データを削除するごとに，キャッシュデータファイル中に無効なデータが増えていきます。このような運用の場合には，無効なデータだけになったキャッシュデータファイルを対象にコンパクションを実行します。--thresholdオプションでしきい値を100%にしてeztool compactionコマンドを実行してください。

参考

データを格納（put）した順と削除（remove）する順が完全に一致しないような運用の場合は，しきい値を100%より小さい値に設定してください。

(b)　データを格納した順とは無関係に，ランダムにデータの格納や削除をするような運用をする場合

データを格納（put）した順とは無関係に，ランダムにデータの格納（put）や削除（remove）をするような運用をする場合，キャッシュデータファイルごとにファイルの使用率が異なります。そのため，データの追加や削除に備えて未使用ファイルを確保しておく必要があります。このような運用の場合は，未使用ファイル数を基準にして，定期的にコンパクションを実行します。確保しておく必要のある未使用ファイル数を--unused_fcオプションに指定して，eztool compactionコマンドを実行してください。

コンパクションを実行しても，予定の未使用ファイル数まで到達しない場合には，--thresholdオプションでしきい値を下げて再実行してください。

(c)　早急にキャッシュデータファイルの空き容量を確保したい場合

例えば未使用ファイル数が非常に少なく，早急にキャッシュデータファイルの空き容量を確保したいような場合は，--thresholdオプションで指定するしきい値を小さくしてコンパクションを実行します。--cacheオプション，--rangeオプションで該当するキャッシュやレンジを優先して，eztool compactionコマンドを実行してください。

なお，このとき，すでにコンパクションを実行中の場合は，実行中のコンパクションを中断してから，再度eztool compactionコマンドを実行します。コンパクションを中断する手順については，「10.9.2　コンパクションを中断する手順」を参照してください。

参考

キャッシュデータファイルの空き容量が非常に少ないような状態の場合は，可能であれば，クラスタを閉塞状態にしてからコンパクションを実行することを推奨します。

(5)　クラスタの閉塞状態を解除する（任意）

「10.9.1(2)　クラスタを閉塞状態にする（任意）」でクラスタを閉塞状態にした場合は，eztool openコマンドを実行し，クラスタの閉塞状態を解除します。

eztool open

コマンド実行例

(6)　閉塞状態が解除できていることを確認する（任意）

「10.9.1(2)　クラスタを閉塞状態にする（任意）」でクラスタを閉塞状態にした場合は，eztool statusコマンドを実行して，全EADSサーバの閉塞状態が解除できていることを確認します。

eztool status

コマンド実行例

閉塞状態が解除できている場合，State欄にrunningが表示されます。

10.9.2　コンパクションを中断する手順

コンパクションを実行しているときに，コンパクションを中断する手順について説明します。

(1)　コンパクションを中断する

コンパクションを実行しているときに，eztool compaction --breakコマンドを実行し，コンパクションを中断します。

eztool compaction --break

コマンド実行例

コンパクションを実行中のキャッシュデータファイルの処理が完了したあとで，コンパクションが中断されます。

11　保守運用

この章では，EADSの保守運用の方法について説明します。

11.1　EADSサーバをクラスタに追加したい

EADSサーバをクラスタに追加します。

11.1.1　クラスタを停止させないで，EADSサーバをクラスタに追加する手順（スケールアウト処理・リバランス処理）

クラスタを停止させないで，次の処理を実行するときの手順について説明します。

EADSサーバをクラスタに追加する（スケールアウト処理）

EADSサーバの位置を変更することで，各レンジに格納できるkeyの数を均等に配分し直す（リバランス処理）

スケールアウト処理を実行すると，各レンジに格納できるkeyの数が均等に配分されなくなるおそれがあります。スケールアウト処理後は，リバランス処理を実行して，各レンジに格納できるkeyの数を均等に配分し直すことを推奨します。

(1)　前提条件

スケールアウト処理およびリバランス処理を実行するための前提条件を次に示します。

スケールアウト処理を実行するための前提条件

スケールアウト処理を実行するには，次に示す条件を満たしている必要があります。

クラスタ内のキャッシュがすべてメモリキャッシュである

データの多重度が2以上である

クラスタ内に縮退状態のEADSサーバがない

これらの条件を満たさない場合には，クラスタを停止してから，EADSサーバを追加してください。なお，縮退したEADSサーバがある場合は，縮退したEADSサーバを復旧してから，スケールアウト処理を実行してください。

クラスタを停止してからEADSサーバを追加する手順については，「11.1.2　クラスタを停止してから，EADSサーバをクラスタに追加する手順（メモリ上のキャッシュだけを使用する場合）」および「11.1.3　クラスタを停止してから，EADSサーバをクラスタに追加する手順（ディスク上のキャッシュを使用する場合）」を参照してください。

ポイント

各レンジにkeyが均等に分散している場合，各レンジに，1台以上の同じ台数のEADSサーバを追加すると，リバランス処理を実行しなくても，各レンジに格納できるkeyの数を均等にできます。

リバランス処理を実行するための前提条件

リバランス処理を実行するためには，次に示す条件を満たしている必要があります。

クラスタ内のキャッシュがすべてメモリキャッシュである

データの多重度が2以上である

クラスタ内に縮退状態のEADSサーバがない

クラスタを構成するEADSサーバ数が「データの多重度×2−1」より多い

クラスタ内のすべてのEADSサーバで，データを格納するメモリ容量に余裕がある

これらの条件を満たさない場合には，クラスタを停止してから，各レンジに格納できるkeyの数を均等にしてください。なお，縮退したEADSサーバがある場合は，縮退したEADSサーバを復旧してから，リバランス処理を実行してください。

クラスタを停止してから各レンジに格納できるkeyの数を均等にする手順については，「11.3.2　クラスタを停止してから，各レンジに格納できるkeyの数を均等にする手順」を参照してください。

ポイント

各レンジにkeyが均等に分散している状態で，かつ各EADSサーバが担当しているレンジに差がある場合に，リバランス処理の効果が得られます。

例えば，各レンジが均等なクラスタに対して，スケールアウト処理後にリバランス処理を実行すると効果があります。

なお，キャッシュが複数ある場合は，任意のキャッシュが次の条件に該当するときは，リバランス処理の効果が得られないことがあります。

各レンジにkeyが均等に分散していない。

keyの数やグループの数が極端に少ない。

ポイント

リバランス処理中はEADSサーバ間でのデータ転送が発生します。そのため，データあふれによる縮退を防止するために，データ総量監視機能を有効にすることを推奨します。

参考

データ総量監視機能を有効にしている場合，リバランス処理の実行前に，スケールアウト処理前のクラスタのメモリ容量を超えたデータを格納すると，リバランス処理が失敗することがあります。

また，スケールアウト処理前のクラスタのメモリ容量を超えない場合でも，クラスタ内の各レンジに格納されているkeyの数に偏りがあると，リバランス処理が中断されることがあります。

そのため，スケールアウト処理後には速やかにリバランス処理を実行してください。スケールアウト処理とリバランス処理を組み合わせて，クラスタ全体でメモリ容量を均等に増加させてから，クラスタに格納するデータの容量を増やすことを推奨します。

リバランス処理が中断された場合は，クラスタに格納するデータの容量を減らすか，またはスケールアウト処理でさらにEADSサーバを追加することを検討してください。

注意事項

データ自動削除機能を使用しているキャッシュとデータ自動削除機能を使用していないキャッシュが混在している場合，スケールアウト処理およびリバランス処理は実行できません。対象のキャッシュを削除できる場合は，データ自動削除機能を使用しているキャッシュと，データ自動削除機能を使用していないキャッシュのどちらかを削除して，キャッシュが混在しないようにしてください。そのあとで，再度スケールアウト処理およびリバランス処理を実行してください。

(2)　各レンジのデータの分散状況を確認する

eztool storeusage --replicaコマンドを実行して，各レンジのデータの分散状況を確認します。

eztool storeusage --replica

コマンド実行例

eztool storeusage --replicaコマンドの実行結果を基に，どのレンジにEADSサーバを追加するかを決めてください。

(3)　クラスタ定義ファイルのバックアップを取得する（任意）

必要に応じて，クラスタ定義ファイルのバックアップを取得します。

稼働中のクラスタにEADSサーバを追加する場合，クラスタ定義ファイルは自動的にEADSサーバの追加後の情報に書き換えられます。また，リバランス処理でEADSサーバの位置を変更する際にも，変更後のEADSサーバの情報に書き換えられます。

書き換えられる前のクラスタ定義ファイルのバックアップファイルは，次に示すパスに自動的に作成されます。ただし，同名のファイルがある場合は出力されません。

＜運用ディレクトリ＞/conf/eads_cluster.properties.ebf

クラスタ定義ファイルのバックアップファイルが存在すると，スケールアウト処理やリバランス処理の実行時に，クラスタ定義ファイルはEADSサーバ追加・変更後の情報に上書きされます。そのため，スケールアウト処理やリバランス処理の実行後に，ユーザがクラスタ定義ファイルを編集し，再度スケールアウト処理やリバランス処理を実行すると，編集した内容が消えてしまいます。編集したクラスタ定義ファイルのバックアップが必要な場合は，スケールアウト処理やリバランス処理の実行前に，手動でバックアップを取得してください。

(4)　クラスタ内の全EADSサーバに異常がないことを確認する

eztool statusコマンドを実行して，クラスタ内に縮退状態（isolated）または停止状態（-----------）のEADSサーバがないことを確認します。

eztool status

コマンド実行例

クラスタ内に縮退状態または停止状態のEADSサーバが存在する場合は，EADSサーバを復旧してください。

復旧の手順については，「12.2.1　縮退状態が発生した場合」を参照してください。

(5)　追加するEADSサーバのインストールおよびセットアップを行う

追加するEADSサーバのインストールおよびセットアップを行います。

インストールおよびセットアップの手順については，「5.　インストールおよびセットアップを行う（EADSサーバ）」を参照してください。

ただし，クラスタ定義ファイルはEADSサーバ追加時に自動で作成されるため，作成する必要はありません（追加するEADSサーバにクラスタ定義ファイルがあっても読み込まれません）。

(6)　EADSサーバをクラスタに追加する

追加するEADSサーバでezstartコマンドまたはezserverコマンドを実行して，EADSサーバをクラスタに追加します。

次のどれかの方法で，EADSサーバをクラスタに追加します。

EADSサーバIDを指定してEADSサーバをクラスタに追加する場合

追加するEADSサーバで，ezstart -aiコマンドを実行する

追加するEADSサーバで，ezserver -aiコマンドを実行する

EADSサーバの位置（ハッシュ値）を指定してEADSサーバをクラスタに追加する場合

追加するEADSサーバで，ezstart -apコマンドを実行する

追加するEADSサーバで，ezserver -apコマンドを実行する

EADSサーバIDを指定してEADSサーバをクラスタに追加する場合（ezstart -aiコマンドを実行する）

ezstart -ai ＜EADSサーバID＞

EADSサーバIDを指定してEADSサーバをクラスタに追加する場合（ezserver -aiコマンドを実行する）

ezserver -ai ＜EADSサーバID＞

EADSサーバの位置を指定してEADSサーバをクラスタに追加する場合（ezstart -apコマンドを実行する）

ezstart -ap ＜EADSサーバの位置（ハッシュ値）＞

EADSサーバの位置を指定してEADSサーバをクラスタに追加する場合（ezserver -apコマンドを実行する）

ezserver -ap ＜EADSサーバの位置（ハッシュ値）＞

EADSサーバの追加後に，何らかの要因でクラスタ定義ファイルが書き換えられなかった場合，エラーメッセージが表示されます。この場合は，eztool listconfコマンドを実行して最新のパラメタの値を確認し，手動でクラスタ定義ファイルに反映してください。

(7)　追加したEADSサーバがクラスタに参加していることを確認する

eztool status -vコマンドで，追加したEADSサーバがクラスタに参加していることを確認します。

eztool status -v

コマンド実行例

クラスタに参加している場合，Cluster欄にonlineが表示されます。

Position欄，およびKeyCount欄の値を参照すると，各EADSサーバの位置，および各レンジに格納できるkeyの数に偏りがあるかどうかを確認できます。レンジに格納できるkeyの数に偏りがある場合は，リバランス処理を実行して，偏りを解消してください。

複数台のEADSサーバを追加する場合は，追加する各EADSサーバに対して，「11.1.1(5)　追加するEADSサーバのインストールおよびセットアップを行う」以降の手順を実行してください。

(8)　EADSサーバの位置を変更して，各レンジに格納できるkeyの数を均等にする（リバランス処理）

任意のEADSサーバでeztool rebalanceコマンドを実行して，各レンジに格納できるkeyの数を均等にします。

eztool rebalance

コマンド実行例

コマンドを実行すると，各EADSサーバの位置がコンシステント・ハッシングの円周上に均等に配置し直されて，各レンジに格納できるkeyの数が均等になります。

(9)　リバランス処理の結果を確認する

eztool status -vコマンドを実行して，リバランス処理の結果を確認します。

eztool status -v

コマンド実行例

Position欄，およびKeyCount欄の値を参照すると，各EADSサーバの位置の偏り，および各レンジに格納できるkeyの数の偏りが解消されていることがわかります。

11.1.2　クラスタを停止してから，EADSサーバをクラスタに追加する手順（メモリ上のキャッシュだけを使用する場合）

メモリキャッシュだけを使用する場合に，クラスタを停止してからEADSサーバをクラスタに追加する手順について説明します。

(1)　クラスタ内の全EADSサーバを終了する（ファイルにデータを書き出す）

ファイルにデータを書き出してからクラスタ内の全EADSサーバを終了します。

手順については，「10.5　EADSサーバを終了する（メモリ上のデータをファイルに書き出す場合）」を参照してください。

(2)　追加するEADSサーバのインストールおよびセットアップを行う

追加するEADSサーバのインストールおよびセットアップを行います。

インストールおよびセットアップの手順については，「5.　インストールおよびセットアップを行う（EADSサーバ）」を参照してください。

(3)　クラスタ定義を変更する

クラスタを構成するEADSサーバが増えるため，クラスタ定義を変更する必要があります。

定義内容を変更する手順については，「11.4　定義内容を変更したい」を参照してください。

(4)　クラスタ内の全EADSサーバを開始する（ファイルからデータを読み込む）

クラスタ内の全EADSサーバを起動したあとに，前回稼働時にファイルに書き出したデータを，再度メモリ上に読み込ませます。

手順については，「10.3　EADSサーバを開始する（ファイルからデータを読み込んでキャッシュを作成する場合）」を参照してください。

11.1.3　クラスタを停止してから，EADSサーバをクラスタに追加する手順（ディスク上のキャッシュを使用する場合）

この項の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

ディスクキャッシュまたは2Wayキャッシュを使用する場合に，クラスタを停止してからEADSサーバをクラスタに追加する手順について説明します。

(1)　クラスタを閉塞状態にする

eztool closeコマンドを実行して，クラスタを閉塞状態にします。

eztool close

コマンド実行例

(2)　閉塞していることを確認する

EADSサーバを閉塞後，eztool statusコマンドを実行して，クラスタの状態を確認します。

eztool status

コマンド実行例

閉塞している場合，State欄にclosedが表示されます。

(3)　キャッシュを確認する

eztool listcacheコマンドを実行し，キャッシュの一覧を表示します。

キャッシュの種類がディスクキャッシュまたは2Wayキャッシュのキャッシュを確認します。

eztool listcache

コマンド実行例

ポイント

メモリキャッシュと，2Wayキャッシュまたはディスクキャッシュを混在させて使用している場合，メモリキャッシュのデータを保持するため，クラスタ内の全EADSサーバを終了する前にeztool exportコマンド，またはeztool stopコマンドを実行してメモリキャッシュのデータを書き出し，クラスタ内の全EADSサーバを開始したあとで，eztool importコマンドを実行してデータを読み込む必要があります。

(4)　EADSサーバからキャッシュファイルを書き出す

eztool exportecfコマンドを実行して，EADSサーバから「(3)　キャッシュを確認する」で確認したすべてのキャッシュのキャッシュデータファイルとキャッシュインデックスファイルを，任意のディレクトリに書き出します。

参考

eztool exportecfコマンドを実行する代わりに，「(16)　【参考】OSのコマンドなどを使用してEADSサーバのキャッシュファイルを移動する」の手順でEADSサーバのキャッシュファイルを移動・退避させてもかまいません。

(5)　キャッシュデータファイルとキャッシュインデックスファイルを確認する

キャッシュファイルの出力先を確認して，キャッシュデータファイルとキャッシュインデックスファイルが取得できているかを確認します。

(6)　キャッシュを削除する

次のどちらかの方法で，キャッシュおよびキャッシュファイルを削除します。

eztool deletecache --with_deleteecfコマンドを実行する

eztool deletecacheコマンドを実行したあとにeztool deleteecfコマンドを実行する

eztool deletecache --with_deleteecfコマンドを実行する場合

eztool deletecache ＜キャッシュ名＞ --with_deleteecf

コマンド実行例

eztool deletecacheコマンドを実行したあとにeztool deleteecfコマンドを実行する場合

eztool deletecache ＜キャッシュ名＞

eztool deleteecf ＜キャッシュ名＞

コマンド実行例

(7)　キャッシュが削除されていることを確認する

eztool listecf -vコマンドを実行し，永続データに関する情報の一覧を表示します。

eztool listecf -v

コマンド実行例

eztool deletecache --with_deleteecfコマンド，またはeztool deletecacheコマンドのあとにeztool deleteecfコマンドを実行した場合

キャッシュおよびキャッシュファイルが正しく削除されていれば，次の欄にfalseが表示されます。

ExCache欄

ExCI欄

ExCD欄

図中のcache1はキャッシュおよびキャッシュファイルが正しく削除されている状態です。

eztool deletecacheコマンドだけを実行した場合

キャッシュが正しく削除されていれば，ExCache欄にfalse，ExCI欄およびExCD欄にtrueが表示されます。また，UnusedFC欄以降に値は表示されません。

図中のcache3はキャッシュが正しく削除されている状態です。

(8)　クラスタ内の全EADSサーバを終了する

クラスタ内の全EADSサーバを終了します。

手順については，「10.6　EADSサーバを終了する（ディスク上のキャッシュを終了する場合）」を参照してください。

(9)　追加するEADSサーバのインストールおよびセットアップを行う

追加するEADSサーバのインストールおよびセットアップを行います。

インストールおよびセットアップの手順については，「5.　インストールおよびセットアップを行う（EADSサーバ）」を参照してください。

(10)　クラスタ定義を変更する

クラスタを構成するEADSサーバが増えるため，クラスタ定義を変更する必要があります。

定義内容を変更する手順については，「11.4　定義内容を変更したい」を参照してください。

(11)　クラスタ内の全EADSサーバを開始する

EADSサーバを起動するホストにログインしてezstartコマンドを実行し，EADSサーバを起動します。このコマンドはEADSサーバごとに実行する必要があります。

ezstart

(12)　初期化が完了していることを確認する

EADSサーバの起動に成功すると，初期化状態に遷移します。

eztool statusコマンドを実行して，全EADSサーバの初期化が完了していることを確認します。

eztool status

コマンド実行例

初期化が完了している場合，State欄にinitializedが表示されます。

(13)　データを再配置する

eztool importecfコマンドを実行して，データを再配置します。＜キャッシュデータファイルとキャッシュインデックスファイルの格納先パス名＞には，「11.1.3(4)　EADSサーバからキャッシュファイルを書き出す」でキャッシュデータファイルとキャッシュインデックスファイルを格納したディレクトリを指定します。

注意事項

＜キャッシュデータファイルとキャッシュインデックスファイルの格納先パス名＞には，次のディレクトリは指定できません。

＜キャッシュ定義のeads.cache.disk.<n>.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞

＜キャッシュ定義のeads.cache.disk.info.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞（デフォルトは＜運用ディレクトリ＞/store/＜キャッシュ名＞）

eztool importecf ＜キャッシュデータファイルとキャッシュインデックスファイルの格納先パス名＞

コマンド実行例

(14)　クラスタの閉塞状態を解除する

初期化状態は閉塞状態と同じく，EADSクライアントからのリクエストが受け付けられない状態です。eztool openコマンドを実行して，クラスタの閉塞状態を解除します。

eztool open

コマンド実行例

(15)　閉塞状態が解除できていることを確認する

eztool statusコマンドを実行して，全EADSサーバの閉塞状態が解除できていることを確認します。

eztool status

コマンド実行例

閉塞状態が解除できている場合，State欄にrunningが表示されます。

(16)　【参考】OSのコマンドなどを使用してEADSサーバのキャッシュファイルを移動する

「(4)　EADSサーバからキャッシュファイルを書き出す」で，eztool exportecfコマンドを実行してEADSサーバからキャッシュファイルを書き出す代わりに，OSのコマンドなどを使用してEADSサーバのキャッシュファイルを移動させてもかまいません。その場合のEADSサーバをクラスタに追加する手順（ディスク上のキャッシュを使用する場合）を次に示します。

クラスタを閉塞状態にする

閉塞していることを確認する

キャッシュを確認する

クラスタ内の全EADSサーバを終了する

全EADSサーバのキャッシュファイルを移動する

追加するEADSサーバのインストールおよびセットアップを行う

クラスタ定義を変更する

クラスタ内の全EADSサーバを開始する

初期化が完了していることを確認する

データを再配置する

クラスタの閉塞状態を解除する

閉塞状態が解除できていることを確認する

注意事項

この手順はディスクキャッシュの格納先として不揮発性メモリを使用している場合は使用できません。

「5.　全EADSサーバのキャッシュファイルを移動する」の手順を次に示します。

(a)　全EADSサーバのキャッシュファイルを移動する

全EADSサーバのキャッシュファイルを，任意のディレクトリに移動します。

EADSサーバごとに，次のディレクトリ下のすべてのファイルを移動してください（次のディレクトリ下のすべてのファイルをコピーしたあとで，コピー元のファイルを削除してください）。

＜キャッシュ定義のeads.cache.disk.<n>.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞

＜キャッシュ定義のeads.cache.disk.info.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞（デフォルトは＜運用ディレクトリ＞/store/＜キャッシュ名＞）

移動先のディレクトリのパスは，全EADSサーバで同一になるようにしてください。

「(13)　データを再配置する」でeztool importecfコマンドを実行して，データを再配置する際には，上記でキャッシュファイルを移動させたディレクトリを指定してください。

11.2　EADSサーバをクラスタから削除したい

EADSサーバをクラスタから削除します。

11.2.1　EADSサーバをクラスタから削除する手順（メモリ上のキャッシュだけを使用する場合）

メモリキャッシュだけを使用する場合に，EADSサーバをクラスタから削除する手順について説明します。

(1)　各レンジのデータの分散状況を確認する

eztool storeusage --replicaコマンドを実行して，各レンジのデータの分散状況を確認します。

eztool storeusage --replica

コマンド実行例

eztool storeusage --replicaコマンドの実行結果を基に，どのレンジからEADSサーバを削除するかを決めてください。

(2)　クラスタ内の全EADSサーバを終了する（ファイルにデータを書き出す）

ファイルにデータを書き出してからクラスタ内の全EADSサーバを終了します。

手順については，「10.5　EADSサーバを終了する（メモリ上のデータをファイルに書き出す場合）」を参照してください。

(3)　クラスタ定義を変更する

クラスタを構成するEADSサーバが減るため，クラスタ定義を変更する必要があります。

全EADSサーバのクラスタ定義ファイルから，削除するEADSサーバの次に示すパラメタを削除します。

eads.node.＜EADSサーバID＞.address

eads.node.＜EADSサーバID＞.port

eads.node.＜EADSサーバID＞.position

(4)　削除するEADSサーバのストアデータファイルを退避する

削除するEADSサーバのストアデータファイルを任意のディレクトリに退避します。

削除するEADSサーバのストアデータファイルを，削除しないEADSサーバのストアデータファイル格納先にコピーします。

(5)　クラスタ内の全EADSサーバを開始する（ファイルからデータを読み込む）

クラスタ内の全EADSサーバを起動したあとに，前回稼働時にファイルに書き出したデータを，再度メモリ上に読み込ませます。

手順については，「10.3　EADSサーバを開始する（ファイルからデータを読み込んでキャッシュを作成する場合）」を参照してください。

11.2.2　EADSサーバをクラスタから削除する手順（ディスク上のキャッシュを使用する場合）

この項の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

ディスクキャッシュまたは2Wayキャッシュを使用する場合に，EADSサーバをクラスタから削除する手順について説明します。

(1)　各レンジのデータの分散状況を確認する

eztool storeusage --replicaコマンドを実行して，各レンジのデータの分散状況を確認します。

eztool storeusage --replica

コマンド実行例

eztool storeusage --replicaコマンドの実行結果を基に，どのレンジからEADSサーバを削除するかを決めてください。

(2)　クラスタを閉塞状態にする

eztool closeコマンドを実行して，クラスタを閉塞状態にします。

eztool close

コマンド実行例

(3)　閉塞していることを確認する

EADSサーバを閉塞後，eztool statusコマンドを実行して，クラスタの状態を確認します。

eztool status

コマンド実行例

閉塞している場合，State欄にclosedが表示されます。

(4)　キャッシュを確認する

eztool listcacheコマンドを実行し，キャッシュの一覧を表示します。

キャッシュの種類がディスクキャッシュまたは2Wayキャッシュのキャッシュを確認します。

eztool listcache

コマンド実行例

ポイント

メモリキャッシュと，2Wayキャッシュまたはディスクキャッシュを混在させて使用している場合，メモリキャッシュのデータを保持するため，クラスタ内の全EADSサーバを終了する前にeztool exportコマンド，またはeztool stopコマンドを実行してメモリキャッシュのデータを書き出し，クラスタ内の全EADSサーバを開始したあとで，eztool importコマンドを実行してデータを読み込む必要があります。

また，削除するEADSサーバのストアデータファイルは，削除しないEADSサーバのストアデータファイルの格納先ディレクトリに退避しておく必要があります。

(5)　EADSサーバからキャッシュファイルを書き出す

eztool exportecfコマンドを実行して，EADSサーバから「(4)　キャッシュを確認する」で確認したすべてのキャッシュのキャッシュデータファイルとキャッシュインデックスファイルを，任意のディレクトリに書き出します。

参考

eztool exportecfコマンドを実行する代わりに，「(13)　【参考】OSのコマンドなどを使用してEADSサーバのキャッシュファイルを移動・退避する」の手順でEADSサーバのキャッシュファイルを移動・退避させてもかまいません。

(6)　キャッシュデータファイルとキャッシュインデックスファイルを確認する

キャッシュファイルの出力先を確認して，キャッシュデータファイルとキャッシュインデックスファイルが取得できているかを確認します。

(7)　削除するEADSサーバのキャッシュファイルを退避する

「(5)　EADSサーバからキャッシュファイルを書き出す」で書き出したキャッシュファイルのうち，削除するEADSサーバで書き出したすべてのキャッシュファイルを，ほかのどれか1つのEADSサーバの，「(5)　EADSサーバからキャッシュファイルを書き出す」でキャッシュファイルを書き出したディレクトリに退避します。

(8)　キャッシュを削除する

次のどちらかの方法で，キャッシュおよびキャッシュファイルを削除します。

eztool deletecache --with_deleteecfコマンドを実行する

eztool deletecacheコマンドを実行したあとにeztool deleteecfコマンドを実行する

eztool deletecache --with_deleteecfコマンドを実行する場合

eztool deletecache ＜キャッシュ名＞ --with_deleteecf

コマンド実行例

eztool deletecacheコマンドを実行したあとにeztool deleteecfコマンドを実行する場合

eztool deletecache ＜キャッシュ名＞

eztool deleteecf ＜キャッシュ名＞

コマンド実行例

(9)　キャッシュが削除されていることを確認する

eztool listecf -vコマンドを実行し，永続データに関する情報の一覧を表示します。

eztool listecf -v

コマンド実行例

eztool deletecache --with_deleteecfコマンド，またはeztool deletecacheコマンドのあとにeztool deleteecfコマンドを実行した場合

キャッシュおよびキャッシュファイルが正しく削除されていれば，次の欄にfalseが表示されます。

ExCache欄

ExCI欄

ExCD欄

図中のcache1はキャッシュおよびキャッシュファイルが正しく削除されている状態です。

eztool deletecacheコマンドだけを実行した場合

キャッシュが正しく削除されていれば，ExCache欄にfalse，ExCI欄およびExCD欄にtrueが表示されます。また，UnusedFC欄以降に値は表示されません。

図中のcache3はキャッシュが正しく削除されている状態です。

(10)　クラスタ内の全EADSサーバを終了する

クラスタ内の全EADSサーバを終了します。

手順については，「10.6　EADSサーバを終了する（ディスク上のキャッシュを終了する場合）」を参照してください。

(11)　クラスタ定義を変更する

クラスタを構成するEADSサーバが減るため，クラスタ定義を変更する必要があります。

全EADSサーバのクラスタ定義ファイルから，削除するEADSサーバの次に示すパラメタを削除します。

eads.node.＜EADSサーバID＞.address

eads.node.＜EADSサーバID＞.port

eads.node.＜EADSサーバID＞.position

(12)　クラスタ内の全EADSサーバを開始する（データを再配置する）

クラスタ内の全EADSサーバを起動したあとに，データを再配置します。

eztool importecfコマンドを実行して，データを再配置する際には，「(5)　EADSサーバからキャッシュファイルを書き出す」でキャッシュファイルを書き出したディレクトリを指定してください。

手順については，「11.1.3(11)　クラスタ内の全EADSサーバを開始する」〜「11.1.3(15)　閉塞状態が解除できていることを確認する」を参照してください。

(13)　【参考】OSのコマンドなどを使用してEADSサーバのキャッシュファイルを移動・退避する

「(5)　EADSサーバからキャッシュファイルを書き出す」で，eztool exportecfコマンドを実行してEADSサーバからキャッシュファイルを書き出す代わりに，OSのコマンドなどを使用してEADSサーバのキャッシュファイルを移動・退避させてもかまいません。その場合のEADSサーバをクラスタから削除する手順（ディスク上のキャッシュを使用する場合）を次に示します。

各レンジのデータの分散状況を確認する

クラスタを閉塞状態にする

閉塞していることを確認する

キャッシュを確認する

クラスタ内の全EADSサーバを終了する

削除するEADSサーバ以外のEADSサーバのキャッシュファイルを移動する

削除するEADSサーバのキャッシュファイルを退避する

クラスタ定義を変更する

クラスタ内の全EADSサーバを開始する（データを再配置する）

注意事項

この手順はディスクキャッシュの格納先として不揮発性メモリを使用している場合は使用できません。

「6.　削除するEADSサーバ以外のEADSサーバのキャッシュファイルを移動する」，および「7.　削除するEADSサーバのキャッシュファイルを退避する」の手順を次に示します。

(a)　削除するEADSサーバ以外のEADSサーバのキャッシュファイルを移動する

削除するEADSサーバ以外のEADSサーバのキャッシュファイルを，任意のディレクトリに移動します。

EADSサーバごとに，次のディレクトリ下のすべてのファイルを移動してください（次のディレクトリ下のすべてのファイルをコピーしたあとで，コピー元のファイルを削除してください）。

＜キャッシュ定義のeads.cache.disk.<n>.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞

＜キャッシュ定義のeads.cache.disk.info.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞（デフォルトは＜運用ディレクトリ＞/store/＜キャッシュ名＞）

移動先のディレクトリのパスは，全EADSサーバで同一になるようにしてください。

「(12)　クラスタ内の全EADSサーバを開始する（データを再配置する）」で，eztool importecfコマンドを実行して，データを再配置する際には，上記でキャッシュファイルを移動させたディレクトリを指定してください。

(b)　削除するEADSサーバのキャッシュファイルを退避する

削除するEADSサーバのキャッシュファイルを，ほかのどれか1つのEADSサーバの，「(a)　削除するEADSサーバ以外のEADSサーバのキャッシュファイルを移動する」でキャッシュファイルを移動したディレクトリに退避します。

削除するEADSサーバの次のディレクトリ下のすべてのファイルを退避してください。

＜キャッシュ定義のeads.cache.disk.<n>.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞

＜キャッシュ定義のeads.cache.disk.info.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞（デフォルトは＜運用ディレクトリ＞/store/＜キャッシュ名＞）

11.3　各レンジに格納できるkeyの数を均等にしたい

スケールアウト処理などによって，各レンジに格納できるkeyの数が偏っている場合に，クラスタ内のEADSサーバをコンシステント・ハッシングの円周上に均等に配置し直すことで，各レンジに格納できるkeyの数を均等にします。

11.3.1　クラスタを停止させないで，各レンジに格納できるkeyの数を均等にする手順（リバランス処理）

クラスタを停止させないで，EADSサーバの位置を変更して，各レンジに格納できるkeyの数を均等にする手順（リバランス処理）について説明します。

リバランス処理は，スケールアウト処理後など，各レンジに格納できるkeyの数が均等に配分されていない場合に実行します。

リバランス処理の実行条件については，「11.1.1(1)　前提条件」を参照してください。

リバランス処理を実行する前に次の手順を実行してください。

「11.1.1(2)　各レンジのデータの分散状況を確認する」

「11.1.1(3)　クラスタ定義ファイルのバックアップを取得する（任意）」

「11.1.1(4)　クラスタ内の全EADSサーバに異常がないことを確認する」

また，リバランス処理の手順は，次の手順を参照してください。

「11.1.1(8)　EADSサーバの位置を変更して，各レンジに格納できるkeyの数を均等にする（リバランス処理）」

「11.1.1(9)　リバランス処理の結果を確認する」

11.3.2　クラスタを停止してから，各レンジに格納できるkeyの数を均等にする手順

メモリキャッシュだけを使用している場合に，クラスタを停止してから，EADSサーバの位置を変更して，各レンジに格納できるkeyの数を均等にする手順について説明します。

メモリキャッシュだけを使用している場合には，「11.3.1　クラスタを停止させないで，各レンジに格納できるkeyの数を均等にする手順（リバランス処理）」を実行することを推奨します。

ディスクキャッシュ，および2Wayキャッシュを使用している場合は，「11.1.3　クラスタを停止してから，EADSサーバをクラスタに追加する手順（ディスク上のキャッシュを使用する場合）」の手順を実行してください。

(1)　クラスタ内の全EADSサーバを終了する（ファイルにデータを書き出す）

ファイルにデータを書き出してからクラスタ内の全EADSサーバを終了します。

手順については，「10.5　EADSサーバを終了する（メモリ上のデータをファイルに書き出す場合）」を参照してください。

(2)　クラスタ定義を変更する

EADSサーバの位置（ハッシュ値）を自動で調整するために，各EADSサーバのクラスタ定義を変更します。

各EADSサーバのクラスタ定義ファイルから，eads.node.＜EADSサーバID＞.positionパラメタをすべて削除します。

(3)　クラスタ内の全EADSサーバを開始する（ファイルからデータを読み込む）

クラスタ内の全EADSサーバを起動したあとに，前回稼働時にファイルに書き出したデータを，再度メモリ上に読み込ませます。

手順については，「10.3　EADSサーバを開始する（ファイルからデータを読み込んでキャッシュを作成する場合）」を参照してください。

11.4　定義内容を変更したい

定義内容を変更します。

11.4.1　定義内容を変更する手順

定義内容を変更する手順について説明します。

(1)　EADSサーバを終了する（ファイルにデータを書き出す）

ファイルにデータを書き出してからEADSサーバを終了します。

手順については，「10.5　EADSサーバを終了する（メモリ上のデータをファイルに書き出す場合）」，または「10.6　EADSサーバを終了する（ディスク上のキャッシュを終了する場合）」を参照してください。

注意事項

コマンド定義を変更する場合は，EADSサーバを終了する必要はありません。

(2)　定義内容を変更する

定義内容を変更します。

「eads.logger.」で始まるサーバ定義のパラメタを変更する場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

クラスタ定義または共通設定を変更する場合は，クラスタを構成する全EADSサーバで定義内容が同じになるようにしてください。

キャッシュ定義を変更する場合は，クラスタを構成する全EADSサーバで次のパラメタの定義内容が同じになるようにしてください。

eads.cache.type

eads.cache.eviction.policy

eads.cache.eviction.keyCount（データ自動削除機能を使用する場合）

eads.cache.disk.filesize

eads.cache.disk.filenum

eads.cache.disk.blocksize

eads.cache.disk.persistentMemory.enable

eads.cache.disk.persistentMemory.blocksize（ディスクキャッシュの格納先として不揮発性メモリを使用する場合）

「eads.command.logger.」で始まるコマンド定義のパラメタを変更する場合は，コマンド定義のeads.command.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(3)　EADSサーバを開始する（ファイルからデータを読み込む）

EADSサーバを起動したあとに，前回稼働時にファイルに書き出したデータを，再度メモリ上に読み込ませます。手順については，「10.3　EADSサーバを開始する（ファイルからデータを読み込んでキャッシュを作成する場合）」を参照してください。

11.4.2　定義内容を変更する場合の注意点

この項の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

ディスクキャッシュ，および2Wayキャッシュを使用する場合，次に示すパラメタを変更すると，キャッシュの再開ができなくなります。次に示すパラメタを変更したい場合は，データを再配置してください。データの再配置については，「11.1.3　クラスタを停止してから，EADSサーバをクラスタに追加する手順（ディスク上のキャッシュを使用する場合）」を参照してください。

クラスタ定義の次のパラメタ

eads.node.＜EADSサーバID＞.position

共通設定の次のパラメタ

eads.replication.factor

eads.cache.key.maxsize

ディスクキャッシュ，および2Wayキャッシュを使用する場合，次に示すパラメタは変更しないでください。変更するとキャッシュの再開ができなくなります。

キャッシュ定義の次のパラメタ

eads.cache.type

eads.cache.eviction.policy

eads.cache.disk.filesize

eads.cache.disk.persistentMemory.enable

eads.cache.disk.persistentMemory.device（ディスクキャッシュの格納先として不揮発性メモリを使用する場合）

eads.cache.disk.persistentMemory.blocksize（ディスクキャッシュの格納先として不揮発性メモリを使用する場合）

注　キャッシュ定義のeads.cache.eviction.keyCountパラメタおよびeads.cache.disk.filenumパラメタについては，指定値を増やすことはできますが，減らすことはできません。

11.5　キャッシュを追加または削除したい

キャッシュを追加または削除します。

11.5.1　メモリキャッシュを追加または削除する手順

メモリキャッシュを追加または削除する手順について説明します。

(1)　クラスタを閉塞状態にする

eztool closeコマンドを実行し，クラスタを閉塞状態にします。

eztool close

コマンド実行例

(2)　閉塞していることを確認する

EADSサーバを閉塞後，eztool statusコマンドを実行して，クラスタの状態を確認します。

eztool status

コマンド実行例

閉塞している場合，State欄にclosedが表示されます。

(3)　キャッシュを追加または削除する

(a)　キャッシュを追加する

eztool createcacheコマンドを実行し，キャッシュを追加します。

eztool createcache ＜キャッシュ名＞

コマンド実行例

(b)　キャッシュを削除する

eztool deletecacheコマンドを実行し，キャッシュを削除します。

eztool deletecache ＜キャッシュ名＞

コマンド実行例

(4)　キャッシュが追加または削除されていることを確認する

eztool listcacheコマンドを実行し，キャッシュの一覧を表示します。

キャッシュが追加または削除されていることを確認してください。

eztool listcache

コマンド実行例

(5)　クラスタの閉塞状態を解除する

eztool openコマンドを実行し，クラスタの閉塞状態を解除します。

eztool open

コマンド実行例

(6)　閉塞状態が解除できていることを確認する

eztool statusコマンドを実行して，全EADSサーバの閉塞状態が解除できていることを確認します。

eztool status

コマンド実行例

閉塞状態が解除できている場合，State欄にrunningが表示されます。

11.5.2　ディスクキャッシュおよび2Wayキャッシュを追加または削除する手順

この項の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

ディスクキャッシュ，および2Wayキャッシュを追加または削除する手順について説明します。

(1)　クラスタを閉塞状態にする

eztool closeコマンドを実行し，クラスタを閉塞状態にします。

eztool close

コマンド実行例

(2)　閉塞していることを確認する

EADSサーバを閉塞後，eztool statusコマンドを実行して，クラスタの状態を確認します。

eztool status

コマンド実行例

閉塞している場合，State欄にclosedが表示されます。

(3)　キャッシュを追加または削除する

(a)　キャッシュを追加する

追加するキャッシュのキャッシュ定義ファイルを作成します。手順については，「10.2.2(1)　キャッシュ定義ファイルを作成する」を参照してください。

そのあとで，eztool createcacheコマンドを実行し，キャッシュを追加します。

eztool createcache ＜キャッシュ名＞

コマンド実行例

キャッシュを作成すると，次のディレクトリにキャッシュファイルが作成されます。

通常の場合（ディスクキャッシュの格納先として不揮発性メモリを使用しない場合）

キャッシュデータファイル

＜キャッシュ定義のeads.cache.disk.<n>.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞

キャッシュインデックスファイルおよびキャッシュ情報ファイル

＜キャッシュ定義のeads.cache.disk.info.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞（デフォルトは＜運用ディレクトリ＞/store/＜キャッシュ名＞）

ディスクキャッシュの格納先として不揮発性メモリを使用する場合

キャッシュデータファイルおよびキャッシュインデックスファイル※

＜キャッシュ定義のeads.cache.disk.persistentMemory.deviceパラメタで指定した不揮発性メモリのデバイスファイル＞

キャッシュ情報ファイル

＜キャッシュ定義のeads.cache.disk.info.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞（デフォルトは＜運用ディレクトリ＞/store/＜キャッシュ名＞）

注※

指定したデバイスファイルにキャッシュデータファイルおよびキャッシュインデックスファイルが格納されます。

(b)　キャッシュを削除する

次のどちらかの方法で，キャッシュおよびキャッシュファイルを削除します。

eztool deletecache --with_deleteecfコマンドを実行する

eztool deletecacheコマンドを実行したあとにeztool deleteecfコマンドを実行する

eztool deletecache --with_deleteecfコマンドを実行する場合

eztool deletecache ＜キャッシュ名＞ --with_deleteecf

コマンド実行例

eztool deletecacheコマンドを実行したあとにeztool deleteecfコマンドを実行する場合

eztool deletecache ＜キャッシュ名＞

eztool deleteecf ＜キャッシュ名＞

コマンド実行例

(4)　キャッシュが追加または削除されていることを確認する

キャッシュを追加した場合は，eztool listcacheコマンドを実行し，キャッシュの一覧を表示します。キャッシュが追加されていることを確認してください。

eztool listcache

コマンド実行例

キャッシュを削除した場合は，eztool listecf -vコマンドを実行し，永続データに関する情報の一覧を表示します。

eztool listecf -v

コマンド実行例

eztool deletecache --with_deleteecfコマンド，またはeztool deletecacheコマンドのあとにeztool deleteecfコマンドを実行した場合

キャッシュおよびキャッシュファイルが正しく削除されていれば，次の欄にfalseが表示されます。

ExCache欄

ExCI欄

ExCD欄

図中のcache1はキャッシュおよびキャッシュファイルが正しく削除されている状態です。

eztool deletecacheコマンドだけを実行した場合

キャッシュが正しく削除されていれば，ExCache欄にfalse，ExCI欄およびExCD欄にtrueが表示されます。また，UnusedFC欄以降に値は表示されません。

図中のcache3はキャッシュが正しく削除されている状態です。

(5)　クラスタの閉塞状態を解除する

eztool openコマンドを実行し，クラスタの閉塞状態を解除します。

eztool open

コマンド実行例

(6)　閉塞状態が解除できていることを確認する

eztool statusコマンドを実行して，全EADSサーバの閉塞状態が解除できていることを確認します。

eztool status

コマンド実行例

閉塞状態が解除できている場合，State欄にrunningが表示されます。

11.6　バックアップを取得したい

データのバックアップを取得します。

11.6.1　データのバックアップを取得する手順（メモリ上のキャッシュだけを使用する場合）

メモリ上のキャッシュだけを使用する場合に，データのバックアップを取得する手順について説明します。

(1)　クラスタを閉塞状態にする

eztool closeコマンドを実行して，クラスタを閉塞状態にします。

eztool close

コマンド実行例

(2)　閉塞していることを確認する

EADSサーバを閉塞後，eztool statusコマンドを実行して，クラスタの状態を確認します。

eztool status

コマンド実行例

閉塞している場合，State欄にclosedが表示されます。

(3)　ファイルにデータを書き出す

eztool exportコマンドを実行して，ストアデータファイルにデータを書き出します。

eztool export

コマンド実行例

この例のように，ストアデータファイルキーを省略すると，コマンド実行日時がストアデータファイルキーとなります。

省略しない場合は，任意のストアデータファイルキーを指定します。

(4)　ストアデータファイルを確認する

eztool listesd -vコマンドを実行し，取得したストアデータファイルの格納先を確認します。

eztool listesd -v

コマンド実行例

(5)　クラスタの閉塞状態を解除する

eztool openコマンドを実行し，クラスタの閉塞状態を解除します。

eztool open

コマンド実行例

(6)　閉塞状態が解除できていることを確認する

eztool statusコマンドを実行して，全EADSサーバの閉塞状態が解除できていることを確認します。

eztool status

コマンド実行例

閉塞状態が解除できている場合，State欄にrunningが表示されます。

11.6.2　データのバックアップを取得する手順（ディスク上のキャッシュを使用する場合）

この項の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

ディスク上のキャッシュを使用する場合に，データのバックアップを取得する手順について説明します。

ディスクキャッシュ，および2Wayキャッシュを使用する場合には，eztool exportecfコマンドを使用してバックアップを取得します。eztool exportecfコマンドでバックアップを取得した場合は，eztool importecfコマンドを使用してデータを再配置します。

参考

eztool exportecfコマンドを実行する代わりに，OSのコマンドなどを使用してEADSサーバのキャッシュファイルのバックアップを取得することもできます。

OSのコマンドなどを使用してバックアップを取得する場合は，必ず全EADSサーバを終了してからバックアップを取得してください。なお，ディスクキャッシュの格納先として不揮発性メモリを使用している場合は，この手順ではバックアップは取得できません。

OSのコマンドなどを使用してEADSサーバのキャッシュファイルのバックアップを取得する

EADSサーバごとに，次のディレクトリ下のすべてのファイルを任意のディレクトリにコピーします。

＜キャッシュ定義のeads.cache.disk.<n>.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞

＜キャッシュ定義のeads.cache.disk.info.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞（デフォルトは＜運用ディレクトリ＞/store/＜キャッシュ名＞）

(1)　クラスタを閉塞状態にする

eztool closeコマンドを実行して，クラスタを閉塞状態にします。

eztool close

コマンド実行例

(2)　閉塞していることを確認する

EADSサーバを閉塞後，eztool statusコマンドを実行して，クラスタの状態を確認します。

eztool status

コマンド実行例

閉塞している場合，State欄にclosedが表示されます。

(3)　キャッシュデータファイルとキャッシュインデックスファイルを書き出す

eztool exportecfコマンドを実行して，EADSサーバからすべてのキャッシュのキャッシュデータファイルとキャッシュインデックスファイルを任意のディレクトリに書き出します。

eztool exportecf ＜キャッシュファイルの出力先パス名＞ ＜キャッシュ名＞

コマンド実行例

(4)　キャッシュデータファイルとキャッシュインデックスファイルを確認する

キャッシュファイルの出力先を確認して，キャッシュデータファイルとキャッシュインデックスファイルが取得できているかを確認します。

(5)　クラスタの閉塞状態を解除する

eztool openコマンドを実行し，クラスタの閉塞状態を解除します。

eztool open

コマンド実行例

(6)　閉塞状態が解除できていることを確認する

eztool statusコマンドを実行して，全EADSサーバの閉塞状態が解除できていることを確認します。

eztool status

コマンド実行例

閉塞状態が解除できている場合，State欄にrunningが表示されます。

11.7　ストアデータファイルを管理したい

ストアデータファイルの世代数には上限があるため，上限に達する前に削除する必要があります。

ストアデータファイルの世代数については，「7.6.2　ストアデータファイルの世代数の設定」を参照してください。

11.7.1　ストアデータファイルの確認および削除手順

ストアデータファイルの確認および削除手順について説明します。

(1)　ストアデータファイルの一覧を表示する

eztool listesdコマンドを実行して，クラスタ内のストアデータファイルの一覧を表示します。

eztool listesd

コマンド実行例

StoreDataFileKey欄に，ストアデータファイルのストアデータファイルキーの一覧が表示されます。

(2)　不要なストアデータファイルを削除する

eztool deleteesdコマンドを実行して，クラスタ内の不要なストアデータファイルを削除します。

eztool deleteesd ＜ストアデータファイルキー＞

コマンド実行例

11.8　データの格納先を確認したい

eztool getpositionコマンドを実行して，指定したkeyやグループの格納先EADSサーバを表示します。

なお，-lまたは--localオプションを指定すると，EADSサーバの状態に関係なく実行できます。この場合，稼働中のクラスタ構成情報ではなく，コマンドを実行するEADSサーバのクラスタ定義ファイルの情報を読み込みます。

eztool getposition ＜key＞

コマンド実行例

データを多重化している場合，No.2以降にデータのコピー先EADSサーバが表示されます。

11.9　グループ名の一覧を確認したい

eztool listgroupコマンドを実行して，指定したキャッシュの，最上位階層のグループの一覧を表示します。

eztool listgroup ［-v|--verbose］ ＜キャッシュ名＞

コマンド実行例

GroupName欄には，EADSサーバごとに，最上位階層のグループ階層名が表示されます。

また，-vまたは--verboseオプションを指定すると，最上位階層のグループの位置や，グループに属しているkeyの数を確認できます。

11.10　keyの一覧を確認したい

eztool listkeyコマンドを実行して，指定したキャッシュ内のkeyの一覧を表示します。

eztool listkey ［-g ＜グループ名＞|--group ＜グループ名＞］ ＜キャッシュ名＞

コマンド実行例

Key欄には，EADSサーバごとに，keyが表示されます。

また，-gまたは--groupオプションを指定すると，指定したグループに属するkeyの一覧を確認できます。

11.11　ユーザファンクションが各EADSサーバに正しく配置されているかどうか，また，実行できるかどうか確認したい

eztool listfuncコマンドを実行して，ユーザファンクションが各EADSサーバに正しく配置されているかどうか，また，実行できるかどうかを表示します。

eztool listfunc ［-v|--verbose］

コマンド実行例

Enable欄には，ユーザファンクションごとに，実行可能なEADSサーバ数が表示されます。

また，-vまたは--verboseオプションを指定すると，各EADSサーバに配置されているユーザファンクションが確認できます。また，それぞれ実行可能かどうかも確認できます。

なお，disableが表示されたユーザファンクションを実行可能な状態にするには，全EADSサーバを終了したあと，メッセージログから要因を特定し，問題を取り除いてください。

11.12　クラスタを停止させないで，EADSサーバの修正パッチを適用したい

クラスタを停止させないで，EADSサーバの修正パッチを適用します。

通常は，全EADSサーバを終了してから修正パッチを適用することを推奨します。

修正パッチの適用はマシン1台ずつ行います。

なお，1マシン上に1EADSサーバのシステム構成ではない場合，次の条件を満たしている必要があります。

1マシン上のEADSサーバ数がデータの多重度未満であること

1マシン上のEADSサーバ数がクラスタを構成するEADSサーバ数の半数未満であること

11.12.1　EADSサーバの修正パッチを適用する手順

EADSサーバの修正パッチを適用する手順について説明します。

(1)　クラスタ内の全EADSサーバに異常がないことを確認する

eztool status -vコマンドを実行して，クラスタ内の全EADSサーバに異常がないことを確認します。

eztool status -v

(2)　修正パッチを適用するEADSサーバを縮退および終了する

eztool isolate --stopコマンドを実行して，修正パッチを適用するマシン上のEADSサーバを縮退および終了します。

eztool isolate --stop

同じマシン上にほかのEADSサーバがあれば，(2)を繰り返し実行します。

(3)　マシンに修正パッチを適用する

停止状態のEADSサーバのマシンに修正パッチを適用します。

(4)　停止状態のEADSサーバを再起動する

ezstart -rまたはezserver -rコマンドを実行して，修正パッチを適用したEADSサーバを再起動します。

ezstart -rコマンドを実行する場合

ezstart -r

ezserver -rコマンドを実行する場合

ezserver -r

(5)　再起動したEADSサーバがクラスタに参加していることを確認する

eztool status -vコマンドを実行して，再起動したEADSサーバがクラスタに参加していることを確認します。

eztool status -v

コマンド実行例

クラスタに参加している場合，Cluster欄にonlineが表示されます。

ほかにも停止状態のEADSサーバがあれば，(4)と(5)を繰り返し実行します。

また，Version欄にバージョン情報が表示されます。正しいバージョンとなっているかどうかを確認します。

(6)　クラスタ内の全EADSサーバがクラスタに参加していることを確認する

eztool status -vコマンドを実行して，クラスタ内の全EADSサーバがクラスタに参加していることを確認します。

eztool status -v

すべてのマシンに対して(1)〜(6)の手順を繰り返し実行します。

11.13　統計情報を取得したい

EADSでは次に示す統計情報を取得できます。

統計情報（eads_stats.csv）

キャッシュの統計情報（eads_cache_stats.csv）

ユーザファンクションの統計情報（eads_function_stats.csv）

レンジごとの統計情報（eads_store_stats.csv）

ノンブロッキングI/O通信制御の統計情報（eads_nonblocking_stats.csv）

ここでは，統計情報の格納先とそれぞれの統計情報に出力される情報，統計情報が取得される個所について説明します。

11.13.1　統計情報の格納先

統計情報は＜サーバ定義のeads.logger.dirパラメタに指定されたディレクトリ＞/stats下に格納されています。

11.13.2　統計情報（eads_stats.csv）

統計情報（eads_stats.csv）に出力される情報と，統計情報が取得される個所について説明します。

(1)　統計情報（eads_stats.csv）に出力される情報

統計情報（eads_stats.csv）に出力される情報を，次の表に示します。

表11‒1　統計情報（eads_stats.csv）に出力される情報

項番

目的

分類

項目

列名称

出力される値

関連するパラメタ

1

状況の確認

共通項目

統計情報を出力した日付

Date

現在値

−

2

統計情報を出力した時間

Time

現在値

3

統計情報を出力したEADSサーバのIPアドレスと，EADSクライアントとの通信に使用するEADSサーバのポート番号

ThisNode

設定値

eads.server.address

eads.server.port

4

チューニングの見直し

メモリ・バッファ

EADSクライアント・EADSサーバ間の受信データの最大サイズ（単位：バイト）

CSReadMaxSize

統計値

eads.server.connection.buffersize

5

EADSクライアント・EADSサーバ間の受信データの合計サイズ（単位：バイト）

CSReadTotalSize

統計値

eads.server.connection.buffersize

eads.replication.connection.buffersize

6

EADSクライアント・EADSサーバ間の送信データの最大サイズ（単位：バイト）

CSWriteMaxSize

統計値

7

EADSクライアント・EADSサーバ間の送信データの合計サイズ（単位：バイト）

CSWriteTotalSize

統計値

8

EADSサーバ間の受信データの最大サイズ（単位：バイト）

SSReadMaxSize

統計値

9

EADSサーバ間の受信データの合計サイズ（単位：バイト）

SSReadTotalSize

統計値

10

EADSサーバ間の送信データの最大サイズ（単位：バイト）

SSWriteMaxSize

統計値

11

EADSサーバ間の送信データの合計サイズ（単位：バイト）

SSWriteTotalSize

統計値

12

復旧したEADSサーバ，スケールアウト処理で追加したEADSサーバ，またはリバランス処理で位置を変更したEADSサーバにデータをコピーするために，データの転送元のEADSサーバから送信されるデータの合計サイズ（単位：バイト）

TransferCopyDataWriteTotalSize

統計値

eads.transfer.datasize

eads.rebalance.transfer.datasize

13

復旧したEADSサーバ，スケールアウト処理で追加したEADSサーバ，またはリバランス処理で位置を変更したEADSサーバに，データの転送元のEADSサーバから送信される全データ※3の合計サイズ（単位：バイト）

TransferWriteTotalSize

統計値

14

リソース見積もりの見直し

データ数

キャッシュに格納されているkey数

KeyCount

現在値

eads.node.＜EADSサーバID＞.position

15

メモリ使用量

現在のメモリ使用量（メモリを使用するキャッシュに格納されているvalueの合計）（単位：メガバイト）※4

UsedMemorySize

現在値

16

valueを格納できるメモリの最大サイズ（単位：メガバイト）※4

MaxMemorySize

設定値

eads.java.heapsize

eads.java.external.heapsize

17

更新操作の履歴が格納される領域の使用量（単位：メガバイト）※4

HistoriesMemorySize

現在値

eads.replication.external.heapsize

18

更新操作の履歴が格納される領域の最大サイズ（単位：メガバイト）※4

MaxHistoriesMemorySize

設定値

19

実行回数

リクエスト受付数（put，create，update，replace，get，remove）の合計値

RequestCount

統計値

eads.node.＜EADSサーバID＞.position

20

全ユーザファンクションの合計実行回数

AllFunctionExecuteCount

統計値

21

EADSサーバの性能測定

性能

内部処理時間の平均値※1，※5（単位：マイクロ秒）

InternalProcessingAverageTime

統計値

22

リクエスト処理時間の最大値※2，※6（単位：マイクロ秒）

RequestProcessingMaxTime

統計値

23

リクエスト処理時間の平均値※2，※6（単位：マイクロ秒）

RequestProcessingAverageTime

統計値

24

リクエスト処理時間の最小値※2，※6（単位：マイクロ秒）

RequestProcessingMinTime

統計値

（凡例）

−：関連するパラメタはありません。

注※1

データの多重化を除く，次に示すリクエスト処理に掛かった時間の平均値です。

put，removeの処理

create，update，replaceの処理で，データ更新が行われた場合

注※2

最初にデータが操作されるEADSサーバに対するリクエスト処理（put，removeの処理，またはcreate，update，replaceの処理でデータ更新が行われた場合）全体に掛かった時間が対象です。

注※3

復旧したEADSサーバ，スケールアウト処理で追加したEADSサーバ，またはリバランス処理で位置を変更したEADSサーバに，次のデータが送信されます。

コピー用のデータ

復旧処理，スケールアウト処理，またはリバランス処理の開始後にデータが更新された場合，更新を通知するデータ

注※4

小数点以下の値は切り捨てて表示されます。

注※5

データ自動削除機能を使用している場合，put，createの処理時に行われるremoveの内部処理時間はput，createの内部処理時間に含まれます。

注※6

データ自動削除機能を使用している場合，put，createの処理時に行われるremoveの処理時間はput，createの処理時間に含まれます。

(2)　EADSサーバの性能測定に使用する統計情報が取得される個所

EADSサーバの性能測定に使用する統計情報が取得される個所を，put処理を例にして次の図に示します。

図11‒1　EADSサーバの性能測定に使用する統計情報が取得される個所（put処理の例）

説明

1と4のタイミングで取得した時刻の差分から，リクエスト処理時間を算出します。また，次に示す統計情報を算出します。

リクエスト処理時間の最大値（RequestProcessingMaxTime）

リクエスト処理時間の平均値（RequestProcessingAverageTime）

リクエスト処理時間の最小値（RequestProcessingMinTime）

2と3のタイミングで取得した時刻の差分から，合意処理に掛かった時間を算出します。

リクエスト処理時間から，合意処理に掛かった時間を除いた時間が，内部処理時間に当たります。また，次に示す統計情報を算出します。

内部処理時間の平均値（InternalProcessingAverageTime）

11.13.3　キャッシュの統計情報（eads_cache_stats.csv）

キャッシュの統計情報（eads_cache_stats.csv）に出力される情報について説明します。

(1)　キャッシュの統計情報（eads_cache_stats.csv）に出力される情報

キャッシュの統計情報（eads_cache_stats.csv）に出力される情報を，次の表に示します。

表11‒2　キャッシュの統計情報（eads_cache_stats.csv）に出力される情報

項番

目的

分類

項目

列名称

出力される値

関連するパラメタ

1

状況の確認

共通項目

統計情報を出力した日付

Date

現在値

−

2

統計情報を出力した時間

Time

現在値

3

統計情報を出力したEADSサーバのIPアドレスと，EADSクライアントとの通信に使用するEADSサーバのポート番号

ThisNode

設定値

eads.server.address

eads.server.port

4

チューニングの見直し

キャッシュの設定

キャッシュ名※1

CacheName

設定値

−

5

キャッシュタイプ

CacheType

設定値

eads.cache.type

6

キャッシュデータファイルの出力先ディレクトリに格納されているデータのレンジID※2

RangeID

設定値

eads.replication.factor

7

キャッシュの使用量

キャッシュに格納されているkey数

CacheKeyCount

現在値

eads.node.＜EADSサーバID＞.position

8

現在キャッシュが使用しているメモリ容量（valueの合計）（単位：メガバイト）※1

CacheUsedMemorySize

現在値

9

現在キャッシュが使用しているディスク容量（valueの合計）（単位：メガバイト）※3

CacheUsedDiskSize

現在値

10

キャッシュごとのキャッシュデータファイル1つ当たりの最大サイズ（単位：メガバイト）※3

CacheMaxFileSize

設定値

eads.cache.disk.filesize

11

キャッシュごとの最大キャッシュデータファイル数

CacheMaxFileCount

設定値

eads.cache.disk.filenum

12

レンジごとの使用していないキャッシュデータファイル数

RangeUnusedFileCount

現在値

eads.cache.disk.filesize

eads.cache.disk.filenum

13

コンパクション

レンジごとの使用しているキャッシュデータファイルの中で，最もコンパクションの効果があるファイルの圧縮率（単位：%）

RangeMaxFileCompactionEffect

現在値

14

レンジごとの使用しているキャッシュデータファイルの中で，コンパクションの圧縮率が各範囲に当てはまるファイル数

RangeFileCompactionEffectCount

現在値

eads.cache.disk.filesize

eads.cache.disk.filenum

eads.statistics.compaction.effect.division

15

EADSサーバの性能測定

性能

キャッシュごとの内部処理時間の平均値※4，※18（単位：マイクロ秒）

CacheInternalProcessingAverageTime

統計値

−

16

キャッシュごとのリクエスト処理時間の最大値※5，※10（単位：マイクロ秒）

CacheRequestProcessingMaxTime

統計値

17

キャッシュごとのリクエスト処理時間の平均値※5，※10（単位：マイクロ秒）

CacheRequestProcessingAverageTime

統計値

18

キャッシュごとのリクエスト処理時間の最小値※5，※10（単位：マイクロ秒）

CacheRequestProcessingMinTime

統計値

19

キャッシュごとのputの合計回数

PutCount

統計値

20

キャッシュごとのputの合計成功回数

PutSuccessCount

統計値

21

キャッシュごとのgetの合計回数

GetCount

統計値

22

キャッシュごとのgetの合計成功回数

GetSuccessCount

統計値

23

キャッシュごとのremoveの合計回数※11

RemoveCount

統計値

24

キャッシュごとのremoveの合計成功回数※12

RemoveSuccessCount

統計値

25

キャッシュごとのcreateの合計回数

CreateCount

統計値

26

キャッシュごとのcreateの合計成功回数

CreateSuccessCount

統計値

27

キャッシュごとのupdateの合計回数

UpdateCount

統計値

28

キャッシュごとのupdateの合計成功回数

UpdateSuccessCount

統計値

29

キャッシュごとのreplaceの合計回数

ReplaceCount

統計値

30

キャッシュごとのreplaceの合計成功回数

ReplaceSuccessCount

統計値

31

キャッシュごとのputAllの内部処理時間※6，※19の平均値（単位：マイクロ秒）

PutAllInternalProcessingAverageTime

統計値

32

キャッシュごとのputAllの処理全体に掛かった時間※7，※13の最大値（単位：マイクロ秒）

PutAllProcessingMaxTime

統計値

33

キャッシュごとのputAllの処理全体に掛かった時間※7，※13の平均値（単位：マイクロ秒）

PutAllProcessingAverageTime

統計値

34

キャッシュごとのputAllの処理全体に掛かった時間※7，※13の最小値（単位：マイクロ秒）

PutAllProcessingMinTime

統計値

35

キャッシュごとのputAllの合計回数※8

PutAllCount

統計値

36

キャッシュごとのputAllの合計成功回数※8

PutAllSuccessCount

統計値

37

キャッシュごとのputAllで一括操作したデータ数※9の最大値

PutAllBatchDataMaxCount

統計値

38

キャッシュごとのputAllで一括操作したデータ数※9の平均値

PutAllBatchDataAverageCount

統計値

39

キャッシュごとのputAllで一括操作したデータ数※9の最小値

PutAllBatchDataMinCount

統計値

40

キャッシュごとのgetAllの内部処理時間※6の平均値（単位：マイクロ秒）

GetAllInternalProcessingAverageTime

統計値

41

キャッシュごとのgetAllの処理全体に掛かった時間※7の最大値（単位：マイクロ秒）

GetAllProcessingMaxTime

統計値

42

キャッシュごとのgetAllの処理全体に掛かった時間※7の平均値（単位：マイクロ秒）

GetAllProcessingAverageTime

統計値

43

キャッシュごとのgetAllの処理全体に掛かった時間※7の最小値（単位：マイクロ秒）

GetAllProcessingMinTime

統計値

44

キャッシュごとのgetAllの合計回数※8

GetAllCount

統計値

45

キャッシュごとのgetAllの合計成功回数※8

GetAllSuccessCount

統計値

46

キャッシュごとのgetAllで一括操作したデータ数※9の最大値

GetAllBatchDataMaxCount

統計値

47

キャッシュごとのgetAllで一括操作したデータ数※9の平均値

GetAllBatchDataAverageCount

統計値

48

キャッシュごとのgetAllで一括操作したデータ数※9の最小値

GetAllBatchDataMinCount

統計値

49

キャッシュごとのremoveAllの内部処理時間※6，※14の平均値（単位：マイクロ秒）

RemoveAllInternalProcessingAverageTime

統計値

50

キャッシュごとのremoveAllの処理全体に掛かった時間※7，※14の最大値（単位：マイクロ秒）

RemoveAllProcessingMaxTime

統計値

51

キャッシュごとのremoveAllの処理全体に掛かった時間※7，※14の平均値（単位：マイクロ秒）

RemoveAllProcessingAverageTime

統計値

52

キャッシュごとのremoveAllの処理全体に掛かった時間※7，※14の最小値（単位：マイクロ秒）

RemoveAllProcessingMinTime

統計値

53

キャッシュごとのremoveAllの合計回数※8，※15

RemoveAllCount

統計値

54

キャッシュごとのremoveAllの成功回数の合計値※8，※16

RemoveAllSuccessCount

統計値

55

キャッシュごとのremoveAllで一括操作したデータ数※9，※17の最大値

RemoveAllBatchDataMaxCount

統計値

56

キャッシュごとのremoveAllで一括操作したデータ数※9，※17の平均値

RemoveAllBatchDataAverageCount

統計値

57

キャッシュごとのremoveAllで一括操作したデータ数※9，※17の最小値

RemoveAllBatchDataMinCount

統計値

（凡例）

−：関連するパラメタはありません。

注※1

キャッシュが複数ある場合は，上からキャッシュ名の自然順序順に表示されます。

注※2

データの多重度が2以上の場合は，上からデータの格納先EADSサーバ，データのコピー先EADSサーバの順に表示されます。

注※3

小数点以下の値は切り捨てて表示されます。

注※4

データの多重化を除く，次に示すリクエスト処理に掛かった時間の平均値です。

put，removeの処理

create，update，replaceの処理で，データ更新が行われた場合

注※5

最初にデータが操作されるEADSサーバに対するリクエスト処理（put，removeの処理，またはcreate，update，replaceの処理でデータ更新が行われた場合）全体に掛かった時間が対象です。

注※6

処理全体に掛かった時間から，EADSサーバ間の通信時間を除いた時間が対象です。

注※7

一括操作が一部でも失敗した場合の処理時間は含まれません。

注※8

EADSサーバの実行回数が表示されるため，EADSクライアントの実行回数とは一致しません。

注※9

一括操作が一部でも失敗した場合のデータ数は含まれません。

注※10

データ自動削除機能を使用している場合，put，createの処理時に行われるremoveの処理時間はput，createの処理時間に含まれます。

注※11

データ自動削除機能を使用している場合，put，createの処理時に行われるremoveの実行回数は対象になりません。

注※12

データ自動削除機能を使用している場合，put，createの処理時に行われるremoveの成功回数は対象になりません。

注※13

データ自動削除機能を使用している場合，putAllの処理時に行われるremoveAllの処理時間はputAllの処理時間に含まれます。

注※14

データ自動削除機能を使用している場合，putAllの処理時に行われるremoveAllの処理時間は含まれません。

注※15

データ自動削除機能を使用している場合，putAllの処理時に行われるremoveAllの実行回数は対象になりません。

注※16

データ自動削除機能を使用している場合，putAllの処理時に行われるremoveAllの成功回数は対象になりません。

注※17

データ自動削除機能を使用している場合，putAllの処理時に行われるremoveAllによるデータ操作回数は対象になりません。

注※18

データ自動削除機能を使用している場合，put，createの処理時に行われるremoveの内部処理時間はput，createの内部処理時間に含まれます。

注※19

データ自動削除機能を使用している場合，putAllの処理時に行われるremoveAllの内部処理時間はputAllの内部処理時間に含まれます。

11.13.4　ユーザファンクションの統計情報（eads_function_stats.csv）

ユーザファンクションの統計情報（eads_function_stats.csv）に出力される情報と，統計情報が取得される個所について説明します。

(1)　ユーザファンクションの統計情報（eads_function_stats.csv）に出力される情報

ユーザファンクションの統計情報（eads_function_stats.csv）に出力される情報を，次の表に示します。

これらの情報は，ユーザファンクションの性能測定に使用できます。

表11‒3　ユーザファンクションの統計情報（eads_function_stats.csv）に出力される情報

項番

項目

列名称

出力される値

1

統計情報を出力した日付

Date

現在値

2

統計情報を出力した時間

Time

現在値

3

統計情報を出力したEADSサーバのIPアドレスと，EADSクライアントとの通信に使用するEADSサーバのポート番号

ThisNode

設定値

4

ユーザファンクション名

FunctionName

設定値

5

ユーザファンクションの合計実行回数

FunctionExecuteCount

統計値

6

ユーザファンクション実行時間の最大値（単位：マイクロ秒）

FunctionExecuteMaxTime

統計値

7

ユーザファンクション実行時間の平均値（単位：マイクロ秒）

FunctionExecuteAverageTime

統計値

8

ユーザファンクション実行時間の最小値（単位：マイクロ秒）

FunctionExecuteMinTime

統計値

9

ユーザファンクションの内部処理時間の最大値（単位：マイクロ秒）

FunctionInternalProcessingMaxTime

統計値

10

ユーザファンクションの内部処理時間の平均値（単位：マイクロ秒）

FunctionInternalProcessingAverageTime

統計値

11

ユーザファンクションの内部処理時間の最小値（単位：マイクロ秒）

FunctionInternalProcessingMinTime

統計値

12

ユーザファンクションのユーザプログラムの処理時間の最大値（単位：マイクロ秒）

UserProgramProcessingMaxTime

統計値

13

ユーザファンクションのユーザプログラムの処理時間の平均値（単位：マイクロ秒）

UserProgramProcessingAverageTime

統計値

14

ユーザファンクションのユーザプログラムの処理時間の最小値（単位：マイクロ秒）

UserProgramProcessingMinTime

統計値

15

ユーザファンクションから呼ばれたputの合計回数

PutCount

統計値

16

ユーザファンクションから呼ばれたputの合計成功回数

PutSuccessCount

統計値

17

ユーザファンクションから呼ばれたgetの合計回数

GetCount

統計値

18

ユーザファンクションから呼ばれたgetの合計成功回数

GetSuccessCount

統計値

19

ユーザファンクションから呼ばれたremoveの合計回数

RemoveCount

統計値

20

ユーザファンクションから呼ばれたremoveの合計成功回数

RemoveSuccessCount

統計値

21

ユーザファンクションから呼ばれたcreateの合計回数

CreateCount

統計値

22

ユーザファンクションから呼ばれたcreateの合計成功回数

CreateSuccessCount

統計値

23

ユーザファンクションから呼ばれたupdateの合計回数

UpdateCount

統計値

24

ユーザファンクションから呼ばれたupdateの合計成功回数

UpdateSuccessCount

統計値

25

ユーザファンクションから呼ばれたreplaceの合計回数

ReplaceCount

統計値

26

ユーザファンクションから呼ばれたreplaceの合計成功回数

ReplaceSuccessCount

統計値

(2)　統計情報が取得される個所

統計情報が取得される個所を次の図に示します。

図11‒2　統計情報が取得される個所（ユーザファンクションの統計情報）

説明

ユーザファンクション実行時間とは，ユーザファンクション実行のリクエストを受け付けてから，レスポンスを返すまでの処理時間のことです。1と4のタイミングで取得した時刻の差分から，ユーザファンクション実行時間を算出します。また，次に示す統計情報を算出します。

ユーザファンクション実行時間の最大値（FunctionExecuteMaxTime）

ユーザファンクション実行時間の平均値（FunctionExecuteAverageTime）

ユーザファンクション実行時間の最小値（FunctionExecuteMinTime）

2と3のタイミングで取得した時刻の差分から，合意処理に掛かった時間を算出します。

ユーザファンクション実行時間から，合意処理に掛かった時間を除いた時間が，ユーザファンクションの内部処理時間に当たります。また，次に示す統計情報を算出します。

ユーザファンクションの内部処理時間の最大値（FunctionInternalProcessingMaxTime）

ユーザファンクションの内部処理時間の平均値（FunctionInternalProcessingAverageTime）

ユーザファンクションの内部処理時間の最小値（FunctionInternalProcessingMinTime）

ユーザプログラム処理のうち，合意処理に掛かった時間，およびAPIの処理時間を除いた時間が，ユーザプログラムの処理時間に当たります。また，次に示す統計情報を算出します。

ユーザファンクションのユーザプログラムの処理時間の最大値（UserProgramProcessingMaxTime）

ユーザファンクションのユーザプログラムの処理時間の平均値（UserProgramProcessingAverageTime）

ユーザファンクションのユーザプログラムの処理時間の最小値（UserProgramProcessingMinTime）

11.13.5　レンジごとの統計情報（eads_store_stats.csv）

レンジごとの統計情報（eads_store_stats.csv）に出力される情報について説明します。

なお，レンジごとの統計情報（eads_store_stats.csv）は，データ総量監視機能が有効になっている場合に出力されます。

(1)　レンジごとの統計情報（eads_store_stats.csv）に出力される情報

レンジごとの統計情報（eads_store_stats.csv）に出力される情報を，次の表に示します。

表11‒4　レンジごとの統計情報（eads_store_stats.csv）に出力される情報

項番

目的

分類

項目

列名称

出力される値

関連するパラメタ

1

状況の確認

共通項目

統計情報を出力した日付

Date

現在値

−

2

統計情報を出力した時間

Time

現在値

3

統計情報を出力したEADSサーバのIPアドレスと，EADSクライアントとの通信に使用するEADSサーバのポート番号

ThisNode

設定値

eads.server.address

eads.server.port

4

データ総量監視

レンジの情報

データのレンジID※1

RangeID

設定値

eads.replication.factor

5

キャッシュ名※2

CacheName

設定値

−

6

レンジに格納できるkey数の上限値※3

KeyCountLimit

設定値

eads.cache.keyCount

7

レンジに格納されているkey数

StoredKeyMaxCount

統計値

−

8

レンジにまだ格納されていないkey数

ReservedKeyMaxCount

統計値

eads.server.cache.maxExecuteThreads

eads.server.function.maxExecuteThreads

9

メモリの使用量

レンジに格納できるvalueが使用するメモリ容量の上限値（単位：メガバイト）※3

ExternalHeapSizeLimit

設定値

eads.java.external.heapsize

10

レンジに格納されているvalueが使用しているメモリ容量（単位：メガバイト）※4

UsedExternalHeapMaxSize

統計値

−

11

まだレンジに格納されていないvalueが使用するメモリ容量（単位：バイト）

ReservedExternalHeapMaxSize

統計値

eads.server.cache.maxExecuteThreads

eads.server.function.maxExecuteThreads

12

ディスクの使用量

レンジに格納できるレコードが使用するディスク容量の上限値（単位：メガバイト）

DiskSizeLimit

設定値

eads.cache.disk.filesize

eads.cache.disk.filenum

13

レンジに格納されているレコードが使用しているディスク容量（単位：メガバイト）※4

UsedDiskMaxSize

統計値

−

14

まだレンジに格納されていないレコードが使用するディスク容量（単位：バイト）

ReservedDiskMaxSize

統計値

eads.server.cache.maxExecuteThreads

eads.server.function.maxExecuteThreads

（凡例）

−：関連するパラメタはありません。

注※1

データの多重度が2以上の場合は，上からデータの格納先EADSサーバ，データのコピー先EADSサーバの順に表示されます。

注※2

キャッシュが複数ある場合は，上からキャッシュ名の自然順序順に表示されます。

注※3

リバランス処理の実行中は，実際の値よりも少ない値が出力されることがあります。

注※4

小数点以下の値は切り捨てて表示されます。

11.13.6　ノンブロッキングI/O通信制御の統計情報（eads_nonblocking_stats.csv）

ノンブロッキングI/O通信制御の統計情報について説明します。

(1)　ノンブロッキングI/O通信制御の統計情報（eads_nonblocking_stats.csv）に出力される情報

ノンブロッキングI/O通信制御の統計情報（eads_nonblocking_stats.csv）に出力される情報を，次の表に示します。

表11‒5　ノンブロッキングI/O通信制御の統計情報（eads_nonblocking_stats.csv）に出力される情報

項番

項目

列名称

出力される値

関連パラメタ

1

統計情報を出力した日付

Date

現在値

−

2

統計情報を出力した時間

Time

現在値

3

統計情報を出力したEADSサーバのIPアドレスと，EADSクライアントとの通信に使用するEADSサーバのポート番号

ThisNode

設定値

eads.server.address

eads.server.port

4

接続されたコネクション数

Connections

統計値

eads.server.maxConnections

5

イベントリスナで使用しているコネクション数

EventListenerExecutingConnections

統計値

6

リクエスト処理スレッドで実行しているリクエスト数

ProcessingRequests

統計値

eads.server.nonBlocking.processorThreads

7

リクエスト処理スレッドでの実行を待っているリクエスト数

WaitingRequests

統計値

8

現在使用中のノンブロッキングI/O通信バッファサイズ（単位：メガバイト）

StayingIODataSize(MB)

統計値

eads.server.nonBlocking.external.heapsize

eads.server.connection.buffersize

9

滞留中I/Oデータ同時割当数

StayingIODataAllocatingConnections

統計値

eads.server.nonBlocking.maxAllocateConnections

10

滞留中I/Oデータ流量制御による退避中リクエスト数

EvacuatingRequestsByStayingDataFlow

統計値

11

キャッシュ操作同時実行数

CacheExecutingThreads

統計値

eads.server.cache.maxExecuteThreads

12

キャッシュ操作同時実行制御退避中リクエスト数

EvacuatingRequestsByCacheConcurrency

統計値

13

ファンクション操作同時実行数

FunctionExecutingThreads

統計値

eads.server.function.maxExecuteThreads

14

ファンクション同時実行数制御およびユーザファンクション単位ファンクション同時実行数制御による退避中リクエスト数

EvacuatingRequestsByFunctionConcurrency

統計値

eads.server.function.maxExecuteThreads

eads.function.＜ユーザファンクション名＞.maxExecuteThreads

11.14　データの格納先の空き容量を管理したい

eads.cache.limiter.enableパラメタにtrueを指定すると，EADSサーバに格納できるデータ量（格納済みのkey数，Explicitヒープの空き容量，キャッシュファイルの空き容量）が監視されます。格納先の空き容量が不足することが予想される場合は，処理をエラーとすることで，EADSサーバがダウンすることを防ぐことができます。これを，データ総量監視機能といいます。

データ総量監視機能を有効にすると，keyの数，Explicitヒープの容量，およびキャッシュファイルの容量について，次に示す上限値を超えないように監視されます。

keyの数の上限値

共通設定のeads.cache.keyCountパラメタの指定値

Explicitヒープの容量の上限値（単位：メガバイト）

Explicitヒープの容量の上限値（単位：メガバイト）＝

　（共通設定のeads.java.external.heapsizeパラメタの指定値×0.97

　−共通設定のeads.replication.external.heapsizeパラメタの指定値

　−共通設定のeads.server.nonBlocking.external.heapsizeパラメタの指定値※）

　÷共通設定のeads.replication.factorパラメタの指定値

注

メガバイト未満の値は切り捨てられます。

注※

サーバ定義のeads.server.nonBlocking.enableパラメタの指定値がfalseの場合は0を代入してください。

キャッシュファイルの容量の上限値（単位：メガバイト）

キャッシュファイルの容量の上限値（単位：メガバイト）＝

　（キャッシュ定義のeads.cache.disk.filenumパラメタの指定値−2）

　×（キャッシュ定義のeads.cache.disk.filesizeパラメタの指定値×1,024

　−キャッシュ定義のeads.cache.disk.blocksizeパラメタの指定値×2）÷1,024

注

メガバイト未満の値は切り捨てられます。

ポイント

データ総量監視機能を有効にした場合，データを格納することで上限値を超える（格納先の空き容量が不足する）ことが予想されるときに，処理がエラーになります。このため，格納先の空き容量が少ないときに，データを格納する処理を同時に多数実行しようとすると，処理がエラーになることがあります。

したがって，データ総量監視機能を使用する場合は，keyの数，Explicitヒープの容量，およびキャッシュファイルの容量について，実際に格納したい値より多めに見積もる必要があります。

データ総量監視機能を使用する場合の見積もりの方法については，「4.　必要なリソースを確認する」を参照してください。

なお，次に示す処理の間，データ総量監視機能は一時的に無効となります。

スケールアウト処理

データの読み込み（eztool importコマンド）

永続データの再配置（eztool importecfコマンド）

キャッシュの再開（eztool resumeコマンド）

11.14.1　データの格納先の空き容量を管理する手順（メモリ上のキャッシュだけを使用する場合）

メモリキャッシュだけを使用する場合に，データの格納先の空き容量を管理する手順，および空き容量を増やす手順について説明します。

(1)　統計情報から空き容量を監視する

レンジごとの統計情報（eads_store_stats.csv）に出力される情報から，データの格納先の空き容量を算出します。この値を監視します。

レンジごとの統計情報（eads_store_stats.csv）は，データ総量監視機能を使用する場合にだけ出力されます。

レンジごとの統計情報（eads_store_stats.csv）については，「11.13.5　レンジごとの統計情報（eads_store_stats.csv）」を参照してください。

データの格納先の空き容量が少なくなった場合は，次の手順で対処してください。

(a)　不要なデータを削除する

不要なデータを削除することで，データの格納先の空き容量を増やします。

(b)　クラスタにEADSサーバを追加する

(a)の手順を実行しても空き容量を確保できない場合は，クラスタにEADSサーバを追加します。クラスタにEADSサーバを追加することで，1EADSサーバに格納するデータの件数を減らすことができます。

EADSサーバをクラスタに追加する手順については，「11.1.1　クラスタを停止させないで，EADSサーバをクラスタに追加する手順（スケールアウト処理・リバランス処理）」または「11.1.2　クラスタを停止してから，EADSサーバをクラスタに追加する手順（メモリ上のキャッシュだけを使用する場合）」を参照してください。

ただし，スケールアウト処理中はデータ総量監視機能が無効となります。このため，十分な空き容量（スケールアウト処理中に増加する件数および容量の約2倍以上）が必要になります。

(2)　空き容量不足で処理がエラーになった場合

空き容量不足で処理がエラーになった場合の対処について説明します。

(a)　EADSサーバに格納できるデータ量の上限に達した個所を確認する

eztool storeusageコマンドを実行して，keyの数およびメモリ使用量から，EADSサーバに格納できるデータ量の上限に達した個所を確認してください。

(b)　クラスタ内の全EADSサーバを終了する（ファイルにデータを書き出す）

ファイルにデータを書き出してからクラスタ内の全EADSサーバを終了します。

手順については，「10.5　EADSサーバを終了する（メモリ上のデータをファイルに書き出す場合）」を参照してください。

(c)　定義内容を変更する

JavaヒープサイズおよびExplicitヒープサイズの再見積もりを実施し，見積もり結果に応じて定義内容を変更します。また，必要に応じて，サーバマシンおよびメモリを追加します。

見積もりについては，次の内容を参照してください。

Javaヒープサイズの見積もり

「4.1.2　Javaヒープサイズを見積もる」

Explicitヒープサイズの見積もり

「4.1.3　Explicitヒープサイズを見積もる」

定義内容を変更する手順については，「11.4　定義内容を変更したい」を参照してください。

(d)　クラスタ内の全EADSサーバを開始する（ファイルからデータを読み込む）

クラスタ内の全EADSサーバを起動したあとに，前回稼働時にファイルに書き出したデータを，再度メモリ上に読み込ませます。

手順については，「10.3　EADSサーバを開始する（ファイルからデータを読み込んでキャッシュを作成する場合）」を参照してください。

11.14.2　データの格納先の空き容量を管理する手順（ディスク上のキャッシュを使用する場合）

この項の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

参考

キャッシュファイルに対するデータ総量監視の有効範囲は，データのコピー元のEADSサーバだけとなります。そのため，データのコピー先のEADSサーバで空き容量不足となった場合は，データのコピー先のEADSサーバが縮退します。キャッシュファイルをコンパクションする際には，EADSサーバごとの空き容量に差が出ないように運用してください。

また，復旧処理中のEADSサーバでは，キャッシュファイルに対するデータ総量監視は無効となります。

ディスクキャッシュ，および2Wayキャッシュを使用する場合に，データの格納先の空き容量を監視する手順，および空き容量を増やす手順について説明します。

(1)　統計情報から空き容量を監視する

レンジごとの統計情報（eads_store_stats.csv）に出力される情報から，データの格納先の空き容量を算出します。この値を監視します。

レンジごとの統計情報（eads_store_stats.csv）は，データ総量監視機能を使用する場合にだけ出力されます。

レンジごとの統計情報（eads_store_stats.csv）については，「11.13.5　レンジごとの統計情報（eads_store_stats.csv）」を参照してください。

データの格納先の空き容量が少なくなった場合は，次の手順で対処してください。

(a)　不要なデータを削除する

不要なデータを削除することで，データの格納先の空き容量を増やします。

(b)　コンパクションを実行する

コンパクションを実行して，キャッシュデータファイルの使用量を削減します。

キャッシュデータファイルをコンパクションする手順については，「10.9.1　キャッシュデータファイルをコンパクションする手順」を参照してください。

(c)　クラスタにEADSサーバを追加する

(a)(b)の手順を実行しても空き容量を確保できない場合は，クラスタにEADSサーバを追加します。クラスタにEADSサーバを追加することで，1EADSサーバに格納するデータの件数を減らすことができます。

EADSサーバをクラスタに追加する手順については，「11.1.3　クラスタを停止してから，EADSサーバをクラスタに追加する手順（ディスク上のキャッシュを使用する場合）」を参照してください。

(2)　空き容量不足で処理がエラーになった場合

空き容量不足で処理がエラーになった場合の対処について説明します。

(a)　EADSサーバに格納できるデータ量の上限に達した個所を確認する

eztool storeusage --cacheコマンドを実行して，keyの数，メモリ使用量，およびキャッシュファイルの使用量から，EADSサーバに格納できるデータ量の上限に達した個所を確認してください。

(b)　クラスタ内の全EADSサーバを終了する

クラスタ内の全EADSサーバを終了します。

手順については，「10.6　EADSサーバを終了する（ディスク上のキャッシュを終了する場合）」を参照してください。

(c)　定義内容を変更する

Javaヒープサイズ，Explicitヒープサイズ，およびキャッシュファイルの容量の再見積もりを実施し，見積もり結果に応じて定義内容を変更します。また，必要に応じて，サーバマシン，メモリおよびディスクを追加します。

見積もりについては，次の内容を参照してください。

Javaヒープサイズの見積もり

「4.1.2　Javaヒープサイズを見積もる」

Explicitヒープサイズの見積もり

「4.1.3　Explicitヒープサイズを見積もる」

キャッシュファイルの容量の見積もり

「4.4　キャッシュファイルの容量を見積もる」

定義内容を変更する手順については，「11.4　定義内容を変更したい」を参照してください。

ディスクキャッシュの格納先として不揮発性メモリを追加する場合の手順については，リリースノートを参照してください。

(d)　クラスタ内の全EADSサーバを開始する（データを再配置する）

クラスタ内の全EADSサーバを起動したあとに，データを再配置します。

手順については，「11.1.3(11)　クラスタ内の全EADSサーバを開始する」〜「11.1.3(15)　閉塞状態が解除できていることを確認する」を参照してください。

11.15　優先度が低いデータを自動的に削除したい（データ自動削除機能の運用）

この節の内容は，データ自動削除機能を使用する場合にお読みください。

データ自動削除機能は，データ総量監視機能が有効な場合に使用できます。

また，メモリキャッシュまたはディスクキャッシュの場合に，データ自動削除機能を使用できます。2Wayキャッシュの場合には使用できません。

11.15.1　優先度が低いデータを自動的に削除する手順

この項の内容は，メモリキャッシュまたはディスクキャッシュを使用する場合にお読みください。

データ自動削除機能を使用して，優先度が低いデータを自動的に削除する手順について説明します。

ポイント

データ自動削除機能を使用する場合は，Javaヒープの容量，およびExplicitヒープの容量について見積もる必要があります。データ自動削除機能を使用する場合の見積もりの方法については，「4.　必要なリソースを確認する」を参照してください。

(1)　データ総量監視機能を有効にする

データ自動削除機能の前提となるデータ総量監視機能を有効にしてください。データ総量監視機能については，「11.14　データの格納先の空き容量を管理したい」を参照してください。

(2)　データの自動削除ポリシーを決める

eads.cache.eviction.policyパラメタで，データの自動削除ポリシーを決めます。データ自動削除機能を使用して，しきい値を超えたデータを削除する場合の動作を指定する必要があります。

eads.cache.eviction.policyパラメタに，次のどちらかを指定してください。

FIFO

データの更新順が古いデータから自動的に削除したい場合に指定します。

LRU

データの更新順または参照順が古いデータから自動的に削除したい場合に指定します。

なお，データの更新順およびデータの参照順は，次の操作が実行されるたびに更新されます（データの更新順およびデータの参照順が新しくなります）。

表11‒6　データの更新順およびデータの参照順が更新される操作一覧

データの自動削除ポリシー

データの更新順およびデータの参照順が更新される操作

API

コマンド

FIFO

データの更新操作

put

putAll

create

update

replace

データの更新操作

eztool putコマンド

LRU

データの更新操作

put

putAll

create

update

replace

データの参照操作

get

getAll

データの更新操作

eztool putコマンド

データの参照操作

eztool getコマンド

注意事項

データの更新順およびデータの参照順の情報は，EADSサーバが起動している間だけ保持されます。EADSサーバを再起動した場合は初期化されます。

注意事項

データを多重化している場合に，eads.cache.eviction.policyパラメタにLRUを指定したときは，データが使用された順番の管理方法がEADSサーバによって異なります。

データの格納先EADSサーバは，データの更新操作およびデータの参照操作の順番で管理します。

データのコピー先EADSサーバは，データの更新操作の順番で管理します。

そのため，障害などが発生し，アクセス先が自動的にデータのコピー先EADSサーバに切り替わった直後は，データの更新操作およびデータの参照操作の順ではなく，データの更新操作の順番が古いデータから削除されます。そのあとは，データの更新操作およびデータの参照操作の順番で管理します。

注意事項

スケールアウト処理またはリバランス処理で格納先のEADSサーバが変更されたデータは，変更前のデータの更新順およびデータの参照順の情報に関係なく，新たに更新されたデータとして管理します。

(3)　データを削除するためのしきい値を決める

eads.cache.eviction.keyCountパラメタで，データを削除するためのしきい値として使用する1レンジ当たりのデータ件数を決めます。

データ自動削除機能の前提となるデータ総量監視機能による1EADSサーバに格納する1レンジ当たりのデータ件数（eads.cache.keyCountパラメタ）は，次の条件を満たすような値を指定する必要があります。

なお，eads.cache.keyCountパラメタの指定値は，「4.1.2(1)(a)　1EADSサーバに格納するデータ件数」を参照して見積もってください。

■条件

eads.cache.keyCountパラメタの指定値 ＞

　　データ自動削除機能を使用するキャッシュの

　　キャッシュ定義のeads.cache.eviction.keyCountパラメタの指定値の総和

(4)　データ自動削除機能で優先度が低いデータを削除する

データ総量監視機能を有効にして，eads.cache.eviction.policyパラメタおよびeads.cache.eviction.keyCountパラメタを指定したら，データ自動削除機能を使用できます。

データ自動削除機能は，API（create，put，putAll）およびeztool putコマンドによって格納される新規データがeads.cache.eviction.keyCountパラメタで指定したしきい値を超えた場合に，eads.cache.eviction.policyパラメタで指定したデータの自動削除ポリシーに従って，しきい値を超えたデータが自動的に削除されます。

データの自動削除は，createおよびputの処理の場合はremoveが使用されます。putAllの処理の場合は削除件数に関係なく，removeAllが使用されます。

注意事項

API（put，putAll）およびeztool putコマンドの場合，新規データを格納するかどうかに関係なく，しきい値を超えるデータは削除されます。そのため，既存のデータを更新する場合には，一時的にデータ件数がしきい値を下回ることがあります。

データの削除に失敗した場合，データの更新操作は実行されません。エラーコードが返却されます。

API（putAll）の場合，データの削除に失敗したキーはデータの更新が実行されません。データの削除に成功したキーはデータの更新が実行されます。

(5)　データ自動削除機能を使用する場合の注意事項

EADSサーバのデータが自動で削除されると問題になる場合は，データ自動削除機能を使用しないでください。

クラスタの停止時のデータの読み込みが不要な場合，EADSサーバを起動したときに，データを読み込まないでキャッシュを再作成する次の運用を推奨します。

eztool closeコマンドで，クラスを閉塞状態にする。

eztool stopコマンドに--no_exportオプションを指定してクラスタを終了する。

ezstartコマンド，またはezserverコマンドでEADSサーバを開始する。

ディスクキャッシュを使用している場合，すべてのディスクキャッシュに対してeztool deleteecfコマンドでキャッシュファイルを削除する。

eztool createcacheコマンドで，使用するすべてのキャッシュを再作成する。

eztool openコマンドで，クラスタの閉塞状態を解除する。

次のコマンドを使用してデータを読み込んだ場合は，データの読み込み順で，データの更新操作およびデータの参照操作の順番が初期化されます。

メモリキャッシュおよびディスクキャッシュを使用している場合

ezstart -rコマンド（復旧したEADSサーバだけが対象となります）

ezserver -rコマンド（復旧したEADSサーバだけが対象となります）

メモリキャッシュを使用している場合

eztool importコマンド

ディスクキャッシュを使用している場合

eztool resumeコマンド

eztool importecfコマンド

メモリキャッシュでデータの読み込みを行う場合の注意点を次に示します。

eztool importコマンドでストアデータファイルからデータを読み込んだ場合に，しきい値として指定したレンジのデータ件数を超えるレンジからは，それ以上データの読み込みを行いません。しきい値として指定したデータ件数を超えるレンジのデータが格納されていた場合，コマンドのリターンコードに10が返却されます。また，すべてのデータを読み込む場合は，レンジに格納されたデータ件数以上の値をしきい値に指定する必要があります。

eztool importコマンドで，eztool exportコマンドに-sまたは--singleオプションを指定して出力したストアデータファイルは読み込まないで，eztool createcacheコマンドでキャッシュを再作成し，必要に応じてデータを再投入することを推奨します。eztool exportコマンドに-sまたは--singleオプションを指定して出力したストアデータファイルを読み込む場合は，データ自動削除機能のしきい値（eads.cache.eviction.keyCountパラメタの指定値）をストアデータファイル出力時に設定してあったしきい値よりも小さい値に変更しないでください。

ディスクキャッシュでデータの読み込みを行う場合の注意点を次に示します。

eztool importecfコマンドで永続データを再配置する場合，しきい値として指定したレンジのデータ件数を超えるレンジからは，それ以上データの読み込みを行いません。しきい値として指定したデータ件数を超えるレンジのデータが格納されていた場合，コマンドのリターンコードに10が返却されます。また，すべてのデータを読み込む場合は，レンジに格納されたデータ件数以上の値をしきい値に指定する必要があります。

eztool importecfコマンドで，キャッシュデータファイルおよびキャッシュインデックスファイルが破損していたり，障害時のファイルだったりした場合は読み込まないでeztool createcacheコマンドでキャッシュを再作成し，必要に応じてデータを再投入することを推奨します。また，読み込み対象のファイルが破損していたり，障害時のファイルだったりした場合に読み込むときは，データ自動削除機能のしきい値（eads.cache.eviction.keyCountパラメタの指定値）をキャッシュ使用時に設定してあったしきい値よりも小さい値に変更しないでください。

ディスクキャッシュを使用する場合，データ自動削除機能を使用するときでも，APIでkeyを削除するときと同様に，コンパクションを実行するまでキャッシュデータファイルの空き容量は増加しません。そのため，空き容量が不足した場合は，API（create，put，putAll）がデータ総量監視機能のキャッシュファイルの空き容量不足でエラーとなります。

API（create，put，putAll）がデータ総量監視機能の登録済みキー数の上限でエラーとなった場合は，次のパラメタの指定値を見直してください。

eads.cache.keyCountパラメタ

eads.cache.eviction.keyCountパラメタ

API（create，put，putAll）がデータ総量監視機能によるvalueの格納先であるExplicitヒープの空き容量不足でエラーとなった場合は，valueのサイズが容量見積もり時より大きくなっていないかを見直してください。または，見積もり結果が過少でないかについても確認してください。

API（create，put，putAll）がデータ総量監視機能のキャッシュファイルの空き容量不足（ディスクキャッシュ使用時）でエラーとなった場合は，レコード1件分のサイズが容量見積もり時より大きくなっていないかを見直してください。または，見積もり結果が過少でないか，コンパクションで空き容量を確保できているかについても確認してください。

スケールアウト処理およびリバランス処理を実行したときに別レンジへ移動したデータは，移動元レンジでの更新順および参照順は無視され，最新データとして再配置されます。

リバランス処理を実行している間，データ自動削除機能を使用しているキャッシュでは，指定したデータの自動削除ポリシーに加えて，次に示すデータの自動削除ポリシーにも従います。そのため，次に示すデータの自動削除ポリシーが適用された場合に問題となる用途では，リバランス処理を実行しないでください。

■リバランス処理を実行中に適用されるデータの自動削除ポリシー

結合先のレンジで格納できるデータの空き（キー数および容量）が少ない場合，結合元のレンジ（移動するレンジ）に格納されたデータは，キー数がしきい値以下であっても，結合先のレンジで格納できるデータの空きに収まるまで一部または全部削除されます。また，通信タイミングによって，最も古いデータではなく，最も新しいデータが削除されることがあります。

リバランス処理を実行している間，結合元のレンジ（移動するレンジ）に格納されたデータに対するAPI（create，put，putAll）は，次に示す一時的なエラーを返却することがあります。

なお，API（create，put）の場合は，EADSクライアント（JavaとC）およびユーザファンクションが該当します。API（putAll）の場合は，EADSクライアント（JavaとC）が該当します。

■EADSサーバの位置変更開始時点での結合先のレンジに格納できるデータの空き（キー数）がない場合

EADSクライアント（Java）とユーザファンクションのとき

CacheException.EAD_ERROR_SERVER_LIMIT_KV_COUNT_TEMPORARILY

EADSクライアント（C）のとき

EAD_ERROR_SERVER_LIMIT_KV_COUNT_TEMPORARILY

■EADSサーバの位置変更開始時点での結合先のレンジに格納できるデータの空き（容量）が少ない場合

EADSクライアント（Java）とユーザファンクションのとき

CacheException.EAD_ERROR_SERVER_LIMIT_EXTERNAL_MEMORY_TEMPORARILY

EADSクライアント（C）のとき

EAD_ERROR_SERVER_LIMIT_EXTERNAL_MEMORY_TEMPORARILY

11.16　キャッシュファイルを管理したい

この節の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

定義を誤った状態でキャッシュを作成してしまったときなどに，不要なキャッシュファイルを削除します。

11.16.1　キャッシュファイルの確認および削除手順

キャッシュファイルの確認および削除手順について説明します。

(1)　キャッシュファイルが存在するキャッシュを確認する

eztool listecf -vコマンドを実行して，キャッシュファイルが存在するキャッシュを確認します。

eztool listecf -v

コマンド実行例

キャッシュのキャッシュ情報ファイルが存在する場合は，ExCI欄にtrueが表示されます。

キャッシュのキャッシュデータファイルが存在する場合は，ExCD欄にtrueが表示されます。

(2)　不要なキャッシュファイルを削除する

eztool deleteecfコマンドを実行して，クラスタ内の不要なキャッシュファイルを削除します。

eztool deleteecf ＜キャッシュ名＞

コマンド実行例

12　障害運用

この章では，障害発生時にシステム運用管理者が行うことについて説明します。

12.1　障害に備えた運用（障害監視と障害検知）

JP1などのシステム運用管理ソフトウェアを使用して，EADSが出力するメッセージやEADSサーバプロセスを監視することで，システム運用管理者に障害の発生やEADSサーバプロセスの状態を通知することができます。

12.1.1　メッセージの監視

メッセージの監視を行い，障害の発生をシステム運用管理者に通知します。

メッセージを監視する場合は，次のログを監視します。

監視対象

出力先

ローテーション方式

ログファイル名

形式

改行コード

プロセス

ログ

EADSサーバ

メッセージログ

サーバ定義のeads.logger.dirパラメタに指定したディレクトリ

Wrap（デフォルト）

eads_server_message[n].log

ラップアラウンドファイル※1

CR＋LF

Shift

eads_server_message.log

コマンド

コマンド定義のeads.command.logger.dirパラメタに指定したディレクトリ

Wrap（デフォルト）

eads_command_message[n].log

Shift

eads_command_message.log

EADSクライアント

＜クライアント定義のeads.client.logger.dirパラメタに指定したディレクトリ＞/＜EADSクライアント名※2＞

Wrap

eads_client_message[n].log

（凡例）

[n]：ファイル数の通番です。

Wrap：ラップアラウンド方式

Shift：シフト方式

注※1

ラップアラウンド時，データを削除して再び先頭からデータを書き込む形式のファイルです。

注※2

クライアントAPIで指定したEADSクライアント名です。EADSクライアント名が空文字列の場合，EADSクライアント名のサブディレクトリを省略して出力します。

12.1.2　EADSサーバプロセスの監視

EADSサーバプロセスの監視を行い，プロセスの状態や障害の発生をシステム運用管理者に通知します。

EADSサーバプロセスを監視する場合は，EADSサーバプロセスごとに，定期的にeztool status -sコマンドを実行し，リターンコードからEADSサーバの状態を確認します。

eztool status -sコマンドのリターンコードについては，「14.3.4(6)　リターンコード」を参照してください。

12.2　障害発生時のシステム運用管理者の作業

障害が発生した場合，システム運用管理者はエラーメッセージの内容を確認し，障害情報を取得してください。ここでは，障害発生時のシステム運用管理者の作業を障害別に説明します。

12.2.1　縮退状態が発生した場合

障害によって縮退状態が発生した場合の復旧までの流れを次の図に示します。

図12‒1　障害によって縮退状態が発生した場合の復旧までの流れ

注意事項

次の場合，ここで説明する手順では復旧できません。

クラスタの状態が，クラスタ動作不能（NOT_AVAILABLE）またはクラスタ一部稼働中（PARTIALLY_AVAILABLE）の場合

なお，クラスタの状態がAVAILABLEでも，半数以上のEADSサーバが縮退している場合は，クラスタ動作不能（NOT_AVAILABLE）の場合と同様の対処が必要です。

オンライン性能の劣化が許容できない場合

復旧するEADSサーバが，クラスタ定義に定義されていない場合

EADSサーバダウン時のクラスタ定義と，復旧時のクラスタ定義が異なる場合

クラスタの状態が，クラスタ動作不能（NOT_AVAILABLE）またはクラスタ一部稼働中（PARTIALLY_AVAILABLE）の場合の復旧手順は，「12.2.2　クラスタ動作不能（NOT_AVAILABLE）またはクラスタ一部稼働中（PARTIALLY_AVAILABLE）の場合」を参照してください。

システム運用管理者が行う各作業について説明します。

(1)　縮退状態または停止状態のEADSサーバを確認する

eztool statusコマンドで，縮退状態または停止状態のEADSサーバを確認します。

コマンド実行例

この例の場合，State欄にisolatedと表示されているEADSサーバが縮退状態になっています。このEADSサーバを停止する必要があります。

なお，この例の場合，停止状態のEADSサーバはありません。停止状態のEADSサーバがある場合は，State欄に-----------と表示されます。

(2)　縮退状態のEADSサーバを停止する

縮退状態のEADSサーバがある場合，eztool isolate --stopコマンドで，縮退状態のEADSサーバを停止します。

縮退状態のEADSサーバがない場合は実行する必要はありません。

注意事項

eztool isolate --stopコマンドは，縮退状態のEADSサーバで実行してください。

(3)　エラーメッセージを確認する

(2)で停止したEADSサーバのメッセージログに出力されているエラーメッセージを確認します。

(4)　障害情報を取得する

障害の原因調査の際に次に示す情報が必要になります。全EADSサーバで次に示す情報を取得してください。

サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイル

＜運用ディレクトリ＞/conf下の全定義ファイル

スレッドダンプ

なお，eztool snapshotコマンドを使用すると，ログと設定ファイルを一括して収集できます。

障害情報の取得方法については，「12.3　障害情報の取得方法」を参照してください。

縮退状態になった時刻を調べる方法

縮退状態になったEADSサーバのメッセージログに出力されているKDEA04783-IまたはKDEA04799-Eメッセージを参照してください。このメッセージが出力された時刻が縮退状態になった時刻です。

メッセージの出力例（KDEA04783-I）

この例では，2015年04月03日の11時59分25秒にEADSサーバIDが1であるEADSサーバが縮退状態になっています。

メッセージの出力例（KDEA04799-E）

この例では，2015年04月21日の11時55分46秒にEADSサーバIDが3であるEADSサーバが縮退状態になっています。

(5)　停止したEADSサーバを復旧する

障害対策後，次のどちらかのコマンドで，停止したEADSサーバを復旧します。

ezstart -rコマンド

ezserver -rコマンド

復旧処理では，データの整合性を回復するために，稼働中のEADSサーバが復旧対象のEADSサーバにデータを送信します。

そのため，次の点に留意してください。

EADSサーバが復旧するまでに，少なくともデータ取得分の時間が掛かります。

データ送信元のEADSサーバでは，データを送信する分，CPUのリソースやネットワークの帯域を使用するといった影響があります。

データ操作と復旧処理が重なってEADSサーバ内の処理が追いつかなくなった場合は，メモリが枯渇しないように，データ操作を待たせることがあります。

ポイント

ディスクキャッシュ，および2Wayキャッシュを使用している場合は，次のどちらかの方法でEADSサーバを復旧してください。

復旧方法

復旧の手順

復旧時の動作

適用基準

キャッシュファイルを使用して復旧する

停止したEADSサーバのキャッシュファイルを削除しないで，ezstart -rコマンド，またはezserver -rコマンドで停止したEADSサーバを復旧します。

キャッシュファイルからデータを読み込んだあと，稼働中のEADSサーバとの間でデータの過不足を補うことで，復旧します。

データの更新頻度や削除頻度が低いキャッシュで，キャッシュファイルに有効なデータが多く残っている場合，キャッシュファイルを使用しないときに比べて，復旧に掛かる時間を短縮できる可能性があります。

キャッシュファイルを使用しないで復旧する

停止したEADSサーバを指定してeztool deleteecf -lコマンドを実行し，該当するキャッシュのキャッシュデータファイルを削除します。

そのあとで，ezstart -rコマンド，またはezserver -rコマンドを実行して，停止したEADSサーバを復旧します。

復旧に失敗した場合は，上記の手順を実行し直してください。

稼働中のEADSサーバからすべてのデータを取得することで，復旧します。

データの更新頻度や削除頻度が高いキャッシュで，キャッシュファイルに無効なデータが多く残っている場合，キャッシュファイルを使用するときに比べて，復旧に掛かる時間を短縮できる可能性があります。

データの復旧中にキャッシュデータファイルの容量不足が発生した場合，内部的にコンパクションが実行されます。その結果，容量不足が解消されると，復旧処理が継続されます。

容量不足が解消されないときは，「11.4.1　定義内容を変更する手順」に従って，キャッシュ定義のeads.cache.disk.filenumパラメタの指定値を大きくしてください。

なお，次のような理由で復旧に失敗したときは，問題のあるファイルが存在するキャッシュのキャッシュファイルを削除してから，ezstart -rコマンド，またはezserver -rコマンドを実行して，停止したEADSサーバを復旧してください。

キャッシュファイルが破損している。

Javaヒープあふれが発生した。

内部的に実行するコンパクションが失敗した。

(6)　再起動したEADSサーバがクラスタに参加していることを確認する

eztool statusコマンドで，再起動したEADSサーバがクラスタに復帰していることを確認します。

コマンド実行例

クラスタに参加している場合，Cluster欄にonlineが表示されます。

ほかにも縮退状態または停止状態のEADSサーバがあれば，「12.2.1(1)　縮退状態または停止状態のEADSサーバを確認する」から再実行してください。

12.2.2　クラスタ動作不能（NOT_AVAILABLE）またはクラスタ一部稼働中（PARTIALLY_AVAILABLE）の場合

クラスタ動作不能（NOT_AVAILABLE）またはクラスタ一部稼働中（PARTIALLY_AVAILABLE）の場合の復旧までの流れについて説明します。

注意事項

EADSの合意処理では，クラスタ内で過半数の合意を得る必要があるため，クラスタ動作不能（NOT_AVAILABLE）またはクラスタ一部稼働中（PARTIALLY_AVAILABLE）になると，一部の機能が停止します。一部の機能が停止することに伴って，クラスタ動作不能またはクラスタ一部稼働中になった直後に，次のような現象が起きることがあります。

予期しない例外のメッセージがログファイルに出力される。

実行していたコマンドが実行中のままになる。

ただし，これらの現象が起きても，データが破壊されることはありません。

後述する手順で，データを復旧できます。

(1)　メモリ上のキャッシュだけを使用しているとき

メモリキャッシュを使用している場合に，クラスタ動作不能（NOT_AVAILABLE）またはクラスタ一部稼働中（PARTIALLY_AVAILABLE）となったときの復旧までの流れを次の図に示します。

図12‒2　クラスタ動作不能（NOT_AVAILABLE）またはクラスタ一部稼働中（PARTIALLY_AVAILABLE）となったときの復旧までの流れ（メモリ上のキャッシュだけを使用している場合）

システム運用管理者が行う各作業について説明します。

(a)　縮退状態または停止状態のEADSサーバを確認する

縮退状態または停止状態のEADSサーバを確認します。

手順については，「12.2.1(1)　縮退状態または停止状態のEADSサーバを確認する」を参照してください。

(b)　メモリ上のデータをファイルに書き出す

eztool export -sコマンドで，メモリ上のデータを個別に書き出します。このコマンドはEADSサーバごとに実行する必要があります。

eztool export -s

注意事項

レンジが動作不能になる直前に受信したリクエストについては，合意できている保証がありません。そのため，書き出したデータが不整合になっているおそれがありますので，注意してください。

(c)　稼働中および縮退状態のEADSサーバを強制終了する

eztool forcestopコマンドで，稼働中および縮退状態のEADSサーバを強制終了します。

すべてのEADSサーバが停止状態の場合は，実行する必要はありません。

eztool forcestopコマンドは，稼働中および縮退状態のEADSサーバで実行してください。

eztool forcestop

(d)　エラーメッセージを確認する

(a)で確認したEADSサーバのメッセージログに出力されているエラーメッセージを確認します。

(e)　障害情報を取得する

全EADSサーバで障害情報を取得します。

手順については，「12.2.1(4)　障害情報を取得する」を参照してください。

(f)　クラスタ内の全EADSサーバを開始する（ファイルからデータを読み込む）

障害対策後，クラスタ内の全EADSサーバを起動して，(a)でファイルに書き出したデータを再度メモリ上に読み込ませます。

手順については，「10.3　EADSサーバを開始する（ファイルからデータを読み込んでキャッシュを作成する場合）」を参照してください。

(2)　ディスク上のキャッシュを使用しているとき

ディスク上のキャッシュを使用している場合に，クラスタ動作不能（NOT_AVAILABLE）またはクラスタ一部稼働中（PARTIALLY_AVAILABLE）となったときの復旧までの流れを次の図に示します。

図12‒3　クラスタ動作不能（NOT_AVAILABLE）またはクラスタ一部稼働中（PARTIALLY_AVAILABLE）となったときの復旧までの流れ（ディスク上のキャッシュを使用している場合）

システム運用管理者が行う各作業について説明します。

(a)　縮退状態または停止状態のEADSサーバを確認する

縮退状態または停止状態のEADSサーバを確認します。

手順については，「12.2.1(1)　縮退状態または停止状態のEADSサーバを確認する」を参照してください。

(b)　キャッシュデータファイルをコンパクションする

eztool compactionコマンドで，キャッシュデータファイルをコンパクションします。このコマンドはEADSサーバごとに実行する必要があります。

eztool compaction

(c)　稼働中および縮退状態のEADSサーバを強制終了する

eztool forcestopコマンドで，稼働中および縮退状態のEADSサーバを強制終了します。

すべてのEADSサーバが停止状態の場合は，実行する必要はありません。

eztool forcestopコマンドは，稼働中および縮退状態のEADSサーバで実行してください。

eztool forcestop

(d)　エラーメッセージを確認する

(a)で確認したEADSサーバのメッセージログに出力されているエラーメッセージを確認します。

(e)　障害情報を取得する

全EADSサーバで障害情報を取得します。

手順については，「12.2.1(4)　障害情報を取得する」を参照してください。

(f)　クラスタ内の全EADSサーバを開始する（ディスク上のキャッシュを再開する）

障害対策後，クラスタ内の全EADSサーバを起動して，ディスク上のキャッシュを再開します。

手順については，「10.3.2　EADSサーバを開始する手順（ディスク上のキャッシュを再開する）」を参照してください。

参考

キャッシュファイルの破損が原因でキャッシュの再開に失敗する場合は，キャッシュファイルが破損しているEADSサーバの数を確認してください。

キャッシュファイルが破損しているEADSサーバの数が，データの多重度より少ないとき

ファイルが破損したEADSサーバに対してeztool deleteecf -lコマンドを実行し，破損したファイルが存在するキャッシュのキャッシュファイルをすべて削除してください。そのあとで，再度eztool resumeコマンドを実行してください。

キャッシュファイルが破損しているEADSサーバの数が，データの多重度以上のとき

EADSサーバを復旧できません。

12.2.3　レスポンス低下の報告があった場合

業務APの管理者からレスポンス低下の報告があった場合，またはレスポンスの低下によってAPの処理がタイムアウトした場合，原因調査のためにEADSサーバとEADSクライアントで障害情報を取得してください。

(1)　EADSサーバで取得する障害情報

全EADSサーバで次に示す情報を取得してください。

統計情報

スレッドダンプ

サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイル

＜運用ディレクトリ＞/conf下の全定義ファイル

障害情報の取得方法については，「12.3　障害情報の取得方法」を参照してください。

(2)　EADSクライアントで取得する障害情報

全EADSクライアントで次に示す情報を取得してください。

クライアント定義のeads.client.logger.dirパラメタに指定したディレクトリ下の全ファイル

クライアント定義ファイル

(3)　業務APの管理者に確認すること

業務APの管理者に次に示すことを確認してください。

レスポンスが低下する時間帯に規則性があるか。

レスポンスが低下するEADSクライアントが決まっているか。

レスポンスが低下する操作に規則性があるか。

12.3　障害情報の取得方法

ここでは，原因調査に必要な障害情報と，その取得方法について説明します。

12.3.1　原因調査に必要な障害情報

障害の原因調査には，次に示す障害情報が必要になります。障害が発生した場合，システム運用管理者はこれらの障害情報を取得してください。

なお，eztool snapshotコマンドを使用すると，ログと設定ファイルを一括して収集することができます。

メッセージログ

メッセージログファイルには，動作確認やエラー監視用のメッセージログが出力されます。

統計情報

統計情報ファイルには，チューニングの見直し，性能測定，リソース見積もりなどに使用する統計情報が出力されます。

スレッドダンプ

スレッドダンプには，Javaプロセス内で動作しているスレッドの情報が出力されます。

必要に応じて取得してください。

コアダンプ

EADSサーバがダウンした場合，運用ディレクトリ直下にコアダンプが出力されます。ファイル名は「core.[PID]」※です。

なお，EADSサーバによって出力されるコアダンプは上限値が設定されていないため，ディスクの空き容量に注意してください。

注※

　[PID]：EADSサーバのプロセスID

また，次に示す障害発生時の定義ファイルも取得してください。

＜運用ディレクトリ＞/conf下の全定義ファイル

12.3.2　統計情報の取得方法

統計情報の取得方法については，「11.13　統計情報を取得したい」を参照してください。

12.3.3　スレッドダンプの取得方法

eztool threaddumpコマンドでスレッドダンプを取得してください。

コマンド実行例

eztool threaddump

スレッドダンプはサーバ定義のeads.logger.dirパラメタに指定したディレクトリ下に出力されます。

サーバ定義のeads.logger.dirパラメタを指定していない場合は，＜運用ディレクトリ＞/logs下に出力されます。

13　障害原因の調査

この章では，障害原因（原因元の切り分け）の調査方法について説明します。

13.1　レスポンス低下の原因調査

ここでは，レスポンス低下の原因を調査する方法について説明します。

13.1.1　原因調査の流れ

レスポンスの低下，およびレスポンスの低下によるAPのタイムアウトの原因調査の流れを次の図に示します。

図13‒1　レスポンスの低下，およびレスポンスの低下によるAPのタイムアウトの原因調査の流れ

発生した現象の例

レスポンス低下の報告があった。

レスポンスの低下によってAPの処理がタイムアウトした。

考えられる主な原因

特定のEADSサーバにアクセスが集中している。

格納データのサイズなどが適切でない。

EADS以外のプロセスが重い処理を実行している。

リクエストが集中または増加している。

統計情報を使用した調査の観点

EADSサーバ，ユーザファンクション，ネットワークのどれが要因か。

ユーザファンクションの内部処理時間の平均値とユーザファンクションのユーザプログラムの処理時間の平均値から，レスポンス低下の要因を切り分けます。

調査に必要な障害情報

全EADSサーバの統計情報

統計情報の取得方法については，「11.13　統計情報を取得したい」を参照してください。

13.1.2　原因の調査方法

統計情報を使用した性能の確認方法について説明します。

(1)　APの性能を確認する

統計情報を使用してAPの性能を確認する手順を次の図に示します。また，詳細の手順を以降に示します。

図13‒2　APの性能を確認する手順

(a)　平均性能の傾向を確認する

次の表に示す統計情報の項目から，平均性能の傾向を確認します。

統計情報の種類

項目

列名称

統計情報

（eads_stats.csv）

リクエスト処理時間の平均値

RequestProcessingAverageTime

(b)　性能劣化の要因を切り分ける

次の表に示す統計情報の項目を確認して，性能劣化の要因を切り分けます。

統計情報の種類

項目

列名称

統計情報

（eads_stats.csv）

内部処理時間の平均値

InternalProcessingAverageTime

(c)　性能劣化の要因を分析する

それぞれの要因に応じて，性能劣化の要因を分析します。

EADSサーバが要因の場合

EADSサーバが要因と考えられる場合は，次のことを確認してください。

次の表に示す統計情報の項目を確認し，EADSサーバに対するアクセスが集中していないか確認してください。

統計情報の種類

項目

列名称

統計情報

（eads_stats.csv）

リクエスト受付数（put，create，update，replace，get，remove）

RequestCount

JavaログからGCが発生していないか確認してください。

ノンブロッキングI/O通信制御を使用している場合，次の表に示す統計情報の項目を確認し，EADSサーバに対するアクセスが集中していないか確認してください。または，問題があった項目の関連パラメタが適切な指定値になっているか確認してください。

統計情報の種類

項目

列名称

ノンブロッキングI/O通信制御の統計情報

（eads_nonblocking_stats.csv）

リクエスト処理スレッドでの実行を待っているリクエスト数

WaitingRequests

リクエスト処理スレッドで実行しているリクエスト数

ProcessingRequests

滞留中I/Oデータ流量制御による退避中リクエスト数

EvacuatingRequestsByStayingDataFlow

キャッシュ操作同時実行制御退避中リクエスト数

EvacuatingRequestsByCacheConcurrency

OSの情報（CPUの利用率やメモリの使用量など）を確認してください。

ネットワークが要因の場合

ネットワークが要因と考えられる場合は，次のことを確認してください。

次の表に示す統計情報の項目を確認し，通信量を確認してください。

統計情報の種類

項目

列名称

統計情報

（eads_stats.csv）

EADSクライアント・EADSサーバ間の受信データの最大サイズ

CSReadMaxSize

EADSクライアント・EADSサーバ間の受信データの合計サイズ

CSReadTotalSize

EADSクライアント・EADSサーバ間の送信データの最大サイズ

CSWriteMaxSize

EADSクライアント・EADSサーバ間の送信データの合計サイズ

CSWriteTotalSize

EADSサーバ間の受信データの最大サイズ

SSReadMaxSize

EADSサーバ間の受信データの合計サイズ

SSReadTotalSize

EADSサーバ間の送信データの最大サイズ

SSWriteMaxSize

EADSサーバ間の送信データの合計サイズ

SSWriteTotalSize

ネットワークの状態を確認してください。

(2)　ユーザファンクションの性能を確認する

統計情報を使用してユーザファンクションの性能を確認する手順を次の図に示します。また，詳細の手順を以降に示します。

図13‒3　ユーザファンクションの性能を確認する手順

(a)　平均性能の傾向を確認する

次の表に示す統計情報の項目から，平均性能の傾向を確認します。

統計情報の種類

項目

列名称

ユーザファンクションの統計情報

（eads_function_stats.csv）

ユーザファンクション実行時間の平均値

FunctionExecuteAverageTime

(b)　性能劣化の要因を切り分ける

次の表に示す統計情報の項目を比較して，性能劣化の要因を切り分けます。

統計情報の種類

項目

列名称

ユーザファンクションの統計情報

（eads_function_stats.csv）

ユーザファンクションの内部処理時間の平均値

FunctionInternalProcessingAverageTime

ユーザファンクションのユーザプログラムの処理時間の平均値

UserProgramProcessingAverageTime

(c)　性能劣化の要因を分析する

それぞれの要因に応じて，性能劣化の要因を分析します。

EADSサーバが要因の場合

EADSサーバが要因と考えられる場合は，次のことを確認してください。

次の表に示す統計情報の項目を確認し，EADSサーバに対するアクセスが集中していないか確認してください。

統計情報の種類

項目

列名称

ユーザファンクションの統計情報

（eads_function_stats.csv）

ユーザファンクションの実行回数

FunctionExecuteCount

JavaログからGCが発生していないか確認してください。

ノンブロッキングI/O通信制御を使用している場合，次の表に示す統計情報の項目を確認し，EADSサーバに対するアクセスが集中していないか確認してください。または，問題があった項目の関連パラメタが適切な指定値になっているか確認してください。

統計情報の種類

項目

列名称

ノンブロッキングI/O通信制御の統計情報

（eads_nonblocking_stats.csv）

リクエスト処理スレッドでの実行を待っているリクエスト数

WaitingRequests

リクエスト処理スレッドで実行しているリクエスト数

ProcessingRequests

滞留中I/Oデータ流量制御による退避中リクエスト数

EvacuatingRequestsByStayingDataFlow

ファンクション同時実行数制御およびユーザファンクション単位ファンクション同時実行数制御による退避中リクエスト数

EvacuatingRequestsByFunctionConcurrency

OSの情報（CPUの利用率やメモリの使用量など）を確認してください。

ユーザファンクションのユーザプログラムが要因の場合

ユーザファンクションのユーザプログラムが要因と考えられる場合は，各ユーザファンクションの統計情報を確認し，要因となっているユーザファンクションを特定してください。

ネットワークが要因の場合

ネットワークが要因と考えられる場合は，次のことを確認してください。

次の表に示す統計情報の項目を確認し，通信量を確認してください。

統計情報の種類

項目

列名称

統計情報

（eads_stats.csv）

EADSクライアント・EADSサーバ間の受信データの最大サイズ

CSReadMaxSize

EADSクライアント・EADSサーバ間の受信データの合計サイズ

CSReadTotalSize

EADSクライアント・EADSサーバ間の送信データの最大サイズ

CSWriteMaxSize

EADSクライアント・EADSサーバ間の送信データの合計サイズ

CSWriteTotalSize

EADSサーバ間の受信データの最大サイズ

SSReadMaxSize

EADSサーバ間の受信データの合計サイズ

SSReadTotalSize

EADSサーバ間の送信データの最大サイズ

SSWriteMaxSize

EADSサーバ間の送信データの合計サイズ

SSWriteTotalSize

ネットワークの状態を確認してください。

14　コマンドリファレンス

この章では，EADSのコマンドの文法について説明します。

14.1　コマンドの格納先

EADSで使用するコマンドは，次のディレクトリに格納されています。

＜運用ディレクトリ＞/bin

参考

コマンドの実行を簡略化したい場合，運用ディレクトリのシンボリックリンクを作成することで，リンク側でコマンドを実行できます。

14.2　EADSのコマンド

EADSのコマンドの一覧を次の表に示します。

表14‒1　EADSのコマンド一覧

項番

利用シーン

コマンド名

実行対象

1

開始

EADSサーバを開始する

ezstart

EADSサーバ

2

EADSサーバをフォアグラウンドで開始する

ezserver

EADSサーバ

3

運用操作

運用操作を行う

eztool

クラスタ

または

EADSサーバ

参考

このマニュアルでは，コマンドのオプション指定について，オプションが1文字の場合はハイフンを1つ（-），2文字以上の場合はハイフンを2つ（--）で記載していますが，ハイフンは1つでも2つでも指定できます。例えば，-hまたは--helpオプションは，「-h」，「--h」，「-help」または「--help」のどれでも指定できます。

14.2.1　ezstart（EADSサーバの開始）

(1)　機能

EADSサーバをバックグラウンドで開始します。

(2)　規則

このコマンドはEADSサーバが停止状態のときに実行できます。

このコマンドはEADSサーバを開始するホストにログインして実行します。クラスタ内の全EADSサーバを開始する場合は，このコマンドをEADSサーバごとに実行する必要があります。

コマンド実行時に出力されるメッセージログは，コンソールには出力されません。＜運用ディレクトリ＞/logs下のeads_start.logに出力されます。

(3)　形式

ezstart ［-h］
        ［-r|-ai ＜EADSサーバID＞|-ap ＜EADSサーバの位置（ハッシュ値）＞］
        ［-rd ＜ポート番号＞ ＜suspend方式＞］

(4)　オプションおよび引数

(a)　-hまたは--help

コマンドの使用方法を表示したい場合に指定します。

このオプションを指定した場合，その他のオプションを指定しても無視されます。

(b)　-rまたは--recovery

停止状態のEADSサーバをクラスタに復旧させて，クラスタへの参加状況をonlineにしたい場合に指定します。

(c)　-aiまたは--add_id ＜EADSサーバID＞

既存のクラスタ構成にない新しいEADSサーバを，クラスタの特定のレンジに追加したいときに指定します。このオプションには，新しいEADSサーバを追加したいレンジを担当するEADSサーバのEADSサーバIDを指定します。

EADSサーバIDには，1〜96の整数が指定できます。

新しいEADSサーバは，コンシステント・ハッシングの円周上で，新しいEADSサーバと隣接している2つのEADSサーバの位置（ハッシュ値）の中間に追加されます。また，新しいEADSサーバのEADSサーバIDには，1〜96の整数のうち，既存のEADSサーバに割り当てられていない最小の値が割り当てられます。

クラスタに存在しないEADSサーバのEADSサーバIDを指定した場合は，エラーになります。また，このオプションを指定してコマンドを実行した際に，クラスタに縮退状態（isolated）または停止状態（-----------）のEADSサーバが存在する場合は，エラーになります。

(d)　-apまたは--add_position ＜EADSサーバの位置（ハッシュ値）＞

既存のクラスタ構成にない新しいEADSサーバを，クラスタの特定の位置（ハッシュ値）に追加したいときに指定します。このオプションには，新しいEADSサーバを追加したい位置（ハッシュ値）を指定します。

位置（ハッシュ値）には，-2147483648〜2147483647の整数が指定できます。

追加するEADSサーバのEADSサーバIDには，1〜96の整数のうち，既存のEADSサーバに割り当てられていない最小の値が割り当てられます。

既存のEADSサーバと同じ位置（ハッシュ値）を指定した場合は，エラーになります。また，このオプションを指定してコマンドを実行した際に，クラスタに縮退状態（isolated）または停止状態（-----------）のEADSサーバが存在する場合は，エラーになります。

(e)　-rdまたは--remotedebug ＜ポート番号＞ ＜suspend方式＞

ユーザファンクションをデバッガアプリケーションでリモートデバッグするためのオプションです。本番環境では使用しないでください。

次に示すjavaオプションを指定して，EADSサーバを起動したい場合に指定します。

-agentlib:jdwp=transport=dt_socket,server=y,suspend=＜suspend方式＞,address=＜ポート番号＞

ポート番号（EADSサーバがデバッガアプリケーションに接続するためのポート番号）には，1024〜65535の整数が指定できます。

デバッガアプリケーションの接続を待ってからEADSサーバを起動する場合は，suspend方式にyを指定します。デバッガアプリケーションの接続を待たないでEADSサーバを起動する場合は，suspend方式にnを指定します。

(5)　リターンコード

0：正常終了

0以外：エラー

(6)　注意事項

このコマンドを実行するには，環境変数PATHに/binおよび/usr/binが設定されている必要があります。

このコマンドを複数同時に実行した場合，eads_start.logは後から実行したプロセスで上書きされます。

クラスタを構成するEADSサーバ数が多い場合，EADSサーバを同時に起動すると，処理に時間が掛かり，タイムアウトして起動に失敗することがあります。このような場合は，間隔を空けながらEADSサーバを起動してください。または，サーバ定義のeads.admin.boot.timeoutパラメタの指定値を調整してください。

-aiまたは--add_idオプション，-apまたは--add_positionオプションを指定する場合，追加するEADSサーバのクラスタ定義ファイルは不要です。追加するEADSサーバにクラスタ定義ファイルがあっても読み込まれません。このため，追加するEADSサーバに不正な内容のクラスタ定義ファイルがあっても，エラーになりません。

-aiまたは--add_idオプション，-apまたは--add_positionオプションの指定時に，EADSサーバの追加でエラーが発生したときは，eztool statusコマンドを実行してEADSサーバが追加されているかを確認してください。

EADSサーバが追加されていない場合は，再度EADSサーバを追加してください。

追加されたEADSサーバが縮退またはプロセスダウンした場合は，EADSサーバを復旧させてください。

EADSサーバの復旧処理でエラーが発生した場合は，復旧に失敗したEADSサーバのクラスタ定義ファイルに，EADSサーバの追加後のクラスタ構成情報が反映されていない可能性があります。復旧に失敗したEADSサーバのクラスタ定義ファイルが，ほかのEADSサーバのクラスタ定義ファイルと同じかどうかを確認してください。クラスタ定義ファイルが，ほかのEADSサーバのクラスタ定義ファイルと異なる場合は，復旧に失敗したEADSサーバに，正常に稼働しているEADSサーバのクラスタ定義ファイルをコピーしてから，復旧処理を再度実行してください。

スケールアウト処理の終了直前のリクエストの応答は，一時的に時間が掛かることがあります。EADSサーバからの応答に対してEADSクライアントを長時間待機させるのではなく，EADSサーバからエラーを返却させ，EADSクライアントでそのエラーに対処させる方がよい場合は，次のパラメタの指定を検討してください。

eads.scaling.requestQueuing.enableパラメタ

スケールアウト処理の開始直後のリクエストの応答に一時的に時間が掛かる場合は，eads.scaling.requestQueuing.enableパラメタとあわせて次のパラメタの指定も検討してください。

eads.scaling.moveDataWithUpdateRequest.enableパラメタ

eads.scaling.moveData.intervalパラメタ

次のどちらかの指定をしている場合，リクエストのスループットの向上が期待できますが，スケールアウト処理の実行完了までの時間が長くなります。運用および環境に合わせたチューニングを実施してください。

eads.scaling.moveDataWithUpdateRequest.enableパラメタにfalseを指定している場合で，かつezstartコマンドに-aiまたは-apオプションを指定している場合

eads.scaling.moveData.intervalパラメタに0以外を指定している場合で，かつezstartコマンドに-aiまたは-apオプションを指定している場合

eads.scaling.requestQueuing.enableパラメタにfalseを指定している場合で，かつezstartコマンドに-aiまたは-apオプションを指定している場合，追加するEADSサーバの移動元となるEADSサーバで実行しているクライアントAPIでエラーが発生することがあります。

14.2.2　ezserver（EADSサーバのフォアグラウンドでの開始）

(1)　機能

EADSサーバをフォアグラウンドで開始します。

(2)　規則

このコマンドはEADSサーバが停止状態のときに実行できます。

このコマンドはEADSサーバを開始するホストにログインして実行します。クラスタ内の全EADSサーバを開始する場合は，このコマンドをEADSサーバごとに実行する必要があります。

コマンド実行時に出力されるメッセージログは，コンソール，およびサーバ定義のeads.logger.dirパラメタに指定したディレクトリ下のeads_server_message[n].log（[n]はファイル数の通番です）に出力されます。

(3)　形式

ezserver ［-h］
         ［-r|-ai ＜EADSサーバID＞|-ap ＜EADSサーバの位置（ハッシュ値）＞］
         ［-rd ＜ポート番号＞ ＜suspend方式＞］

(4)　オプションおよび引数

(a)　-hまたは--help

コマンドの使用方法を表示したい場合に指定します。

このオプションを指定した場合，その他のオプションを指定しても無視されます。

(b)　-rまたは--recovery

停止状態のEADSサーバをクラスタに復旧させて，クラスタへの参加状況をonlineにしたい場合に指定します。

(c)　-aiまたは--add_id ＜EADSサーバID＞

既存のクラスタ構成にない新しいEADSサーバを，クラスタの特定のレンジに追加したいときに指定します。このオプションには，新しいEADSサーバを追加したいレンジを担当するEADSサーバのEADSサーバIDを指定します。

EADSサーバIDには，1〜96の整数が指定できます。

新しいEADSサーバは，コンシステント・ハッシングの円周上で，新しいEADSサーバと隣接している2つのEADSサーバの位置（ハッシュ値）の中間に追加されます。また，新しいEADSサーバのEADSサーバIDには，1〜96の整数のうち，既存のEADSサーバに割り当てられていない最小の値が割り当てられます。

クラスタに存在しないEADSサーバのEADSサーバIDを指定した場合は，エラーになります。また，このオプションを指定してコマンドを実行した際に，クラスタに縮退状態（isolated）または停止状態（-----------）のEADSサーバが存在する場合は，エラーになります。

(d)　-apまたは--add_position ＜EADSサーバの位置（ハッシュ値）＞

既存のクラスタ構成にない新しいEADSサーバを，クラスタの特定の位置（ハッシュ値）に追加したいときに指定します。このオプションには，新しいEADSサーバを追加したい位置（ハッシュ値）を指定します。

位置（ハッシュ値）には，-2147483648〜2147483647の整数が指定できます。

追加するEADSサーバのEADSサーバIDには，1〜96の整数のうち，既存のEADSサーバに割り当てられていない最小の値が割り当てられます。

既存のEADSサーバと同じ位置（ハッシュ値）を指定した場合は，エラーになります。また，このオプションを指定してコマンドを実行した際に，クラスタに縮退状態（isolated）または停止状態（-----------）のEADSサーバが存在する場合は，エラーになります。

(e)　-rdまたは--remotedebug ＜ポート番号＞ ＜suspend方式＞

ユーザファンクションをデバッガアプリケーションでリモートデバッグするためのオプションです。本番環境では使用しないでください。

次に示すjavaオプションを指定して，EADSサーバを起動したい場合に指定します。

-agentlib:jdwp=transport=dt_socket,server=y,suspend=＜suspend方式＞,address=＜ポート番号＞

ポート番号（EADSサーバがデバッガアプリケーションに接続するためのポート番号）には，1024〜65535の整数が指定できます。

デバッガアプリケーションの接続を待ってからEADSサーバを起動する場合は，suspend方式にyを指定します。デバッガアプリケーションの接続を待たないでEADSサーバを起動する場合は，suspend方式にnを指定します。

(5)　リターンコード

0：正常終了

0以外：エラー

(6)　注意事項

このコマンドを実行するには，環境変数PATHに/binおよび/usr/binが設定されている必要があります。

クラスタを構成するEADSサーバ数が多い場合，EADSサーバを同時に起動すると，処理に時間が掛かり，タイムアウトして起動に失敗することがあります。このような場合は，間隔を空けながらEADSサーバを起動してください。または，サーバ定義のeads.admin.boot.timeoutパラメタの指定値を調整してください。

すでに起動しているEADSサーバに対してこのコマンドを実行した場合，KDEA08408-Eメッセージが出力されて処理を中止します。ただし，ほぼ同時にEADSサーバを二重に起動した場合，メッセージが出力されない場合があります。この場合は間隔を開けてから，EADSサーバを起動してください。

-aiまたは--add_idオプション，-apまたは--add_positionオプションを指定する場合，追加するEADSサーバのクラスタ定義ファイルは不要です。追加するEADSサーバにクラスタ定義ファイルがあっても読み込まれません。このため，追加するEADSサーバに不正な内容のクラスタ定義ファイルがあっても，エラーになりません。

-aiまたは--add_idオプション，-apまたは--add_positionオプションの指定時に，EADSサーバの追加でエラーが発生したときは，eztool statusコマンドを実行してEADSサーバが追加されているかを確認してください。

EADSサーバが追加されていない場合は，再度EADSサーバを追加してください。

追加されたEADSサーバが縮退またはプロセスダウンした場合は，EADSサーバを復旧させてください。

EADSサーバの復旧処理でエラーが発生した場合は，復旧に失敗したEADSサーバのクラスタ定義ファイルに，EADSサーバの追加後のクラスタ構成情報が反映されていない可能性があります。復旧に失敗したEADSサーバのクラスタ定義ファイルが，ほかのEADSサーバのクラスタ定義ファイルと同じかどうかを確認してください。クラスタ定義ファイルが，ほかのEADSサーバのクラスタ定義ファイルと異なる場合は，復旧に失敗したEADSサーバに，正常に稼働しているEADSサーバのクラスタ定義ファイルをコピーしてから，復旧を再度実行してください。

スケールアウト処理の終了直前のリクエストの応答は，一時的に時間が掛かることがあります。EADSサーバからの応答に対してEADSクライアントを長時間待機させるのではなく，EADSサーバからエラーを返却させ，EADSクライアントでそのエラーに対処させる場合は，次のパラメタの指定を検討してください。

eads.scaling.requestQueuing.enableパラメタ

スケールアウト処理の開始直後のリクエストの応答に一時的に時間が掛かる場合は，eads.scaling.requestQueuing.enableパラメタとあわせて次のパラメタの指定も検討してください。

eads.scaling.moveDataWithUpdateRequest.enableパラメタ

eads.scaling.moveData.intervalパラメタ

次のどちらかの指定をしている場合，リクエストのスループットの向上が期待できますが，スケールアウト処理の実行完了までの時間が長くなります。運用および環境に合わせたチューニングを実施してください。

eads.scaling.moveDataWithUpdateRequest.enableパラメタにfalseを指定している場合で，かつezserverコマンドに-aiまたは-apオプションを指定している場合

eads.scaling.moveData.intervalパラメタに0以外を指定している場合で，かつezserverコマンドに-aiまたは-apオプションを指定している場合

eads.scaling.requestQueuing.enableパラメタにfalseを指定している場合で，かつezserverコマンドに-aiまたは-apオプションを指定している場合，追加するEADSサーバの移動元となるEADSサーバで実行しているクライアントAPIでエラーが発生することがあります。

14.2.3　eztool（クラスタの運用操作）

(1)　機能

クラスタに対して運用操作を行います。

(2)　規則

このコマンドはクラスタ内の任意のEADSサーバで実行します。

コマンド実行時に出力されるメッセージログは，コンソール，およびコマンド定義のeads.command.logger.dirパラメタに指定したディレクトリ下のeads_command_message[n].log（[n]はファイルの通番です）に出力されます。

(3)　形式

eztool ［-h］
       ［-t ＜コマンドのタイムアウト時間＞］
       ［--messageoff］
        ＜サブコマンド＞ ＜オプションおよび引数＞

(4)　オプションおよび引数

(a)　-hまたは--help

コマンドの使用方法を表示したい場合に指定します。

このオプションを指定した場合，その他のオプションを指定しても無視されます。

サブコマンドを指定しなかった場合は，すべてのサブコマンドの概要が表示されます。サブコマンドを指定した場合は，指定したサブコマンドの詳細が表示されます。

(b)　-tまたは--timeout ＜コマンドのタイムアウト時間＞

コマンドのタイムアウト時間（単位：秒）を設定したい場合に指定します。

0〜2,147,483,647の整数が指定できます。

0を指定した場合はタイムアウトしません。

ただし，次のコマンドでは指定できません。

eztool threaddump

eztool snapshot

eztool forcestop

(c)　--messageoff

標準出力にメッセージを出力したくない場合に指定します。

ただし，コマンドが構文エラーとなった場合，このオプションは無効になります。

また，次のコマンドでは指定できません。

eztool threaddump

eztool snapshot

eztool forcestop

(d)　＜サブコマンド＞ ＜オプションおよび引数＞

このコマンドに指定できるサブコマンドについては，「14.3　eztoolコマンドのサブコマンド」を参照してください。

サブコマンドに指定できるオプションおよび引数については，各サブコマンドの説明を参照してください。

注意事項

サブコマンドの引数にハイフン（-）で始まる文字列を指定したい場合は，ハイフン2つ（--）を前方に付与して指定してください。ただし，ハイフン2つ（--）を引数として指定することはできません。

(5)　リターンコード

各サブコマンドの説明を参照してください。

(6)　注意事項

このコマンドを実行するには，環境変数PATHに/binおよび/usr/binが設定されている必要があります。

14.3　eztoolコマンドのサブコマンド

eztoolコマンドに指定できるサブコマンドの一覧を次の表に示します。

表14‒2　eztoolコマンドに指定できるサブコマンド一覧

項番

利用シーン

サブコマンド名

実行対象

1

閉塞と閉塞解除

クラスタを閉塞状態にする

close

クラスタ

2

クラスタの閉塞状態を解除する

open

クラスタ

3

状態確認

クラスタの状態を確認する

status

クラスタ※1

4

最新パラメタの一覧を表示する

listconf

クラスタ※1

5

キャッシュの一覧を表示する

listcache

クラスタ

6

ストアデータファイルの一覧を表示する

listesd

クラスタ

7

グループ名の一覧を表示する

listgroup

クラスタ※1

8

keyの一覧を表示する

listkey

クラスタ※1※2

9

データの格納先を表示する

getposition

クラスタ

10

レンジおよびキャッシュの使用状況を確認する

storeusage

クラスタ

11

排他制御

排他を解除する

unlock

クラスタ

12

メモリ・ディスク管理

キャッシュを作成する

createcache

クラスタ

13

キャッシュを削除する

deletecache

クラスタ

14

データ移行

データを書き出す

export

クラスタ※1

15

データを読み込む

import

クラスタ

16

ストアデータファイルを削除する

deleteesd

クラスタ

17

データ操作

指定したデータを格納する

put

EADSサーバ

18

指定したデータを取得する

get

EADSサーバ

19

指定したデータを削除する

remove

EADSサーバ

20

指定した範囲のデータをすべて削除する

removeall

クラスタ※1※2

21

ユーザファンクション

ユーザファンクションの実行可否を表示する

listfunc

クラスタ

22

ユーザファンクションを実行する

execfunc

クラスタ※1※2※3

23

負荷分散

レンジに格納できるkeyの数を均等にする

rebalance

クラスタ

24

永続化

永続データに関する情報の一覧を表示する

listecf

クラスタ※1

25

キャッシュを再開する

resume

クラスタ

26

キャッシュファイルを書き出す

exportecf

クラスタ※5

27

キャッシュファイルを読み込む

importecf

クラスタ

28

キャッシュファイルを削除する

deleteecf

クラスタ※5

29

キャッシュデータファイルをコンパクションする

compaction

EADSサーバ※4

30

トラブルシュート

スレッドダンプを出力する

threaddump

EADSサーバ

31

ログ，設定情報，ハードウェア情報，およびネットワーク情報を収集する

snapshot

EADSサーバ

32

終了

クラスタ内の全EADSサーバを終了する

stop

クラスタ

33

EADSサーバを強制終了する

forcestop

EADSサーバ

34

EADSサーバを縮退させる

isolate

EADSサーバ

注※1

-sまたは--singleオプションを指定すると，コマンドを実行したEADSサーバが対象となります。

注※2

-gまたは--groupオプションを指定すると，指定したグループ名のハッシュ値から決定したEADSサーバが対象となります。

注※3

-kまたは--keyオプションを指定すると，指定したkeyが格納されているEADSサーバが対象となります。

注※4

--cacheオプションを指定すると，コマンドを実行したキャッシュが対象となります。

--rangeオプションを指定すると，コマンドを実行したレンジが対象となります。

注※5

-lまたは--localオプションを指定すると，コマンドを実行したEADSサーバが対象となります。

14.3.1　コマンド間の排他制御

コマンド間の同時実行可否を次の表に示します。

表14‒3　コマンド間の同時実行可否

コマンドの種類

同時実行可否

更新系

参照系

データ操作

復旧・スケールアウト

更新系

eztool close

eztool open

eztool createcache

eztool deletecache

eztool export

eztool import

eztool deleteesd

eztool rebalance

eztool resume

eztool exportecf

eztool importecf

eztool deleteecf

eztool snapshot -sd

またはeztool snapshot --safedump

eztool stop

eztool isolate

×

○

○

×

参照系

eztool status

eztool listconf

eztool listcache

eztool listesd

eztool listecf

eztool getposition

eztool storeusage

eztool listfunc

○

○

○

○

データ操作

eztool listgroup

eztool listkey

eztool put

eztool get

eztool remove

eztool removeall

eztool execfunc

○

○

○

○

復旧・スケールアウト

ezstart -r

またはezstart --recovery

ezserver -r

またはezserver --recovery

ezstart -ai

またはezstart --add_id

ezstart -ap

またはezstart --add_position

ezserver -ai

またはezserver --add_id

ezserver -ap

またはezserver --add_position

×

○

○

×

（凡例）

○：同時に実行できます。

×：同時に実行できません。

注

eztool unlockコマンドは，排他を解除できるときだけ実行できます。

次のコマンドは常に，同時に実行できます。

eztool compaction

eztool threaddump

eztool snapshot（-sdまたは--safedumpオプション指定は除く）

eztool forcestop

更新系のコマンド実行中は，EADSサーバから排他を取得します。これによって，ほかのホストから更新系のコマンドを同時に実行できないようにしています。

通常，コマンドの処理終了時に自動的に排他は解除されます。しかし，何らかの理由で排他の解除に失敗した場合（エラーが発生して排他が解除されないままコマンドが終了してしまった場合など）は，eztool unlockコマンドを実行して，排他を解除する必要があります。

14.3.2　close（クラスタの閉塞）

(1)　機能

クラスタを閉塞状態にします。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，クラスタへの参加状況がonlineのEADSサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADSサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADSサーバが次の状態のときに実行できます。

稼働状態（running）

閉塞状態（closed）

(3)　形式

eztool close

(4)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒4　eztool closeコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

131

ほかのコマンドが実行中のため失敗しました。

8

150

コマンド実行中に失敗しました。

9

200

コマンドタイムアウトで失敗しました。

14.3.3　open（クラスタの閉塞解除）

(1)　機能

クラスタの閉塞状態を解除します。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，クラスタへの参加状況がonlineのEADSサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADSサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞状態（closed）

(3)　形式

eztool open

(4)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒5　eztool openコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

131

ほかのコマンドが実行中のため失敗しました。

8

150

コマンド実行中に失敗しました。

9

200

コマンドタイムアウトで失敗しました。

14.3.4　status（クラスタ状態の確認）

(1)　機能

クラスタの状態を確認します。

(2)　規則

このサブコマンドはクラスタの状態に関係なく実行できます。

このサブコマンドは，EADSサーバが次の状態のときに実行できます。

初期化中（initializing）

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

縮退状態（isolated）

停止中（stopping）

(3)　形式

eztool status ［-v］
              ［-s］
              ［-c ＜表示内容の項目名＞==＜状態＞］
              ［--format ＜フォーマット名＞］
              ［--columns ＜列名＞［,＜列名＞］…］
              ［--filter ＜フィルタの条件＞］
              ［--match ＜一致条件＞］

(4)　オプションおよび引数

(a)　-vまたは--verbose

コマンド実行結果の詳細を表示したい場合に指定します。

(b)　-sまたは--single

クラスタ全体ではなく，コマンドを実行するEADSサーバの状態だけを確認したい場合に指定します。

(c)　-cまたは--count ＜表示内容の項目名＞==＜状態＞

このオプションは非推奨です。予告なく削除することがあります。

クラスタに参加する各EADSサーバの状態がそろっていることを確認したい場合に指定します。

指定した項目が，指定した状態と完全一致するEADSサーバ数を，リターンコードとして返します。ただし，情報が取得できないためにハイフン（-）が表示された項目については，カウントされません。

次に示すオプションとは同時に指定できません。

-sオプション

--formatオプション

--columnsオプション

--filterオプション

--matchオプション

■表示内容の項目名

指定できる表示内容の項目名を次の表に示します。

表示内容の項目名

説明

表示の有無

-vまたは--verboseオプション指定

なし

あり

ID

EADSサーバID

○

○

IP_Address

EADSサーバのIPアドレス

○

○

ServerName

EADSサーバ名（運用ディレクトリ名）

×

○

Port※1

EADSクライアントとの通信に使用するEADSサーバのポート番号

○

○

ServerPort※2

EADSサーバ間のデータの多重化に使用するポート番号

×

○

ManagePort※2

コマンドが使用する通信ポートを確認するためのポート番号

×

○

Position

EADSサーバの位置

○

○

Cluster

クラスタへの参加状況

○

○

State

EADSサーバの状態

○

○

Operation

現在実行中のサブコマンド名，またはコマンドのオプション名

○

○

Lock

EADSサーバの排他状態

×

○

KeyCount

EADSサーバ内のkeyの総数

×

○

UsedCache※2

EADSサーバ内の，メモリキャッシュまたは2Wayキャッシュのvalue部分が格納される領域のメモリ使用量（Explicitヒープ）の割合（メモリ使用量/メモリ総容量）

×

○

UsedMemoryRatio※3

EADSサーバ内の，メモリキャッシュまたは2Wayキャッシュのvalue部分が格納される領域のメモリ使用量（Explicitヒープ）の割合

×

○

UsedMemory※3

EADSサーバ内の，メモリキャッシュまたは2Wayキャッシュのvalue部分が格納される領域のメモリ使用量（Explicitヒープ）

（単位：メガバイト）

×

○

MaxMemory※3

EADSサーバ内の，メモリキャッシュまたは2Wayキャッシュのvalue部分が格納される領域のメモリ総容量

（単位：メガバイト）

×

○

Version

バージョン情報

×

○

（凡例）

○：表示されます。

×：表示されません。

注※1

コマンド定義のeads.command.compatパラメタに0300を指定した場合，項目名はClientPortになります。

注※2

コマンド定義のeads.command.compatパラメタに0300を指定した場合にだけ，指定できます。

注※3

コマンド定義のeads.command.compatパラメタに0300を指定した場合は，指定できません。

■状態

指定した表示内容の項目名で表示される文字列を指定します。

ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

半角スペースは二重引用符（"）で囲むことで使用できますが，表示内容の項目名，および状態の前後の半角スペースは無視されます。

なお，情報が取得できない項目にはハイフン（-）が表示されるため，ハイフン（-）だけを指定した場合はエラーとなります。ただし，コマンド定義のeads.command.compatパラメタに0300を指定した場合は，情報が取得できない項目にはアスタリスク（*）が表示されます。その場合，アスタリスク（*）だけを指定するとエラーになります。

(d)　--format ＜フォーマット名＞

このオプションの詳細については，「14.4.2　表示形式の指定方法」を参照してください。

(e)　--columns ＜列名＞［,＜列名＞］…

このオプションの詳細については，「14.4.3　列のフィルタリングの指定方法」を参照してください。

(f)　--filter ＜フィルタの条件＞

このオプションの詳細については，「14.4.4　行のフィルタリングの指定方法」を参照してください。

(g)　--match ＜一致条件＞

このオプションの詳細については，「14.4.5　条件一致の指定方法」を参照してください。

(5)　出力例

eztool statusコマンドの実行結果の出力例を次に示します。

表示の構成要素については，「14.4.1　表示内容の構成要素」を参照してください。

■-vまたは--verboseオプションを指定しない場合

■-vまたは--verboseオプションを指定する場合

サマリとメインの表示内容を，それぞれ次の表に示します。

表14‒6　eztool statusコマンドのサマリの表示内容

項番

サマリ名

説明

表示の有無

-vまたは--verboseオプション指定

なし

あり

1

Cluster Health

クラスタの状態

次のどれかが表示されます。

AVAILABLE

クラスタが正常に稼働している状態です。

PARTIALLY_AVAILABLE

クラスタの一部が稼働している状態です。

keyによっては，アクセスできない場合があります。

NOT_AVAILABLE

クラスタが稼働していない状態です。

○

○

2

TotalCount

EADSサーバ数

-sまたは--singleオプションを指定した場合は表示されません。

○

○

3

OnlineCount

クラスタに参加しているEADSサーバ数

-sまたは--singleオプションを指定した場合は表示されません。

また，クラスタの状態がNOT_AVAILABLEの場合，カウントされません。

○

○

4

OfflineCount

クラスタに参加していないEADSサーバ数

-sまたは--singleオプションを指定した場合は表示されません。

また，クラスタの状態がNOT_AVAILABLEの場合，カウントされません。

○

○

5

StandbyCount

クラスタに参加する予定のEADSサーバ数

-sまたは--singleオプションを指定した場合は表示されません。

また，クラスタの状態がNOT_AVAILABLEの場合，カウントされません。

○

○

（凡例）

○：表示されます。

表14‒7　eztool statusコマンドのメインの表示内容

項番

列名

説明

表示の有無

-vまたは--verboseオプション指定

なし

あり

1

ID

EADSサーバID

ただし，クラスタに追加するEADSサーバがまだクラスタに参加していない場合，そのEADSサーバのIDにはハイフン（-）が表示されます。

○

○

2

IP_Address

EADSサーバのIPアドレス

○

○

3

ServerName

EADSサーバ名（運用ディレクトリ名）※1※2

×

○

4

Port※3

EADSクライアントとの通信に使用するEADSサーバのポート番号

○

○

5

ServerPort※4

EADSサーバ間のデータの多重化に使用するポート番号※2

×

○

6

ManagePort※4

コマンドが使用する通信ポートを確認するためのポート番号※2

×

○

7

Position

EADSサーバの位置

位置（ハッシュ値）は降順で表示されます。

ただし，クラスタに追加するEADSサーバがまだクラスタに参加していない場合，そのEADSサーバの位置にはハイフン（-）が表示されます。

○

○

8

Cluster

クラスタへの参加状況※5

次のどれかが表示されます。

online

クラスタに参加している

offline

クラスタに参加していない

standby

クラスタに参加する予定

○

○

9

State

EADSサーバの状態※1※2

○

○

10

Operation

現在実行中のサブコマンド名，またはコマンドのオプション名※1※2

次のどれかが表示されます。

close

open

unlock

createcache

deletecache

export

import

deleteesd

rebalance

resume

exportecf

importecf

deleteecf

compaction

stop

isolate

recovery

add

export，import，rebalance，exportecf，importecfおよびstopについては，処理の進捗率も表示されます。

（例）export(88%)

ただし，rebalanceの場合は，リバランス処理全体の進捗率が，位置を変更中のEADSサーバの所に表示されます。

実行中でない場合はnoneが表示されます。

○

○

11

Lock

EADSサーバの排他状態※5

次のどちらかが表示されます。

lock

排他している

unlock

排他していない

×

○

12

KeyCount

EADSサーバ内のkeyの総数※1※2

多重化によってコピーされるkeyの数も含みます。

×

○

13

UsedCache※4

EADSサーバ内の，メモリキャッシュまたは2Wayキャッシュのvalue部分が格納される領域のメモリ使用量（Explicitヒープ）の割合（メモリ使用量/メモリ総容量）※1※2

小数点以下の値は切り捨てて表示されます。

メモリ使用量には，多重化によってコピーされるvalueも含みます。

×

○

14

UsedMemoryRatio※6

EADSサーバ内の，メモリキャッシュまたは2Wayキャッシュのvalue部分が格納される領域のメモリ使用量（Explicitヒープ）の割合※1※2

メモリ使用量の割合は，（メモリ使用量÷メモリ総容量）×100で算出されます。%単位で表示されるため，小数点以下の値は切り捨てて表示されます。

メモリ使用量には，多重化によってコピーされるvalueも含みます。

×

○

15

UsedMemory※6

EADSサーバ内の，メモリキャッシュまたは2Wayキャッシュのvalue部分が格納される領域のメモリ使用量（Explicitヒープ）※1※2

（単位：メガバイト）

小数点以下の値は切り捨てて表示されます。

メモリ使用量には，多重化によってコピーされるvalueも含みます。

×

○

16

MaxMemory※6

EADSサーバ内の，メモリキャッシュまたは2Wayキャッシュのvalue部分が格納される領域のメモリ総容量※1※2

（単位：メガバイト）

小数点以下の値は切り捨てて表示されます。

メモリ使用量には，多重化によってコピーされるvalueも含みます。

×

○

17

Version

バージョン情報※1※2

03-00の場合，03-00-00と表示されます。

×

○

（凡例）

○：表示されます。

×：表示されません。

注※1

接続失敗，通信エラー，または通信タイムアウトの場合，ハイフン（-）が表示されます。コマンド定義のeads.command.compatパラメタに0300を指定したときはアスタリスク（*）になります。

注※2

EADSサーバのクラスタへの参加状況がstandbyの場合，ハイフン（-）が表示されます。コマンド定義のeads.command.compatパラメタに0300を指定したときはアスタリスク（*）になります。

注※3

コマンド定義のeads.command.compatパラメタに0300を指定した場合，列名はClientPortになります。

注※4

コマンド定義のeads.command.compatパラメタに0300を指定した場合にだけ，表示される列です。

注※5

クラスタの状態がNOT_AVAILABLEの場合，ハイフン（-）が表示されます。コマンド定義のeads.command.compatパラメタに0300を指定したときはアスタリスク（*）になります。

注※6

コマンド定義のeads.command.compatパラメタに0300を指定した場合，この列は表示されません。

(6)　リターンコード

次に示すオプションを指定したかどうかによって，リターンコードが異なります。

-sまたは--singleオプション

-cまたは--countオプション

--matchオプション

-sオプション，-cオプションおよび--matchオプションをすべて指定しなかった場合は，次の表に示すリターンコードが返却されます。

表14‒8　eztool statusコマンドのリターンコード（-s，-cおよび--matchオプションの指定なし）

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

150

コマンド実行中に失敗しました。

7

200

コマンドタイムアウトで失敗しました。

-sまたは--singleオプションを指定した場合

EADSサーバの状態をリターンコードとして返します。

--matchオプションと同時に指定し，かつコマンドの実行に成功したときは，--matchオプションの結果が優先されます。

表14‒9　eztool statusコマンドのリターンコード（-sまたは--singleオプションの指定あり）

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

EADSサーバの状態は稼働状態（running）です。

2

1

1

EADSサーバの状態は初期化中（initializing）です。

3

2

2

EADSサーバの状態は初期化状態（initialized）です。

4

3

3

EADSサーバの状態は閉塞中（closing）です。

5

4

4

EADSサーバの状態は閉塞状態（closed）です。

6

5

5

EADSサーバの状態は停止中（stopping）です。

7

10

10

EADSサーバの状態は縮退状態（isolated）です。

8

101

101

コマンドの初期化に失敗しました。

9

110

110

接続に失敗しました。

10

111

111

通信タイムアウトで失敗しました。

11

120

101

構文不正で失敗しました。

12

150

コマンド実行中に失敗しました。

13

200

コマンドタイムアウトで失敗しました。

-cまたは--countオプションを指定した場合

指定した項目が，指定した状態になっているEADSサーバ数を，リターンコードとして返します。ただし，コマンドの実行に失敗したときは，-cまたは--countオプションを指定しなかった場合と同じになります。

--matchオプションを指定した場合

条件に一致した場合は0，一致しなかった場合は1を，リターンコードとして返します。ただし，コマンドの実行に失敗したときは，--matchオプションを指定しなかった場合と同じになります。

(7)　注意事項

EADSサーバIDがいちばん小さいEADSサーバが起動していない場合，ほかのEADSサーバはクラスタに参加できません。また，クラスタに参加していないEADSサーバでこのコマンドを実行した場合，ほかのEADSサーバが複数起動していても，コマンドを実行したEADSサーバの情報しか表示されません。

復旧中のEADSサーバでこのコマンドを実行した場合，復旧が完了するまではほかのEADSサーバの情報は表示されません。

スケールアウト処理中のEADSサーバでこのコマンドを実行した場合，クラスタに参加するまでは，ほかのEADSサーバの情報は表示されません。

縮退状態のEADSサーバしか存在しない場合，クラスタ構成情報が更新されないために古い情報が表示されることがあります。

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

14.3.5　listconf（最新パラメタの一覧表示）

(1)　機能

EADSサーバのシステムプロパティに設定されている，「eads.」で始まるパラメタの一覧を表示します。ただし，03-60以前の古いパラメタ名で設定されている場合は，新しいパラメタ名で表示されます。

(2)　規則

このサブコマンドは，クラスタの状態に関係なく，EADSサーバが次の状態のときに実行できます。

初期化中（initializing）

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

縮退状態（isolated）

停止中（stopping）

(3)　形式

eztool listconf ［-v］
                ［-s］
                ［--file ＜定義ファイルの種別＞］
                ［--non_default］
                ［--format ＜フォーマット名＞］
                ［--columns ＜列名＞［,＜列名＞］…］
                ［--filter ＜フィルタの条件＞］
                ［--match ＜一致条件＞］

(4)　オプションおよび引数

(a)　-vまたは--verbose

コマンド実行結果の詳細を表示したい場合に指定します。

(b)　-sまたは--single

クラスタ全体ではなく，コマンドを実行するEADSサーバ上の定義ファイルのパラメタだけを確認したい場合に指定します。

(c)　--file ＜定義ファイルの種別＞

特定の定義ファイルに指定するパラメタだけを確認したい場合に指定します。

次に示す定義ファイルの種別が指定できます。

server：サーバ定義ファイル

cluster：クラスタ定義ファイル

shared：共通設定ファイル

このオプションを指定しない場合，次に示す定義ファイルに指定するパラメタすべてが表示されます。

サーバ定義ファイル

クラスタ定義ファイル

共通設定ファイル

(d)　--non_default

設定値がデフォルト値以外のEADSサーバが存在するパラメタだけを表示します。ただし，デフォルト値が存在しないパラメタは対象に含まれません。

(e)　--format ＜フォーマット名＞

このオプションの詳細については，「14.4.2　表示形式の指定方法」を参照してください。

(f)　--columns ＜列名＞［,＜列名＞］…

このオプションの詳細については，「14.4.3　列のフィルタリングの指定方法」を参照してください。

(g)　--filter ＜フィルタの条件＞

このオプションの詳細については，「14.4.4　行のフィルタリングの指定方法」を参照してください。

(h)　--match ＜一致条件＞

このオプションの詳細については，「14.4.5　条件一致の指定方法」を参照してください。

(5)　出力例

eztool listconfコマンドの実行結果の出力例を次に示します。

表示の構成要素については，「14.4.1　表示内容の構成要素」を参照してください。

■-vまたは--verboseオプションを指定しない場合

■-vまたは--verboseオプションを指定する場合

サマリとメインの表示内容を，それぞれ次の表に示します。

表14‒10　eztool listconfコマンドのサマリの表示内容

項番

サマリ名

説明

表示の有無

-vまたは--verboseオプション指定

なし

あり

1

ParameterCount

パラメタの数

○

○

2

NonDefaultCount

設定値がデフォルト値以外のEADSサーバが存在するパラメタの数

○

○

（凡例）

○：表示されます。

表14‒11　eztool listconfコマンドのメインの表示内容

項番

列名

説明

表示の有無

-vまたは--verboseオプション指定

なし

あり

1

Parameter

パラメタ名

自然順序順に表示されます。

○

○

2

DefaultValue

パラメタのデフォルト値

デフォルト値がないパラメタの場合は，何も表示されません。

EADSサーバごとにデフォルト値が異なる場合は，UNMATCHが表示されます。

○

○

3

MinValue

パラメタの最小値（数値）

数値以外を指定できるパラメタの場合は，何も表示されません。

EADSサーバごとに最小値が異なる場合は，UNMATCHが表示されます。

×

○

4

MaxValue

パラメタの最大値（数値）

数値以外を指定できるパラメタの場合は，何も表示されません。

EADSサーバごとに最大値が異なる場合は，UNMATCHが表示されます。

×

○

5

MinLength

パラメタの文字列の長さの最小値

長さの最小値がないパラメタの場合，何も表示されません。

EADSサーバごとに最小値が異なる場合は，UNMATCHが表示されます。

×

○

6

MaxLength

パラメタの文字列の長さの最大値

長さの最大値がないパラメタの場合，何も表示されません。

EADSサーバごとに最大値が異なる場合は，UNMATCHが表示されます。

×

○

7

ServerID:＜EADSサーバID＞

各EADSサーバでのパラメタの設定値

情報が取得できたEADSサーバの中で，EADSサーバIDが小さいEADSサーバから順に，各EADSサーバの情報が表示されます。

-sまたは--singleオプションを指定した場合は，コマンドを実行したEADSサーバの情報だけが表示されます。

クラスタに追加するEADSサーバのEADSサーバIDが，クラスタにまだ参加していないために未決定の場合，＜EADSサーバID＞にはハイフン（-）が表示されます。

○

○

（凡例）

○：表示されます。

×：表示されません。

(6)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒12　eztool listconfコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

150

コマンド実行中に失敗しました。

8

200

コマンドタイムアウトで失敗しました。

--matchオプションを指定した場合

条件に一致した場合は0，一致しなかった場合は1を，リターンコードとして返します。ただし，コマンドの実行に失敗したときは，--matchオプションを指定しなかった場合と同じになります。

(7)　注意事項

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

システムプロパティに設定されている値は，指定値そのものではなく，ベリファイされた値です。また，機能としてパラメタの値を適用するときは，さらに別の値が使用されることがあるパラメタも存在します。

14.3.6　listcache（キャッシュの一覧表示）

(1)　機能

キャッシュの一覧を表示します。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，クラスタへの参加状況がonlineのEADSサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADSサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

(3)　形式

eztool listcache ［-v］
                 ［--format ＜フォーマット名＞］
                 ［--columns ＜列名＞［,＜列名＞］…］
                 ［--filter ＜フィルタの条件＞］
                 ［--match ＜一致条件＞］

(4)　オプションおよび引数

(a)　-vまたは--verbose

コマンド実行結果の詳細を表示したい場合に指定します。

(b)　--format ＜フォーマット名＞

このオプションの詳細については，「14.4.2　表示形式の指定方法」を参照してください。

(c)　--columns ＜列名＞［,＜列名＞］…

このオプションの詳細については，「14.4.3　列のフィルタリングの指定方法」を参照してください。

(d)　--filter ＜フィルタの条件＞

このオプションの詳細については，「14.4.4　行のフィルタリングの指定方法」を参照してください。

(e)　--match ＜一致条件＞

このオプションの詳細については，「14.4.5　条件一致の指定方法」を参照してください。

(5)　出力例

eztool listcacheコマンドの実行結果の出力例を次に示します。

表示の構成要素については，「14.4.1　表示内容の構成要素」を参照してください。

■-vまたは--verboseオプションを指定しない場合

■-vまたは--verboseオプションを指定する場合

サマリとメインの表示内容を，それぞれ次の表に示します。

表14‒13　eztool listcacheコマンドのサマリの表示内容

項番

サマリ名

説明

表示の有無

-vまたは--verboseオプション指定

なし

あり

1

CacheCount

キャッシュ数の現在値と最大値

○

○

（凡例）

○：表示されます。

表14‒14　eztool listcacheコマンドのメインの表示内容

項番

列名

説明

表示の有無

-vまたは--verboseオプション指定

なし

あり

1

CacheName

キャッシュ名※

○

○

2

CacheType

キャッシュタイプ※

次のどれかが表示されます。

Memory

メモリキャッシュ

Disk

ディスクキャッシュ

2Way

2Wayキャッシュ

○

○

3

TotalMasterKeyCount

各キャッシュのkeyの総数※

多重化によってコピーされたkeyの数は含みません。

○

○

4

Server

EADSサーバのIPアドレス，およびEADSクライアントとの通信に使用するEADSサーバのポート番号

次の形式で表示されます。

IPアドレス:ポート番号

縮退状態（isolated），または起動していないEADSサーバの場合は，何も表示されません。

×

○

5

MasterKeyCount

EADSサーバごとの，各キャッシュのkeyの数

多重化によってコピーされたkeyの数は含みません。

縮退状態（isolated），または起動していないEADSサーバの場合は，何も表示されません。

×

○

（凡例）

○：表示されます。

×：表示されません。

注

実行結果は，次の優先順位に従って表示されます。

CacheNameの値の自然順序順に表示されます。

-vまたは--verboseオプションを指定する場合，CacheNameの値が同じ行は，Serverの値の自然順序順に表示されます。

注※

実行結果に，同じ値のセルが続く場合，2行目以降のセルの値は表示が省略されます。

(6)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒15　eztool listcacheコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

150

コマンド実行中に失敗しました。

8

200

コマンドタイムアウトで失敗しました。

--matchオプションを指定した場合

条件に一致した場合は0，一致しなかった場合は1を，リターンコードとして返します。ただし，コマンドの実行に失敗したときは，--matchオプションを指定しなかった場合と同じになります。

(7)　注意事項

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

スケールアウト処理，またはリバランス処理の実行中にこのサブコマンドを実行すると，一時的にkey数が少なく表示されることがあります。

14.3.7　listesd（ストアデータファイルの一覧表示）

(1)　機能

クラスタ内のストアデータファイルの一覧を表示します。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，クラスタへの参加状況がonlineのEADSサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADSサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

(3)　形式

eztool listesd ［-v］
               ［-d ＜ストアデータファイルの格納先パス名＞］
               ［--format ＜フォーマット名＞］
               ［--columns ＜列名＞［,＜列名＞］…］
               ［--filter ＜フィルタの条件＞］
               ［--match ＜一致条件＞］

(4)　オプションおよび引数

(a)　-vまたは--verbose

コマンド実行結果の詳細を表示したい場合に指定します。

(b)　-dまたは--directory ＜ストアデータファイルの格納先パス名＞

ストアデータファイルの格納先パス名を指定します。

指定したディレクトリ下にあるストアデータファイルの一覧を表示したい場合に指定します。

パス名には，アスタリスク（*），二重引用符（"），疑問符（?），縦線（|），小なり演算子（<），大なり演算子（>）を含むディレクトリは指定できません。

ストアデータファイルの格納先パスに相対パスを指定した場合，運用ディレクトリが起点となります。

(c)　--format ＜フォーマット名＞

このオプションの詳細については，「14.4.2　表示形式の指定方法」を参照してください。

(d)　--columns ＜列名＞［,＜列名＞］…

このオプションの詳細については，「14.4.3　列のフィルタリングの指定方法」を参照してください。

(e)　--filter ＜フィルタの条件＞

このオプションの詳細については，「14.4.4　行のフィルタリングの指定方法」を参照してください。

(f)　--match ＜一致条件＞

このオプションの詳細については，「14.4.5　条件一致の指定方法」を参照してください。

(5)　出力例

eztool listesdコマンドの実行結果の出力例を次に示します。

表示の構成要素については，「14.4.1　表示内容の構成要素」を参照してください。

■-vまたは--verboseオプションを指定しない場合

■-vまたは--verboseオプションを指定する場合

サマリとメインの表示内容を，それぞれ次の表に示します。

表14‒16　eztool listesdコマンドのサマリの表示内容

項番

サマリ名

説明

表示の有無

-vまたは--verboseオプション指定

なし

あり

1

TotalCount

全ストアデータファイルキー数

○

○

2

export

eztool exportコマンド（引数指定なし）実行時に出力されるストアデータファイルのストアデータファイルキー数と世代数の上限値

次の形式で表示されます。

ストアデータファイルキー数 / 世代数の上限値

世代数の上限値に0を指定している場合は表示されません。

○

○

3

stop

eztool stopコマンド実行時に出力されるストアデータファイルのストアデータファイルキー数と世代数の上限値

次の形式で表示されます。

ストアデータファイルキー数 / 世代数の上限値

世代数の上限値に0を指定している場合は表示されません。

○

○

4

other

eztool exportコマンド（引数や-sまたは--singleオプション指定あり）実行時に出力されるストアデータファイルのストアデータファイルキー数

○

○

5

latest

eztool importコマンド（引数指定なし）実行時に読み込み対象となるストアデータファイルのストアデータファイルキー

存在しない場合はnoneが表示されます。

○

○

（凡例）

○：表示されます。

表14‒17　eztool listesdコマンドのメインの表示内容

項番

列名

説明

表示の有無

-vまたは--verboseオプション指定

なし

あり

1

Type

ストアデータファイルの種別※

次のどれかが表示されます。

export

eztool exportコマンド（引数指定なし）実行時に出力されるストアデータファイル

stop

eztool stopコマンド実行時に出力されるストアデータファイル

other

eztool exportコマンド（引数や-sまたは--singleオプション指定あり）実行時に出力されるストアデータファイル

○

○

2

StoreDataFileKey

ストアデータファイルキー※

○

○

3

FileName

ストアデータファイル名

×

○

4

FileSize(MB)

ストアデータファイルサイズ

（単位：メガバイト）

小数点以下の値は切り捨てて表示されます。

×

○

5

Server

ストアデータファイルがあるEADSサーバのIPアドレス，およびEADSクライアントとの通信に使用するEADSサーバのポート番号

次の形式で表示されます。

IPアドレス:ポート番号

×

○

6

AbsolutePath

ストアデータファイル名（絶対パス）

×

○

（凡例）

○：表示されます。

×：表示されません。

注

実行結果は，次の優先順位に従って表示されます。

Typeの値がexport，stop，otherの順に表示されます。

Typeの値が同じ行は，StoreDataFileKeyの値の自然順序順に表示されます。

-vまたは--verboseオプションを指定する場合，Typeの値およびStoreDataFileKeyの値が同じ行は，Serverの値の自然順序順に表示されます。

注※

実行結果に，同じ値のセルが続く場合，2行目以降のセルの値は表示が省略されます。

(6)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒18　eztool listesdコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

150

コマンド実行中に失敗しました。

8

200

コマンドタイムアウトで失敗しました。

--matchオプションを指定した場合

条件に一致した場合は0，一致しなかった場合は1を，リターンコードとして返します。ただし，コマンドの実行に失敗したときは，--matchオプションを指定しなかった場合と同じになります。

(7)　注意事項

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

14.3.8　listgroup（グループ名の一覧表示）

(1)　機能

キャッシュに格納されている最上位階層のグループ階層名の一覧を表示します。

(2)　規則

このサブコマンドは，EADSサーバが稼働状態（running）のときに実行できます。

EADSサーバの位置（Position）の降順に実行します。

サブコマンド実行前のチェックの時点で，対象範囲に存在する最上位階層のグループ数が1,000個以下の場合に実行できます。

(3)　形式

eztool listgroup ［-s］ ［-v］ ［-f ＜強制実行時のグループ数の上限＞］
                 ＜キャッシュ名＞
                 ［--format ＜フォーマット名＞］
                 ［--columns ＜列名＞［,＜列名＞］…］
                 ［--filter ＜フィルタの条件＞］
                 ［--match ＜一致条件＞］

(4)　オプションおよび引数

(a)　-sまたは--single

サブコマンドを実行するEADSサーバが格納先EADSサーバとなる，最上位階層のグループ階層名だけを表示したい場合に指定します。

(b)　-vまたは--verbose

コマンド実行結果の詳細を表示したい場合に指定します。

(c)　-f または--force ＜強制実行時のグループ数の上限＞

対象範囲に存在するグループの数が1,000個より多い場合に，サブコマンドを実行できるグループ数の上限値を引き上げて，強制的にサブコマンドを実行したいときに指定します。

ただし，このオプションで上限値を引き上げて実行すると，サブコマンドが最後まで適切に実行できなくなったり，EADSサーバのリソースを大量に消費したりするおそれがあります。

グループ数の上限には，1001〜10000の整数が指定できます。

注意事項

対象範囲に存在するグループの数が，1,000個より僅かに多い場合などに，このオプションを指定することを検討してください。

各EADSサーバに格納されている最上位階層グループの合計数が1,000個以内であれば，このオプションではなく-sまたは--singleオプションを指定して，各EADSサーバで順番にeztool listgroupコマンドを実行することを推奨します。

(d)　＜キャッシュ名＞

グループ名の一覧を表示するキャッシュの名称を指定します。

キャッシュ名に指定できる文字を次に示します。

キャッシュ作成時にキャッシュ定義ファイルを使用しなかった場合

半角32文字までの，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

キャッシュ作成時にキャッシュ定義ファイルを使用した場合

半角32文字までの，半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

(e)　--format ＜フォーマット名＞

このオプションの詳細については，「14.4.2　表示形式の指定方法」を参照してください。

(f)　--columns ＜列名＞［,＜列名＞］…

このオプションの詳細については，「14.4.3　列のフィルタリングの指定方法」を参照してください。

(g)　--filter ＜フィルタの条件＞

このオプションの詳細については，「14.4.4　行のフィルタリングの指定方法」を参照してください。

(h)　--match ＜一致条件＞

このオプションの詳細については，「14.4.5　条件一致の指定方法」を参照してください。

(5)　出力例

eztool listgroupコマンドの実行結果の出力例を次に示します。

表示の構成要素については，「14.4.1　表示内容の構成要素」を参照してください。

■-vまたは--verboseオプションを指定しない場合

■-vまたは--verboseオプションを指定する場合

サマリとメインの表示内容を，それぞれ次の表に示します。

表14‒19　eztool listgroupコマンドのサマリの表示内容

項番

サマリ名

説明

表示の有無

-vまたは--verboseオプション指定

なし

あり

1

GroupCount

EADSサーバに格納されている最上位階層のグループ数

○

○

（凡例）

○：表示されます。

表14‒20　eztool listgroupコマンドのメインの表示内容

項番

列名

説明

表示の有無

-vまたは--verboseオプション指定

なし

あり

1

Server

EADSサーバのIPアドレス，およびEADSクライアントとの通信に使用するEADSサーバのポート番号※

次の形式で表示されます。

IPアドレス:ポート番号

○

○

2

Position

EADSサーバの位置（ハッシュ値）※

○

○

3

ID

EADSサーバID※

○

○

4

GroupName

最上位階層のグループ階層名

○

○

5

HashValue

最上位階層のグループの位置（ハッシュ値）

×

○

6

KeyCount

最上位階層のグループに属しているkeyの数

×

○

（凡例）

○：表示されます。

×：表示されません。

注

実行結果は，次の優先順位に従って表示されます。

Positionの値の降順で表示されます。

Positionの値が同じ行は，GroupNameの値の自然順序順に表示されます。-vまたは--verboseオプションを指定する場合，Positionの値が同じ行は，HashValueの値の降順に表示されます。

注※

実行結果に，同じ値のセルが続く場合，2行目以降のセルの値は表示が省略されます。

(6)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒21　eztool listgroupコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

120

構文不正で失敗しました。

4

150

コマンド実行中に失敗しました。

5

200

コマンドタイムアウトで失敗しました。

--matchオプションを指定した場合

条件に一致した場合は0，一致しなかった場合は1を，リターンコードとして返します。ただし，コマンドの実行に失敗したときは，--matchオプションを指定しなかった場合と同じになります。

(7)　注意事項

このサブコマンドを実行すると，APを作成しなくても，最上位階層のグループ階層名の一覧を確認できます。ただし，対象範囲に存在する最上位階層のグループの数が1,000個を超える場合は，APを作成する必要があります。

このサブコマンドの実行中に，最上位階層のグループ階層名が追加された場合，グループ階層名が格納された領域によって，次のように動作します。

グループ名を取得済みの領域にグループ階層名が格納されたとき

追加されたグループ階層名が一覧に表示されません。

グループ名を取得されていない領域にグループ階層名が格納されたとき

追加されたグループ階層名が一覧に表示されます。

なお，最上位階層のグループ階層名の数の確認は実際にグループ名の一覧を取得する前に行うため，確認後に新規グループ名を含む大量のkeyを追加すると，上限数を超えるグループ名が表示されます。

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

対象範囲に大量のグループ名が存在する場合，リソースの使用量が増加するため，注意してください。

グループに属していないkeyの数は確認できません。

このサブコマンドの実行中に，EADSサーバがクラスタに追加または復旧された場合，追加または復旧されたEADSサーバが実行対象から外れて，一部のグループ名が表示されないことがあります。その場合は，サブコマンドを再実行してください。

14.3.9　listkey（keyの一覧表示）

(1)　機能

キャッシュに格納されているkeyの一覧を表示します。

(2)　規則

このサブコマンドは，EADSサーバが稼働状態（running）のときに実行できます。

EADSサーバの位置（Position）の降順に実行します。

サブコマンド実行前のチェックの時点で，対象範囲に存在するkeyの数が1,000個以下の場合に実行できます。

(3)　形式

eztool listkey ［-g ＜グループ名＞|-s］ ［-f ＜強制実行時のkeyの数の上限＞］
               ＜キャッシュ名＞
               ［--format ＜フォーマット名＞］
               ［--columns ＜列名＞［,＜列名＞］…］
               ［--filter ＜フィルタの条件＞］
               ［--match ＜一致条件＞］

(4)　オプションおよび引数

(a)　-gまたは--group ＜グループ名＞

グループに属しているkeyだけを表示したい場合に指定します。

グループ名として指定できるデータについては，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

(b)　-sまたは--single

サブコマンドを実行するEADSサーバに格納されているkeyだけを表示したい場合に指定します。

(c)　-f または--force ＜強制実行時のkeyの数の上限＞

対象範囲に存在するkeyの数が1,000個より多い場合に，サブコマンドを実行できるkeyの数の上限値を引き上げて，強制的にサブコマンドを実行したいときに指定します。

ただし，このオプションで上限値を引き上げて実行すると，サブコマンドが最後まで適切に実行できなくなったり，EADSサーバのリソースを大量に消費したりするおそれがあります。

keyの数の上限には，1001〜10000の整数を指定します。

注意事項

対象範囲に存在するkeyの数が，1,000個より僅かに多い場合などに，このオプションを指定することを検討してください。

各EADSサーバに格納されているkeyの総数が1,000個以内の場合

このオプションではなく-sまたは--singleオプションを指定して，各EADSサーバで順番にeztool listkeyコマンドを実行してください。

各最上位階層のグループに属するkeyの総数が1,000個以内の場合

eztool listgroupコマンドで確認した最上位階層のグループ階層名を，eztool listkeyコマンドの-gまたは--groupオプションの引数に指定して，各グループで順番に実行してください（ただし，グループに属さないkeyは，この方法では確認できません）。

(d)　＜キャッシュ名＞

keyの一覧を表示するキャッシュの名称を指定します。

キャッシュ名に指定できる文字を次に示します。

キャッシュ作成時にキャッシュ定義ファイルを使用しなかった場合

半角32文字までの，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

キャッシュ作成時にキャッシュ定義ファイルを使用した場合

半角32文字までの，半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

(e)　--format ＜フォーマット名＞

このオプションの詳細については，「14.4.2　表示形式の指定方法」を参照してください。

(f)　--columns ＜列名＞［,＜列名＞］…

このオプションの詳細については，「14.4.3　列のフィルタリングの指定方法」を参照してください。

(g)　--filter ＜フィルタの条件＞

このオプションの詳細については，「14.4.4　行のフィルタリングの指定方法」を参照してください。

(h)　--match ＜一致条件＞

このオプションの詳細については，「14.4.5　条件一致の指定方法」を参照してください。

(5)　出力例

eztool listkeyコマンドの実行結果の出力例を次に示します。

表示の構成要素については，「14.4.1　表示内容の構成要素」を参照してください。

サマリとメインの表示内容を，それぞれ次の表に示します。

表14‒22　eztool listkeyコマンドのサマリの表示内容

項番

サマリ名

説明

1

KeyCount

指定した範囲に存在するkeyの数

表14‒23　eztool listkeyコマンドのメインの表示内容

項番

列名

説明

1

Server

EADSサーバのIPアドレス，およびEADSクライアントとの通信に使用するEADSサーバのポート番号※

次の形式で表示されます。

IPアドレス:ポート番号

2

Position

EADSサーバの位置（ハッシュ値）※

3

ID

EADSサーバID※

4

Key

指定した範囲に存在するkey

注

実行結果は，次の優先順位に従って表示されます。

Positionの値の降順で表示されます。

Positionの値が同じ行は，Keyの値の自然順序順に表示されます。

注※

実行結果に，同じ値のセルが続く場合，2行目以降のセルの値は表示が省略されます。

(6)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒24　eztool listkeyコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

120

構文不正で失敗しました。

4

150

コマンド実行中に失敗しました。

5

200

コマンドタイムアウトで失敗しました。

--matchオプションを指定した場合

条件に一致した場合は0，一致しなかった場合は1を，リターンコードとして返します。ただし，コマンドの実行に失敗したときは，--matchオプションを指定しなかった場合と同じになります。

(7)　注意事項

このサブコマンドを実行すると，APを作成しなくても，keyの一覧を確認できます。ただし，対象範囲に存在するkeyの数が1,000個を超える場合は，APを作成する必要があります。

このサブコマンドの実行中にkeyが追加された場合，追加されたkeyが格納された領域によって，次のように動作します。

keyの一覧を取得済みの領域にkeyが格納されたとき

追加されたkeyは一覧に表示されません。

keyの一覧を取得していない領域にkeyが格納されたとき

追加されたkeyは一覧に表示されます。

なお，keyの数の確認は実際にkeyの一覧を取得する前に行うため，確認後に大量のkeyを追加すると，上限数を超えるkeyが表示されます。

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

大量のデータを格納している場合，リソースの使用量が増加するため，注意してください。

このサブコマンドの実行中に，EADSサーバがクラスタに追加または復旧された場合，追加または復旧されたEADSサーバが実行対象から外れて，一部のkeyが表示されないことがあります。その場合は，このサブコマンドを再実行してください。

14.3.10　getposition（データの格納先の表示）

(1)　機能

指定したkeyまたはグループの，格納先EADSサーバを表示します。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，EADSサーバが次の状態のときに実行できます。

初期化中（initializing）

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

縮退状態（isolated）

停止中（stopping）

-lオプションまたは--localオプションを指定した場合は，クラスタおよびEADSサーバの状態に関係なく実行できます。

クラスタに追加するEADSサーバがクラスタにまだ参加していない場合，そのEADSサーバでは実行できません。

(3)　形式

eztool getposition ＜keyまたはグループ名＞ ［-l］
                   ［--format ＜フォーマット名＞］
                   ［--columns ＜列名＞［,＜列名＞］…］
                   ［--filter ＜フィルタの条件＞］
                   ［--match ＜一致条件＞］

(4)　オプションおよび引数

(a)　＜keyまたはグループ名＞

格納先EADSサーバを表示したいデータに関連づけられたkey，またはグループ名を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」，または「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

(b)　-lまたは--local

クラスタ定義で設定したクラスタ構成で，指定したkeyまたはグループが格納されるEADSサーバを知りたい場合に指定します。

このオプションを指定すると，コマンドを実行するEADSサーバのクラスタ定義ファイルの内容を読み込みます。

次の場合は，エラーとなります。

コマンドを実行するEADSサーバにクラスタ定義ファイルが存在しない場合

クラスタ定義のeads.node.＜EADSサーバID＞.addressパラメタおよびeads.node.＜EADSサーバID＞.portパラメタが定義されていない場合

注意事項

稼働中のクラスタ構成情報で，指定したkeyまたはグループが格納されるEADSサーバを知りたい場合は，このオプションを指定しないで実行してください。

なお，このオプションを指定しない場合，ダウンしているEADSサーバの情報は表示されません。表示されるEADSサーバ数とReplicationCount（データの多重度）を比較することで，データのコピー状況を確認します。

(c)　--format ＜フォーマット名＞

このオプションの詳細については，「14.4.2　表示形式の指定方法」を参照してください。

(d)　--columns ＜列名＞［,＜列名＞］…

このオプションの詳細については，「14.4.3　列のフィルタリングの指定方法」を参照してください。

(e)　--filter ＜フィルタの条件＞

このオプションの詳細については，「14.4.4　行のフィルタリングの指定方法」を参照してください。

(f)　--match ＜一致条件＞

このオプションの詳細については，「14.4.5　条件一致の指定方法」を参照してください。

(5)　出力例

eztool getpositionコマンドの実行結果の出力例を次に示します。

表示の構成要素については，「14.4.1　表示内容の構成要素」を参照してください。

サマリとメインの表示内容を，それぞれ次の表に示します。

表14‒25　eztool getpositionコマンドのサマリの表示内容

項番

サマリ名

説明

1

ReplicationCount

データの多重度

2

HashValue

指定されたkeyまたはグループ名のハッシュ値

表14‒26　eztool getpositionコマンドのメインの表示内容

項番

列名

説明

1

No.

データの優先度※

昇順で表示されます。

2

IP_Address

EADSサーバのIPアドレス

3

ClientPort

EADSクライアントとの通信に使用するEADSサーバのポート番号

4

Position

EADSサーバの位置（ハッシュ値）

注※

データを多重化している場合，データの格納先EADSサーバ，データのコピー先EADSサーバの順に表示されます。

この例の場合，No.1に表示されているEADSサーバがデータの格納先，No.2以降に表示されているEADSサーバが，データのコピー先となります。

(6)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒27　eztool getpositionコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

150

コマンド実行中に失敗しました。

8

200

コマンドタイムアウトで失敗しました。

--matchオプションを指定した場合

条件に一致した場合は0，一致しなかった場合は1を，リターンコードとして返します。ただし，コマンドの実行に失敗したときは，--matchオプションを指定しなかった場合と同じになります。

(7)　注意事項

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

すべてのEADSサーバが縮退状態（isolated）の場合はエラーとなります。

14.3.11　storeusage（レンジおよびキャッシュの使用状況の確認）

(1)　機能

格納されているkeyの数，およびメモリ使用量をレンジ単位で表示します。また，レンジ単位，キャッシュ単位に設定されている，データ総量監視の上限値を表示します。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，クラスタへの参加状況がonlineのEADSサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADSサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADSサーバが次の状態のときに実行できます。

初期化中（initializing）

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

(3)　形式

eztool storeusage ［--replica|--cache ＜キャッシュ名＞］
                  ［--format ＜フォーマット名＞］
                  ［--columns ＜列名＞［,＜列名＞］…］
                  ［--filter ＜フィルタの条件＞］
                  ［--match ＜一致条件＞］

(4)　オプションおよび引数

(a)　--replica

多重化によってコピーされたkeyの数も確認したい場合に指定します。

このオプションを指定しない場合，多重化によってコピーされたkeyの数は含まれません。

(b)　--cache ＜キャッシュ名＞

特定のキャッシュのkeyの数およびメモリ使用量を，レンジ単位で表示したい場合に指定します。ディスクキャッシュまたは2Wayキャッシュの場合は，ディスクの使用量とその上限値が表示されます。

キャッシュ名に指定できる文字を次に示します。

キャッシュ作成時にキャッシュ定義ファイルを使用しなかった場合

半角32文字までの，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

キャッシュ作成時にキャッシュ定義ファイルを使用した場合

半角32文字までの，半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

このオプションを指定しない場合は，各キャッシュのkeyの数をレンジごとに合計した値が，keyの総数として表示されます。

(c)　--format ＜フォーマット名＞

このオプションの詳細については，「14.4.2　表示形式の指定方法」を参照してください。

(d)　--columns ＜列名＞［,＜列名＞］…

このオプションの詳細については，「14.4.3　列のフィルタリングの指定方法」を参照してください。

(e)　--filter ＜フィルタの条件＞

このオプションの詳細については，「14.4.4　行のフィルタリングの指定方法」を参照してください。

(f)　--match ＜一致条件＞

このオプションの詳細については，「14.4.5　条件一致の指定方法」を参照してください。

(5)　出力例

eztool storeusageコマンドの実行結果の出力例を次に示します。

表示の構成要素については，「14.4.1　表示内容の構成要素」を参照してください。

■--replicaオプションおよび--cacheオプションを指定しない場合

■--replicaオプションを指定する場合

■--cacheオプションを指定する場合

メインの表示内容を次の表に示します。

表14‒28　eztool storeusageコマンドのメインの表示内容

項番

列名

説明

表示の有無

--replicaオプションまたは--cacheオプションの指定

どちらも指定なし

--replicaオプション指定あり

---cacheオプション指定あり

1

RangeID

レンジID

○

○

○

2

StartPosition

各レンジの開始位置（ハッシュ値）※1

位置（ハッシュ値）は降順で表示されます。

○

○

○

3

EndPosition

各レンジの終了位置（ハッシュ値）※1

○

○

○

4

Server

各レンジのデータの格納先EADSサーバのIPアドレス，およびEADSクライアントとの通信に使用するEADSサーバのポート番号※2

次の形式で表示されます。

IPアドレス:ポート番号

○

○

○

5

StoredExternalHeapSize

メモリキャッシュおよび2Wayキャッシュのメモリ使用量の合計※3

（単位：メガバイト）

小数点以下の値は切り捨てて表示されます。

ディスクキャッシュのメモリ使用量は0として扱われます。

○

○

○

6

ExternalHeapSizeLimit

メモリ使用量の上限値※3※4

（単位：メガバイト）

ディスクキャッシュの場合，0が表示されます。

○

×

×

7

StoredDiskSize

ディスクキャッシュまたは2Wayキャッシュのディスク使用量※3※5

（単位：メガバイト）

小数点以下の値は切り捨てて表示されます。

×

×

○

8

DiskSizeLimit

ディスクキャッシュまたは2Wayキャッシュのディスク使用量の上限値※3※4※5

（単位：メガバイト）

×

×

○

9

RangeKeyCount

各レンジのkeyの総数※3

多重化によってコピーされたkeyの数は含みません。

○

×

○

10

KeyCountLimit

各レンジのkeyの総数の上限値※3※4

多重化によってコピーされるkeyの数は含みません。

○

×

×

11

KeyCount(ServerID:x Position:y)※6

EADSサーバごとの各レンジのkeyの総数※3

多重化によってコピーされたkeyの数も含みます。

縮退状態（isolated），または起動していないEADSサーバのkeyの数は含みません。

データを多重化している場合，EADSサーバの位置（ハッシュ値）の降順に表示されます。

コマンド実行時点での値を取得するため，データの格納先EADSサーバとコピー先EADSサーバで値が異なる場合があります。

データの格納先でもコピー先でもないEADSサーバの場合，何も表示されません。

×

○

×

（凡例）

○：表示されます。

×：表示されません。

注※1

各レンジの範囲を次に示します。

StartPositionの値がEndPositionの値よりも小さい場合

StartPositionの値からEndPositionの値までの範囲

StartPositionの値がEndPositionの値よりも大きい場合

次に示す範囲を合わせた範囲となります。

・StartPositionの値から2,147,483,647までの範囲

・-2,147,483,648からEndPositionの値までの範囲

注※2

該当するレンジのデータの格納先EADSサーバ，およびデータのコピー先EADSサーバが，すべて縮退状態（isolated）またはプロセスダウンしている場合，ハイフン（-）が表示されます。

注※3

該当するレンジの情報が取得できない場合，ハイフン（-）が表示されます。

注※4

データ総量監視機能が無効になっている場合，ハイフン（-）が表示されます。

注※5

メモリキャッシュの場合，ハイフン（-）が表示されます。

注※6

xには，EADSサーバのサーバIDが表示されます。yには，EADSサーバの位置（ハッシュ値）が表示されます。

(6)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒29　eztool storeusageコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

150

コマンド実行中に失敗しました。

8

200

コマンドタイムアウトで失敗しました。

--matchオプションを指定した場合

条件に一致した場合は0，一致しなかった場合は1を，リターンコードとして返します。ただし，コマンドの実行に失敗したときは，--matchオプションを指定しなかった場合と同じになります。

(7)　注意事項

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

スケールアウト処理の実行中，またはリバランス処理の実行中は，クラスタの構成が変更されることが原因で，このサブコマンドの実行に失敗することがあります。

リバランス処理の実行中にこのサブコマンドを実行すると，一時的に次の値が少なく表示されることがあります。

StoredExternalHeapSize

RangeKeyCount

KeyCount(ServerID:x Position:y)

リバランス処理の実行中にこのサブコマンドを実行すると，一時的に次の値が小さくなることがあります。

ExternalHeapSizeLimit

KeyCountLimit

14.3.12　unlock（排他解除）

(1)　機能

コマンドの排他を解除します。

詳細については，「14.3.1　コマンド間の排他制御」を参照してください。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，クラスタへの参加状況がonlineのEADSサーバを処理対象とします。ただし，次の場合は実行できません。

実行中の操作がある場合

クラスタへの参加状況がstandbyのEADSサーバがクラスタ内にある場合

クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞状態（closed）

(3)　形式

eztool unlock

(4)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒30　eztool unlockコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

131

ほかのコマンドが実行中のため失敗しました。

8

150

コマンド実行中に失敗しました。

9

200

コマンドタイムアウトで失敗しました。

(5)　注意事項

すべてのEADSサーバが縮退状態（isolated）の場合はエラーとなります。

14.3.13　createcache（キャッシュの作成）

(1)　機能

キャッシュを作成します。

キャッシュはメモリキャッシュ，ディスクキャッシュ，および2Wayキャッシュの合計で，クラスタ内に最大16個作成できます。

(2)　規則

このサブコマンドは，クラスタの状態がクラスタ稼働中（AVAILABLE）のときに実行できます。

このサブコマンドは，クラスタへの参加状況がonlineのEADSサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADSサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

閉塞状態（closed）

稼働中のFullGCの発生を抑えるため，このサブコマンドが終了するタイミングで，各EADSサーバがFullGCを実施します。

このサブコマンドがEADSサーバから排他を取得している間，EADSサーバは縮退状態（isolated）になりません。なお，EADSサーバから排他を取得している間にプロセスがダウンしたり，EADSサーバが停止したりした場合は，排他を解除したあとに縮退が実行されます。

(3)　形式

eztool createcache ＜キャッシュ名＞

(4)　オプションおよび引数

(a)　＜キャッシュ名＞

新しく作成するキャッシュの名称を指定します。

キャッシュ名に指定できる文字を次に示します。

キャッシュ定義ファイルを使用しない場合

半角32文字までの，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

キャッシュ定義ファイルを使用する場合

半角32文字までの，半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

(5)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒31　eztool createcacheコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

131

ほかのコマンドが実行中のため失敗しました。

8

150

コマンド実行中に失敗しました。

9

200

コマンドタイムアウトで失敗しました。

(6)　注意事項

キャッシュ定義ファイルを作成していない場合は，メモリキャッシュが作成されます。

キャッシュタイプがメモリキャッシュまたは2Wayキャッシュの場合，次に示す条件に該当するとエラーになります。

データ総量監視機能が有効な場合

共通設定のeads.java.external.heapsizeパラメタのvalue部分が格納される領域のサイズを多重度で割った結果が1メガバイト未満のとき

データ総量監視機能が無効な場合

共通設定のeads.java.external.heapsizeパラメタのvalue部分が格納される領域のサイズが0のとき

キャッシュを作成すると，キャッシュ1個につき，（データの多重度×2−1）×2個のスレッドが作成されます。スレッド数が多くなると，メモリ使用量が増加するため，注意してください。

キャッシュの作成に失敗した場合，次のどれかの手順で再度キャッシュを作成してください。

eztool listcacheコマンドでキャッシュの有無を確認してください。キャッシュが存在しているときは，eztool deletecacheコマンドでキャッシュを削除して，再度キャッシュを作成してください。

キャッシュタイプがディスクキャッシュまたは2Wayキャッシュのときは，eztool listecfコマンドでキャッシュファイルの有無を確認してください。キャッシュファイルが存在しているときは，eztool deleteecfコマンドでキャッシュファイルを削除して，再度キャッシュを作成してください。

キャッシュ定義ファイルに指定したパラメタの指定値を確認してください。誤っているときは，正しい値に変更して，再度キャッシュを作成してください。

共通設定のeads.java.external.heapsizeパラメタの指定値を確認してください。誤っているときは，正しい値に変更して，再度キャッシュを作成してください。

14.3.14　deletecache（キャッシュの削除）

(1)　機能

キャッシュを削除します。

このサブコマンドを実行すると，キャッシュと，そのキャッシュが持つデータが削除されます。

(2)　規則

このサブコマンドは，クラスタの状態がクラスタ稼働中（AVAILABLE）のときに実行できます。

このサブコマンドは，クラスタへの参加状況がonlineのEADSサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADSサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

閉塞状態（closed）

稼働中のFullGCの発生を抑えるため，このサブコマンドが終了するタイミングで，各EADSサーバがFullGCを実施します。

このサブコマンドがEADSサーバから排他を取得している間，EADSサーバは縮退状態（isolated）になりません。なお，EADSサーバから排他を取得している間にプロセスがダウンしたり，EADSサーバが停止したりした場合は，排他を解除したあとに縮退が実行されます。

(3)　形式

eztool deletecache ＜キャッシュ名＞
                   ［--with_deleteecf］

(4)　オプションおよび引数

(a)　＜キャッシュ名＞

削除するキャッシュの名称を指定します。

キャッシュ名に指定できる文字を次に示します。

キャッシュ作成時にキャッシュ定義ファイルを使用しなかった場合

半角32文字までの，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

キャッシュ作成時にキャッシュ定義ファイルを使用した場合

半角32文字までの，半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

(b)　--with_deleteecf

ディスクキャッシュまたは2Wayキャッシュを削除する場合で，キャッシュファイルもあわせて削除したいときに指定します。

(5)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒32　eztool deletecacheコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

131

ほかのコマンドが実行中のため失敗しました。

8

150

コマンド実行中に失敗しました。

9

200

コマンドタイムアウトで失敗しました。

14.3.15　export（データの書き出し）

(1)　機能

メモリキャッシュのデータをストアデータファイルに書き出します。

メモリキャッシュが存在しない場合は，実行されません。

(2)　規則

このサブコマンドは，クラスタの状態がクラスタ稼働中（AVAILABLE）のときに実行できます。

このサブコマンドは，クラスタへの参加状況がonlineのEADSサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADSサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADSサーバが閉塞状態（closed）のときに実行できます。

-sまたは--singleオプションを指定した場合は，クラスタの状態に関係なく，EADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

縮退状態（isolated）

稼働中のFullGCの発生を抑えるため，このサブコマンドが終了するタイミングで，各EADSサーバがFullGCを実施します。ただし，-sまたは--singleオプションを指定した場合は，FullGCを実施しません。

このサブコマンドがEADSサーバから排他を取得している間，EADSサーバは縮退状態（isolated）になりません。なお，EADSサーバから排他を取得している間にプロセスがダウンしたり，EADSサーバが停止したりした場合は，排他を解除したあとに縮退が実行されます。

(3)　形式

eztool export ［-s］
              ［-d ＜ストアデータファイルの出力先パス名＞］
              ［＜ストアデータファイルキー＞］

(4)　オプションおよび引数

(a)　-sまたは--single

障害運用で使用するためのオプションです。通常運用および保守運用では使用しないでください。

このコマンドは，クラスタ動作不能（NOT_AVAILABLE），またはクラスタ一部稼働中（PARTIALLY_AVAILABLE）となり，eztool exportコマンドによるデータのバックアップができない場合に指定します。

クラスタ全体で保持するデータではなく，コマンドを実行するEADSサーバが保持するデータだけを書き出します。

このオプションを指定した場合，EADSサーバから排他を取得しないため，データの書き出しと次に示す処理を同時に行った場合，動作は保証されません。

キャッシュの作成および削除

データの更新操作，またはデータの更新を伴う操作（復旧処理，スケールアウト処理，またはリバランス処理など）

ストアデータファイルの削除

また，eztool statusコマンドで，実行中のOperationとして表示されません。

(b)　-dまたは--directory ＜ストアデータファイルの出力先パス名＞

ストアデータファイルの出力先パス名を指定します。

指定したディレクトリ下にストアデータファイルを出力したい場合に指定します。

パス名には，アスタリスク（*），二重引用符（"），疑問符（?），縦線（|），小なり演算子（<），大なり演算子（>）を含むディレクトリは指定できません。

ストアデータファイルの出力先パスに相対パスを指定した場合，各EADSサーバの運用ディレクトリが起点となります。

(c)　＜ストアデータファイルキー＞

ストアデータファイルのストアデータファイルキーを指定します。

ストアデータファイルキーは，半角32文字までです。半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_）またはハイフン（-）が指定できます。

また，ストアデータファイルキーには，自動的に接頭辞（eads_またはeads_single_）と接尾辞（_EADSサーバID.拡張子）が付きます。拡張子は「.esd」です。

ストアデータファイルキーを省略すると，次の表に示すように，コマンド実行日時がストアデータファイルキーとなります。

-sまたは--singleオプション指定

ストアデータファイル名

世代管理の対象

なし

eads_[YYYYMMDDhhmmss]_[EADSサーバID].esd

対象

あり

eads_single_[YYYYMMDDhhmmss]_[EADSサーバID].esd

対象外

（凡例）

[YYYYMMDDhhmmss]：コマンド実行日時

YYYY：年，MM：月，DD：日，hh：時（00〜23），mm：分，ss：秒

(5)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒33　eztool exportコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

131

ほかのコマンドが実行中のため失敗しました。

8

150

コマンド実行中に失敗しました。

9

200

コマンドタイムアウトで失敗しました。

(6)　注意事項

次に示す形式のストアデータファイルキーを指定すると，世代管理の対象になる場合があります。ストアデータファイルを世代管理の対象にしたくない場合は，同じ形式にならないように指定してください。

ストアデータファイルキーを省略した場合と同じ形式

eads_[YYYYMMDDhhmmss]_[EADSサーバID].esd

eztool stopコマンド実行時に出力されるストアデータファイル名と同じ形式

eads_stop_[YYYYMMDDhhmmss]_[EADSサーバID].esd

（凡例）

[YYYYMMDDhhmmss]：コマンド実行日時

YYYY：年，MM：月，DD：日，hh：時（00〜23），mm：分，ss：秒

また，eztool stopコマンド実行時に出力されるストアデータファイル名と同じ形式の場合，削除されるおそれがあるため，注意してください。詳細については，「7.6.2　ストアデータファイルの世代数の設定」を参照してください。

14.3.16　import（データの読み込み）

(1)　機能

メモリキャッシュのデータを書き出したストアデータファイルから，データを読み込みます。

ストアデータファイルのデータを再度putすることで，データを再配置します。

(2)　規則

このサブコマンドは，クラスタの状態がクラスタ稼働中（AVAILABLE）のときに実行できます。

このサブコマンドは，クラスタへの参加状況がonlineのEADSサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADSサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADSサーバが初期化状態（initialized）のときに実行できます。

稼働中のFullGCの発生を抑えるため，このサブコマンドが終了するタイミングで，各EADSサーバがFullGCを実施します。

このサブコマンドがEADSサーバから排他を取得している間，EADSサーバは縮退状態（isolated）になりません。なお，EADSサーバから排他を取得している間にプロセスがダウンしたり，EADSサーバが停止したりした場合は，排他を解除したあとに縮退が実行されます。

(3)　形式

eztool import ［-d ＜ストアデータファイルの格納先パス名＞］
              ［--convertid ＜EADSサーバID変換ルール＞］
              ［＜ストアデータファイルキー＞］

(4)　オプションおよび引数

(a)　-dまたは--directory ＜ストアデータファイルの格納先パス名＞

ストアデータファイルの格納先パス名を指定します。

指定したディレクトリ下にあるストアデータファイルだけを読み込みたい場合に指定します。

パス名には，アスタリスク（*），二重引用符（"），疑問符（?），縦線（|），小なり演算子（<），大なり演算子（>）を含むディレクトリは指定できません。

ストアデータファイルの格納先パスに相対パスを指定した場合，各EADSサーバの運用ディレクトリが起点となります。

(b)　--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,, ,」

(c)　＜ストアデータファイルキー＞

ストアデータファイルのストアデータファイルキーを指定します。

eztool exportコマンドまたはeztool stopコマンド実行時に出力されたストアデータファイルのストアデータファイルキーを指定します。

ストアデータファイルキーを省略すると，eztool listesdコマンドで，latestに表示される最新のストアデータファイルキーのストアデータファイルを自動的に読み込みます。

読み込み対象となるストアデータファイル名を次に示します。

ストアデータファイルを出力したコマンド

ストアデータファイル名

eztool export

eads_[YYYYMMDDhhmmss]_[EADSサーバID].esd

eztool stop

eads_stop_[YYYYMMDDhhmmss]_[EADSサーバID].esd

（凡例）

[YYYYMMDDhhmmss]：コマンド実行日時

YYYY：年，MM：月，DD：日，hh：時（00〜23），mm：分，ss：秒

ストアデータファイルが各EADSサーバ，またはストアデータファイルの格納先ディレクトリ下に複数ある場合，コマンド実行日時が最新のストアデータファイルを自動的に読み込みます。

コマンド実行日時が同じ（EADSサーバIDだけ異なる）ストアデータファイルが複数ある場合，該当するすべてのストアデータファイルを読み込みます。

また，eztool exportコマンド実行時に出力されたストアデータファイルと，eztool stopコマンド実行時に出力されたストアデータファイルのコマンド実行日時が同じ場合，eztool exportコマンド実行時に出力されたストアデータファイルを優先して読み込みます。

(5)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒34　eztool importコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義の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)　注意事項

壊れている，または不正なストアデータファイルは読み込みません。

03-00より古いバージョンのEADSサーバで出力したストアデータファイルを読み込んだ場合，動作は保証されません。

データを一つ一つ登録し直すため，データ数やデータ量によっては，かなりの時間が掛かります。

ストアデータファイルのデータをputする際，キャッシュに同じ名称のkeyが存在する場合は，keyの更新日時をチェックして，ストアデータファイルの更新日時の方が新しいときにだけデータを上書きします。

データ自動削除機能を使用する場合は，レンジごとのしきい値を超えるデータは読み捨てられます。ただし，全レンジでしきい値の上限を超えた場合でも，putするkeyのデータがすでに存在する場合に更新時刻が新しいデータがあれば上書きできるように，読み込み処理は継続します。

EADSサーバID指定グループを含むkeyのデータを登録する際に，指定されたEADSサーバIDのレンジが存在しない場合，そのデータは登録しません。このとき，1回だけ警告メッセージが出力されます。

このサブコマンドの実行中，データ総量監視機能は動作しません。

データ自動削除機能を使用している場合，eztool exportコマンドに-sまたは--singleオプションを指定して出力したストアデータファイルは読み込まないで，eztool createcacheコマンドでキャッシュを再作成し，必要に応じてデータを再投入することを推奨します。また，eztool exportコマンドに-sまたは--singleオプションを指定して出力したストアデータファイルを読み込む場合は，データ自動削除機能のしきい値（eads.cache.eviction.keyCountパラメタの指定値）をストアデータファイル出力時に設定してあったしきい値よりも小さい値に変更しないでください。

14.3.17　deleteesd（ストアデータファイルの削除）

(1)　機能

指定されたストアデータファイルをクラスタから削除します。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，クラスタへの参加状況がonlineのEADSサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADSサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞状態（closed）

(3)　形式

eztool deleteesd ［-d ＜ストアデータファイルの格納先パス名＞］
                  ＜ストアデータファイルキー＞

(4)　オプションおよび引数

(a)　-dまたは--directory ＜ストアデータファイルの格納先パス名＞

ストアデータファイルの格納先パス名を指定します。

指定したディレクトリ下にあるストアデータファイルだけを削除したい場合に指定します。

パス名には，アスタリスク（*），二重引用符（"），疑問符（?），縦線（|），小なり演算子（<），大なり演算子（>）を含むディレクトリは指定できません。

ストアデータファイルの格納先パスに相対パスを指定した場合，各EADSサーバの運用ディレクトリが起点となります。

(b)　＜ストアデータファイルキー＞

クラスタから削除するストアデータファイルのストアデータファイルキーを指定します。

eztool exportコマンドまたはeztool stopコマンド実行時に出力されたストアデータファイルのストアデータファイルキーを指定します。

ストアデータファイルキーは，半角32文字までです。半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_）またはハイフン（-）が指定できます。

(5)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒35　eztool deleteesdコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

131

ほかのコマンドが実行中のため失敗しました。

8

150

コマンド実行中に失敗しました。

9

200

コマンドタイムアウトで失敗しました。

(6)　注意事項

指定したストアデータファイルキーのストアデータファイルはすべて削除されます。

例えば，ストアデータファイルキーに「20111101130203」を指定してこのコマンドを実行した場合，各EADSサーバにあるeads_20111101130203_[EADSサーバID].esdファイルはすべて削除されます。

14.3.18　put（指定したデータの格納）

(1)　機能

指定したvalueをkeyに関連づけて格納します。

このサブコマンドは，構築後の実行環境が正常に動作するかどうかテストするために使用します。

(2)　規則

このサブコマンドはEADSサーバが稼働状態（running）のときに実行できます。

(3)　形式

eztool put ＜キャッシュ名＞ ＜key＞ ＜value＞

(4)　オプションおよび引数

(a)　＜キャッシュ名＞

valueを格納するキャッシュの名称を指定します。

キャッシュ名に指定できる文字を次に示します。

キャッシュ作成時にキャッシュ定義ファイルを使用しなかった場合

半角32文字までの，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

キャッシュ作成時にキャッシュ定義ファイルを使用した場合

半角32文字までの，半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

(b)　＜key＞

格納するvalueに関連づけられたkeyを指定します。

keyとして指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(c)　＜value＞

格納するvalueを指定します。

valueには，半角1,024文字までの文字列（java.lang.String）が指定できます。

(5)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒36　eztool putコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

120

構文不正で失敗しました。

4

150

コマンド実行中に失敗しました。

5

200

コマンドタイムアウトで失敗しました。

(6)　注意事項

APIで操作したデータをコマンドで操作したり，コマンドで操作したデータをAPIで操作したりすることができます。

ただし，keyやvalueに指定できるデータ型とサイズについて，APIとの完全な互換性はありません。例えば，このコマンドで文字列（java.lang.String）以外のオブジェクトや，半角1,024文字以上のvalueを格納することはできません。

14.3.19　get（指定したデータの取得）

(1)　機能

指定したvalueを取得します。

このサブコマンドは，構築後の実行環境が正常に動作するかどうかテストするために使用します。

(2)　規則

このサブコマンドはEADSサーバが稼働状態（running）のときに実行できます。

(3)　形式

eztool get ＜キャッシュ名＞ ＜key＞
           ［--format ＜フォーマット名＞］
           ［--columns ＜列名＞［,＜列名＞］…］
           ［--filter ＜フィルタの条件＞］
           ［--match ＜一致条件＞］

(4)　オプションおよび引数

(a)　＜キャッシュ名＞

取得するvalueが格納されているキャッシュの名称を指定します。

キャッシュ名に指定できる文字を次に示します。

キャッシュ作成時にキャッシュ定義ファイルを使用しなかった場合

半角32文字までの，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

キャッシュ作成時にキャッシュ定義ファイルを使用した場合

半角32文字までの，半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

(b)　＜key＞

取得するvalueに関連づけられたkeyを指定します。

keyとして指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(c)　--format ＜フォーマット名＞

このオプションの詳細については，「14.4.2　表示形式の指定方法」を参照してください。

(d)　--columns ＜列名＞［,＜列名＞］…

このオプションの詳細については，「14.4.3　列のフィルタリングの指定方法」を参照してください。

(e)　--filter ＜フィルタの条件＞

このオプションの詳細については，「14.4.4　行のフィルタリングの指定方法」を参照してください。

(f)　--match ＜一致条件＞

このオプションの詳細については，「14.4.5　条件一致の指定方法」を参照してください。

(5)　出力例

eztool getコマンドの実行結果の出力例を次に示します。

表示の構成要素については，「14.4.1　表示内容の構成要素」を参照してください。

サマリの表示内容を次の表に示します。

表14‒37　eztool getコマンドのサマリの表示内容

項番

サマリ名

説明

1

Value

取得したvalue

2

ValueSize

取得したvalueのサイズ（単位：バイト）

(6)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒38　eztool getコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

120

構文不正で失敗しました。

4

150

コマンド実行中に失敗しました。

5

200

コマンドタイムアウトで失敗しました。

--matchオプションを指定した場合

条件に一致した場合は0，一致しなかった場合は1を，リターンコードとして返します。ただし，コマンドの実行に失敗したときは，--matchオプションを指定しなかった場合と同じになります。

(7)　注意事項

APIで操作したデータをコマンドで操作したり，コマンドで操作したデータをAPIで操作したりすることができます。

ただし，keyやvalueに指定できるデータ型とサイズについて，APIとの完全な互換性はありません。

--formatオプション，--columnsオプション，および--filterオプションは，指定しても効果がありません。今後の機能拡張を考慮して，あらかじめ用意しています。

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

14.3.20　remove（指定したデータの削除）

(1)　機能

指定したkey，およびkeyに関連づけられたvalueを削除します。

このサブコマンドは，構築後の実行環境が正常に動作するかどうかテストするために使用します。

(2)　規則

このサブコマンドはEADSサーバが稼働状態（running）のときに実行できます。

(3)　形式

eztool remove ＜キャッシュ名＞ ＜key＞

(4)　オプションおよび引数

(a)　＜キャッシュ名＞

削除するvalueが格納されているキャッシュの名称を指定します。

キャッシュ名に指定できる文字を次に示します。

キャッシュ作成時にキャッシュ定義ファイルを使用しなかった場合

半角32文字までの，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

キャッシュ作成時にキャッシュ定義ファイルを使用した場合

半角32文字までの，半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

(b)　＜key＞

削除するvalueに関連づけられたkeyを指定します。

keyとして指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(5)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒39　eztool removeコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

120

構文不正で失敗しました。

4

150

コマンド実行中に失敗しました。

5

200

コマンドタイムアウトで失敗しました。

(6)　注意事項

APIで操作したデータをコマンドで操作したり，コマンドで操作したデータをAPIで操作したりすることができます。

ただし，keyやvalueに指定できるデータ型とサイズについて，APIとの完全な互換性はありません。

14.3.21　removeall（全データの削除）

(1)　機能

指定した範囲のkey，およびkeyに関連づけられたvalueをすべて削除します。

(2)　規則

このサブコマンドは，EADSサーバが稼働状態（running）のときに実行できます。

EADSサーバの位置（Position）の降順に実行します。

(3)　形式

eztool removeall ［-g ＜グループ名＞|-s］ ＜キャッシュ名＞

(4)　オプションおよび引数

(a)　-gまたは--group ＜グループ名＞

特定のグループに属しているvalueを削除したい場合に指定します。

グループ名として指定できるデータについては，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

(b)　-sまたは--single

サブコマンドを実行するEADSサーバがマスタ（コピー元）となるvalueを削除したい場合に指定します。

(c)　＜キャッシュ名＞

削除するvalueが格納されているキャッシュの名称を指定します。

キャッシュ名に指定できる文字を次に示します。

キャッシュ作成時にキャッシュ定義ファイルを使用しなかった場合

半角32文字までの，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

キャッシュ作成時にキャッシュ定義ファイルを使用した場合

半角32文字までの，半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

(5)　リターンコード

表14‒40　eztool removeallコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

120

構文不正で失敗しました。

4

150

コマンド実行中に失敗しました。

5

200

コマンドタイムアウトで失敗しました。

(6)　注意事項

このサブコマンドを実行すると，APを作成しなくても，指定範囲のvalueをすべて削除できます。ただし，次に示す場合など，このサブコマンドのオプションや引数で目的を達成できない場合は，APを作成する必要があります。

keyを複数指定して，各keyに関連づけられたvalueを削除したい場合

一部のデータの削除に失敗した際の処理を実装したい場合

このサブコマンドの実行中にデータが追加された場合，追加されたデータが格納された領域によって，次のように動作します。

データが削除済みの領域に，追加されたデータが格納されたとき

追加されたデータは削除されません。

データが削除されていない領域に，追加されたデータが格納されたとき

追加されたデータは削除されます。

このサブコマンドの実行中に，EADSサーバがクラスタに追加または復旧された場合，追加または復旧されたEADSサーバが実行対象から外れて，一部のデータが削除されないことがあります。その場合は，このサブコマンドを再実行してください。

14.3.22　listfunc（ユーザファンクションの実行可否の表示）

(1)　機能

ユーザファンクションの実行可否を表示します。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，クラスタへの参加状況がonlineのEADSサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADSサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

(3)　形式

eztool listfunc ［-v］ ［＜ユーザファンクション名＞］
                ［--format ＜フォーマット名＞］
                ［--columns ＜列名＞［,＜列名＞］…］
                ［--filter ＜フィルタの条件＞］
                ［--match ＜一致条件＞］

(4)　オプションおよび引数

(a)　-vまたは--verbose

コマンド実行結果の詳細を表示したい場合に指定します。

(b)　＜ユーザファンクション名＞

実行可否を表示したいユーザファンクション名を指定します。

指定したユーザファンクションの情報だけを表示したい場合に指定します。

ユーザファンクション名には，半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数に制限はありません。

(c)　--format ＜フォーマット名＞

このオプションの詳細については，「14.4.2　表示形式の指定方法」を参照してください。

(d)　--columns ＜列名＞［,＜列名＞］…

このオプションの詳細については，「14.4.3　列のフィルタリングの指定方法」を参照してください。

(e)　--filter ＜フィルタの条件＞

このオプションの詳細については，「14.4.4　行のフィルタリングの指定方法」を参照してください。

(f)　--match ＜一致条件＞

このオプションの詳細については，「14.4.5　条件一致の指定方法」を参照してください。

(5)　出力例

eztool listfuncコマンドの実行結果の出力例を次に示します。

表示の構成要素については，「14.4.1　表示内容の構成要素」を参照してください。

(a)　-vまたは--verboseオプションを指定しない場合

サマリとメインの表示内容を，それぞれ次の表に示します。

表14‒41　eztool listfuncコマンドのサマリの表示内容（-vまたは--verboseオプションの指定なし）

項番

サマリ名

説明

1

FunctionCount

ユーザファンクションの総数

ユーザファンクション名を指定した場合は表示されません。

表14‒42　eztool listfuncコマンドのメインの表示内容（-vまたは--verboseオプションの指定なし）

項番

列名

説明

1

FunctionName

ユーザファンクション名

ユーザファンクション名を指定した場合は，指定したユーザファンクション名だけが表示されます。

自然順序順で表示されます。

2

Enable

ユーザファンクションを実行できる状態のEADSサーバ数

3

Disable

ユーザファンクションを実行できない状態のEADSサーバ数

(b)　-vまたは--verboseオプションを指定する場合

サマリとメインの表示内容を，それぞれ次の表に示します。

表14‒43　eztool listfuncコマンドのサマリの表示内容（-vまたは--verboseオプションの指定あり）

項番

サマリ名

説明

1

FunctionCount

ユーザファンクションの総数

ユーザファンクション名を指定した場合は表示されません。

表14‒44　eztool listfuncコマンドのメインの表示内容（-vまたは--verboseオプションの指定あり）

項番

列名

説明

1

Server

EADSサーバのIPアドレス，およびEADSクライアントとの通信に使用するEADSサーバのポート番号

次の形式で表示されます。

IPアドレス:ポート番号

2

FunctionName

ユーザファンクション名

ユーザファンクション名を指定した場合は，指定したユーザファンクション名だけが表示されます。

3

Status

ユーザファンクションの実行可否

次のどちらかが表示されます。

enable

実行できる

disable

実行できない

ユーザファンクションが存在しない場合，noneと表示されます。

注

実行結果は，次の優先順位に従って表示されます。

Serverの値の自然順序順に表示されます。

Serverの値が同じ行は，FunctionNameの値の自然順序順に表示されます。

(6)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒45　eztool listfuncコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

150

コマンド実行中に失敗しました。

8

200

コマンドタイムアウトで失敗しました。

--matchオプションを指定した場合

条件に一致した場合は0，一致しなかった場合は1を，リターンコードとして返します。ただし，コマンドの実行に失敗したときは，--matchオプションを指定しなかった場合と同じになります。

(7)　注意事項

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

14.3.23　execfunc（ユーザファンクションの実行）

(1)　機能

指定したユーザファンクションを実行します。

ユーザファンクションを実行するEADSクライアントを構築しなくても，このコマンドでユーザファンクションを実行できます。

(2)　規則

このサブコマンドはEADSサーバが稼働状態（running）のときに実行できます。

EADSサーバの位置（Position）の降順にユーザファンクションを実行します。実行途中で，一部のEADSサーバでユーザファンクションの実行に失敗しても，処理を継続します。

(3)　形式

eztool execfunc ［-k ＜key＞|-g ＜グループ名＞|-s］
                ＜キャッシュ名＞ ＜ユーザファンクション名＞ ［＜ユーザファンクション引数＞］
                ［--format ＜フォーマット名＞］
                ［--columns ＜列名＞［,＜列名＞］…］
                ［--filter ＜フィルタの条件＞］
                ［--match ＜一致条件＞］

(4)　オプションおよび引数

(a)　-kまたは--key ＜key＞

指定したkeyが格納されているEADSサーバでユーザファンクションを実行したい場合に指定します。

keyとして指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(b)　-gまたは--group ＜グループ名＞

指定したグループが格納されているEADSサーバでユーザファンクションを実行したい場合に指定します。

グループ名として指定できるデータについては，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

(c)　-sまたは--single

コマンドを実行するEADSサーバだけでユーザファンクションを実行したい場合に指定します。

(d)　＜キャッシュ名＞

ユーザファンクションを実行するキャッシュの名称を指定します。

キャッシュ名に指定できる文字を次に示します。

キャッシュ作成時にキャッシュ定義ファイルを使用しなかった場合

半角32文字までの，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

キャッシュ作成時にキャッシュ定義ファイルを使用した場合

半角32文字までの，半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

(e)　＜ユーザファンクション名＞

実行したいユーザファンクション名を指定します。

ユーザファンクション名には，半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数に制限はありません。

(f)　＜ユーザファンクション引数＞

ユーザファンクションに特定の引数を渡したい場合に指定します。

省略した場合はnullが引数として渡されます。

ユーザファンクション引数には，半角1,024文字までの，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

(g)　--format ＜フォーマット名＞

このオプションの詳細については，「14.4.2　表示形式の指定方法」を参照してください。

(h)　--columns ＜列名＞［,＜列名＞］…

このオプションの詳細については，「14.4.3　列のフィルタリングの指定方法」を参照してください。

(i)　--filter ＜フィルタの条件＞

このオプションの詳細については，「14.4.4　行のフィルタリングの指定方法」を参照してください。

(j)　--match ＜一致条件＞

このオプションの詳細については，「14.4.5　条件一致の指定方法」を参照してください。

(5)　出力例

eztool execfuncコマンドの実行結果の出力例を次に示します。

表示の構成要素については，「14.4.1　表示内容の構成要素」を参照してください。

メインの表示内容を次の表に示します。

表14‒46　eztool execfuncコマンドのメインの表示内容

項番

列名

説明

1

Server

ユーザファンクションを実行したEADSサーバのIPアドレス，およびEADSクライアントとの通信に使用するEADSサーバのポート番号

次の形式で表示されます。

IPアドレス:ポート番号

自然順序順で表示されます。

2

Result

成功時

取得したユーザファンクションの実行結果オブジェクトのtoString()値

ただし，nullの場合は文字列の"null"が出力されます。

失敗時

発生した例外の情報

(6)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒47　eztool execfuncコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

120

構文不正で失敗しました。

4

150

コマンド実行中に失敗しました。

失敗時のリターンコードは，コマンドの実行に失敗した場合に返します。ユーザファンクション実行時に例外が発生した場合，コマンドは成功として扱います。例外の内容については，Resultの表示結果を参照してください。

5

200

コマンドタイムアウトで失敗しました。

--matchオプションを指定した場合

条件に一致した場合は0，一致しなかった場合は1を，リターンコードとして返します。ただし，コマンドの実行に失敗したときは，--matchオプションを指定しなかった場合と同じになります。

(7)　注意事項

通常のユーザファンクションとは異なり，ユーザファンクション引数と取得データの型は，文字列（java.lang.String）だけとなります。このコマンドを使用する場合は，この点を考慮してユーザファンクションを作成してください。

ただし，サイズの大きい文字列を使用すると，EADSサーバでGCが発生して性能に影響が出るおそれがあるので注意してください。

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

14.3.24　rebalance（レンジに格納できるkeyの数の均等化）

(1)　機能

クラスタ内の各EADSサーバのレンジに格納できるkeyの数が均等になるように，各EADSサーバの位置を変更して，レンジを分割および結合します（リバランス処理）。リバランス処理では，EADSサーバの位置を変更するので，データの格納先のEADSサーバが変わります。そのため，EADSサーバ間でデータの転送処理を行います。

EADSサーバを変更する位置や，変更する順序は，EADSが決定します。

EADSサーバの位置の変更が大きい場合（転送が必要なデータの量が多い場合）には，位置の変更処理を複数回に分けて，目標の位置に到達するまで変更処理を繰り返します。

(2)　規則

このサブコマンドは，クラスタの状態がクラスタ稼働中（AVAILABLE）のときに実行できます。

このサブコマンドは，処理対象のEADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞状態（closed）

このサブコマンドの処理対象は，クラスタへの参加状況がonlineのEADSサーバです。ただし，クラスタへの参加状況がofflineおよびstandbyのEADSサーバがクラスタ内にある場合は，このサブコマンドは実行できません。クラスタへの参加状況は，eztool statusコマンドで確認できます。

このサブコマンドは，次の場合には実行できません。

キャッシュタイプが，ディスクキャッシュまたは2Wayキャッシュであるキャッシュが存在する場合

データ自動削除機能を使用するキャッシュと，データ自動削除機能を使用しないキャッシュが混在する場合

データの多重度が1の場合

クラスタを構成するEADSサーバ数が「データの多重度×2−1」の場合

(3)　形式

eztool rebalance ［--datasize ＜送信データサイズ＞］［-i ＜送信間隔＞］

eztool rebalance ［--break］

(4)　オプションおよび引数

(a)　--datasize ＜送信データサイズ＞

データ転送で送信するデータサイズ（単位：バイト）を設定したい場合に，このオプションを指定します。

送信データサイズには，10240〜2147483647の整数が指定できます。

このオプションを指定しない場合，サーバ定義のeads.rebalance.transfer.datasizeパラメタに指定したデータサイズで，データを転送します。

(b)　-iまたは--interval ＜送信間隔＞

データを転送する間隔（単位：ミリ秒）を設定したい場合に，このオプションを指定します。

送信間隔には，1〜60000の整数が指定できます。

このオプションを指定しない場合，サーバ定義のeads.rebalance.transfer.intervalパラメタに指定した間隔で，データが転送されます。

(c)　--break

リバランス処理を中断したい場合に，このオプションを指定します。

リバランス処理の中断は，EADSサーバの位置の変更処理が完了するタイミングで行います。EADSサーバの位置を変更する際に，複数回，位置の変更処理をする場合，その1回の変更処理の完了時が中断の区切りとなります。EADSサーバの位置の変更処理の途中では中断できません。

(5)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒48　eztool rebalanceコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

1

1

すでに格納できるkeyの数が均等になっているため，リバランス処理を実行しませんでした。

3

10

10

--breakオプションが指定されましたが，リバランス処理は実行されていません。

4

11

11

--breakオプションが指定されましたが，すでにリバランス処理の中断が予約されています。

5

101

101

コマンドの初期化に失敗しました。

6

110

接続に失敗しました。

7

111

通信タイムアウトのため失敗しました。

8

120

構文不正のため失敗しました。

9

130

コマンドを実行できない状態のため失敗しました。

10

131

ほかのコマンドが実行中のため失敗しました。

11

150

コマンド実行中に失敗しました。

12

200

コマンドタイムアウトのため失敗しました。

(6)　注意事項

このサブコマンドは，EADSサーバが稼働状態（running）でも実行できますが，性能に影響が出るおそれがあるため，注意してください。

eztool rebalance --breakコマンドの実行中に，eztool rebalanceコマンドがタイムアウトまたは停止した場合は，eztool rebalance --breakコマンドは正常終了しません。eztool rebalance --breakコマンドがタイムアウトするまで待つか，またはeztool rebalance --breakコマンドを停止してください。

あるEADSサーバの位置の変更処理が終わってから，次の位置の変更処理が始まるまでの時間は，位置の変更処理の実行中とは見なされません。このため，eztool rebalance --breakコマンドを実行しても，EADSサーバの位置の変更処理が実行されていないというメッセージが出力され，中断できないことがあります。その場合は，eztool rebalance --breakコマンドが実行できるまで，コマンドを繰り返し実行してください。

クラスタ内のメモリの空き容量が少ない状態で，リバランス処理を実行することは推奨しません。スケールアウト処理でEADSサーバを追加して，クラスタ内のメモリ容量を増加させてから，リバランス処理を実行することを検討してください。

EADSサーバID指定グループに属するkeyのデータは，EADSサーバの位置が変更されても，ほかのEADSサーバに移動されないで，指定されたEADSサーバに格納されたままになります。このようなデータが大量に格納されている場合は，リバランス処理を実行しても，効果的にデータが分散されないため，期待した結果が得られないおそれがあります。

データ総量監視機能を有効にしている場合，EADSサーバ間でのデータ転送のために，一時的にデータ数の上限，およびExternalメモリ使用量の上限を縮小します。その結果，クライアントAPI，およびユーザファンクションのAPIでエラーが発生することがあります。

また，レンジ統計情報ファイル（eads_store_stats.csv）の次の値に，一時的に実際の値よりも小さい値が出力されることがあります。

KeyCountLimit

ExternalHeapSizeLimit

また，リバランス処理の実行中にeztool storeusageコマンドを実行すると，上記の値に，一時的に実際の値よりも小さい値が出力されることがあります。

データ総量監視機能を有効にしていても，eztool importコマンドで，データ総量監視機能が一時的に無効になります。そのため，eztool importコマンドが成功しても，クラスタ内のJavaヒープまたはExplicitヒープの空き容量が少なくなった場合，リバランス処理で失敗することがあります。この場合は，JavaヒープまたはExplicitヒープの容量を見直してください。

データ総量監視機能を無効にしている場合，クラスタ内のJavaヒープまたはExplicitヒープの空き容量が少ない状態でリバランス処理を実行すると，EADSサーバがダウンしたり，EADSサーバが縮退したりするおそれがあります。

このサブコマンドでエラーが発生した場合は，eztool statusコマンドを実行して，問題が発生していないかを確認してください。

クラスタの空き容量が不足している場合は，不要なデータを削除するなどして空き容量を増やすか，またはスケールアウト処理でEADSサーバを追加してください。

EADSサーバが縮退またはプロセスダウンした場合は，EADSサーバを復旧させてから，リバランス処理を再度実行してください。

EADSサーバの復旧処理でエラーが発生した場合は，復旧に失敗したEADSサーバのクラスタ定義ファイルに，リバランス処理中のクラスタ構成情報が反映されていない可能性があります。復旧に失敗したEADSサーバのクラスタ定義ファイルが，ほかのEADSサーバのクラスタ定義ファイルと同じかどうかを確認してください。クラスタ定義ファイルが，ほかのEADSサーバのクラスタ定義ファイルと異なる場合は，復旧に失敗したEADSサーバに，正常に稼働しているEADSサーバのクラスタ定義ファイルをコピーしてから，復旧処理を再度実行してください。

データ自動削除機能を有効にしている状態でリバランスを実行すると，EADSサーバ間でのデータ転送のために，一時的にデータ数の上限，およびExternalメモリ使用量の上限を縮小します。その結果，クライアントAPI，およびユーザファンクションのAPIでエラーが発生することがあります。

データ自動削除機能を有効にしている場合，EADSサーバはデータ総量監視機能とは独立して，キャッシュ単位のデータの上限を算出し，一時的にしきい値を縮小します。

データ自動削除機能を有効にしている場合，結合元のレンジ（移動するレンジ）に格納されたデータに対するAPI（create，put，putAll）は，EADSクライアントおよびユーザファンクションに，一時的なエラー（EAD_ERROR_SERVER_LIMIT_KV_COUNT_TEMPORARILY）を返却することがあります。

データ自動削除機能を有効にしているキャッシュでは，キャッシュ定義で指定したデータの自動削除ポリシーに加えて，次に示すデータの自動削除ポリシーにも従います。そのため，次に示すデータの自動削除ポリシーが適用された場合に問題となる用途では，リバランス処理を実行しないでください。

■リバランス処理を実行中に適用されるデータの自動削除ポリシー

結合先のレンジで格納できるデータの空き（キー数および容量）が少ない場合，格納されるEADSサーバが変更となるために分割されたレンジのデータは，結合先のレンジで格納できるデータの空きに収まるまで一部または全部が削除されます。また，通信タイミングによっては，優先度が低いデータではなく，優先度が高いデータが削除されることがあります。

リバランス処理中のリクエストの応答に一時的に時間が掛かる場合は，次のパラメタの指定を検討してください。

eads.scaling.moveDataWithUpdateRequest.enableパラメタ

eads.scaling.moveData.intervalパラメタ

eads.scaling.eviction.targetKeyCountパラメタ（データ自動削除機能を有効にしているキャッシュが存在する場合）

データ自動削除機能を有効にしているキャッシュが存在しない場合，次のどちらかの指定をするとリクエストのスループットの向上が期待できますが，リバランス処理の実行完了までの時間が長くなります。運用および環境に合わせたチューニングを実施してください。

eads.scaling.moveDataWithUpdateRequest.enableパラメタにfalseを指定している

eads.scaling.moveData.intervalパラメタに0以外を指定している

データ自動削除機能を有効にしているキャッシュが存在する場合，eads.scaling.eviction.targetKeyCountパラメタを指定するとリクエストのスループットの向上が期待できますが，指定値が小さいとリバランス処理の実行完了までの時間が長くなります。運用および環境に合わせたチューニングを実施してください。

14.3.25　listecf（永続データに関する情報の一覧表示）

この項の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

(1)　機能

クラスタ内の永続データに関する情報の一覧を表示します。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，クラスタへの参加状況がonlineおよびofflineのEADSサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADSサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

縮退状態（isolated）

-sまたは--single オプションを指定した場合は，クラスタの状態に関係なく，EADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

縮退状態（isolated）

(3)　形式

eztool listecf ［-v ［--divide ＜分割する個数＞］］ ［-s］ ［--threshold ＜しきい値＞］
               ［＜キャッシュ名＞］
               ［--format ＜フォーマット名＞］
               ［--columns ＜列名＞［,＜列名＞］…］
               ［--filter ＜フィルタの条件＞］
               ［--match ＜一致条件＞］

(4)　オプションおよび引数

(a)　-vまたは--verbose

コマンド実行結果の詳細を表示したい場合に指定します。

(b)　--divide ＜分割する個数＞

-vまたは--verboseオプションを指定した場合，コンパクションの効果のファイル数の分布が表示されます。コンパクションの効果のファイル数の分布を，任意の個数で分割したい場合に指定します。

分割する個数には，1から10までの整数が指定できます。

このオプションを指定しない場合，コマンド定義のeads.command.compaction.effect.divisionパラメタに指定した値（デフォルトは5）が分割する個数になります。

(c)　-sまたは--single

コマンドを実行するEADSサーバの実行結果だけを表示したい場合に指定します。

(d)　--threshold ＜しきい値＞

しきい値（単位：%）以上のコンパクションの効果があるキャッシュデータファイルのファイル数を表示したい場合に指定します。

しきい値には，1から100までの整数が指定できます。

このオプションを指定しない場合，コマンド定義のeads.command.compaction.effect.thresholdパラメタに指定した値（デフォルトは50）がしきい値になります。

(e)　＜キャッシュ名＞

指定したキャッシュ名のキャッシュの情報だけを表示したい場合に指定します。

キャッシュ名には，半角32文字までの半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

(f)　--format ＜フォーマット名＞

このオプションの詳細については，「14.4.2　表示形式の指定方法」を参照してください。

(g)　--columns ＜列名＞［,＜列名＞］…

このオプションの詳細については，「14.4.3　列のフィルタリングの指定方法」を参照してください。

(h)　--filter ＜フィルタの条件＞

このオプションの詳細については，「14.4.4　行のフィルタリングの指定方法」を参照してください。

(i)　--match ＜一致条件＞

このオプションの詳細については，「14.4.5　条件一致の指定方法」を参照してください。

(5)　出力例

eztool listecfコマンドの実行結果の出力例を次に示します。

表示の構成要素については，「14.4.1　表示内容の構成要素」を参照してください。

■-vまたは--verboseオプションを指定しない場合

■-vまたは--verboseオプションを指定する場合

サマリとメインの表示内容を，それぞれ次の表に示します。

表14‒49　eztool listecfコマンドのサマリの表示内容

項番

サマリ名

説明

表示の有無

-vまたは--verboseオプション指定

-sまたは--singleオプション指定

なし

あり

1

CP: CacheProperties

「CP」が「キャッシュ定義ファイル（CacheProperties）」の略称であることを表しています。

×

○

×

2

CI: CacheInfoFile

「CI」が「キャッシュ情報ファイル（CacheInfoFile）」の略称であることを表しています。

×

○

×

3

CD: CacheDataFiles

「CD」が「キャッシュデータファイル（CacheDataFiles）」の略称であることを表しています。

×

○

×

4

FC: FileCount

「FC」が「ファイル数（FileCount）」の略称であることを表しています。

○

○

○

5

CE: CompactionEffect

「CE」が「コンパクションの効果（CompactionEffect）」の略称であることを表しています。

○

○

○

6

Ac: Accord

「Ac」が「一致する（Accord）」の略称であることを表しています。

×

○

×

7

Ex: Exist

「Ex」が「存在する（Exist）」の略称であることを表しています。

○

○

×

（凡例）

○：表示されます。

×：表示されません。

表14‒50　eztool listecfコマンドのメインの表示内容

項番

列名

説明

表示の有無

-vまたは--verboseオプション指定

-sまたは--singleオプション指定

なし

あり

1

Cache

キャッシュ名※1

ディスクキャッシュおよび2Wayキャッシュのキャッシュ名が，次のキャッシュの情報から抽出されて表示されます。

EADSサーバに存在するキャッシュ

キャッシュ定義ファイルに指定したキャッシュ

◯

◯

○

2

ExCache

キャッシュがEADSサーバに存在しているかどうか※1

次のどちらかが表示されます。

true

EADSサーバに存在する

false

EADSサーバに存在しない

◯

◯

×

3

AcCP

EADSサーバ間でキャッシュ定義ファイルが一致しているかどうか※1

キャッシュ定義ファイルの有無も含めて，すべてのEADSサーバ間で一致しているかどうかが表示されます。

次のどちらかが表示されます。

true

一致している

false

一致していない

×

○

×

4

AcCI

EADSサーバ間でキャッシュ情報ファイルが一致しているかどうか※1

キャッシュ情報ファイルが存在しないEADSサーバは無視されて，一致しているかどうかが表示されます。

次のどちらかが表示されます。

true

一致している

false

一致していない

×

○

×

5

Range

レンジID※1

キャッシュ内のレンジを識別するための番号（1〜96の整数）です。データの格納先EADSサーバのサーバIDと一致します。

○

◯

○

6

Server

Rangeの範囲に含まれるEADSサーバのIPアドレス，およびEADSクライアントとの通信に使用するEADSサーバのポート番号

次の形式で表示されます。

IPアドレス:ポート番号

○

○

×

7

ExCP

キャッシュ定義ファイルが存在するかどうか

次のどちらかが表示されます。

true

存在する

false

存在しない

EADSサーバが起動していない場合，または通信障害が発生した場合は，何も表示されません。

×

○

×

8

ExCI

キャッシュ情報ファイルが存在するかどうか

次のどちらかが表示されます。

true

存在する

false

存在しない

次の場合は何も表示されません。

EADSサーバが起動していない場合

通信障害が発生した場合

EADSサーバにキャッシュが読み込まれていない状態で，ExCPがfalseの場合

EADSサーバにキャッシュが読み込まれていない状態で，ExCIの情報取得に必要なパラメタがキャッシュ定義ファイルに指定されていない場合

×

○

×

9

ExCD

キャッシュデータファイルが存在するかどうか

次のどちらかが表示されます。

true

存在する

false

存在しない

次の場合は何も表示されません。

EADSサーバが起動していない場合

通信障害が発生した場合

EADSサーバにキャッシュが読み込まれていない状態で，ExCPがfalseの場合

EADSサーバにキャッシュが読み込まれていない状態で，ExCDの情報取得に必要なパラメタがキャッシュ定義ファイルに指定されていない場合

×

○

×

10

UnusedFC

使用していないファイル数

次の場合は何も表示されません。

EADSサーバが起動していない場合

通信障害が発生した場合

EADSサーバに存在しないキャッシュの場合

○

○

○

11

MaxCE

レンジ内のキャッシュデータファイルが持つコンパクションの効果の最大値※2

次の場合は何も表示されません。

EADSサーバが起動していない場合

通信障害が発生した場合

EADSサーバに存在しないキャッシュの場合

○

○

○

12

FilterCE(x%)※3

コンパクションの効果がしきい値以上のファイル数※4

次の場合は何も表示されません。

EADSサーバが起動していない場合

通信障害が発生した場合

EADSサーバに存在しないキャッシュの場合

○

○

○

13

CE(x-y%)※5

コンパクションの効果のファイル数の分布※4

次の場合は何も表示されません。

EADSサーバが起動していない場合

通信障害が発生した場合

EADSサーバに存在しないキャッシュの場合

×

○

○

（-vまたは--verboseオプションを指定した場合だけ，表示されます）

（凡例）

○：表示されます。

×：表示されません。

注

実行結果は，次の優先順位に従って表示されます。

Cacheの値の自然順序順に表示されます。

Cacheの値が同じ行は，Rangeの値の昇順に表示されます。

Cacheの値，およびRangeの値が同じ行は，Severの値の順（データの格納先EADSサーバ，データのコピー先EADSサーバの順）に表示されます。-sオプションまたは--singleオプションを指定した場合は該当しません。

注※1

実行結果に，同じ値のセルが続く場合，2行目以降のセルの値は表示が省略されます。

注※2

コンパクションの効果の小数点以下は切り捨てて表示されます。

注※3

xには，しきい値として設定した値が表示されます。

注※4

コンパクションの効果の小数点以下を切り捨てた値で，ファイル数が集計されます。

注※5

分割する個数から算出した範囲が表示されます。2列目以降のヘッダには，範囲として「(x-y%)」だけが表示されます。

(6)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒51　eztool listecfコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

150

コマンド実行中に失敗しました。

8

200

コマンドタイムアウトで失敗しました。

--matchオプションを指定した場合

条件に一致した場合は0，一致しなかった場合は1を，リターンコードとして返します。ただし，コマンドの実行に失敗したときは，--matchオプションを指定しなかった場合と同じになります。

(7)　注意事項

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

14.3.26　resume（キャッシュの再開）

この項の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

(1)　機能

ディスクキャッシュ，および2Wayキャッシュを再開します。

このコマンドを実行すると，キャッシュ定義ファイルとキャッシュ情報ファイルが存在するキャッシュが再開されます。

次の場合は，このサブコマンドを使用して，キャッシュを再開します。

正常にクラスタを停止したあとで，EADSサーバを再起動する場合

クラスタ動作不能（NOT_AVAILABLE）またはクラスタ一部稼働中（PARTIALLY_AVAILABLE）の状態から，クラスタを復旧する場合

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

このサブコマンドは，クラスタへの参加状況がonlineのEADSサーバを処理対象とします。ただし，クラスタへの参加状況がofflineおよびstandbyのEADSサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働中のFullGCの発生を抑えるため，このサブコマンドが終了するタイミングで，各EADSサーバがFullGCを実施します。

このサブコマンドがEADSサーバから排他を取得している間，EADSサーバは縮退状態（isolated）になりません。なお，EADSサーバから排他を取得している間にプロセスがダウンしたり，EADSサーバが停止したりした場合は，排他を解除したあとに縮退が実行されます。

(3)　形式

eztool resume

(4)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒52　eztool resumeコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

131

ほかのコマンドが実行中のため失敗しました。

8

150

コマンド実行中に失敗しました。

9

200

コマンドタイムアウトで失敗しました。

(5)　注意事項

キャッシュの再開の対象とならないキャッシュのキャッシュ定義の定義内容も，クラスタを構成する全EADSサーバで同じになるようにしてください（eads.cache.disk.info.dirパラメタおよびeads.cache.disk.<n>.dirパラメタは除きます）。

正常にクラスタを停止していない場合，削除したデータが復活することがあります。

キャッシュの再開が異常終了やコマンドタイムアウトによって中途半端に終了した場合，排他は解除されません。キャッシュの再開を実行後，排他が解除されていない場合は，データが不整合になっているおそれがあります。そのまま運用を継続するとデータが破壊されたり，消失したりするおそれがあるため，次の手順で対処してください。

eztool status -vコマンドでクラスタの状態を確認する。

eztool unlockコマンドで排他を解除する。

eztool listcacheコマンドでキャッシュの一覧を確認する。

キャッシュの再開が失敗したキャッシュをeztool deletecacheコマンドで削除する。

EADSサーバが縮退しているときは，EADSサーバを復旧する。

キャッシュの再開を，再度実行する。

キャッシュの再開に失敗した場合は，次の項目を確認して，再度キャッシュを再開してください。

クラスタ定義ファイルまたは共通設定ファイルに指定したパラメタの指定値が誤っていないかどうか

キャッシュ定義ファイルに指定したパラメタの指定値が誤っていないかどうか

キャッシュファイルが不正な状態になっていないかどうか

このサブコマンドの実行中，データ総量監視機能は動作しません。

14.3.27　exportecf（キャッシュファイルの書き出し）

この項の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

(1)　機能

指定したキャッシュのキャッシュファイル（キャッシュデータファイルとキャッシュインデックスファイル）のデータを指定したディレクトリに書き出します。

書き出したキャッシュデータファイルおよびキャッシュインデックスファイルは，eztool importecfコマンドでキャッシュに読み込むことができます。

(2)　規則

このサブコマンドは，クラスタの状態がクラスタ稼働中（AVAILABLE）のときに実行できます。

このサブコマンドは，クラスタへの参加状況がonlineのEADSサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADSサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADSサーバが閉塞状態（closed）のときに実行できます。

なお，-lオプションまたは--localオプションを指定した場合は，EADSサーバが停止状態のときにだけ実行できます。

書き出し対象として指定したキャッシュがEADSサーバにある必要があります。キャッシュがEADSサーバにあるかどうかは，eztool listcacheコマンドで確認できます。

(3)　形式

eztool exportecf ＜キャッシュファイルの出力先パス名＞
                 ＜キャッシュ名＞
                 ［-l］

(4)　オプションおよび引数

(a)　＜キャッシュファイルの出力先パス名＞

キャッシュデータファイルとキャッシュインデックスファイルの出力先パス名を指定します。

パス名には，アスタリスク（*），二重引用符（"），疑問符（?），縦線（|），小なり演算子（<），大なり演算子（>）を含むディレクトリは指定できません。

キャッシュデータファイルとキャッシュインデックスファイルの出力先パスに相対パスを指定した場合，各EADSサーバの運用ディレクトリが起点となります。

(5)　＜キャッシュ名＞

キャッシュファイルを書き出したいキャッシュのキャッシュ名を指定します。

キャッシュ名には，半角32文字までの半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

(6)　-l または--local

EADSサーバが停止状態の場合に，キャッシュファイルを書き出すときに指定します。

コマンドを実行するEADSサーバだけが，キャッシュファイルを書き出す対象になります。

注意事項

縮退したEADSサーバや正常終了できなかったEADSサーバが出力したキャッシュファイルは，不完全な状態になっているおそれがあります。

(7)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒53　eztool exportecfコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

131

ほかのコマンドが実行中のため失敗しました。

8

150

コマンド実行中に失敗しました。

9

200

コマンドタイムアウトで失敗しました。

(8)　出力対象

このサブコマンドを実行すると，各EADSサーバにある次のキャッシュファイルが＜キャッシュファイルの出力先パス名＞で指定したディレクトリに出力されます。キャッシュ定義ファイルに指定されたパラメタに基づいて，キャッシュファイルが出力されます。サブディレクトリは作成されません。

キャッシュデータファイル

＜キャッシュファイルの出力先パス名＞/eads_data_[EADSサーバID※1]_[キャッシュ名]_[レンジID※1]_[ファイル連番※2].ecf

注※1　01〜96の整数です。

注※2　ファイル数の連番（5桁の整数）です。

キャッシュインデックスファイル

＜キャッシュファイルの出力先パス名＞/eads_index_[EADSサーバID※1]_[キャッシュ名]_[レンジID※1]_[ファイル連番※2].ecf

注※1　01〜96の整数です。

注※2　ファイル数の連番（5桁の整数）です。

(9)　注意事項

＜キャッシュファイルの出力先パス名＞に存在しないディレクトリを指定した場合，ディレクトリが作成されます。

＜キャッシュファイルの出力先パス名＞に出力ファイルと同名のファイルがある場合，キャッシュファイルは出力できません。

キャッシュデータファイルとキャッシュインデックスファイルの両方または片方が1ファイルもない場合，コマンドの実行が失敗します。また，キャッシュファイルも出力されません。

キャッシュの作成，再開，または復旧をした時からキャッシュ定義ファイルの設定を変更しないでください。また，-lオプションを指定してこのサブコマンドを実行する場合は，クラスタ定義ファイルおよび共通設定ファイルも変更しないでください。これらの定義ファイルが変更された場合，不正な内容のキャッシュファイルが出力されるおそれがあります。

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)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒54　eztool importecfコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義の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回だけ警告メッセージが出力されます。

このサブコマンドの実行中，データ総量監視機能は動作しません。

14.3.29　deleteecf（キャッシュファイルの削除）

この項の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

(1)　機能

指定したキャッシュ名のキャッシュファイルを削除します。

このサブコマンドを実行すると，各EADSサーバにあるキャッシュ定義ファイルに指定したパラメタに従って，次のキャッシュファイルが削除されます。

＜キャッシュ定義のeads.cache.disk.info.dirパラメタに指定したディレクトリ＞/＜キャッシュ名＞/eads_info_[EADSサーバID※]_[キャッシュ名].ecf

注※　01〜96の整数です。

＜キャッシュ定義のeads.cache.disk.info.dirパラメタに指定したディレクトリ＞/＜キャッシュ名＞/eads_index_[EADSサーバID※1]_[キャッシュ名]_[レンジID※1]_[nnnnn※2].ecf

注※1　01〜96の整数です。

注※2　ファイル数の連番（5桁の整数）です。

＜キャッシュ定義のeads.cache.disk.<n>.dirパラメタに指定したディレクトリ＞/＜キャッシュ名＞/eads_data_[EADSサーバID※1]_[キャッシュ名]_[レンジID※1]_[nnnnn※2].ecf

注※1　01〜96の整数です。

注※2　ファイル数の連番（5桁の整数）です。

キャッシュファイルの削除後，次のディレクトリ内が空になっていれば，ディレクトリも削除します。

＜キャッシュ定義のeads.cache.disk.info.dirパラメタに指定したディレクトリ＞/＜キャッシュ名＞

＜キャッシュ定義のeads.cache.disk.<n>.dirパラメタに指定したディレクトリ＞/＜キャッシュ名＞

注

ディスクキャッシュの格納先として不揮発性メモリを使用している場合（eads.cache.disk.persistentMemory.enableパラメタにtrueを指定している場合），キャッシュファイルの削除ではなく，eads.cache.disk.persistentMemory.deviceパラメタで指定した不揮発性メモリのデバイスファイルの領域を初期化します。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，クラスタへの参加状況がonlineのEADSサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADSサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞状態（closed）

なお，-lオプションまたは--localオプションを指定した場合は，EADSサーバが停止状態のときにだけ実行できます。

(3)　形式

eztool deleteecf ＜キャッシュ名＞ ［-l］

(4)　オプションおよび引数

(a)　＜キャッシュ名＞

削除したいキャッシュファイルのキャッシュ名を指定します。

キャッシュ名には，半角32文字までの半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

(b)　-lまたは--local

コマンドを実行するEADSサーバのキャッシュファイルだけを削除したい場合に指定します。

例えば，データの更新頻度や削除頻度が高いシステムで縮退状態が発生した場合，復旧に不要なキャッシュファイルをあらかじめ削除して，データの読み込み時間を削減したいときに指定します。

このオプションを指定した場合，処理対象のEADSサーバが停止状態のときにだけ，キャッシュファイルが削除されます。処理対象のEADSサーバが起動中のときは削除されません。

(5)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒55　eztool deleteecfコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

131

ほかのコマンドが実行中のため失敗しました。

8

150

コマンド実行中に失敗しました。

9

200

コマンドタイムアウトで失敗しました。

(6)　注意事項

EADSサーバが使用中のキャッシュのキャッシュファイルは削除できません。また，指定したキャッシュ名のキャッシュ定義ファイルが存在しない場合は，キャッシュファイルを削除できません。

14.3.30　compaction（キャッシュデータファイルのコンパクション）

この項の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

(1)　機能

サブコマンドを実行したEADSサーバのキャッシュデータファイルをコンパクションします。

(2)　規則

このサブコマンドは，クラスタの状態に関係なく，EADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞状態（closed）

縮退状態（isolated）

このサブコマンドを実行したEADSサーバの中で，コンパクションの効果が最も大きいキャッシュデータファイルが実行対象に選ばれます。対象が複数ファイルになる場合は，コンパクションの効果が大きい順に処理されます。

(3)　形式

eztool compaction ［--cache ＜キャッシュ名＞ ［--range ＜レンジID＞］］
                  ［--limit ＜実行回数＞｜--unused_fc ＜未使用ファイル数＞］
                  ［--threshold ＜しきい値＞］

eztool compaction ［--break］

(4)　オプションおよび引数

(a)　--cache ＜キャッシュ名＞

コンパクションを実行するキャッシュの名称を指定します。

キャッシュ名には，半角32文字までの半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

このオプションを指定しない場合は，すべてのキャッシュが対象となります。

(b)　--range ＜レンジID＞

レンジIDは，キャッシュ内のレンジを識別するための番号（1〜96の整数）です。データの格納先EADSサーバのサーバIDと一致します。

コンパクションを実行するレンジを指定します。指定されたレンジIDのレンジに所属しているデータが，サブコマンドを実行したEADSサーバに存在しない場合は，コンパクションできません。

このオプションを指定しない場合は，指定されたキャッシュのすべてのレンジが対象となります。

(c)　--limit ＜実行回数＞

コンパクションの実行回数の上限（1度のコマンド実行でコンパクションするキャッシュデータファイル数の上限）を指定します。実行対象のファイルがない場合は，指定した値より少ない回数であっても終了します。

実行回数には，1から20971520までの整数が指定できます。

このオプションを指定しない場合，デフォルトは20971520です。

(d)　--unused_fc ＜未使用ファイル数＞

未使用のキャッシュデータファイルが，指定した数になるまでコンパクションを実行したい場合に指定します。すべてのレンジの未使用ファイル数が指定値以上の場合は，コンパクションは実行されません。実行対象のファイルがない場合や，コンパクションの実行回数が20,971,520回に達した場合は，指定した値よりも未使用ファイル数が少ない状態でも，警告を出して終了します。

未使用ファイル数には，1から32766までの整数が指定できます。

(e)　--threshold ＜しきい値＞

しきい値（単位：%）以上の効果があるキャッシュデータファイルを対象に，コンパクションを実行したい場合に指定します。しきい値以上の効果があるキャッシュデータファイルがない場合は，コンパクションは実行されません。

しきい値には，1から100までの整数が指定できます。

このオプションを指定しない場合は，コマンド定義のeads.command.compaction.effect.thresholdパラメタに指定した値（デフォルトは50）がしきい値になります。

(f)　--break

コンパクションを中断したいときに指定します。

コンパクションの中断は，ファイル単位で実行します。コンパクションを実行しているファイルの途中で中断することはできません。

(5)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒56　eztool compactionコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

1

1

実行対象のファイルが存在しなかったため，コンパクションを実行しませんでした。

3

2

2

未使用ファイル数が--unused_fcオプションに指定した値以上に存在するため，コンパクションを実行しませんでした。

4

3

3

未使用ファイル数が--unused_fcオプションに指定した値に達する前に，実行対象のファイルがなくなりました。コンパクションは実行済みです。

5

10

10

--breakオプションが指定されましたが，コンパクションは実行されていません。

6

11

11

--breakオプションが指定されましたが，すでにコンパクションの中断が予約されています。

7

101

101

コマンドの初期化に失敗しました。

8

110

接続に失敗しました。

9

111

通信タイムアウトで失敗しました。

10

120

構文不正で失敗しました。

11

130

コマンドを実行できない状態のため失敗しました。

12

131

ほかのコマンドが実行中のため失敗しました。

13

150

コマンド実行中に失敗しました。

14

200

コマンドタイムアウトで失敗しました。

(6)　注意事項

このサブコマンドは，EADSサーバが稼働状態（running）でも実行できますが，性能に影響が出るおそれがあるため，注意してください。

eztool compaction --breakコマンドの実行中に，eztool compactionコマンドがタイムアウトまたは停止した場合は，eztool compaction --breakコマンドは正常終了しません。eztool compaction --breakコマンドがタイムアウトするまで待つか，またはeztool compaction --breakコマンドを停止してください。

あるファイルのコンパクションが終わってから，次のファイルのコンパクションが始まるまでの時間は，コンパクションの実行中ではありません。このため，eztool compaction --breakコマンドを実行しても，コンパクションが実行されていないというメッセージが出力され，中断できない場合があります。その場合は，eztool compaction --breakコマンドが実行できるまで，繰り返し実行してください。

14.3.31　threaddump（スレッドダンプの出力）

(1)　機能

EADSサーバのスレッドダンプを出力します。

なお，スレッドダンプはサーバ定義のeads.logger.dirパラメタに指定したディレクトリ下に出力されます。

サーバ定義のeads.logger.dirパラメタを指定していない場合は，＜運用ディレクトリ＞/logs下に出力されます。

(2)　規則

このサブコマンドはクラスタの状態に関係なく実行できます。

このサブコマンドは，EADSサーバが次の状態のときに実行できます。

初期化中（initializing）

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

縮退状態（isolated）

停止中（stopping）

(3)　形式

eztool threaddump

(4)　リターンコード

1：EADSサーバが見つかりませんでした。

1以外：JavaSEのjheapprofコマンドの終了コードを返します。

14.3.32　snapshot（ログ，設定情報，ハードウェア情報，およびネットワーク情報の収集）

(1)　機能

次のファイルを収集し，書庫ファイルとしてアーカイブします。

ただし，拡張子が.tar，.tar.gz，または.tgzのファイルは除きます。

EADSログ情報

稼働中のEADSサーバのスレッドダンプ

サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下のファイル

ただし，eads_command_*ファイル（*は0文字以上の任意の文字列）は除きます。

コマンド定義のeads.command.logger.dirパラメタに指定したディレクトリ直下のeads_command_*ファイル（*は0文字以上の任意の文字列）

コマンド定義のeads.command.logger.dirパラメタに指定したディレクトリのmaintenanceディレクトリ直下のeads_command_*ファイル（*は0文字以上の任意の文字列）

＜運用ディレクトリ＞/hs_err_pid*.log（*は0文字以上の任意の文字列）

注　JavaVMのエラーレポートファイルの出力先ファイル名です。

EADS設定情報

ファンクション定義ファイル（＜運用ディレクトリ＞/app下の定義ファイル）

定義ファイル（＜運用ディレクトリ＞/conf下のファイル）

運用ディレクトリの構成情報（＜運用ディレクトリ＞/logs/snapshot_info/eads_info/eads_info_ls.txt）

キャッシュデータファイルの一覧（＜運用ディレクトリ＞/logs/snapshot_info/cache_file_info/eads_data_＜キャッシュ名＞_＜キャッシュ定義ファイルの通し番号＞.txt）※1

キャッシュ情報ファイルの一覧（＜運用ディレクトリ＞/logs/snapshot_info/cache_file_info/eads_info_＜キャッシュ名＞.txt）

キャッシュインデックスファイルの一覧（＜運用ディレクトリ＞/logs/snapshot_info/cache_file_info/eads_index_＜キャッシュ名＞.txt）※1

不揮発性メモリのデバイスファイル管理領域ダンプ（＜運用ディレクトリ＞/logs/snapshot_info/cache_file_info/eads_device_＜キャッシュ名＞.txt）※2

注※1

ディスクキャッシュの格納先として不揮発性メモリを使用しているキャッシュでは収集されません。

注※2

ディスクキャッシュの格納先として不揮発性メモリを使用していないキャッシュでは収集されません。また，ディスクキャッシュの格納先として不揮発性メモリを使用しているキャッシュでも，daxioがインストールされていない場合は収集されません。

管理領域にはキャッシュ名が含まれます。EADSサーバに格納されたユーザのデータは含まれません。

ハードウェア・ネットワーク情報

OSのバージョン情報（＜運用ディレクトリ＞/logs/snapshot_info/eads_info/eads_info_version.txt）

CPU情報（＜運用ディレクトリ＞/logs/snapshot_info/eads_info/eads_info_cpu.txt）

メモリ情報（＜運用ディレクトリ＞/logs/snapshot_info/eads_info/eads_info_memory.txt）

ディスク情報（＜運用ディレクトリ＞/logs/snapshot_info/eads_info/eads_info_df.txt）

ネットワーク接続情報（＜運用ディレクトリ＞/logs/snapshot_info/eads_info/eads_info_netinfo.txt）

カーネルパラメタnet.core情報（＜運用ディレクトリ＞/logs/snapshot_info/eads_info/eads_info_netcore.txt）

ホストとIPアドレスの対応情報（/etc/hostsファイル）

ネットワークインタフェース情報（＜運用ディレクトリ＞/logs/snapshot_info/eads_info/eads_info_ipinfo.txt）

システムリソースの制限情報（＜運用ディレクトリ＞/logs/snapshot_info/eads_info/eads_info_ulimit.txt）

不揮発性メモリの構成情報（＜運用ディレクトリ＞/logs/snapshot_info/eads_info/eads_info_pmem.txt）※

注※

ディスクキャッシュの格納先として不揮発性メモリを使用していない場合など，ndctlがインストールされていないときは出力されません。

なお，gzファイルはサーバ定義のeads.logger.dirパラメタに指定したディレクトリ下に出力されます。

サーバ定義のeads.logger.dirパラメタを指定していない場合は，＜運用ディレクトリ＞/logs下に出力されます。

ファイル名は，次に示す形式となります。

snapshot_[EADSサーバ名]_[YYYYMMDDhhmmss].tar.gz

（凡例）

[YYYYMMDDhhmmss]：コマンド実行日時

YYYY：年，MM：月，DD：日，hh：時（00〜23），mm：分，ss：秒

(2)　規則

このサブコマンドはクラスタおよびEADSサーバの状態に関係なく実行できます。

-sdまたは--safedumpオプションを指定した場合，クラスタの状態がクラスタ稼働中（AVAILABLE）またはクラスタ一部稼働中（PARTIALLY_AVAILABLE）のときは，処理対象のEADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞状態（closed）

縮退状態（isolated）

-sdまたは--safedumpオプションを指定した場合，クラスタの状態がクラスタ動作不能（NOT_AVAILABLE）のときは，処理対象のEADSサーバが次の状態のときに実行できます。

縮退状態（isolated）

-fdまたは--forcedumpオプションを指定した場合は，クラスタの状態に関係なく，EADSサーバが次の状態のときに実行できます。

初期化中（initializing）

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

縮退状態（isolated）

停止中（stopping）

(3)　形式

eztool snapshot ［-sd|-fd］

(4)　オプションおよび引数

(a)　-sdまたは--safedump

eztool threaddumpコマンドを実行してから，ログと設定ファイルを収集したい場合に指定します。

次の場合はエラーとなります。

排他の取得に失敗した場合

EADSサーバが起動していない場合

(b)　-fdまたは--forcedump

eztool threaddumpコマンドを強制的に実行してから，ログと設定ファイルを収集したい場合に指定します。

EADSサーバが起動していない場合はエラーとなります。

eztool threaddumpコマンドを強制的に実行することで，EADSサーバが縮退するおそれがあります。

(5)　リターンコード

0：成功

0以外：失敗

(6)　注意事項

このサブコマンドで作成されたgzファイルは自動的に削除されません。また，作成されるファイル数の上限もありません。定期的に実行する場合は，ディスク容量に注意してください。

このサブコマンドの実行が終了しない場合は，ファイルシステムが壊れているおそれがあります。その場合はこのコマンドを強制終了して，ファイルシステムが壊れていないか確認してください。

収集対象のファイルに読み取り権限がないと，アーカイブされません。

このサブコマンドの実行中，コマンド実行時に出力されるメッセージログファイルに，次のようなログが出力されます。これらは情報収集のためにEADSが内部的に実行する処理であり，ユーザは使用できません。

オプションを指定していない場合

snapshot, -v, -t, 60

snapshot --listconf, -s, -t, 60

-fdオプションを指定した場合

snapshot, -v, -t, 60

snapshot, -s, -v, -t, 60

snapshot --listconf, -s, -t, 60

-sdオプションを指定した場合

snapshot, -v, -t, 60

snapshot, -s, -v, -t, 60

snapshot, --lock, -t, 60※

snapshot, --unlock, -t, 60※

snapshot --listconf, -s, -t, 60

注※　EADSサーバが縮退状態（isolated）のときは出力されません。

このサブコマンドを実行すると，次に示すディレクトリおよびファイルが一時的に作成されます。これらのディレクトリおよびファイルは，書庫ファイルが出力されたあとに削除されます。削除に失敗した場合は，必要に応じて手動で削除してください。

＜運用ディレクトリ＞/logs/直下のEADSサーバのスレッドダンプ

書庫ファイルを出力したあと，サブコマンドを実行する前から存在するスレッドダンプも削除されます。-sdまたは--safedumpオプション，-fdまたは--forcedumpオプションを指定しない場合も削除されます。書庫ファイルには過去のスレッドダンプも収集されているため，サブコマンド実行後にスレッドダンプが必要になった場合は，書庫ファイルを展開して取得してください。

＜運用ディレクトリ＞/logs/直下に作成されるsnapshot_infoディレクトリおよびその直下のファイル

14.3.33　stop（クラスタの終了）

(1)　機能

クラスタ内の全EADSサーバを終了します。

オプションを指定しない場合，メモリキャッシュのデータをストアデータファイルに書き出してからEADSサーバを終了します。

(2)　規則

このサブコマンドは，クラスタの状態がクラスタ稼働中（AVAILABLE）のときに実行できます。

このサブコマンドは，クラスタへの参加状況がonlineのEADSサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADSサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

閉塞状態（closed）

このサブコマンドがEADSサーバから排他を取得している間，EADSサーバは縮退状態（isolated）になりません。なお，EADSサーバから排他を取得している間にプロセスがダウンしたり，EADSサーバが停止したりした場合は，排他を解除したあとに縮退が実行されます。

(3)　形式

eztool stop ［--no_export］

(4)　オプションおよび引数

(a)　--no_export

EADSサーバ終了時に，メモリキャッシュのデータをストアデータファイルに出力しない場合に指定します。

(5)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒57　eztool stopコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

131

ほかのコマンドが実行中のため失敗しました。

8

150

コマンド実行中に失敗しました。

9

200

コマンドタイムアウトで失敗しました。

(6)　注意事項

このコマンドの実行時に出力されるストアデータファイルの詳細については，「7.6.2(3)　eztool stopコマンド実行時に出力されるストアデータファイル」を参照してください。

ストアデータファイルの出力先については，「7.4.2　ファイルの出力先の設定」を参照してください。

14.3.34　forcestop（EADSサーバの強制終了）

(1)　機能

EADSサーバを強制終了します。

(2)　規則

このサブコマンドはクラスタの状態に関係なく実行できます。

このサブコマンドは，EADSサーバが次の状態のときに実行できます。

初期化中（initializing）

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

縮退状態（isolated）

停止中（stopping）

(3)　形式

eztool forcestop

(4)　リターンコード

1：EADSサーバが見つかりませんでした。

1以外：killコマンドの終了コードを返します。

(5)　注意事項

このサブコマンドは，メモリキャッシュのデータをストアデータファイルに書き出さないでEADSサーバを強制終了します。このため，ほかのEADSサーバに同一レンジのデータが存在しない場合，メモリキャッシュのデータは失われます。

14.3.35　isolate（EADSサーバの縮退）

(1)　機能

EADSサーバを縮退させます。

(2)　規則

このサブコマンドは，クラスタの状態がクラスタ稼働中（AVAILABLE）のときに実行できます。

このサブコマンドは，EADSサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞状態（closed）

縮退状態（isolated）

稼働状態（running）でこのサブコマンドを実行した場合，実行中のユーザファンクションが終了するのを待ってから縮退します。

(3)　形式

eztool isolate ［--stop］

(4)　オプションおよび引数

(a)　--stop

EADSサーバの縮退後，終了まで行いたい場合に指定します。

すでに縮退しているEADSサーバに対して実行した場合は，EADSサーバの終了だけを行います。

(5)　リターンコード

次の表に示すリターンコードが返却されます。

表14‒58　eztool isolateコマンドのリターンコード

項番

リターンコード

リターンコードの説明

コマンド定義のeads.command.compatパラメタを指定していない場合

コマンド定義のeads.command.compatパラメタに0300を指定した場合

1

0

0

コマンドの実行に成功しました。

2

101

101

コマンドの初期化に失敗しました。

3

110

接続に失敗しました。

4

111

通信タイムアウトで失敗しました。

5

120

構文不正で失敗しました。

6

130

コマンドを実行できない状態のため失敗しました。

7

131

ほかのコマンドが実行中のため失敗しました。

8

150

コマンド実行中に失敗しました。

9

200

コマンドタイムアウトで失敗しました。

(6)　注意事項

このサブコマンドを実行してEADSサーバを縮退したあと，クラスタ構成情報が更新されていないEADSクライアントからAPIを実行した場合，EADSサーバとの接続でエラーが発生することがあります。

このサブコマンドを実行することでレンジが動作不能となり，データの継続操作ができなくなる場合は，エラーとなります。

14.4　実行結果を表示するeztoolコマンドのサブコマンドの表示内容

実行結果を表示するeztoolのサブコマンドでは，次に示すオプションを指定することで，表示する内容を変更できます。

--format

--columns

--filter

--match

14.4.1　表示内容の構成要素

実行結果を表示するeztoolコマンドのサブコマンドの表示内容は，次の要素で構成されています。

サマリ

表示される内容全体に共通する情報を表示する個所です。サマリ名とサマリの値から成ります。

メイン

実行結果を出力する個所です。ヘッダとボディから成ります。

また，メインの縦方向に並ぶデータの集合を列，横方向に並ぶデータの集合を行と呼びます。

ヘッダ

実行結果のデータの種類（列名）を表すための行です。

ボディ

実行結果です。

空行

データを区切るための空の行です。

けい線

情報を見やすくするために項目を区切る線です。

表示内容中の各データをセルと呼びます。同じ列に同じ内容のセルが続く場合，見やすさを考慮して，2行目以降のセルの値は表示が省略されることがあります。また，データが何もないセルは，ハイフン（-）や空文字列で出力されます。

各要素の構成について，eztool status -vコマンドを例に，次の図に示します。

14.4.2　表示形式の指定方法

実行結果を表示するeztoolコマンドのサブコマンドに--formatオプションを指定することで，表示内容の表示形式を変更できます。

--formatオプションを指定しなかった場合，デフォルトの表示形式（ALIGNフォーマット）が適用されます。ALIGNフォーマットについては，「14.4.2(2)(a)　＜フォーマット名＞」を参照してください。

(1)　オプションの指定形式

--format ＜フォーマット名＞

(2)　引数

(a)　＜フォーマット名＞

次に示すフォーマット名を指定できます。大文字と小文字は区別されません。

ALIGN

デフォルトの表示形式です。サマリ，メイン，空行およびけい線が表示されます。同じ列の1つ上のセルと値が同じ場合，2行目以降のセルの値は表示が省略されることがあります。また，データがないセルは，空文字列やハイフン（-）で出力されます。

CSV

ボディ内のセルだけが，コンマ区切りで表示されます。サマリ，空行およびけい線は表示されません。ALIGNフォーマットと異なり，同じ列の1つ上のセルと値が同じでも，セルの値は省略されません。また，データがないセルは，空文字列で出力されます。

eztoolコマンドのサブコマンドの運用を自動化する場合に，このフォーマット名の指定を検討してください。--messageoffオプションと同時に指定することを推奨します。

(3)　実行例

eztool status -vコマンドの--formatオプションにCSVを指定した場合の実行例を次に示します。

14.4.3　列のフィルタリングの指定方法

実行結果を表示するeztoolコマンドのサブコマンドに---columnsオプションを指定することで，表示内容の一部の列を選択して表示できます。また，列を表示する順序を変更できます。

--columnsオプションを指定しなかった場合，各サブコマンドで決まった表示項目（列）が，決まった順序で表示されます。

次に示す場合は，コマンドの実行に失敗します。

同じ列名を2回以上指定した場合

存在しない列名を指定した場合

(1)　オプションの指定形式

--columns ＜列名＞［,＜列名＞］…

(2)　引数

(a)　＜列名＞［,＜列名＞］…

実行結果に表示させたい順に，表示内容の列名を指定します。大文字と小文字は区別されます。

--columnsオプションは表示のフィルタリングのため，表示されない列の列名は指定できません。例えば，-vオプションを指定した場合にしか表示されない列の列名は，-vオプションを指定していないときは指定できません。

(3)　実行例

eztool status -vコマンドで--columnsオプションを指定する場合の実行例を次に示します。

14.4.4　行のフィルタリングの指定方法

--filterオプションで条件を指定することで，条件に合う行だけを表示できます。

条件を判定する際，値の表示が省略されるセルは，省略された内容が表示されているものとして扱われます。また，データが何もないセルは，空文字列として扱われます。

条件の指定方法が誤っている場合は，コマンドの実行に失敗します。

(1)　オプションの指定形式（BNF表記）

--filter ＜フィルタの条件＞
＜フィルタの条件＞：：＝＜行条件＞

＜行条件＞：：＝＜列条件＞|＜列条件＞＜論理演算子＞＜列条件＞
＜列条件＞：：＝＜列名＞＜比較演算子（文字列）＞＜文字列＞
               |＜列名＞＜比較演算子（数値）＞＜数値＞

＜論理演算子＞：：＝"&&"|"||"
＜比較演算子（文字列）＞：：＝"=="|"!="
＜比較演算子（数値）＞：：＝">"|"<"|">="|"<="

＜文字列＞：：＝Stringの文字列
＜数値＞：：＝Long.parseLong()で変換できる数値

注意事項

次に示す場合は，条件全体を二重引用符（"）で囲んでください。

＜列名＞または＜文字列＞に空白が含まれる場合

＜比較演算子（数値）＞を指定する場合

二重引用符（"）で囲まないと，別の引数として扱われたり，不当にリダイレクトされたりするおそれがあります。

参考

BNF表記の読み方

：：＝の左の項目は，右の項目で示す形式で記述することを意味しています。＜フィルタの条件＞の指定形式を例に説明します。

「＜フィルタの条件＞：：＝＜行条件＞」は，＜フィルタの条件＞を「＜行条件＞」の形式で指定することを示しています。

「＜行条件＞：：＝＜列条件＞|＜列条件＞＜論理演算子＞＜列条件＞」は，＜行条件＞を「＜列条件＞」または「＜列条件＞＜論理演算子＞＜列条件＞」の形式で指定することを示しています。

1.および2.から，＜フィルタの条件＞は，「＜列条件＞」または「＜列条件＞＜論理演算子＞＜列条件＞」の形式で指定するという意味になります。

(2)　引数

(a)　＜フィルタの条件＞

＜行条件＞を指定します。

(b)　＜行条件＞

＜列条件＞，または＜列条件＞＜論理演算子＞＜列条件＞を指定します。

(c)　＜列条件＞

＜列名＞＜比較演算子（文字列）＞＜文字列＞，または＜列名＞＜比較演算子（数値）＞＜数値＞を指定します。

(d)　＜列名＞

表示内容の列名を指定します。

列名は，--columnsオプションで指定しているかどうかに関係なく指定できます。ただし，--columnsオプションに関係なく，表示されない列の列名は指定できません。例えば，-vオプションを指定した場合にしか表示されない列の列名は，-vオプションを指定していないときは指定できません。

(e)　＜論理演算子＞

次の表に示す論理演算子を指定できます。

複数の論理演算子を指定した場合，左から順番に評価されます。

表14‒59　--filterオプションで指定できる論理演算子

項番

論理演算子

指定例

説明

1

&&

A && B

AかつB（AとB両方が真のときに真になります。それ以外は偽になります）

2

||

A || B

AまたはB（AとBの両方が偽のときに偽になります。それ以外は真になります）

(f)　＜比較演算子（文字列）＞

次の表に示す比較演算子を指定できます。

表14‒60　--filterオプションで指定できる比較演算子（文字列）

項番

比較演算子

指定例

意味

1

==

A == B

文字列Aが文字列Bのパターンに一致しているかどうか（大文字と小文字は区別されます）

2

!=

A != B

文字列Aが文字列Bのパターンに一致していないかどうか（大文字と小文字は区別されます）

(g)　＜比較演算子（数値）＞

次の表に示す比較演算子を指定できます。

表14‒61　--filterオプションで指定できる比較演算子（数値）

項番

比較演算子

指定例

意味

1

>

A > B

long値に変換したAが，long値に変換したBより大きいかどうか（Aにデータが何もない場合は，偽になります）

2

<

A < B

long値に変換したAが，long値に変換したBより小さいかどうか（Aにデータが何もない場合は偽になります）

3

>=

A >= B

long値に変換したAが，long値に変換したB以上かどうか（Aにデータが何もない場合は偽になります）

4

<=

A <= B

long値に変換したAが，long値に変換したB以下かどうか（Aにデータが何もない場合は偽になります）

(h)　＜文字列＞

Stringの文字列を指定します。ワイルドカード（「*」および「?」）が使用できます。

(i)　＜数値＞

Long.parseLong()で変換できる数値を指定します。

(3)　実行例

eztool status -vコマンドで--filterオプションを指定する場合の実行例を次に示します。

■keyの総数が3,000個以上のEADSサーバのEADSサーバIDと，そのkeyの総数を表示したいとき

■ログに関係するパラメタだけを表示したいとき（出力例は省略）

14.4.5　条件一致の指定方法

--matchオプションで条件を指定することで，実行結果が条件に合うかどうかをリターンコードとして返すことができます。指定した条件に合う場合は0，合わない場合は1が返却されます。詳細は，各サブコマンドのリターンコードの説明を参照してください。なお，サブコマンドの結果の表示内容は，このオプションを指定しなかった場合と同じになります。

--filterオプションと同時に指定している場合は，フィルタリング後の結果が条件に合うかどうかがリターンコードとして返却されます。ただし，警告の表示などによって表示結果が出力されないときは，1が返却されます。

条件を判定する際，値の表示が省略されるセルは，省略された内容が表示されているものとして扱われます。また，データが何もないセルは，空文字列として扱われます。

条件の指定方法が誤っている場合は，コマンドの実行に失敗します。

(1)　オプションの指定形式（BNF表記）

--match ＜一致条件＞
＜一致条件＞：：＝＜Boolean関数条件＞|＜Value関数条件＞|＜サマリ条件＞

＜Boolean関数条件＞：：＝＜Boolean関数名＞"("＜行条件＞")"
                      ＜Boolean関数名＞：：＝ALL|EXIST
＜Value関数条件＞：：＝＜Value関数名＞"("＜行条件＞")"＜比較演算子（文字列）＞＜文字列＞
                   |＜Value関数名＞"("＜行条件＞")"＜比較演算子（数値）＞＜数値＞
                    ＜Value関数名＞：：＝COUNT
＜サマリ条件＞：：＝＜サマリ名＞＜比較演算子（文字列）＞＜文字列＞
                   |＜サマリ名＞＜比較演算子（数値）＞＜数値＞

＜行条件＞：：＝＜列条件＞|＜列条件＞＜論理演算子＞＜列条件＞
＜列条件＞：：＝＜列名＞＜比較演算子（文字列）＞＜文字列＞
               |＜列名＞＜比較演算子（数値）＞＜数値＞

＜比較演算子（文字列）＞：：＝"=="|"!="
＜比較演算子（数値）＞：：＝">"|"<"|">="|"<="
＜論理演算子＞：：＝"&&"|"||"

＜文字列＞：：＝Stringの文字列
＜数値＞：：＝Long.parseLong()で変換できる数値

注意事項

次に示す場合は，条件全体を二重引用符（"）で囲んでください。

＜サマリ名＞，＜列名＞，または＜文字列＞に空白が含まれる場合

＜比較演算子（数値）＞を指定する場合

二重引用符（"）で囲まないと，別の引数として扱われたり，不当にリダイレクトされたりするおそれがあります。

参考

BNF表記の読み方については，「14.4.4(1)　オプションの指定形式（BNF表記）」を参照してください。

(2)　引数

(a)　＜一致条件＞

＜Boolean関数条件＞，＜Value関数条件＞，または＜サマリ条件＞を指定します。

(b)　＜Boolean関数条件＞

＜Boolean関数名＞"("＜行条件＞")"を指定します。

(c)　＜Boolean関数名＞

次の表に示す関数を指定できます。

表14‒62　--matchオプションで指定できるBoolean関数

項番

関数

意味

1

ALL(＜行条件＞)

すべての行が行条件に合うかどうか

2

EXIST(＜行条件＞)

行条件に合う行が1つ以上あるかどうか

(d)　＜Value関数条件＞

＜Value関数名＞"("＜行条件＞")"＜比較演算子（文字列）＞＜文字列＞，または＜Value関数名＞"("＜行条件＞")"＜比較演算子（数値）＞＜数値＞を指定します。

(e)　＜Value関数名＞

次の表に示すValue関数を指定できます。

表14‒63　--matchオプションで指定できるValue関数

項番

関数

意味

1

COUNT(＜行条件＞)

行条件に合う行の数を返す

(f)　＜サマリ条件＞

＜サマリ名＞＜比較演算子（文字列）＞＜文字列＞，または＜サマリ名＞＜比較演算子（数値）＞＜数値＞を指定します。

(g)　＜サマリ名＞

表示内容のサマリ名を指定します。

サマリ名は，--formatオプションおよび--columnオプションの指定に関係なく指定できます。

--formatオプションおよび--columnオプション以外のオプションの指定有無によって表示されないサマリ名は指定できません。例えば，-vオプションを指定した場合にしか表示されないサマリ名は，-vオプションを指定していないときは指定できません。

(h)　＜行条件＞

＜列条件＞，または＜列条件＞＜論理演算子＞＜列条件＞を指定します。

(i)　＜列条件＞

＜列名＞＜比較演算子（文字列）＞＜文字列＞，または＜列名＞＜比較演算子（数値）＞＜数値＞を指定します。

(j)　＜列名＞

表示内容の列名を指定します。

列名は，--formatオプション，--columnsオプションの指定に関係なく指定できます。ただし，--formatオプションおよび--columnオプション以外のオプションの指定有無によって表示されない列の列名は指定できません。例えば，-vオプションを指定した場合にしか表示されない列の列名は，-vオプションを指定していないときは指定できません。

(k)　＜比較演算子（文字列）＞

次の表に示す比較演算子を指定できます。

表14‒64　--matchオプションで指定できる比較演算子（文字列）

項番

比較演算子

指定例

意味

1

==

A == B

文字列Aが文字列Bのパターンに一致しているかどうか（大文字と小文字は区別されます）

2

!=

A != B

文字列Aが文字列Bのパターンに一致していないかどうか（大文字と小文字は区別されます）

(l)　＜比較演算子（数値）＞

次の表に示す比較演算子を指定できます。

表14‒65　--matchオプションで指定できる比較演算子（数値）

項番

比較演算子

指定例

意味

1

>

A > B

long値に変換したAが，long値に変換したBより大きいかどうか（Aにデータが何もない場合は，偽になります）

2

<

A < B

long値に変換したAが，long値に変換したBより小さいかどうか（Aにデータが何もない場合は，偽になります）

3

>=

A >= B

long値に変換したAが，long値に変換したB以上かどうか（Aにデータが何もない場合は，偽になります）

4

<=

A <= B

long値に変換したAが，long値に変換したB以下かどうか（Aにデータが何もない場合は，偽になります）

(m)　＜論理演算子＞

次の表に示す論理演算子を指定できます。

複数の論理演算子を指定した場合，左から順番に評価されます。

表14‒66　--matchオプションで指定できる論理演算子

項番

論理演算子

指定例

説明

1

&&

A && B

AかつB（AとB両方が真のときに真になります。それ以外は偽になります）

2

||

A || B

AまたはB（AとBの両方が偽のときに偽になります。それ以外は真になります）

(n)　＜文字列＞

Stringの文字列を指定します。ワイルドカード（「*」および「?」）が使用できます。

(o)　＜数値＞

Long.parseLong()で変換できる数値を指定します。

(3)　実行例

eztool status -vコマンドで--matchオプションを指定する場合の実行例を次に示します（出力例は省略します）。

■クラスタの起動が完了したかどうかを確認したいとき

■Explicitヒープの使用率が70%以上のEADSサーバが存在するかどうかを確認したいとき

■指定したキャッシュ名のキャッシュが存在するかどうかを確認したいとき

■EADSサーバの復旧が完了したかどうかを確認したいとき

■キャッシュファイルの数を監視したいとき

第4編　AP開発

15　AP開発の流れ

この章では，AP開発の流れと，APを開発する前に知っておくべき前提条件について説明します。

15.1　AP開発の流れ

AP開発の流れを次の図に示します。

15.1.1　開発環境を構築する

APを作成するための開発環境を準備します。

APの開発環境は，APを作成する言語（Java言語またはC言語）によって，必要なプログラムプロダクトが異なります。それぞれ必要なプログラムプロダクトをインストールし，APの開発環境をセットアップします。

Java言語の場合

Hitachi Elastic Application Data Store

C言語の場合

Hitachi Elastic Application Data Store

Hitachi Elastic Application Data Store Client for C

次の項目を参照して，EADSサーバとEADSクライアントを実行環境と同じように構築して，開発環境として使用してください。

「5.　インストールおよびセットアップを行う（EADSサーバ）」

「6.　インストールおよびセットアップを行う（EADSクライアント）」

15.1.2　APを作成する

開発環境が構築できたら，APを作成します。

Java言語を使用してクライアントAPを作成する方は，「16.　クライアントAPを作成する（Java言語）」を参照してください。

ユーザファンクションを作成する方は，「17.　ユーザファンクションを作成する」を参照してください。

C言語を使用してクライアントAPを作成する方は，「19.　クライアントAPを作成する（C言語）」を参照してください。

15.1.3　APをテストする

APが完成したら，APのテスト・デバッグを行います。

15.1.4　作成したAPを実行環境に移行する

APのテストが完了したら，作成したAPを実行環境に移行します。

15.2　APを開発する前に知っておくべき前提条件

EADSのAPを開発する前に知っておくべき前提条件として，APの作成言語とEADSクライアントの種別や，key，グループ名，value，キャッシュ名に指定できるデータなどについて説明します。

15.2.1　APの作成言語とEADSクライアント

EADSのAPを作成する際に使用できる言語と，EADSクライアントの種類について説明します。

(1)　APの作成言語

EADSのAPは次の言語で作成できます。

Java言語

C言語

(2)　EADSクライアントの種類

EADSクライアントには，APを作成する言語によって，次の2種類のプログラムプロダクト（クライアントライブラリ）があります。

Java言語の場合

Hitachi Elastic Application Data Store Client for Java

C言語の場合

Hitachi Elastic Application Data Store Client for C

実行環境で上記のプログラムプロダクトを使用する場合は，実行環境ごとにこれらのプログラムプロダクトをインストールしてください。

注意事項

EADSクライアントより新しいバージョンのクライアントライブラリで作成したAPを使用した場合，動作は保証されません。この場合，ソースプログラムの変更や再コンパイルが必要です。

なお，03-00以降のバージョンのクライアントライブラリで作成したAPは，新しいバージョンのEADSクライアントでも使用できます。

03-00より前のバージョンのEADSクライアント・EADSサーバと，03-00以降のバージョンのEADSクライアント・EADSサーバ間には互換性はありません。例えば，03-50のEADSクライアントおよびEADSサーバは，02-00以前のバージョンとの互換性はありません。また，互換性のないバージョン間で接続を試みた場合，動作は保証されません。

ユーザファンクション内でEADSクライアントを使用する場合，EADSサーバと同じバージョンのEADSクライアントを使用してください。EADSサーバと異なるバージョンのEADSクライアントを使用した場合，動作は保証されません。

15.2.2　key，グループ名，value，キャッシュ名，EADSクライアント名に指定できるデータ

key，グループ名，value，キャッシュ名，EADSクライアント名に指定できるデータについて説明します。

(1)　keyとして指定できるデータ

keyの形式と指定できるデータについて説明します。

(a)　keyの形式

key＝
　［＜グループ名＞:］＜要素名＞

keyをグルーピングしない場合，＜要素名＞がkeyになります。keyをグルーピングする場合，＜グループ名＞，区切り文字（:），＜要素名＞を合わせたものがkeyになります。このため，＜要素名＞が同じでも＜グループ名＞が異なれば別のkeyとなります。

＜グループ名＞の形式については，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

keyの指定例を次に示します。

グルーピングしていないkey

key1

グルーピングしたkey

group1:key1

グループを階層化したkey

group1:group2:key1

(b)　keyとして指定できるデータ型と文字数

keyとして指定できるデータ型と文字数を，APを作成する言語ごとに次の表に示します。keyをグルーピングする場合，グループ名，区切り文字（:），要素名を合わせて1,024文字までとなります。

表15‒1　keyとして指定できるデータ

APを作成する言語

keyとして指定できるデータ型

文字数

備考

Java言語

文字列（java.lang.String）

1〜1,024

nullまたは空文字列は不正となります。

C言語

'¥0'を終端記号とする文字列（char *）

1〜1,024

文字列の最大サイズは，'¥0'を含まないバイト数となります。

長さ0の文字列（'¥0'だけ）は指定できません。

注意事項

eztool put，eztool get，eztool removeの各コマンドは，構築後の実行環境が正常に動作するかどうかテストするために使用します。そのため，コマンドで指定できるデータ型とサイズと，API（put，get，remove）で指定できるデータ型とサイズの間に完全な互換性はありません。

(c)　keyを指定する際の規則および注意事項

keyを指定する際の規則および注意事項を次に示します。

keyには，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

ただし，次の表に示す文字はEADSの予約文字のため，一部の例外を除いてkeyには使用できません。

表15‒2　keyに使用できない文字

ASCIIコード

文字

例外

0x22

二重引用符（"）

なし

0x28

左丸括弧（(）

なし

0x29

右丸括弧（)）

なし

0x3a

コロン（:）

グループ階層名および要素名の区切りにだけ使用できます。グループ階層名および要素名には指定できません。

0x3c

小なり演算子（<）

なし

0x3e

大なり演算子（>）

なし

0x5b

左角括弧（[）

EADSサーバID指定グループで，格納先のEADSサーバのEADSサーバIDを指定するときにだけ使用できます。

0x5d

右角括弧（]）

0x7c

縦線（|）

なし

(2)　グループ名として指定できるデータ

グループ名の形式と指定できるデータについて説明します。

(a)　グループ名の形式

＜グループ名＞＝
　＜グループ階層名＞［:＜グループ階層名＞］…

keyの最上位階層のグループ階層名から，任意の階層のグループ階層名までをグループ名として指定できます。中間のグループ階層名から始まる名称は指定できません。

APIなどでグループ名を指定する場合，中間のグループ階層名から始まる名称は指定できません。例えば，keyが「groupA:groupB:groupC:key」の場合に，グループ名として「groupB:groupC」は指定できません。

keyとグループ名の関係の例を次に示します。

keyが「groupA:groupB:groupC:key」の場合に指定できるグループ名

groupA

groupA:groupB

groupA:groupB:groupC

keyが「[10]group1:group2:key」の場合に指定できるグループ名

[10]group1

[10]group1:group2

(b)　EADSサーバID指定グループ

keyの格納先のEADSサーバを指定してkeyをグルーピングする場合は，格納先のEADSサーバのEADSサーバIDを指定します。このようなグループを，EADSサーバID指定グループといいます。

EADSサーバID指定グループを含むkeyの形式を次に示します。

[＜EADSサーバID＞]＜グループ階層名＞:［＜グループ階層名＞:］…＜要素名＞

EADSサーバID指定グループを使用してkeyをグルーピングする場合，keyの先頭のグループ階層名に，左角括弧（[）および右角括弧（]）で囲んだEADSサーバIDを指定します（形式中の「[＜EADSサーバID＞]」の左角括弧（[）および右角括弧（]）は，実際に指定することを表しています。省略の意味ではありません）。EADSサーバIDには，先頭が0でない整数を指定します。

なお，この場合，左角括弧（[），EADSサーバID，および右角括弧（]）も含めて，グループ名として扱われます。

EADSサーバID指定グループを含むkeyの指定例を次に示します。

[1]group1:key1

(c)　グループ名として指定できるデータ型と文字数

グループ名として指定できるデータ型については，「15.2.2(1)(b)　keyとして指定できるデータ型と文字数」を参照してください。keyをグルーピングする場合，グループ名，区切り文字（:），要素名を合わせて1,024文字までとなります。そのため，グループ名として指定できる文字数は1,022文字までとなります。

(d)　グループ名を指定する際の規則および注意事項

グループ名を指定する際の規則および注意事項を次に示します。これ以外の規則および注意事項については，「15.2.2(1)(c)　keyを指定する際の規則および注意事項」を参照してください。

keyをグルーピングする場合，作成できるグループ数，およびグループの階層数に上限はありません。

ただし，グループを階層化した場合，操作する階層が深くなるにつれて処理に時間が掛かります。そのため，適切な階層を設定してください。

EADSサーバID指定グループを使用する場合，クラスタに存在しないEADSサーバのEADSサーバIDは指定できません。

EADSサーバID指定グループを含むkeyのハッシュ値は，EADSサーバのレンジ上の値です。リバランス処理によってEADSサーバのレンジが変わると，ハッシュ値も変わることがあります。

(3)　valueとして指定できるデータ

valueとして指定できるデータ型とサイズを，APを作成する言語ごとに次の表に示します。

表15‒3　valueとして指定できるデータ

APを作成する言語

valueとして指定できるデータ型

サイズ

（単位：バイト）

備考

Java言語

シリアライズ可能な任意のオブジェクト（java.lang.Object）

1〜262,144

シリアライズ後のバイト配列の長さとなります。

nullの場合は不正となります。

C言語

任意のバイト配列（void *）

1〜262,144

任意のバイト配列の長さとなります。

注意事項

指定できるデータ型とサイズについて，API（put，get，remove）・コマンド（eztool put，eztool get，eztool remove）間に完全な互換性はありません。

Java言語のクライアントAPまたはユーザファンクションと，C言語のクライアントAPで同一のkeyを扱う場合，valueはバイト配列にしてください。Java言語のクライアントAPまたはユーザファンクションから格納したバイト配列のvalueを，C言語のクライアントAPで取得できます。バイト配列でないvalueをC言語のクライアントAPで取得した場合，エラーとなります。

C言語のクライアントAPから格納したvalueは，Java言語のクライアントAPまたはユーザファンクションでバイト配列として取得できます。

(4)　キャッシュ名として指定できるデータ

キャッシュ名として指定できるデータ型と文字数を，APを作成する言語ごとに次の表に示します。

表15‒4　キャッシュ名として指定できるデータ

APを作成する言語

キャッシュ名として指定できるデータ型

文字数

備考

Java言語

文字列（java.lang.String）

1〜32

ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

nullまたは空文字列は不正となります。

C言語

'¥0'を終端記号とする文字列（char *）

1〜32

ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

文字列の最大サイズは，'¥0'を含まないバイト数となります。

長さ0の文字列（'¥0'だけ）は指定できません。

(5)　EADSクライアント名として指定できるデータ

EADSクライアント名として指定できるデータ型と文字数を，APを作成する言語ごとに次の表に示します。

表15‒5　EADSクライアント名として指定できるデータ

APを作成する言語

EADSクライアント名として指定できるデータ型

文字数

備考

Java言語

文字列（java.lang.String）

0〜16

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_）が指定できます。

空文字列を指定できます。

nullは不正となります。

C言語

'¥0'を終端記号とする文字列（char *）

0〜16

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_）が指定できます。

文字列の最大サイズは，'¥0'を含まないバイト数となります。

長さ0の文字列（'¥0'だけ）を指定できます。

15.2.3　予約パッケージ名および予約システムプロパティ名（Java言語の場合）

次に示す予約パッケージ名および予約システムプロパティ名を，APで使用しないでください。

予約パッケージ名

com.hitachi.software.xeads.で始まるパッケージ名

予約システムプロパティ名

eads.で始まるプロパティ名

16　クライアントAPを作成する（Java言語）

この章では，Java言語を使用したクライアントAPの作成方法について説明します。

16.1　ソースプログラムを作成する（Java言語）

ここでは，キャッシュへのアクセスとデータ操作の流れと，ソースプログラムの作成例について説明します。

16.1.1　キャッシュへのアクセスとデータ操作の流れ

キャッシュへのアクセスとデータ操作の流れについて説明します。

(1)　Java言語を使用する場合のソースプログラムの例

Java言語を使用する場合のソースプログラムの例（keyとvalueを格納する場合）を次に示します。

// EADSが提供するパッケージをインポートする
import com.hitachi.software.xeads.client.api.*;

public class PutSample {

public static void main(String[] args) {

    // EADSクライアントの初期設定をする

    final String CONFPATH = "./conf/eads_sample_client.properties";
    final String CACHENAME = "cache1";
    CacheManager cacheManager = null;
    Cache cache = null;

    try {
        cacheManager = CacheManager.create(CONFPATH);

        // キャッシュへのアクセスを開始する
        cache = cacheManager.getCache(CACHENAME);
        System.out.println("cache start succeeded. (cache name = " + CACHENAME + ")");

        // keyとvalueを格納する
        final String KEY = "key1";
        final String VALUE = "value1";

        cache.put(KEY, VALUE);
        System.out.println("PUT succeeded. (key = " + KEY + ", value = " + VALUE + ")");

        String value = (String)cache.get(KEY);
        System.out.println("GET succeeded. (key = " + KEY + ", value = " + value + ")");

    } catch (CacheException e) {
        System.out.println("cache operation failed.(cache name = " + CACHENAME + ", error code = " + e.getErrorCode() + ")");
    }finally{
        if(cacheManager != null){
            // キャッシュへのアクセスを終了する
            if(cache != null){
                try{
                    cacheManager.removeCache(CACHENAME);
                    System.out.println("cache stop succeeded. (cache name = " + CACHENAME + ")");
                }catch(CacheException e){
                    System.out.println("CacheManager.removeCache() failed. (error code = " + e.getErrorCode() + ")");
                }
            }
            // EADSクライアントの使用を終了する
            try{
                cacheManager.destroy();
            }catch(CacheException e){
                System.out.println("CacheManager.destroy() failed. (error code = " + e.getErrorCode() + ")");
            }
        }
    }
}
}

(2)　EADSが提供するパッケージをインポートする

EADSが提供する次のパッケージをインポートします。

import com.hitachi.software.xeads.client.api.*;

(3)　EADSクライアントの初期設定をする

EADSクライアントの初期設定をするには，CacheManagerクラスのcreate()を使用して，CacheManagerクラスのインスタンスを生成します。

クライアント定義に従って，接続先EADSサーバなどが設定されます。

複数のクラスタと同時に接続するなど，設定の異なる複数のCacheManagerクラスのインスタンスを同時に使用したい場合は，クライアント定義を変更してCacheManagerクラスのcreate()を複数回実行します。複数回実行した場合は，取得した各CacheManagerクラスのインスタンスに対してCacheManagerクラスのdestroy()を実行して，EADSクライアントの使用を終了してください。

(4)　キャッシュへのアクセスを開始する

EADSクライアントの初期設定が完了したら，キャッシュへのアクセスを開始します。

キャッシュへのアクセスを開始するには，CacheManagerクラスのgetCache()を使用して，データを操作するためのインスタンス（Cacheクラスのインスタンス）を生成します。

(5)　keyとvalueを格納する

キャッシュにkeyとvalueを格納するには，Cacheクラスのput()を使用します。

put()には，キャッシュに格納するkeyとvalueを指定します。

(6)　valueを取得する

キャッシュからvalueを取得するには，Cacheクラスのget()を使用します。

get()には，取得するvalueに関連づけられたkeyを指定します。

get()によってvalueの取得が成功すると，戻り値としてkeyに関連づけられたvalueが返却されます。

valueを取得する場合のソースプログラムの例を次に示します。

ソースプログラムの例（valueを取得する場合）

    // valueを取得する
    final String KEY = "key1";
    try {
        String value = (String) cache.get(KEY);
        System.out.println("GET succeeded. (key = " + KEY + ", value = " + value + ")");
    } catch (CacheException e) {
        int errcode = e.getErrorCode();
        System.out.println("GET failed. (key = " + KEY + ", error code = " + errcode + ")");
    }

(7)　keyとvalueを削除する

キャッシュから指定したkey，およびkeyに関連づけられたvalueを削除するには，Cacheクラスのremove()を使用します。

remove()には，削除するvalueに関連づけられたkeyを指定します。

(8)　ユーザファンクションを実行する

ユーザファンクションを実行するには，executeFunction()を使用します。

executeFunction()には，ユーザファンクションを実行するkeyまたはグループ名，もしくはNodeクラスのインスタンス，実行するユーザファンクション名，およびユーザファンクションに渡す引数を指定します。

executeFunction()によってユーザファンクションが実行されると，ユーザファンクションの実行結果が返却されます。

(9)　キャッシュへのアクセスを終了する

キャッシュへのアクセスを終了するには，CacheManagerクラスのremoveCache()を使用します。

removeCache()には，アクセスを終了するキャッシュ名を指定します。

(10)　EADSクライアントの使用を終了する

EADSクライアントの使用を終了するには，CacheManagerクラスのdestroy()を使用します。

16.2　クライアントAP作成上の留意事項（Java言語）

クライアントAP作成上の留意事項について説明します。

16.2.1　EADSクライアントの初期設定に関する留意事項

EADSクライアントの初期設定に関する留意事項を次に示します。

EADSクライアントを同一マシンで複数同時に実行する場合は，それぞれ異なるログ出力先を指定してください。同一のログ出力先を指定した場合，動作は保証されません。ログ出力先の設定については，「8.4.2　ファイルの出力先の設定」を参照してください。

EADSクライアント名の指定を省略して初期設定をした場合は，EADSクライアント名に空文字列を指定して初期設定をした場合と同じ動作をします。EADSクライアント名とログ出力先の関係については，「8.4.2　ファイルの出力先の設定」を参照してください。

Java EEサーバ（uCosminexus Application Server）上で実行する場合，次に示す方法などで，AP開始時にEADSクライアントの初期設定をしてください。

ServletContextListenerを使用する。

Servletのinitメソッドを使用する。

Java EEサーバ（uCosminexus Application Server）上で実行する場合，CacheManagerクラスのcreate()の実行後，CacheManagerクラスのdestroy()を実行しないとメモリリークとなるので必ず実行してください。

クライアント定義を変更する場合は，次の順に行います。

CacheManagerクラスのdestroy()で，EADSクライアントの使用を終了します。

クライアント定義ファイルを更新します。

CacheManagerクラスのcreate()で，再度EADSクライアントの初期設定をします。

16.2.2　キャッシュへのアクセス開始に関する留意事項

キャッシュ名には，あらかじめeztool createcacheコマンドで作成した名称を指定します。指定したキャッシュ名が存在しない場合は，CacheException.EAD_ERROR_NET_CLUSTERINFOが返却されます。

16.2.3　データ操作に関する留意事項

(1)　データ操作に関する留意事項

データ操作に関する留意事項を次に示します。

指定したkeyがすでにキャッシュに格納されている場合，put()は無条件にvalueを更新します。無条件にvalueを更新したくない場合は，次のメソッドを使用してください。

create()

新規にkeyを格納する場合だけ，valueをkeyに関連づけて格納します。

update()

指定したkeyがすでに格納されている場合だけ，valueをkeyに関連づけて格納します。

replace()

指定したkeyに関連づけられているvalueを，条件として指定したvalue（comparativeValue）と比較します。valueが一致している場合だけ，valueをkeyに関連づけて格納します。

get()の実行時に指定したkeyがキャッシュに存在しない場合は，nullが返却されます。

replace()の実行時に指定したkeyが存在しない場合は，CacheException.EAD_ERROR_SERVER_REPLACE_METHOD_KEY_NOT_EXISTが返却されます。

replace()の実行時に比較結果が一致しなかった場合はCacheException.EAD_ERROR_SERVER_REPLACE_METHOD_NOT_MATCHEDが返却されます。

create()の実行時に指定したkeyがすでに存在している場合は，CacheException.EAD_ERROR_SERVER_CREATE_METHOD_KEY_EXISTが返却されます。

update()の実行時に指定したkeyが存在しない場合は，CacheException.EAD_ERROR_SERVER_UPDATE_METHOD_KEY_NOT_EXISTが返却されます。

(2)　データの一括操作に関する留意事項

データの一括操作に関する留意事項を次に示します。

指定したkeyがすでにキャッシュに格納されている場合，putAll()は無条件にvalueを更新します。

キャッシュの操作中に排他処理はされません。そのため，一括操作中に，ほかのキャッシュ操作によって操作対象のvalueが変更されることがあります。

大量のデータを一括操作する場合，EADSクライアントおよびEADSサーバでメモリが大量に消費されることがあります。

大量のデータを一括操作する場合，操作の完了までに時間が掛かることがあります。そのため，タイムアウト時間を適切に設計してください。

複数のkeyを指定する一括操作の実行時に，あるkeyに対する操作に失敗した場合やクラスタ構成が変更された場合は，一括操作の処理が終了し，その時点で未実行の操作がキャンセルされます。一括操作中に，ユーザの操作（例：スケールアウト処理，リバランス処理，または復旧処理）によってクラスタ構成が変更された場合も，未実行の操作がキャンセルされます。

操作に失敗したkeyおよび失敗した要因については，各APIの戻り値から判断してください。また，操作がキャンセルされたkeyについては，CacheException.EAD_ERROR_CLIENT_BATCH_CANCELのエラーコードで確認できます。

複数のkeyを指定する一括操作の実行時に，keyに対する操作がすべて失敗した場合は，CacheException.EAD_ERROR_BATCH_FAILED_ALLが返却されます。

複数のkeyを指定する一括操作の実行時に，keyに対する操作が部分的に失敗した場合は，CacheException.EAD_ERROR_BATCH_FAILED_PARTが返却されます。

16.2.4　イベントリスナに関する留意事項

イベントリスナに関する留意事項を次に示します。

(1)　イベントリスナの実装に関する留意事項

イベントが発生した場合，クラスタイベントリスナおよびノードイベントリスナは，EADSクライアントに追加した順序（addClusterEventListener()およびaddNodeEventListener()で追加した順序）で実行されます。

イベントリスナ内では，CacheManagerクラスの次のメソッドを呼び出さないでください。

create()

destroy()

イベントリスナのtoString()はメッセージログに使用します。オーバーライドする場合は，次の点に注意してください。

インスタンスを識別できる文字列を返却すること。

改行を含まない文字列を返却すること。

ClusterEventContextと，そこから取得できるオブジェクトの有効範囲は，ClusterEventListenerインタフェースのメソッドの中だけです。これらのオブジェクトを，メソッドの範囲外で参照した場合，動作は保証されません。

NodeEventContextと，そこから取得できるオブジェクトの有効範囲は，NodeEventListenerインタフェースのメソッドの中だけです。これらのオブジェクトを，メソッドの範囲外で参照した場合，動作は保証されません。

イベントリスナ内には，EADSクライアントの正常な処理に影響を及ぼす処理（例えば，リソースを大量に消費する処理）を実装しないでください。

同一EADSクライアント内のすべてのイベントリスナは，1つのスレッドから呼び出されて動作します。イベントリスナの動作中は，EADSサーバから受信したデータの保持用にメモリを占有します。そのため，イベントリスナ内には，長時間動作する処理を実装しないでください。

(2)　イベントの通知に関する留意事項

EADSサーバが初期化状態（initialized）以降の状態の場合に，EADSサーバからEADSクライアントにイベントが通知されます。ただし，EADSサーバとのコネクションの再接続に成功した場合は，EADSサーバの状態に関係なく，そのEADSサーバがまだ通知していないイベントが通知されます。

EADSクライアントがクラスタ内のどのEADSサーバとも通信できなかった場合は，イベントが通知されません。ただし，EADSクライアントはEADSサーバとのコネクションの再接続を繰り返すため，再接続に成功すると，そのあとでイベントが通知されます。

半数以上のEADSサーバが縮退している場合，イベントが通知されないことがあります。

EADSクライアントとEADSサーバ間のコネクションで，切断と再接続を繰り返した場合や，通信が遅延している場合には，イベントの通知が遅延します。

EADSクライアントとEADSサーバ間のコネクションが切断している間に，複数のEADSサーバが縮退した場合，EADSサーバのイベント再送時間（サーバ定義のeads.server.eventListener.notify.retry.timeoutパラメタの指定値）を過ぎて再送用のデータが破棄されると，イベントを通知する順序が逆転するおそれがあります。

EADSクライアントとEADSサーバ間のコネクションが切断している間に，あるEADSサーバが縮退後に復旧した場合，EADSサーバのイベント再送時間（サーバ定義のeads.server.eventListener.notify.retry.timeoutパラメタの指定値）を過ぎて再送用のデータが破棄されると，何もイベントが通知されないおそれがあります。

同じプロセス内で，EADSクライアントを終了（CacheManagerクラスのdestroy()）したあとにEADSクライアントを開始（CacheManagerクラスのcreate()）した場合は，すでに終了したEADSクライアントの再送用のデータは破棄されています。そのため，EADSクライアントを開始したあとのイベントだけが通知されます。

EADSサーバの処理は，EADSクライアントとの通信路の状態とは関係なく進みます。そのため，EADSクライアントへのイベントの通知が完了していなくても，クラスタの終了（eztool stop）やEADSサーバの縮退などの処理は完了します。

16.2.5　キャッシュへのアクセス終了に関する留意事項

キャッシュへのアクセス終了に関する留意事項を次に示します。

一度，CacheManagerクラスのremoveCache()でアクセスを終了したキャッシュに再度アクセスする場合は，CacheManagerクラスのgetCache()を発行してください。

CacheManagerクラスのremoveCache()は同じキャッシュ名を指定して取得したすべてのキャッシュ（Cacheクラスのインスタンス）へのアクセスを終了するため，複数スレッドで実行している場合などは注意してください。

16.2.6　EADSクライアントの使用終了に関する留意事項

EADSクライアントの使用終了に関する留意事項を次に示します。

CacheManagerクラスのdestroy()は，CacheManagerクラスのcreate()と対になるように実行してください。CacheManagerクラスのcreate()で取得したインスタンスにつき1度だけ実行してください。

Java EEサーバ（uCosminexus Application Server）上で実行する場合，CacheManagerクラスのdestroy()を実行しないとメモリリークとなるので必ず実行してください。

CacheManagerクラスのdestroy()を実行してEADSクライアントがすでに終了している場合は，CacheExceptionが返却されます。

16.3　ソースプログラムをコンパイルする（Java言語）

作成したソースプログラムは，JDKのjavacコマンドを使用してコンパイルします。

javacコマンドの詳細については，Java言語のコンパイラに関するドキュメントを参照してください。

コンパイルに必要となるクラスライブラリを次に示します。

/opt/hitachi/xeads/javaclient/lib/eads-client.jar

/opt/hitachi/xeads/javaclient/lib/eads-common.jar

/opt/hitachi/xeads/javaclient/lib/hntrlib2-eads-j.jar

なお，Java EEサーバ（uCosminexus Application Server）上で実行する場合は，次に示すライブラリをAP（WARファイル（WEB-INF/libディレクトリ））に取り込む必要があります。※

/opt/hitachi/xeads/javaclient/lib/eads-client.jar

/opt/hitachi/xeads/javaclient/lib/eads-common.jar

/opt/hitachi/xeads/javaclient/lib/hntrlib2-eads-j.jar

注※

ServletまたはJSPから実行できます（Filter，Listenerを含みます）。

17　ユーザファンクションを作成する

この章では，ユーザファンクションの作成から実行までの方法について説明します。

17.1　ユーザファンクションを作成する前に知っておくべき前提条件

ユーザファンクションを作成する前に知っておくべき前提条件について説明します。

ユーザファンクションの概要については，「2.7　ユーザファンクションによる効率的なデータ処理」を参照してください。

17.1.1　ユーザファンクションの作成言語

ユーザファンクションはJava言語で作成できます。

ユーザファンクションは，EADSが提供するFunctionインタフェースを実装し，jarファイルにアーカイブする必要があります。

注意事項

EADSサーバより新しいバージョンのFunctionインタフェースで実装されたユーザファンクションを使用した場合，動作は保証されません。この場合，ソースプログラムの変更や再コンパイルが必要です。

なお，03-00以降のバージョンのFunctionインタフェースで実装されたユーザファンクションは，新しいバージョンのEADSサーバでも使用できます。

なお，1つのEADSサーバに複数のjarファイルを配置することができます。そのため，1つのEADSサーバで複数のユーザファンクションを実行したい場合，用途に合わせてjarファイルを分割することができます。

17.1.2　ユーザファンクションの実行方法の種類

ユーザファンクションには次の2種類の実行方法があります。

keyまたはグループ指定による実行方法

EADSサーバ指定による実行方法

それぞれのユーザファンクションの仕組みについては，「2.7.1　ユーザファンクションの仕組み」を参照してください。

17.1.3　EADSサーバが使用するJavaクラスローダ

EADSサーバで使用するJavaクラスローダについて説明します。

Javaクラスローダとは，JavaクラスをJava仮想マシンに動的にロードする役割を持ちます。EADSサーバが使用するJavaクラスローダの構成を次の図に示します。

システムクラスローダ

jdkライブラリとEADSサーバで使用するクラスをロードします。

ユーザライブラリクラスローダ

＜運用ディレクトリ＞/app/lib下に配置したユーザファンクションで使用するライブラリのクラスをロードします。

このクラスローダは，EADSサーバで1つ作成されます。

ファンクションクラスローダ

ユーザファンクションのjarファイルに含まれるクラスと，jarファイルのマニフェストファイルに記載されたライブラリに含まれるクラス（ユーザファンクションだけで使用するクラス）をロードします。

このクラスローダは，jarファイルごとに作成されます。そのため，ユーザファンクションのjarファイルを複数配置した場合，クラスローダも複数作成されます。

各クラスローダのクラス検索は，親クラスローダであるシステムクラスローダから行います。

ユーザファンクションのロード順序は，jarファイルのASCIIコード順です。

異なるファンクションクラスローダに同じ完全修飾クラス名のクラスをロードできますが，ユーザファンクションとして実行できるのは先にロードされたユーザファンクションとなります。あとからロードされたユーザファンクションについては，インスタンスの生成およびFuncitonインタフェースのinit()は実行されません。

17.1.4　ユーザファンクションの作成の流れ

ユーザファンクションの作成の流れを次の図に示します。

17.2　ソースプログラムを作成する（ユーザファンクション）

ユーザファンクションの作成方法と，作成上の留意事項について説明します。

17.2.1　ユーザファンクションの流れ

ユーザファンクションの流れを次の図に示します。

(1)　EADSが提供するパッケージをインポートする

EADSが提供する次のパッケージをインポートします。

import com.hitachi.software.xeads.func.Function;

import com.hitachi.software.xeads.func.FunctionContext;

(2)　ユーザファンクションの初期化処理を実装する

Functionインタフェースのinit()を使用して，EADSサーバの開始時に呼び出される，ユーザファンクションの初期化処理を実装します。

init()の引数FunctionContextを通じて，EADSサーバの情報を取得できます。ただし，init()はEADSサーバ起動時に呼び出されるため，キャッシュのデータは取得できません。

なお，init()の実行時に例外が発生した場合，このユーザファンクションは使用できません。

(3)　ユーザファンクションの処理を実装する

Functionインタフェースのexecute()を使用して，EADSクライアントからの要求時にEADSサーバで実行するユーザファンクションの処理を実装します。

execute()の引数FunctionContextを通じて，EADSサーバの情報を取得したり，キャッシュのデータを操作したりできます。

ユーザファンクションで実行できる操作については，「18.2　ユーザファンクションで使用できるAPI」を参照してください。

(4)　ユーザファンクションの終了処理を実装する

Functionインタフェースのdestroy()を使用して，EADSサーバの終了時に呼び出される，ユーザファンクションの終了処理を実装します。

destroy()の引数FunctionContextを通じて，EADSサーバの情報を取得できます。

なお，ユーザファンクションの初期化処理に失敗した場合，destroy()は呼び出されません。

17.3　ユーザファンクション作成上の留意事項

ユーザファンクション作成上の留意事項について説明します。

17.3.1　jarファイル名に関する留意事項

jarファイル名に関する留意事項を次に示します。

eadsから始まるファイル名は使用しないでください。

ファイル名は次の形式にしてください。

＜任意の文字列＞_function.jar

任意の文字列には，半角英数字（0〜9，A〜Z，a〜z），およびアンダースコア（_）が指定できます。

17.3.2　パッケージ名に関する留意事項

パッケージ名に関する留意事項を次に示します。

com.hitachi.software.xeadsから始まるパッケージ名は使用しないでください。

ユーザファンクションのパッケージ名およびクラス名には，半角英数字（0〜9，A〜Z，a〜z），およびアンダースコア（_）が指定できます。

17.3.3　ユーザファンクションの実装に関する留意事項

ユーザファンクションの実装に関する留意事項を次に示します。

ユーザファンクションのデフォルトコンストラクタのアクセス修飾子はpublicにして，EADSサーバから使用できるようにしてください。

EADSクライアントからの引数と戻り値は，シリアライズ可能なオブジェクトにしてください。

Groupインタフェースを使用してデータを取得する場合，次のどちらかの方法で，オブジェクトをデシリアライズするために十分な内容をクラスパスに追加してください。

jarファイルのマニフェストのClass-Path属性にjarファイルのパスを記載する。

＜運用ディレクトリ＞/app/libディレクトリ下にjarファイルを配置する。

ユーザファンクションのインスタンスは単一であり，複数のEADSクライアントで同時に実行すると，EADSサーバではマルチスレッドで同一のインスタンスを使用します。そのため，ユーザファンクションには次のような処理を実装しないでください。

排他制御をしないで，インスタンス変数，static変数を更新する。

排他制御をしないで，スレッドセーフでないAPIを使用する。

FunctionContextと，そこから取得できるオブジェクトの有効範囲は，Functionインタフェースのメソッドの中だけです。これらのオブジェクトを，メソッドの範囲外で参照した場合の動作は保証されません。

ユーザファンクション内でスレッドを生成しないでください。スレッドを生成・実行した場合の動作は保証されません。

ユーザファンクションのリクエスト1回当たりの実行時間が短くなるよう設計してください。

次のコマンドを実行した際に，ユーザファンクションの実行時間の分だけ，「各処理が完了するまでの時間」および「各処理中に実行したリクエストが完了するまでの時間」が長くなるおそれがあります。

次のオプションを指定したezstartコマンド

-rまたは--recovery

-aiまたは--add_id

-apまたは--add_position

次のオプションを指定したezserverコマンド

-rまたは--recovery

-aiまたは--add_id

-apまたは--add_position

eztool closeコマンド

eztool isolateコマンド

eztool rebalanceコマンド

ユーザファンクションは，EADSサーバプロセスで動作するため，カレントディレクトリは運用ディレクトリになります。

C言語のクライアントAPからユーザファンクションを実行する場合，ユーザファンクションの戻り値として扱うことができるオブジェクトは，バイト配列とnullだけです。バイト配列およびnull以外のオブジェクトを戻り値とした場合，エラーとなります。

C言語のクライアントAPにユーザファンクションの引数を指定する場合，ユーザファンクションで扱うことができるオブジェクトは，バイト配列だけです。

17.3.4　効率的にkeyの一覧を取得する方法

あるグループのkeyをASCIIコードの昇順に格納し，ユーザファンクションを使用して非同期にkeyの一覧を取得する場合，GroupインタフェースのkeyIterator()とkeyIterator()（Keyインタフェース指定）を組み合わせると，1度取得したkeyを，2度目以降に取得する際に対象外にできます（2度目以降は，未取得のkeyの一覧だけを取得できます）。

これによって，データが追加されるたびに，すべてのkeyの一覧を取得し直すことなく，効率的にkeyの一覧を取得できます。

Groupインタフェースについては，「18.2.9　Groupインタフェース」を参照してください。

keyの一覧をASCIIコードの降順で取得する場合は，GroupインタフェースのdescendingKeyIterator()とdescendingKeyIterator()（Keyインタフェース指定）を組み合わせて，同様のことができます。

ポイント

keyの格納順序に対応するシーケンス（日付や時刻など）をkeyとして設定すると，効率的に一覧を取得できます。

17.4　ファンクション定義ファイルを作成する（任意）

必要に応じて，ファンクション定義ファイルを作成します。

ファンクション定義ファイルには2種類あります。

全ユーザファンクションに適用するファンクション定義ファイルを作成する場合

ファイル名はeads_function.propertiesです。

ファンクション定義ファイルを配置しなかった場合，実行に必要なパラメタにはデフォルト値が使用されます。

ファンクション定義のパラメタについては，「9.2.3　スレッドプールおよびコネクションプールに関連するパラメタ」を参照してください。

ユーザファンクションのjarファイルごとにファンクション定義ファイルを作成する場合

ファイル名は次の形式です。

＜任意の文字列＞_function.properties

任意の文字列には，適用したいjarファイルの「_function.jar」を除いた文字列を指定してください。

（例）jarファイル名がsample_function.jarの場合

ファンクション定義ファイル名はsample_function.propertiesとなります。

eads_function.propertiesと＜任意の文字列＞_function.propertiesは同時に使用できますが，両定義ファイルに同じパラメタが定義されていた場合，＜任意の文字列＞_function.propertiesの定義内容が適用されます。

ファンクション定義ファイルを配置しなかった場合，eads_function.propertiesの定義内容が適用されます。

注意事項

03-00以前のユーザファンクションのjarファイル名（user-function.jar）の場合，ファンクション定義ファイル名はuser_function.propertiesとなります。

ファンクション定義には，eads.function.＜ユーザファンクション名＞.maxExecuteThreadsパラメタを指定して，ユーザファンクション単位の最大同時実行スレッド数を設定できます。

また，ユーザ独自のパラメタを定義することもできます。

ユーザファンクション単位の最大同時実行スレッド数の設計については，「9.2.2　最大同時実行スレッド数の設定」を参照してください。

ファンクション定義に指定したパラメタは，InitConfigインタフェースを使用することで，ユーザファンクション内で取得できます。

ファンクション定義ファイルを作成する手順を説明します。

ファンクション定義ファイルを編集します。

次のディレクトリにファンクション定義ファイルを格納します。

＜運用ディレクトリ＞/app

ファンクション定義ファイルの例を次に示します。

eads.function.com.abc.def.outputGroupKeys.max_execute_threads=10
eads.function.com.abc.def.getSpectialKey.max_execute_threads=5
eads.function.com.abc.def.updateInstance.max_execute_threads=2

# ユーザ独自のパラメタ
com.FunctionSample.def.version=0100
com.FunctionSample.def.isUpdateEnabled=true

注意事項

ユーザ独自のパラメタを定義する場合，eads.で始まるパラメタ名は使用できません。使用した場合の動作は保証されません。

17.5　ソースプログラムをコンパイルする（ユーザファンクション）

ユーザファンクションをコンパイルします。

17.5.1　ユーザファンクションをコンパイルする手順

ユーザファンクションをコンパイルする手順について説明します。

(1)　ソースプログラムを配置する

作成したユーザファンクションを任意の場所に配置します。

(2)　コンパイルする

作成したユーザファンクションのソースプログラムは，次に示すディレクトリに格納されているJDKのjavacコマンドを使用してコンパイルします。

javacコマンドの詳細については，Java言語のコンパイラに関するドキュメントを参照してください。

/opt/hitachi/xeads/PSB/jdk

次に示すライブラリをクラスパスに設定します。

/opt/hitachi/xeads/server/lib/eads-function.jar

17.6　ユーザファンクションをパッケージングする

「17.5　ソースプログラムをコンパイルする（ユーザファンクション）」でコンパイルしたclassファイルを格納するjarファイルを作成します。

17.6.1　ユーザファンクションをパッケージングする手順

「17.5　ソースプログラムをコンパイルする（ユーザファンクション）」でコンパイルしたclassファイルを格納するjarファイルを作成する手順について説明します。

(1)　マニフェストを設定する（任意）

ユーザファンクションだけで使用するクラスは，jarファイルのマニフェストファイル（MANIFEST.MF）のClass-Path属性に記載します。

(2)　jarファイルを作成する

次に示すディレクトリに格納されているJDKのjarコマンドを使用してjarファイルを作成します。

jarコマンドの詳細については，Java言語に関するドキュメントを参照してください。

/opt/hitachi/xeads/PSB/jdk

17.7　ユーザファンクションをデプロイする

ユーザファンクションをデプロイします。

ユーザファンクションのデプロイはEADSサーバが停止した状態で行います。

17.7.1　ユーザファンクションをデプロイする手順

ユーザファンクションをデプロイする手順について説明します。

(1)　EADSサーバを終了する

eztool stopコマンドを実行して，EADSサーバを終了します。

(2)　作成したjarファイルをコピーする

「17.6.1(2)　jarファイルを作成する」で作成したjarファイルを，次に示すディレクトリにコピーします。

＜運用ディレクトリ＞/app

(3)　ファンクション定義ファイルをコピーする（任意）

ファンクション定義ファイルを作成した場合，次に示すディレクトリにコピーします。

＜運用ディレクトリ＞/app

(4)　ライブラリを配置する（任意）

必要に応じて，ユーザファンクションで使用するライブラリを次に示すディレクトリに配置します。拡張子がjarであるライブラリだけが有効です。

＜運用ディレクトリ＞/app/lib

jarファイルのマニフェストファイル（MANIFEST.MF）のClass-Path属性にjarファイルのパスを記載している場合，そのパスにjarファイルをコピーしてください。

(5)　EADSサーバを開始する

ezserverコマンドを実行し，EADSサーバを開始します。

(6)　デプロイされたかどうか確認する（任意）

eztool listfuncコマンドを使用して，正しくデプロイされたかどうか確認します。

手順については，「11.11　ユーザファンクションが各EADSサーバに正しく配置されているかどうか，また，実行できるかどうか確認したい」を参照してください。

17.8　ユーザファンクションを実行する

ユーザファンクションを実行して動作を確認します。

17.8.1　ユーザファンクションの呼び出し

ユーザファンクションは，EADSクライアントの次のメソッドを使用して呼び出します。

(1)　keyまたはグループを指定して実行するユーザファンクションの場合

Java言語の場合

CacheクラスのexecuteFunction()（keyまたはグループ指定）

C言語の場合

ead_execute_function()

(2)　EADSサーバを指定して実行するユーザファンクションの場合

Java言語の場合

CacheクラスのexecuteFunction()（EADSサーバ指定）

C言語の場合

ead_execute_node_function()

17.8.2　ユーザログへの出力

UserLoggerインタフェースを使用して，ユーザファンクションの実行情報など（ユーザログ）を出力できます。ユーザログは，サーバ定義のeads.logger.dirパラメタに指定したディレクトリに，eads_user_message[n].log（[n]はファイル数の通番）というファイル名で出力されます。

17.8.3　ユーザファンクション運用上の留意事項

ユーザファンクションは稼働状態のEADSサーバでだけ実行できます。ユーザファンクション実行中にEADSサーバの状態が変更された場合，それ以降のユーザファンクションによるデータ操作はエラーとなります。

eztool forcestopコマンドやOSの機能などによってEADSサーバプロセスが強制終了された場合，Functionインタフェースのdestroyメソッドは呼び出されません。

EADSサーバ間でのユーザファンクションの整合性は，ユーザが確保する必要があります。特定のEADSサーバにユーザファンクションが存在しない状態で，ユーザファンクションを実行しようとすると，EADSクライアントにはエラーが返されます。

ユーザファンクションの実装がEADSサーバごとに異なっていても，EADSサーバはユーザファンクションを実行します。

17.9　実行環境に配布する

＜運用ディレクトリ＞/appディレクトリを，実行環境のEADSサーバの＜運用ディレクトリ＞/appディレクトリにコピーします。

18　APIリファレンス（Java言語）

この章では，EADSで使用できるAPI（Java言語）について説明します。

18.1　Java言語のクライアントライブラリが提供するAPI

Java言語のクライアントライブラリでは，EADSのAPIとして次の表に示すAPIを提供します。これらのAPIは，Java言語で記述したソースプログラムに，EADSが提供するパッケージ名を指定することで使用できます。

なお，Java言語のクライアントライブラリで使用できるAPIはすべてスレッドセーフです。

表18‒1　Java言語のクライアントライブラリで使用できるAPI

項番

インタフェース名，クラス名，または列挙型

機能

パッケージ名

1

Cache

データを操作するためのクラスです。

com.hitachi.software.xeads.client.api

2

CacheManager

キャッシュを管理するためのクラスです。

3

Node

EADSサーバの情報を取得するためのクラスです。

4

FailureOperationInfo

一括操作を試みた結果，一部またはすべての操作に失敗した場合に，失敗した操作の情報を格納するためのクラスです。

5

CacheException

Cacheクラス，およびCacheManagerクラスに対する操作が失敗した場合に返却する例外クラスです。

6

InitializeException

CacheManagerクラスの初期化でエラーが発生した場合に返却されるCacheExceptionのサブクラスです。

7

InternalClientException

EADSクライアントで内部エラーが発生した場合に返却されるCacheExceptionのサブクラスです。

8

InternalServerException

EADSサーバで内部エラーが発生した場合に返却されるCacheExceptionのサブクラスです。

9

ServerCommunicationException

通信障害が発生した場合に返却されるCacheExceptionのサブクラスです。

10

UserOperationException

不正なユーザ操作によってエラーが発生した場合に返却されるCacheExceptionのサブクラスです。

11

BatchOperationException

一括操作を試みた結果，一部またはすべての操作に失敗した場合に返却されるCacheExceptionのサブクラスです。

12

AllFailureException

一括操作を試みた結果，すべての操作に失敗した場合に返却されるBatchOperationExceptionのサブクラスです。

13

PartFailureException

一括操作を試みた結果，一部の操作に失敗した場合に返却されるBatchOperationExceptionのサブクラスです。

14

ClusterEventListener

クラスタイベントリスナが実装する必要のあるインタフェースです。

15

NodeEventListener

ノードイベントリスナが実装する必要のあるインタフェースです。

16

ClusterEventContext

クラスタイベントリスナの実行に必要な情報をClusterEventListenerインタフェースに渡すインタフェースです。

17

NodeEventContext

ノードイベントリスナの実行に必要な情報をNodeEventListenerインタフェースに渡すインタフェースです。

18

列挙型ClusterEventType

クラスタイベントリスナの実行の契機を表す列挙型です。

19

列挙型NodeEventType

ノードイベントリスナの実行の契機を表す列挙型です。

18.1.1　Cacheクラス

(1)　説明

データを操作するためのクラスです。

(2)　継承関係

java.lang.Object
　└com.hitachi.software.xeads.client.api.Cache

(3)　形式

public class Cache
extends java.lang.Object

(4)　メソッド一覧

Cacheクラスが提供するメソッド一覧を次の表に示します。

メソッド名

説明

getName()

Cacheクラスのインスタンスに関連づけられたキャッシュ名を取得します。

put()

valueをkeyに関連づけて格納します。

putAll()

指定したMap内で関連づけられたkeyとvalueを，キャッシュに一括格納します。

create()

新規にkeyを格納する場合だけ，valueをkeyに関連づけて格納します。

update()

指定したkeyがすでに格納されている場合だけ，valueをkeyに関連づけて格納します。

replace()

指定したkeyに関連づけられているvalueを，条件として指定したvalue（comparativeValue）と比較します。valueが一致している場合だけ，valueをkeyに関連づけて格納します。

get()

指定したkeyに関連づけられたvalueを取得します。

getAll()（Set指定）

指定したkeyの一覧に関連づけられているvalueを一括取得します。取得したvalueは，keyと関連づけられて，引数に指定したMapに格納されます。

getAll()（グループ指定）

指定したグループ，およびその下位階層のグループに属するkeyに関連づけられているvalueを，一括取得します。取得したvalueは，keyと関連づけられて，引数に指定したMapに格納されます。

remove()

指定したkey，およびkeyに関連づけられたvalueを削除します。

removeAll()（Set指定）

指定したkeyの一覧に関連づけられているvalueを一括削除します。

removeAll()（グループ指定）

指定したグループに属するkeyおよびvalueを，下位階層のグループに属するkeyおよびvalueも含めて一括削除します。

removeAll()（EADSサーバ指定）

指定したEADSサーバをコピー元EADSサーバとするkeyおよびvalueを一括削除します。

getGroupNameSet()

指定したEADSサーバに格納されている最上位階層のグループ名の一覧を取得します。

グループ名の一覧は，ASCIIコードの昇順になります。

getKeySet()（グループ指定）

指定したグループに属するkeyの一覧を取得します。keyの一覧には，指定したグループの下位階層のグループに属するkeyも含まれます。

keyの一覧は，ASCIIコードの昇順になります。

getKeySet()（EADSサーバ指定）

指定したEADSサーバに格納されているkeyの一覧を取得します。

keyの一覧は，ASCIIコードの昇順になります。

getGroupCount()

指定したEADSサーバに格納されている最上位階層のグループ数を取得します。

getKeyCount()（グループ指定）

指定したグループに属するkeyの数を取得します。指定したグループの下位階層のグループに属するkeyも，取得されるkeyの数に含まれます。

getKeyCount()（EADSサーバ指定）

指定したEADSサーバに格納されているkeyの数を取得します。

getFirstKey()（グループ指定）

指定したグループに属するkeyのうち，ASCIIコードの昇順で先頭のkeyを取得します。指定したグループの下位階層のグループに属するkeyも取得対象となります。

getFirstKey()（EADSサーバ指定）

指定したEADSサーバに格納されているkeyのうち，ASCIIコードの昇順で先頭となるkeyを取得します。

getNextKey()（グループおよびkey指定）

指定したグループに属するkeyのうち，ASCIIコードの昇順で，指定したkeyの次に位置するkeyを取得します。指定したグループの下位階層のグループに属するkeyも取得対象となります。

getNextKey()（EADSサーバおよびkey指定）

指定したEADSサーバに格納されているkeyのうち，ASCIIコードの昇順で指定したkeyの次に位置するkeyを取得します。

executeFunction()（keyまたはグループ指定）

指定したkeyまたはグループから実行するEADSサーバを決定して，ユーザファンクションを実行します。

executeFunction()（keyまたはグループ，および受信タイムアウト指定）

指定したkeyまたはグループから実行するEADSサーバを決定して，ユーザファンクションを実行します。また，受信タイムアウト時間を指定します。

executeFunction()（EADSサーバ指定）

EADSサーバを指定して，ユーザファンクションを実行します。

executeFunction()（EADSサーバおよび受信タイムアウト指定）

EADSサーバおよび受信タイムアウト時間を指定して，ユーザファンクションを実行します。

(5)　getName()

(a)　機能

Cacheクラスのインスタンスに関連づけられたキャッシュ名を取得します。

CacheManagerクラスのremoveCache()による，キャッシュへのアクセス終了後にも使用できます。

(b)　形式

public String getName()

(c)　戻り値

Cacheクラスのインスタンスに関連づけられたキャッシュ名が返却されます。

(6)　put()

(a)　機能

valueをkeyに関連づけて格納します。

valueの格納で問題が発生した場合は，例外が返却されます。

データ自動削除機能を使用している場合，key数がしきい値の上限に達しているときは，データの削除ポリシーに従ってデータを削除してから，valueをkeyに関連付けて格納します。既存のデータを更新する場合もデータは削除されます。

データ自動削除機能でデータの削除に失敗した場合，valueの格納を実行しないでremoveが失敗したときの例外が返却されます。

(b)　形式

public void put(String key,
                Object value)
         throws CacheException

(c)　パラメータ

key

valueに関連づけるkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

value

格納するvalueを指定します。

指定できるデータについては，「15.2.2(3)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(7)　putAll()

(a)　機能

指定したMap内で関連づけられたkeyとvalueを，キャッシュに一括格納します。

valueの格納で問題が発生した場合は，例外が返却されます。

データ自動削除機能を使用している場合，key数がしきい値の上限に達しているときは，データの削除ポリシーに従ってしきい値を超える件数分のデータを削除してから，複数のkeyとvalueを一括格納します。既存のデータを更新する場合もデータは削除されます。データの削除に失敗した場合，失敗した件数分はvalueの格納を実行しません。

データ自動削除機能でデータの削除に失敗した場合，valueの格納を実行しなかったkeyは，データの削除に失敗したときの例外情報が設定されます。

(b)　形式

public void putAll(java.util.Map<String,? extends Object> map)
            throws CacheException

(c)　パラメータ

map

一括格納するkeyおよびvalueを関連づけたMapを指定します。

nullまたは要素数が0のMapを指定した場合はエラーとなります。

キャッシュに格納できるkeyについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

キャッシュに格納できるvalueについては，「15.2.2(3)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

AllFailureException（一括操作全体の失敗）

PartFailureException（一括操作の部分的な失敗）

InternalClientException（EADSクライアントの内部エラー）

(e)　注意事項

valueの格納にすべて失敗した場合，例外としてAllFailureException，およびエラーコードとしてCacheException.EAD_ERROR_BATCH_FAILED_ALLが返却されます。

valueの格納が部分的に失敗した場合，例外としてPartFailureException，およびエラーコードとしてCacheException.EAD_ERROR_BATCH_FAILED_PARTが返却されます。

それぞれの例外から情報を取得することで，どのkeyの操作が何の要因で失敗したかを判別できます。

キャッシュの操作が部分的に失敗した場合，例外からどの操作が失敗したか判別して，必要に応じてこのメソッドを再度実行してください。

キャッシュの操作中に排他処理はされません。そのため，一括操作中に，ほかのキャッシュ操作によって操作対象のvalueが変更されることがあります。

大量のデータを一括操作する場合，EADSクライアントおよびEADSサーバでメモリが大量に消費されることがあります。

大量のデータを一括操作する場合，操作の完了までに時間が掛かることがあります。そのため，タイムアウト時間を適切に設計してください。

(8)　create()

(a)　機能

新規にkeyを格納する場合だけ，valueをkeyに関連づけて格納します。

valueの格納で問題が発生した場合は，例外が返却されます。

データ自動削除機能を使用している場合，key数がしきい値の上限に達しているときは，データの削除ポリシーに従ってデータを削除してから，valueをkeyに関連付けて格納します。データの削除は，指定したkeyがキャッシュに格納されている場合も実行します。

データ自動削除機能でデータの削除に失敗した場合，valueの格納を実行しないでremoveが失敗したときの例外が返却されます。

(b)　形式

public void create(String key,
                   Object value)
            throws CacheException

(c)　パラメータ

key

valueに関連づけるkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

value

格納するvalueを指定します。

指定できるデータについては，「15.2.2(3)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(9)　update()

(a)　機能

指定したkeyがすでに格納されている場合だけ，valueをkeyに関連づけて格納します。

valueの格納で問題が発生した場合は，例外が返却されます。

(b)　形式

public void update(String key,
                   Object value)
            throws CacheException

(c)　パラメータ

key

valueに関連づけるkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

value

格納するvalueを指定します。

指定できるデータについては，「15.2.2(3)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(10)　replace()

(a)　機能

指定したkeyに関連づけられているvalueを，条件として指定したvalue（comparativeValue）と比較します。valueが一致している場合だけ，valueをkeyに関連づけて格納します。

valueの置き換えで問題が発生した場合は，例外が返却されます。

(b)　形式

public void replace(String key,
                    Object value,
                    Object comparativeValue)
             throws CacheException

(c)　パラメータ

key

置き換えるvalueに関連づけられたkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

value

格納するvalueを指定します。

指定できるデータについては，「15.2.2(3)　valueとして指定できるデータ」を参照してください。

comparativeValue

比較するvalueを指定します。

指定できるデータについては，「15.2.2(3)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(11)　get()

(a)　機能

指定したkeyに関連づけられたvalueを取得します。

valueの取得で問題が発生した場合は，例外が返却されます。

(b)　形式

public java.lang.Object get(String key)
                     throws CacheException

(c)　パラメータ

key

取得するvalueに関連づけられたkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(d)　戻り値

keyに関連づけられたvalueが返却されます。

指定したkeyに何も関連づけられていなかった場合は，nullが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

get()を実行するスレッドのコンテキストクラスローダを変更しないでください。コンテキストクラスローダの設定が不正な場合，戻り値のオブジェクトのデシリアライズに失敗します。

(12)　getAll()（Set指定）

(a)　機能

指定したkeyの一覧に関連づけられているvalueを一括取得します。取得したvalueは，keyと関連づけられて，引数に指定したMapに格納されます。

valueの取得で問題が発生した場合は，例外が返却されます。

(b)　形式

public void getAll(java.util.Set<String> keys,
                   java.util.Map<String, Object> returnMap)
            throws CacheException

(c)　パラメータ

keys

取得するvalueに関連づけられているkeyの一覧を指定します。

nullまたは要素数が0のkeyの一覧を指定した場合はエラーとなります。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

returnMap

取得したvalueを格納するMapを指定します。

nullを指定した場合は不正となります。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

AllFailureException（一括操作全体の失敗）

PartFailureException（一括操作の部分的な失敗）

InternalClientException（EADSクライアントの内部エラー）

(e)　注意事項

valueの取得がすべて失敗した場合，例外としてAllFailureException，およびエラーコードとしてCacheException.EAD_ERROR_BATCH_FAILED_ALLが返却されます。

valueの取得が部分的に失敗した場合，例外としてPartFailureException，およびエラーコードとしてCacheException.EAD_ERROR_BATCH_FAILED_PARTが返却されます。

それぞれの例外から情報を取得することで，どのkeyの操作が何の要因で失敗したかを判別できます。

引数に指定したMapに，取得対象のkeyとvalueがすでに格納されている場合は，keyとvalueは取得した値で上書きされます。

キャッシュにvalueが格納されていないkeyを指定した場合，引数に指定したMapには何も格納されません。

キャッシュの操作が部分的に失敗した場合，例外からどの操作が失敗したか判別して，必要に応じてこのメソッドを再度実行してください。

キャッシュの操作中に排他処理はされません。そのため，一括操作中に，ほかのキャッシュ操作によって操作対象のvalueが変更されることがあります。

大量のデータを一括操作する場合，EADSクライアントおよびEADSサーバでメモリが大量に消費されることがあります。

大量のデータを一括操作する場合，操作の完了までに時間が掛かることがあります。そのため，タイムアウト時間を適切に設計してください。

(13)　getAll()（グループ指定）

(a)　機能

指定したグループ，およびその下位階層のグループに属するkeyに関連づけられているvalueを，一括取得します。取得したvalueは，keyと関連づけられて，引数に指定したMapに格納されます。

valueの一括取得中に何らかの要因でvalueの取得に失敗した場合は，成功した分のvalueだけがMapに格納されます。また，失敗の要因を示す例外が返却されます。

(b)　形式

public void getAll(String groupName,
                   java.util.Map<String, Object> returnMap)
            throws CacheException

(c)　パラメータ

groupName

valueを取得するグループ名を指定します。

指定できるデータについては，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

returnMap

取得したvalueを格納するMapを指定します。

nullを指定した場合はエラーとなります。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(e)　注意事項

引数に指定したMapに，取得対象のkeyとvalueがすでに格納されている場合は，keyとvalueは取得した値で上書きされます。

キャッシュにvalueが格納されていないkeyを指定した場合，引数に指定したMapには何も格納されません。

キャッシュの操作が部分的に失敗した場合，キャッシュの操作の実行結果を確認して，必要に応じてこのメソッドを再度実行してください。

キャッシュの操作中に排他処理はされません。そのため，一括操作中に，ほかのキャッシュ操作によって操作対象のvalueが変更されることがあります。

大量のデータを一括操作する場合，EADSクライアントおよびEADSサーバでメモリが大量に消費されることがあります。

大量のデータを一括操作する場合，操作の完了までに時間が掛かることがあります。そのため，タイムアウト時間を適切に設計してください。

(14)　remove()

(a)　機能

指定したkey，およびkeyに関連づけられたvalueを削除します。

valueの削除で問題が発生した場合は，例外が返却されます。

(b)　形式

public void remove(String key)
            throws CacheException

(c)　パラメータ

key

削除するvalueに関連づけられたkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(15)　removeAll()（Set指定）

(a)　機能

指定したkeyの一覧に関連づけられているvalueを一括削除します。

valueの削除で問題が発生した場合は，例外が返却されます。

(b)　形式

public void removeAll(java.util.Set<String> keys)
               throws CacheException

(c)　パラメータ

keys

削除するvalueに関連づけられているkeyの一覧を指定します。

nullまたは要素数が0のkeyの一覧を指定した場合はエラーとなります。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

AllFailureException（一括操作全体の失敗）

PartFailureException（一括操作の部分的な失敗）

InternalClientException（EADSクライアントの内部エラー）

(e)　注意事項

valueの削除がすべて失敗した場合，例外としてAllFailureException，およびエラーコードとしてCacheException.EAD_ERROR_BATCH_FAILED_ALLが返却されます。

valueの削除が部分的に失敗した場合，例外としてPartFailureException，およびエラーコードとしてCacheException.EAD_ERROR_BATCH_FAILED_PARTが返却されます。

それぞれの例外から情報を取得することで，どのkeyの操作が何の要因で失敗したかを判別できます。

例外が返却された場合，削除対象のデータが残っているおそれがあります。そのため，例外からどの操作が失敗したか判別して対処してください。必要に応じて，removeAll()（Set指定）を再度実行してください。

キャッシュの操作中に排他処理はされません。そのため，一括操作中に，ほかのキャッシュ操作によって操作対象のvalueが変更されることがあります。

大量のデータを一括操作する場合，EADSクライアントおよびEADSサーバでメモリが大量に消費されることがあります。

大量のデータを一括操作する場合，操作の完了までに時間が掛かることがあります。そのため，タイムアウト時間を適切に設計してください。

(16)　removeAll()（グループ指定）

(a)　機能

指定したグループに属するkeyおよびvalueを，下位階層のグループに属するkeyおよびvalueも含めて一括削除します。

valueの削除で問題が発生した場合は，例外が返却されます。

(b)　形式

public void removeAll(String groupName)
               throws CacheException

(c)　パラメータ

groupName

削除するグループ名を指定します。

指定できるデータについては，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(e)　注意事項

例外が返却された場合，削除対象のデータが残っているおそれがあります。そのため，実行結果を確認して対処してください。必要に応じて，removeAll()（グループ指定）を再度実行してください。

キャッシュの操作中に排他処理はされません。そのため，一括操作中に，ほかのキャッシュ操作によって操作対象のvalueが変更されることがあります。

大量のデータを一括操作する場合，EADSクライアントおよびEADSサーバでメモリが大量に消費されることがあります。

大量のデータを一括操作する場合，操作の完了までに時間が掛かることがあります。そのため，タイムアウト時間を適切に設計してください。

(17)　removeAll()（EADSサーバ指定）

(a)　機能

指定したEADSサーバをコピー元EADSサーバとするkeyおよびvalueを一括削除します。

valueの削除で問題が発生した場合は，例外が返却されます。

(b)　形式

public void removeAll(Node targetNode)
               throws CacheException

(c)　パラメータ

targetNode

一括削除を実行するEADSサーバを指定します。

CacheManagerクラスから取得したNodeクラスのインスタンスだけ指定できます。それ以外のインスタンスを指定した場合，動作は保証されません。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(e)　注意事項

例外が返却された場合，削除対象のデータが残っているおそれがあります。そのため，実行結果を確認して対処してください。必要に応じて，removeAll()（EADSサーバ指定）を再度実行してください。

キャッシュの操作中に排他処理はされません。そのため，一括操作中に，ほかのキャッシュ操作によって操作対象のvalueが変更されることがあります。

大量のデータを一括操作する場合，EADSクライアントおよびEADSサーバでメモリが大量に消費されることがあります。

大量のデータを一括操作する場合，操作の完了までに時間が掛かることがあります。そのため，タイムアウト時間を適切に設計してください。

(18)　getGroupNameSet()

(a)　機能

指定したEADSサーバに格納されている最上位階層のグループ名の一覧を取得します。

グループ名の一覧は，ASCIIコードの昇順になります。

(b)　形式

public java.util.Set<String> getGroupNameSet(Node targetNode)
                                      throws CacheException

(c)　パラメータ

targetNode

グループ名の一覧を取得したいEADSサーバを指定します。

CacheManagerクラスから取得したNodeクラスのインスタンスだけ指定できます。それ以外のインスタンスを指定した場合，動作は保証されません。

(d)　戻り値

指定したEADSサーバに格納されている最上位階層のグループ名の一覧が返却されます。

指定したEADSサーバに，グループに属するkeyが存在しない場合は，nullが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

指定したEADSサーバに存在するグループ数が多いほど，取得に時間が掛かるおそれがあります。また，取得する際のリソースの使用量も増加するため，注意してください。

(19)　getKeySet()（グループ指定）

(a)　機能

指定したグループに属するkeyの一覧を取得します。keyの一覧には，指定したグループの下位階層のグループに属するkeyも含まれます。

keyの一覧は，ASCIIコードの昇順になります。

(b)　形式

public java.util.Set<String> getKeySet(String groupName)
                                throws CacheException

(c)　パラメータ

groupName

グループ名を指定します。

指定できるデータについては，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

(d)　戻り値

指定したグループに属するkeyの一覧が返却されます。

指定したグループに属するkeyが存在しない場合，nullが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

指定したグループに存在するkeyの数が多いほど，取得に時間が掛かるおそれがあります。また，取得する際のリソースの使用量が増加します。

(20)　getKeySet()（EADSサーバ指定）

(a)　機能

指定したEADSサーバに格納されているkeyの一覧を取得します。

keyの一覧は，ASCIIコードの昇順になります。

(b)　形式

public java.util.Set<String> getKeySet(Node targetNode)
                                throws CacheException

(c)　パラメータ

targetNode

keyの一覧を取得したいEADSサーバを指定します。

CacheManagerクラスから取得したNodeクラスのインスタンスだけ指定できます。それ以外のインスタンスを指定した場合，動作は保証されません。

(d)　戻り値

指定したEADSサーバに格納されているkeyの一覧が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

指定したEADSサーバに存在するkeyの数が多いほど，取得に時間が掛かるおそれがあります。また，取得する際のリソースの使用量が増加します。

(21)　getGroupCount()

(a)　機能

指定したEADSサーバに格納されている最上位階層のグループの数を取得します。

(b)　形式

public int getGroupCount(Node targetNode)
                  throws CacheException

(c)　パラメータ

targetNode

グループの数を取得したいEADSサーバを指定します。

CacheManagerクラスから取得したNodeクラスのインスタンスだけ指定できます。それ以外のインスタンスを指定した場合，動作は保証されません。

(d)　戻り値

指定したEADSサーバに格納されている最上位階層のグループの数が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(22)　getKeyCount()（グループ指定）

(a)　機能

指定したグループに属するkeyの数を取得します。指定したグループの下位階層のグループに属するkeyも，取得されるkeyの数に含まれます。

(b)　形式

public int getKeyCount(String groupName)
                throws CacheException

(c)　パラメータ

groupName

グループ名を指定します。

指定できるデータについては，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

(d)　戻り値

指定したグループに属するkeyの数が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(23)　getKeyCount()（EADSサーバ指定）

(a)　機能

指定したEADSサーバに格納されているkeyの数を取得します。

(b)　形式

public int getKeyCount(Node targetNode)
                throws CacheException

(c)　パラメータ

targetNode

keyの数を取得したいEADSサーバを指定します。

CacheManagerクラスから取得したNodeクラスのインスタンスだけ指定できます。それ以外のインスタンスを指定した場合，動作は保証されません。

(d)　戻り値

指定したEADSサーバに属するkeyの数が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(24)　getFirstKey()（グループ指定）

(a)　機能

指定したグループに属するkeyのうち，ASCIIコードの昇順で先頭となるkeyを取得します。指定したグループの下位階層のグループに属するkeyも取得対象となります。

(b)　形式

public String getFirstKey(String groupName)
                   throws CacheException

(c)　パラメータ

groupName

グループ名を指定します。

指定できるデータについては，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

(d)　戻り値

指定したグループに属するkeyのうち，ASCIIコードの昇順で先頭となるkeyが返却されます。

指定したグループに属するkeyが存在しない場合，nullが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(25)　getFirstKey()（EADSサーバ指定）

(a)　機能

指定したEADSサーバに格納されているkeyのうち，ASCIIコードの昇順で先頭となるkeyを取得します。

(b)　形式

public String getFirstKey(Node targetNode)
                   throws CacheException

(c)　パラメータ

targetNode

keyを取得したいEADSサーバを指定します。

CacheManagerクラスから取得したNodeクラスのインスタンスだけ指定できます。それ以外のインスタンスを指定した場合，動作は保証されません。

(d)　戻り値

指定したEADSサーバに格納されているkeyのうち，ASCIIコードの昇順で先頭となるkeyが返却されます。

指定したEADSサーバにkeyが存在しない場合，nullが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(26)　getNextKey()（グループおよびkey指定）

(a)　機能

指定したグループに属するkeyのうち，ASCIIコードの昇順で，指定したkeyの次に位置するkeyを取得します。指定したグループの下位階層のグループに属するkeyも取得対象となります。

なお，接続先のEADSサーバに存在しないkeyを指定した場合も同様に，指定したkeyの次に位置するkeyを取得します。

(b)　形式

public String getNextKey(String groupName, String key)
                  throws CacheException

(c)　パラメータ

groupName

グループ名を指定します。

指定できるデータについては，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

key

基準とするkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(d)　戻り値

指定したグループに属するkeyのうち，ASCIIコードの昇順で，指定したkeyの次に位置するkeyが返却されます。

指定したkeyの次に位置するkeyが存在しない場合，nullが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

このメソッドでは，指定されたグループを基に接続先のEADSサーバを決定します。

接続先以外のEADSサーバの縮退，復旧，追加（スケールアウト処理），および位置の変更（リバランス処理）によって，指定したグループに属するkeyを格納するEADSサーバが変更されることがあります。そのため，getFirstKey()（グループ指定）を実行して先頭となるkeyを取得したときとは，異なるEADSサーバに接続する可能性があります。

EADSサーバ上でグループに対して排他処理をしないため，getFirstKey()（グループ指定）またはgetNextKey()（グループおよびkey指定）の実行後，他プロセスからの操作によって，グループに属するkeyが挿入，または削除されることがあります。

(27)　getNextKey()（EADSサーバおよびkey指定）

(a)　機能

指定したEADSサーバに格納されているkeyのうち，ASCIIコードの昇順で指定したkeyの次に位置するkeyを取得します。

なお，接続先のEADSサーバに存在しないkeyを指定した場合も同様に，指定したkeyの次に位置するkeyを取得します。

(b)　形式

public String getNextKey(Node targetNode, String key)
                  throws CacheException

(c)　パラメータ

targetNode

keyを取得したいEADSサーバを指定します。

CacheManagerクラスから取得したNodeクラスのインスタンスだけ指定できます。それ以外のインスタンスを指定した場合，動作は保証されません。

key

基準とするkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(d)　戻り値

指定したEADSサーバに格納されているkeyのうち，ASCIIコードの昇順で，指定したkeyの次に位置するkeyが返却されます。

指定したkeyの次に位置するkeyが存在しない場合，nullが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

接続先以外のEADSサーバの縮退，復旧，追加（スケールアウト処理），および位置の変更（リバランス処理）によって，指定したkeyを格納するEADSサーバが変更される場合があります。

EADSサーバ上でグループに対して排他処理をしないため，getFirstKey()（EADSサーバ指定）またはgetNextKey()（EADSサーバおよびkey指定）の実行後，他プロセスからの操作によって，グループに属するkeyが挿入，または削除されることがあります。

(28)　executeFunction()（keyまたはグループ指定）

(a)　機能

指定したkeyまたはグループから実行するEADSサーバを決定して，ユーザファンクションを実行します。

ユーザファンクションの実行で問題が発生した場合は，例外が返却されます。

(b)　形式

public Object executeFunction(String keyOrGroupName,
                              String funcName,
                              Object arg)
                       throws CacheException

(c)　パラメータ

keyOrGroupName

keyまたはグループ名を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」，または「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

funcName

ユーザファンクション名を指定します。

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数の制限はありません。

nullまたは空文字列は不正となります。

arg

ユーザファンクションに渡す引数を指定します。

シリアライズできない場合，エラーとなります。

オブジェクトのサイズに上限はありません。

引数を渡さない場合はnullを指定します。

(d)　戻り値

ユーザファンクションで設定した実行結果が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

executeFunction()を実行するスレッドのコンテキストクラスローダを変更しないでください。コンテキストクラスローダの設定が不正な場合，戻り値のオブジェクトのデシリアライズに失敗します。

(29)　executeFunction()（keyまたはグループ，および受信タイムアウト指定）

(a)　機能

指定したkeyまたはグループから実行するEADSサーバを決定して，ユーザファンクションを実行します。また，受信タイムアウト時間を指定します。

受信タイムアウト時間には，クライアント定義のeads.client.connection.receive.timeoutパラメタの値ではなく，引数（recvTimeout）で指定した値を適用します。

ユーザファンクションの実行で問題が発生した場合は，例外が返却されます。

タイムアウトが発生した場合は，CacheException.EAD_ERROR_NET_TIMEOUTが返却されます。

(b)　形式

public Object executeFunction(String keyOrGroupName,
                              String funcName,
                              Object arg,
                              int recvTimeout)
                       throws CacheException

(c)　パラメータ

keyOrGroupName

keyまたはグループ名を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」，または「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

funcName

ユーザファンクション名を指定します。

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数の制限はありません。

nullまたは空文字列は不正となります。

arg

ユーザファンクションに渡す引数を指定します。

シリアライズできない場合，エラーとなります。

オブジェクトのサイズに上限はありません。

引数を渡さない場合はnullを指定します。

recvTimeout

データ受信のタイムアウト時間（単位：ミリ秒）を指定します。

指定できるデータについては，「9.3.3(3)(b)　eads.client.connection.receive.timeout」を参照してください。

(d)　戻り値

ユーザファンクションで設定した実行結果が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

executeFunction()を実行するスレッドのコンテキストクラスローダを変更しないでください。コンテキストクラスローダの設定が不正な場合，戻り値のオブジェクトのデシリアライズに失敗します。

(30)　executeFunction()（EADSサーバ指定）

(a)　機能

EADSサーバを指定して，ユーザファンクションを実行します。

ユーザファンクションの実行で問題が発生した場合は，例外が返却されます。

(b)　形式

public Object executeFunction(Node targetNode,
                              String funcName,
                              Object arg)
                       throws CacheException

(c)　パラメータ

targetNode

EADSサーバ（CacheManagerクラスから取得したNodeクラスのインスタンス）を指定します。それ以外のインスタンスを指定した場合の動作は保証しません。

次の場合は不正となります。

nullの場合

指定したNodeクラスが保持するアドレス情報（IPアドレスおよびポート番号）が，EADSクライアントが保持するどのEADSサーバのアドレス情報とも一致しない場合

funcName

ユーザファンクション名を指定します。

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数に制限はありません。

nullまたは空文字列は不正となります。

arg

ユーザファンクションに渡す引数を指定します。

シリアライズできない場合，エラーとなります。

オブジェクトのサイズに上限はありません。

引数を渡さない場合はnullを指定します。

(d)　戻り値

ユーザファンクションで設定した実行結果が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

executeFunction()を実行するスレッドのコンテキストクラスローダを変更しないでください。コンテキストクラスローダの設定が不正な場合，戻り値のオブジェクトのデシリアライズに失敗します。

(31)　executeFunction()（EADSサーバおよび受信タイムアウト指定）

(a)　機能

EADSサーバおよび受信タイムアウト時間を指定して，ユーザファンクションを実行します。

受信タイムアウト時間には，クライアント定義のeads.client.connection.receive.timeoutパラメタの値ではなく，引数（recvTimeout）で指定した値を適用します。

ユーザファンクションの実行で問題が発生した場合は，例外が返却されます。

タイムアウトが発生した場合は，CacheException.EAD_ERROR_NET_TIMEOUTが返却されます。

(b)　形式

public Object executeFunction(Node targetNode,
                              String funcName,
                              Object arg,
                              int recvTimeout)
                       throws CacheException

(c)　パラメータ

targetNode

EADSサーバ（CacheManagerクラスから取得したNodeクラスのインスタンス）を指定します。それ以外のインスタンスを指定した場合の動作は保証しません。

次の場合は不正となります。

nullの場合

指定したNodeクラスが保持するアドレス情報（IPアドレスおよびポート番号）が，EADSクライアントが保持するどのEADSサーバのアドレス情報とも一致しない場合

funcName

ユーザファンクション名を指定します。

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数に制限はありません。

nullまたは空文字列は不正となります。

arg

ユーザファンクションに渡す引数を指定します。

シリアライズできない場合，エラーとなります。

オブジェクトのサイズに上限はありません。

引数を渡さない場合はnullを指定します。

recvTimeout

データ受信のタイムアウト時間（単位：ミリ秒）を指定します。

指定できるデータについては，「9.3.3(3)(b)　eads.client.connection.receive.timeout」を参照してください。

(d)　戻り値

ユーザファンクションで設定した実行結果が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

executeFunction()を実行するスレッドのコンテキストクラスローダを変更しないでください。コンテキストクラスローダの設定が不正な場合，戻り値のオブジェクトのデシリアライズに失敗します。

18.1.2　CacheManagerクラス

(1)　機能

EADSのキャッシュを管理するためのクラスです。

create()を実行して，EADSクライアントの初期設定をします。

EADSクライアントの使用を終了する場合は，必ずdestroy()を実行してください。

(2)　継承関係

java.lang.Object
　└com.hitachi.software.xeads.client.api.CacheManager

(3)　形式

public class CacheManager
extends java.lang.Object

(4)　メソッド一覧

CacheManagerクラスが提供するメソッド一覧を次の表に示します。

メソッド名

説明

create()（パス指定）

クライアント定義に従って，EADSクライアントの初期設定をします。

create()（EADSクライアント名およびパス指定）

クライアント定義に従って，EADSクライアントの初期設定をします。

create()（入力ストリーム指定）

クライアント定義に従って，EADSクライアントの初期設定をします。

create()（EADSクライアント名および入力ストリーム指定）

クライアント定義に従って，EADSクライアントの初期設定をします。

create()（クライアント定義指定）

クライアント定義に従って，EADSクライアントの初期設定をします。

create()（EADSクライアント名およびクライアント定義指定）

クライアント定義に従って，EADSクライアントの初期設定をします。

getCache()

Cacheクラスのインスタンスを取得します。

removeCache()

キャッシュへのアクセスを終了します。

destroy()

EADSクライアントの使用を終了します。

getNodeList()

EADSクライアントが保持する接続先EADSサーバの情報を取得します。

【非推奨】getNode()

【非推奨】指定したkey（またはグループ）を格納する，本来のEADSサーバ（コピー元EADSサーバ）の情報を取得します。

getSlaveNodeList()

指定したEADSサーバに格納されているデータの，本来のコピー先EADSサーバの情報を取得します。

getCurrentMasterNode()

指定したkey（またはグループ）を現時点で格納する，コピー元EADSサーバの情報を取得します。

getOriginalMasterNode()

指定したkey（またはグループ）を格納する，本来のコピー元EADSサーバの情報を取得します。

addClusterEventListener()

クラスタイベントリスナを追加します。

addNodeEventListener()

ノードイベントリスナを追加します。

removeClusterEventListener()

クラスタイベントリスナを削除します。

removeNodeEventListener()

ノードイベントリスナを削除します。

(5)　create()（パス指定）

(a)　機能

クライアント定義に従って，EADSクライアントの初期設定をします。

このメソッドを実行するたびに，通信タイムアウトを監視するスレッドと，クラスタを監視するスレッドが1つずつ生成されます。生成されたスレッドは，destroy()実行時に終了します。

EADSクライアントの初期設定で問題が発生した場合は，例外が返却されます。

クライアント定義のeads.client.eventListener.enableパラメタにtrueを指定していた場合は，次のように動作します。

新たにイベントリスナ用のコネクションが生成されて，EADSサーバとの接続に成功すると，クラスタ構成情報の通知を受け取れる状態になります。生成されたコネクションは，destroy()実行時に削除されます。

クラスタイベントリスナおよびノードイベントリスナを実行するためのスレッドが1つ生成されます。生成されたスレッドは，destroy()実行時に終了します。

(b)　形式

public static CacheManager create(String fileName)
                           throws CacheException

(c)　パラメータ

fileName

EADSクライアントのクライアント定義ファイルの格納先パス名を指定します。

nullまたは空文字列は不正となります。

(d)　戻り値

CacheManagerクラスのインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InitializeException（CacheManagerクラスの初期化失敗）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

EADSクライアントを同一マシンで複数同時に実行する場合は，それぞれ異なるログ出力先を指定してください。同一のログ出力先を指定した場合，動作は保証されません。ログ出力先の設定については，「8.4.2　ファイルの出力先の設定」を参照してください。

Java EEサーバ（uCosminexus Application Server）上で実行する場合，このメソッドの実行後，destroy()を実行しないとメモリリークとなるので必ず実行してください。

(6)　create()（EADSクライアント名およびパス指定）

(a)　機能

クライアント定義に従って，EADSクライアントの初期設定をします。

このメソッドを実行するたびに，通信タイムアウトを監視するスレッドと，クラスタを監視するスレッドが1つずつ生成されます。生成されたスレッドは，destroy()実行時に終了します。

EADSクライアントの初期設定で問題が発生した場合は，例外が返却されます。

クライアント定義のeads.client.eventListener.enableパラメタにtrueを指定していた場合は，次のように動作します。

新たにイベントリスナ用のコネクションが生成されて，EADSサーバとの接続に成功すると，クラスタ構成情報の通知を受け取れる状態になります。生成されたコネクションは，destroy()実行時に削除されます。

クラスタイベントリスナおよびノードイベントリスナを実行するためのスレッドが1つ生成されます。生成されたスレッドは，destroy()実行時に終了します。

(b)　形式

public static CacheManager create(String clientName, String fileName)
                           throws CacheException

(c)　パラメータ

clientName

EADSクライアント名を指定します。

指定できるデータについては，「15.2.2(5)　EADSクライアント名として指定できるデータ」を参照してください。

EADSクライアント名とログファイルの出力先の関係については，「8.4.2　ファイルの出力先の設定」を参照してください。

fileName

EADSクライアントのクライアント定義ファイルの格納先パス名を指定します。

nullまたは空文字列は不正となります。

(d)　戻り値

CacheManagerクラスのインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InitializeException（CacheManagerクラスの初期化失敗）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

EADSクライアントを同一マシンで複数同時に実行する場合は，それぞれ異なるログ出力先を指定してください。同一のログ出力先を指定した場合，動作は保証されません。ログ出力先の設定については，「8.4.2　ファイルの出力先の設定」を参照してください。

Java EEサーバ（uCosminexus Application Server）上で実行する場合，このメソッドの実行後，destroy()を実行しないとメモリリークとなるので必ず実行してください。

(7)　create()（入力ストリーム指定）

(a)　機能

クライアント定義に従って，EADSクライアントの初期設定をします。

このメソッドを実行するたびに，通信タイムアウトを監視するスレッドと，クラスタを監視するスレッドが1つずつ生成されます。生成されたスレッドは，destroy()実行時に終了します。

EADSクライアントの初期設定で問題が発生した場合は，例外が返却されます。

クライアント定義のeads.client.eventListener.enableパラメタにtrueを指定していた場合は，次のように動作します。

新たにイベントリスナ用のコネクションが生成されて，EADSサーバとの接続に成功すると，クラスタ構成情報の通知を受け取れる状態になります。生成されたコネクションは，destroy()実行時に削除されます。

クラスタイベントリスナおよびノードイベントリスナを実行するためのスレッドが1つ生成されます。生成されたスレッドは，destroy()実行時に終了します。

(b)　形式

public static CacheManager create(InputStream in)
                           throws CacheException

(c)　パラメータ

in

EADSクライアントのクライアント定義ファイルを読み込む入力ストリームを指定します。

nullの場合は不正となります。

(d)　戻り値

CacheManagerクラスのインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InitializeException（CacheManagerクラスの初期化失敗）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

EADSクライアントを同一マシンで複数同時に実行する場合は，それぞれ異なるログ出力先を指定してください。同一のログ出力先を指定した場合，動作は保証されません。ログ出力先の設定については，「8.4.2　ファイルの出力先の設定」を参照してください。

Java EEサーバ（uCosminexus Application Server）上で実行する場合，このメソッドの実行後，destroy()を実行しないとメモリリークとなるので必ず実行してください。

(8)　create()（EADSクライアント名および入力ストリーム指定）

(a)　機能

クライアント定義に従って，EADSクライアントの初期設定をします。

このメソッドを実行するたびに，通信タイムアウトを監視するスレッドと，クラスタを監視するスレッドが1つずつ生成されます。生成されたスレッドは，destroy()実行時に終了します。

EADSクライアントの初期設定で問題が発生した場合は，例外が返却されます。

クライアント定義のeads.client.eventListener.enableパラメタにtrueを指定していた場合は，次のように動作します。

新たにイベントリスナ用のコネクションが生成されて，EADSサーバとの接続に成功すると，クラスタ構成情報の通知を受け取れる状態になります。生成されたコネクションは，destroy()実行時に削除されます。

クラスタイベントリスナおよびノードイベントリスナを実行するためのスレッドが1つ生成されます。生成されたスレッドは，destroy()実行時に終了します。

(b)　形式

public static CacheManager create(String clientName, InputStream in)
                           throws CacheException

(c)　パラメータ

clientName

EADSクライアント名を指定します。

指定できるデータについては，「15.2.2(5)　EADSクライアント名として指定できるデータ」を参照してください。

EADSクライアント名とログファイルの出力先の関係については，「8.4.2　ファイルの出力先の設定」を参照してください。

in

EADSクライアントのクライアント定義ファイルを読み込む入力ストリームを指定します。

nullの場合は不正となります。

(d)　戻り値

CacheManagerクラスのインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InitializeException（CacheManagerクラスの初期化失敗）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

EADSクライアントを同一マシンで複数同時に実行する場合は，それぞれ異なるログ出力先を指定してください。同一のログ出力先を指定した場合，動作は保証されません。ログ出力先の設定については，「8.4.2　ファイルの出力先の設定」を参照してください。

Java EEサーバ（uCosminexus Application Server）上で実行する場合，このメソッドの実行後，destroy()を実行しないとメモリリークとなるので必ず実行してください。

(9)　create()（クライアント定義指定）

(a)　機能

クライアント定義に従って，EADSクライアントの初期設定をします。

このメソッドを実行するたびに，通信タイムアウトを監視するスレッドと，クラスタを監視するスレッドが1つずつ生成されます。生成されたスレッドは，destroy()実行時に終了します。

EADSクライアントの初期設定で問題が発生した場合は，例外が返却されます。

クライアント定義のeads.client.eventListener.enableパラメタにtrueを指定していた場合は，次のように動作します。

新たにイベントリスナ用のコネクションが生成されて，EADSサーバとの接続に成功すると，クラスタ構成情報の通知を受け取れる状態になります。生成されたコネクションは，destroy()実行時に削除されます。

クラスタイベントリスナおよびノードイベントリスナを実行するためのスレッドが1つ生成されます。生成されたスレッドは，destroy()実行時に終了します。

(b)　形式

public static CacheManager create(Properties properties)
                           throws CacheException

(c)　パラメータ

properties

EADSクライアントのクライアント定義を指定します。

nullの場合は不正となります。

(d)　戻り値

CacheManagerクラスのインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InitializeException（CacheManagerクラスの初期化失敗）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

EADSクライアントを同一マシンで複数同時に実行する場合は，それぞれ異なるログ出力先を指定してください。同一のログ出力先を指定した場合，動作は保証されません。ログ出力先の設定については，「8.4.2　ファイルの出力先の設定」を参照してください。

Java EEサーバ（uCosminexus Application Server）上で実行する場合，このメソッドの実行後，destroy()を実行しないとメモリリークとなるので必ず実行してください。

(10)　create()（EADSクライアント名およびクライアント定義指定）

(a)　機能

クライアント定義に従って，EADSクライアントの初期設定をします。

このメソッドを実行するたびに，通信タイムアウトを監視するスレッドと，クラスタを監視するスレッドが1つずつ生成されます。生成されたスレッドは，destroy()実行時に終了します。

EADSクライアントの初期設定で問題が発生した場合は，例外が返却されます。

クライアント定義のeads.client.eventListener.enableパラメタにtrueを指定していた場合は，次のように動作します。

新たにイベントリスナ用のコネクションが生成されて，EADSサーバとの接続に成功すると，クラスタ構成情報の通知を受け取れる状態になります。生成されたコネクションは，destroy()実行時に削除されます。

クラスタイベントリスナおよびノードイベントリスナを実行するためのスレッドが1つ生成されます。生成されたスレッドは，destroy()実行時に終了します。

(b)　形式

public static CacheManager create(String clientName, Properties properties)
                           throws CacheException

(c)　パラメータ

clientName

EADSクライアント名を指定します。

指定できるデータについては，「15.2.2(5)　EADSクライアント名として指定できるデータ」を参照してください。

EADSクライアント名とログファイルの出力先の関係については，「8.4.2　ファイルの出力先の設定」を参照してください。

properties

EADSクライアントのクライアント定義を指定します。

nullの場合は不正となります。

(d)　戻り値

CacheManagerクラスのインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InitializeException（CacheManagerクラスの初期化失敗）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

EADSクライアントを同一マシンで複数同時に実行する場合は，それぞれ異なるログ出力先を指定してください。同一のログ出力先を指定した場合，動作は保証されません。ログ出力先の設定については，「8.4.2　ファイルの出力先の設定」を参照してください。

Java EEサーバ（uCosminexus Application Server）上で実行する場合，このメソッドの実行後，destroy()を実行しないとメモリリークとなるので必ず実行してください。

(11)　getCache()

(a)　機能

キャッシュへのアクセスを開始し，Cacheクラスのインスタンスを取得します。

また，removeCache()でアクセスを終了したキャッシュのインスタンスを再度開始状態にします。

キャッシュへのアクセス開始で問題が発生した場合は，例外が返却されます。

(b)　形式

public Cache getCache(String name)
               throws CacheException

(c)　パラメータ

name

取得するCacheクラスのキャッシュ名を指定します。

指定できるデータについては，「15.2.2(4)　キャッシュ名として指定できるデータ」を参照してください。

(d)　戻り値

指定したキャッシュ名に関連づけられたCacheクラスのインスタンスが返却されます。

すでに同じキャッシュ名を指定してgetCache()を実行している場合は，初回実行時と同じインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(12)　removeCache()

(a)　機能

キャッシュへのアクセスを終了します。

キャッシュのアクセス終了で問題が発生した場合は，例外が返却されます。

(b)　形式

public void removeCache(String name)
                 throws CacheException

(c)　パラメータ

name

終了するCacheクラスのキャッシュ名を指定します。

指定できるデータについては，「15.2.2(4)　キャッシュ名として指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalClientException（EADSクライアントの内部エラー）

(e)　注意事項

同じキャッシュ名を指定して取得したすべてのキャッシュ（Cacheクラスのインスタンス）へのアクセスを終了するため，複数スレッドで実行している場合などは注意してください。

(13)　destroy()

(a)　機能

すべてのキャッシュに対して終了処理を行い，EADSクライアントの使用を終了します。

destroy()を実行してEADSクライアントがすでに終了している場合は，CacheException.EAD_ERROR_CLIENT_FINALIZEDが返却されます。

クライアント定義のeads.client.eventListener.enableパラメタにtrueを指定していた場合は，次のように動作します。

クラスタイベントリスナおよびノードイベントリスナが存在する場合は，すべてのクラスタイベントリスナおよびノードイベントリスナを削除します。

すべてのEADSサーバ間で，イベントリスナ用のコネクションを切断します。

(b)　形式

public void destroy()
             throws CacheException

(c)　発生する例外

UserOperationException（ユーザの操作不正）

InternalClientException（EADSクライアントの内部エラー）

(d)　注意事項

destroy()はcreate()と対になるように実行してください。create()で取得したインスタンスにつき1度だけ実行してください。

Java EEサーバ（uCosminexus Application Server）上で実行する場合，このメソッドを実行しないとメモリリークとなるので必ず実行してください。

(14)　getNodeList()

(a)　機能

EADSクライアントが保持する接続先EADSサーバの情報を取得します。

接続先EADSサーバの情報の取得で問題が発生した場合は，例外が返却されます。

(b)　形式

public Node[] getNodeList()
                   throws CacheException

(c)　戻り値

EADSクライアントが保持する接続先EADSサーバの情報が，Nodeクラスの配列として返却されます。

EADSサーバの状態に関係なく，すべてのEADSサーバの情報が返却されます。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalClientException（EADSクライアントの内部エラー）

(e)　注意事項

このメソッドの実行時には，EADSサーバへの通信は行われません。そのため，取得した情報が最新でないことがあります。

このメソッドの実行時には，EADSサーバの接続可否は考慮されません。そのため，取得した情報には，縮退状態などで接続できないEADSサーバが含まれていることがあります。取得したEADSサーバを接続先として使用する場合は，そのEADSサーバに接続できるかどうか，NodeクラスのisEnable()で確認してください。

NodeクラスのisEnable()については，「18.1.3(6)　isEnable()」を参照してください。

(15)　【非推奨】getNode()

参考

このメソッドは非推奨です。このメソッドの代わりに，CacheManagerクラスのgetOriginalMasterNode()を使用してください。

(a)　機能

指定したkey（またはグループ）を格納する，本来のコピー元EADSサーバの情報を取得します。

本来のコピー元EADSサーバとは，クラスタを構成するすべてのEADSサーバが正常に接続できる場合に，指定したkey（またはグループ）のコピー元のデータを格納するEADSサーバのことです。

(b)　形式

public Node getNode(String key)
             throws CacheException

(c)　パラメータ

key

key（またはグループ）を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(d)　戻り値

指定したkey（またはグループ）の本来のコピー元EADSサーバを表すNodeクラスのインスタンスが返却されます。

接続先EADSサーバの接続可否については，戻り値に影響しません。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

このメソッドの実行時には，EADSサーバへの通信は行われません。そのため，取得した情報が最新でないことがあります。

クラスタ構成に変更がなければ，EADSサーバの接続可否に関係なく，常に同じEADSサーバの情報が取得されます。

取得したEADSサーバを接続先として使用する場合は，そのEADSサーバに接続できるかどうか，NodeクラスのisEnable()で確認してください。

NodeクラスのisEnable()については，「18.1.3(6)　isEnable()」を参照してください。

(16)　getSlaveNodeList()

(a)　機能

指定したEADSサーバに格納されているデータの，本来のコピー先EADSサーバの情報を取得します。

本来のコピー先EADSサーバとは，クラスタを構成するすべてのEADSサーバが正常に接続できる場合に，指定したEADSサーバ（コピー元EADSサーバ）に格納されているデータの，コピー先となるEADSサーバのことです。

(b)　形式

public Node[] getSlaveNodeList(Node masterNode)
                        throws CacheException

(c)　パラメータ

masterNode

コピー元のデータを格納するEADSサーバ（CacheManagerクラスから取得したNodeクラスのインスタンス）を指定します。それ以外のインスタンスを指定した場合の動作は保証しません。

次の場合は不正となります。

nullの場合

指定したNodeクラスが保持するアドレス情報（IPアドレスおよびポート番号）が，EADSクライアントが保持するどのEADSサーバのアドレス情報とも一致しない場合

(d)　戻り値

本来のコピー先EADSサーバの情報が，Nodeクラスの配列として返却されます。

接続先EADSサーバの接続可否については，戻り値に影響しません。

データの多重度が1の場合，要素数0の配列が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

このメソッドの実行時には，EADSサーバへの通信は行われません。そのため，取得した情報が最新でないことがあります。

このメソッドの実行時には，指定したEADSサーバ，および情報の取得対象となるEADSサーバの接続可否は考慮されません。そのため，取得した情報には，縮退状態などで接続できないEADSサーバの情報が含まれていることがあります。

(17)　getCurrentMasterNode()

(a)　機能

指定したkey（またはグループ）を現時点で格納する，コピー元EADSサーバの情報を取得します。

(b)　形式

public Node getCurrentMasterNode(String key)
                          throws CacheException

(c)　パラメータ

key

key（またはグループ）を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(d)　戻り値

指定したkey（またはグループ）を現時点で格納するコピー元EADSサーバを表す，Nodeクラスのインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

このメソッドの実行時には，EADSサーバへの通信は行われません。そのため，取得した情報が最新でないことがあります。

(18)　getOriginalMasterNode()

(a)　機能

指定したkey（またはグループ）を格納する，本来のコピー元EADSサーバの情報を取得します。

本来のコピー元EADSサーバとは，クラスタを構成するすべてのEADSサーバが正常に接続できる場合に，指定したkey（またはグループ）のマスタとなるデータ（コピー元となるデータ）を格納するEADSサーバのことです。現時点のコピー元EADSサーバとは異なることがあります。

クラスタ構成に変更がなければ，EADSサーバの接続可否に関係なく，常に同じEADSサーバの情報が取得されます。

(b)　形式

public Node getOriginalMasterNode(String key)
                           throws CacheException

(c)　パラメータ

key

key（またはグループ）を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(d)　戻り値

指定したkey（またはグループ）を格納する本来のコピー元EADSサーバを表すNodeクラスのインスタンスが返却されます。

接続先EADSサーバの接続可否については，戻り値に影響しません。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

このメソッドの実行時には，EADSサーバへの通信は行われません。そのため，取得した情報が最新でないことがあります。

取得したEADSサーバを接続先として使用する場合は，そのEADSサーバに接続できるかどうか，NodeクラスのisEnable()で確認してください。

NodeクラスのisEnable()については，「18.1.3(6)　isEnable()」を参照してください。

(19)　addClusterEventListener()

(a)　機能

クラスタイベントリスナを追加します。

(b)　形式

public Node[] addClusterEventListener(
                   ClusterEventListener clusterEventListener)
              throws CacheException

(c)　パラメータ

clusterEventListener

ユーザが作成したClusterEventListenerインタフェース実装クラスを指定します。

(d)　戻り値

クラスタイベントリスナの追加が終了した時点での接続先EADSサーバの情報一覧が，Nodeクラスの配列として返却されます。

EADSサーバの状態に関係なく，すべてのEADSサーバの情報が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

clusterEventListenerには，同一クライアント内のほかのクラスタイベントリスナまたはノードイベントリスナと同じインスタンスを指定できません。

このメソッドの実行と同時にクラスタ構成情報が変わった場合，縮退しているEADSサーバ，または追加されたEADSサーバに対しては，ClusterEventListenerインタフェースのメソッドを呼び出しません。そのため，メソッド実行後に，返却されたEADSサーバの情報を確認してください。

このメソッドの実行時には，EADSサーバの接続可否は考慮されません。そのため，取得した情報には，接続できないEADSサーバ（例：EADSサーバの縮退）が含まれていることがあります。取得したEADSサーバを接続先として使用する場合は，そのEADSサーバに接続できるかどうかを，NodeクラスのisEnable()で確認してください。

NodeクラスのisEnable()については，「18.1.3(6)　isEnable()」を参照してください。

(20)　addNodeEventListener()

(a)　機能

ノードイベントリスナを追加します。

(b)　形式

public Node[] addNodeEventListener(
                   NodeEventListener nodeEventListener,
                   int               nodeId,
                   NodeEventType[]   nodeEventTypeList)
              throws CacheException

(c)　パラメータ

nodeEventListener

ユーザが作成したNodeEventListenerインタフェース実装クラスを指定します。

nodeId

ノードイベントリスナを実行するEADSサーバIDを指定します。

nodeEventTypeList

ノードイベントリスナを実行する条件の一覧を，NodeEventTypeクラスの配列として指定します。

(d)　戻り値

ノードイベントリスナの追加が終了した時点での接続先EADSサーバの情報一覧が，Nodeクラスの配列として返却されます。

EADSサーバの状態に関係なく，すべてのEADSサーバの情報が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalClientException（EADSクライアントの内部エラー）

(f)　注意事項

nodeEventListenerには，同一クライアント内のほかのクラスタイベントリスナまたはノードイベントリスナと同じインスタンスを指定できません。

このメソッドの実行と同時にクラスタ構成情報が変わった場合，縮退しているEADSサーバ，または追加されたEADSサーバに対しては，NodeEventListenerインタフェースのメソッドを呼び出しません。そのため，メソッド実行後に，返却されたEADSサーバの情報を確認してください。

このメソッドの実行時には，EADSサーバの接続可否は考慮されません。そのため，取得した情報には，接続できないEADSサーバ（例：EADSサーバの縮退）が含まれていることがあります。取得したEADSサーバを接続先として使用する場合は，そのEADSサーバに接続できるかどうかを，NodeクラスのisEnable()で確認してください。

NodeクラスのisEnable()については，「18.1.3(6)　isEnable()」を参照してください。

(21)　removeClusterEventListener()

(a)　機能

クラスタイベントリスナを削除します。

未通知のイベントの情報を破棄します。

このメソッドは，addClusterEventListener()と対になるように呼び出してください。

(b)　形式

public void removeClusterEventListener(
                        ClusterEventListener clusterEventListener)
            throws CacheException

(c)　パラメータ

clusterEventListener

ユーザが作成したClusterEventListenerインタフェース実装クラスを指定します。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalClientException（EADSクライアントの内部エラー）

(22)　removeNodeEventListener()

(a)　機能

ノードイベントリスナを削除します。

未通知のイベントの情報を破棄します。

このメソッドは，addNodeEventListener()と対になるように，呼び出してください。

(b)　形式

public void removeNodeEventListener(
                        NodeEventListener nodeEventListener)
            throws CacheException

(c)　パラメータ

nodeEventListener

ユーザが作成したNodeEventListenerインタフェース実装クラスを指定します。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalClientException（EADSクライアントの内部エラー）

18.1.3　Nodeクラス

(1)　説明

EADSサーバの情報を取得するためのクラスです。

(2)　継承関係

java.lang.Object
　└com.hitachi.software.xeads.client.api.Node

(3)　形式

public class Node
extends java.lang.Object

(4)　メソッド一覧

Nodeクラスが提供するメソッド一覧を次の表に示します。

メソッド名

説明

getNodeId()

EADSサーバIDを取得します。

isEnable()

EADSサーバとの接続可否を取得します。

getAddress()

EADSサーバのIPアドレスとポート番号を取得します。

getPosition()

EADSサーバの位置（ハッシュ値）を取得します。

toString()

EADSサーバの情報（文字列表現）を取得します。

(5)　getNodeId()

(a)　機能

EADSサーバIDを取得します。

(b)　形式

public int getNodeId()

(c)　戻り値

EADSサーバIDが返却されます。

(6)　isEnable()

(a)　機能

EADSサーバとの接続可否を取得します。

(b)　形式

public boolean isEnable()

(c)　戻り値

EADSサーバとの接続可否が返却されます。

true

接続できます。

false

接続できません。

(7)　getAddress()

(a)　機能

EADSサーバのIPアドレスとポート番号を取得します。

(b)　形式

public java.net.InetSocketAddress getAddress()

(c)　戻り値

EADSサーバのIPアドレスとポート番号を示すjava.net.InetSocketAddressインスタンスが返却されます。

(8)　getPosition()

(a)　機能

EADSサーバの位置（ハッシュ値）を取得します。

(b)　形式

public int getPosition()

(c)　戻り値

EADSサーバの位置（ハッシュ値）が返却されます。

(9)　toString()

(a)　機能

EADSサーバの情報（文字列表現）を取得します。

(b)　形式

public String toString()

(c)　戻り値

EADSサーバの情報（文字列表現）が次の形式で返却されます。

”node id = ＜EADSサーバID＞, status = ＜ENABLE | DISABLE＞, position = ＜EADSサーバの位置＞, address = ＜EADSサーバのIPアドレスとポート番号＞”

18.1.4　FailureOperationInfoクラス

(1)　説明

一括操作を試みた結果，一部またはすべての操作に失敗した場合に，失敗した操作の情報を格納するためのクラスです。

(2)　継承関係

java.lang.Object
　└com.hitachi.software.xeads.client.api.FailureOperationInfo

(3)　形式

public class FailureOperationInfo
extends java.lang.Object

(4)　メソッド一覧

FailureOperationInfoクラスが提供するメソッド一覧を次の表に示します。

メソッド名

説明

getKey()

失敗した操作で使用したkeyを取得します。

getErrorCode()

失敗した操作のエラーの要因を示すエラーコードを取得します。

getException()

失敗した操作で発生した例外を取得します。

(5)　getKey()

(a)　機能

失敗した操作で使用したkeyを取得します。

(b)　形式

public String getKey()

(c)　戻り値

失敗した操作で使用したkeyが返却されます。

(6)　getErrorCode()

(a)　機能

失敗した操作のエラーの要因を示すエラーコードを取得します。

(b)　形式

public int getErrorCode()

(c)　戻り値

失敗した操作のエラーの要因を示すエラーコードが返却されます。

(7)　getException()

(a)　機能

失敗した操作で発生した例外を取得します。

(b)　形式

public CacheException getException()

(c)　戻り値

失敗した操作で発生した例外が返却されます。

18.1.5　CacheExceptionクラス

(1)　説明

Cacheクラス，およびCacheManagerクラスに対する操作が失敗した場合に返却される例外クラスです。

getErrorCode()によってエラーコードを取得し，エラーの内容を判別します。

(2)　継承関係

java.lang.Object
└java.lang.Throwable
    └java.lang.Exception
        └com.hitachi.software.xeads.client.api.CacheException

(3)　形式

public class CacheException
extends Exception

(4)　メソッド一覧

CacheExceptionクラスが提供するメソッド一覧を次の表に示します。

メソッド名

説明

getErrorCode()

発生した例外のエラーコードを取得します。

(5)　getErrorCode()

(a)　機能

発生した例外のエラーコードを取得します。

(b)　形式

public int getErrorCode()

(c)　戻り値

戻り値としてエラーコードが返却されます。エラーコードとエラーの内容，発生要因を次の表に示します。

エラーコード

エラーコード定数

例外クラス

エラーの内容

発生要因

データを更新するAPIの処理状態※

クライアント定義のeads.client.compatパラメタに0300を指定した場合のエラーコード

1000

EAD_ERROR_UNEXPECTED

CacheException

予期しないエラーが発生しました。

プログラム内で予期しないエラーが発生しました。

△

1000

1010

EAD_ERROR_INVALID_PARAMETER

UserOperationException

指定されたパラメタが不正です。

APIの引数に不正なパラメタを指定しています。

×

1010

1030

EAD_ERROR_CLIENT_FINALIZED

UserOperationException

EADSクライアントの使用を終了しているため，処理を実行できませんでした。

CacheManagerクラスのdestroy()を実行したあとで，CacheManagerクラスのメソッドが実行されました。

×

1030

1040

EAD_ERROR_CACHE_NOT_STARTED

UserOperationException

キャッシュが開始されていないため実行できません。

次の要因が考えられます。

キャッシュの終了後（CacheManagerクラスのremoveCache()の実行後）に，データを操作した。

EADSクライアントの使用を終了したあと（CacheManagerクラスのdestroy()実行後）に，データを操作した。

×

1040

1050

EAD_ERROR_NOT_SERIALIZABLE

UserOperationException

EADSクライアントでのシリアライズ処理に失敗しました。

APIの引数にシリアライズできないオブジェクトを指定しています。

×

1050

1060

EAD_ERROR_NOT_DESERIALIZABLE

UserOperationException

EADSクライアントでのデシリアライズ処理に失敗しました。

EADSサーバから取得したオブジェクトはEADSクライアントでデシリアライズできませんでした。

EADSクライアントのクラスパスに含まれないオブジェクトであることが考えられます。

−

1060

1100

EAD_ERROR_CACHE_NOT_NEED_STOP

UserOperationException

すでに終了しているキャッシュに対して，終了処理をしています。

次の要因が考えられます。

キャッシュの終了後（CacheManagerクラスのremoveCache()の実行後）に，キャッシュを終了した。

CacheManagerクラスのgetCache()を実行していない状態で，CacheManagerクラスのremoveCache()を実行した。

−

1100

1110

EAD_ERROR_INVALID_NODE_ADDRESS

UserOperationException

指定したEADSサーバのアドレス情報が，EADSクライアントが保持するEADSサーバのアドレス情報と一致しません。

APIの引数に指定したEADSサーバのアドレス情報（IPアドレスおよびポート番号）が，EADSクライアントが保持するどのEADSサーバのアドレス情報とも一致しません。

−

1110

1120

EAD_ERROR_EXCEED_MAX_CONNECTION_POOL_SIZE

UserOperationException

同一接続先に対してプールしておくコネクションがすでに最大個数に達していて，すべて使用中です。

特定のEADSサーバに対して同時にリクエストしているスレッド数が，コネクションの最大個数を超えています。

×

1120

1200

EAD_ERROR_EVENTLISTENER_NOT_INITIALIZED

UserOperationException

クラスタイベントリスナとノードイベントリスナを追加できません。

イベントリスナが無効になっている状態（クライアント定義のeads.client.eventListener.enableパラメタにtrueが指定されていない）で，次の処理を実行しました。

クラスタイベントリスナの追加（CacheManagerクラスのaddClusterEventListener()の実行）

ノードイベントリスナの追加（CacheManagerクラスのaddNodeEventListener()の実行）

−

−

1210

EAD_ERROR_EVENTLISTENER_EXIST

UserOperationException

すでに追加されているクラスタイベントリスナまたはノードイベントリスナを，追加しようとしました。

次の要因が考えられます。

クラスタイベントリスナの追加後（CacheManagerクラスのaddClusterEventListener()の実行後）に，クラスタイベントリスナの追加をした。

ノードイベントリスナの追加後（CacheManagerクラスのaddNodeEventListener()の実行後）に，ノードイベントリスナの追加をした。

−

−

1220

EAD_ERROR_EVENTLISTENER_NOT_NEED_REMOVE

UserOperationException

削除する必要がないクラスタイベントリスナまたはノードイベントリスナを，削除しようとしました。

次の要因が考えられます。

CacheManagerクラスのdestroy()の実行後に，イベントリスナの削除をした。

クラスタイベントリスナの削除後（CacheManagerクラスのremoveClusterEventListener()の実行後）に，クラスタイベントリスナの削除をした。

ノードイベントリスナの削除後（CacheManagerクラスのremoveNodeEventListener()の実行後）に，ノードイベントリスナの削除をした。

クラスタイベントリスナの追加（CacheManagerクラスのaddClusterEventListener()の実行）をしていない状態で，クラスタイベントリスナの削除（CacheManagerクラスのremoveClusterEventListener()の実行）をした。

ノードイベントリスナの追加（CacheManagerクラスのaddNodeEventListener()の実行）をしていない状態で，ノードイベントリスナの削除（CacheManagerクラスのremoveNodeEventListener()の実行）をした。

−

−

2000

EAD_ERROR_INIT

InitializeException

EADSクライアントの初期設定でエラーが発生しました。

CacheManagerクラスのcreate()実行中に予期しないエラーが発生しました。

−

2000

2010

EAD_ERROR_INIT_PROPERTIES

InitializeException

クライアント定義ファイルが読み込めませんでした。

次の要因が考えられます。

クライアント定義ファイルが存在しない。

クライアント定義ファイルに読み込み権限がない。

格納先パス名がファイルではなくディレクトリを指している。

CacheManagerクラスのcreate()で指定した入力ストリームに問題がある。

−

2010

2020

EAD_ERROR_INIT_INVALID_PROPERTY

InitializeException

クライアント定義ファイルの定義内容に不正があります。

クライアント定義ファイルの定義内容が不正です。

−

2020

2030

EAD_ERROR_INIT_LOGGER

InitializeException

ログの初期化に失敗しました。

次の要因が考えられます。

指定されたディレクトリ，または出力先のログファイルに書き込み権限がない。

指定されたディレクトリに同名のファイルが存在する。

指定されたパス名，またはファイル名が不正である。

ログファイル名と同名のディレクトリが存在した。

ログ出力を開始するためのメモリが不足している。

−

2030

2040

EAD_ERROR_INIT_CLUSTERINFO

InitializeException

クライアント定義ファイルで指定されたEADSサーバへの接続に失敗しました。

次の要因が考えられます。

クライアント定義に指定した接続先EADSサーバの指定に誤りがある。

接続先EADSサーバとの通信に失敗した。または接続先EADSサーバで障害が発生している。

接続先EADSサーバの最大同時接続数を超えた。

接続先EADSサーバがリクエストの受付を開始できる状態でない。

接続先EADSサーバでノンブロッキングI/O通信バッファが不足した。

接続先EADSサーバとの通信中にタイムアウトが発生した。

−

2040

3000

EAD_ERROR_NET

ServerCommunicationException

EADSサーバとの間で通信エラーが発生しました。

次の要因が考えられます。

通信中にネットワーク障害が発生した。

通信先のEADSサーバで問題が発生した。

通信先のホストで問題が発生した。

△

3000

3001

EAD_ERROR_NET_SEND_REQUEST

ServerCommunicationException

EADSサーバへのリクエスト送信処理で通信エラーが発生しました。

次の要因が考えられます。

通信中にネットワーク障害が発生した。

通信先のEADSサーバで問題が発生した。

通信先のホストで問題が発生した。

△

3000

3002

EAD_ERROR_NET_RECEIVE_RESPONSE

ServerCommunicationException

EADSサーバへのレスポンス受信処理で通信エラーが発生しました。

次の要因が考えられます。

通信中にネットワーク障害が発生した。

通信先のEADSサーバで問題が発生した。

通信先のホストで問題が発生した。

△

3000

3010

EAD_ERROR_NET_TIMEOUT

ServerCommunicationException

EADSサーバとの通信中にタイムアウトが発生しました。

次の要因が考えられます。

接続先EADSサーバで問題が発生した。

接続先のホストで問題が発生した。

ネットワークで問題が発生した。

タイムアウト時間の設定が誤っている。

△

3010

3011

EAD_ERROR_NET_SEND_TIMEOUT

ServerCommunicationException

EADSサーバへのリクエスト送信処理でタイムアウトが発生しました。

次の要因が考えられます。

接続先EADSサーバで問題が発生した。

接続先のホストで問題が発生した。

ネットワークで問題が発生した。

タイムアウト時間の設定が誤っている。

△

3010

3012

EAD_ERROR_NET_RECEIVE_TIMEOUT

ServerCommunicationException

EADSサーバへのレスポンス受信処理でタイムアウトが発生しました。

次の要因が考えられます。

接続先EADSサーバで問題が発生した。

接続先のホストで問題が発生した。

ネットワークで問題が発生した。

タイムアウト時間の設定が誤っている。

△

3010

3020

EAD_ERROR_NET_CONNECTION

ServerCommunicationException

EADSサーバとの接続に失敗しました。

次の要因が考えられます。

接続先EADSサーバで問題が発生した。

接続先EADSサーバに関する設定が誤っている。

ネットワークで問題が発生した。

タイムアウト時間の設定が誤っている。

×

3020

3030

EAD_ERROR_NET_PROTOCOL

ServerCommunicationException

EADSサーバとの通信中にプロトコル障害が発生しました。

接続先EADSサーバが誤りです。

△

3030

3040

EAD_ERROR_NET_CLUSTERINFO

ServerCommunicationException

接続できる，すべてのEADSサーバへの接続に失敗しました。

次の要因が考えられます。

接続先EADSサーバで問題が発生した。

接続先EADSサーバに関する設定が誤っている。

ネットワークで問題が発生した。

指定したキャッシュが接続先EADSサーバに存在しない。

接続先EADSサーバが閉塞状態となっている。

EADSクライアントが保持するクラスタ構成情報と，再起動した接続先EADSサーバが保持するクラスタ構成情報が一致しない。

接続先EADSサーバの最大同時接続数を超えた。

EADSがサポートしていないJDK（例：OracleのJDK 1.7）を使用している。

接続先EADSサーバとの通信中にタイムアウトが発生した。

−

3040

4000

EAD_ERROR_SERVER

InternalServerException

予期しない内部エラーがEADSサーバで発生しました。

予期しない問題が接続先EADSサーバで発生しました。

△

4000

4010

EAD_ERROR_SERVER_UNSUPPORTED_REQUEST

InternalServerException

EADSクライアントが送信したリクエストを，接続先EADSサーバが処理できませんでした。

次の要因が考えられます。

データが破損しているなどの理由で，接続先EADSサーバがリクエストを処理できない。

接続先EADSサーバがサポートしていないAPIを使用した。

×

4010

4030

EAD_ERROR_SERVER_UNAVAILABLE

InternalServerException

EADSサーバが一時的に利用できません。

接続先EADSサーバの最大同時接続数を超えました。

×

4030

4040

EAD_ERROR_SERVER_INCOMPATIBLE_CLUSTERINFO

InternalServerException

接続先EADSサーバが保持するクラスタ構成情報と，EADSクライアントが保持するクラスタ構成情報に互換性がありません。

再起動した接続先EADSサーバのクラスタ構成情報が，EADSクライアントが保持するクラスタ構成情報と一致しません。

×

4040

4060

EAD_ERROR_SERVER_REPLACE_METHOD_NOT_MATCHED

InternalServerException

replace()実行時，すでに格納されているvalueがcomparativeValueと一致しなかったため，valueを格納できませんでした。

Cacheクラスのreplace()で条件に指定したvalueとキャッシュ上のvalueが一致しませんでした。

×

4060

4070

EAD_ERROR_SERVER_REPLACE_METHOD_KEY_NOT_EXIST

InternalServerException

replace()実行時，指定したkeyが存在しなかったため（keyに関連づけられたvalueが存在しなかったため），valueを格納できませんでした。

Cacheクラスのreplace()で指定したkeyに関連づけられたvalueが存在しなかったため，valueの比較ができませんでした。

×

4070

4080

EAD_ERROR_SERVER_CREATE_METHOD_KEY_EXIST

InternalServerException

create()実行時，すでに格納されているkeyが存在したため，valueを格納できませんでした。

Cacheクラスのcreate()で指定したkeyに関連づけられたvalueがすでに格納されています。

×

4080

4090

EAD_ERROR_SERVER_UPDATE_METHOD_KEY_NOT_EXIST

InternalServerException

update()実行時，格納されているkeyが存在しなかったため，valueを格納できませんでした。

Cacheクラスのupdate()で指定したkeyに関連づけられたvalueが格納されていません。

×

4090

4100

EAD_ERROR_SERVER_NOT_RUNNING

InternalServerException

リクエストを処理できるEADSサーバがありません。

次の要因が考えられます。

EADSクライアントからのリクエストを処理するEADSサーバと，データのコピー先EADSサーバがすべて縮退状態または停止状態になっている。

クラスタが稼働していない状態になっている。

×

4100

4110

EAD_ERROR_SERVER_STATUS

InternalServerException

EADSサーバの状態が，リクエストを実行できる状態ではありません。

接続先EADSサーバの状態がリクエストを実行できる状態でないため，リクエストを処理できませんでした。

×

4000

4120

EAD_ERROR_SERVER_NOT_EXECUTE_REQUEST_TEMPORARILY

InternalServerException

EADSサーバは，一時的にリクエストを実行できません。

スケールアウト処理中のため，受付済みのリクエストを一時的に処理できませんでした。スケールアウト処理が完了するまで待機しないでエラーとなる設定になっています。そのため，スケールアウト処理が完了したあとに，リクエストを再実行してください。

×

4000

4200

EAD_ERROR_SERVER_CACHE

InternalServerException

キャッシュに対する操作を実行できませんでした。

接続先EADSサーバで何らかの問題が発生しているため，キャッシュを操作できない状態になっています。操作を中止してEADSサーバの状態を確認してください。

×

4000

4210

EAD_ERROR_SERVER_CACHE_NOT_FOUND

InternalServerException

指定したキャッシュが存在しないため，キャッシュに対する操作を実行できませんでした。

指定したキャッシュが存在しないため，キャッシュを操作できませんでした。指定したキャッシュに対する操作を中止して，EADSサーバの状態を確認してください。

×

4000

4230

EAD_ERROR_SERVER_CACHE_CLUSTER_UPDATE

InternalServerException

リクエスト処理中にクラスタ構成変更が発生したため，キャッシュに対する操作を実行できませんでした。

リクエスト処理中にクラスタ構成変更が発生したため，キャッシュを操作できませんでした。クラスタ構成の変更が完了したあとに，キャッシュに対する操作を再度実行してください。

×

4000

4300

EAD_ERROR_SERVER_CACHE_BEFORE_REPLICATION

InternalServerException

キャッシュに対する操作中に内部エラーが発生しましたが，データの多重化は発生しませんでした。

接続先EADSサーバでキャッシュに対する操作中，内部エラーが発生しました。データの多重化は発生していないため，ほかの正常なEADSサーバへの影響はありません。EADSサーバが縮退したあと，正常なEADSサーバに接続先が変更されると，同じ操作から処理を再開できます。

×

4000

4310

EAD_ERROR_SERVER_CACHE_AFTER_REPLICATION

InternalServerException

キャッシュに対する操作中にEADSサーバで内部エラーが発生し，データ更新処理が失敗しました。

キャッシュに対する操作中，接続先EADSサーバで内部エラーが発生しました。データの多重化はすでに実行されているため，問題が発生した接続先EADSサーバが縮退したあとに正常なサーバに接続先が変更されると，データが更新された状態から操作を再開できます。

△

4000

4400

EAD_ERROR_SERVER_LIMIT_RECEIVE_BUFFER

InternalServerException

EADSサーバのリクエスト受信処理でノンブロッキングI/O通信バッファが不足しました。

接続先EADSサーバのリクエスト受信処理でノンブロッキングI/O通信バッファが不足しているため，リクエストを処理できませんでした。

×

4000

4410

EAD_ERROR_SERVER_LIMIT_SEND_BUFFER

InternalServerException

EADSサーバのレスポンス送信処理でノンブロッキングI/O通信バッファが不足しました。

接続先EADSサーバのレスポンス送信処理でノンブロッキングI/O通信バッファが不足しているため，レスポンスを送信できませんでした。

△

4000

4700

EAD_ERROR_SERVER_FUNCTION_EXECUTE

InternalServerException

EADSサーバのユーザファンクション内でエラーが発生しました。

接続先EADSサーバのユーザファンクション内でエラーが発生しました。ユーザファンクション内の処理を確認してください。

−

4000

4710

EAD_ERROR_SERVER_FUNCTION_RETURN_SERIALIZE

InternalServerException

EADSサーバでユーザファンクションの戻り値のシリアライズに失敗しました。

接続先EADSサーバで実行したユーザファンクションの戻り値に，シリアライズできないオブジェクトを指定しています。

−

4000

4720

EAD_ERROR_SERVER_FUNCTION_ARG_DESERIALIZE

InternalServerException

ユーザファンクションの引数に，EADSサーバがデシリアライズできないオブジェクトを指定しています。

ユーザファンクションの引数に，接続先EADSサーバがデシリアライズできないオブジェクトを指定しています。

−

4100

4730

EAD_ERROR_SERVER_FUNCTION_NOT_FOUND

InternalServerException

指定したユーザファンクション名のユーザファンクションが，EADSサーバに存在しません。

指定したユーザファンクション名のユーザファンクションが，接続先EADSサーバに存在しません。

−

4000

4800

EAD_ERROR_SERVER_LIMIT_EXTERNAL_MEMORY

InternalServerException

データを格納するメモリの容量が不足しています。

接続先EADSサーバでデータを格納するメモリ（Explicitヒープ）の容量が不足しているため，リクエストを処理できませんでした。

×

4000

4810

EAD_ERROR_SERVER_LIMIT_CACHE_FILE

InternalServerException

データを格納するキャッシュファイルの容量が不足しています。

接続先EADSサーバでデータを格納するキャッシュファイルの容量が不足しているため，リクエストを処理できませんでした。

×

4000

4820

EAD_ERROR_SERVER_LIMIT_KV_COUNT

InternalServerException

EADSサーバに格納できるkeyの数が上限に達しています。

接続先EADSサーバに格納できるkeyの数が上限に達しているため，リクエストを処理できませんでした。

×

4000

4830

EAD_ERROR_SERVER_LIMIT_KEY_VALUE_LENGTH

InternalServerException

指定したkey，グループ名，またはvalueのサイズがクラスタに格納できる最大サイズを超えています。

指定したkey，グループ名，またはvalueのサイズがクラスタに格納できる最大サイズを超えているため，リクエストを処理できませんでした。

×

4000

4840

EAD_ERROR_SERVER_LIMIT_EXTERNAL_MEMORY_TEMPORARILY

InternalServerException

接続先EADSサーバで，データを格納するメモリの容量が一時的に不足しています。

リバランス処理中は，EADSサーバでデータを格納するメモリ（Explicitヒープ）の容量が一時的に減少します。そのため，接続先EADSサーバでリクエストを処理できませんでした。

×

4000

4850

EAD_ERROR_SERVER_LIMIT_KV_COUNT_TEMPORARILY

InternalServerException

接続先EADSサーバで，格納できるkeyの数が一時的に上限に達しています。

リバランス処理中は，EADSサーバに格納できるkeyの数の上限が一時的に減少します。そのため，接続先EADSサーバでリクエストを処理できませんでした。

×

4000

4999

EAD_ERROR_SERVER_UNKNOWN

InternalServerException

解析できない内部エラーがEADSサーバで発生しました。

接続先EADSサーバで内部エラーが発生しましたが，接続先EADSサーバのバージョンがEADSクライアントライブラリのバージョンより新しいため，解析できませんでした。

△

4000

5000

EAD_ERROR_CLIENT

InternalClientException

EADSクライアントで内部エラーが発生しました。

クライアントライブラリ内で予期しないエラーが発生しました。

△

5000

5010

EAD_ERROR_CLIENT_OUT_OF_MEMORY

InternalClientException

EADSクライアント内でメモリ確保に失敗しました。

クライアントライブラリ内でメモリ確保に失敗しました。

△

5010

5020

EAD_ERROR_CLIENT_BATCH_CANCEL

InternalClientException

一括操作の実行をキャンセルしました。

一括操作を継続できないため，未実行の操作をキャンセルしました。

×

5020

6000

EAD_ERROR_BATCH_FAILED_ALL

BatchOperationException

一括操作のすべての操作に失敗しました。

データを一括で操作するAPIで実行しようとした操作は，すべて失敗しました。

−

6000

6010

EAD_ERROR_BATCH_FAILED_PART

BatchOperationException

一括操作の一部の操作に失敗しました。

データを一括で操作するAPIで実行しようとした操作のうち，一部が失敗しました。

−

6010

注※

put()，remove()などのデータを更新するAPIの実行時にエラーコードが出力された場合に，データが更新されているかどうかを表しています。

記号の意味を次に示します。

△：データが更新されているかどうかは不明です。処理が完了したかどうか，確認してください。

×：データは更新されていません。

−：put()，remove()などのデータを更新するAPIの実行時に，このエラーコードは出力されません。

18.1.6　InitializeExceptionクラス

(1)　説明

CacheManagerクラスの初期化でエラーが発生した場合に返却されるCacheExceptionのサブクラスです。

(2)　継承関係

java.lang.Object
└java.lang.Throwable
    └java.lang.Exception
        └com.hitachi.software.xeads.client.api.CacheException
            └com.hitachi.software.xeads.client.api.InitializeException

(3)　形式

public class InitializeException
extends CacheException

18.1.7　InternalClientExceptionクラス

(1)　説明

EADSクライアントで内部エラーが発生した場合に返却されるCacheExceptionのサブクラスです。

(2)　継承関係

java.lang.Object
└java.lang.Throwable
    └java.lang.Exception
        └com.hitachi.software.xeads.client.api.CacheException
            └com.hitachi.software.xeads.client.api.InternalClientException

(3)　形式

public class InternalClientException
extends CacheException

18.1.8　InternalServerExceptionクラス

(1)　説明

EADSサーバで内部エラーが発生した場合に返却されるCacheExceptionのサブクラスです。

(2)　継承関係

java.lang.Object
└java.lang.Throwable
    └java.lang.Exception
        └com.hitachi.software.xeads.client.api.CacheException
            └com.hitachi.software.xeads.client.api.InternalServerException

(3)　形式

public class InternalServerException
extends CacheException

18.1.9　ServerCommunicationExceptionクラス

(1)　説明

通信障害が発生した場合に返却されるCacheExceptionのサブクラスです。

(2)　継承関係

java.lang.Object
└java.lang.Throwable
    └java.lang.Exception
        └com.hitachi.software.xeads.client.api.CacheException
            └com.hitachi.software.xeads.client.api.ServerCommunicationException

(3)　形式

public class ServerCommunicationException
extends CacheException

18.1.10　UserOperationExceptionクラス

(1)　説明

不正なユーザ操作によってエラーが発生した場合に返却されるCacheExceptionのサブクラスです。

(2)　継承関係

java.lang.Object
└java.lang.Throwable
    └java.lang.Exception
        └com.hitachi.software.xeads.client.api.CacheException
            └com.hitachi.software.xeads.client.api.UserOperationException

(3)　形式

public class UserOperationException
extends CacheException

18.1.11　BatchOperationExceptionクラス

(1)　説明

一括操作を試みた結果，一部またはすべての操作に失敗した場合に返却されるCacheExceptionのサブクラスです。

(2)　継承関係

java.lang.Object
└java.lang.Throwable
    └java.lang.Exception
        └com.hitachi.software.xeads.client.api.CacheException
            └com.hitachi.software.xeads.client.api.BatchOperationException

(3)　形式

public class BatchOperationException
extends CacheException

(4)　メソッド一覧

BatchOperationExceptionクラスが提供するメソッド一覧を次の表に示します。

メソッド名

説明

getSuccessOperationNumber()

一括操作を試みた結果，操作に成功したkeyの数を取得します。

getFailureOperationInfo()

一括操作を試みた結果，失敗した操作の情報の一覧を取得します。

(5)　getSuccessOperationNumber()

(a)　機能

一括操作を試みた結果，操作に成功したkeyの数を取得します。

(b)　形式

public int getSuccessOperationNumber()

(c)　戻り値

操作に成功したkeyの数が返却されます。

(6)　getFailureOperationInfo()

(a)　機能

一括操作を試みた結果，失敗した操作の情報の一覧を取得します。

(b)　形式

public java.util.Set<FailureOperationInfo> getFailureOperationInfo()

(c)　戻り値

失敗した操作の情報を格納したFailureOperationInfoクラスの一覧が返却されます。

18.1.12　AllFailureExceptionクラス

(1)　説明

一括操作を試みた結果，すべての操作に失敗した場合に返却されるBatchOperationExceptionのサブクラスです。

(2)　継承関係

java.lang.Object
└java.lang.Throwable
    └java.lang.Exception
        └com.hitachi.software.xeads.client.api.CacheException
            └com.hitachi.software.xeads.client.api.BatchOperationException
                └com.hitachi.software.xeads.client.api.AllFailureException

(3)　形式

public class AllFailureException
extends BatchOperationException

18.1.13　PartFailureExceptionクラス

(1)　説明

一括操作を試みた結果，一部の操作に失敗した場合に返却されるBatchOperationExceptionのサブクラスです。

(2)　継承関係

java.lang.Object
└java.lang.Throwable
    └java.lang.Exception
        └com.hitachi.software.xeads.client.api.CacheException
            └com.hitachi.software.xeads.client.api.BatchOperationException
                └com.hitachi.software.xeads.client.api.PartFailureException

(3)　形式

public class PartFailureException
extends BatchOperationException

18.1.14　ClusterEventListenerインタフェース

(1)　説明

クラスタイベントリスナが実装する必要のあるインタフェースです。

(2)　インタフェース名

com.hitachi.software.xeads.client.api.ClusterEventListener

(3)　メソッド一覧

ClusterEventListenerインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

onEvent()

クラスタイベントリスナの処理を実装します。イベントの発生時に呼び出されます。

(4)　onEvent()

(a)　機能

クラスタイベントリスナの処理を実装します。イベントの発生時に呼び出されます。

(b)　形式

public void onEvent(ClusterEventContext context)

(c)　パラメータ

context

発生したイベントに関する情報を取得します。

詳細は「18.1.16　ClusterEventContextインタフェース」を参照してください。

(d)　注意事項

クラスタイベントリスナで例外やエラーをcatchしない場合，クラスタイベントリスナ内で予期しないエラーが発生しても，EADSクライアントの処理を継続します。

18.1.15　NodeEventListenerインタフェース

(1)　説明

ノードイベントリスナが実装する必要のあるインタフェースです。

(2)　インタフェース名

com.hitachi.software.xeads.client.api.NodeEventListener

(3)　メソッド一覧

NodeEventListenerインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

onEvent()

ノードイベントリスナの処理を実装します。イベントの発生時に呼び出されます。

(4)　onEvent()

(a)　機能

ノードイベントリスナの処理を実装します。イベントの発生時に呼び出されます。

(b)　形式

public void onEvent(NodeEventContext context)

(c)　パラメータ

context

発生したイベントに関する情報を取得します。

詳細は「18.1.17　NodeEventContextインタフェース」を参照してください。

(d)　注意事項

ノードイベントリスナで例外やエラーをcatchしない場合，ノードイベントリスナ内で予期しないエラーが発生しても，EADSクライアントの処理を継続します。NodeEventContextインタフェースのgetRangeId()で発生した例外をcatchしない場合も，EADSクライアントの処理を継続します。

NodeEventContextインタフェースのgetNodeEventType()でRECOVEREDを取得した直後に，Cacheクラスのメソッドを呼び出すと，イベントが発生したEADSサーバの処理で例外が発生するおそれがあります。例外が発生した場合は，しばらくしてから再実行してください。

イベントが発生したEADSサーバとは，NodeEventContextインタフェースのgetNodeId()が示すEADSサーバです。

18.1.16　ClusterEventContextインタフェース

(1)　説明

クラスタイベントリスナの実行に必要な情報をClusterEventListenerインタフェースに渡すインタフェースです。

ClusterEventContextインタフェースのインスタンスは，クラスタイベントリスナの呼び出し直前に生成され，クラスタイベントリスナの処理完了後に解放されます。

(2)　インタフェース名

com.hitachi.software.xeads.client.api.ClusterEventContext

(3)　メソッド一覧

ClusterEventContextインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

getClusterEventType()

イベントが発生した契機を取得します。

getNode()

イベントが発生したEADSサーバの情報を取得します。

(4)　getClusterEventType()

(a)　機能

イベントが発生した契機を取得します。

(b)　形式

public ClusterEventType getClusterEventType()

(c)　戻り値

イベントが発生した契機が返却されます。

(5)　getNode()

(a)　機能

EADSサーバの情報を取得します。

(b)　形式

public Node getNode()

(c)　戻り値

イベントが発生したEADSサーバの情報が返却されます。

18.1.17　NodeEventContextインタフェース

(1)　説明

ノードイベントリスナの実行に必要な情報をNodeEventListenerインタフェースに渡すインタフェースです。

NodeEventContextインタフェースのインスタンスは，ノードイベントリスナの呼び出し直前に生成され，ノードイベントリスナの処理完了後に解放されます。

(2)　インタフェース名

com.hitachi.software.xeads.client.api.NodeEventContext

(3)　メソッド一覧

NodeEventContextインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

getNodeEventType()

イベントが発生した契機を取得します。

getNodeId()

イベントが発生したEADSサーバIDを取得します。

getRangeId()

イベントが発生したレンジIDを取得します。

getNodeEventType()で返却される値（NodeEventType）によって，NodeEventListenerインタフェースのonEvent()内で実行できるメソッドが変わります。

NodeEventListenerインタフェースのonEvent()内でのメソッドの実行可否を次の表に示します。

表18‒2　NodeEventListenerインタフェースのonEvent()内でのメソッドの実行可否

メソッド名

getNodeEventType()で返却される値（NodeEventType）

NodeEventType. ISOLATED，

NodeEventType. RECOVERED

NodeEventType.PROMOTED_TO_MASTER，

NodeEventType.PROMOTED_TO_SLAVE，

NodeEventType.DEMOTED_TO_SLAVE，

NodeEventType.NO_ROLE

getNodeId()

○

○

getRangeId()

×

○

（凡例）　○：実行できます。　×：実行できません。

注

onEvent()内で実行できないメソッドの場合は，例外としてIllegalStateExceptionが返却されます。

(4)　getNodeEventType()

(a)　機能

イベントが発生した契機を取得します。

(b)　形式

public NodeEventType getNodeEventType()

(c)　戻り値

イベントが発生した契機が返却されます。

(5)　getNodeId()

(a)　機能

イベントが発生したEADSサーバIDを取得します。

(b)　形式

public int getNodeId()

(c)　戻り値

イベントが発生したEADSサーバIDが返却されます。

(6)　getRangeId()

(a)　機能

イベントが発生したレンジIDを取得します。

(b)　形式

public int getRangeId()

(c)　戻り値

イベントが発生したレンジIDが返却されます。

(d)　発生する例外

IllegalStateException（実行できないメソッドの呼び出し）

18.1.18　列挙型ClusterEventType

(1)　説明

クラスタイベントリスナの実行の契機を表す列挙型です。

(2)　列挙型名

com.hitachi.software.xeads.client.api.ClusterEventType

(3)　列挙定数

列挙型ClusterEventTypeの定数を次に示します。

定数

説明

ADDED

EADSサーバが追加されました。

18.1.19　列挙型NodeEventType

(1)　説明

ノードイベントリスナの実行の契機を表す列挙型です。

(2)　列挙型名

com.hitachi.software.xeads.client.api.NodeEventType

(3)　列挙定数

列挙型NodeEventTypeの定数を次に示します。

定数

説明

ISOLATED

障害の発生によって，EADSサーバが縮退しました。

EADSサーバが停止しました。

eztool isolateコマンドの実行によって，EADSサーバが縮退しました。

RECOVERED

EADSサーバが復旧しました。

PROMOTED_TO_MASTER

データを多重化している場合に，マスタとなるデータ（コピー元となるデータ）を格納するEADSサーバに変わりました。

PROMOTED_TO_SLAVE

データを多重化している場合に，データのコピー先のEADSサーバに変わりました。

DEMOTED_TO_SLAVE

データを多重化している場合に，マスタとなるデータ（コピー元となるデータ）を格納するEADSサーバから，データのコピー先のEADSサーバに変わりました。

NO_ROLE

EADSサーバが，次のどちらでもなくなりました。

マスタとなるデータ（コピー元となるデータ）を格納するEADSサーバ

データのコピー先のEADSサーバ

18.2　ユーザファンクションで使用できるAPI

ユーザファンクションで使用できるAPIを次の表に示します。

表18‒3　ユーザファンクションで使用できるAPI

項番

インタフェース名，クラス名，または列挙型

機能

パッケージ名

1

Function

EADSサーバで使用するユーザファンクションが実装する必要のあるインタフェースです。

com.hitachi.software.xeads.func.Function

2

FunctionContext

ユーザファンクションの実行に必要な情報をFunctionインタフェースに渡すインタフェースです。

com.hitachi.software.xeads.func.FunctionContext

3

InitConfig

ユーザファンクションの初期化に使用したファンクション定義の情報を取得するインタフェースです。

com.hitachi.software.xeads.func.InitConfig

4

ClientInfo

実行したEADSクライアントの情報を取得するインタフェースです。

com.hitachi.software.xeads.common.ClientInfo

5

ServerInfo

EADSサーバの情報を取得するためのインタフェースです。

com.hitachi.software.xeads.common.ServerInfo

6

ClusterInfo

クラスタの情報を取得するインタフェースです。

com.hitachi.software.xeads.common.ClusterInfo

7

CacheInfo

キャッシュの情報を取得するインタフェースです。

com.hitachi.software.xeads.common.CacheInfo

8

Store

ユーザファンクションの実行時にデータを操作するインタフェースです。

com.hitachi.software.xeads.func.store.Store

9

Group

ユーザファンクションを実行中のEADSサーバに属するグループを操作するためのインタフェースです。

com.hitachi.software.xeads.func.store.Group

10

Key

ユーザファンクションで使用できるAPI内で，keyを表現するインタフェースです。

com.hitachi.software.xeads.func.store.Key

11

Value

ユーザファンクションで使用できるAPI内で，keyに関連づけて格納されるvalueを表現するインタフェースです。

com.hitachi.software.xeads.func.store.Value

12

UserLogger

ユーザログのインタフェースです。

com.hitachi.software.xeads.common.UserLogger

13

EADsStoreException

データ操作に関連する処理が失敗した場合に返却される例外クラスです。

com.hitachi.software.xeads.func.store.EADsStoreException

14

InternalServerException

EADSサーバで内部エラーが発生した場合に返却されるEADsStoreExceptionのサブクラスです。

com.hitachi.software.xeads.func.store.InternalServerException

15

UserOperationException

不正なユーザ操作によってエラーが発生した場合に返却されるEADsStoreExceptionのサブクラスです。

com.hitachi.software.xeads.func.store.UserOperationException

16

列挙型CacheType

キャッシュタイプを表す列挙型です。

com.hitachi.software.xeads.common.CacheType

18.2.1　Functionインタフェース

(1)　説明

EADSサーバで使用するユーザファンクションが実装する必要のあるインタフェースです。

ユーザファンクションの初期化時にインスタンスを生成します。インスタンスは単一で，EADSサーバの終了処理まで生存します。

(2)　インタフェース名

com.hitachi.software.xeads.func.Function

(3)　メソッド一覧

Functionインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

init()

ユーザファンクションの初期化処理を実装します。

execute()

ユーザファンクションの処理を実装します。

destroy()

ユーザファンクションの終了処理を実装します。

(4)　init()

(a)　機能

ユーザファンクションの初期化処理を実装します。

EADSサーバ起動時のユーザファンクションの初期化時に呼び出されます。

(b)　形式

public void init(FunctionContext context)

(c)　パラメータ

context

ユーザファンクションの実行に必要な情報を取得します。

ユーザファンクションの実行に必要な情報については，「18.2.2　FunctionContextインタフェース」を参照してください。

(5)　execute()

(a)　機能

ユーザファンクションの処理を実装します。

EADSクライアントからの，ユーザファンクション実行リクエスト時に呼び出されます。

(b)　形式

public Object execute(FunctionContext context)

(c)　パラメータ

context

ユーザファンクションの実行に必要な情報を取得します。

ユーザファンクションの実行に必要な情報については，「18.2.2　FunctionContextインタフェース」を参照してください。

(d)　戻り値

ユーザファンクションの処理結果が返却されます。

Valueインスタンスを戻り値に指定した場合だけ，ValueインタフェースのgetObject()の内容が呼び出し元に返却されます。

(e)　注意事項

マルチスレッドで実行するユーザファンクションの場合は，スレッドセーフに実装してください。

(6)　destroy()

(a)　機能

ユーザファンクションの終了処理を実装します。

EADSサーバ終了時のユーザファンクションの終了時に呼び出されます。

(b)　形式

public void destroy(FunctionContext context)

(c)　パラメータ

context

ユーザファンクションの実行に必要な情報を取得します。

ユーザファンクションの実行に必要な情報については，「18.2.2　FunctionContextインタフェース」を参照してください。

18.2.2　FunctionContextインタフェース

(1)　説明

ユーザファンクションの実行に必要な情報をFunctionインタフェースに渡すインタフェースです。

FunctionContextインタフェースのインスタンスは，1リクエストにつき1つ生成されます。

(2)　インタフェース名

com.hitachi.software.xeads.func.FunctionContext

(3)　メソッド一覧

FunctionContextインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

【非推奨】getServerName()

【非推奨】ユーザファンクションを実行するEADSサーバ名（運用ディレクトリ名）を取得します。

【非推奨】getCacheName()

【非推奨】ユーザファンクションが実行されたキャッシュ名を取得します。

【非推奨】getGroupName()

【非推奨】ユーザファンクションの実行時に，EADSクライアントで指定したグループ名を取得します。

【非推奨】getArgument()

【非推奨】ユーザファンクションの実行時に，EADSクライアントで指定した引数を取得します。

getStore()

ユーザファンクションの呼び出しに使用したキャッシュの，データを操作するためのインスタンスを取得します。

getStore()（キャッシュ名指定）

指定したキャッシュ名のキャッシュの，データを操作するためのインスタンスを取得します。

getLogger()

ユーザログを出力するロガーを取得します。

getClientInfo()

ユーザファンクションを実行したEADSクライアントの情報を取得します。

getInitConfig()

ユーザファンクションの初期化に使用したファンクション定義の情報を取得します。

getServerInfo()

ユーザファンクションを実行したEADSサーバの情報を取得します。

getClusterInfo()

クラスタに関する情報を取得します。

(4)　【非推奨】getServerName()

参考

このメソッドは非推奨です。このメソッドの代わりに，ServerInfoインタフェースのgetName()を使用してください。

(a)　機能

ユーザファンクションを実行するEADSサーバ名（運用ディレクトリ名）を取得します。

(b)　形式

public String getServerName()

(c)　戻り値

ユーザファンクションを実行するEADSサーバ名（運用ディレクトリ名）が返却されます。

(5)　【非推奨】getCacheName()

参考

このメソッドは非推奨です。このメソッドの代わりに，ClientInfoインタフェースのgetCacheName()を使用してください。

(a)　機能

ユーザファンクションが実行されたキャッシュ名を取得します。

(b)　形式

public String getCacheName()

(c)　戻り値

ユーザファンクションが実行されたキャッシュ名が返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(6)　【非推奨】getGroupName()

参考

このメソッドは非推奨です。このメソッドの代わりに，ClientInfoインタフェースのgetKeyOrGroupName()を使用してください。

(a)　機能

ユーザファンクションの実行時に，EADSクライアントで指定したグループ名を取得します。

(b)　形式

public String getGroupName()

(c)　戻り値

ユーザファンクションの実行時に，EADSクライアントで指定したグループ名が返却されます。

次の場合はnullが返却されます。

EADSクライアントでグループを指定しなかった場合

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合

(7)　【非推奨】getArgument()

参考

このメソッドは非推奨です。このメソッドの代わりに，ClientInfoインタフェースのgetFunctionArgument()を使用してください。

(a)　機能

ユーザファンクションの実行時に，EADSクライアントで指定した引数を取得します。

(b)　形式

public Object getArgument()

(c)　戻り値

ユーザファンクションの実行時に，EADSクライアントで指定した引数が返却されます。

次の場合はnullが返却されます。

EADSクライアントで引数にnullを指定した場合

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合

(8)　getStore()

(a)　機能

ユーザファンクションの呼び出しに使用したキャッシュの，データを操作するためのインスタンスを取得します。

(b)　形式

public Store getStore()

(c)　戻り値

ユーザファンクションの呼び出しに使用したキャッシュの，データを操作するためのインスタンスが返却されます。

データを操作するためのインスタンスについては，「18.2.8　Storeインタフェース」を参照してください。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(9)　getStore()（キャッシュ名指定）

(a)　機能

指定したキャッシュ名のキャッシュの，データを操作するためのインスタンスを取得します。

(b)　形式

public Store getStore(String cacheName)
               throws EADsStoreException

(c)　パラメータ

cacheName

操作対象となるキャッシュのキャッシュ名を指定します。

指定できるデータについては，「15.2.2(4)　キャッシュ名として指定できるデータ」を参照してください。

なお，作成していないキャッシュのキャッシュ名を指定した場合は不正となります。

(d)　戻り値

指定したキャッシュ名のキャッシュの，データを操作するためのインスタンスが返却されます。

データを操作するためのインスタンスについては，「18.2.8　Storeインタフェース」を参照してください。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(10)　getLogger()

(a)　機能

ユーザログを出力するロガーを取得します。

(b)　形式

public UserLogger getLogger()

(c)　戻り値

ユーザログを出力するロガーが返却されます。

ユーザログを出力するためのインタフェースについては，「18.2.12　UserLoggerインタフェース」を参照してください。

(11)　getClientInfo()

(a)　機能

ユーザファンクションを実行したEADSクライアントの情報を取得します。

(b)　形式

public ClientInfo getClientInfo()

(c)　戻り値

ユーザファンクションを実行したEADSクライアントの情報が返却されます。EADSクライアントの情報については，「18.2.4　ClientInfoインタフェース」を参照してください。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(12)　getInitConfig()

(a)　機能

ユーザファンクションの初期化に使用したファンクション定義の情報を取得します。

(b)　形式

public InitConfig getInitConfig()

(c)　戻り値

ユーザファンクションの初期化に使用したファンクション定義の情報が返却されます。

ユーザファンクションの初期化に使用したファンクション定義の情報については，「18.2.3　InitConfigインタフェース」を参照してください。

(13)　getServerInfo()

(a)　機能

ユーザファンクションを実行したEADSサーバの情報を取得します。

(b)　形式

public ServerInfo getServerInfo()

(c)　戻り値

ユーザファンクションを実行したEADSサーバの情報が返却されます。

EADSサーバの情報については，「18.2.5　ServerInfoインタフェース」を参照してください。

(14)　getClusterInfo()

(a)　機能

クラスタに関する情報を取得します。

(b)　形式

public ClusterInfo getClusterInfo()

(c)　戻り値

クラスタに関する情報が返却されます。

クラスタに関する情報については，「18.2.6　ClusterInfoインタフェース」を参照してください。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

18.2.3　InitConfigインタフェース

(1)　説明

ユーザファンクションの初期化に使用したファンクション定義の情報を取得するインタフェースです。

InitConfigインタフェースのインスタンスは，ユーザファンクションの初期化時に，ユーザファンクションごとに1つ生成されます。

(2)　インタフェース名

com.hitachi.software.xeads.func.InitConfig

(3)　メソッド一覧

InitConfigインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

getFunctionProperty()

ユーザファンクションの初期化に使用したファンクション定義の指定値を取得します。

getFunctionPropertyNames()

ユーザファンクションの初期化に使用したファンクション定義のパラメタの一覧を取得します。

getFunctionName()

現在実行しているユーザファンクションの名称を取得します。

(4)　getFunctionProperty()

(a)　機能

ユーザファンクションの初期化に使用したファンクション定義の指定値を取得します。

ファンクション定義の指定値は，指定値そのものではなく，ベリファイされた値です。

(b)　形式

public String getFunctionProperty(java.lang.String propName)

(c)　パラメータ

propName

ファンクション定義のパラメタ名を指定します。

(d)　戻り値

パラメタ名に対応する指定値が返却されます。

パラメタ名に対応する指定値が存在しない場合は，nullが返却されます。

(e)　発生する例外

NullPointerException（パラメタ名がnull）

(5)　getFunctionPropertyNames()

(a)　機能

ユーザファンクションの初期化に使用したファンクション定義のパラメタ名の一覧を取得します。

(b)　形式

public java.util.Set<String> getFunctionPropertyNames()

(c)　戻り値

ユーザファンクションの初期化に使用したファンクション定義のパラメタ名の一覧が返却されます。

(6)　getFunctionName()

(a)　機能

現在実行しているユーザファンクションの名称を取得します。

(b)　形式

public String getFunctionName()

(c)　戻り値

現在実行しているユーザファンクションの名称が返却されます。

18.2.4　ClientInfoインタフェース

(1)　説明

実行したEADSクライアントの情報を取得するインタフェースです。

(2)　インタフェース名

com.hitachi.software.xeads.common.ClientInfo

(3)　メソッド一覧

ClientInfoインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

getIp()

実行したEADSクライアントのIPアドレスを取得します。

getPid()

実行したEADSクライアントが付与したPIDを取得します。

getCacheName()

EADSクライアントで指定したキャッシュ名を取得します。

getKeyOrGroupName()

EADSクライアントで指定したkey，またはグループ名を取得します。

getFunctionArgument()

EADSクライアントで指定したユーザファンクションの引数を取得します。

(4)　getIp()

(a)　機能

実行したEADSクライアントのIPアドレスを取得します。

(b)　形式

public byte[] getIp()

(c)　戻り値

実行したEADSクライアントのIPアドレスが返却されます。

(5)　getPid()

(a)　機能

実行したEADSクライアントが付与したPIDを取得します。

取得するPIDは，実行したEADSクライアントが出力するログのpid列と同じ値となります。

(b)　形式

public int getPid()

(c)　戻り値

実行したEADSクライアントが付与したPIDが返却されます。

(6)　getCacheName()

(a)　機能

EADSクライアントで指定したキャッシュ名を取得します。

(b)　形式

public String getCacheName()

(c)　戻り値

EADSクライアントで指定したキャッシュ名が返却されます。

(7)　getKeyOrGroupName()

(a)　機能

EADSクライアントで指定したkey，またはグループ名を取得します。

(b)　形式

public String getKeyOrGroupName()

(c)　戻り値

EADSクライアントで指定したkey，またはグループ名が返却されます。

EADSクライアントでkey，またはグループを指定しなかった場合は，nullが返却されます。

(8)　getFunctionArgument()

(a)　機能

EADSクライアントで指定したユーザファンクションの引数を取得します。

(b)　形式

public Object getFunctionArgument()

(c)　戻り値

EADSクライアントで指定したユーザファンクションの引数が返却されます。

EADSクライアントでユーザファンクションの引数を指定しなかった場合，またはnullを指定した場合は，nullが返却されます。

18.2.5　ServerInfoインタフェース

(1)　説明

EADSサーバの情報を取得するためのインタフェースです。

(2)　インタフェース名

com.hitachi.software.xeads.common.ServerInfo

(3)　メソッド一覧

ServerInfoインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

getName()

ユーザファンクションを実行しているEADSサーバ名（運用ディレクトリ名）を取得します。

getAddress()

ユーザファンクションを実行しているEADSサーバのIPアドレスおよびポート番号を取得します。

getId()

ユーザファンクションを実行しているEADSサーバの，EADSサーバIDを取得します。

【非推奨】getCacheNames()

【非推奨】ユーザファンクションを実行しているEADSサーバで作成済みのキャッシュの，キャッシュ名の一覧を取得します。

キャッシュ名の一覧は，ASCIIコードの昇順となります。

【非推奨】getCacheType()

【非推奨】指定したキャッシュ名のキャッシュから，キャッシュタイプの情報を取得します。

getEHeapSize()

ユーザファンクションを実行しているEADSサーバが，キャッシュ用に確保しているExplicitヒープサイズを取得します。

getEHeapUsageSize()

ユーザファンクションを実行しているEADSサーバが，キャッシュ用に確保しているExplicitヒープの使用量を取得します。

【非推奨】getCacheDataFileSpecifiedSize()

【非推奨】キャッシュデータファイルの1ファイル当たりのファイルサイズ（キャッシュ定義ファイルに定義した値）を取得します。

【非推奨】getCacheDataFileRemainingSize()

【非推奨】現在書き込み中のキャッシュデータファイルについて，永続データを格納できる残りのファイルサイズを取得します。

【非推奨】getCacheDataFileSpecifiedNumber()

【非推奨】キャッシュデータファイルのファイル数（キャッシュ定義ファイルに定義した値）を取得します。

【非推奨】getCacheDataFileUnusedNumber()

【非推奨】現在使用できる，未使用のキャッシュデータファイルの数を取得します。

(4)　getName()

(a)　機能

ユーザファンクションを実行しているEADSサーバ名（運用ディレクトリ名）を取得します。

(b)　形式

public String getName()

(c)　戻り値

ユーザファンクションを実行しているEADSサーバ名（運用ディレクトリ名）が返却されます。

(5)　getAddress()

(a)　機能

ユーザファンクションを実行しているEADSサーバのIPアドレスおよびポート番号を取得します。

(b)　形式

public InetSocketAddress getAddress()

(c)　戻り値

サーバのIPアドレスとポート番号を示すjava.net.InetSocketAddressインスタンスが返却されます。

(6)　getId()

(a)　機能

ユーザファンクションを実行しているEADSサーバの，EADSサーバIDを取得します。

(b)　形式

public int getId()

(c)　戻り値

ユーザファンクションを実行しているEADSサーバの，EADSサーバIDが返却されます。

(7)　【非推奨】getCacheNames()

参考

このメソッドは非推奨です。このメソッドの代わりに，ClusterInfoインタフェースのgetCacheNames()を使用してください。

(a)　機能

ユーザファンクションを実行しているEADSサーバで作成済みのキャッシュの，キャッシュ名の一覧を取得します。

キャッシュ名の一覧は昇順となります。

(b)　形式

public java.util.Set<String> getCacheNames()

(c)　戻り値

ユーザファンクションを実行しているEADSサーバで作成済みのキャッシュ名の一覧が返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(8)　【非推奨】getCacheType()

参考

このメソッドは非推奨です。このメソッドの代わりに，ClusterInfoインタフェースのgetType()を使用してください。

(a)　機能

指定したキャッシュ名のキャッシュから，キャッシュタイプの情報を取得します。

(b)　形式

public CacheType getCacheType(String cacheName)
                       throws EADsStoreException

(c)　パラメータ

cacheName

キャッシュ名を指定します。

指定できるデータについては，「15.2.2(4)　キャッシュ名として指定できるデータ」を参照してください。

なお，作成していないキャッシュのキャッシュ名を指定した場合は不正となります。

(d)　戻り値

キャッシュタイプの情報が返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(9)　getEHeapSize()

(a)　機能

ユーザファンクションを実行しているEADSサーバが，キャッシュ用に確保しているExplicitヒープサイズを取得します。

(b)　形式

public long getEHeapSize()
                  throws EADsStoreException

(c)　戻り値

EADSサーバがキャッシュ用に確保しているExplicitヒープサイズ（単位：バイト）が返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は0が返却されます。

(d)　発生する例外

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(10)　getEHeapUsageSize()

(a)　機能

ユーザファンクションを実行しているEADSサーバが，キャッシュ用に確保しているExplicitヒープの使用量を取得します。

(b)　形式

public long getEHeapUsageSize()
                  throws EADsStoreException

(c)　戻り値

EADSサーバがキャッシュ用に確保しているExplicitヒープの使用量（単位：バイト）が返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は0が返却されます。

(d)　発生する例外

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(11)　【非推奨】getCacheDataFileSpecifiedSize()

参考

このメソッドは非推奨です。このメソッドの代わりにCacheInfoインタフェースのgetCacheDataFileSize()を使用してください。

(a)　機能

キャッシュデータファイルの1ファイル当たりのファイルサイズ（キャッシュ定義ファイルに定義した値）（単位：バイト）を取得します。

(b)　形式

public long getCacheDataFileSpecifiedSize(String cacheName)
                                   throws EADsStoreException

(c)　パラメータ

cacheName

キャッシュ名を指定します。

指定できるデータについては，「15.2.2(4)　キャッシュ名として指定できるデータ」を参照してください。

なお，作成していないキャッシュのキャッシュ名を指定した場合は不正となります。

(d)　戻り値

キャッシュデータファイルの1ファイル当たりのファイルサイズ（キャッシュ定義ファイルに定義した値）（単位：バイト）が返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(12)　【非推奨】getCacheDataFileRemainingSize()

参考

このメソッドは非推奨です。このメソッドの代わりに，CacheInfoインタフェースのgetRemainingAreaSizeOfWritingCacheDataFile()を使用してください。

(a)　機能

現在書き込み中のキャッシュデータファイルについて，永続データを格納できる残りのファイルサイズ（単位：バイト）を取得します。

(b)　形式

public long getCacheDataFileRemainingSize(String cacheName, String key)
                                   throws EADsStoreException

(c)　パラメータ

cacheName

キャッシュ名を指定します。

指定できるデータについては，「15.2.2(4)　キャッシュ名として指定できるデータ」を参照してください。

なお，作成していないキャッシュのキャッシュ名を指定した場合は不正となります。

key

valueに関連づけるkeyを指定します。グループ名だけの指定もできます。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

なお，ユーザファンクションを実行中のEADSサーバに属していないkeyを指定した場合は不正となります。

(d)　戻り値

現在書き込み中のキャッシュデータファイルについて，永続データを格納できる残りのファイルサイズ（単位：バイト）が返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，0が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(f)　注意事項

返却される残りのファイルサイズは，メソッド実行時点の情報です。そのため，残りのファイルサイズは，キャッシュ操作やコンパクションによって変動することがあります。

このメソッドを実行しているEADSサーバの情報を取得します。ほかのEADSサーバの情報は取得できません。

このメソッドの戻り値で，キャッシュデータファイルに十分な空き領域を確認できた場合でも，データのコピー先のEADSサーバが容量不足となっていると，データの格納時にデータのコピー先のEADSサーバが縮退してしまいます。このメソッドの戻り値に加えて，データのコピー先のEADSサーバで使用できる容量も考慮して，データを格納できるか判断してください。

(13)　【非推奨】getCacheDataFileSpecifiedNumber()

参考

このメソッドは非推奨です。このメソッドの代わりに，CacheInfoインタフェースのgetCacheDataFilesNumber()を使用してください。

(a)　機能

キャッシュデータファイルのファイル数（キャッシュ定義ファイルに定義した値）を取得します。

(b)　形式

public int getCacheDataFileSpecifiedNumber(String cacheName)
                                    throws EADsStoreException

(c)　パラメータ

cacheName

キャッシュ名を指定します。

指定できるデータについては，「15.2.2(4)　キャッシュ名として指定できるデータ」を参照してください。

なお，作成していないキャッシュのキャッシュ名を指定した場合は不正となります。

(d)　戻り値

キャッシュデータファイルのファイル数（キャッシュ定義ファイルに定義した値）が返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，0が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(14)　【非推奨】getCacheDataFileUnusedNumber()

参考

このメソッドは非推奨です。このメソッドの代わりに，CacheInfoインタフェースのgetRemainingCacheDataFilesNumber()を使用してください。

(a)　機能

現在使用できる，未使用のキャッシュデータファイルの数を取得します。

(b)　形式

public int getCacheDataFileUnusedNumber(String cacheName, String key)
                                 throws EADsStoreException

(c)　パラメータ

cacheName

キャッシュ名を指定します。

指定できるデータについては，「15.2.2(4)　キャッシュ名として指定できるデータ」を参照してください。

なお，作成していないキャッシュのキャッシュ名を指定した場合は不正となります。

key

valueに関連づけるkeyを指定します。グループ名だけの指定もできます。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

なお，ユーザファンクションを実行中のEADSサーバに属していないkeyを指定した場合は不正となります。

(d)　戻り値

現在使用できる，未使用のキャッシュデータファイルの数が返却されます。ただし，EADSサーバによって使用予約済みのファイル数は含まれません。

現在書き込み中のキャッシュデータファイルが，書き込みできる最後のキャッシュデータファイルの場合は，0が返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，0が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(f)　注意事項

返却される残りのファイル数は，メソッド実行時点の情報です。そのため，残りのファイル数は，キャッシュ操作やコンパクションによって変動することがあります。

このメソッドを実行しているEADSサーバの情報を取得します。ほかのEADSサーバの情報は取得できません。

このメソッドの戻り値で，キャッシュデータファイルに十分な空き領域を確認できた場合でも，データのコピー先のEADSサーバが容量不足となっていると，データの格納時にデータのコピー先のEADSサーバが縮退してしまいます。このメソッドの戻り値に加えて，データのコピー先のEADSサーバで使用できる容量も考慮して，データを格納できるか判断してください。

18.2.6　ClusterInfoインタフェース

(1)　説明

クラスタの情報を取得するインタフェースです。

(2)　インタフェース名

com.hitachi.software.xeads.common.ClusterInfo

(3)　メソッド一覧

ClusterInfoインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

getReplicationFactor()

データの多重度を取得します。

getCacheNames()

ユーザファンクションを実行しているEADSサーバで，作成済みのキャッシュのキャッシュ名の一覧を取得します。

キャッシュ名の一覧は，ASCIIコードの昇順となります。

getCacheInfo()

指定したキャッシュの情報を取得します。

getPosition()

指定したkeyまたはグループ名に対応するポジション（ハッシュ値）を取得します。

getRangeId()（ポジション指定）

指定したポジションに対応するレンジのレンジIDを取得します。

getRangeId()（keyまたはグループ名指定）

指定したkeyまたはグループ名に対応するレンジのレンジIDを取得します。

getLocalRangeId()

ユーザファンクションを実行しているEADSサーバが，コピー元，またはコピー先として処理するすべてのレンジのレンジIDの一覧を取得します。

isLocalRange()

指定したレンジが，ユーザファンクションを実行しているEADSサーバで，コピー元，またはコピー先としての役割を持つかどうかを取得します。

isLocalMasterRange()

指定したレンジが，ユーザファンクションを実行しているEADSサーバで，コピー元としての役割を持つかどうかを取得します。

(4)　getReplicationFactor()

(a)　機能

データの多重度を取得します。

(b)　形式

public int getReplicationFactor()

(c)　戻り値

データの多重度が返却されます。

(5)　getCacheNames()

(a)　機能

ユーザファンクションを実行しているEADSサーバで，作成済みのキャッシュのキャッシュ名の一覧を取得します。

キャッシュ名の一覧は，ASCIIコードの昇順となります。

(b)　形式

public String[] getCacheNames()

(c)　戻り値

ユーザファンクションを実行しているEADSサーバで，作成済みのキャッシュのキャッシュ名の一覧が返却されます。

(6)　getCacheInfo()

(a)　機能

指定したキャッシュの情報を取得します。

(b)　形式

public CacheInfo getCacheInfo(String cacheName)
                       throws EADsStoreException

(c)　パラメータ

cacheName

キャッシュ名を指定します。

指定できるデータについては，「15.2.2(4)　キャッシュ名として指定できるデータ」を参照してください。

(d)　戻り値

指定したキャッシュ名のキャッシュに対応する情報を持つインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

(7)　getPosition()

(a)　機能

指定したkeyまたはグループ名に対応するポジション（ハッシュ値）を取得します。

(b)　形式

public int getPosition(String keyOrGroupName)
               throws EADsStoreException

(c)　パラメータ

keyOrGroupName

keyまたはグループ名を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」，または「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

(d)　戻り値

指定したkeyまたはグループ名に対応するポジション（ハッシュ値）が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(8)　getRangeId()（ポジション指定）

(a)　機能

指定したポジションに対応するレンジのレンジIDを取得します。

(b)　形式

public int getRangeId(int position)
               throws EADsStoreException

(c)　パラメータ

position

ポジションを指定します。

(d)　戻り値

指定したポジションに対応するレンジのレンジIDが返却されます。

(e)　発生する例外

EADsStoreException（予期しないエラー）

(9)　getRangeId()（keyまたはグループ名指定）

(a)　機能

指定したkeyまたはグループ名に対応するレンジのレンジIDを取得します。

(b)　形式

public int getRangeId(String keyOrGroupName)
               throws EADsStoreException

(c)　パラメータ

keyOrGroupName

keyまたはグループ名を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」，または「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

(d)　戻り値

指定したkeyまたはグループ名に対応するレンジのレンジIDが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(10)　getLocalRangeId()

(a)　機能

ユーザファンクションを実行しているEADSサーバが，コピー元，またはコピー先として処理するすべてのレンジのレンジIDの一覧を取得します。

(b)　形式

public int[] getLocalRangeId()
                      throws EADsStoreException

(c)　戻り値

ユーザファンクションを実行しているEADSサーバが，コピー元，またはコピー先として処理するすべてのレンジのレンジIDの一覧が返却されます。

(d)　発生する例外

EADsStoreException（予期しないエラー）

(11)　isLocalRange()

(a)　機能

指定したレンジが，ユーザファンクションを実行しているEADSサーバで，コピー元，またはコピー先としての役割を持つかどうかを取得します。

(b)　形式

public boolean isLocalRange(int rangeId)
                     throws EADsStoreException

(c)　パラメータ

rangeId

レンジのレンジIDを指定します。

(d)　戻り値

true

指定したレンジは，ユーザファンクションを実行しているEADSサーバで，コピー元，またはコピー先としての役割を持ちます。

false

指定したレンジは，ユーザファンクションを実行しているEADSサーバで，コピー元，またはコピー先としての役割を持ちません。

(e)　発生する例外

EADsStoreException（予期しないエラー）

(12)　isLocalMasterRange()

(a)　機能

指定したレンジが，ユーザファンクションを実行しているEADSサーバで，コピー元としての役割を持つかどうかを取得します。

(b)　形式

public boolean isLocalMasterRange(int rangeId)
                           throws EADsStoreException

(c)　パラメータ

rangeId

レンジのレンジIDを指定します。

(d)　戻り値

true

指定したレンジは，ユーザファンクションを実行しているEADSサーバで，コピー元としての役割を持ちます。

false

指定したレンジは，ユーザファンクションを実行しているEADSサーバで，コピー元としての役割を持ちません。

(e)　発生する例外

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

18.2.7　CacheInfoインタフェース

(1)　説明

キャッシュの情報を取得するインタフェースです。

(2)　インタフェース名

com.hitachi.software.xeads.common.CacheInfo

(3)　メソッド一覧

CacheInfoインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

getType()

キャッシュタイプを取得します。

getCacheDataFileSize()

キャッシュごとに定義したキャッシュデータファイルの，1ファイル当たりのサイズ（単位：バイト）を取得します。

getCacheDataFilesNumber()

キャッシュごとに定義したキャッシュデータファイルのファイル数を取得します。

getRemainingAreaSizeOfWritingCacheDataFile()

ユーザファンクションを実行しているEADSサーバで現在書き込み中であるキャッシュデータファイルの，残りの書き込み可能領域サイズ（単位：バイト）を取得します。

getRemainingCacheDataFilesNumber()

ユーザファンクションを実行しているEADSサーバで現在使用できる，未使用のキャッシュデータファイルの数を取得します。

(4)　getType()

(a)　機能

キャッシュタイプを取得します。

(b)　形式

public CacheType getType()

(c)　戻り値

キャッシュタイプが返却されます。

列挙型CacheTypeについては，「18.2.16　列挙型CacheType」を参照してください。

(5)　getCacheDataFileSize()

(a)　機能

キャッシュごとに定義したキャッシュデータファイルの，1ファイル当たりのサイズ（単位：バイト）を取得します。

(b)　形式

public long getCacheDataFileSize()
                          throws EADsStoreException

(c)　戻り値

キャッシュごとに定義したキャッシュデータファイルの，1ファイル当たりのサイズが返却されます。

(6)　getCacheDataFilesNumber()

(a)　機能

キャッシュごとに定義したキャッシュデータファイルの，ファイル数を取得します。

(b)　形式

public int getCacheDataFilesNumber()
                            throws EADsStoreException

(c)　戻り値

キャッシュごとに定義したキャッシュデータファイルの，ファイル数が返却されます。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(7)　getRemainingAreaSizeOfWritingCacheDataFile()

(a)　機能

ユーザファンクションを実行しているEADSサーバで現在書き込み中のキャッシュデータファイルの，残りの書き込み可能領域サイズ（単位：バイト）を取得します。

(b)　形式

public long getRemainingAreaSizeOfWritingCacheDataFile(int rangeId)
                                                throws EADsStoreException

(c)　パラメータ

rangeId

ユーザファンクションを実行しているEADSサーバに属するレンジのレンジIDを指定します。

(d)　戻り値

現在書き込み中のキャッシュデータファイルについて，永続データを格納できる残りのファイルサイズが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(f)　注意事項

このメソッドの戻り値で，キャッシュデータファイルに十分な空き領域が確認できた場合でも，EADSサーバ間でデータの配置状態に違いがあるため，同じレンジを扱うほかのEADSサーバ上では空き領域が異なります。

コンパクションを十分に実行することで，キャッシュデータファイルの空き領域の差異が小さくなることは期待できます。ただし，ほかのEADSサーバの空き領域と完全に一致することは保証できません。

(8)　getRemainingCacheDataFilesNumber()

(a)　機能

ユーザファンクションを実行しているEADSサーバで現在使用できる，未使用のキャッシュデータファイルの数を取得します。

(b)　形式

public int getRemainingCacheDataFilesNumber(int rangeId)
                                     throws EADsStoreException

(c)　パラメータ

rangeId

ユーザファンクションを実行しているEADSサーバに属するレンジのレンジIDを指定します。

(d)　戻り値

現在使用できる，未使用のキャッシュデータファイルの数が返却されます。ただし，EADSサーバによって使用予約済みのファイル数は含まれません。

現在書き込み中のキャッシュデータファイルが，書き込みできる最後のキャッシュデータファイルの場合は，0が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(f)　注意事項

このメソッドの戻り値で，キャッシュデータファイルに十分な未使用ファイル数を確認できた場合でも，EADSサーバ間でデータの配置状態の違いがあるため，同じレンジを扱うほかのEADSサーバ上では未使用ファイル数が異なることがあります。

コンパクションを十分に実行することで，ほかのEADSサーバの未使用ファイル数とほぼ一致させることが期待できます。

18.2.8　Storeインタフェース

(1)　説明

ユーザファンクションの実行時にデータを操作するインタフェースです。

(2)　インタフェース名

com.hitachi.software.xeads.func.store.Store

(3)　メソッド一覧

Storeインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

createKey()

キャッシュ内で操作可能なkeyを示すインスタンスを生成します。

createValue()

指定したvalueをシリアライズして，キャッシュ内で操作可能なvalueインスタンスを生成します。

createGroup()

キャッシュ内で操作可能なグループを示すインスタンスを生成します。

【非推奨】getGroup()

【非推奨】ユーザファンクションの実行時に，EADSクライアントで指定したグループを操作するためのインスタンスを取得します。

【非推奨】getGroup()（グループ名指定）

【非推奨】指定したグループを操作するためのインスタンスを取得します。

containsKey()（Keyインタフェース指定）

指定したkeyに関連づけられたvalueが，キャッシュに格納されているかどうかを取得します。

【非推奨】containsKey()（文字列指定）

【非推奨】指定したkeyに関連づけられたvalueが，キャッシュに格納されているかどうかを取得します。

put()

valueをkeyに関連づけて格納します。

create()

新規にkeyを格納する場合だけ，valueをkeyに関連づけて格納します。

update()

格納済みのvalueを指定したvalueに更新します。

replace()

指定したkeyに関連づけられているvalueを，条件として指定したvalue（comparativeValue）と比較します。valueが一致している場合だけ，valueを更新します。

get()

指定したkeyに関連づけられたvalueを取得します。

remove()

指定したkey，およびkeyに関連づけられたvalueを削除します。

getLastUpdateTime()

指定したkeyに関連づけられたvalueの最終更新時刻を取得します。

getKeyCount()

キャッシュ内に格納されている，すべてのkeyの数を取得します。

getGroupCount()

キャッシュ内に格納されたkeyが属するグループのうち，最上位階層のグループ数を取得します。

getGroupNames()

キャッシュ内に格納されたkeyが属するグループのうち，最上位階層のグループ名の一覧を取得します。

グループ名の一覧は，ASCIIコードの昇順になります。

【非推奨】getGroupNameSet()

【非推奨】キャッシュ内の最上位階層のグループ名の一覧をASCIIコードの昇順で取得します。

getEHeapUsageSize()（Keyインタフェース指定）

valueを格納したことで発生したExplicitヒープの使用量（単位：バイト）を取得します。

getEHeapUsageSize()（Groupインタフェース指定）

グループに属するkeyがvalueを格納するために使用しているExplicitヒープの使用量（単位：バイト）を取得します。

getDiskUsageSize()（Keyインタフェース指定）

valueを格納したことで発生したディスクの使用量（単位：バイト）を取得します。

getDiskUsageSize()（Groupインタフェース指定）

グループに属するkeyがvalueを格納するために使用しているディスクの使用量（単位：バイト）を取得します。

calcEHeapUsageSize()

valueを格納した場合に発生するExplicitヒープの使用量（単位：バイト）を計算します。

calcDiskUsageSize()

valueを格納した場合に発生するディスクの使用量（単位：バイト）を計算します。

(4)　createKey()

(a)　機能

キャッシュ内で操作可能なkeyを示すインスタンスを生成します。

(b)　形式

public Key createKey(String key)
              throws EADsStoreException

(c)　パラメータ

key

生成するインスタンスで示されたkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

なお，Storeインタフェースによる操作の対象外となるkeyを指定した場合は不正となります。

(d)　戻り値

Keyインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(5)　createValue()

(a)　機能

指定したvalueをシリアライズして，キャッシュ内で操作可能なvalueインスタンスを生成します。

(b)　形式

public Value createValue(Object value)
                  throws EADsStoreException

(c)　パラメータ

value

生成するインスタンスで示されたvalueを指定します。

指定できるデータについては，「15.2.2(3)　valueとして指定できるデータ」を参照してください。

次の場合は不正となります。

nullの場合

シリアライズできないオブジェクトの場合

(d)　戻り値

Valueインタフェースを実装しているインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(6)　createGroup()

(a)　機能

キャッシュ内で操作可能なグループを示すインスタンスを生成します。

(b)　形式

public Group createGroup(String groupName)
                  throws EADsStoreException

(c)　パラメータ

groupName

生成するインスタンスで示されたグループのグループ名を指定します。

指定できるデータについては，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

なお，Storeインタフェースによる操作の対象外となるグループ名を指定した場合は不正となります。

(d)　戻り値

指定したグループにアクセスするためのインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(7)　【非推奨】getGroup()

参考

このメソッドは非推奨です。このメソッドの代わりにClientInfoインタフェースのgetKeyOrGroupName()，およびStoreインタフェースのcreateGroup()を使用してください。

(a)　機能

ユーザファンクションの実行時に，EADSクライアントで指定したグループを操作するためのインスタンスを取得します。

(b)　形式

public Group getGroup()

(c)　戻り値

ユーザファンクションの実行時に，EADSクライアントで指定したグループを操作するためのインスタンスが返却されます。

EADSクライアントでグループを指定しなかった場合はnullが返却されます。

(8)　【非推奨】getGroup()（グループ名指定）

参考

このメソッドは非推奨です。このメソッドの代わりに，StoreインタフェースのcreateGroup()を使用してください。

(a)　機能

指定したグループを操作するためのインスタンスを取得します。

(b)　形式

public Group getGroup(String groupName)
               throws EADsStoreException

(c)　パラメータ

groupName

グループ名を指定します。

指定できるデータについては，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

次の場合は不正となります。

Storeインタフェースによる操作の対象外となるグループ名を指定した場合

(d)　戻り値

指定したグループを操作するためのインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(9)　containsKey()（Keyインタフェース指定）

(a)　機能

指定したkeyに関連づけられたvalueが，キャッシュに格納されているかどうかを取得します。

(b)　形式

public boolean containsKey(Key key)
                    throws EADsStoreException

(c)　パラメータ

key

valueに関連づけられたKeyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

Storeインタフェースによる操作の対象外となるkeyの場合

(d)　戻り値

指定したkeyに関連づけられたvalueが，キャッシュに格納されているかどうかが返却されます。

true

valueがキャッシュに格納されています。

false

valueがキャッシュに格納されていません。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(10)　【非推奨】containsKey()（文字列指定）

参考

このメソッドは非推奨です。このメソッドの代わりに，StoreインタフェースのcontainsKey()（Keyインタフェース指定）を使用してください。

(a)　機能

指定したkeyに関連づけられたvalueが，キャッシュに格納されているかどうかを取得します。

(b)　形式

public boolean containsKey(String key)
                   throws EADsStoreException

(c)　パラメータ

key

確認対象のkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

なお，Storeインタフェースによる操作の対象外となるkeyを指定した場合は不正となります。

(d)　戻り値

指定したkeyに関連づけられたvalueが，キャッシュに格納されているかどうかが返却されます。

true

valueがキャッシュに格納されています。

false

valueがキャッシュに格納されていません。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(11)　put()

(a)　機能

valueをkeyに関連づけて格納します。

すでにvalueが格納されている場合でも，指定したvalueで更新されます。

データ自動削除機能を使用している場合，key数がしきい値の上限に達しているときは，データの削除ポリシーに従ってデータを削除してから，valueをkeyに関連付けて格納します。既存のデータを更新する場合もデータは削除されます。

データ自動削除機能でデータの削除に失敗した場合，valueの格納を実行しないでremoveが失敗したときの例外が返却されます。

(b)　形式

public void put(Key key, Value value)
         throws EADsStoreException

(c)　パラメータ

key

valueに関連づけるKeyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

Storeインタフェースによる操作の対象外となるkeyの場合

value

格納するValueインタフェースのvalueを指定します。

次の場合は不正となります。

nullの場合

不正なValueインタフェースのオブジェクトの場合

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(12)　create()

(a)　機能

新規にkeyを格納する場合だけ，valueをkeyに関連づけて格納します。

すでにvalueが格納されている場合は，EADsStoreExceptionが返却されます。

データ自動削除機能を使用している場合，key数がしきい値の上限に達しているときは，データの削除ポリシーに従ってデータを削除してから，valueをkeyに関連付けて格納します。データの削除はすでにvalueがある場合も実行されます。

データ自動削除機能でデータの削除に失敗した場合，valueの格納を実行しないでremoveが失敗したときの例外が返却されます。

(b)　形式

public void create(Key key, Value value)
            throws EADsStoreException

(c)　パラメータ

key

valueに関連づけるKeyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

Storeインタフェースによる操作の対象外となるkeyの場合

value

格納するvalueを指定します。

次の場合は不正となります。

nullの場合

不正なValueインタフェースのオブジェクトの場合

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(13)　update()

(a)　機能

指定したkeyがすでに格納されている場合だけ，valueをkeyに関連づけて格納します（valueを更新します）。

valueが格納されていない場合は，EADsStoreExceptionが返却されます。

(b)　形式

public void update(Key key, Value value)
            throws EADsStoreException

(c)　パラメータ

key

格納するvalueに関連づけられたKeyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

Storeインタフェースによる操作の対象外となるkeyの場合

value

格納するValueインタフェースのvalueを指定します。

次の場合は不正となります。

nullの場合

不正なValueインタフェースのオブジェクトの場合

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(14)　replace()

(a)　機能

指定したkeyに関連づけられているvalueを，条件として指定したvalue（comparativeValue）と比較します。valueが一致している場合だけ，valueを更新します。

次の場合は，EADsStoreExceptionが返却されます。

valueが格納されているが，条件として指定したvalue（comparativeValue）と一致しない場合

valueが格納されていない場合

(b)　形式

public void replace(Key key, Value value, Value comparativeValue)
             throws EADsStoreException

(c)　パラメータ

key

格納するvalueに関連づけられたKeyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

Storeインタフェースによる操作の対象外となるkeyの場合

value

格納するValueインタフェースのvalueを指定します。

次の場合は不正となります。

nullの場合

不正なValueインタフェースのオブジェクトの場合

comparativeValue

比較するValueインタフェースのvalueを指定します。

次の場合は不正となります。

nullの場合

不正なValueインタフェースのオブジェクトの場合

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(15)　get()

(a)　機能

指定したkeyに関連づけられたvalueを取得します。

(b)　形式

public Value get(Key key)
          throws EADsStoreException

(c)　パラメータ

key

取得するvalueに関連づけられた，Keyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

Storeインタフェースによる操作の対象外となるkeyの場合

(d)　戻り値

指定したkeyに関連づけられたvalueが返却されます。

指定したkeyに何も関連づけられていなかった場合は，nullが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(16)　remove()

(a)　機能

指定したkey，およびkeyに関連づけられたvalueを削除します。

(b)　形式

public void remove(Key key)
            throws EADsStoreException

(c)　パラメータ

key

削除するvalueに関連づけられた，Keyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

Storeインタフェースによる操作の対象外となるkeyの場合

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(17)　getLastUpdateTime()

(a)　機能

指定したkeyに関連づけられたvalueの最終更新時刻を取得します。

(b)　形式

public long getLastUpdateTime(Key key)
                       throws EADsStoreException

(c)　パラメータ

key

valueに関連づけられたKeyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

Storeインタフェースによる操作の対象外となるkeyの場合

(d)　戻り値

データの最終更新時刻（1970/1/1 00:00:00（UTC）からの通算ミリ秒）が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(18)　getKeyCount()

(a)　機能

キャッシュ内に格納されている，すべてのkeyの数を取得します。

keyとvalueは1対1で対応しているため，取得したkeyの数は，キャッシュ内に格納されているvalueの数に相当します。

(b)　形式

public int getKeyCount()
                throws EADsStoreException

(c)　戻り値

キャッシュ内に格納されている，すべてのkeyの数が返却されます。

(d)　発生する例外

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(19)　getGroupCount()

(a)　機能

キャッシュ内に格納されたkeyが属するグループのうち，最上位階層のグループ数を取得します。

(b)　形式

public int getGroupCount()
                  throws EADsStoreException

(c)　戻り値

キャッシュ内に格納されたkeyが属するグループのうち，最上位階層のグループ数が返却されます。

(d)　発生する例外

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(20)　getGroupNames()

(a)　機能

キャッシュ内に格納されたkeyが属するグループのうち，最上位階層のグループ名の一覧を取得します。

グループ名の一覧は，ASCIIコードの昇順になります。

(b)　形式

public String[] getGroupNames()
                       throws EADsStoreException

(c)　戻り値

キャッシュ内に格納されたkeyが属するグループのうち，最上位階層のグループ名の一覧が返却されます。

(d)　発生する例外

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(21)　【非推奨】getGroupNameSet()

参考

このメソッドは非推奨です。このメソッドの代わりに，StoreインタフェースのgetGroupNames()を使用してください。

(a)　機能

キャッシュ内の最上位階層のグループ名の一覧をASCIIコードの昇順で取得します。

(b)　形式

public java.util.Set<String> getGroupNameSet()
                            throws EADsStoreException

(c)　戻り値

キャッシュ内の最上位階層のグループ名の一覧（ASCIIコードの昇順）が返却されます。

(d)　発生する例外

EADsStoreException（予期しないエラー）

(22)　getEHeapUsageSize()（Keyインタフェース指定）

(a)　機能

valueを格納したことで発生したExplicitヒープの使用量（単位：バイト）を取得します。

(b)　形式

public long getEHeapUsageSize(Key key)
                       throws EADsStoreException

(c)　パラメータ

key

valueに関連づけられたKeyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

Storeインタフェースによる操作の対象外となるkeyの場合

(d)　戻り値

valueを格納したことで発生したExplicitヒープの使用量が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(23)　getEHeapUsageSize()（Groupインタフェース指定）

(a)　機能

グループに属するkeyがvalueを格納するために使用しているExplicitヒープの使用量（単位：バイト）を取得します。

(b)　形式

public long getEHeapUsageSize(Group group)
                       throws EADsStoreException

(c)　パラメータ

group

keyが属するGroupインタフェースのグループ名を指定します。

次の場合は不正となります。

nullの場合

不正なGroupインタフェースのオブジェクトの場合

Storeインタフェースによる操作の対象外となるkeyの場合

(d)　戻り値

グループに属するkeyがvalueを格納するために使用しているExplicitヒープの使用量が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(24)　getDiskUsageSize()（Keyインタフェース指定）

(a)　機能

valueを格納したことで発生したディスクの使用量（単位：バイト）を取得します。

(b)　形式

public long getDiskUsageSize(Key key)
                      throws EADsStoreException

(c)　パラメータ

key

valueに関連づけられたKeyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

Storeインタフェースによる操作の対象外となるkeyの場合

(d)　戻り値

valueを格納したことで発生したディスクの使用量が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(25)　getDiskUsageSize()（Groupインタフェース指定）

(a)　機能

グループに属するkeyがvalueを格納するために使用しているディスクの使用量（単位：バイト）を取得します。

(b)　形式

public long getEHeapUsageSize(Group group)
                       throws EADsStoreException

(c)　パラメータ

group

keyが属するGroupインタフェースのグループ名を指定します。

次の場合は不正となります。

nullの場合

不正なGroupインタフェースのオブジェクトの場合

Storeインタフェースによる操作の対象外となるkeyの場合

(d)　戻り値

グループに属するkeyがvalueを格納するために使用しているディスクの使用量が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(26)　calcEHeapUsageSize()

(a)　機能

valueを格納した場合に発生するExplicitヒープの使用量（単位：バイト）を計算します。

(b)　形式

public long calcEHeapUsageSize(Value value)
                        throws EADsStoreException

(c)　パラメータ

value

格納したValueインタフェースのvalueを指定します。

次の場合は不正となります。

nullの場合

不正なValueインタフェースのオブジェクトの場合

(d)　戻り値

valueを格納した場合に発生するExplicitヒープの使用量が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(27)　calcDiskUsageSize()

(a)　機能

valueを格納した場合に発生するディスクの使用量（単位：バイト）を計算します。

(b)　形式

public long calcDiskUsageSize(Key key, Value value)
                              throws EADsStoreException

(c)　パラメータ

key

valueに関連づけられたKeyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なValueインタフェースのオブジェクトの場合

value

格納したValueインタフェースのvalueを指定します。

次の場合は不正となります。

nullの場合

不正なValueインタフェースのオブジェクトの場合

(d)　戻り値

valueを格納した場合に発生するディスクの使用量が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

18.2.9　Groupインタフェース

(1)　説明

ユーザファンクションを実行中のEADSサーバに属する，グループを操作するためのインタフェースです。

指定したグループに属さないkeyは操作できません。

(2)　インタフェース名

com.hitachi.software.xeads.func.store.Group

(3)　メソッド一覧

Groupインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

toString()

グループ名を取得します。

equals()

指定したオブジェクトが同一のグループを示すGroupインスタンスかどうかを判定します。

getPosition()

グループに対応するポジション（ハッシュ値）を取得します。

createKey()

指定したグループに属するkeyを生成します。

createGroup()

指定したグループに属する直下の階層のグループを生成します。

firstKey()

指定したグループに属する格納済みのkeyのうち，ASCIIコード順で先頭となるkeyを取得します。

lastKey()

指定したグループに属する格納済みのkeyのうち，ASCIIコード順で末尾となるkeyを取得します。

keyIterator()

指定したグループに属するkeyに，ASCIIコードの昇順でアクセスする反復子を取得します。

反復子の開始位置は，グループの先頭のkeyとなります。

keyIterator()（Keyインタフェース指定）

指定したグループに属するkeyに，ASCIIコードの昇順でアクセスする反復子を取得します。

反復子の開始位置は，グループに属するkeyのうち，ASCIIコードの昇順で，指定したkeyの次に位置するkeyとなります。

descendingKeyIterator()

指定したグループに属するkeyに，ASCIIコードの降順でアクセスする反復子を取得します。

反復子の開始位置は，グループの末尾のkeyとなります。

descendingKeyIterator()（Keyインタフェース指定）

指定したグループに属するkeyに，ASCIIコードの降順でアクセスする反復子を取得します。

反復子の開始位置は，グループに属するkeyのうち，ASCIIコードの降順で，指定したkeyの次に位置するkeyとなります。

【非推奨】higherKeyIterator()

【非推奨】指定したグループに属するkeyに，ASCIIコードの昇順でアクセスする反復子を取得します。

反復子の開始位置は，ASCIIコードの昇順で，指定されたkeyの次に位置するkeyとなります。

【非推奨】lowerDescendingKeyIterator()

【非推奨】指定したグループに属するkeyに，ASCIIコードの降順でアクセスする反復子を取得します。

反復子の開始位置は，ASCIIコードの降順で，指定されたkeyの次に位置するkeyとなります。

【非推奨】put()（文字列指定）

【非推奨】valueをkeyに関連づけて格納します。

【非推奨】put()（Keyインタフェース指定）

【非推奨】valueをkeyに関連づけて格納します。

【非推奨】create()

【非推奨】新規にkeyを格納する場合だけ，valueをkeyに関連づけて格納します。

【非推奨】update()（文字列指定）

【非推奨】指定したkeyがすでに格納されている場合だけ，valueをkeyに関連づけて格納します（valueを更新します）。

【非推奨】update()（Keyインタフェース指定）

【非推奨】指定したkeyがすでに格納されている場合だけ，valueをkeyに関連づけて格納します（valueを更新します）。

【非推奨】replace()（文字列指定）

【非推奨】指定したkeyに関連づけられているvalueを，条件として指定したvalue（comparativeValue）と比較します。valueが一致している場合だけ，valueをkeyに関連づけて格納します（valueを置換します）。

【非推奨】replace()（Keyインタフェース指定）

【非推奨】指定したkeyに関連づけられているvalueを，条件として指定したvalue（comparativeValue）と比較します。valueが一致している場合だけ，valueをkeyに関連づけて格納します（valueを置換します）。

【非推奨】get()（文字列指定）

【非推奨】指定したkeyに関連づけられたvalueを取得します。

【非推奨】get()（Keyインタフェース指定）

【非推奨】指定したkeyに関連づけられたvalueを取得します。

【非推奨】remove()（文字列指定）

【非推奨】指定したkey，およびkeyに関連づけられたvalueを削除します。

【非推奨】remove()（Keyインタフェース指定）

【非推奨】指定したkey，およびkeyに関連づけられたvalueを削除します。

【非推奨】getLastUpdateTime()（文字列指定）

【非推奨】指定したkeyに関連づけられたvalueの最終更新時刻を取得します。

【非推奨】getLastUpdateTime()（Keyインタフェース指定）

【非推奨】指定したkeyに関連づけられたvalueの最終更新時刻を取得します。

getKeyCount()

指定したグループに属するkeyの数を取得します。

getGroupCount()

直下の階層のグループ数を取得します。

getGroupNames()

直下の階層のグループ名の一覧を取得します。

グループ名の一覧は，ASCIIコードの昇順になります。

getGroupLayerNames()

直下の階層のグループ階層名の一覧を取得します。

グループ階層名の一覧は，ASCIIコードの昇順になります。

【非推奨】getGroupNameSet()

【非推奨】グループ名の一覧をASCIIコードの昇順で取得します。

【非推奨】getValueUsageSize()（文字列指定）

【非推奨】指定したkeyに関連づけられたvalueのメモリ使用量を取得します。

【非推奨】getValueUsageSize()（Keyインタフェース指定）

【非推奨】指定したkeyに関連づけられたvalueのメモリ使用量を取得します。

【非推奨】getValueUsageSize()

【非推奨】下位のグループも含めて，グループに属する全valueのメモリ使用量の合計を取得します。

(4)　toString()

(a)　機能

グループ名を取得します。

(b)　形式

public String toString()

(c)　戻り値

グループ名が返却されます。

(5)　equals()

(a)　機能

指定したオブジェクトが同一のグループを示すGroupインスタンスかどうかを判定します。

(b)　形式

public boolean equals(Object obj)

(c)　パラメータ

obj

比較対象のオブジェクトを指定します。

(d)　戻り値

true

指定したオブジェクトは，同一のグループを示すGroupインスタンスです。

false

指定したオブジェクトは，同一のグループを示すGroupインスタンスではありません。

(6)　getPosition()

(a)　機能

グループに対応するポジション（ハッシュ値）を取得します。

(b)　形式

public int getPosition()
                throws EADsStoreException

(c)　戻り値

グループに対応するポジション（ハッシュ値）が返却されます。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(7)　createKey()

(a)　機能

指定したグループに属するkeyを生成します。

(b)　形式

public Key createKey(String element)
              throws EADsStoreException

(c)　パラメータ

element

グループ名に連結する要素名を指定します。

次の場合は不正となります。

要素名を連結したあとのkeyが，「15.2.2(1)　keyとして指定できるデータ」に示す条件を満たさない場合

コロン（:）を含む場合

(d)　戻り値

Keyインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(8)　createGroup()

(a)　機能

指定したグループの直下の階層のグループを生成します。

(b)　形式

public Group createGroup(String groupLayerName)
                  throws EADsStoreException

(c)　パラメータ

groupLayerName

グループの階層名を指定します。

次の場合は不正となります。

グループの階層名を連結したあとのグループ名が，「15.2.2(1)　keyとして指定できるデータ」に示す条件を満たさない場合

コロン（:）を含む場合

(d)　戻り値

指定したグループにアクセスするためのインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(9)　firstKey()

(a)　機能

指定したグループに属する格納済みのkeyのうち，ASCIIコード順で先頭となるkeyを取得します。

(b)　形式

public Key firstKey()
             throws EADsStoreException

(c)　戻り値

指定したグループに属する格納済みのkeyのうち，ASCIIコード順で先頭となるkeyが返却されます。

指定したグループに属するkeyが存在しない場合は，nullが返却されます。

(d)　発生する例外

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(10)　lastKey()

(a)　機能

指定したグループに属する格納済みのkeyのうち，ASCIIコード順で末尾となるkeyを取得します。

(b)　形式

public Key lastKey()
            throws EADsStoreException

(c)　戻り値

指定したグループに属する格納済みのkeyのうち，ASCIIコード順で末尾となるkeyが返却されます。

指定したグループに属するkeyが存在しない場合は，nullが返却されます。

(d)　発生する例外

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(11)　keyIterator()

(a)　機能

指定したグループに属するkeyに，ASCIIコードの昇順でアクセスする反復子を取得します。

反復子の開始位置は，グループの先頭のkeyとなります。

(b)　形式

public java.util.Iterator<Key> keyIterator()
                                    throws EADsStoreException

(c)　戻り値

グループに属するkeyに，ASCIIコードの昇順でアクセスする反復子が返却されます。

(d)　発生する例外

EADsStoreException（予期しないエラー）

(e)　注意事項

タイミングによっては，反復子で取得したkeyに関連づけられたvalueが，削除されている場合があります。

(12)　keyIterator()（Keyインタフェース指定）

(a)　機能

指定したグループに属するkeyに，ASCIIコードの昇順でアクセスする反復子を取得します。

反復子の開始位置は，グループに属するkeyのうち，ASCIIコードの昇順で，指定したkeyの次に位置するkeyとなります。

(b)　形式

public java.util.Iterator<Key> keyIterator(Key previousKey)
                                    throws EADsStoreException

(c)　パラメータ

previousKey

反復子の開始位置を示す直前のkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

(d)　戻り値

指定したグループに属するkeyに，ASCIIコードの昇順でアクセスする反復子が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(f)　注意事項

タイミングによっては，反復子で取得したkeyに関連づけられたvalueが，削除されていることがあります。

(13)　descendingKeyIterator()

(a)　機能

指定したグループに属するkeyに，ASCIIコードの降順でアクセスする反復子を取得します。

反復子の開始位置は，グループの末尾のkeyとなります。

(b)　形式

public java.util.Iterator<Key> descendingKeyIterator()
                                              throws EADsStoreException

(c)　戻り値

グループに属するkeyに，ASCIIコードの降順でアクセスする反復子が返却されます。

(d)　発生する例外

EADsStoreException（予期しないエラー）

(e)　注意事項

タイミングによっては，反復子で取得したkeyに関連づけられたvalueが，削除されている場合があります。

(14)　descendingKeyIterator()（Keyインタフェース指定）

(a)　機能

指定したグループに属するkeyに，ASCIIコードの降順でアクセスする反復子を取得します。

反復子の開始位置は，グループに属するkeyのうち，ASCIIコードの降順で，指定したkeyの次に位置するkeyとなります。

(b)　形式

public java.util.Iterator<Key> descendingKeyIterator(Key previousKey)
                                              throws EADsStoreException

(c)　パラメータ

previousKey

反復子の開始位置を示す直前のkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

(d)　戻り値

指定したグループに属するkeyに，ASCIIコードの降順でアクセスする反復子が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(f)　注意事項

タイミングによっては，反復子で取得したkeyに関連づけられたvalueが，削除されている場合があります。

(15)　【非推奨】higherKeyIterator()

参考

このメソッドは非推奨です。このメソッドの代わりに，keyIterator()（Keyインタフェース指定）を使用してください。

(a)　機能

指定したグループに属するkeyに，ASCIIコードの昇順でアクセスする反復子を取得します。

反復子の開始位置は，ASCIIコードの昇順で，指定されたkeyの次に位置するkeyとなります。

(b)　形式

public java.util.Iterator<Key> higherKeyIterator(java.lang.String key)
                                          throws EADsStoreException

(c)　パラメータ

key

keyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(d)　戻り値

グループに属するkeyに，ASCIIコードの昇順でアクセスする反復子が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(f)　注意事項

タイミングによっては，反復子で取得したkeyに関連づけられたvalueが，削除されている場合があります。

(16)　【非推奨】lowerDescendingKeyIterator()

参考

このメソッドは非推奨です。このメソッドの代わりに，descendingKeyIterator()（Keyインタフェース指定）を使用してください。

(a)　機能

指定したグループに属するkeyに，ASCIIコードの降順でアクセスする反復子を取得します。

反復子の開始位置は，ASCIIコードの降順で，指定されたkeyの次に位置するkeyとなります。

(b)　形式

public java.util.Iterator<Key> lowerDescendingKeyIterator(java.lang.String key)
                                         throws EADsStoreException

(c)　パラメータ

key

keyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(d)　戻り値

グループに属するkeyに，ASCIIコードの降順でアクセスする反復子が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(f)　注意事項

タイミングによっては，反復子で取得したkeyに関連づけられたvalueが，削除されている場合があります。

(17)　【非推奨】put()（文字列指定）

参考

このメソッドは非推奨です。このメソッドの代わりに，Storeインタフェースのput()を使用してください。

(a)　機能

valueをkeyに関連づけて格納します。

valueの格納で問題が発生した場合は，EADsStoreExceptionが返却されます。

データ自動削除機能を使用している場合，key数がしきい値の上限に達しているときは，データの削除ポリシーに従ってデータを削除してから，valueをkeyに関連付けて格納します。既存のデータを更新する場合もデータは削除されます。

データ自動削除機能でデータの削除に失敗した場合，valueの格納を実行しないでremoveが失敗したときの例外が返却されます。

(b)　形式

public void put(java.lang.String key,
                java.lang.Object value)
         throws EADsStoreException

(c)　パラメータ

key

valueに関連づけるkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

value

格納するvalueを指定します。

指定できるデータについては，「15.2.2(3)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(18)　【非推奨】put()（Keyインタフェース指定）

参考

このメソッドは非推奨です。このメソッドの代わりに，Storeインタフェースのput()を使用してください。

(a)　機能

valueをkeyに関連づけて格納します。

valueの格納で問題が発生した場合は，EADsStoreExceptionが返却されます。

データ自動削除機能を使用している場合，key数がしきい値の上限に達しているときは，データの削除ポリシーに従ってデータを削除してから，valueをkeyに関連付けて格納します。既存のデータを更新する場合もデータは削除されます。

データ自動削除機能でデータの削除に失敗した場合，valueの格納を実行しないでremoveが失敗したときの例外が返却されます。

(b)　形式

public void put(Key key,
                java.lang.Object value)
         throws EADsStoreException

(c)　パラメータ

key

valueに関連づけるKeyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

value

格納するvalueを指定します。

指定できるデータについては，「15.2.2(3)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(19)　【非推奨】create()

参考

このメソッドは非推奨です。このメソッドの代わりに，Storeインタフェースのcreate()を使用してください。

(a)　機能

新規にkeyを格納する場合だけ，valueをkeyに関連づけて格納します。

valueの格納で問題が発生した場合は，EADsStoreExceptionが返却されます。

データ自動削除機能を使用している場合，key数がしきい値の上限に達しているときは，データの削除ポリシーに従ってデータを削除してから，valueをkeyに関連付けて格納します。データの削除はすでにvalueがある場合も実行されます。

データ自動削除機能でデータの削除に失敗した場合，valueの格納を実行しないでremoveが失敗したときの例外が返却されます。

(b)　形式

public void create(java.lang.String key,
                   java.lang.Object value)
            throws EADsStoreException

(c)　パラメータ

key

valueに関連づけるkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

value

格納するvalueを指定します。

指定できるデータについては，「15.2.2(3)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(20)　【非推奨】update()（文字列指定）

参考

このメソッドは非推奨です。このメソッドの代わりに，Storeインタフェースのupdate()を使用してください。

(a)　機能

指定したkeyがすでに格納されている場合だけ，valueをkeyに関連づけて格納します（valueを更新します）。

valueの格納で問題が発生した場合は，EADsStoreExceptionが返却されます。

(b)　形式

public void update(java.lang.String key,
                   java.lang.Object value)
            throws EADsStoreException

(c)　パラメータ

key

valueに関連づけるkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

value

格納するvalueを指定します。

指定できるデータについては，「15.2.2(3)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(21)　【非推奨】update()（Keyインタフェース指定）

参考

このメソッドは非推奨です。このメソッドの代わりに，Storeインタフェースのupdate()を使用してください。

(a)　機能

指定したkeyがすでに格納されている場合だけ，valueをkeyに関連づけて格納します（valueを更新します）。

valueの格納で問題が発生した場合は，EADsStoreExceptionが返却されます。

(b)　形式

public void update(Key key,
                   java.lang.Object value)
            throws EADsStoreException

(c)　パラメータ

key

valueに関連づけるKeyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

value

格納するvalueを指定します。

指定できるデータについては，「15.2.2(3)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(22)　【非推奨】replace()（文字列指定）

参考

このメソッドは非推奨です。このメソッドの代わりに，Storeインタフェースのreplace()を使用してください。

(a)　機能

指定したkeyに関連づけられているvalueを，条件として指定したvalue（comparativeValue）と比較します。valueが一致している場合だけ，valueをkeyに関連づけて格納します（valueを置換します）。

valueの置き換えで問題が発生した場合は，EADsStoreExceptionが返却されます。

(b)　形式

public void replace(java.lang.String key,
                    java.lang.Object value,
                    java.lang.Object comparativeValue)
             throws EADsStoreException

(c)　パラメータ

key

置き換えるvalueに関連づけられたkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

value

格納するvalueを指定します。

指定できるデータについては，「15.2.2(3)　valueとして指定できるデータ」を参照してください。

comparativeValue

比較するvalueを指定します。

指定できるデータについては，「15.2.2(3)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(23)　【非推奨】replace()（Keyインタフェース指定）

参考

このメソッドは非推奨です。このメソッドの代わりに，Storeインタフェースのreplace()を使用してください。

(a)　機能

指定したkeyに関連づけられているvalueを，条件として指定したvalue（comparativeValue）と比較します。valueが一致している場合だけ，valueをkeyに関連づけて格納します（valueを置換します）。

valueの置き換えで問題が発生した場合は，EADsStoreExceptionが返却されます。

(b)　形式

public void replace(Key key,
                    java.lang.Object value,
                    java.lang.Object comparativeValue)
             throws EADsStoreException

(c)　パラメータ

key

置き換えるvalueに関連づけられたKeyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

value

格納するvalueを指定します。

指定できるデータについては，「15.2.2(3)　valueとして指定できるデータ」を参照してください。

comparativeValue

比較するvalueを指定します。

指定できるデータについては，「15.2.2(3)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(24)　【非推奨】get()（文字列指定）

参考

このメソッドは非推奨です。このメソッドの代わりに，Storeインタフェースのget()を使用してください。

(a)　機能

指定したkeyに関連づけられたvalueを取得します。

valueの取得で問題が発生した場合は，EADsStoreExceptionが返却されます。

(b)　形式

public java.lang.Object get(java.lang.String key)
                     throws EADsStoreException

(c)　パラメータ

key

取得するvalueに関連づけられたkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(d)　戻り値

keyに関連づけられたvalueが返却されます。

指定したkeyに何も関連づけられていなかった場合は，nullが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(25)　【非推奨】get()（Keyインタフェース指定）

参考

このメソッドは非推奨です。このメソッドの代わりに，Storeインタフェースのget()を使用してください。

(a)　機能

指定したkeyに関連づけられたvalueを取得します。

valueの取得で問題が発生した場合は，EADsStoreExceptionが返却されます。

(b)　形式

public java.lang.Object get(Key key)
                     throws EADsStoreException

(c)　パラメータ

key

取得するvalueに関連づけられたKeyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

(d)　戻り値

keyに関連づけられたvalueが返却されます。

指定したkeyに何も関連づけられていなかった場合は，nullが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(26)　【非推奨】remove()（文字列指定）

参考

このメソッドは非推奨です。このメソッドの代わりに，Storeインタフェースのremove()を使用してください。

(a)　機能

指定したkey，およびkeyに関連づけられたvalueを削除します。

valueの削除で問題が発生した場合は，EADsStoreExceptionが返却されます。

(b)　形式

public void remove(java.lang.String key)
            throws EADsStoreException

(c)　パラメータ

key

削除するvalueに関連づけられたkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(27)　【非推奨】remove()（Keyインタフェース指定）

参考

このメソッドは非推奨です。このメソッドの代わりに，Storeインタフェースのremove()を使用してください。

(a)　機能

指定したkey，およびkeyに関連づけられたvalueを削除します。

valueの削除で問題が発生した場合は，EADsStoreExceptionが返却されます。

(b)　形式

public void remove(Key key)
            throws EADsStoreException

(c)　パラメータ

key

削除するvalueに関連づけられたKeyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(28)　【非推奨】getLastUpdateTime()（文字列指定）

参考

このメソッドは非推奨です。このメソッドの代わりに，StoreインタフェースのgetLastUpdateTime()を使用してください。

(a)　機能

指定したkeyに関連づけられたvalueの最終更新時刻を取得します。

(b)　形式

public long getLastUpdateTime(String key)
                       throws EADsStoreException

(c)　パラメータ

key

keyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(d)　戻り値

データの最終更新時刻（1970年1月1日00:00:00からの通算ミリ秒）が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(29)　【非推奨】getLastUpdateTime()（Keyインタフェース指定）

参考

このメソッドは非推奨です。このメソッドの代わりに，StoreインタフェースのgetLastUpdateTime()を使用してください。

(a)　機能

指定したkeyに関連づけられたvalueの最終更新時刻を取得します。

(b)　形式

public long getLastUpdateTime(Key key)
                       throws EADsStoreException

(c)　パラメータ

key

valueに関連づけられたKeyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

(d)　戻り値

データの最終更新時刻（1970年1月1日00:00:00からの通算ミリ秒）が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(30)　getKeyCount()

(a)　機能

このグループに属するkeyの数を取得します。

(b)　形式

public int getKeyCount()
                throws EADsStoreException

(c)　戻り値

このグループに属するkeyの数が返却されます。

(d)　発生する例外

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(31)　getGroupCount()

(a)　機能

このグループの直下の階層のグループ数を取得します。

(b)　形式

public int getGroupCount()
                  throws EADsStoreException

(c)　戻り値

このグループの直下の階層のグループ数が返却されます。

(d)　発生する例外

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(32)　getGroupNames()

(a)　機能

直下の階層のグループ名の一覧を取得します。

グループ名の一覧は，ASCIIコードの昇順になります。

(b)　形式

public String[] getGroupNames()
                       throws EADsStoreException

(c)　戻り値

直下の階層のグループ名の一覧が返却されます。

(d)　発生する例外

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(33)　getGroupLayerNames()

(a)　機能

直下の階層のグループ階層名の一覧を取得します。

グループ階層名の一覧は，ASCIIコードの昇順になります。

(b)　形式

public String[] getGroupLayerNames()
                            throws EADsStoreException

(c)　戻り値

直下の階層のグループ階層名の一覧が返却されます。

(d)　発生する例外

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(34)　【非推奨】getGroupNameSet()

参考

このメソッドは非推奨です。このメソッドの代わりに，GroupインタフェースのgetGroupNames()を使用してください。

(a)　機能

グループ名の一覧をASCIIコードの昇順で取得します。

(b)　形式

public java.util.Set<String> getGroupNameSet()
                            throws EADsStoreException

(c)　戻り値

直下の階層のグループ名の一覧（ASCIIコードの昇順）が返却されます。

(d)　発生する例外

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(35)　【非推奨】getValueUsageSize()（文字列指定）

参考

このメソッドは非推奨です。このメソッドの代わりに，StoreインタフェースのgetEHeapUsageSize()（Keyインタフェース指定）を使用してください。

(a)　機能

指定したkeyに関連づけられたvalueのメモリ使用量を取得します。

(b)　形式

public long getValueUsageSize(String key)
                       throws EADsStoreException

(c)　パラメータ

key

keyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(d)　戻り値

指定したkeyに関連づけられたvalueのメモリ使用量（単位：バイト）が返却されます。

valueをメモリに格納しないキャッシュの場合は，0が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(36)　【非推奨】getValueUsageSize()（Keyインタフェース指定）

参考

このメソッドは非推奨です。このメソッドの代わりに，StoreインタフェースのgetEHeapUsageSize()（Keyインタフェース指定）を使用してください。

(a)　機能

指定したkeyに関連づけられたvalueのメモリ使用量を取得します。

(b)　形式

public long getValueUsageSize(Key key)
                       throws EADsStoreException

(c)　パラメータ

key

valueに関連づけられたKeyインタフェースのkeyを指定します。

次の場合は不正となります。

nullの場合

不正なKeyインタフェースのオブジェクトの場合

(d)　戻り値

指定したkeyに関連づけられたvalueのメモリ使用量（単位：バイト）が返却されます。

valueをメモリに格納しないキャッシュの場合は，0が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

(37)　【非推奨】getValueUsageSize()

参考

このメソッドは非推奨です。このメソッドの代わりに，StoreインタフェースのgetEHeapUsageSize()（Groupインタフェース指定）を使用してください。

(a)　機能

下位のグループも含めて，グループに属する全valueのメモリ使用量の合計を取得します。

(b)　形式

public long getValueUsageSize()
                       throws EADsStoreException

(c)　戻り値

グループに属する全valueのメモリ使用量（単位：バイト）の合計が返却されます。

valueをメモリに格納しないキャッシュの場合は，0が返却されます。

(d)　発生する例外

InternalServerException（EADSサーバの内部エラー）

EADsStoreException（予期しないエラー）

18.2.10　Keyインタフェース

(1)　説明

ユーザファンクションで使用できるAPI内で，keyを表現するインタフェースです。

(2)　インタフェース名

com.hitachi.software.xeads.func.store.Key

(3)　メソッド一覧

Keyインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

toString()

keyを取得します。

equals()

指定したオブジェクトが同一のkeyを示すKeyインスタンスかどうかを判定します。

getPosition()

keyに対応するポジション（ハッシュ値）を取得します。

(4)　toString()

(a)　機能

keyを取得します。

(b)　形式

public String toString()

(c)　戻り値

keyが返却されます。

(5)　equals()

(a)　機能

指定したオブジェクトが同一のkeyを示すKeyインスタンスかどうかを判定します。

(b)　形式

public boolean equals(Object obj)

(c)　パラメータ

obj

比較対象のオブジェクトを指定します。

(d)　戻り値

true

指定したオブジェクトは，同一のkeyを示すKeyインスタンスです。

false

指定したオブジェクトは，同一のkeyを示すKeyインスタンスではありません。

(6)　getPosition()

(a)　機能

keyに対応するポジション（ハッシュ値）を取得します。

(b)　形式

public int getPosition()
                throws EADsStoreException

(c)　戻り値

keyに対応するポジション（ハッシュ値）が返却されます。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

18.2.11　Valueインタフェース

(1)　説明

ユーザファンクションで使用できるAPI内で，keyに関連づけて格納されるvalueを表現するインタフェースです。

(2)　インタフェース名

com.hitachi.software.xeads.func.store.Value

(3)　メソッド一覧

Valueインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

toString()

String型のvalueを取得します。

equals()

指定したオブジェクトが同一のvalueを示すValueインスタンスかどうかを判定します。

getObject()

Object型のvalueを取得します。

size()

キャッシュに格納する際の内部形式である，シリアライズ後のvalueのサイズを取得します。

(4)　toString()

(a)　機能

String型のvalueを取得します。

ValueインタフェースのgetObject()で取得するObject型のvalueの，ObjectクラスのtoString()と同じ文字列を取得します。

(b)　形式

public String toString()

(c)　戻り値

String型のvalueが返却されます。

(d)　注意事項

ValueインタフェースのgetObject()がデシリアライズできないで失敗する場合は，ValueインスタンスのObjectクラスのtoString()と同じ戻り値が返却されます。

(5)　equals()

(a)　機能

指定したオブジェクトが同一のvalueを示すValueインスタンスかどうかを判定します。

(b)　形式

public boolean equals(Object obj)

(c)　パラメータ

obj

比較対象のオブジェクトを指定します。

(d)　戻り値

true

指定したオブジェクトは，同一のvalueを示すValueインスタンスです。

false

指定したオブジェクトは，同一のvalueを示すValueインスタンスではありません。

(e)　注意事項

同一のオブジェクトかどうかは，シリアライズ後のバイト配列が等しいかどうかで判定されます。

(6)　getObject()

(a)　機能

Object型のvalueを取得します。

(b)　形式

public Object getObject()
                 throws EADsStoreException

(c)　戻り値

Object型のvalueが返却されます。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(7)　size()

(a)　機能

キャッシュに格納する際の内部形式である，シリアライズ後のvalueのサイズを取得します。

(b)　形式

public int size()

(c)　戻り値

キャッシュに格納する際の内部形式である，シリアライズ後のvalueのサイズ（単位：バイト）が返却されます。

(d)　注意事項

このメソッドで返却されるサイズは，valueを格納する際にvalueだけが使用する領域のサイズです。

valueを格納する際は，value以外のデータも領域を使用する場合があります。そのため，valueの格納で使用される領域サイズを計算したい場合は，次のAPIを使用してください。

StoreインタフェースのcalcEHeapUsageSize()

StoreインタフェースのcalcDiskUsageSize()

18.2.12　UserLoggerインタフェース

(1)　説明

ユーザログのインタフェースです。

(2)　インタフェース名

com.hitachi.software.xeads.common.UserLogger

(3)　メソッド一覧

UserLoggerインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

log()（形式1）

メッセージID，およびメッセージテキストを出力します。

log()（形式2）

メッセージテキストだけを出力します。

putStackTrace()（形式1）

メッセージID，およびスタックトレースを出力します。

putStackTrace()（形式2）

スタックトレースだけを出力します。

(4)　log()（形式1）

(a)　機能

メッセージID，およびメッセージテキストを出力します。

(b)　形式

public void log(java.lang.String messageID,
                java.lang.String message)

(c)　パラメータ

messageID

メッセージIDを指定します。

半角21文字まで指定できます。

全角文字や制御文字を指定すると，フォーマットが乱れる原因となるため指定しないでください。

nullを指定した場合，空文字列が出力されます。

message

メッセージテキストを指定します。

制御文字を指定すると，フォーマットが乱れる原因となるため指定しないでください。

nullを指定した場合，空文字列が出力されます。

(5)　log()（形式2）

(a)　機能

メッセージテキストだけを出力します。メッセージIDには空文字列を出力します。

(b)　形式

public void log(java.lang.String message)

(c)　パラメータ

message

メッセージテキストを指定します。

制御文字を指定すると，フォーマットが乱れる原因となるため指定しないでください。

nullを指定した場合，空文字列が出力されます。

(6)　putStackTrace()（形式1）

(a)　機能

メッセージID，およびスタックトレースを出力します。

指定した例外の詳細メッセージと原因を出力します。

(b)　形式

public void putStackTrace(java.lang.String messageID,
                          Throwable cause)

(c)　パラメータ

messageID

メッセージIDを指定します。

半角21文字まで指定できます。

全角文字や制御文字を指定すると，フォーマットが乱れる原因となるため指定しないでください。

nullを指定した場合，空文字列が出力されます。

cause

例外オブジェクトを指定します。

nullを指定した場合，空文字列が出力されます。

(7)　putStackTrace()（形式2）

(a)　機能

スタックトレースだけを出力します。メッセージIDには空文字列を出力します。

指定した例外の詳細メッセージと原因を出力します。

(b)　形式

public void putStackTrace(Throwable cause)

(c)　パラメータ

cause

例外オブジェクトを指定します。

nullを指定した場合，空文字列が出力されます。

18.2.13　EADsStoreExceptionクラス

(1)　説明

データの操作に関連する処理が失敗した場合に返却される例外クラスです。

getErrorCode()によってエラーコードを取得し，エラーの内容を判別します。

(2)　継承関係

java.lang.Object
└java.lang.Throwable
    └java.lang.Exception
        └com.hitachi.software.xeads.func.store.EADsStoreException

(3)　形式

public class EADsStoreException
extends Exception

(4)　メソッド一覧

EADsStoreExceptionクラスが提供するメソッド一覧を次の表に示します。

メソッド名

説明

getErrorCode()

発生した例外のエラーコードを取得します。

(5)　getErrorCode()

(a)　機能

発生した例外のエラーコードを取得します。

(b)　形式

public int getErrorCode()

(c)　戻り値

戻り値としてエラーコードが返却されます。エラーコードとエラーの内容，発生要因を次の表に示します。

エラーコード

エラーコード定数

例外クラス

エラーの内容

発生要因

データを更新するAPIの処理状態※

1000

EAD_ERROR_UNEXPECTED

EADsStoreException

予期しないエラーが発生しました。

プログラム内で予期しないエラーが発生しました。

△

1010

EAD_ERROR_INVALID_PARAMETER

UserOperationException

指定されたパラメタが不正です。

APIの引数に不正なパラメタを指定しています。

×

1050

EAD_ERROR_NOT_SERIALIZABLE

UserOperationException

シリアライズ処理に失敗しました。

APIの引数にシリアライズできないオブジェクトを指定しています。

×

1060

EAD_ERROR_NOT_DESERIALIZABLE

UserOperationException

デシリアライズ処理に失敗しました。

EADSサーバから取得したオブジェクトはデシリアライズできませんでした。

次の要因が考えられます。

デシリアライズするために必要なオブジェクトを含むjarファイルのパスがjarファイルのマニフェストのClass-Path属性に記載されていない。

デシリアライズするために必要なオブジェクトを含むjarファイルが＜運用ディレクトリ＞/app/libディレクトリ下に配置されていない。

−

1130

EAD_ERROR_CACHE_NOT_CREATED

UserOperationException

作成していないキャッシュのキャッシュ名が指定されました。

作成していないキャッシュのキャッシュ名を指定しています。

−

1140

EAD_ERROR_CACHE_SETTING

UserOperationException

現在のキャッシュの設定では実行できないAPIが実行されました。

キャッシュから取得できない情報を取得するAPIを実行しました。

−

4000

EAD_ERROR_SERVER

InternalServerException

EADSサーバで，分類できない内部エラーが発生しました。

EADSサーバで内部エラーが発生しました。

通常，このエラーコードが返却されることはありません。次の原因でエラー要因を詳細化できなかった場合に，このエラーコードが返却されます。

非推奨となった古いバージョンのAPIを使用した。

予期しない問題によって，EADSサーバの内部エラーを分類できなかった。

△

4060

EAD_ERROR_SERVER_REPLACE_METHOD_NOT_MATCHED

InternalServerException

replace()実行時，すでに格納されているvalueがcomparativeValueと一致しなかったため，valueを格納できませんでした。

replace()で条件に指定したvalueとキャッシュ上のvalueが一致しませんでした。

×

4070

EAD_ERROR_SERVER_REPLACE_METHOD_KEY_NOT_EXIST

InternalServerException

replace()実行時，指定したkeyが存在しなかったため（keyに関連づけられたvalueが存在しなかったため），valueを格納できませんでした。

replace()で指定したkeyに関連づけられたvalueが存在しなかったため，valueの比較ができませんでした。

×

4080

EAD_ERROR_SERVER_CREATE_METHOD_KEY_EXIST

InternalServerException

create()実行時，すでに格納されているkeyが存在したため，valueを格納できませんでした。

create()で指定したkeyに関連づけられたvalueがすでに格納されています。

×

4090

EAD_ERROR_SERVER_UPDATE_METHOD_KEY_NOT_EXIST

InternalServerException

update()実行時，格納されているkeyが存在しなかったため，valueを格納できませんでした。

update()で指定したkeyに関連づけられたvalueが格納されていません。

×

4200

EAD_ERROR_SERVER_CACHE

InternalServerException

キャッシュに対する操作を実行できませんでした。

ユーザファンクションを実行中のEADSサーバで何らかの問題が発生しているため，キャッシュを操作できない状態になっています。操作を中止して，EADSサーバの状態を確認してください。

×

4220

EAD_ERROR_SERVER_CACHE_CLUSTER_NOT_AVAILABLE

InternalServerException

クラスタの状態がクラスタ動作不能のため，キャッシュに対する操作を実行できませんでした。

ほかのEADSサーバまたはネットワーク障害などの要因で，クラスタの状態がクラスタ動作不能になっているため，キャッシュを操作できませんでした。操作を中止して，クラスタを構成するすべてのEADSサーバの状態を確認してください。

×

4300

EAD_ERROR_SERVER_CACHE_BEFORE_REPLICATION

InternalServerException

キャッシュに対する操作中に内部エラーが発生しましたが，データの多重化は発生しませんでした。

キャッシュに対する操作中に，ユーザファンクションを実行中のEADSサーバで内部エラーが発生しました。データの多重化は発生していないため，ほかの正常なEADSサーバへの影響はありません。EADSサーバが縮退したあと，正常なEADSサーバ上で同じ操作から処理を再開できます。

×

4310

EAD_ERROR_SERVER_CACHE_AFTER_REPLICATION

InternalServerException

キャッシュに対する操作中にEADSサーバで内部エラーが発生し，データ更新処理が失敗しました。

キャッシュに対する操作中に，ユーザファンクションを実行中のEADSサーバで内部エラーが発生しました。データの多重化はすでに実行されているため，問題が発生したEADSサーバが縮退したあとに正常なサーバ上でデータが更新された状態から操作を再開できます。

△

4800

EAD_ERROR_SERVER_LIMIT_EXTERNAL_MEMORY

InternalServerException

データを格納するメモリの容量が不足しています。

データを格納するメモリ（Explicitヒープ）の容量が不足しているため，処理を実行できませんでした。

×

4810

EAD_ERROR_SERVER_LIMIT_CACHE_FILE

InternalServerException

データを格納するキャッシュファイルの容量が不足しています。

データを格納するキャッシュファイルの容量が不足しているため，処理を実行できませんでした。

×

4820

EAD_ERROR_SERVER_LIMIT_KV_COUNT

InternalServerException

格納できるkeyの数が上限に達しています。

格納できるkeyの数が上限に達しているため，処理を実行できませんでした。

×

4830

EAD_ERROR_SERVER_LIMIT_KEY_VALUE_LENGTH

InternalServerException

指定したkey，グループ名，またはvalueのサイズがクラスタに格納できる最大サイズを超えています。

指定したkey，グループ名，またはvalueのサイズがクラスタに格納できる最大サイズを超えているため，処理を実行できませんでした。

×

4840

EAD_ERROR_SERVER_LIMIT_EXTERNAL_MEMORY_TEMPORARILY

InternalServerException

データを格納するメモリの容量が一時的に不足しています。

リバランス処理中は，EADSサーバでデータを格納するメモリ（Explicitヒープ）の容量が一時的に減少します。そのため，処理を実行できませんでした。

リトライする場合は，1度ユーザファンクションの実行を終了して，EADSクライアントからユーザファンクションを再度実行してください。

×

4850

EAD_ERROR_SERVER_LIMIT_KV_COUNT_TEMPORARILY

InternalServerException

格納できるkeyの数が一時的に上限に達しています。

リバランス処理中は，EADSサーバに格納できるkeyの数の上限が一時的に減少します。そのため，処理を実行できませんでした。

リトライする場合は，1度ユーザファンクションの実行を終了して，EADSクライアントからユーザファンクションを再度実行してください。

×

注※

put()，remove()などのデータを更新するAPIの実行時にエラーコードが出力された場合に，データが更新されているかどうかを表しています。

記号の意味を次に示します。

△：データが更新されているかどうかは不明です。処理が完了したかどうか，確認してください。

×：データは更新されていません。

−：put()，remove()などのデータを更新するAPIの実行時に，このエラーコードは出力されません。

(d)　注意事項

非推奨のAPIを使用した場合，エラーコードが詳細に分類されないことがあります。

18.2.14　InternalServerExceptionクラス

(1)　説明

EADSサーバで内部エラーが発生した場合に返却されるEADsStoreExceptionのサブクラスです。

(2)　継承関係

java.lang.Object
└java.lang.Throwable
    └java.lang.Exception
        └com.hitachi.software.xeads.func.store.EADsStoreException
            └com.hitachi.software.xeads.func.store.InternalServerException

(3)　形式

public class InternalServerException
extends EADsStoreException

18.2.15　UserOperationExceptionクラス

(1)　説明

不正なユーザ操作によってエラーが発生した場合に返却されるEADsStoreExceptionのサブクラスです。

(2)　継承関係

java.lang.Object
└java.lang.Throwable
    └java.lang.Exception
        └com.hitachi.software.xeads.func.store.EADsStoreException
            └com.hitachi.software.xeads.func.store.UserOperationException

(3)　形式

public class UserOperationException
extends EADsStoreException

18.2.16　列挙型CacheType

(1)　説明

キャッシュタイプを表す列挙型です。キャッシュタイプについては，「2.3.1　キャッシュの種類（キャッシュタイプ）」を参照してください。

(2)　列挙型名

com.hitachi.software.xeads.common.CacheType

(3)　形式

public enum CacheType {
MEMORY,
DISK,
TWOWAY
}

(4)　列挙定数

定数

説明

MEMORY

メモリキャッシュ

DISK

ディスクキャッシュ

TWOWAY

2Wayキャッシュ

19　クライアントAPを作成する（C言語）

この章では，C言語を使用したクライアントAPの作成方法について説明します。

19.1　ソースプログラムを作成する（C言語）

ここでは，キャッシュへのアクセスとデータ操作の流れと，ソースプログラムの作成例について説明します。

19.1.1　キャッシュへのアクセスとデータ操作の流れ

キャッシュへのアクセスとデータ操作の流れについて説明します。

(1)　C言語を使用する場合のソースプログラムの例

C言語を使用する場合のソースプログラムの例（keyとvalueを格納する場合）を次に示します。

#include <stdio.h>
#include <string.h>

#include <eads.h>

int main(int argc, char **argv) {
    int ret = 0;
    int error_code = 0;
    char CONFPATH[] = "./conf/eads_sample_client.properties";
    char CACHENAME[] = "cache1";
    char KEY[] = "key1";
    char VALUE[] = "value1";
    EAD_CACHE_MANAGER* cmp = NULL;
    EAD_CACHE *cp = NULL;
    ead_value_element value_element;

    value_element.value = (void *)VALUE;
    value_element.value_size = strlen(VALUE) + 1;

    /* EADSクライアントの初期設定をする */
    cmp = ead_init_client(CONFPATH, &error_code);
    printf("ead_init_client() done. (error_code = %d)¥n", error_code);
    if (error_code != EAD_OK) {
        return 1;
    }

    /* キャッシュへのアクセスを開始する */
    cp = ead_start_cache(cmp, CACHENAME, &error_code);
    printf("ead_start_cache() done. (error_code = %d)¥n", error_code);
    if (error_code != EAD_OK) {
        /* EADSクライアントを終了する場合 */
        goto ERR;
    }

    /* keyとvalueを格納する */
    ead_put(cp, KEY, &value_element, &error_code);
    printf("ead_put() done. (error_code = %d)¥n", error_code);
    if (error_code != EAD_OK) {
        /* EADSクライアントを終了する場合 */
        goto ERR;
    }

    /* キャッシュへのアクセスを終了する */
    ead_stop_cache(cp, &error_code);
    cp = NULL;
    printf("ead_stop_cache() done. (error_code = %d)¥n", error_code);
    if (error_code != EAD_OK) {
        /* EADSクライアントを終了する場合 */
        goto ERR;
    }

    /* EADSクライアントを終了する */
    ead_terminate_client(cmp, &error_code);
    cmp = NULL;
    printf("ead_terminate_client() done. (error_code = %d)¥n", error_code);
    if (error_code != EAD_OK) {
        /* EADSクライアントを終了する場合 */
        goto ERR;
    }

    return 0;

ERR:
    if(cp != NULL) {
        /* キャッシュへのアクセスを終了する */
        ead_stop_cache(cp, &error_code);
        cp = NULL;
        printf("ead_stop_cache() done. (error_code = %d)¥n", error_code);
    }

    if(cmp != NULL) {
        /* EADSクライアントを終了する */
        ead_terminate_client(cmp, &error_code);
        cmp = NULL;
        printf("ead_terminate_client() done. (error_code = %d)¥n", error_code);
    }

    return 1;
}

(2)　EADSクライアントの初期設定をする

EADSクライアントの初期設定をするには，ead_init_client()またはead_init_client_n()を使用します。また，キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）を取得します。

クライアント定義に従って，接続先EADSサーバなどが設定されます。

複数のクラスタと同時に接続するなど，設定の異なる複数のキャッシュマネージャを同時に使用したい場合は，クライアント定義を変更してead_init_client()またはead_init_client_n()を複数回実行します。複数回実行した場合は，取得した各キャッシュマネージャのハンドルに対してead_terminate_client()を実行して，EADSクライアントを終了してください。

(3)　キャッシュへのアクセスを開始する

EADSクライアントの初期設定が完了したら，キャッシュへのアクセスを開始します。

キャッシュへのアクセスを開始するには，ead_start_cache()を使用して，キャッシュへのアクセスを制御するためのハンドル（ポインタ）を取得します。このハンドルを使用することによって，キャッシュにアクセスできるようになります。

(4)　keyとvalueを格納する

キャッシュにkeyとvalueを格納するには，ead_put()を使用します。

ead_put()には，ead_start_cache()で取得したキャッシュのハンドルを指定します。また，キャッシュに格納するkeyとvalue情報（valueとvalueのサイズ）を指定します。value情報はead_value_element構造体として用意します。

(5)　valueを取得する

キャッシュからvalueを取得するには，ead_get()を使用します。

ead_get()には，ead_start_cache()で取得したキャッシュのハンドルを指定します。また，取得するvalueに関連づけられたkeyを指定します。

ead_get()によってvalueの取得が成功すると，keyに関連づけられたvalue情報がead_value_element構造体として返却されます。

なお，戻り値として返却されたvalueのメモリ領域は，自動的に解放されません。メモリ領域の解放については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

valueを取得する場合のソースプログラムの例を次に示します。

ソースプログラムの例（valueを取得する場合）

{
    /* valueを取得する */
    ead_value_element ret_value;
    char KEY[] = "key1";
    ret_value = ead_get(cp, KEY, &error_code);
    printf("ead_get() done. (error_code = %d)¥n", error_code);
    if (error_code != EAD_OK) {
        /* EADSクライアントを終了する場合 */
        goto ERR;
    }
    /* 取得成功，取得したvalueは使用後に解放する */
    freeValue(&ret_value);
}

(6)　keyとvalueを削除する

キャッシュから指定したkey，およびkeyに関連づけられたvalueを削除するには，ead_remove()を使用します。

ead_remove()には，ead_start_cache()で取得したキャッシュのハンドルを指定します。また，削除するvalueに関連づけられたkeyを指定します。

(7)　ユーザファンクションを実行する

(a)　keyまたはグループ指定による実行方法

keyまたはグループを指定してユーザファンクションを実行するには，ead_execute_function()を使用します。

ead_execute_function()には，ead_start_cache()で取得したキャッシュのハンドルを指定します。

また，ユーザファンクションを実行するkeyまたはグループ名と，実行するユーザファンクション名を指定します。

また，ユーザファンクションに指定する引数をead_object構造体として指定します。

ead_execute_function()によってユーザファンクションが実行されると，ユーザファンクションの実行結果がead_object構造体として返却されます。

(b)　EADSサーバ指定による実行方法

EADSサーバを指定してユーザファンクションを実行するには，ead_execute_node_function()を使用します。

ead_execute_node_function()には，ead_start_cache()で取得したキャッシュのハンドルを指定します。

また，ユーザファンクションを実行するEADSサーバをead_node構造体として，ユーザファンクションに指定する引数をead_object構造体として指定します。

また，実行するユーザファンクション名を指定します。

ead_execute_node_function()によってユーザファンクションが実行されると，ユーザファンクションの実行結果がead_object構造体として返却されます。

(8)　キャッシュへのアクセスを終了する

キャッシュへのアクセスを終了するには，ead_stop_cache()を使用します。

ead_stop_cache()には，ead_start_cache()で取得したキャッシュのハンドルを指定します。

(9)　EADSクライアントを終了する

EADSクライアントを終了するには，ead_terminate_client()を使用します。

ead_terminate_client()には，ead_init_client()またはead_init_client_n()で取得したキャッシュマネージャのハンドルを指定します。

(10)　戻り値として返却されたメモリ領域を解放する

ead_get()の戻り値として返却されたvalueのメモリ領域は，自動的に解放されません。次のような関数を定義して，APで解放してください。

/* 戻り値として返却されたメモリ領域を解放する */
void freeValue(ead_value_element *value) {
    if (value->value != NULL) {
        free(value->value);
        value->value = NULL;
    }
    value->value_size = 0;
}

戻り値として返却されたメモリ領域をAPで解放する必要がある関数を次の表に示します。次の表に示す各関数の解放対象（戻り値）がNULLでない場合は，戻り値を使用しなくなったタイミングで，メモリ領域を解放してください。

表19‒1　メモリ領域を解放する必要がある関数および解放対象となる戻り値

項番

関数名

解放対象となる戻り値

1

ead_get_cache_name()

キャッシュ名として返却されるchar型のポインタ

2

ead_put_all()

ead_put_all_results構造体のfailure_infoメンバ

3

ead_get()

ead_value_element構造体のvalueメンバ

4

ead_get_group()

ead_get_group_results構造体の次に示すメンバ

key_value_arrayメンバ

key_value_arrayメンバ内のead_key_value_pair構造体のkeyメンバ

key_value_arrayメンバ内のead_key_value_pair構造体内のead_value_element構造体のvalueメンバ

5

ead_get_all()

ead_get_all_results構造体の次に示すメンバ

valuesメンバ

valuesメンバ内のead_value_element構造体のvalueメンバ

failure_infoメンバ

6

ead_remove_all()

ead_remove_all_results構造体のfailure_infoメンバ

7

ead_get_group_names()

ead_group_names構造体のgroup_namesメンバ

8

ead_get_group_keys()

ead_keys構造体のkeysメンバ

9

ead_get_node_keys()

10

ead_get_group_first_key()

keyとして返却されたchar型のポインタ

11

ead_get_node_first_key()

12

ead_get_group_next_key()

13

ead_get_node_next_key()

14

ead_execute_function()

ユーザファンクションの実行結果として返却されたead_object構造体のobjectメンバ

15

ead_execute_function_rt()

16

ead_execute_node_function()

17

ead_execute_node_function_rt()

18

ead_get_nodelist()

ead_nodelist構造体のnodesメンバ

19

ead_get_slave_nodelist()

20

ead_add_cluster_eventlistener()

21

ead_add_node_eventlistener()

19.2　クライアントAP作成上の留意事項（C言語）

クライアントAP作成上の留意事項について説明します。

19.2.1　EADSクライアントの初期設定に関する留意事項

EADSクライアントの初期設定に関する留意事項を次に示します。

EADSクライアントを同一マシンで複数同時に実行する場合は，それぞれ異なるログ出力先を指定してください。同一のログ出力先を指定した場合，動作は保証されません。ログ出力先の設定については，「8.4.2　ファイルの出力先の設定」を参照してください。

ead_init_client_n()でEADSクライアント名に空文字列を指定した場合，ead_init_client()と同じ動作をします。EADSクライアント名とログ出力先の関係については，「8.4.2　ファイルの出力先の設定」を参照してください。

クライアント定義を変更する場合は，次の順に行います。

ead_terminate_client()で，EADSクライアントを終了します。

クライアント定義ファイルを更新します。

ead_init_client()またはead_init_client_n()で，再度EADSクライアントの初期設定をします。

19.2.2　キャッシュへのアクセス開始に関する留意事項

キャッシュへのアクセス開始に関する留意事項を次に示します。

キャッシュへのアクセスを開始する場合は，ead_start_cache()を実行してください。ead_start_cache()は，ead_stop_cache()と対となるように実行してください。

キャッシュ名には，あらかじめeztool createcacheコマンドで作成した名称を指定します。

指定したキャッシュ名が存在しない場合，EAD_ERROR_NET_CLUSTERINFOが返却されます。

19.2.3　データ操作に関する留意事項

(1)　データ操作に関する留意事項

データ操作に関する留意事項を次に示します。

指定したkeyがすでにキャッシュに格納されている場合，ead_put()は無条件にvalueを更新します。無条件にvalueを更新したくない場合は，次の関数を使用してください。

ead_create()

新規にkeyを格納する場合だけ，valueをkeyに関連づけて格納します。

ead_update()

指定したkeyがすでに格納されている場合だけ，valueをkeyに関連づけて格納します。

ead_replace()

指定したkeyに関連づけられているvalueを，条件として指定したvalue情報と比較します。valueが一致している場合だけ，valueをkeyに関連づけて格納します。

ead_get()の実行時，次の場合にはead_value_element構造体のvalueメンバにNULLが返却されます。

keyがキャッシュに存在しない場合

value情報の取得に失敗した場合

valueのデータサイズが0バイトの場合（Java言語のAPIで格納された，長さ0のバイト配列を取得した場合）

ead_get()などの実行時に，戻り値として返却されたvalueのメモリ領域は自動的には解放されません。APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

ead_replace()の実行時に，指定したkeyが存在しない場合は，EAD_ERROR_SERVER_REPLACE_METHOD_KEY_NOT_EXISTが返却されます。

ead_replace()の実行時に，指定したkeyに関連づけられたvalueが，比較条件に指定したvalueと一致しなかった場合，EAD_ERROR_SERVER_REPLACE_METHOD_NOT_MATCHEDが返却されます。

ead_create()の実行時に，指定したkeyがすでに存在する場合，EAD_ERROR_SERVER_CREATE_METHOD_KEY_EXISTが返却されます。

ead_update()の実行時に，指定したkeyが存在しない場合，EAD_ERROR_SERVER_UPDATE_METHOD_KEY_NOT_EXISTが返却されます。

(2)　データの一括操作に関する留意事項

データの一括操作に関する留意事項を次に示します。

指定したkeyがすでにキャッシュに格納されている場合，ead_put_all()は無条件にvalueを更新します。

キャッシュの操作中に排他処理はされません。そのため，一括操作中に，ほかのキャッシュ操作によって操作対象のvalueが変更されることがあります。

大量のデータを一括操作する場合，EADSクライアントおよびEADSサーバでメモリが大量に消費されることがあります。

大量のデータを一括操作する場合，操作の完了までに時間が掛かることがあります。そのため，タイムアウト時間を適切に設計してください。

ead_put_all()などの実行時に，戻り値として返却されたメモリ領域は自動的には解放されません。APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

複数のkeyを指定する一括操作の実行時に，あるkeyに対する操作に失敗した場合やクラスタ構成が変更された場合は，一括操作の処理が終了し，その時点で未実行の操作がキャンセルされます。一括操作中に，ユーザの操作（例：スケールアウト処理，リバランス処理，または復旧処理）によってクラスタ構成が変更された場合も，未実行の操作がキャンセルされます。

操作に失敗したkeyおよび失敗した要因については，各関数の戻り値から判断してください。また，操作がキャンセルされたkeyについては，EAD_ERROR_CLIENT_BATCH_CANCELのエラーコードで確認できます。

複数のkeyを指定する一括操作の実行時に，keyに対する操作がすべて失敗した場合は，EAD_ERROR_BATCH_FAILED_ALLが返却されます。

複数のkeyを指定する一括操作の実行時に，keyに対する操作が部分的に失敗した場合は，EAD_ERROR_BATCH_FAILED_PARTが返却されます。

19.2.4　イベントリスナに関する留意事項

イベントリスナに関する留意事項を次に示します。

(1)　イベントリスナの実装に関する留意事項

イベントが発生した場合，クラスタイベントリスナおよびノードイベントリスナは，EADSクライアントに追加した順序（ead_add_cluster_eventlistener()およびead_add_node_eventlistener()で追加した順序）で実行されます。

イベントリスナ内では，次の関数を呼び出さないでください。

ead_init_client()

ead_init_client_n()

ead_terminate_client()

クラスタイベントリスナの引数に指定されたead_cluster_eventcontext構造体を指すポインタは，クラスタイベントリスナの実行後に自動で解放されます。そのため，クラスタイベントリスナの終了後に，このポインタを参照しないでください。クラスタイベントリスナの終了後に，このポインタを参照した場合，動作は保証されません。

ノードイベントリスナの引数に指定されたead_node_eventcontext構造体を指すポインタは，ノードイベントリスナの実行後に自動で解放されます。そのため，ノードイベントリスナの終了後に，このポインタを参照しないでください。ノードイベントリスナの終了後に，このポインタを参照した場合，動作は保証されません。

イベントリスナ内には，EADSクライアントの正常な処理に影響を及ぼす処理（例えば，リソースを大量に消費する処理）を実装しないでください。

同一EADSクライアント内のすべてのイベントリスナは，1つのスレッドから呼び出されて動作します。イベントリスナの動作中は，EADSサーバから受信したデータの保持用にメモリを占有します。そのため，イベントリスナ内には，長時間動作する処理を実装しないでください。

(2)　イベントの通知に関する留意事項

EADSサーバが初期化状態（initialized）以降の状態の場合に，EADSサーバからEADSクライアントにイベントが通知されます。ただし，EADSサーバとのコネクションの再接続に成功した場合は，EADSサーバの状態に関係なく，そのEADSサーバがまだ通知していないイベントが通知されます。

EADSクライアントがクラスタ内のどのEADSサーバとも通信できなかった場合は，イベントが通知されません。ただし，EADSクライアントはEADSサーバとのコネクションの再接続を繰り返すため，再接続に成功すると，そのあとでイベントが通知されます。

半数以上のEADSサーバが縮退している場合，イベントが通知されないことがあります。

EADSクライアントとEADSサーバ間のコネクションで，切断と再接続を繰り返した場合や，通信が遅延している場合には，イベントの通知が遅延します。

EADSクライアントとEADSサーバ間のコネクションが切断している間に，複数のEADSサーバが縮退した場合，EADSサーバのイベント再送時間（サーバ定義のeads.server.eventListener.notify.retry.timeoutパラメタの指定値）を過ぎて再送用のデータが破棄されると，イベントを通知する順序が逆転するおそれがあります。

EADSクライアントとEADSサーバ間のコネクションが切断している間に，あるEADSサーバが縮退後に復旧した場合，EADSサーバのイベント再送時間（サーバ定義のeads.server.eventListener.notify.retry.timeoutパラメタの指定値）を過ぎて再送用のデータが破棄されると，何もイベントが通知されないおそれがあります。

同じプロセス内で，EADSクライアントを終了（ead_terminate_client()）したあとにEADSクライアントを開始（ead_init_client()またはead_init_client_n()）した場合は，すでに終了したEADSクライアントの再送用のデータは破棄されています。そのため，EADSクライアントを開始したあとのイベントだけが通知されます。

EADSサーバの処理は，EADSクライアントとの通信路の状態とは関係なく進みます。そのため，EADSクライアントへのイベントの通知が完了していなくても，クラスタの終了（eztool stop）やEADSサーバの縮退などの処理は完了します。

19.2.5　キャッシュへのアクセス終了に関する留意事項

キャッシュへのアクセス終了に関する留意事項を次に示します。

キャッシュへのアクセスを終了する場合は，ead_stop_cache()を実行してください。ead_stop_cache()は，ead_start_cache()と対となるように実行してください。

一度，ead_stop_cache()でアクセスを終了したキャッシュに再度アクセスする場合は，再度，ead_start_cache()を発行してください。

19.2.6　EADSクライアントの終了に関する留意事項

EADSクライアントの終了に関する留意事項を次に示します。これらの留意事項は必ず守ってください。守らない場合，セグメンテーション違反の原因となります。

ead_terminate_client()は，指定したキャッシュマネージャを使用する，すべてのAPIの処理が終了した状態で実行してください。

初期設定したEADSクライアントを終了する場合は，必ずead_terminate_client()を実行してください。

19.2.7　その他の留意事項

EADSが提供するC言語のクライアントライブラリは，SIGPIPE（シグナル）の動作を無視（SIG_IGN）に設定します。クライアントAPのプログラム内でSIGPIPEの動作を無視（SIG_IGN）以外に再設定しないでください。

19.3　ソースプログラムをコンパイルする（C言語）

作成したソースプログラムは，C言語のコンパイラでコンパイルします。C言語のコンパイルには，gccコマンドを使用します。gccコマンドの詳細については，C言語のコンパイラに関するドキュメントを参照してください。

コンパイルに必要となるヘッダおよびライブラリを次に示します。

インクルードパス（-I）

/opt/hitachi/xeads/cclient/include

ライブラリパス（-L）

32ビット版

/opt/hitachi/xeads/cclient/lib32

64ビット版

/opt/hitachi/xeads/cclient/lib64

ライブラリ（-l）

32ビット版

hcc-4.1.1

hntr2-eads-t

64ビット版

hccx64-4.1.1

hntr2-eads-te64

32ビット版・64ビット版共通

eads

20　APIリファレンス（C言語）

この章では，EADSで使用できるAPI（C言語）について説明します。

20.1　C言語のクライアントライブラリが提供する関数

C言語のクライアントライブラリでは，EADSのAPIとして次の表に示す関数を提供します。これらの関数は，C言語で記述したソースプログラムに，EADSが提供するヘッダファイルを取り込むことで使用できます。

なお，C言語のクライアントライブラリで使用できる関数（ead_terminate_client()を除く）はスレッドセーフです。

表20‒1　C言語のクライアントライブラリで使用できる関数とヘッダファイル

項番

関数名

機能

ヘッダファイル

1

ead_init_client()

クライアント定義に従って，EADSクライアントの初期設定をします。

eads.h

2

ead_init_client_n()

EADSクライアント名およびクライアント定義に従って，EADSクライアントの初期設定をします。

3

ead_start_cache()

キャッシュへのアクセスを開始します。指定したキャッシュにアクセスするためのハンドル（ポインタ）を取得します。

4

ead_stop_cache()

指定したキャッシュへのアクセスを終了します。

5

ead_get_cache_name()

指定したキャッシュのハンドルに関連づけられたキャッシュ名を取得します。

6

ead_terminate_client()

EADSクライアントを終了します。

7

ead_put()

valueをkeyに関連づけて格納します。

8

ead_put_array_value()

複数のvalueを連結して，keyに関連づけて格納します。

9

ead_put_all()

複数のkeyとvalueをキャッシュに一括格納します。

10

ead_create()

新規にkeyを格納する場合だけ，valueをkeyに関連づけて格納します。

11

ead_update()

指定したkeyがすでに格納されている場合だけ，valueをkeyに関連づけて格納します（valueを更新します）。

12

ead_replace()

指定したkeyに関連づけられているvalueを，条件として指定したvalue情報と比較します。valueが一致している場合だけ，valueをkeyに関連づけて格納します（valueを置換します）。

13

ead_get()

指定したkeyに関連づけられたvalueを取得します。

14

ead_get_all()

指定したkeyの一覧に関連づけられたvalueを一括取得します。

15

ead_get_group()

指定したグループおよびその下位階層のグループに属するkeyに関連づけられたvalueを一括取得します。

16

ead_remove()

指定したkey，およびkeyに関連づけられたvalueを削除します。

17

ead_remove_all()

指定したkeyの一覧に関連づけられたvalueを一括削除します。

18

ead_remove_group()

指定したグループに属するkeyおよびvalueを，下位階層のグループに属するkeyおよびvalueも含めて一括削除します。

19

ead_remove_node()

指定したEADSサーバをコピー元EADSサーバとするkeyおよびvalueを一括削除します。

20

ead_get_group_names()

指定したEADSサーバに格納されている最上位階層のグループ名の一覧を取得します。

グループ名の一覧は，ASCIIコードの昇順になります。

21

ead_get_group_keys()

指定したグループに属するkeyの一覧を，下位階層のグループに属するkeyも含めて取得します。

keyの一覧は，ASCIIコードの昇順になります。

22

ead_get_node_keys()

指定したEADSサーバに格納されているkeyの一覧を取得します。

keyの一覧は，ASCIIコードの昇順になります。

23

ead_get_group_count()

指定したEADSサーバに格納されている最上位階層のグループの数を取得します。

24

ead_get_group_key_count()

指定したグループに属するkeyの数を取得します。指定したグループの下位階層のグループに属するkeyも，取得されるkeyの数に含まれます。

25

ead_get_node_key_count()

指定したEADSサーバに格納されているkeyの数を取得します。

26

ead_get_group_first_key()

指定したグループに属するkeyのうち，ASCIIコードの昇順で先頭となるkeyを取得します。指定したグループの下位階層のグループに属するkeyも取得対象となります。

27

ead_get_node_first_key()

指定したEADSサーバに格納されているkeyのうち，ASCIIコードの昇順で先頭となるkeyを取得します。

28

ead_get_group_next_key()

指定したグループに属するkeyのうち，ASCIIコードの昇順で，指定したkeyの次に位置するkeyを取得します。指定したグループの下位階層のグループに属するkeyも取得対象となります。

29

ead_get_node_next_key()

指定したEADSサーバに格納されているkeyのうち，ASCIIコードの昇順で，指定したkeyの次に位置するkeyを取得します。

30

ead_execute_function()

指定したkeyまたはグループから実行するEADSサーバを決定して，ユーザファンクションを実行します。

31

ead_execute_function_rt()

指定したkeyまたはグループから実行するEADSサーバを決定して，ユーザファンクションを実行します。また，受信タイムアウト時間を指定します。

32

ead_execute_node_function()

EADSサーバを指定して，ユーザファンクションを実行します。

33

ead_execute_node_function_rt()

EADSサーバおよび受信タイムアウト時間を指定して，ユーザファンクションを実行します。

34

ead_get_nodelist()

EADSクライアントが保持している接続先EADSサーバの情報を取得します。

35

【非推奨】ead_get_node()

【非推奨】指定したkeyまたはグループを格納する，本来のコピー元EADSサーバの情報を取得します。

36

ead_get_slave_nodelist()

指定したEADSサーバに格納されているデータの，本来のコピー先EADSサーバの情報を取得します。

37

ead_get_current_master_node()

指定したkey（またはグループ）を現時点で格納する，コピー元EADSサーバの情報を取得します。

38

ead_get_original_master_node()

指定したkey（またはグループ）を格納する，本来のコピー元EADSサーバの情報を取得します。

39

ead_add_cluster_eventlistener()

クラスタイベントリスナを追加します。

40

ead_add_node_eventlistener()

ノードイベントリスナを追加します。

41

ead_remove_cluster_eventlistener()

クラスタイベントリスナを削除します。

42

ead_remove_node_eventlistener()

ノードイベントリスナを削除します。

20.1.1　ead_init_client()（EADSクライアントの初期設定）

(1)　機能

クライアント定義に従って，EADSクライアントの初期設定をします。

EADSクライアント名は空文字列として扱います。

また，キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）を取得します。

ead_init_client()を実行するたびに，クラスタを監視するスレッドが1つ生成されます。生成されたスレッドは，ead_terminate_client()実行時に終了します。

クライアント定義のeads.client.eventListener.enableパラメタにtrueを指定していた場合は，次のように動作します。

新たにイベントリスナ用のコネクションが生成されて，EADSサーバとの接続に成功すると，クラスタ構成情報の通知を受け取れる状態になります。生成されたコネクションは，ead_terminate_client()実行時に削除されます。

クラスタイベントリスナおよびノードイベントリスナを実行するためのスレッドが1つ生成されます。生成されたスレッドは，ead_terminate_client()実行時に終了します。

(2)　形式

#include <eads.h>
EAD_CACHE_MANAGER *ead_init_client
(
  const char     *filename,      /* In */
  int            *error_code     /* Out */
);

(3)　引数

filename

EADSクライアントのクライアント定義ファイルのパスを指定します。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

ead_init_client()が正常に終了した場合は，キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）が返却されます。

ead_init_client()が異常終了した場合は，NULLが返却されます。

(5)　注意事項

EADSクライアントを同一マシンで複数同時に実行する場合は，それぞれ異なるログ出力先を指定してください。同一のログ出力先を指定した場合，動作は保証されません。ログ出力先の設定については，「8.4.2　ファイルの出力先の設定」を参照してください。

初期設定したEADSクライアントを終了する場合は，必ずead_terminate_client()を実行してください。

20.1.2　ead_init_client_n()（EADSクライアントの初期設定）

(1)　機能

EADSクライアント名およびクライアント定義に従って，EADSクライアントの初期設定をします。

また，キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）を取得します。

ead_init_client_n()を実行するたびに，クラスタを監視するスレッドが1つ生成されます。生成されたスレッドは，ead_terminate_client()実行時に終了します。

クライアント定義のeads.client.eventListener.enableパラメタにtrueを指定していた場合は，次のように動作します。

新たにイベントリスナ用のコネクションが生成されて，EADSサーバとの接続に成功すると，クラスタ構成情報の通知を受け取れる状態になります。生成されたコネクションは，ead_terminate_client()実行時に削除されます。

クラスタイベントリスナおよびノードイベントリスナを実行するためのスレッドが1つ生成されます。生成されたスレッドは，ead_terminate_client()実行時に終了します。

(2)　形式

#include <eads.h>
EAD_CACHE_MANAGER *ead_init_client_n
(
  const char     *client_name,   /* In */
  const char     *file_name,     /* In */
  int            *error_code     /* Out */
);

(3)　引数

client_name

EADSクライアント名を指定します。

指定できるデータについては，「15.2.2(5)　EADSクライアント名として指定できるデータ」を参照してください。

EADSクライアント名とログファイルの出力先の関係については，「8.4.2　ファイルの出力先の設定」を参照してください。

file_name

EADSクライアントのクライアント定義ファイルのパスを指定します。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

ead_init_client_n()が正常に終了した場合は，キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）が返却されます。

ead_init_client_n()が異常終了した場合は，NULLが返却されます。

(5)　注意事項

EADSクライアントを同一マシンで複数同時に実行する場合は，それぞれ異なるログ出力先を指定してください。同一のログ出力先を指定した場合，動作は保証されません。ログ出力先の設定については，「8.4.2　ファイルの出力先の設定」を参照してください。

初期設定したEADSクライアントを終了する場合は，必ずead_terminate_client()を実行してください。

20.1.3　ead_start_cache()（キャッシュへのアクセス開始）

(1)　機能

キャッシュへのアクセスを開始します。

指定したキャッシュにアクセスするためのハンドル（ポインタ）を取得します。

(2)　形式

#include <eads.h>
EAD_CACHE  *ead_start_cache
(
  const EAD_CACHE_MANAGER *cmp,                /* In */
  const char              *cache_name,         /* In */
  int                     *error_code          /* Out */
);

(3)　引数

cmp

キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）を指定します。

ead_init_client()またはead_init_client_n()で取得したハンドルを指定してください。

cache_name

アクセスするキャッシュ名を指定します。

指定できるデータについては，「15.2.2(4)　キャッシュ名として指定できるデータ」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

ead_start_cache()が正常に終了した場合は，指定したキャッシュのハンドル（ポインタ）が返却されます。

ead_start_cache()が異常終了した場合は，NULLが返却されます。

(5)　注意事項

キャッシュへのアクセスを終了する場合は，ead_stop_cache()を実行してください。

20.1.4　ead_stop_cache()（キャッシュへのアクセス終了）

(1)　機能

指定したキャッシュへのアクセスを終了します。

(2)　形式

#include <eads.h>
void ead_stop_cache
(
  const EAD_CACHE     *cp,            /* In */
  int                 *error_code     /* Out */
);

(3)　引数

cp

アクセスを終了するキャッシュのポインタを指定します。

ead_start_cache()で取得したハンドルを指定してください。

キャッシュへのアクセス開始時にead_start_cache()で取得したハンドル（ポインタ）を指定します。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

20.1.5　ead_get_cache_name()（キャッシュ名の取得）

(1)　機能

指定したキャッシュのハンドルに関連づけられたキャッシュ名を取得します。

ead_stop_cache()でアクセスを終了したキャッシュのキャッシュ名も取得できます。

(2)　形式

#include <eads.h>
char* ead_get_cache_name
(
  const EAD_CACHE     *cp,            /* In */
  int                 *error_code     /* Out */
);

(3)　引数

cp

キャッシュ名を取得するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

キャッシュのハンドルに関連づけられたキャッシュ名が返却されます。

キャッシュ名の取得で問題が発生した場合，NULLが返却されます。

(5)　注意事項

戻り値として返却されたキャッシュ名を格納するメモリ領域は，自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

20.1.6　ead_terminate_client()（EADSクライアントの終了）

(1)　機能

キャッシュを管理するキャッシュマネージャを削除し，EADSクライアントを終了します。

ead_terminate_client()は，指定したキャッシュマネージャ，およびそれを使用して開始したキャッシュを解放します。そのため，ead_terminate_client()実行以降，これらを参照する操作は実行できません。実行した場合，動作は保証されません。

クライアント定義のeads.client.eventListener.enableパラメタにtrueを指定していた場合は，次のように動作します。

クラスタイベントリスナおよびノードイベントリスナが存在する場合は，すべてのクラスタイベントリスナおよびノードイベントリスナを削除します。

すべてのEADSサーバ間で，イベントリスナ用のコネクションを切断します。

実行中のイベントリスナが存在する場合は，そのイベントリスナの終了を待ちます。

(2)　形式

#include <eads.h>
void ead_terminate_client
(
  const EAD_CACHE_MANAGER *cmp,           /* In */
  int                     *error_code     /* Out */
);

(3)　引数

cmp

キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）を指定します。

ead_init_client()またはead_init_client_n()で取得したハンドルを指定してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

20.1.7　ead_put()（keyとvalueの格納）

(1)　機能

valueをkeyに関連づけて格納します。

データ自動削除機能を使用している場合，key数がしきい値の上限に達しているときは，データの削除ポリシーに従ってデータを削除してから，valueをkeyに関連付けて格納します。既存のデータを更新する場合もデータは削除されます。

データ自動削除機能でデータの削除に失敗した場合，valueの格納を実行しないでremoveが失敗したときのエラーの内容を示すvalueをerror_codeに設定します。

(2)　形式

#include <eads.h>
void ead_put
(
  const EAD_CACHE             *cp,            /* In */
  const char                  *key,           /* In */
  const ead_value_element     *value,         /* In */
  int                         *error_code     /* Out */
);

(3)　引数

cp

keyとvalueを格納するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

key

valueに関連づけるkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

value

格納するvalue情報（ead_value_element構造体）を指定します。

ead_value_element構造体の形式と説明については，「20.1.43　ead_value_element構造体（value情報）」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

20.1.8　ead_put_array_value()（複数のvalueの連結格納）

(1)　機能

複数のvalueを連結して，keyに関連づけて格納します。

格納したvalueを取得すると，連結したvalueが取得できます。

データ自動削除機能を使用している場合，key数がしきい値の上限に達しているときは，データの削除ポリシーに従ってデータを削除してから，valueをkeyに関連付けて格納します。既存のデータを更新する場合もデータは削除されます。

データ自動削除機能でデータの削除に失敗した場合，valueの格納を実行しないでremoveが失敗したときのエラーの内容を示すvalueをerror_codeに設定します。

(2)　形式

#include <eads.h>
void ead_put_array_value
(
  const EAD_CACHE             *cp,            /* In */
  const char                  *key,           /* In */
  size_t                      array_length,   /* In */
  const ead_value_element     *value_array,   /* In */
  int                         *error_code     /* Out */
);

(3)　引数

cp

keyとvalueを格納するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

key

valueに関連づけるkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

array_length

格納する値配列の要素数を指定します。

value_array

格納する値配列の先頭を指すポインタを指定します。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　注意事項

array_lengthには，0は指定できません。また，不正な値を指定した場合，動作は保証されません。

ead_value_element構造体の配列は，必ず要素数分の連続したメモリ領域を確保してください。

格納する値配列の要素数，サイズに上限はありません。ただし，連結後のサイズには，EADSサーバが受け付けることができるデータの最大サイズを超えない値を設定してください。

20.1.9　ead_put_all()（keyとvalueの一括格納）

(1)　機能

複数のkeyとvalueをキャッシュに一括格納します。

引数にはead_key_value_pair構造体の配列を指定し，それぞれのkeyとvalueを関連づけてキャッシュに格納します。

同じkeyを複数指定した場合は，指定した順にそれぞれ実行されます。

データ自動削除機能を使用している場合，key数がしきい値の上限に達しているときは，データの削除ポリシーに従ってしきい値を超える件数分のデータを削除してから，複数のkeyとvalueを一括格納します。既存のデータを更新する場合もデータは削除されます。

データ自動削除機能でデータの削除に失敗した場合，失敗した件数分はvalueの格納を実行しません。

(2)　形式

#include <eads.h>
ead_put_all_results ead_put_all
(
  const EAD_CACHE              *cp,                 /* In */
  size_t                       array_length,        /* In */
  const ead_key_value_pair     *key_value_array,    /* In */
  int                          *error_code          /* Out */
);

(3)　引数

cp

keyとvalueを格納するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

array_length

格納するead_key_value_pair構造体の配列の要素数を指定します。

ead_key_value_pair構造体の形式と説明については，「20.1.44　ead_key_value_pair構造体（keyとvalueの組み合わせ）」を参照してください。

key_value_array

格納するead_key_value_pair構造体の配列の先頭を指すポインタを指定します。

ead_key_value_pair構造体の形式と説明については，「20.1.44　ead_key_value_pair構造体（keyとvalueの組み合わせ）」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

keyとvalueの一括格納の結果（ead_put_all_results構造体）が返却されます。

一括格納に成功している場合

success_operation_numberメンバが，引数に指定したkeyの一覧中のkeyの数と同じ値になり，failure_infoメンバがNULLになります。

一括格納に一部またはすべて失敗した場合

failure_infoメンバに，failure_operation_numberメンバが示す個数分，失敗した操作の情報が返却されます。データ自動削除機能でデータの削除に失敗した場合，valueの格納を実行しなかったkeyは，データの削除に失敗したときの情報が返却されます。

keyごとの処理以外でエラーが発生した場合（引数の不正やメモリ領域の不足などが発生した場合）

ead_put_all_results構造体の数値型のメンバは0，ポインタ型のメンバはNULLになります。

ead_put_all_results構造体の形式と説明については，「20.1.47　ead_put_all_results構造体（ead_put_all()の実行結果）」を参照してください。

(5)　注意事項

valueの一括格納に失敗した場合，次のエラーコードが返却されます。

一括格納にすべて失敗したとき

EAD_ERROR_BATCH_FAILED_ALL

一括格納に一部失敗したとき

EAD_ERROR_BATCH_FAILED_PART

戻り値として返却された，keyとvalueの一括格納の結果を格納するメモリ領域は，自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

array_lengthには，0は指定できません。また，不正な値を指定した場合，動作は保証されません。

ead_key_value_pair構造体の配列は，必ず要素数分の連続したメモリ領域を確保してください。

キャッシュの操作が部分的に失敗した場合，戻り値からどの操作が失敗したか判別して，必要に応じてこの関数を再度実行してください。

キャッシュの操作中に排他処理はされません。そのため，一括操作中に，ほかのキャッシュ操作によって操作対象のvalueが変更されることがあります。

大量のデータを一括操作する場合，EADSクライアントおよびEADSサーバでメモリが大量に消費されることがあります。

大量のデータを一括操作する場合，操作の完了までに時間が掛かることがあります。そのため，タイムアウト時間を適切に設計してください。

20.1.10　ead_create()（keyとvalueの新規格納）

(1)　機能

新規にkeyを格納する場合だけ，valueをkeyに関連づけて格納します。

データ自動削除機能を使用している場合，key数がしきい値の上限に達しているときは，データの削除ポリシーに従ってデータを削除してから，valueをkeyに関連付けて格納します。データの削除は，指定したkeyがキャッシュに格納されている場合も実行します。

データ自動削除機能でデータの削除に失敗した場合，valueの格納を実行しないでremoveが失敗したときのエラーの内容を示すvalueをerror_codeに設定します。

(2)　形式

#include <eads.h>
void ead_create
(
  const EAD_CACHE             *cp,            /* In */
  const char                  *key,           /* In */
  const ead_value_element     *value,         /* In */
  int                         *error_code     /* Out */
);

(3)　引数

cp

keyとvalueを格納するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

key

valueに関連づけるkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

value

格納するvalue情報（ead_value_element構造体）を指定します。

ead_value_element構造体の形式と説明については，「20.1.43　ead_value_element構造体（value情報）」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

20.1.11　ead_update()（valueの更新）

(1)　機能

指定したkeyがすでに格納されている場合だけ，valueをkeyに関連づけて格納します（valueを更新します）。

(2)　形式

#include <eads.h>
void ead_update
(
  const EAD_CACHE             *cp,            /* In */
  const char                  *key,           /* In */
  const ead_value_element     *value,         /* In */
  int                         *error_code     /* Out */
);

(3)　引数

cp

keyとvalueを格納するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

key

valueに関連づけるkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

value

格納するvalue情報（ead_value_element構造体）を指定します。

ead_value_element構造体の形式と説明については，「20.1.43　ead_value_element構造体（value情報）」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

20.1.12　ead_replace()（valueの置換）

(1)　機能

指定したkeyに関連づけられているvalueを，条件として指定したvalue情報と比較します。valueが一致している場合だけ，valueをkeyに関連づけて格納します（valueを置換します）。

(2)　形式

#include <eads.h>
void ead_replace
(
  const EAD_CACHE             *cp,                    /* In */
  const char                  *key,                   /* In */
  const ead_value_element     *value,                 /* In */
  const ead_value_element     *comparative_value,     /* In */
  int                         *error_code             /* Out */
);

(3)　引数

cp

keyとvalueを格納するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

key

置き換えるvalueに関連づけられたkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

value

格納するvalue情報（ead_value_element構造体）を指定します。

ead_value_element構造体の形式と説明については，「20.1.43　ead_value_element構造体（value情報）」を参照してください。

comparative_value

比較するvalue情報（ead_value_element構造体）を指定します。

ead_value_element構造体の形式と説明については，「20.1.43　ead_value_element構造体（value情報）」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

20.1.13　ead_get()（valueの取得）

(1)　機能

指定したkeyに関連づけられたvalueを取得します。

(2)　形式

#include <eads.h>
ead_value_element ead_get
(
  const EAD_CACHE     *cp,            /* In */
  const char          *key,           /* In */
  int                 *error_code     /* Out */
);

(3)　引数

cp

取得するvalueが格納されているキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

key

取得するvalueに関連づけられたkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

keyに関連づけられたvalue情報（ead_value_element構造体）が返却されます。

ead_value_element構造体の形式と説明については，「20.1.43　ead_value_element構造体（value情報）」を参照してください。

次の場合は，ead_value_element構造体のvalueメンバにNULLが設定されます。

keyがキャッシュに存在しない場合

value情報の取得で問題が発生した場合

valueのデータサイズが0バイトの場合（Java言語のAPIで格納された，長さ0のバイト配列を取得した場合）

(5)　注意事項

戻り値として返却されたvalue情報のメモリ領域は，自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

20.1.14　ead_get_all()（valueの一括取得）

(1)　機能

指定したkeyの一覧に関連づけられたvalueを一括取得します。

同じkeyを複数指定した場合は，keyの一覧に指定した順にそれぞれ実行します。

(2)　形式

#include <eads.h>
ead_get_all_results ead_get_all
(
  const EAD_CACHE     *cp,           /* In */
  const ead_keys      *keys,         /* In */
  int                 *error_code    /* Out */
);

(3)　引数

cp

取得するvalueが格納されているキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

keys

取得するvalueに関連づけられたkeyの一覧（ead_keys構造体）を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

ead_keys構造体の形式と説明については，「20.1.45　ead_keys構造体（複数のkey）」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

指定したkeyの一覧に関連づけられたvalueの一括取得の結果（ead_get_all_results構造体）が返却されます。

一括取得に成功している場合

valuesメンバに，引数に指定したkeyの一覧に対応するvalueが返却されます。

一括取得に一部失敗した場合

failure_infoメンバに，failure_operation_numberメンバに示す個数分，失敗した操作の情報が返却されます。

取得に失敗したkeyに対応するvaluesメンバの位置には，valueがNULLであるead_value_element構造体が返却されます。

一括取得にすべて失敗した場合

values_lengthメンバに0，valuesメンバにはNULLが格納されます。

keyごとの処理以外でエラーが発生した場合（引数の不正やメモリ領域の不足などが発生した場合）

ead_get_all_results構造体の数値型のメンバは0，ポインタ型のメンバはNULLになります。

ead_get_all_results構造体の形式と説明については，「20.1.48　ead_get_all_results構造体（ead_get_all()の実行結果）」を参照してください。

(5)　注意事項

valueの一括取得に失敗した場合，次のエラーコードが返却されます。

一括取得にすべて失敗したとき

EAD_ERROR_BATCH_FAILED_ALL

一括取得に一部失敗したとき

EAD_ERROR_BATCH_FAILED_PART

戻り値として返却された，valueの一括取得の結果を格納するメモリ領域は，自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

キャッシュの操作が部分的に失敗した場合，戻り値からどの操作が失敗したか判別して，必要に応じてこの関数を再度実行してください。

キャッシュの操作中に排他処理はされません。そのため，一括操作中に，ほかのキャッシュ操作によって操作対象のvalueが変更されることがあります。

大量のデータを一括操作する場合，EADSクライアントおよびEADSサーバでメモリが大量に消費されることがあります。

大量のデータを一括操作する場合，操作の完了までに時間が掛かることがあります。そのため，タイムアウト時間を適切に設計してください。

20.1.15　ead_get_group()（グループ指定によるvalueの一括取得）

(1)　機能

指定したグループおよびその下位階層のグループに属するkeyに関連づけられたvalueを一括取得します。

(2)　形式

#include <eads.h>
ead_get_group_results ead_get_group
(
  const EAD_CACHE     *cp,            /* In */
  const char          *group_name,    /* In */
  int                 *error_code     /* Out */
);

(3)　引数

cp

取得するvalueが格納されているキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

group_name

valueを取得するグループ名を指定します。

指定できるデータについては，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

指定したグループおよびその下位階層のグループに属するkeyに関連づけられたvalueの一括取得の結果（ead_get_group_results構造体）が返却されます。

一括取得に一部またはすべて成功した場合

valueの取得が成功した分のkey，および引数に指定したkeyの一覧に対応するvalueが，key_value_arrayメンバに返却されます。

一括取得にすべて失敗した場合

ead_get_group_results構造体の数値型のメンバは0，ポインタ型のメンバはNULLになります。

ead_get_group_results構造体の形式と説明については，「20.1.49　ead_get_group_results構造体（ead_get_group()の実行結果）」を参照してください。

(5)　注意事項

戻り値として返却された，valueの一括取得の結果を格納するメモリ領域は，自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

キャッシュの操作が部分的に失敗した場合，キャッシュの操作の実行結果を確認して，必要に応じて再実行してください。

キャッシュの操作中に排他処理はされません。そのため，一括操作中に，ほかのキャッシュ操作によって操作対象のvalueが変更されることがあります。

大量のデータを一括操作する場合，EADSクライアントおよびEADSサーバでメモリが大量に消費されることがあります。

大量のデータを一括操作する場合，操作の完了までに時間が掛かることがあります。そのため，タイムアウト時間を適切に設計してください。

20.1.16　ead_remove()（valueの削除）

(1)　機能

指定したkey，およびkeyに関連づけられたvalueを削除します。

(2)　形式

#include <eads.h>
void ead_remove
(
  const EAD_CACHE     *cp,            /* In */
  const char          *key,           /* In */
  int                 *error_code     /* Out */
);

(3)　引数

cp

削除するkeyとvalueが格納されているキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

key

削除するvalueに関連づけられたkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

20.1.17　ead_remove_all()（valueの一括削除）

(1)　機能

指定したkeyの一覧に関連づけられたvalueを一括削除します。

同じkeyを複数指定した場合は，keyの一覧に指定した順にそれぞれ実行されます。

(2)　形式

#include <eads.h>
ead_remove_all_results ead_remove_all
(
  const EAD_CACHE     *cp,           /* In */
  const ead_keys      *keys,         /* In */
  int                 *error_code    /* Out */
);

(3)　引数

cp

削除するvalueが格納されているキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

keys

削除するkeyの一覧（ead_keys構造体）を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

ead_keys構造体の形式と説明については，「20.1.45　ead_keys構造体（複数のkey）」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

指定したkeyの一覧に関連づけられたvalueの一括削除の結果（ead_remove_all_results構造体）が返却されます。

一括削除にすべて成功した場合

success_operation_numberメンバが，引数に指定したkeyの数と同じ値になり，failure_infoメンバがNULLになります。

一括削除に一部またはすべて失敗した場合

failure_infoメンバに，failure_operation_numberメンバに示す個数分，失敗した操作の情報が返却されます。

keyごとの処理以外でエラーが発生した場合（引数の不正やメモリ領域の不足など）

ead_remove_all_results構造体の数値型のメンバは0，ポインタ型のメンバはNULLになります。

ead_remove_all_results構造体の形式と説明については，「20.1.50　ead_remove_all_results構造体（ead_remove_all()の実行結果）」を参照してください。

(5)　注意事項

valueの一括削除に失敗した場合，次のエラーコードが返却されます。

一括削除にすべて失敗したとき

EAD_ERROR_BATCH_FAILED_ALL

一括削除に一部失敗したとき

EAD_ERROR_BATCH_FAILED_PART

戻り値として返却された，valueの一括削除の結果を格納するメモリ領域は，自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

削除に失敗した場合，削除対象のデータが残っているおそれがあります。そのため，エラーコードからエラーの要因を調査して，どの操作が失敗したか判別して対処してください。必要に応じて，ead_remove_all()（valueの一括削除）を再度実行してください。

キャッシュの操作中に排他処理はされません。そのため，一括操作中に，ほかのキャッシュ操作によって操作対象のvalueが変更されることがあります。

大量のデータを一括操作する場合，EADSクライアントおよびEADSサーバでメモリが大量に消費されることがあります。

大量のデータを一括操作する場合，操作の完了までに時間が掛かることがあります。そのため，タイムアウト時間を適切に設計してください。

20.1.18　ead_remove_group()（グループ指定によるvalueの一括削除）

(1)　機能

指定したグループに属するkeyおよびvalueを，下位階層のグループに属するkeyおよびvalueも含めて一括削除します。

keyおよびvalueの一括削除中に何らかの要因で削除に失敗した場合は，失敗の要因を示すエラーコードが返却されます。

(2)　形式

#include <eads.h>
void ead_remove_group
(
  const EAD_CACHE     *cp,            /* In */
  const char          *group_name,    /* In */
  int                 *error_code     /* Out */
);

(3)　引数

cp

削除するvalueが格納されているキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

group_name

削除するkeyおよびvalueが属するグループ名を指定します。

指定できるデータについては，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　注意事項

削除に失敗した場合，削除対象のデータが残っているおそれがあります。そのため，実行結果を確認して対処してください。必要に応じて，ead_remove_group()（グループ指定によるvalueの一括削除）を再度実行してください。

キャッシュの操作が部分的に失敗した場合，戻り値からどの操作が失敗したか判別して，必要に応じて再実行してください。

キャッシュの操作中に排他処理はされません。そのため，一括操作中に，ほかのキャッシュ操作によって操作対象のvalueが変更されることがあります。

大量のデータを一括操作する場合，EADSクライアントおよびEADSサーバでメモリが大量に消費されることがあります。

大量のデータを一括操作する場合，操作の完了までに時間が掛かることがあります。そのため，タイムアウト時間を適切に設計してください。

20.1.19　ead_remove_node()（EADSサーバ指定によるvalueの一括削除）

(1)　機能

指定したEADSサーバをコピー元EADSサーバとするkeyおよびvalueを一括削除します。

keyおよびvalueの一括削除中に何らかの要因で削除に失敗した場合は，失敗の要因を示すエラーコードが返却されます。

(2)　形式

#include <eads.h>
void ead_remove_node
(
  const EAD_CACHE     *cp,             /* In */
  const ead_node      *target_node,    /* In */
  int                 *error_code      /* Out */
);

(3)　引数

cp

削除するvalueが格納されているキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

target_node

一括削除を実行するEADSサーバ（ead_node構造体）を指すポインタを指定します。

EADSが提供するクライアントライブラリを使用して取得したead_node構造体のポインタだけ指定できます。それ以外のポインタを指定した場合の動作は保証しません。

ead_node構造体の形式と説明については，「20.1.54　ead_node構造体（EADSサーバ指定のユーザファンクションで使用するオブジェクト）」を参照してください。

指定したead_node構造体が格納するアドレス情報（IPアドレスおよびポート番号）が，EADSクライアントが保持するどのEADSサーバのアドレス情報とも一致しない場合，エラーとなります。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　注意事項

削除に失敗した場合，削除対象のデータが残っているおそれがあります。そのため，実行結果を確認して対処してください。必要に応じて，ead_remove_node()（EADSサーバ指定によるvalueの一括削除）を再度実行してください。

キャッシュの操作中に排他処理はされません。そのため，一括操作中に，ほかのキャッシュ操作によって操作対象のvalueが変更されることがあります。

大量のデータを一括操作する場合，EADSクライアントおよびEADSサーバでメモリが大量に消費されることがあります。

大量のデータを一括操作する場合，操作の完了までに時間が掛かることがあります。そのため，タイムアウト時間を適切に設計してください。

20.1.20　ead_get_group_names()（最上位階層のグループ名の一覧の取得）

(1)　機能

指定したEADSサーバに格納されている最上位階層のグループ名の一覧を取得します。

グループ名の一覧は，ASCIIコードの昇順になります。

(2)　形式

#include <eads.h>
ead_group_names ead_get_group_names
(
  const EAD_CACHE     *cp,             /* In */
  const ead_node      *target_node,    /* In */
  int                 *error_code      /* Out */
);

(3)　引数

cp

グループ名の一覧を取得するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

target_node

取得先のEADSサーバ（ead_node構造体）を指すポインタを指定します。

EADSが提供するクライアントライブラリを使用して取得したead_node構造体のポインタだけ指定できます。それ以外のポインタを指定した場合の動作は保証しません。

ead_node構造体の形式と説明については，「20.1.54　ead_node構造体（EADSサーバ指定のユーザファンクションで使用するオブジェクト）」を参照してください。

指定したead_node構造体が格納するアドレス情報（IPアドレスおよびポート番号）が，EADSクライアントが保持するどのEADSサーバのアドレス情報とも一致しない場合，エラーとなります。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

指定したEADSサーバに格納されている最上位階層のグループ名の一覧（ead_group_names構造体）が返却されます。

次の場合，ead_group_names構造体のgroup_namesメンバにNULLが返却されます。

指定したEADSサーバに，グループに属するkeyが存在しない場合

エラーによってグループ名の一覧の取得に失敗した場合

ead_group_names構造体の形式と説明については，「20.1.46　ead_group_names構造体（複数のグループ名）」を参照してください。

(5)　注意事項

戻り値として返却されたead_group_names構造体のgroup_namesメンバがNULLでない場合，メモリ領域は自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

指定したEADSサーバに存在するグループの数が多いほど，取得に時間が掛かったり，リソースの使用量が増加したりするおそれがあります。

20.1.21　ead_get_group_keys()（グループ指定によるkeyの一覧の取得）

(1)　機能

指定したグループに属するkeyの一覧を，下位階層のグループに属するkeyも含めて取得します。

keyの一覧は，ASCIIコードの昇順になります。

(2)　形式

#include <eads.h>
ead_keys ead_get_group_keys
(
  const EAD_CACHE     *cp,            /* In */
  const char          *group_name,    /* In */
  int                 *error_code     /* Out */
);

(3)　引数

cp

keyの一覧を取得するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

group_name

グループ名を指定します。

指定できるデータについては，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

指定したグループに属するkeyの一覧（ead_keys構造体）がASCIIコードの昇順で返却されます。

次の場合，ead_keys構造体のkeysメンバにNULLが返却されます。

指定したグループに属するkeyが存在しない場合

エラーによってkeyの一覧の取得に失敗した場合

ead_keys構造体の形式と説明については，「20.1.45　ead_keys構造体（複数のkey）」を参照してください。

(5)　注意事項

戻り値として返却されたead_keys構造体のkeysメンバがNULLでない場合，メモリ領域は自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

指定したEADSサーバに存在するkeyの数が多いほど，取得に時間が掛かったり，リソースの使用量が増加したりするおそれがあります。

20.1.22　ead_get_node_keys()（EADSサーバ指定によるkeyの一覧の取得）

(1)　機能

指定したEADSサーバに格納されているkeyの一覧を取得します。

keyの一覧は，ASCIIコードの昇順になります。

(2)　形式

#include <eads.h>
ead_keys ead_get_node_keys
(
  const EAD_CACHE     *cp,             /* In */
  const ead_node      *target_node,    /* In */
  int                 *error_code      /* Out */
);

(3)　引数

cp

keyの一覧を取得するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

target_node

取得先のEADSサーバ（ead_node構造体）を指すポインタを指定します。

EADSが提供するクライアントライブラリを使用して取得したead_node構造体のポインタだけ指定できます。それ以外のポインタを指定した場合の動作は保証しません。

ead_node構造体の形式と説明については，「20.1.54　ead_node構造体（EADSサーバ指定のユーザファンクションで使用するオブジェクト）」を参照してください。

指定したead_node構造体が格納するアドレス情報（IPアドレスおよびポート番号）が，EADSクライアントが保持するどのEADSサーバのアドレス情報とも一致しない場合，エラーとなります。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

指定したEADSサーバに格納されているkeyの一覧（ead_keys構造体）がASCIIコードの昇順で返却されます。

次の場合，ead_keys構造体のkeysメンバはNULLが返却されます。

指定したEADSサーバにコピー元のkeyが存在しない場合

エラーによってkeyの一覧の取得に失敗した場合

ead_keys構造体の形式と説明については，「20.1.45　ead_keys構造体（複数のkey）」を参照してください。

(5)　注意事項

戻り値として返却されたead_keys構造体のkeysメンバがNULLでない場合，メモリ領域は自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

指定したEADSサーバに存在するkeyの数が多いほど，取得に時間が掛かったり，リソースの使用量が増加したりするおそれがあります。

20.1.23　ead_get_group_count()（最上位階層グループ数の取得）

(1)　機能

指定したEADSサーバに格納されている最上位階層のグループの数を取得します。

(2)　形式

#include <eads.h>
size_t ead_get_group_count
(
  const EAD_CACHE     *cp,             /* In */
  const ead_node      *target_node,    /* In */
  int                 *error_code      /* Out */
);

(3)　引数

cp

グループ数を取得するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

target_node

取得先のEADSサーバ（ead_node構造体）を指すポインタを指定します。

EADSが提供するクライアントライブラリを使用して取得したead_node構造体のポインタだけ指定できます。それ以外のポインタを指定した場合の動作は保証しません。

ead_node構造体の形式と説明については，「20.1.54　ead_node構造体（EADSサーバ指定のユーザファンクションで使用するオブジェクト）」を参照してください。

指定したead_node構造体が格納するアドレス情報（IPアドレスおよびポート番号）が，EADSクライアントが保持するどのEADSサーバのアドレス情報とも一致しない場合，エラーとなります。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

指定したEADSサーバに格納されている最上位階層のグループの数が返却されます。

エラーによってグループ数の取得に失敗した場合，0が返却されます。

20.1.24　ead_get_group_key_count()（グループ指定によるkeyの数の取得）

(1)　機能

指定したグループに属するkeyの数を取得します。指定したグループの下位階層のグループに属するkeyも，取得されるkeyの数に含まれます。

(2)　形式

#include <eads.h>
size_t ead_get_group_key_count
(
  const EAD_CACHE     *cp,            /* In */
  const char          *group_name,    /* In */
  int                 *error_code     /* Out */
);

(3)　引数

cp

keyの数を取得するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

group_name

グループ名を指定します。

指定できるデータについては，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

指定したグループに属するkeyの数が返却されます。

エラーによってkeyの数の取得に失敗した場合，0が返却されます。

20.1.25　ead_get_node_key_count()（EADSサーバ指定によるkeyの数の取得）

(1)　機能

指定したEADSサーバに格納されているkeyの数を取得します。

(2)　形式

#include <eads.h>
size_t ead_get_node_key_count
(
  const EAD_CACHE     *cp,             /* In */
  const ead_node      *target_node,    /* In */
  int                 *error_code      /* Out */
);

(3)　引数

cp

keyの数を取得するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

target_node

取得先のEADSサーバ（ead_node構造体）を指すポインタを指定します。

EADSが提供するクライアントライブラリを使用して取得したead_node構造体のポインタだけ指定できます。それ以外のポインタを指定した場合の動作は保証しません。

ead_node構造体の形式と説明については，「20.1.54　ead_node構造体（EADSサーバ指定のユーザファンクションで使用するオブジェクト）」を参照してください。

指定したead_node構造体が格納するアドレス情報（IPアドレスおよびポート番号）が，EADSクライアントが保持するどのEADSサーバのアドレス情報とも一致しない場合，エラーとなります。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

指定したEADSサーバに格納されているkeyの数が返却されます。

エラーによってkeyの数の取得に失敗した場合，0が返却されます。

20.1.26　ead_get_group_first_key()（グループ指定による先頭のkeyの取得）

(1)　機能

指定したグループに属するkeyのうち，ASCIIコードの昇順で先頭となるkeyを取得します。指定したグループの下位階層のグループに属するkeyも取得対象となります。

(2)　形式

#include <eads.h>
char* ead_get_group_first_key
(
  const EAD_CACHE     *cp,            /* In */
  const char          *group_name,    /* In */
  int                 *error_code     /* Out */
);

(3)　引数

cp

keyを取得するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

group_name

グループ名を指定します。

指定できるデータについては，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

指定したグループに属するkeyのうち，ASCIIコードの昇順で先頭となるkeyが返却されます。

次の場合，NULLが返却されます。

指定したグループに属するkeyが存在しない場合

エラーによってkeyの数の取得に失敗した場合

(5)　注意事項

keyの取得に成功した場合（戻り値がNULLでない場合），メモリ領域は自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

20.1.27　ead_get_node_first_key()（EADSサーバ指定による先頭のkeyの取得）

(1)　機能

指定したEADSサーバに格納されているkeyのうち，ASCIIコードの昇順で先頭となるkeyを取得します。

(2)　形式

#include <eads.h>
char* ead_get_node_first_key
(
  const EAD_CACHE     *cp,             /* In */
  const ead_node      *target_node,    /* In */
  int                 *error_code      /* Out */
);

(3)　引数

cp

keyを取得するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

target_node

取得先のEADSサーバ（ead_node構造体）を指すポインタを指定します。

EADSが提供するクライアントライブラリを使用して取得したead_node構造体のポインタだけ指定できます。それ以外のポインタを指定した場合の動作は保証しません。

ead_node構造体の形式と説明については，「20.1.54　ead_node構造体（EADSサーバ指定のユーザファンクションで使用するオブジェクト）」を参照してください。

指定したead_node構造体が格納するアドレス情報（IPアドレスおよびポート番号）が，EADSクライアントが保持するどのEADSサーバのアドレス情報とも一致しない場合，エラーとなります。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

指定したEADSサーバに格納されているkeyのうち，ASCIIコードの昇順で先頭となるkeyが返却されます。

次の場合，NULLが返却されます。

指定したEADSサーバにコピー元のkeyが存在しない場合

エラーによってkeyの数の取得に失敗した場合

(5)　注意事項

keyの取得に成功した場合（戻り値がNULLでない場合），メモリ領域は自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

20.1.28　ead_get_group_next_key()（グループ指定による次のkeyの取得）

(1)　機能

指定したグループに属するkeyのうち，ASCIIコードの昇順で，指定したkeyの次に位置するkeyを取得します。指定したグループの下位階層のグループに属するkeyも取得対象となります。

なお，接続先のEADSサーバに存在しないkeyを指定した場合も同様に，指定したkeyの次に位置するkeyを取得します。

(2)　形式

#include <eads.h>
char* ead_get_group_next_key
(
  const EAD_CACHE     *cp,            /* In */
  const char          *group_name,    /* In */
  const char          *key,           /* In */
  int                 *error_code     /* Out */
);

(3)　引数

cp

keyを取得するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

group_name

グループ名を指定します。

指定できるデータについては，「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

key

基準とするkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

指定したEADSサーバに格納されているkeyのうち，ASCIIコードの昇順で，指定したkeyの次に位置するkeyが返却されます。

次の場合，NULLが返却されます。

指定したkeyの次に位置するkeyが存在しない場合

エラーによってkeyの取得に失敗した場合

(5)　注意事項

keyの取得に成功した場合（戻り値がNULLでない場合），メモリ領域は自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

この関数では，指定されたグループを基に接続先のEADSサーバが決定されます。

接続先以外のEADSサーバの縮退，復旧，追加（スケールアウト処理），および位置の変更（リバランス処理）によって，指定したグループに属するkeyを格納するEADSサーバが変更されることがあります。そのため，ead_get_group_first_key()を実行して先頭となるkeyを取得したときとは，異なるEADSサーバに接続する可能性があります。

EADSサーバ上でグループに対して排他処理をしないため，ead_get_group_first_key()またはead_get_group_next_key()の実行後，他プロセスからの操作によって，グループに属するkeyが挿入，または削除されることがあります。

20.1.29　ead_get_node_next_key()（EADSサーバ指定による次のkeyの取得）

(1)　機能

指定したEADSサーバに格納されているkeyのうち，ASCIIコードの昇順で，指定したkeyの次に位置するkeyを取得します。

なお，接続先のEADSサーバに存在しないkeyを指定した場合も同様に，指定したkeyの次に位置するkeyを取得します。

(2)　形式

#include <eads.h>
char* ead_get_node_next_key
(
  const EAD_CACHE     *cp,             /* In */
  const ead_node      *target_node,    /* In */
  const char          *key,            /* In */
  int                 *error_code      /* Out */
);

(3)　引数

cp

keyを取得するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

target_node

取得先のEADSサーバ（ead_node構造体）を指すポインタを指定します。

EADSが提供するクライアントライブラリを使用して取得したead_node構造体のポインタだけ指定できます。それ以外のポインタを指定した場合の動作は保証しません。

ead_node構造体の形式と説明については，「20.1.54　ead_node構造体（EADSサーバ指定のユーザファンクションで使用するオブジェクト）」を参照してください。

指定したead_node構造体が格納するアドレス情報（IPアドレスおよびポート番号）が，EADSクライアントが保持するどのEADSサーバのアドレス情報とも一致しない場合，エラーとなります。

key

基準とするkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

指定したEADSサーバに格納されているkeyのうち，ASCIIコードの昇順で，指定したkeyの次に位置するkeyが返却されます。

次の場合，NULLが返却されます。

指定したkeyの次に位置するkeyが存在しない場合

エラーによってkeyの取得に失敗した場合

(5)　注意事項

keyの取得に成功した場合（戻り値がNULLでない場合），メモリ領域は自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

接続先以外のEADSサーバの縮退，復旧，追加（スケールアウト処理），および位置の変更（リバランス処理）によって，指定したグループに属するkeyを格納するEADSサーバが変更される場合があります。

EADSサーバ上でグループに対して排他処理をしないため，ead_get_node_first_key()またはead_get_node_next_key()の実行後，他プロセスからの操作によって，グループに属するkeyが挿入，または削除されることがあります。

20.1.30　ead_execute_function()（keyまたはグループ指定によるユーザファンクションの実行）

(1)　機能

指定したkeyまたはグループから実行するEADSサーバを決定して，ユーザファンクションを実行します。

(2)　形式

#include <eads.h>
ead_object ead_execute_function
(
  const EAD_CACHE      *cp,                    /* In */
  const char           *key_or_group_name,     /* In */
  const char           *func_name,             /* In */
  const ead_object     *arg,                   /* In */
  int                  *error_code             /* Out */
);

(3)　引数

cp

ユーザファンクションを実行するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

key_or_group_name

keyまたはグループ名を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」，または「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

func_name

ユーザファンクション名を指定します。

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数に制限はありません。

arg

ユーザファンクションに渡す引数（ead_object構造体）を指定します。

ead_object構造体の形式と説明については，「20.1.52　ead_object構造体（ユーザファンクションで使用するオブジェクト）」を参照してください。

引数を渡さない場合はNULLを指定します。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

ead_execute_function()が正常に終了した場合は，ユーザファンクションの実行結果（ead_object構造体）が返却されます。

ead_object構造体の形式と説明については，「20.1.52　ead_object構造体（ユーザファンクションで使用するオブジェクト）」を参照してください。

ead_object構造体のobject_sizeメンバは，ユーザファンクションの戻り値に指定したバイト配列のサイズになります。

次の場合は，ead_object構造体のobjectメンバにNULLが設定されます。

ユーザファンクションの実行で問題が発生した場合

ネットワーク障害などの問題によって，ユーザファンクションの実行結果を取得できなかった場合

ユーザファンクションの実行結果としてnullが返却された場合

ユーザファンクションの実行結果としてデータサイズが0のバイト配列が返却された場合

(5)　注意事項

戻り値として返却された，ユーザファンクションの実行結果を格納するメモリ領域は，自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

20.1.31　ead_execute_function_rt()（keyまたはグループ，および受信タイムアウト指定によるユーザファンクションの実行）

(1)　機能

指定したkeyまたはグループから実行するEADSサーバを決定して，ユーザファンクションを実行します。また，受信タイムアウト時間を指定します。

ead_execute_function_rt()の実行中は，クライアント定義のeads.client.connection.receive.timeoutパラメタの値を使用しません。

(2)　形式

#include <eads.h>
ead_object ead_execute_function_rt
(
  const EAD_CACHE      *cp,                    /* In */
  const char           *key_or_group_name,     /* In */
  const char           *func_name,             /* In */
  const ead_object     *arg,                   /* In */
  int                  recv_timeout,           /* In */
  int                  *error_code             /* Out */
);

(3)　引数

cp

ユーザファンクションを実行するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

key_or_group_name

keyまたはグループ名を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」，または「15.2.2(2)　グループ名として指定できるデータ」を参照してください。

func_name

ユーザファンクション名を指定します。

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数に制限はありません。

arg

ユーザファンクションに渡す引数（ead_object構造体）を指定します。

ead_object構造体の形式と説明については，「20.1.52　ead_object構造体（ユーザファンクションで使用するオブジェクト）」を参照してください。

引数を渡さない場合はNULLを指定します。

recv_timeout

データ受信のタイムアウト時間（単位：ミリ秒）を指定します。

指定できるデータについては，「9.3.3(3)(b)　eads.client.connection.receive.timeout」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

ead_execute_function_rt()が正常に終了した場合は，ユーザファンクションの実行結果（ead_object構造体）が返却されます。

ead_object構造体の形式と説明については，「20.1.52　ead_object構造体（ユーザファンクションで使用するオブジェクト）」を参照してください。

ead_object構造体のobject_sizeメンバは，ユーザファンクションの戻り値に指定したバイト配列のサイズになります。

次の場合は，ead_object構造体のobjectメンバにNULLが設定されます。

ユーザファンクションの実行で問題が発生した場合

ネットワーク障害などの問題によって，ユーザファンクションの実行結果を取得できなかった場合

ユーザファンクションの実行結果としてnullが返却された場合

ユーザファンクションの実行結果としてデータサイズが0のバイト配列が返却された場合

(5)　注意事項

戻り値として返却された，ユーザファンクションの実行結果を格納するメモリ領域は，自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

20.1.32　ead_execute_node_function()（EADSサーバ指定によるユーザファンクションの実行）

(1)　機能

EADSサーバを指定して，ユーザファンクションを実行します。

(2)　形式

#include <eads.h>
ead_object ead_execute_node_function
(
  const EAD_CACHE      *cp,            /* In */
  const ead_node       *target_node,   /* In */
  const char           *func_name,     /* In */
  const ead_object     *arg,           /* In */
  int                  *error_code     /* Out */
);

(3)　引数

cp

ユーザファンクションを実行するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

target_node

ユーザファンクションを実行する実行するEADSサーバ（ead_node構造体）を指すポインタを指定します。

EADSが提供するクライアントライブラリを使用して取得したead_node構造体のポインタだけ指定できます。それ以外のポインタを指定した場合の動作は保証しません。

ead_node構造体の形式と説明については，「20.1.54　ead_node構造体（EADSサーバ指定のユーザファンクションで使用するオブジェクト）」を参照してください。

指定したead_node構造体が格納するアドレス情報（IPアドレスおよびポート番号）が，EADSクライアントが保持するどのEADSサーバのアドレス情報とも一致しない場合，エラーとなります。

func_name

ユーザファンクション名を指定します。

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数に制限はありません。

arg

ユーザファンクションに渡す引数（ead_object構造体）を指定します。

ead_object構造体の形式と説明については，「20.1.52　ead_object構造体（ユーザファンクションで使用するオブジェクト）」を参照してください。

引数を渡さない場合はNULLを指定します。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

ead_execute_node_function()が正常に終了した場合は，ユーザファンクションの実行結果（ead_object構造体）が返却されます。

ead_object構造体の形式と説明については，「20.1.52　ead_object構造体（ユーザファンクションで使用するオブジェクト）」を参照してください。

ead_object構造体のobject_sizeメンバは，ユーザファンクションの戻り値に指定したバイト配列のサイズになります。

次の場合は，ead_object構造体のobjectメンバにNULLが設定されます。

ユーザファンクションの実行で問題が発生した場合

ネットワーク障害などの問題によって，ユーザファンクションの実行結果を取得できなかった場合

ユーザファンクションの実行結果としてnullが返却された場合

ユーザファンクションの実行結果としてデータサイズが0のバイト配列が返却された場合

(5)　注意事項

戻り値として返却された，ユーザファンクションの実行結果を格納するメモリ領域は，自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

20.1.33　ead_execute_node_function_rt()（EADSサーバおよび受信タイムアウト指定によるユーザファンクションの実行）

(1)　機能

EADSサーバおよび受信タイムアウト時間を指定して，ユーザファンクションを実行します。

ead_execute_node_function_rt()の実行中は，クライアント定義のeads.client.connection.receive.timeoutパラメタの値を使用しません。

(2)　形式

#include <eads.h>
ead_object ead_execute_node_function_rt
(
  const EAD_CACHE      *cp,             /* In */
  const ead_node       *target_node,    /* In */
  const char           *func_name,      /* In */
  const ead_object     *arg,            /* In */
  int                  recv_timeout,    /* In */
  int                  *error_code      /* Out */
);

(3)　引数

cp

ユーザファンクションを実行するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

target_node

ユーザファンクションを実行するEADSサーバ（ead_node構造体）を指すポインタを指定します。

EADSが提供するクライアントライブラリを使用して取得したead_node構造体のポインタだけ指定できます。それ以外のポインタを指定した場合の動作は保証しません。

ead_node構造体の形式と説明については，「20.1.54　ead_node構造体（EADSサーバ指定のユーザファンクションで使用するオブジェクト）」を参照してください。

指定したead_node構造体が格納するアドレス情報（IPアドレスおよびポート番号）が，EADSクライアントが保持するどのEADSサーバのアドレス情報とも一致しない場合，エラーとなります。

func_name

ユーザファンクション名を指定します。

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数に制限はありません。

arg

ユーザファンクションに渡す引数（ead_object構造体）を指定します。

ead_object構造体の形式と説明については，「20.1.52　ead_object構造体（ユーザファンクションで使用するオブジェクト）」を参照してください。

引数を渡さない場合はNULLを指定します。

recv_timeout

データ受信のタイムアウト時間（単位：ミリ秒）を指定します。

指定できるデータについては，「9.3.3(3)(b)　eads.client.connection.receive.timeout」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

ead_execute_node_function_rt()が正常に終了した場合は，ユーザファンクションの実行結果（ead_object構造体）が返却されます。

ead_object構造体の形式と説明については，「20.1.52　ead_object構造体（ユーザファンクションで使用するオブジェクト）」を参照してください。

ead_object構造体のobject_sizeメンバは，ユーザファンクションの戻り値に指定したバイト配列のサイズになります。

次の場合は，ead_object構造体のobjectメンバにNULLが設定されます。

ユーザファンクションの実行で問題が発生した場合

ネットワーク障害などの問題によって，ユーザファンクションの実行結果を取得できなかった場合

ユーザファンクションの実行結果としてnullが返却された場合

ユーザファンクションの実行結果としてデータサイズが0のバイト配列が返却された場合

(5)　注意事項

戻り値として返却された，ユーザファンクションの実行結果を格納するメモリ領域は，自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

20.1.34　ead_get_nodelist()（接続先EADSサーバの情報取得）

(1)　機能

EADSクライアントが保持している接続先EADSサーバの情報を取得します。

(2)　形式

#include <eads.h>
ead_nodelist ead_get_nodelist
(
  const EAD_CACHE_MANAGER *cmp,               /* In */
  int                     *error_code         /* Out */
);

(3)　引数

cmp

キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）を指定します。

ead_init_client()またはead_init_client_n()で取得したハンドルを指定してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

EADSクライアントが保持している接続先EADSサーバの情報（ead_nodelist構造体）が返却されます。

ead_nodelist構造体の形式と説明については，「20.1.53　ead_nodelist構造体（EADSサーバ情報）」を参照してください。

異常終了時には，ead_nodelist構造体のnodesメンバにNULLが返却されます。

(5)　注意事項

戻り値として返却されたead_nodelist構造体のnodesメンバがNULLでない場合，メモリ領域は自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

AP実行時にEADSサーバへの通信は行われません。そのため，返却された接続先EADSサーバの情報が最新でないことがあります。

この関数の実行時には，EADSサーバの接続可否は考慮されません。そのため，取得した情報には，縮退状態などで接続できないEADSサーバが含まれていることがあります。取得したEADSサーバを接続先として使用する場合は，そのEADSサーバに接続できるかどうか，ead_node構造体のis_enableメンバで接続可否を確認してください。

ead_node構造体の形式と説明については，「20.1.54　ead_node構造体（EADSサーバ指定のユーザファンクションで使用するオブジェクト）」を参照してください。

20.1.35　【非推奨】ead_get_node()（指定したkeyの本来のコピー元EADSサーバの情報取得）

注意事項

この関数は非推奨です。この関数の代わりに，ead_get_original_master_node()を使用してください。

(1)　機能

指定したkeyまたはグループを格納する，本来のコピー元EADSサーバの情報を取得します。

本来のコピー元EADSサーバとは，クラスタを構成するすべてのEADSサーバが正常に接続できる場合に，指定したkeyまたはグループのコピー元のデータを格納するEADSサーバのことです。

(2)　形式

#include <eads.h>
ead_node ead_get_node
(
  const EAD_CACHE_MANAGER *cmp,               /* In */
  const char              *key,               /* In */
  int                     *error_code         /* Out */
);

(3)　引数

cmp

キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）を指定します。ead_init_client()またはead_init_client_n()で取得したハンドルを指定してください。

key

取得するEADSサーバに格納されているkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

指定したkeyまたはグループを格納する，本来のコピー元EADSサーバの情報（ead_node構造体）が返却されます。

異常終了時には，ead_node構造体の各メンバに0が返却されます。

(5)　注意事項

AP実行時にEADSサーバへの通信は行われません。そのため，返却された接続先EADSサーバの情報が最新でないことがあります。

クラスタ構成に変更がなければ，EADSサーバの接続可否に関係なく，常に同じEADSサーバの情報が取得されます。

取得したEADSサーバを接続先として使用する場合は，そのEADSサーバに接続できるかどうか，ead_node構造体のis_enableメンバで接続可否を確認してください。

ead_node構造体の形式と説明については，「20.1.54　ead_node構造体（EADSサーバ指定のユーザファンクションで使用するオブジェクト）」を参照してください。

20.1.36　ead_get_slave_nodelist()（データの本来のコピー先EADSサーバの情報取得）

(1)　機能

指定したEADSサーバに格納されているデータの，本来のコピー先EADSサーバの情報を取得します。

本来のコピー先EADSサーバとは，クラスタを構成するすべてのEADSサーバが正常に接続できる場合に，指定したEADSサーバ（コピー元EADSサーバ）に格納されているデータの，コピー先となるEADSサーバのことです。

(2)　形式

#include <eads.h>
ead_nodelist ead_get_slave_nodelist
(
  const EAD_CACHE_MANAGER *cmp,               /* In */
  const ead_node          *master_node,       /* In */
  int                     *error_code         /* Out */
);

(3)　引数

cmp

キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）を指定します。ead_init_client()またはead_init_client_n()で取得したハンドルを指定してください。

master_node

コピー元のデータを格納するEADSサーバ（ead_node構造体）を指すポインタを指定します。

EADSが提供するクライアントライブラリを使用して取得したead_node構造体のポインタだけ指定できます。それ以外のポインタを指定した場合の動作は保証しません。

ead_node構造体の形式と説明については，「20.1.54　ead_node構造体（EADSサーバ指定のユーザファンクションで使用するオブジェクト）」を参照してください。

指定したead_node構造体が格納するアドレス情報（IPアドレスおよびポート番号）が，EADSクライアントが保持するどのEADSサーバのアドレス情報とも一致しない場合，エラーとなります。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

本来のコピー先EADSサーバの情報（ead_nodelist構造体）が返却されます。

ead_nodelist構造体の形式と説明については，「20.1.53　ead_nodelist構造体（EADSサーバ情報）」を参照してください。

データを多重化しない場合（多重度が1の場合），ead_nodelist構造体のlist_sizeメンバには0が，nodesメンバにはNULLが返却されます。

異常終了時は，ead_nodelist構造体のnodesメンバにNULLが返却されます。

(5)　注意事項

戻り値として返却されたead_nodelist構造体のnodesメンバがNULLでない場合，メモリ領域は自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

AP実行時にEADSサーバへの通信は行われません。そのため，返却された接続先EADSサーバの情報が最新でないことがあります。

この関数の実行時には，指定したEADSサーバ，および情報の取得対象となるEADSサーバの接続可否は考慮されません。そのため，取得した情報には，縮退状態などで接続できないEADSサーバの情報が含まれていることがあります。

20.1.37　ead_get_current_master_node()（現時点のコピー元EADSサーバの情報取得）

(1)　機能

指定したkey（またはグループ）を現時点で格納する，コピー元EADSサーバの情報を取得します。

(2)　形式

#include <eads.h>
ead_node ead_get_current_master_node
(
  const EAD_CACHE_MANAGER     *cmp,          /* In */
  const char                  *key,          /* In */
  int                         *error_code    /* Out */
);

(3)　引数

cmp

キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）を指定します。

ead_init_client()またはead_init_client_n()で取得したハンドルを指定してください。

key

key（またはグループ）を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

指定したkey（またはグループ）を現時点で格納する，コピー元EADSサーバの情報が返却されます。

異常終了時，およびコピー元EADSサーバが縮退または停止している場合，ead_node構造体の各メンバに0が返却されます。

(5)　注意事項

この関数の実行時には，EADSサーバへの通信は行われません。そのため，返却された接続先EADSサーバの情報が最新でないことがあります。

20.1.38　ead_get_original_master_node()（本来のコピー元EADSサーバの情報取得）

(1)　機能

指定したkey（またはグループ）を格納する，本来のコピー元EADSサーバの情報を取得します。

本来のコピー元EADSサーバとは，クラスタを構成するすべてのEADSサーバが正常に接続できる場合に，指定したkey（またはグループ）のマスタとなるデータ（コピー元となるデータ）を格納するEADSサーバのことです。現時点のコピー元EADSサーバとは異なることがあります。

クラスタ構成に変更がなければ，EADSサーバの接続可否に関係なく，常に同じEADSサーバの情報が取得されます。

(2)　形式

#include <eads.h>
ead_node ead_get_original_master_node
(
  const EAD_CACHE_MANAGER     *cmp,          /* In */
  const char                  *key,          /* In */
  int                         *error_code    /* Out */
);

(3)　引数

cmp

キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）を指定します。

ead_init_client()またはead_init_client_n()で取得したハンドルを指定してください。

key

key（またはグループ）を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

指定したkey（またはグループ）を格納する本来のコピー元EADSサーバの情報が返却されます。

異常終了時には，ead_node構造体の各メンバに0が返却されます。

(5)　注意事項

この関数の実行時には，EADSサーバへの通信は行われません。そのため，返却された接続先EADSサーバの情報が最新でないことがあります。

取得したEADSサーバを接続先として使用する場合は，そのEADSサーバに接続できるかどうか，ead_node構造体のis_enableメンバを使用して確認してください。ead_node構造体のis_enableメンバについては，「20.1.54(2)　メンバの説明」を参照してください。

20.1.39　ead_add_cluster_eventlistener()（クラスタイベントリスナの追加）

(1)　機能

クラスタイベントリスナを追加します。

(2)　形式

#include <eads.h>
ead_nodelist ead_add_cluster_eventlistener
(
  const EAD_CACHE_MANAGER          *cmp,                        /* In */
  const char                       *cluster_eventlistener_name, /* In */
  const ead_cluster_eventlistener  *cluster_eventlistener,      /* In */
  void                             *userdata,                   /* In */
  int                              *error_code                  /* Out */
);

(3)　引数

cmp

キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）を指定します。

ead_init_client()またはead_init_client_n()で取得したハンドルを指定してください。

cluster_eventlistener_name

追加するクラスタイベントリスナの名称を指定します。

指定できるデータ型

文字数

説明

'¥0'を終端記号とする文字列（char *）

1〜1,024

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_）が指定できます。

文字列の最大サイズは，'¥0'を含まないバイト数です。

長さ0の文字列（'¥0'だけ）を指定できません。

同一クライアント内のほかのクラスタイベントリスナまたはノードイベントリスナと同じ名称を指定した場合は，エラーとなります。

cluster_eventlistener

追加するクラスタイベントリスナを指すポインタを指定します。

userdata

追加するクラスタイベントリスナとのデータの伝達に使用するポインタを指定します。

任意のアドレスを指定できます。

追加するクラスタイベントリスナとのデータの伝達にポインタを使用しない場合は，NULLを指定します。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

クラスタイベントリスナの追加が終了した時点での，接続先EADSサーバの情報一覧（ead_nodelist構造体）が返却されます。

ead_nodelist構造体の形式と説明については，「20.1.53　ead_nodelist構造体（EADSサーバ情報）」を参照してください。

EADSサーバの状態に関係なく，すべてのEADSサーバの情報が返却されます。

異常終了時には，ead_nodelist構造体のnodesメンバにNULLが返却されます。

(5)　注意事項

戻り値として返却されたead_nodelist構造体のnodesメンバがNULLでない場合，メモリ領域は自動的に解放されないため，APで解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

関数実行と同時にクラスタ構成情報が変更された場合，縮退済みのEADSサーバや，追加済みのEADSサーバに対しては，cluster_eventlistenerに設定した関数を呼び出せません。関数実行後に返却されたEADSサーバの情報を確認してください。

この関数の実行時には，EADSサーバの接続可否は考慮されません。そのため，取得した情報には，接続できないEADSサーバ（例：EADSサーバの縮退）が含まれていることがあります。取得したEADSサーバを接続先として使用する場合は，そのEADSサーバに接続できるかどうかを，ead_node構造体のis_enableメンバで確認してください。

ead_node構造体の形式と説明については，「20.1.54　ead_node構造体（EADSサーバ指定のユーザファンクションで使用するオブジェクト）」を参照してください。

20.1.40　ead_add_node_eventlistener()（ノードイベントリスナ追加）

(1)　機能

ノードイベントリスナを追加します。

(2)　形式

#include <eads.h>
ead_nodelist ead_add_node_eventlistener
(
  const EAD_CACHE_MANAGER         *cmp,                        /* In */
  const char                      *node_eventlistener_name,    /* In */
  const int                       *nodeid,                     /* In */
  const ead_node_eventtype        *node_eventtype,             /* In */
  const ead_node_eventlistener    *node_eventlistener,         /* In */
  void                            *userdata,                   /* In */
  int                             *error_code                  /* Out */
);

(3)　引数

cmp

キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）を指定します。

ead_init_client()またはead_init_client_n()で取得したハンドルを指定してください。

node_eventlistener_name

追加するノードイベントリスナの名称を指定します。

指定できるデータ型

文字数

説明

'¥0'を終端記号とする文字列（char *）

1〜1,024

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_）が指定できます。

文字列の最大サイズは，'¥0'を含まないバイト数です。

長さ0の文字列（'¥0'だけ）を指定できません。

同一クライアント内のほかのクラスタイベントリスナまたはノードイベントリスナと同じ名称を指定した場合は，エラーとなります。

nodeid

追加するノードイベントリスナに対応するEADSサーバIDを指定します。

node_eventtype

追加するノードイベントリスナの実行契機の情報を指すポインタを指定します。

node_eventlistener

追加するノードイベントリスナを指すポインタを指定します。

userdata

追加するノードイベントリスナとのデータの伝達に使用するポインタを指定します。

任意のアドレスを指定できます。

追加するノードイベントリスナとのデータの伝達にポインタを使用しない場合は，NULLを指定します。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

ノードイベントリスナの追加が終了した時点での，接続先EADSサーバの情報一覧（ead_nodelist構造体）が返却されます。

ead_nodelist構造体の形式と説明については，「20.1.53　ead_nodelist構造体（EADSサーバ情報）」を参照してください。

EADSサーバの状態に関係なく，すべてのEADSサーバの情報が返却されます。

異常終了時には，ead_nodelist構造体のnodesメンバにNULLが返却されます。

(5)　注意事項

戻り値として返却されたead_nodelist構造体のnodesメンバがNULLでない場合，APでメモリ領域を解放してください。詳細については，「19.1.1(10)　戻り値として返却されたメモリ領域を解放する」を参照してください。

関数実行と同時にクラスタ構成情報が変更された場合，縮退済みのEADSサーバや追加済みのEADSサーバに対しては，node_eventlistenerに設定した関数を呼び出せません。関数実行後に返却されたEADSサーバの情報を確認してください。

この関数の実行時には，EADSサーバの接続可否は考慮されません。そのため，取得した情報には，接続できないEADSサーバ（例：EADSサーバの縮退）が含まれていることがあります。取得したEADSサーバを接続先として使用する場合は，そのEADSサーバに接続できるかどうかを，ead_node構造体のis_enableメンバで確認してください。

ead_node構造体の形式と説明については，「20.1.54　ead_node構造体（EADSサーバ指定のユーザファンクションで使用するオブジェクト）」を参照してください。

20.1.41　ead_remove_cluster_eventlistener()（クラスタイベントリスナ削除）

(1)　機能

クラスタイベントリスナを削除します。

未通知のイベントの情報を破棄します。

この関数は，ead_add_cluster_eventlistener()と対になるように呼び出してください。

(2)　形式

#include <eads.h>
void ead_remove_cluster_eventlistener
(
  const EAD_CACHE_MANAGER    *cmp,                           /* In */
  const char                 *cluster_eventlistener_name,    /* In */
  int                        *error_code                     /* Out */
);

(3)　引数

cmp

キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）を指定します。

ead_init_client()またはead_init_client_n()で取得したハンドルを指定してください。

cluster_eventlistener_name

削除するクラスタイベントリスナの名称を指定します。

指定できるデータ型

文字数

説明

'¥0'を終端記号とする文字列（char *）

1〜1,024

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_）が指定できます。

文字列の最大サイズは，'¥0'を含まないバイト数です。

長さ0の文字列（'¥0'だけ）を指定できません。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

20.1.42　ead_remove_node_eventlistener()（ノードイベントリスナ削除）

(1)　機能

ノードイベントリスナを削除します。

未通知のイベントの情報を破棄します。

この関数は，ead_add_node_eventlistener()と対になるように呼び出してください。

(2)　形式

#include <eads.h>
void ead_remove_node_eventlistener
(
  const EAD_CACHE_MANAGER    *cmp,                        /* In */
  const char                 *node_eventlistener_name,    /* In */
  int                        *error_code                  /* Out */
);

(3)　引数

cmp

キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）を指定します。

ead_init_client()またはead_init_client_n()で取得したハンドルを指定してください。

node_eventlistener_name

削除するノードイベントリスナの名称を指定します。

指定できるデータ型

文字数

説明

'¥0'を終端記号とする文字列（char *）

1〜1,024

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_）が指定できます。

文字列の最大サイズは，'¥0'を含まないバイト数です。

長さ0の文字列（'¥0'だけ）を指定できません。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

20.1.43　ead_value_element構造体（value情報）

ead_value_element構造体には，value情報（valueとvalueのサイズ）を格納します。

(1)　形式

struct ead_value_element {
  size_t     value_size;
  void       *value;
};

(2)　メンバの説明

value_size

valueのデータサイズ（単位：バイト）を格納します。

value

valueを格納します。

格納するデータの先頭アドレスを指定します。

(3)　注意事項

先頭アドレス＋データサイズで指定した範囲が不正な領域を参照していた場合，動作は保証されません。

valueには，NULLは指定できません。

value_sizeには，0は指定できません。

value_sizeに上限はありません。ただし，EADSサーバが受け付けることができるデータの最大サイズを超えない値を設定してください。

20.1.44　ead_key_value_pair構造体（keyとvalueの組み合わせ）

ead_key_value_pair構造体には，keyとvalueの組み合わせの情報を格納します。

(1)　形式

struct ead_key_value_pair {
  char                *key;
  ead_value_element   value;
};

(2)　メンバの説明

key

valueに関連づけるkeyを格納します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

value

格納するvalue情報（ead_value_element構造体）を格納します。

ead_value_element構造体の形式と説明については，「20.1.43　ead_value_element構造体（value情報）」を参照してください。

20.1.45　ead_keys構造体（複数のkey）

ead_keys構造体には，複数のkeyを格納します。

(1)　形式

struct ead_keys {
  size_t   size;
  char     **keys;
};

(2)　メンバの説明

size

格納するkeyの個数を格納します。

keys

keyの一覧を格納した配列の先頭アドレスを格納します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

20.1.46　ead_group_names構造体（複数のグループ名）

ead_group_names構造体には，複数のグループ名を格納します。

(1)　形式

struct ead_group_names {
  size_t   size;
  char     **group_names;
};

(2)　メンバの説明

size

格納するグループ名の個数を格納します。

group_names

グループ名の一覧を格納した配列の先頭アドレスを格納します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

20.1.47　ead_put_all_results構造体（ead_put_all()の実行結果）

ead_put_all_results構造体には，ead_put_all()の実行結果を格納します。

(1)　形式

struct ead_put_all_results {
  size_t                        success_operation_number;
  size_t                        failure_operation_number;
  ead_failure_operation_info    *failure_info;
};

(2)　メンバの説明

success_operation_number

一括操作を試みた結果，一部またはすべての操作が失敗した場合に，操作が成功したkeyの数を格納します。

failure_operation_number

一括操作を試みた結果，一部またはすべての操作が失敗した場合に，failure_infoメンバの要素数を格納します。

failure_info

失敗した一括操作の情報の一覧（ead_failure_operation_info構造体）の先頭を示すポインタを格納します。

ead_failure_operation_info構造体の形式と説明については，「20.1.51　ead_failure_operation_info構造体（一括操作の実行で失敗した操作の情報）」を参照してください。

20.1.48　ead_get_all_results構造体（ead_get_all()の実行結果）

ead_get_all_results構造体には，ead_get_all()の実行結果を格納します。

(1)　形式

struct ead_get_all_results {
  size_t                      values_length;
  ead_value_element           *values;
  size_t                      success_operation_number;
  size_t                      failure_operation_number;
  ead_failure_operation_info  *failure_info;
};

(2)　メンバの説明

values_length

取得したvalueの個数を格納します。

values

取得したvalue情報を格納した，ead_value_element構造体の配列の先頭アドレスを指定します。

ead_value_element構造体の形式と説明については，「20.1.43　ead_value_element構造体（value情報）」を参照してください。

success_operation_number

一括操作を試みた結果，一部またはすべての操作が失敗した場合に，操作が成功したkeyの数を格納します。

failure_operation_number

一括操作を試みた結果，一部またはすべての操作が失敗した場合に，failure_infoの要素数を格納します。

failure_info

失敗した一括操作の情報の一覧（ead_failure_operation_info構造体）の先頭を示すポインタを格納します。

ead_failure_operation_info構造体の形式と説明については，「20.1.51　ead_failure_operation_info構造体（一括操作の実行で失敗した操作の情報）」を参照してください。

20.1.49　ead_get_group_results構造体（ead_get_group()の実行結果）

ead_get_group_results構造体には，ead_get_group()の実行結果を格納します。

(1)　形式

struct ead_get_group_results {
  size_t               key_value_length;
  ead_key_value_pair   *key_value_array;
};

(2)　メンバの説明

key_value_length

取得したkeyとvalueを格納したead_key_value_pair構造体の配列の要素数を格納します。

key_value_array

取得したkeyとvalueを格納したead_key_value_pair構造体の配列の先頭アドレスを指定します。

ead_key_value_pair構造体の形式と説明については，「20.1.44　ead_key_value_pair構造体（keyとvalueの組み合わせ）」を参照してください。

20.1.50　ead_remove_all_results構造体（ead_remove_all()の実行結果）

ead_remove_all_results構造体には，ead_remove_all()の実行結果を格納します。

(1)　形式

struct ead_remove_all_results {
  size_t                       success_operation_number;
  size_t                       failure_operation_number;
  ead_failure_operation_info   *failure_info;
};

(2)　メンバの説明

success_operation_number

一括操作を試みた結果，一部またはすべての操作が失敗した場合に，操作が成功したkeyの数を格納します。

failure_operation_number

一括操作を試みた結果，一部またはすべての操作が失敗した場合に，failure_infoの要素数を格納します。

failure_info

失敗した一括操作の情報の一覧（ead_failure_operation_info構造体）の先頭を示すポインタを格納します。

ead_failure_operation_info構造体の形式と説明については，「20.1.51　ead_failure_operation_info構造体（一括操作の実行で失敗した操作の情報）」を参照してください。

20.1.51　ead_failure_operation_info構造体（一括操作の実行で失敗した操作の情報）

ead_failure_operation_info構造体には，一括操作を試みた結果，一部またはすべての操作が失敗した場合に，失敗した操作の情報を格納します。

(1)　形式

struct ead_failure_operation_info {
  int index;
  int error_code;
};

(2)　メンバの説明

index

一括操作の実行時に指定したkeyの一覧中での位置（添え字）を格納します。

error_code

失敗の要因を示すエラーコードを格納します。

20.1.52　ead_object構造体（ユーザファンクションで使用するオブジェクト）

ead_object構造体には，ユーザファンクションで使用するオブジェクト（引数や戻り値）を格納します。

(1)　形式

struct ead_object {
  size_t     object_size;
  void       *object;
};

(2)　メンバの説明

object_size

オブジェクトのデータサイズ（単位：バイト）を格納します。

object

ユーザファンクションで使用するオブジェクト（引数や戻り値）を格納します。

格納するデータの先頭アドレスを指定します。

(3)　注意事項

先頭アドレス＋データサイズで指定した範囲が不正な領域を参照していた場合，動作は保証されません。

objectには，NULLは指定できません。

object_sizeには，0は指定できません。

object_sizeに上限はありません。ただし，EADSサーバが受け付けることができるデータの最大サイズを超えない値を設定してください。

20.1.53　ead_nodelist構造体（EADSサーバ情報）

ead_nodelist構造体には，EADSクライアントが保持するEADSサーバの情報を格納します。

(1)　形式

struct ead_nodelist {
  size_t          list_size;
  struct ead_node *nodes;
};

(2)　メンバの説明

list_size

EADSサーバ数を格納します。

nodes

EADSサーバの情報（ead_node構造体）を格納します。

格納するデータの先頭アドレスを指定します。

20.1.54　ead_node構造体（EADSサーバ指定のユーザファンクションで使用するオブジェクト）

ead_node構造体には，EADSサーバを指定するための情報を格納します。

(1)　形式

struct ead_node {
  int                node_id;
  EAD_BOOL           is_enable;
  int                position;
  struct ead_address address;
  char               reserved[8];
};

(2)　メンバの説明

node_id

EADSサーバIDを格納します。

is_enable

EADSサーバの状態を格納します。

EAD_TRUE：接続可能

EAD_FALSE：接続不可

position

EADSサーバの位置を格納します。

address

EADSサーバのアドレス情報（ead_address構造体）を格納します。

ead_address構造体の形式と説明については，「20.1.55　ead_address構造体（EADSサーバのアドレス情報）」を参照してください。

reserved[8]

予備領域です。

20.1.55　ead_address構造体（EADSサーバのアドレス情報）

ead_address構造体には，EADSサーバのアドレス情報を格納します。

(1)　形式

struct ead_address {
  unsigned char     ip[4];
  unsigned short    port;
};

(2)　メンバの説明

ip

EADSサーバのIPアドレスを格納します。

port

EADSサーバのポート番号を格納します。

20.1.56　ead_cluster_eventlistener構造体（クラスタイベントリスナの関数）

ead_cluster_eventlistener構造体には，クラスタイベントリスナ用にユーザが定義する関数のポインタを格納します。

(1)　形式

struct ead_cluster_eventlistener {
  void (*on_event)(EAD_CACHE_MANAGER*,
                   char*,
                   ead_cluster_eventcontext*,
                   void*);
};

(2)　メンバの説明

on_event

ead_cluster_eventcontext構造体のevent_typeメンバが示すイベントの発生時に，呼び出される関数を格納します。

(3)　引数

EAD_CACHE_MANAGER

キャッシュマネージャを指すポインタを指定します。

char

実行されるクラスタイベントリスナの名称を指定します。

ead_cluster_eventcontext

クラスタイベントリスナ実行時に使用する情報を指すポインタを指定します。

void

クラスタイベントリスナ追加時に指定した，クラスタイベントリスナとのデータの伝達に使用するポインタを指定します。

(4)　注意事項

ポインタにNULLを設定していた場合は，クラスタイベントリスナの登録に失敗します。

ポインタに設定した関数が異常終了した場合，EADSクライアントがダウンするおそれがあります。

ポインタに設定した関数の第3引数（ead_cluster_eventcontext）に指定されたポインタは，その関数が終了すると自動で解放されます。

20.1.57　ead_node_eventlistener構造体（ノードイベントリスナの関数）

ead_node_eventlistener構造体には，ノードイベントリスナ用にユーザが定義する関数のポインタを格納します。

(1)　形式

struct ead_node_eventlistener {
  void (*on_event)(char*,
                   ead_node_eventcontext*,
                   void*);
};

(2)　メンバの説明

on_event

ead_node_eventcontext構造体のevent_typeメンバが示すイベントの発生時に，呼び出される関数を格納します。

なお，event_typeメンバにEAD_EVENT_TYPE_RECOVERED(2)が設定されている場合，関数の呼び出し直後にキャッシュを操作するAPIを実行すると，イベントが発生したEADSサーバの処理でエラーが発生するおそれがあります。エラーが発生した場合は，しばらくしてから再実行してください。

イベントが発生したEADSサーバとは，ead_node_eventcontext構造体のnodeidメンバが示すEADSサーバです。

(3)　引数

char

実行されるノードイベントリスナの名称を指定します。

ead_node_eventcontext

ノードイベントリスナ実行時に使用する情報を指すポインタを指定します。

void

ノードイベントリスナ追加時に指定した，ノードイベントリスナとのデータの伝達に使用するポインタを指定します。

(4)　注意事項

ポインタにNULLを設定した場合は，ノードイベントリスナの登録に失敗します。

ポインタに設定した関数が異常終了した場合，EADSクライアントがダウンするおそれがあります。

ポインタに設定した関数の第2引数（ead_node_eventcontext）に指定されたポインタは，その関数が終了すると自動で解放されます。

20.1.58　ead_cluster_eventcontext構造体（クラスタイベントリスナの情報）

ead_cluster_eventcontext構造体には，クラスタイベントリスナ実行時に使用する情報を格納します。

(1)　形式

struct ead_cluster_eventcontext {
  int        event_type;
  ead_node   node;
};

(2)　メンバの説明

event_type

発生したイベントの種別を格納します。

記号定数(値)

説明

EAD_EVENT_TYPE_ADDED(1)

EADSサーバがクラスタに追加されました。

node

イベントが発生したEADSサーバの情報を格納します。

20.1.59　ead_node_eventcontext構造体（ノードイベントリスナの情報）

ead_node_eventcontext構造体は，ノードイベントリスナ実行時に使用する情報を格納します。

(1)　形式

struct ead_node_eventcontext {
  int   event_type;
  int   nodeid;
  int   rangeid;
};

(2)　メンバの説明

event_type

発生したイベントの種別を格納します。

記号定数(値)

説明

EAD_EVENT_TYPE_ISOLATED(1)

障害の発生によって，EADSサーバが縮退しました。

EADSサーバが停止しました。

eztool isolateコマンドの実行によって，EADSサーバが縮退しました。

EAD_EVENT_TYPE_RECOVERED(2)

EADSサーバが復旧しました。

EAD_EVENT_TYPE_PROMOTED_TO_MASTER(3)

データを多重化している場合に，マスタとなるデータ（コピー元となるデータ）を格納するEADSサーバに変わりました。

EAD_EVENT_TYPE_PROMOTED_TO_SLAVE(4)

データを多重化している場合に，データのコピー先のEADSサーバに変わりました。

EAD_EVENT_TYPE_DEMOTED_TO_SLAVE(5)

データを多重化している場合に，マスタとなるデータ（コピー元となるデータ）を格納するEADSサーバから，データのコピー先のEADSサーバに変わりました。

EAD_EVENT_TYPE_NO_ROLE(6)

EADSサーバが，次のどちらでもなくなりました。

マスタとなるデータ（コピー元となるデータ）を格納するEADSサーバ

データのコピー先のEADSサーバ

nodeid

イベントが発生したEADSサーバIDを格納します。

rangeid

イベントが発生したレンジIDを格納します。

なお，event_typeにISOLATED(1)またはRECOVERED(2)が設定されていた場合，rangeidには無効な値(-1)が設定されます。

20.1.60　ead_node_eventtype構造体（ノードイベントリスナの実行契機）

ead_node_eventtype構造体は，ノードイベントリスナの実行契機を示す情報を格納します。

(1)　形式

struct ead_node_eventtype {
  EAD_BOOL   isolated;
  EAD_BOOL   recovered;
  EAD_BOOL   promoted_to_master;
  EAD_BOOL   promoted_to_slave;
  EAD_BOOL   demoted_to_slave;
  EAD_BOOL   no_role;
};

(2)　メンバの説明

メンバ

イベント

指定値

isolated

障害の発生によって，EADSサーバが縮退しました。

EADSサーバが停止しました。

eztool isolateコマンドの実行によって，EADSサーバが縮退しました。

該当するイベントの発生時にノードイベントリスナを実行する場合は，EAD_TRUEを指定します。

ノードイベントリスナを実行しない場合は，EAD_FALSEを指定します。

recovered

EADSサーバが復旧しました。

promoted_to_master

データを多重化している場合に，マスタとなるデータ（コピー元となるデータ）を格納するEADSサーバに変わりました。

promoted_to_slave

データを多重化している場合に，データのコピー先のEADSサーバに変わりました。

demoted_to_slave

データを多重化している場合に，マスタとなるデータ（コピー元となるデータ）を格納するEADSサーバから，データのコピー先のEADSサーバに変わりました。

no_role

EADSサーバが，次のどちらでもなくなりました。

マスタとなるデータ（コピー元となるデータ）を格納するEADSサーバ

データのコピー先のEADSサーバ

(3)　注意事項

すべてのメンバにEAD_FALSEを指定した場合は，ノードイベントリスナの登録に失敗します。

20.2　クライアントライブラリのエラーコード（C言語）

C言語のクライアントライブラリで使用できる関数は，引数error_codeに指定された領域に次に示すエラーコードを返却します。

エラーコードとエラーの内容，発生要因を次の表に示します。

表20‒2　C言語のクライアントライブラリで使用できる関数が返却するエラーコード

error_codeの値

記号定数

エラーの内容

発生要因

データを更新するAPIの処理状態※

クライアント定義のeads.client.compatパラメタに0300を指定した場合のerror_codeの値

0

EAD_OK

処理は正常に終了しました。

該当しません。

○

0

1000

EAD_ERROR_UNEXPECTED

予期しないエラーが発生しました。

プログラム内で予期しないエラーが発生しました。

△

1000

1010

EAD_ERROR_ILLEGAL_ARGUMENT

指定されたパラメタが不正です。

APIの引数に不正なパラメタが指定されています。

×

1010

1040

EAD_ERROR_CACHE_NOT_STARTED

キャッシュが開始されていないため実行できません。

キャッシュの終了後（ead_stop_cache()の実行後）に，データを操作しました。

×

1040

1100

EAD_ERROR_CACHE_NOT_NEED_STOP

すでに終了しているキャッシュに対して，終了処理をしています。

キャッシュはすでに終了しているため，ead_stop_cache()を実行する必要はありません。

−

1100

1110

EAD_ERROR_INVALID_NODE_ADDRESS

指定したEADSサーバのアドレス情報が，EADSクライアントが保持するEADSサーバのアドレス情報と一致しません。

APIの引数に指定したEADSサーバのアドレス情報（IPアドレスおよびポート番号）が，EADSクライアントが保持するどのEADSサーバのアドレス情報とも一致しません。

−

1110

1120

EAD_ERROR_EXCEED_MAX_CONNECTION_POOL_SIZE

同一接続先に対してプールしておくコネクションがすでに最大個数に達していて，すべて使用中です。

特定のEADSサーバに対して同時にリクエストしているスレッド数が，コネクションの最大個数を超えています。

×

1120

1200

EAD_ERROR_EVENTLISTENER_NOT_INITIALIZED

クラスタイベントリスナとノードイベントリスナを追加できません。

イベントリスナが無効になっている状態（クライアント定義のeads.client.eventListener.enableパラメタにtrueが指定されていない）で，次の処理を実行しました。

クラスタイベントリスナの追加（ead_add_cluster_eventlistener()の実行）

ノードイベントリスナの追加（ead_add_node_eventlistener()の実行）

−

−

1210

EAD_ERROR_EVENTLISTENER_EXIST

すでに追加されているクラスタイベントリスナまたはノードイベントリスナを，追加しようとしました。

次の要因が考えられます。

クラスタイベントリスナの追加後（ead_add_cluster_eventlistener()の実行後）に，クラスタイベントリスナの追加をした。

ノードイベントリスナの追加後（ead_add_node_eventlistener()の実行後）に，ノードイベントリスナの追加をした。

−

−

1220

EAD_ERROR_EVENTLISTENER_NOT_NEED_REMOVE

削除する必要がないクラスタイベントリスナまたはノードイベントリスナを，削除しようとしました。

次の要因が考えられます。

クラスタイベントリスナの削除後（ead_remove_cluster_eventlistener()の実行後）に，クラスタイベントリスナの削除をした。

ノードイベントリスナの削除後（ead_remove_node_eventlistener()の実行後）に，ノードイベントリスナの削除をした。

クラスタイベントリスナの追加（ead_add_cluster_eventlistener()の実行）をしていない状態で，クラスタイベントリスナの削除（ead_remove_cluster_eventlistener()の実行）をした。

ノードイベントリスナの追加（ead_add_node_eventlistener()の実行）をしていない状態で，ノードイベントリスナの削除（ead_remove_node_eventlistener()の実行）をした。

−

−

2000

EAD_ERROR_INIT

EADSクライアントの初期設定でエラーが発生しました。

ead_init_client()またはead_init_client_n()実行中に予期しないエラーが発生しました。

−

2000

2010

EAD_ERROR_INIT_PROPERTIES

クライアント定義ファイルが読み込めませんでした。

次の要因が考えられます。

クライアント定義ファイルが存在しない。

クライアント定義ファイルに読み込み権限がない。

格納先パス名がファイルではなくディレクトリを指している。

−

2010

2020

EAD_ERROR_INIT_INVALID_PROPERTY

クライアント定義ファイルの定義内容に不正があります。

クライアント定義ファイルの定義内容が不正です。

−

2020

2030

EAD_ERROR_INIT_LOGGER

ログの初期化に失敗しました。

次の要因が考えられます。

指定されたディレクトリ，または出力先のログファイルに書き込み権限がない。

指定されたディレクトリに同名のファイルが存在する。

指定されたパス名，またはファイル名が不正である。

ログファイル名と同名のディレクトリが存在した。

ログ出力を開始するためのメモリが不足している。

−

2030

2040

EAD_ERROR_INIT_CLUSTERINFO

クライアント定義ファイルで指定されたEADSサーバへの接続に失敗しました。

次の要因が考えられます。

クライアント定義に指定した接続先EADSサーバの指定に誤りがある。

接続先EADSサーバとの通信に失敗した。または接続先EADSサーバで障害が発生している。

接続先EADSサーバの最大同時接続数を超えた。

接続先EADSサーバがリクエストの受付を開始できる状態でない。

接続先EADSサーバでノンブロッキングI/O通信バッファが不足した。

接続先EADSサーバとの通信中にタイムアウトが発生した。

−

2040

3000

EAD_ERROR_NET

EADSサーバとの間で通信エラーが発生しました。

次の要因が考えられます。

通信中にネットワーク障害が発生した。

通信先のEADSサーバで問題が発生した。

通信先のホストで問題が発生した。

△

3000

3001

EAD_ERROR_NET_SEND_REQUEST

EADSサーバへのリクエスト送信処理で通信エラーが発生しました。

次の要因が考えられます。

通信中にネットワーク障害が発生した。

通信先のEADSサーバで問題が発生した。

通信先のホストで問題が発生した。

△

3000

3002

EAD_ERROR_NET_RECEIVE_RESPONSE

EADSサーバへのレスポンス受信処理で通信エラーが発生しました。

次の要因が考えられます。

通信中にネットワーク障害が発生した。

通信先のEADSサーバで問題が発生した。

通信先のホストで問題が発生した。

△

3000

3010

EAD_ERROR_NET_TIMEOUT

EADSサーバとの通信中にタイムアウトが発生しました。

次の要因が考えられます。

接続先EADSサーバで問題が発生した。

接続先のホストで問題が発生した。

ネットワークで問題が発生した。

タイムアウト時間の設定が誤っている。

△

3010

3011

EAD_ERROR_NET_SEND_TIMEOUT

EADSサーバへのリクエスト送信処理でタイムアウトが発生しました。

次の要因が考えられます。

接続先EADSサーバで問題が発生した。

接続先のホストで問題が発生した。

ネットワークで問題が発生した。

タイムアウト時間の設定が誤っている。

△

3010

3012

EAD_ERROR_NET_RECEIVE_TIMEOUT

EADSサーバへのレスポンス受信処理でタイムアウトが発生しました。

次の要因が考えられます。

接続先EADSサーバで問題が発生した。

接続先のホストで問題が発生した。

ネットワークで問題が発生した。

タイムアウト時間の設定が誤っている。

△

3010

3020

EAD_ERROR_NET_CONNECTION

EADSサーバとの接続に失敗しました。

次の要因が考えられます。

接続先EADSサーバで問題が発生した。

接続先EADSサーバに関する設定が誤っている。

ネットワークで問題が発生した。

タイムアウト時間の設定が誤っている。

×

3020

3030

EAD_ERROR_NET_PROTOCOL

EADSサーバとの通信中にプロトコル障害が発生しました。

次の要因が考えられます。

接続先EADSサーバが誤っている。

実行したユーザファンクションがバイト配列，またはNULL以外を戻り値として返却した。

接続しているクラスタのキャッシュがJava言語のクライアントライブラリで使用中である。

△

3030

3040

EAD_ERROR_NET_CLUSTERINFO

接続できる，すべてのEADSサーバへの接続に失敗しました。

次の要因が考えられます。

接続先EADSサーバで問題が発生した。

接続先EADSサーバに関する設定が誤っている。

ネットワークで問題が発生した。

指定したキャッシュが接続先EADSサーバに存在しない。

接続先EADSサーバが閉塞状態となっている。

EADSクライアントが保持するクラスタ構成情報と，再起動した接続先EADSサーバが保持するクラスタ構成情報が一致しない。

接続先EADSサーバの最大同時接続数を超えた。

接続先EADSサーバとの通信中にタイムアウトが発生した。

−

3040

4000

EAD_ERROR_SERVER

予期しない内部エラーがEADSサーバで発生しました。

予期しない内部エラーが接続先EADSサーバで発生しました。

△

4000

4010

EAD_ERROR_SERVER_UNSUPPORTED_REQUEST

EADSクライアントが送信したリクエストを，接続先EADSサーバが処理できませんでした。

次の要因が考えられます。

データが破損しているなどの理由で，接続先EADSサーバがリクエストを処理できない。

接続先EADSサーバがサポートしていないAPIを使用した。

×

4010

4030

EAD_ERROR_SERVER_UNAVAILABLE

EADSサーバが一時的に利用できません。

接続先EADSサーバの最大同時接続数を超えました。

×

4030

4040

EAD_ERROR_SERVER_INCOMPATIBLE_CLUSTERINFO

接続先EADSサーバが保持するクラスタ構成情報と，EADSクライアントが保持するクラスタ構成情報に互換性がありません。

再起動した接続先EADSサーバのクラスタ構成情報が，EADSクライアントが保持するクラスタ構成情報と一致しません。

×

4040

4060

EAD_ERROR_SERVER_REPLACE_METHOD_NOT_MATCHED

ead_replace()実行時，すでに格納されているvalueが条件に指定したvalueと一致しなかったため，valueを格納できませんでした。

ead_replace()で条件に指定したvalueとキャッシュ上のvalueが一致しませんでした。

×

4060

4070

EAD_ERROR_SERVER_REPLACE_METHOD_KEY_NOT_EXIST

ead_replace()実行時，指定したkeyが存在しなかったため（keyに関連づけられたvalueが存在しなかったため），処理を続行できませんでした。

ead_replace()で指定したkeyに関連づけられたvalueが存在しなかったため，valueの比較ができませんでした。

×

4070

4080

EAD_ERROR_SERVER_CREATE_METHOD_KEY_EXIST

ead_create()実行時，指定したkeyがすでに存在したため，valueを格納できませんでした。

ead_create()で指定したkeyに関連づけられたvalueがすでに格納されています。

×

4080

4090

EAD_ERROR_SERVER_UPDATE_METHOD_KEY_NOT_EXIST

ead_update()実行時，指定したkeyが存在しなかったため，valueを格納できませんでした。

ead_update()で指定したkeyに関連づけられたvalueが格納されていません。

×

4090

4100

EAD_ERROR_SERVER_NOT_RUNNING

リクエストを処理できるEADSサーバがありません。

次の要因が考えられます。

EADSクライアントからのリクエストを処理するEADSサーバと，データのコピー先EADSサーバがすべて縮退状態または停止状態になっている。

クラスタが稼働していない状態になっている。

×

4100

4110

EAD_ERROR_SERVER_STATUS

EADSサーバの状態が，リクエストを実行できる状態ではありません。

接続先EADSサーバの状態がリクエストを実行できる状態でないため，リクエストを処理できませんでした。

×

4000

4120

EAD_ERROR_SERVER_NOT_EXECUTE_REQUEST_TEMPORARILY

EADSサーバは，一時的にリクエストを実行できません。

スケールアウト処理中のため，受付済みのリクエストを一時的に処理できませんでした。スケールアウト処理が完了するまで待機しないでエラーとなる設定になっています。そのため，スケールアウト処理が完了したあとに，リクエストを再実行してください。

×

4000

4200

EAD_ERROR_SERVER_CACHE

キャッシュに対する操作を実行できませんでした。

接続先EADSサーバで何らかの問題が発生しているため，キャッシュを操作できない状態になっています。操作を中止してEADSサーバの状態を確認してください。

×

4000

4210

EAD_ERROR_SERVER_CACHE_NOT_FOUND

指定したキャッシュが存在しないため，キャッシュに対する操作を実行できませんでした。

指定したキャッシュが存在しないため，キャッシュを操作できませんでした。指定したキャッシュに対する操作を中止して，EADSサーバの状態を確認してください。

×

4000

4230

EAD_ERROR_SERVER_CACHE_CLUSTER_UPDATE

リクエスト処理中にクラスタ構成変更が発生したため，キャッシュに対する操作を実行できませんでした。

リクエスト処理中にクラスタ構成変更が発生したため，キャッシュを操作できませんでした。クラスタ構成の変更が完了したあとに，キャッシュに対する操作を再度実行してください。

×

4000

4300

EAD_ERROR_SERVER_CACHE_BEFORE_REPLICATION

キャッシュに対する操作中に内部エラーが発生しましたが，データの多重化は発生しませんでした。

接続先EADSサーバでキャッシュに対する操作中，内部エラーが発生しました。データの多重化は発生していないため，ほかの正常なEADSサーバへの影響はありません。EADSサーバが縮退したあと，正常なEADSサーバに接続先が変更されると，同じ操作から処理を再開できます。

×

4000

4310

EAD_ERROR_SERVER_CACHE_AFTER_REPLICATION

キャッシュに対する操作中にEADSサーバで内部エラーが発生し，データ更新処理が失敗しました。

接続先EADSサーバでキャッシュに対する操作中，内部エラーが発生しました。データの多重化はすでに実行されているため，問題が発生した接続先EADSサーバが縮退したあとに正常なサーバに接続先が変更されると，データが更新された状態から操作を再開できます。

△

4000

4400

EAD_ERROR_SERVER_LIMIT_RECEIVE_BUFFER

EADSサーバのリクエスト受信処理でノンブロッキングI/O通信バッファが不足しました。

接続先EADSサーバのリクエスト受信処理でノンブロッキングI/O通信バッファが不足しているため，リクエストを処理できませんでした。

×

4000

4410

EAD_ERROR_SERVER_LIMIT_SEND_BUFFER

EADSサーバのレスポンス送信処理でノンブロッキングI/O通信バッファが不足しました。

接続先EADSサーバのレスポンス送信処理でノンブロッキングI/O通信バッファが不足しているため，レスポンスを送信できませんでした。

△

4000

4700

EAD_ERROR_SERVER_FUNCTION_EXECUTE

EADSサーバのユーザファンクション内でエラーが発生しました。

接続先EADSサーバのユーザファンクション内でエラーが発生しました。ユーザファンクション内の処理を確認してください。

−

4000

4710

EAD_ERROR_SERVER_FUNCTION_RETURN_SERIALIZE

EADSサーバでユーザファンクションの戻り値のシリアライズに失敗しました。

接続先EADSサーバで実行したユーザファンクションの戻り値に，シリアライズできないオブジェクトを指定しています。

−

4000

4730

EAD_ERROR_SERVER_FUNCTION_NOT_FOUND

指定したユーザファンクション名のユーザファンクションが，EADSサーバに存在しません。

指定したユーザファンクション名のユーザファンクションが，接続先EADSサーバに存在しません。

−

4000

4800

EAD_ERROR_SERVER_LIMIT_EXTERNAL_MEMORY

データを格納するメモリの容量が不足しています。

接続先EADSサーバでデータを格納するメモリ（Explicitヒープ）の容量が不足しているため，リクエストを処理できませんでした。

×

4000

4810

EAD_ERROR_SERVER_LIMIT_CACHE_FILE

データを格納するキャッシュファイルの容量が不足しています。

接続先EADSサーバでデータを格納するキャッシュファイルの容量が不足しているため，リクエストを処理できませんでした。

×

4000

4820

EAD_ERROR_SERVER_LIMIT_KV_COUNT

EADSサーバに格納できるkeyの数が上限に達しています。

接続先EADSサーバに格納できるkeyの数が上限に達しているため，リクエストを処理できませんでした。

×

4000

4830

EAD_ERROR_SERVER_LIMIT_KEY_VALUE_LENGTH

指定したkey，グループ名，またはvalueのサイズがクラスタに格納できる最大サイズを超えています。

指定したkey，グループ名，またはvalueのサイズがクラスタに格納できる最大サイズを超えているため，リクエストを処理できませんでした。

×

4000

4840

EAD_ERROR_SERVER_LIMIT_EXTERNAL_MEMORY_TEMPORARILY

接続先EADSサーバで，データを格納するメモリの容量が一時的に不足しています。

リバランス処理中は，EADSサーバでデータを格納するメモリ（Explicitヒープ）の容量が一時的に減少します。そのため，接続先EADSサーバでリクエストを処理できませんでした。

×

4000

4850

EAD_ERROR_SERVER_LIMIT_KV_COUNT_TEMPORARILY

接続先EADSサーバで，格納できるkeyの数が一時的に上限に達しています。

リバランス処理中は，EADSサーバに格納できるkeyの数の上限が一時的に減少します。そのため，接続先EADSサーバでリクエストを処理できませんでした。

×

4000

4999

EAD_ERROR_SERVER_UNKNOWN

解析できない内部エラーがEADSサーバで発生しました。

接続先EADSサーバで内部エラーが発生しましたが，接続先EADSサーバのバージョンがEADSクライアントライブラリのバージョンより新しいため，解析できませんでした。

△

4000

5000

EAD_ERROR_CLIENT

EADSクライアントで内部エラーが発生しました。

クライアントライブラリ内で予期しないエラーが発生しました。

△

5000

5010

EAD_ERROR_CLIENT_OUT_OF_MEMORY

EADSクライアント内でメモリ確保に失敗しました。

クライアントライブラリ内でメモリ確保に失敗しました。

△

5010

5020

EAD_ERROR_CLIENT_BATCH_CANCEL

一括操作の実行をキャンセルしました。

一括操作を継続できないため，未実行の操作をキャンセルしました。

×

5020

6000

EAD_ERROR_BATCH_FAILED_ALL

一括操作のすべての操作に失敗しました。

データを一括で操作するAPIで実行しようとした操作は，すべて失敗しました。

−

6000

6010

EAD_ERROR_BATCH_FAILED_PART

一括操作の一部の操作に失敗しました。

データを一括で操作するAPIで実行しようとした操作のうち，一部が失敗しました。

−

6010

注※

ead_put()，ead_remove()などのデータを更新するAPIの実行時にエラーコードが出力された場合に，データが更新されているかどうかを表しています。

記号の意味を次に示します。

○：データは更新されています。

△：データが更新されているかどうかは不明です。処理が完了したかどうか，確認してください。

×：データは更新されていません。

−：ead_put()，ead_remove()などのデータを更新するAPIの実行時に，このエラーコードは出力されません。

第5編　よく使用する一覧集・メッセージ

21　よく使用する一覧集

この章では，パラメタ，コマンド，API，エラーコード，および最小値・最大値の一覧について説明します。

21.1　パラメタ一覧

EADSサーバ，EADSクライアントで使用する定義ファイルごとのパラメタの一覧について説明します。

21.1.1　EADSサーバで使用する定義ファイル

(1)　サーバ定義ファイル

サーバ定義ファイルに指定できるパラメタの一覧を次の表に示します。

なお，必ず指定するパラメタを太字で表記しています。

環境依存パラメタの設計については，「7.　環境依存パラメタを設計する（EADSサーバ）」を参照してください。

チューニングパラメタの設計については，「9.　チューニングパラメタを設計する」を参照してください。

表21‒1　サーバ定義ファイルに指定できるパラメタ一覧

項番

分類

パラメタ名

指定する内容

1

通信

（「7.3　通信に依存するパラメタの設計」参照）

eads.server.address

EADSサーバのIPアドレスまたはホスト名

2

eads.server.port

EADSサーバのポート番号

3

eads.replication.port

EADSサーバ間の通信に使用するポート番号

4

eads.failureDetector.port

EADSサーバ間の生存確認に使用するポート番号

5

eads.transfer.port

EADSサーバの復旧処理，スケールアウト処理，またはリバランス処理に使用するポート番号

6

eads.admin.operation.port

コマンドが使用するポート番号

7

ログファイル

（「7.4　ログファイルに依存するパラメタの設計」参照）

eads.logger.dir

ログファイルの出力先ディレクトリのパス

8

eads.logger.message.rotationStyle

メッセージログのローテーション方式

9

eads.logger.message.filesize

メッセージログの1ファイル当たりのファイルサイズ

10

eads.logger.message.filenum

メッセージログのファイル数

11

eads.logger.message.console.enable

メッセージログの標準出力への出力を有効にするか，無効にするか

12

eads.logger.exception.rotationStyle

例外ログのローテーション方式

13

eads.logger.exception.filesize

例外ログの1ファイル当たりのファイルサイズ

14

eads.logger.exception.filenum

例外ログのファイル数

15

eads.user.logger.rotationStyle

ユーザログのローテーション方式

16

eads.user.logger.filesize

ユーザログの1ファイル当たりのファイルサイズ

17

eads.user.logger.filenum

ユーザログのファイル数

18

eads.user.logger.exception.rotationStyle

ユーザ例外ログのローテーション方式

19

eads.user.logger.exception.filesize

ユーザ例外ログの1ファイル当たりのファイルサイズ

20

eads.user.logger.exception.filenum

ユーザ例外ログのファイル数

21

eads.cache.logger.diskCache.rotationStyle

キャッシュファイル操作ログのローテーション方式

22

eads.cache.logger.diskCache.filesize

キャッシュファイル操作ログの1ファイル当たりのファイルサイズ

23

eads.cache.logger.diskCache.filenum

キャッシュファイル操作ログのファイル数

24

eads.statistics.interval

統計情報を出力する間隔

25

eads.statistics.filenum

統計情報の取得日数

26

eads.statistics.compaction.effect.division

統計情報で使用する，コンパクションの効果のファイル数の分布を分割する個数

27

eads.java.log.filesize

Javaログ（JavaVMの保守情報）のファイルサイズ

28

eads.java.log.filenum

Javaログ（JavaVMの保守情報）のファイル数

29

バックアップファイル

（「7.6　バックアップファイルに依存するパラメタの設計」参照）

eads.admin.backup.dir

ストアデータファイルの出力先パス名

30

メモリ・バッファ

（「9.1　メモリ・バッファに関連するパラメタの設計」参照）

eads.server.connection.buffersize

コネクション単位で確保する，データの送受信で使用する作業領域のバッファサイズ

31

eads.replication.connection.buffersize

合意メッセージの送受信バッファサイズ

32

eads.replication.sendQueue.length

合意メッセージの送信キューの長さ

33

eads.replication.sendQueue.datasize

合意メッセージの送信キューに格納できるデータの最大サイズ

34

eads.transfer.connection.buffersize

復旧処理，スケールアウト処理，およびリバランス処理で使用するデータの送受信バッファサイズ

35

eads.transfer.datasize

復旧処理およびスケールアウト処理で送信するデータサイズ

36

eads.rebalance.transfer.datasize

リバランス処理のデータ転送で送信するデータサイズ

37

eads.replication.fillgap.copy.datasize

EADSサーバに対して，更新操作の履歴の補完処理でデータをコピーする際，1回当たりに送信するデータサイズ

38

eads.admin.operation.resume.send.datasize

eztool resumeコマンド実行時に転送する差分のデータサイズ

39

eads.java.nio.maxCachedBufferSize

EADSサーバでキャッシュされる1ダイレクトバッファ当たりのサイズの上限

40

スレッドプールおよびコネクションプール

（「9.2　スレッドプールおよびコネクションプールに関連するパラメタの設計」参照）

eads.server.maxConnections

EADSサーバへの最大同時接続数

41

eads.server.cache.maxExecuteThreads

データ操作の最大同時実行スレッド数

42

eads.server.function.maxExecuteThreads

ユーザファンクション全体の最大同時実行スレッド数

43

タイムアウト

（「9.3　タイムアウトに関連するパラメタの設計」参照）

eads.server.connection.timeout

クラスタ構成情報の更新確認やデータ送受信のタイムアウト時間

44

eads.admin.operation.connection.timeout

特定のコマンド実行時の，EADSサーバ間の接続やデータ送受信のタイムアウト時間

45

eads.failureDetector.heartbeat.interval

ハートビートの送信間隔

46

eads.failureDetector.heartbeat.timeout

ハートビートのタイムアウト時間

47

eads.failureDetector.connection.timeout

生存確認の接続タイムアウト時間

48

eads.failureDetector.read.timeout

生存確認の受信タイムアウト時間

49

eads.failureDetector.retry

生存確認タイムアウト時のリトライ回数

50

eads.failureDetector.assertive.threshold

EADSサーバダウンに同意するEADSサーバ数

51

eads.admin.boot.timeout

クラスタを構成する全EADSサーバが開始するまでの最大待ち時間

52

eads.server.connection.keepAlive.timeout

EADSクライアント・EADSサーバ間の接続を切断するまでの時間

53

eads.admin.operation.isolate.gracefulstop.waitTime

eztool isolateコマンドを実行したEADSサーバのクラスタ構成情報の更新が完了してから，縮退処理が完了するまでの時間

54

eads.replication.consensus.timeout

合意処理のタイムアウト時間

55

eads.transfer.timeout

復旧処理，スケールアウト処理，およびリバランス処理でのデータ送信タイムアウト時間

56

eads.transfer.interval

復旧処理およびスケールアウト処理でのデータ送信間隔

57

eads.rebalance.transfer.interval

リバランス処理のデータ転送での送信間隔

58

eads.replication.fillgap.copy.timeout

更新操作の履歴の補完処理で，更新操作の履歴を送信する際の送信タイムアウト時間

59

eads.admin.operation.resume.send.interval

eztool resumeコマンド実行時の差分転送間隔

60

eads.server.eventListener.notify.retry.timeout

イベントリスナのイベント再送のタイムアウト時間

61

キャッシュ

（「7.7　キャッシュの運用に依存するパラメタの設計」参照）

eads.cache.disk.getError.isolate.enable

ディスクキャッシュおよび2Wayキャッシュで，データの整合性に影響がないディスクI/Oエラーが発生した場合に，EADSサーバを縮退させるか，縮退させないか

62

ノンブロッキングI/O通信制御（「7.8　ノンブロッキングI/O通信制御に依存するパラメタの設計」参照）

eads.server.nonBlocking.enable

ノンブロッキングI/O通信制御が有効かどうか

63

eads.server.nonBlocking.processorThreads

リクエスト処理スレッド数

64

eads.server.nonBlocking.selectorThreads

セレクタスレッド数

65

eads.server.nonBlocking.maxAllocateConnections

最大同時割当数

66

eads.statistics.nonBlocking.enable

ノンブロッキングI/O通信制御の統計情報出力が有効かどうか

67

スケールアウト処理・リバランス処理（「7.9　スケールアウト処理・リバランス処理に依存するパラメタの設計」参照）

eads.scaling.moveDataWithUpdateRequest.enable

スケールアウト処理中またはリバランス処理中の更新リクエスト実行時に，データを移動させるかどうか

68

eads.scaling.moveData.interval

スケールアウト処理中，またはリバランス処理中のデータの移動間隔

(2)　クラスタ定義ファイル

クラスタ定義ファイルに指定できるパラメタの一覧を次の表に示します。

なお，必ず指定するパラメタを太字で表記しています。

環境依存パラメタの設計については，「7.　環境依存パラメタを設計する（EADSサーバ）」を参照してください。

表21‒2　クラスタ定義ファイルに指定できるパラメタ一覧

項番

分類

パラメタ名

指定する内容

1

クラスタ構成

（「7.5　クラスタ構成に依存するパラメタの設計」参照）

eads.node.＜EADSサーバID＞.address

クラスタを構成するEADSサーバのIPアドレス

2

eads.node.＜EADSサーバID＞.port

クラスタを構成するEADSサーバのポート番号

3

eads.node.＜EADSサーバID＞.position

EADSサーバの位置（ハッシュ値）

(3)　共通設定ファイル

共通設定ファイルに指定できるパラメタの一覧を次の表に示します。

環境依存パラメタの設計については，「7.　環境依存パラメタを設計する（EADSサーバ）」を参照してください。

チューニングパラメタの設計については，「9.　チューニングパラメタを設計する」を参照してください。

表21‒3　共通設定ファイルに指定できるパラメタ一覧

項番

分類

パラメタ名

指定する内容

1

クラスタ構成

（「7.5　クラスタ構成に依存するパラメタの設計」参照）

eads.failureDetector.heartbeat.address

EADSサーバ間のハートビートの送信に使用するIPアドレス（マルチキャストアドレス）

2

eads.failureDetector.heartbeat.port

EADSサーバ間のハートビートの送信に使用するポート番号

3

eads.replication.factor

データの多重度

4

バックアップファイル

（「7.6　バックアップファイルに依存するパラメタの設計」参照）

eads.admin.backup.exportCommand.generation.maxNum

eztool exportコマンド実行時に出力されるストアデータファイルの世代数の上限値

5

eads.admin.backup.stopCommand.generation.maxNum

eztool stopコマンド実行時に出力されるストアデータファイルの世代数の上限値

6

メモリ・バッファ

（「9.1　メモリ・バッファに関連するパラメタの設計」参照）

eads.cache.key.maxsize

クラスタに格納できるkeyの最大サイズ

7

eads.replication.preparations

一度に合意できる処理の最大数

8

eads.replication.external.heapsize

更新操作の履歴が格納される領域のサイズ

9

eads.java.heapsize

Javaヒープサイズ

10

eads.java.external.heapsize

Explicitヒープサイズ

11

eads.java.metaspace.maxsize

metaspace領域のサイズ

12

eads.cache.limiter.enable

データ総量監視機能を有効にするかどうか

13

eads.cache.keyCount

データ総量監視機能で監視する，1レンジ当たりのデータ件数

14

ノンブロッキングI/O通信制御（「7.8　ノンブロッキングI/O通信制御に依存するパラメタの設計」参照）

eads.server.nonBlocking.external.heapsize

ノンブロッキングI/O通信バッファサイズ（単位：メガバイト）

15

スケールアウト処理・リバランス処理（「7.9　スケールアウト処理・リバランス処理に依存するパラメタの設計」参照）

eads.scaling.requestQueuing.enable

スケールアウト処理中に，受付済みで未実行のリクエストをキューイングするかエラーにするか

16

eads.scaling.eviction.targetKeyCount

データ自動削除機能を使用するキャッシュが存在する場合のリバランスの移動レンジのキー数

(4)　コマンド定義ファイル

コマンド定義ファイルに指定できるパラメタの一覧を次の表に示します。

環境依存パラメタの設計については，「7.　環境依存パラメタを設計する（EADSサーバ）」を参照してください。

チューニングパラメタの設計については，「9.　チューニングパラメタを設計する」を参照してください。

表21‒4　コマンド定義ファイルに指定できるパラメタ一覧

項番

分類

パラメタ名

指定する内容

1

通信

（「7.3　通信に依存するパラメタの設計」参照）

eads.command.connect.sub.servers

eztoolコマンドの接続先EADSサーバを識別するための名称（任意の名称）

2

eads.command.＜接続先EADSサーバ＞.address

eztoolコマンドの接続先EADSサーバのIPアドレスまたはホスト名

3

eads.command.＜接続先EADSサーバ＞.admin.operation.port

eztoolコマンドの接続先EADSサーバのポート番号

4

ログファイル

（「7.4　ログファイルに依存するパラメタの設計」参照）

eads.command.logger.dir

ログファイルの出力先ディレクトリのパス

5

eads.command.logger.message.rotationStyle

メッセージログのローテーション方式

6

eads.command.logger.message.filesize

メッセージログの1ファイル当たりのファイルサイズ

7

eads.command.logger.message.filenum

メッセージログのファイル数

8

eads.command.logger.exception.rotationStyle

例外ログのローテーション方式

9

eads.command.logger.exception.filesize

例外ログの1ファイル当たりのファイルサイズ

10

eads.command.logger.exception.filenum

例外ログのファイル数

11

タイムアウト

（「9.3　タイムアウトに関連するパラメタの設計」参照）

eads.command.connection.timeout

コマンド実行時のEADSサーバとの通信の接続タイムアウト時間

12

eads.command.common.read.timeout

コマンド実行時のEADSサーバとの通信の受信タイムアウト時間

13

eads.command.common.execution.timeout

コマンド実行開始からのタイムアウト時間

14

eads.command.＜サブコマンド名＞.read.timeout

特定のサブコマンド実行時の，EADSサーバとの通信の受信タイムアウト時間

15

eads.command.＜サブコマンド名＞.execution.timeout

特定のサブコマンドの実行開始からのタイムアウト時間

16

コマンドの運用

（「9.4　コマンドの運用に関連するパラメタの設計」参照）

eads.command.compat

コマンドの表示結果のバージョン，およびコマンドが返却するリターンコードのバージョン

17

コンパクション

（「9.6　コンパクションに関連するパラメタの設計」参照）

eads.command.compaction.effect.threshold

次に示すコマンドで使用する，コンパクションの効果のしきい値

eztool listecf

eztool compaction

18

eads.command.compaction.effect.division

eztool listecfコマンドで使用する，コンパクションの効果のファイル数の分布を分割する個数

(5)　キャッシュ定義ファイル

キャッシュ定義ファイルに指定できるパラメタの一覧を次の表に示します。

なお，必ず指定するパラメタを太字で表記しています。

環境依存パラメタの設計については，「7.　環境依存パラメタを設計する（EADSサーバ）」を参照してください。

表21‒5　キャッシュ定義ファイルに指定できるパラメタ一覧

項番

分類

パラメタ名

指定する内容

1

キャッシュ

（「7.7　キャッシュの運用に依存するパラメタの設計」参照）

eads.cache.type

キャッシュタイプ

2

eads.cache.eviction.policy

データの自動削除ポリシー

3

eads.cache.eviction.keyCount

データ自動削除機能でデータを削除するためのしきい値として使用する1レンジ当たりのデータ件数

4

eads.cache.disk.info.dir

キャッシュ情報ファイルおよびキャッシュインデックスファイルの格納先

5

eads.cache.disk.<n>.dir※

キャッシュデータファイルの格納先

6

eads.cache.disk.filesize

キャッシュデータファイルのファイルサイズ

7

eads.cache.disk.filenum

キャッシュデータファイルの面数

8

eads.cache.disk.blocksize

キャッシュデータファイルに1回で書き込むデータサイズ

9

eads.cache.disk.transfer.interval

ディスクキャッシュ，および2Wayキャッシュの復旧処理でのデータ送信間隔

10

eads.cache.disk.transfer.datasize

ディスクキャッシュ，および2Wayキャッシュの復旧処理で送信するデータサイズ

11

eads.cache.disk.highSpecDrive.enable

高性能SSDに対応したファイルアクセスをするかどうか

12

eads.cache.disk.persistentMemory.enable

ディスクキャッシュの格納先として，不揮発性メモリを使用するかどうか

13

eads.cache.disk.persistentMemory.device※

キャッシュデータファイルおよびキャッシュインデックスファイルの格納先となる不揮発性メモリのデバイスファイル

14

eads.cache.disk.persistentMemory.blocksize

不揮発性メモリ上のキャッシュデータファイルに1回に書き込むデータサイズ

注※

ディスクキャッシュの格納先として不揮発性メモリを使用しない場合はeads.cache.disk.<n>.dirパラメタが，使用する場合はeads.cache.disk.persistentMemory.deviceパラメタが必ず指定するパラメタになります。

(6)　ファンクション定義ファイル

ファンクション定義ファイルに指定できるパラメタの一覧を次の表に示します。

チューニングパラメタの設計については，「9.　チューニングパラメタを設計する」を参照してください。

表21‒6　ファンクション定義ファイルに指定できるパラメタ一覧

項番

分類

パラメタ名

指定する内容

1

スレッドプールおよびコネクションプール

（「9.2　スレッドプールおよびコネクションプールに関連するパラメタの設計」参照）

eads.function.＜ユーザファンクション名＞.maxExecuteThreads

ユーザファンクション単位の最大同時実行スレッド数

21.1.2　EADSクライアントで使用する定義ファイル

(1)　クライアント定義ファイル

クライアント定義ファイルに指定できるパラメタの一覧を次の表に示します。

なお，必ず指定するパラメタを太字で表記しています。

環境依存パラメタの設計については，「8.　環境依存パラメタを設計する（EADSクライアント）」を参照してください。

チューニングパラメタの設計については，「9.　チューニングパラメタを設計する」を参照してください。

表21‒7　クライアント定義ファイルに指定できるパラメタ一覧

項番

分類

パラメタ名

指定する内容

1

通信

（「8.3　通信に依存するパラメタの設計」参照）

eads.client.connect.servers

EADSクライアントの初期設定時に接続する，接続先EADSサーバを識別するための名称（任意の名称）

2

eads.client.＜接続先EADSサーバ＞.address

EADSクライアントの初期設定時に接続する，接続先EADSサーバのIPアドレスまたはホスト名

3

eads.client.＜接続先EADSサーバ＞.port

EADSクライアントの初期設定時に接続する，接続先EADSサーバのポート番号

4

ログファイル

（「8.4　ログファイルに依存するパラメタの設計」参照）

eads.client.logger.dir

ログファイルの出力先ディレクトリのパス

5

eads.client.logger.message.filesize

メッセージログの1ファイル当たりのファイルサイズ

6

eads.client.logger.message.filenum

メッセージログのファイル数

7

eads.client.logger.message.console.enable

メッセージログの標準出力への出力を有効にするか，無効にするか

8

eads.client.logger.initErrorOut

ロガーの初期化失敗時に，標準エラー出力にエラーメッセージを出力するかどうか

9

eads.client.logger.maintenance.filesize

保守ログの1ファイル当たりのファイルサイズ

10

eads.client.logger.maintenance.filenum

保守ログのファイル数

11

メモリ・バッファ

（「9.1　メモリ・バッファに関連するパラメタの設計」参照）

eads.client.connection.buffersize

EADSクライアントがデータの送受信で使用するバッファサイズ

12

スレッドプールおよびコネクションプール

（「9.2　スレッドプールおよびコネクションプールに関連するパラメタの設計」参照）

eads.client.connectionPool.poolsize

同一接続先に対してプールしておくコネクションの最大個数

13

eads.client.connectionPool.exceedMaxSizeError.enable

コネクションがすでに最大個数に達していて，すべて使用中の場合に，EADSクライアントからのリクエストをエラーにするかどうか

14

タイムアウト

（「9.3　タイムアウトに関連するパラメタの設計」参照）

eads.client.connection.send.timeout

クラスタ構成情報の更新確認やデータ送信のタイムアウト時間

15

eads.client.connection.receive.timeout

クラスタ構成情報の更新確認やデータ受信のタイムアウト時間

16

eads.client.clusterInfo.update.interval

クラスタ構成情報の更新確認を行う間隔

17

eads.client.eventListener.enable

イベントリスナを使用するかどうか

18

eads.client.eventListener.reconnect.interval

イベントリスナ用のコネクションを再接続する間隔

19

APの運用（「9.5　APの運用に関連するパラメタの設計」参照）

eads.client.batchOperation.unit

一括操作を実行する際に，一度のEADSサーバとの通信で実行するデータ操作の回数

20

eads.client.compat

EADSクライアントが出力するエラーコードのバージョン

21.2　コマンド一覧

EADSのコマンドの一覧を次の表に示します。

表21‒8　EADSのコマンド一覧

項番

利用シーン

コマンド名

実行対象

1

開始

EADSサーバを開始する

ezstart

EADSサーバ

2

EADSサーバをフォアグラウンドで開始する

ezserver

EADSサーバ

3

運用操作

運用操作を行う

eztool

クラスタ

または

EADSサーバ

eztoolコマンドに指定できるサブコマンドの一覧を次の表に示します。

表21‒9　eztoolコマンドに指定できるサブコマンド一覧

項番

利用シーン

サブコマンド名

実行対象

1

閉塞と閉塞解除

クラスタを閉塞状態にする

close

クラスタ

2

クラスタの閉塞状態を解除する

open

クラスタ

3

状態確認

クラスタの状態を確認する

status

クラスタ※1

4

最新パラメタの一覧を表示する

listconf

クラスタ※1

5

キャッシュの一覧を表示する

listcache

クラスタ

6

ストアデータファイルの一覧を表示する

listesd

クラスタ

7

グループ名の一覧を表示する

listgroup

クラスタ※1

8

keyの一覧を表示する

listkey

クラスタ※1※2

9

データの格納先を表示する

getposition

クラスタ

10

レンジおよびキャッシュの使用状況を確認する

storeusage

クラスタ

11

排他制御

排他を解除する

unlock

クラスタ

12

メモリ・ディスク管理

キャッシュを作成する

createcache

クラスタ

13

キャッシュを削除する

deletecache

クラスタ

14

データ移行

データを書き出す

export

クラスタ※1

15

データを読み込む

import

クラスタ

16

ストアデータファイルを削除する

deleteesd

クラスタ

17

データ操作

指定したデータを格納する

put

EADSサーバ

18

指定したデータを取得する

get

EADSサーバ

19

指定したデータを削除する

remove

EADSサーバ

20

指定した範囲のデータをすべて削除する

removeall

クラスタ※1※2

21

ユーザファンクション

ユーザファンクションの実行可否を表示する

listfunc

クラスタ

22

ユーザファンクションを実行する

execfunc

クラスタ※1※2※3

23

負荷分散

レンジに格納できるkeyの数を均等にする

rebalance

クラスタ

24

永続化

永続データに関する情報の一覧を表示する

listecf

クラスタ※1

25

キャッシュを再開する

resume

クラスタ

26

キャッシュファイルを書き出す

exportecf

クラスタ※5

27

キャッシュファイルを読み込む

importecf

クラスタ

28

キャッシュファイルを削除する

deleteecf

クラスタ※5

29

キャッシュデータファイルをコンパクションする

compaction

EADSサーバ※4

30

トラブルシュート

スレッドダンプを出力する

threaddump

EADSサーバ

31

ログ，設定情報，ハードウェア情報，およびネットワーク情報を収集する

snapshot

EADSサーバ

32

終了

クラスタ内の全EADSサーバを終了する

stop

クラスタ

33

EADSサーバを強制終了する

forcestop

EADSサーバ

34

EADSサーバを縮退させる

isolate

EADSサーバ

注※1

-sまたは--singleオプションを指定すると，コマンドを実行したEADSサーバが対象となります。

注※2

-gまたは--groupオプションを指定すると，指定したグループ名のハッシュ値から決定したEADSサーバが対象となります。

注※3

-kまたは--keyオプションを指定すると，指定したkeyが格納されているEADSサーバが対象となります。

注※4

--cacheオプションを指定すると，コマンドを実行したキャッシュが対象となります。

--rangeオプションを指定すると，コマンドを実行したレンジが対象となります。

注※5

-lまたは--localオプションを指定すると，コマンドを実行したEADSサーバが対象となります。

21.3　API一覧

APを作成する言語ごとのAPIの一覧について説明します。

21.3.1　Java言語のライブラリが提供するAPI

(1)　Java言語のクライアントライブラリが提供するAPI

Java言語のクライアントライブラリでは，EADSのAPIとして次の表に示すAPIを提供します。

表21‒10　Java言語のクライアントライブラリで使用できるAPI

項番

インタフェース名，クラス名，または列挙型

機能

パッケージ名

1

Cache

データを操作するためのクラスです。

com.hitachi.software.xeads.client.api

2

CacheManager

キャッシュを管理するためのクラスです。

3

Node

EADSサーバの情報を取得するためのクラスです。

4

FailureOperationInfo

一括操作を試みた結果，一部またはすべての操作に失敗した場合に，失敗した操作の情報を格納するためのクラスです。

5

CacheException

Cacheクラス，およびCacheManagerクラスに対する操作が失敗した場合に返却する例外クラスです。

6

InitializeException

CacheManagerクラスの初期化でエラーが発生した場合に返却されるCacheExceptionのサブクラスです。

7

InternalClientException

EADSクライアントで内部エラーが発生した場合に返却されるCacheExceptionのサブクラスです。

8

InternalServerException

EADSサーバで内部エラーが発生した場合に返却されるCacheExceptionのサブクラスです。

9

ServerCommunicationException

通信障害が発生した場合に返却されるCacheExceptionのサブクラスです。

10

UserOperationException

不正なユーザ操作によってエラーが発生した場合に返却されるCacheExceptionのサブクラスです。

11

BatchOperationException

一括操作を試みた結果，一部またはすべての操作に失敗した場合に返却されるCacheExceptionのサブクラスです。

12

AllFailureException

一括操作を試みた結果，すべての操作に失敗した場合に返却されるBatchOperationExceptionのサブクラスです。

13

PartFailureException

一括操作を試みた結果，一部の操作に失敗した場合に返却されるBatchOperationExceptionのサブクラスです。

14

ClusterEventListener

クラスタイベントリスナが実装する必要のあるインタフェースです。

15

NodeEventListener

ノードイベントリスナが実装する必要のあるインタフェースです。

16

ClusterEventContext

クラスタイベントリスナの実行に必要な情報をClusterEventListenerインタフェースに渡すインタフェースです。

17

NodeEventContext

ノードイベントリスナの実行に必要な情報をNodeEventListenerインタフェースに渡すインタフェースです。

18

列挙型ClusterEventType

クラスタイベントリスナの実行の契機を表す列挙型です。

19

列挙型NodeEventType

ノードイベントリスナの実行の契機を表す列挙型です。

(2)　ユーザファンクションで使用できるAPI

ユーザファンクションで使用できるAPIを次の表に示します。

表21‒11　ユーザファンクションで使用できるAPI

項番

インタフェース名，クラス名，または列挙型

機能

パッケージ名

1

Function

EADSサーバで使用するユーザファンクションが実装する必要のあるインタフェースです。

com.hitachi.software.xeads.func.Function

2

FunctionContext

ユーザファンクションの実行に必要な情報をFunctionインタフェースに渡すインタフェースです。

com.hitachi.software.xeads.func.FunctionContext

3

InitConfig

ユーザファンクションの初期化に使用したファンクション定義の情報を取得するインタフェースです。

com.hitachi.software.xeads.func.InitConfig

4

ClientInfo

実行したEADSクライアントの情報を取得するインタフェースです。

com.hitachi.software.xeads.common.ClientInfo

5

ServerInfo

EADSサーバの情報を取得するためのインタフェースです。

com.hitachi.software.xeads.common.ServerInfo

6

ClusterInfo

クラスタの情報を取得するインタフェースです。

com.hitachi.software.xeads.common.ClusterInfo

7

CacheInfo

キャッシュの情報を取得するインタフェースです。

com.hitachi.software.xeads.common.CacheInfo

8

Store

ユーザファンクションの実行時にデータを操作するインタフェースです。

com.hitachi.software.xeads.func.store.Store

9

Group

ユーザファンクションを実行中のEADSサーバに属するグループを操作するためのインタフェースです。

com.hitachi.software.xeads.func.store.Group

10

Key

ユーザファンクションで使用できるAPI内で，keyを表現するインタフェースです。

com.hitachi.software.xeads.func.store.Key

11

Value

ユーザファンクションで使用できるAPI内で，keyに関連づけて格納されるvalueを表現するインタフェースです。

com.hitachi.software.xeads.func.store.Value

12

UserLogger

ユーザログのインタフェースです。

com.hitachi.software.xeads.common.UserLogger

13

EADsStoreException

データ操作に関連する処理が失敗した場合に返却される例外クラスです。

com.hitachi.software.xeads.func.store.EADsStoreException

14

InternalServerException

EADSサーバで内部エラーが発生した場合に返却されるEADsStoreExceptionのサブクラスです。

com.hitachi.software.xeads.func.store.InternalServerException

15

UserOperationException

不正なユーザ操作によってエラーが発生した場合に返却されるEADsStoreExceptionのサブクラスです。

com.hitachi.software.xeads.func.store.UserOperationException

16

列挙型CacheType

キャッシュタイプを表す列挙型です。

com.hitachi.software.xeads.common.CacheType

21.3.2　C言語のクライアントライブラリが提供する関数

C言語のクライアントライブラリでは，EADSのAPIとして次の表に示す関数を提供します。

表21‒12　C言語のクライアントライブラリで使用できる関数とヘッダファイル

項番

関数名

機能

ヘッダファイル

1

ead_init_client()

クライアント定義に従って，EADSクライアントの初期設定をします。

eads.h

2

ead_init_client_n()

EADSクライアント名およびクライアント定義に従って，EADSクライアントの初期設定をします。

3

ead_start_cache()

キャッシュへのアクセスを開始します。指定したキャッシュにアクセスするためのハンドル（ポインタ）を取得します。

4

ead_stop_cache()

指定したキャッシュへのアクセスを終了します。

5

ead_get_cache_name()

指定したキャッシュのハンドルに関連づけられたキャッシュ名を取得します。

6

ead_terminate_client()

EADSクライアントを終了します。

7

ead_put()

valueをkeyに関連づけて格納します。

8

ead_put_array_value()

複数のvalueを連結して，keyに関連づけて格納します。

9

ead_put_all()

複数のkeyとvalueをキャッシュに一括格納します。

10

ead_create()

新規にkeyを格納する場合だけ，valueをkeyに関連づけて格納します。

11

ead_update()

指定したkeyがすでに格納されている場合だけ，valueをkeyに関連づけて格納します（valueを更新します）。

12

ead_replace()

指定したkeyに関連づけられているvalueを，条件として指定したvalue情報と比較します。valueが一致している場合だけ，valueをkeyに関連づけて格納します（valueを置換します）。

13

ead_get()

指定したkeyに関連づけられたvalueを取得します。

14

ead_get_all()

指定したkeyの一覧に関連づけられたvalueを一括取得します。

15

ead_get_group()

指定したグループおよびその下位階層のグループに属するkeyに関連づけられたvalueを一括取得します。

16

ead_remove()

指定したkey，およびkeyに関連づけられたvalueを削除します。

17

ead_remove_all()

指定したkeyの一覧に関連づけられたvalueを一括削除します。

18

ead_remove_group()

指定したグループに属するkeyおよびvalueを，下位階層のグループに属するkeyおよびvalueも含めて一括削除します。

19

ead_remove_node()

指定したEADSサーバをコピー元EADSサーバとするkeyおよびvalueを一括削除します。

20

ead_get_group_names()

指定したEADSサーバに格納されている最上位階層のグループ名の一覧を取得します。

グループ名の一覧は，ASCIIコードの昇順になります。

21

ead_get_group_keys()

指定したグループに属するkeyの一覧を，下位階層のグループに属するkeyも含めて取得します。

keyの一覧は，ASCIIコードの昇順になります。

22

ead_get_node_keys()

指定したEADSサーバに格納されているkeyの一覧を取得します。

keyの一覧は，ASCIIコードの昇順になります。

23

ead_get_group_count()

指定したEADSサーバに格納されている最上位階層のグループの数を取得します。

24

ead_get_group_key_count()

指定したグループに属するkeyの数を取得します。指定したグループの下位階層のグループに属するkeyも，取得されるkeyの数に含まれます。

25

ead_get_node_key_count()

指定したEADSサーバに格納されているkeyの数を取得します。

26

ead_get_group_first_key()

指定したグループに属するkeyのうち，ASCIIコードの昇順で先頭となるkeyを取得します。指定したグループの下位階層のグループに属するkeyも取得対象となります。

27

ead_get_node_first_key()

指定したEADSサーバに格納されているkeyのうち，ASCIIコードの昇順で先頭となるkeyを取得します。

28

ead_get_group_next_key()

指定したグループに属するkeyのうち，ASCIIコードの昇順で，指定したkeyの次に位置するkeyを取得します。指定したグループの下位階層のグループに属するkeyも取得対象となります。

29

ead_get_node_next_key()

指定したEADSサーバに格納されているkeyのうち，ASCIIコードの昇順で，指定したkeyの次に位置するkeyを取得します。

30

ead_execute_function()

指定したkeyまたはグループから実行するEADSサーバを決定して，ユーザファンクションを実行します。

31

ead_execute_function_rt()

指定したkeyまたはグループから実行するEADSサーバを決定して，ユーザファンクションを実行します。また，受信タイムアウト時間を指定します。

32

ead_execute_node_function()

EADSサーバを指定して，ユーザファンクションを実行します。

33

ead_execute_node_function_rt()

EADSサーバおよび受信タイムアウト時間を指定して，ユーザファンクションを実行します。

34

ead_get_nodelist()

EADSクライアントが保持している接続先EADSサーバの情報を取得します。

35

【非推奨】ead_get_node()

【非推奨】指定したkeyまたはグループの，本来のコピー元EADSサーバの情報を取得します。

36

ead_get_slave_nodelist()

指定したEADSサーバに格納されているデータの，本来のコピー先EADSサーバの情報を取得します。

37

ead_get_current_master_node()

指定したkey（またはグループ）を現時点で格納する，コピー元EADSサーバの情報を取得します。

38

ead_get_original_master_node()

指定したkey（またはグループ）を格納する，本来のコピー元EADSサーバの情報を取得します。

39

ead_add_cluster_eventlistener()

クラスタイベントリスナを追加します。

40

ead_add_node_eventlistener()

ノードイベントリスナを追加します。

41

ead_remove_cluster_eventlistener()

クラスタイベントリスナを削除します。

42

ead_remove_node_eventlistener()

ノードイベントリスナを削除します。

21.4　クライアントライブラリが出力するエラーコード

クライアントライブラリが出力するエラーコードについて説明します。

21.4.1　Java言語のクライアントライブラリが出力するエラーコード

Java言語のクライアントライブラリが出力するエラーコードについては，「18.1.5　CacheExceptionクラス」の「(5)(c)戻り値」を参照してください。

なお，ユーザファンクションのエラーコードについては，「18.2.13　EADsStoreExceptionクラス」の「(5)(c)戻り値」を参照してください。

21.4.2　C言語のクライアントライブラリが出力するエラーコード

C言語のクライアントライブラリが出力するエラーコードについては，「20.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

21.5　最小値・最大値一覧

EADSの最小値・最大値の一覧を次の表に示します。

表21‒13　最小値・最大値一覧

項番

項目

最小値

最大値

1

1EADSサーバ当たりの，EADSクライアントからの接続数（ノンブロッキングI/O通信制御を使用しない場合）

1

1,024

2

1EADSサーバ当たりの，EADSクライアントからの接続数（ノンブロッキングI/O通信制御を使用する場合）

1,024

32,768

3

1クラスタを構成するEADSサーバ数

1※1

96

4

1クラスタに作成できるキャッシュ数

0

16

5

1EADSサーバに格納できるデータ数※2

0

2,147,483,647

6

データの多重度

1

5

7

keyの長さ

（単位：文字数）

1

1,024

8

valueのサイズ※3

（単位：バイト）

1

262,144

9

グループ名の長さ

（単位：文字数）

1

1,022

10

キャッシュ名の長さ

（単位：文字数）

1

32

11

グループ数

1

制限なし

12

グループの階層数

1

511

13

キャッシュデータファイル1面のサイズ

（単位：メガバイト）

16

128

14

1レンジ当たりのキャッシュデータファイルのファイル数

8

32,768

15

1キャッシュデータファイル1面に格納できるデータ数（ディスクキャッシュの格納先として不揮発性メモリを使用しない場合）

−

131,070

16

1キャッシュデータファイル1面に格納できるデータ数（ディスクキャッシュの格納先として不揮発性メモリを使用する場合）

−

524,286

（凡例）

−：該当しません。

注※1

1クラスタを構成するEADSサーバ数は，「データの多重度×2−1」以上であることが前提です。

注※2

多重化によってコピーされるデータ数も含みます。

注※3

valueのサイズについては，「15.2.2(3)　valueとして指定できるデータ」を参照してください。

22　メッセージ

この章では，出力されるメッセージを示し，その意味，および対策について説明します。

22.1　メッセージの記述形式

XXXXnnnnn-Y

メッセージテキスト

可変値に関する説明

説明

メッセージテキストに対する補足説明

対処

ユーザが実施する対処

「可変値に関する説明」および「対処」は，メッセージによって記述しないものもあります。各項目について，次の表に示します。

項目

説明

XXXXnnnnn

メッセージIDを表します。次の要素で構成されます。

XXXX

EADSのメッセージのプレフィックスである，KDEAが出力されます。

nnnnn

EADSで管理しているメッセージ番号を表します。

それぞれのメッセージには，5桁の固有の番号が付いています。

Y

メッセージのレベルを表します。

メッセージのレベルは英字1文字で示します。

メッセージのレベルを示す文字とその意味を次に示します。

E（Error）

エラーレベルのトラブルが発生したことを通知するメッセージです。

このメッセージが出力されたときは，処理を中断します。

W（Warning）

警告レベルのトラブルが発生したことを通知するメッセージです。

このメッセージが出力されたあとも処理を続行します。

I（Information）

システムの動作を通知するメッセージです。

このメッセージが出力されたあとも処理を続行します。

メッセージテキスト

EADSが出力するメッセージテキストを表します。

可変値に関する説明

メッセージテキスト中の可変値に表示される情報を「xx....xx：表示される情報」（xxは英小文字）の形式で示します。

可変値に関する説明の記述例を次に示します。

（例）

aa....aa：IPアドレス

bb....bb：ポート番号

説明

メッセージが通知された要因やメッセージを出力したEADSの動作など，メッセージに対する補足説明を示します。

対処

ユーザが実施する対処を表します。

22.2　KDEA00001〜KDEA01999

KDEA00001〜KDEA01999のメッセージとその対処方法について説明します。

KDEA00001-I

The server will now start. (server name = aa....aa)

aa....aa：EADSサーバ名（運用ディレクトリ名）

説明

EADSサーバを開始します。

KDEA00002-I

The server will now shut down. (server name = aa....aa)

aa....aa：EADSサーバ名（運用ディレクトリ名）

説明

EADSサーバを終了します。

KDEA00003-W

The server status was set to "ISOLATED".

説明

EADSサーバが縮退状態（isolated）になりました。

対処

次の要因が考えられます。

eztool isolateコマンドを実行した。

EADSサーバ内で運用を続行できない問題が発生した。

「12.2.1　縮退状態が発生した場合」を参照して対処してください。

KDEA00004-E

Log initialization failed. (directory path = aa....aa)

aa....aa：ログの出力先パス名

説明

ログの初期化に失敗しました。

対処

次の要因が考えられます。

ログの出力先ディレクトリの指定が不正である。

ログの出力先ディレクトリまたはログファイルの権限などに問題がある。

要因を特定し，問題を取り除いたあと，EADSサーバを再起動してください。

KDEA00005-E

A property file cannot be read. (file path = aa....aa)

aa....aa：定義ファイルの格納先パス名

説明

定義ファイルが読み込めません。

次の要因が考えられます。

定義ファイルがない。

定義ファイルが開けない。

格納先パス名がファイルではなくディレクトリを指している。

対処

標準出力，メッセージログまたは例外ログから要因を特定し，問題を取り除いたあと，EADSサーバを再起動してください。

KDEA00006-E

The server failed to start. Startup of the server will now end.

説明

開始処理に失敗しました。

EADSサーバの開始処理中に問題が発生したため，EADSサーバの開始を中止します。

対処

直前に出力されたメッセージを参照して要因を特定し，問題を取り除いたあと，EADSサーバを再起動してください。

KDEA00016-E

An attempt to open a port failed. (address = aa....aa:bb....bb)

aa....aa：IPアドレス

bb....bb：ポート番号

説明

通信ポートが開けません。

次の要因が考えられます。

指定されたIPアドレスが不正である。

指定されたポート番号がすでに使用されている。

異なるパラメタに同じポート番号を指定している。

指定されたポート番号がwell-knownポートであり，ユーザに権限がない。

対処

次に示すサーバ定義のパラメタの指定値を見直してください。

eads.server.address

eads.server.port

eads.admin.operation.port

例外ログから要因を特定し，問題を取り除いたあと，EADSサーバを再起動してください。

KDEA00020-I

Initialization of the server will now start. (version = aa....aa)

aa....aa：EADSサーバのバージョン

説明

EADSサーバの初期化を開始します。

KDEA00021-I

Initialization of the server was completed.

説明

EADSサーバの初期化が終了しました。

KDEA00028-E

An exception occurred on the server. (exception = aa....aa)

aa....aa：発生した例外（またはエラー）

説明

EADSサーバ内で例外（またはエラー）が発生しました。

EADSサーバを終了します。

対処

例外ログ，および直前に出力されたメッセージを確認して要因を特定し，原因を取り除いたあと，EADSサーバを再起動してください。

KDEA00029-E

The specified cache was not found. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

指定されたキャッシュが見つかりません。存在しないキャッシュに対する操作が行われました。

対処

キャッシュを作成するか，処理を見直してください。

KDEA00031-E

The thread stopped. (thread name = aa....aa)

aa....aa：スレッド名

説明

EADSサーバ内で問題が発生し，スレッドが停止しました。

対処

弊社問い合わせ窓口にご連絡ください。

KDEA00032-E

An exception occurred while waiting for a connection request. (local = aa....aa:bb....bb)

aa....aa：EADSサーバのIPアドレス（java.net.InetAddressの文字列表現）

bb....bb：EADSサーバのポート番号

説明

接続要求の待機中に例外が発生しました。

対処

次の要因が考えられます。

通信先のEADSクライアントで問題が発生した。

通信先のEADSサーバで問題が発生した。

通信先のホストで問題が発生した。

ネットワークで問題が発生した。

例外ログから要因を特定し，問題を取り除いてください。

KDEA00033-W

The number of received connection requests exceeds the maximum number of simultaneous connections. (local = aa....aa:bb....bb, remote = cc....cc:dd....dd, max connections = ee....ee)

aa....aa：EADSサーバのIPアドレス（java.net.InetAddressの文字列表現）

bb....bb：EADSサーバのポート番号

cc....cc：接続元のIPアドレス（java.net.InetAddressの文字列表現）

dd....dd：接続元のポート番号

ee....ee：最大同時接続数

説明

最大同時接続数を超える接続要求を受信しました。

最大同時接続数を超えた接続に対してはエラーを返し，通信を切断します。

なお，このメッセージは次の場合にも出力されることがあります。

EADSクライアントを稼働させたまま，クラスタ内の全EADSサーバを再起動した場合

EADSサーバの一時的な負荷上昇によって，EADSクライアント・EADSサーバ間の接続がタイムアウトした場合

対処

最大同時接続数（サーバ定義のeads.server.maxConnectionsパラメタ）を見直してください。

KDEA00036-E

An exception occurred during request handling. (local = aa....aa:bb....bb, remote = cc....cc:dd....dd)

aa....aa：EADSサーバのIPアドレス（java.net.InetAddressの文字列表現）

bb....bb：EADSサーバのポート番号

cc....cc：接続元のIPアドレス（java.net.InetAddressの文字列表現）

dd....dd：接続元のポート番号

説明

リクエストの処理中に例外が発生しました。

対処

次の要因が考えられます。

通信先のEADSクライアントで問題が発生した。

通信先のホストで問題が発生した。

ネットワークで問題が発生した。

要因を特定し，問題を取り除いてください。

KDEA00039-E

An exception or error occurred on the server. (details = aa....aa)

aa....aa：詳細情報

説明

リクエスト処理中にEADSサーバ内で例外（またはエラー）が発生しました。そのため，通信を切断します。

対処

例外ログから要因を特定し，問題を取り除いてください。

それでも解決しない場合は，弊社問い合わせ窓口にご連絡ください。

KDEA00041-I

The port will now close. (address = aa....aa:bb....bb)

aa....aa：IPアドレス（java.net.InetAddressの文字列表現）

bb....bb：ポート番号

説明

ポートを閉じます。

KDEA00042-I

The library was added to the class path. (file path = aa....aa)

aa....aa：ライブラリファイルのパス名

説明

ライブラリをクラスパスに追加しました。

KDEA00045-E

A received request is not supported by the server. (local = aa....aa:bb....bb, remote = cc....cc:dd....dd)

aa....aa：EADSサーバのIPアドレス

bb....bb：EADSサーバのポート番号

cc....cc：接続元のIPアドレス

dd....dd：接続元のポート番号

説明

EADSサーバでサポートされていないリクエストを受信しました。

リクエストは処理できません。

対処

次の要因が考えられます。

不正なEADSクライアントが接続されている。

異なるバージョンのEADSクライアントが接続されている。

正しいEADSクライアントが使用されているか確認してください。

KDEA00047-E

An error occurred during reception of a request. (local = aa....aa:bb....bb, remote = cc....cc:dd....dd)

aa....aa：EADSサーバのIPアドレス（java.net.InetAddressの文字列表現）

bb....bb：EADSサーバのポート番号

cc....cc：接続元のIPアドレス（java.net.InetAddressの文字列表現）

dd....dd：接続元のポート番号

説明

リクエストの受信処理中にエラーが発生しました。

対処

次の要因が考えられます。

通信先のEADSクライアントで問題が発生した。

通信先のホストで問題が発生した。

ネットワークで問題が発生した。

例外ログから要因を特定し，問題を取り除いてください。

KDEA00048-E

An error occurred during the sending of a response. (local = aa....aa:bb....bb, remote = cc....cc:dd....dd)

aa....aa：EADSサーバのIPアドレス（java.net.InetAddressの文字列表現）

bb....bb：EADSサーバのポート番号

cc....cc：接続元のIPアドレス（java.net.InetAddressの文字列表現）

dd....dd：接続元のポート番号

説明

レスポンスの送信処理中にエラーが発生しました。

対処

次の要因が考えられます。

通信先のEADSクライアントで問題が発生した。

通信先のホストで問題が発生した。

ネットワークで問題が発生した。

例外ログから要因を特定し，問題を取り除いてください。

KDEA00049-I

A redirect notification was sent to the client. (local = aa....aa:bb....bb, remote = cc....cc:dd....dd, redirect = ee....ee:ff....ff)

aa....aa：EADSサーバのIPアドレス（java.net.InetAddressの文字列表現）

bb....bb：EADSサーバのポート番号

cc....cc：接続元のIPアドレス（java.net.InetAddressの文字列表現）

dd....dd：接続元のポート番号

ee....ee：リダイレクト先のIPアドレス（java.net.InetAddressの文字列表現）

ff....ff：リダイレクト先のポート番号

説明

EADSクライアントにリダイレクトを通知します。

KDEA00050-E

An unexpected initialization error occurred.

説明

予期しない初期化エラーが発生しました。

対処

弊社問い合わせ窓口にご連絡ください。

KDEA00051-E

The content of the request is invalid.

説明

リクエストの内容が不正です。

対処

次の要因が考えられます。

通信先のEADSクライアントで問題が発生した。

通信先のホストで問題が発生した。

ネットワークで問題が発生した。

要因を特定し，問題を取り除いてください。

KDEA00052-E

An unexpected exception occurred.

説明

予期しない例外が発生しました。

対処

弊社問い合わせ窓口にご連絡ください。

KDEA00053-E

Loading of the library file failed.

説明

ライブラリファイルの読み込みに失敗しました。

対処

次の要因が考えられます。

ライブラリファイルが不正である。

ライブラリファイルまたはディレクトリの権限などに問題がある。

要因を特定し，問題を取り除いてください。

KDEA00054-I

A server port was opened. (local = aa....aa:bb....bb)

aa....aa：EADSサーバのIPアドレス（java.net.InetAddressの文字列表現）

bb....bb：EADSサーバのポート番号

説明

ポートを開きました。

KDEA00055-I

The server will now start accepting requests. (local = aa....aa:bb....bb)

aa....aa：EADSサーバのIPアドレス（java.net.InetAddressの文字列表現）

bb....bb：EADSサーバのポート番号

説明

リクエスト受付を開始します。

KDEA00056-E

An unexpected exception occurred. (detail = aa....aa)

aa....aa：保守情報

説明

予期しない例外が発生しました。

対処

弊社問い合わせ窓口にご連絡ください。

KDEA00057-E

An attempt to allocate the data area has failed. (type = aa....aa, data size = bb....bb)

aa....aa：種別

bb....bb：確保しようとしたメモリ領域のサイズ

説明

メモリの空き領域が不足しているため，メモリの確保に失敗しました。

種別ごとの要因を次の表に示します。

種別

要因

store

valueを格納するメモリの空き領域が不足しています。

nonBlocking

通信データを格納するノンブロッキングI/O通信バッファの空き容量が不足しています。

対処

種別ごとに次の表に示す対処を検討してください。

種別

対処

store

共通設定のeads.java.external.heapsizeパラメタの指定値を大きくしてください。

nonBlocking

共通設定のeads.server.nonBlocking.external.heapsizeパラメタの指定値を大きくしてください。このパラメタの指定値を大きくする場合は，共通設定のeads.java.external.heapsizeパラメタの指定値も大きくしてください。

KDEA00058-E

The input data are too long. (type = aa....aa, request = bb....bb, limit = cc....cc)

aa....aa：種別

bb....bb：要求サイズ

cc....cc：上限サイズ

説明

入力データの要求サイズが上限サイズを超えています。

種別ごとの要因を次の表に示します。

種別

要因

store

valueのサイズに対して，共通設定のeads.java.external.heapsizeパラメタの指定値が小さいです。

または，valueのサイズが指定できる最大値を超えています。

dist

更新操作の履歴のサイズに対して，共通設定のeads.replication.external.heapsizeパラメタの指定値が小さいです。

nonBlocking

通信データに対して，共通設定のeads.server.nonBlocking.external.heapsizeパラメタの指定値が小さいです。

対処

valueのサイズが指定できる最大値を超えないようにしてください。

valueのサイズが指定できる最大値を超えていない場合は，種別ごとに次の表に示す対処を検討してください。

種別

対処

store

共通設定のeads.java.external.heapsizeパラメタの指定値を大きくしてください。

dist

共通設定のeads.replication.external.heapsizeパラメタの指定値を大きくしてください。

このパラメタの指定値を大きくする場合は，共通設定のeads.java.external.heapsizeパラメタの指定値も大きくしてください。

nonBlocking

共通設定のeads.server.nonBlocking.external.heapsizeパラメタの指定値を大きくしてください。このパラメタの指定値を大きくする場合は，共通設定のeads.java.external.heapsizeパラメタの指定値も大きくしてください。

KDEA00060-W

The fragmentation of data occurred. (type = aa....aa, count = bb....bb)

aa....aa：種別

bb....bb：データのフラグメントの発生回数

説明

Explicitヒープに格納されるデータのフラグメントが発生しました。

種別ごとの要因を次の表に示します。

種別

要因

store

valueのフラグメントが発生しました。

dist

更新操作の履歴のフラグメントが発生しました。

なお，出力される発生回数は，前回このメッセージが出力されてからの回数です。

対処

このメッセージが頻繁に出力される場合，Explicitヒープに十分な空き容量がないためにフラグメントが発生し，性能が低下しているおそれがあります。種別ごとに次の表に示す対処を検討してください。

種別

対処

store

共通設定のeads.java.external.heapsizeパラメタの指定値を大きくしてください。

dist

共通設定のeads.replication.external.heapsizeパラメタの指定値を大きくしてください。

このパラメタの指定値を大きくする場合は，共通設定のeads.java.external.heapsizeパラメタの指定値も大きくしてください。

KDEA00061-E

The size of key exceeds the maximum. (maximum size (bytes) = aa....aa, key size (bytes) = bb....bb)

aa....aa：最大サイズ（単位：バイト）

bb....bb：keyサイズ（単位：バイト）

説明

指定したkeyのサイズがクラスタに格納できるkeyの最大サイズを超えています。

対処

指定したkeyのサイズを見直してください。

共通設定のeads.cache.key.maxsizeパラメタの指定値を見直してください。

KDEA00062-E

The size of group name exceeds the maximum. (maximum size (bytes) = aa....aa, group name size (bytes) = bb....bb)

aa....aa：最大サイズ（単位：バイト）

bb....bb：グループ名サイズ（単位：バイト）

説明

指定したグループ名のサイズが，クラスタに格納できるグループ名の最大サイズ（共通設定のeads.cache.key.maxsizeパラメタの指定値−2）を超えています。

対処

指定したグループ名のサイズを見直してください。

共通設定のeads.cache.key.maxsizeパラメタの指定値を見直してください。

KDEA00063-E

An error occurred in the processing to send cluster configuration information. (local = aa....aa:bb....bb, remote = cc....cc:dd....dd)

aa....aa：EADSサーバのIPアドレス（java.net.InetAddressの文字列表現）

bb....bb：EADSサーバのポート番号

cc....cc：接続元のIPアドレス（java.net.InetAddressの文字列表現）

dd....dd：接続元のポート番号

説明

クラスタ構成情報の送信処理中にエラーが発生しました。

対処

次の要因が考えられます。

通信先のEADSクライアントで問題が発生した。

通信先のホストで問題が発生した。

ネットワークで問題が発生した。

例外ログを参照して要因を特定し，問題を取り除いてください。

KDEA01004-I

Initialization of the user function is complete. (function name = aa....aa)

aa....aa：ユーザファンクション名

説明

ユーザファンクションの初期化が完了しました。

KDEA01005-W

An exception or error occurred in the init method of the user function. (function name = aa....aa)

aa....aa：ユーザファンクション名

説明

ユーザファンクションのinit()で例外（またはエラー）が発生しました。

対処

ユーザ例外ログを確認し，問題を取り除いたあと，EADSサーバを再起動してください。

KDEA01009-I

Processing to terminate the user function is complete. (function name = aa....aa)

aa....aa：ユーザファンクション名

説明

ユーザファンクションの終了処理が完了しました。

KDEA01010-W

Processing to terminate the user function failed. (function name = aa....aa)

aa....aa：ユーザファンクション名

説明

ユーザファンクションの終了処理に失敗しました（ユーザファンクションのdestroy()で例外（またはエラー）が発生しました）。

対処

ユーザ例外ログを確認し，問題を取り除いてください。

KDEA01011-E

An exception or error occurred in the user function. (function name = aa....aa)

aa....aa：ユーザファンクション名

説明

ユーザファンクション内で例外（またはエラー）が発生しました（ユーザファンクションのexecute()実行中に例外（またはエラー）が発生しました）。

対処

ユーザ例外ログを確認し，問題を取り除いてください。

KDEA01012-W

Generation of a user function instance failed. (function name = aa....aa)

aa....aa：ユーザファンクション名

説明

ユーザファンクションのインスタンスの生成に失敗しました。

対処

次の要因が考えられます。

ユーザファンクションのインスタンス生成時に例外（またはエラー）が発生した。

ユーザファンクションのデフォルトコンストラクタのアクセス権がない。

ユーザファンクションがインスタンス生成できない形式である。

ユーザ例外ログを確認し，問題を取り除いたあと，EADSサーバを再起動してください。

KDEA01016-E

An exception or error occurred in the user function call processing. (function name = aa....aa, details = bb....bb)

aa....aa：呼び出し対象のユーザファンクション名

bb....bb：詳細情報

説明

ユーザファンクションの呼び出し処理で例外（またはエラー）が発生しました。

対処

詳細情報から要因を特定し，問題を取り除いてください。

KDEA01017-E

The specified user function was not found. (function name = aa....aa)

aa....aa：ユーザファンクション名

説明

指定されたユーザファンクションが見つかりません。

対処

次の要因が考えられます。

指定された名称のユーザファンクションがEADSサーバに存在しない。

無効なユーザファンクションを実行しようとした。

ユーザファンクション名の指定に誤りがないか確認してください。

ユーザファンクション名の指定に誤りがない場合，指定されたユーザファンクションがEADSサーバに有効なユーザファンクションとして登録されているか確認してください。

KDEA01018-E

An attempt to serialize the user function execution results failed. (function name = aa....aa, details = bb....bb)

aa....aa：呼び出し対象のユーザファンクション名

bb....bb：詳細情報

説明

ユーザファンクションの実行結果として戻り値に指定されたオブジェクトはシリアライズできませんでした。

対処

指定された値がシリアライズできるオブジェクトかどうか確認してください。

シリアライズできないオブジェクトの場合は，シリアライズできるオブジェクトに変更してください。

KDEA01019-E

An attempt to deserialize the argument failed. (function name = aa....aa, details = bb....bb)

aa....aa：呼び出し対象のユーザファンクション名

bb....bb：詳細情報

説明

EADSクライアントから送信された引数はデシリアライズできませんでした。

対処

ユーザファンクションのライブラリファイルに含まれるクラスを確認し，EADSクライアントで指定された引数のオブジェクトがデシリアライズできるかどうかを確認してください。

クラスが不足している場合，ユーザファンクションのライブラリまたは共通ライブラリにクラスを追加したあと，EADSサーバを再起動してください。

KDEA01021-E

The specified cache was not found. (function name = aa....aa, cache name = bb....bb)

aa....aa：呼び出し対象のユーザファンクション名

bb....bb：キャッシュ名

説明

存在しないキャッシュに対する操作が行われました。

対処

キャッシュを作成するか，または指定したキャッシュ名を見直してください。

KDEA01022-I

Initialization of the user function library will now start. (file path = aa....aa)

aa....aa：ファイルパス

説明

ユーザファンクションライブラリの初期化を開始します。

KDEA01023-I

Initialization of the user function library is complete. (file path = aa....aa, success = bb....bb, failure = cc....cc)

aa....aa：ファイルパス

bb....bb：初期化に成功したユーザファンクションの数

cc....cc：初期化に失敗したユーザファンクションの数

説明

ユーザファンクションライブラリの初期化が完了しました。

KDEA01024-I

No user function library was found.

説明

ユーザファンクションライブラリが存在しないため，ユーザファンクションの初期化は行われません。

KDEA01025-I

"user_function.jar" will not be initialized because a file called "user-function.jar" also exists.

説明

ファイル名が「user-function.jar」のユーザファンクションが存在するため，ファイル名が「user_function.jar」のユーザファンクションは初期化できません。

KDEA01026-I

A user function cannot be loaded because a user function with the same fully-qualified class name already exists. (function name = aa....aa)

aa....aa：ユーザファンクション名

説明

同じ完全修飾クラス名のユーザファンクションがすでに存在するため，対象のユーザファンクションは読み込みません。

KDEA01027-E

An exception or error occurred in the initialization processing of the user function. (details = aa....aa)

aa....aa：詳細情報

説明

ユーザファンクションの初期化処理で例外（またはエラー）が発生しました。

対処

詳細情報および例外ログから要因を特定し，問題を取り除いたあと，EADSサーバを再起動してください。

KDEA01901-I

WRITING (cache = aa....aa, range = bb....bb, ecf = cc....cc, remain = dd....dd)

aa....aa：キャッシュ名

bb....bb：レンジID

cc....cc：キャッシュデータファイルのパス

dd....dd：未使用のキャッシュデータファイル数

説明

キャッシュデータファイルへの書き込みを開始しました。

KDEA01902-I

COMPACTION (cache = aa....aa, range = bb....bb, ecf = cc....cc, size (total = dd....dd, relocated = ee....ee, valid = ff....ff -> gg....gg), count (total = hh....hh, relocated = ii....ii, valid = kk....kk -> mm....mm), time = nn....nn, remain = pp....pp)

aa....aa：キャッシュ名

bb....bb：レンジID

cc....cc：コンパクション対象のキャッシュデータファイルのパス（絶対パス）

dd....dd：ファイルの使用済み領域サイズ（バイト）

ee....ee：移動した量（バイト）

ff....ff：コンパクション前の有効データ量（バイト）

gg....gg：コンパクション後の有効データ量（バイト）

hh....hh：無効データも含めたすべてのデータ数

ii....ii：移動した数

kk....kk：コンパクション前の有効データ数

mm....mm：コンパクション後の有効データ数

nn....nn：処理時間（ミリ秒）

pp....pp：未使用のキャッシュデータファイル数

説明

キャッシュデータファイルに対してコンパクションを実行しました。

KDEA01903-I

FILE INFO (cache = aa....aa, range = bb....bb, ecf = cc....cc, size = dd....dd, allocated size = ee....ee)

aa....aa：キャッシュ名

bb....bb：レンジID

cc....cc：キャッシュデータファイルのパス

dd....dd：ファイルサイズ

ee....ee：実際に割り当てられたサイズ

説明

キャッシュデータファイルに実際に割り当てられた領域のサイズが，ファイルサイズと異なります。

KDEA01904-I

CORRECTION (cache = aa....aa, range = bb....bb, ecf = cc....cc)

aa....aa：キャッシュ名

bb....bb：レンジID

cc....cc：キャッシュファイルのパス

説明

キャッシュファイルを修正しました。

22.3　KDEA02000〜KDEA02999

KDEA02000〜KDEA02999のメッセージとその対処方法について説明します。

KDEA02001-I

Initialization of the client library will now start. (version = aa....aa)

aa....aa：EADSクライアントのバージョン

説明

クライアントライブラリの初期設定を開始します。

KDEA02002-I

Initialization of the client library was completed.

説明

クライアントライブラリの初期設定が完了しました。

KDEA02003-E

Initialization of the client library failed.

説明

クライアントライブラリの初期設定に失敗しました。

対処

「20.2　クライアントライブラリのエラーコード（C言語）」を参照して，問題を取り除いてください。

KDEA02008-I

Preparations for using the cache finished. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

キャッシュを使用する準備ができました。

KDEA02009-I

The cache will no longer be used. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

キャッシュの使用を終了します。

KDEA02011-I

The client library will now terminate.

説明

クライアントライブラリを終了します。

KDEA02022-E

The connections to all servers making up the cluster failed.

説明

クラスタを構成するすべてのEADSサーバとの接続に失敗しました。

対処

次の要因が考えられます。

クラスタを停止した。

通信先のEADSサーバで問題が発生した。

通信先のホストで問題が発生した。

ネットワークで問題が発生した。

タイムアウトの設定が適切でない。

要因を特定し，問題を取り除いてください。

KDEA02023-I

The connection to the cluster was restored.

説明

クラスタとの接続が回復しました。

KDEA02024-E

Initialization of the logger failed. (details = aa....aa)

aa....aa：エラー詳細情報

説明

ロガーの初期化に失敗しました。

対処

エラー詳細情報を確認して，問題を取り除いてください。

KDEA02025-E

The connection for the event listener failed.

説明

イベントリスナ用のコネクションの確立に失敗しました。

対処

次の要因が考えられます。

クラスタを停止した。

通信先のEADSサーバで問題が発生した。

通信先のホストで問題が発生した。

ネットワークで問題が発生した。

タイムアウトの設定が適切でない。

要因を特定し，問題を取り除いてください。

KDEA02026-I

The connection for the event listener was restored.

説明

イベントリスナ用のコネクションが回復しました。

KDEA02028-I

Preparations for using the event listener finished. (event listener name = aa....aa)

aa....aa：イベントリスナ名

説明

イベントリスナを使用する準備ができました。

KDEA02029-I

Use of the event listener will now end. (event listener name = aa....aa)

aa....aa：イベントリスナ名

説明

イベントリスナの使用を終了します。

KDEA02911-I

start RootAP(address = aa....aa, pid = bb....bb, no = cc....cc)

aa....aa：IPアドレス

bb....bb：PID（APごとにEADSクライアントが付与する番号）

cc....cc：通番（16進数）

説明

EADSサーバとの通信を開始します。

KDEA02912-I

end RootAP(address = aa....aa, pid = bb....bb, no = cc....cc)

aa....aa：IPアドレス

bb....bb：PID（APごとにEADSクライアントが付与する番号）

cc....cc：通番（16進数）

説明

EADSサーバとの通信を終了します。

22.4　KDEA03000〜KDEA03999

KDEA03000〜KDEA03999のメッセージとその対処方法について説明します。

KDEA03001-I

Initialization of the client library will now start. (version = aa....aa)

aa....aa：EADSクライアントのバージョン

説明

クライアントライブラリの初期設定を開始します。

KDEA03002-I

The client library process will now end.

説明

クライアントライブラリを終了します。

KDEA03003-I

Preparations for using the cache finished. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

キャッシュを使用する準備ができました。

KDEA03004-I

Use of the cache will now end. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

キャッシュの使用を終了します。

KDEA03006-E

Initialization of the client library failed. (error code = aa....aa)

aa....aa：エラーコード

説明

クライアントライブラリの初期設定に失敗しました。

対処

「18.1.5　CacheExceptionクラス」の「(5)(c)戻り値」を参照して，問題を取り除いてください。

KDEA03019-I

Initialization of the client library was completed.

説明

クライアントライブラリの初期設定が完了しました。

KDEA03021-E

The connections to all servers making up the cluster failed.

説明

クラスタを構成するすべてのEADSサーバとの接続に失敗しました。

対処

次の要因が考えられます。

クラスタを停止した。

通信先のEADSサーバで問題が発生した。

通信先のホストで問題が発生した。

ネットワークで問題が発生した。

タイムアウトの設定が適切でない。

要因を特定し，問題を取り除いてください。

KDEA03022-I

The connection to the cluster was restored.

説明

クラスタとの接続が回復しました。

KDEA03023-E

Initialization of the logger failed. (details = aa....aa)

aa....aa：エラー詳細情報

説明

ロガーの初期化に失敗しました。

対処

ロガーの初期化処理中に問題が発生しました。

エラー詳細情報を確認して，問題を取り除いてください。

KDEA03101-I

Preparations for using the event listener finished. (event listener name = aa....aa, toString = bb....bb)

aa....aa：クラスタイベントリスナ名，またはノードイベントリスナ名

bb....bb：オブジェクトの文字列表現

説明

クラスタイベントリスナ，またはノードイベントリスナを使用する準備ができました。

KDEA03102-I

Use of the event listener will now end. (event listener name = aa....aa, toString = bb....bb)

aa....aa：クラスタイベントリスナ名，またはノードイベントリスナ名

bb....bb：オブジェクトの文字列表現

説明

クラスタイベントリスナ，またはノードイベントリスナの使用を終了します。

KDEA03103-E

An exception or error occurred in the event listener. (event listener name = aa....aa, toString = bb....bb)

aa....aa：クラスタイベントリスナ名，またはノードイベントリスナ名

bb....bb：オブジェクトの文字列表現

説明

クラスタイベントリスナ，またはノードイベントリスナのメソッドの実行中に，例外またはエラーが発生しました。

対処

クラスタイベントリスナ，またはノードイベントリスナ内で問題が発生しました。

メッセージログを参照して要因を特定し，問題を取り除いてください。

KDEA03104-E

The connection for the event listener failed.

説明

イベントリスナ用のコネクションの確立に失敗しました。

対処

次の要因が考えられます。

クラスタを停止した。

通信先のEADSサーバで問題が発生した。

通信先のホストで問題が発生した。

ネットワークで問題が発生した。

タイムアウトの設定が適切でない。

要因を特定し，問題を取り除いてください。

KDEA03105-I

The connection for the event listener was restored.

説明

イベントリスナ用のコネクションが回復しました。

KDEA03106-E

The content of the request is invalid.

説明

リクエストの内容が不正です。

対処

次の要因が考えられます。

通信先のEADSサーバで問題が発生した。

通信先のホストで問題が発生した。

ネットワークで問題が発生した。

要因を特定し，問題を取り除いてください。

KDEA03911-I

start RootAP(address = aa....aa, pid = bb....bb, no = cc....cc)

aa....aa：IPアドレス

bb....bb：PID（APごとにEADSクライアントが付与する番号）

cc....cc：通番（16進数）

説明

EADSサーバとの通信を開始します。

KDEA03912-I

end RootAP(address = aa....aa, pid = bb....bb, no = cc....cc)

aa....aa：IPアドレス

bb....bb：PID（APごとにEADSクライアントが付与する番号）

cc....cc：通番（16進数）

説明

EADSサーバとの通信を終了します。

22.5　KDEA04000〜KDEA05999

KDEA04000〜KDEA05999のメッセージとその対処方法について説明します。

KDEA04504-E

An invalid property was detected. (definition file name = aa....aa, property name = bb....bb, property value = cc....cc)

aa....aa：不正な定義ファイル名

bb....bb：不正なパラメタ名

cc....cc：不正なパラメタ指定値（値がない場合は空白）

説明

不正なパラメタが検出されました。

対処

メッセージ中に記されたパラメタを見直してください。

KDEA04506-E

A data discrepancy in the definition file was detected. (node ID = aa....aa, definition file name = bb....bb)

aa....aa：他EADSサーバの定義ファイルと不一致があるEADSサーバのEADSサーバID

bb....bb：他EADSサーバの定義ファイルと不一致がある定義ファイル名

説明

他EADSサーバの定義ファイルと不一致がありました。

対処

他EADSサーバの定義ファイルと内容が一致しているかどうかを確認してください。

スケールアウト処理またはリバランス処理中に縮退したEADSサーバを復旧する場合，縮退したEADSサーバのクラスタ定義ファイルに，スケールアウト処理またはリバランス処理後のクラスタ構成情報が反映されていない可能性があります。縮退したEADSサーバに，正常に稼働しているEADSサーバのクラスタ定義ファイルをコピーしてから，復旧処理を再実行してください。

このエラーが再発する場合は，他クラスタからハートビートを受けている場合があります。その場合は，異なるクラスタ間で配信先IPアドレスまたは配信先ポート番号の指定（共通設定のeads.failureDetector.heartbeat.addressパラメタおよびeads.failureDetector.heartbeat.portパラメタの指定）が重複していないか確認してください。

KDEA04508-E

A boot timeout occurred. (node-list = aa....aa)

aa....aa：時間内に起動が完了しなかったEADSサーバのIPアドレスとポート番号のリスト

説明

指定された時間内に，クラスタを構成する全EADSサーバの起動が完了しませんでした。

対処

メッセージ中に記されたEADSサーバが起動していたかどうかを確認してください。

クラスタを構成するEADSサーバの台数が多い場合に，このエラーが出力されることがあります。この場合は，クラスタを構成する全EADSサーバが開始するまでの最大待ち時間の指定（サーバ定義のeads.admin.boot.timeoutパラメタの指定）を，「クラスタを構成するEADSサーバ台数×5秒」に設定し直してください。

また，EADSサーバIDが小さいEADSサーバから順番に起動してください。

KDEA04528-E

A data discrepancy between the cluster-definition file and the server-definition file was detected.

説明

サーバ定義ファイルとクラスタ定義ファイルの内容に不一致があります。

対処

サーバ定義のeads.server.addressパラメタおよびeads.server.portパラメタに指定されたEADSサーバが，クラスタ定義のeads.node.＜EADSサーバID＞.addressパラメタおよびeads.node.＜EADSサーバID＞.portパラメタに指定されているかどうかを確認してください。

＜EADSサーバID＞に，1〜96の整数が指定されているかどうかを確認してください。

KDEA04531-E

A server position was duplicated. (duplicated node ID1 = aa....aa, duplicated node ID2 = bb....bb)

aa....aa：位置が重複したEADSサーバのEADSサーバID1

bb....bb：位置が重複したEADSサーバのEADSサーバID2

説明

クラスタを構成するEADSサーバの位置が重複しました。

対処

クラスタ定義のeads.node.＜EADSサーバID＞.positionパラメタに重複がないかどうかを確認してください。

KDEA04540-E

A client connection address was duplicated. (duplicated node ID1 = aa....aa, duplicated node ID2 = bb....bb)

aa....aa：IPアドレスとポート番号の組み合わせが重複したEADSサーバのEADSサーバID1

bb....bb：IPアドレスとポート番号の組み合わせが重複したEADSサーバのEADSサーバID2

説明

クラスタ定義ファイルに同一のEADSサーバが複数登録されています。

対処

クラスタ定義のeads.node.＜EADSサーバID＞.addressパラメタとeads.node.＜EADSサーバID＞.portパラメタに重複がないかどうかを確認してください。

KDEA04541-E

The cluster-definition file contains only part of the server position specification.

説明

クラスタ定義ファイル中に，EADSサーバの位置の指定が一部しか存在していません。

対処

クラスタ定義のeads.node.＜EADSサーバID＞.positionパラメタを指定する場合は，クラスタを構成する全EADSサーバの位置を指定してください。省略する場合は，全EADSサーバの位置の指定を省略してください。

KDEA04661-E

Participation in the cluster failed. (error code = aa....aa)

aa....aa：エラーコード

説明

クラスタ参加処理に失敗しました。

対処

次の手順で対処してください。

必要に応じて，直前に出力されたメッセージを確認して要因を特定し，原因を取り除いてください。

eztool statusコマンドを実行して，クラスタの状態を確認してください。

EADSサーバの排他状態がlockの場合，排他が解除されていません。この場合は，eztool unlockコマンドを実行してください。

ezstartコマンドまたはezserverコマンドを実行して，起動処理，復旧処理，およびスケールアウト処理を再実行してください。

ただし，キャッシュの再開に失敗したあと，再開に失敗したキャッシュをeztool deletecacheコマンドで削除していないときは，EADSサーバを復旧できません。キャッシュの再開が失敗したキャッシュをeztool deletecacheコマンドで削除する必要があります。

KDEA04664-E

The relation between the number of servers and the number of replications was invalid. (number of servers = aa....aa, number of replications = bb....bb)

aa....aa：EADSサーバ数

bb....bb：データの多重度

説明

クラスタを構成するEADSサーバ数が「データの多重度×2−1」以上になっていません。

対処

クラスタ定義を見直して，クラスタを構成するEADSサーバ数が「データの多重度×2−1」以上になるようにEADSサーバ数を増やすか，またはデータの多重度（共通設定のeads.replication.factorパラメタの指定値）を下げてください。

KDEA04665-E

A server cannot be added when the number of replications is 1.

説明

データの多重度が1のときは，EADSサーバを追加できません。

対処

データの多重度（共通設定のeads.replication.factorパラメタの指定値）を見直してください。

データの多重度1でクラスタを起動している場合は，必要なデータを書き出してから全EADSサーバを停止してください。そのあとで，最新のパラメタの設定にあわせてクラスタ定義を書き換え，全EADSサーバを再起動してください。

KDEA04666-E

The number of servers in the cluster has already reached the maximum.

説明

クラスタ内のEADSサーバの数が，すでに上限に達しています。

対処

クラスタを構成するEADSサーバの上限である96台がクラスタに参加済みのため，これ以上EADSサーバを追加できません。

別のクラスタを使用することを検討してください。

KDEA04667-E

In the current state of the cluster, the server cannot participate in the cluster in the specified start type. (start type = aa....aa, cluster state = bb....bb)

aa....aa：起動方法

bb....bb：クラスタの状態

説明

現在のクラスタの状態では，EADSサーバは指定した起動方法でクラスタに参加できません。

対処

次の要因が考えられます。

ezstartコマンドまたはezserverコマンドのオプションの指定が誤っている。

縮退状態への遷移中に，EADSサーバを再起動，または復旧させた。

クラスタの状態がクラスタ稼働中（AVAILABLE）ではない。

EADSサーバ追加時に，縮退状態のEADSサーバが存在する。

EADSサーバ起動時のオプションの指定誤りや，指定忘れがないかどうかを確認してください。また，クラスタの状態が，指定した起動方法に必要な条件を満たしているかどうかを確認してから，再度EADSサーバを起動してください。

KDEA04668-E

The server could not participate in the cluster with the conditions specified in the options. (specified options = aa....aa, details = bb....bb)

aa....aa：EADSサーバ起動時に指定したオプション

bb....bb：詳細情報

説明

オプションで指定した条件では，EADSサーバがクラスタに参加できませんでした。

対処

次の要因が考えられます。

指定したEADSサーバIDに該当するEADSサーバが存在しない。

指定したEADSサーバの位置（ハッシュ値）に，すでにEADSサーバが存在する。

指定したEADSサーバIDのEADSサーバが担当するレンジの範囲が1である。

オプションに指定する値を見直して，EADSサーバを再度追加してください。

KDEA04669-E

An attempt to lock the server failed.

説明

排他の取得に失敗しました。

対処

eztool status -vコマンドを実行して実行中の処理を確認し，処理が終了するまで待ってからEADSサーバを再起動してください。もし，処理が終了しているのに排他が解除されていない場合は，eztool unlockコマンドを実行し，排他を解除してからEADSサーバを再起動してください。

KDEA04691-I

The transmission of cache data will now start. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

キャッシュのデータの転送を開始します。

KDEA04692-I

The cache data was successfully transferred. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

キャッシュのデータの転送に成功しました。

KDEA04693-E

The transmission of cache data failed. (cache name = aa....aa, error code = bb....bb)

aa....aa：キャッシュ名

bb....bb：エラーコード

説明

キャッシュのデータの転送に失敗しました。

対処

次の要因が考えられます。

データの送信元EADSサーバでエラーが発生した。

通信エラーが発生した。

予期しないエラーが発生した。

要因を特定し，問題を取り除いてください。

KDEA04697-E

Transmission of the data failed because a required server was not found.

説明

データの転送に必要な起動中のEADSサーバが存在しないため，転送に失敗しました。

データを保持しているEADSサーバが存在しないか，または多重度以下の数のEADSサーバしか起動していません。

対処

次の手順で対処してください。

eztool exportコマンドを実行して，必要なデータをファイルに書き出してください。

起動中のすべてのEADSサーバを終了してください。

すべてのEADSサーバを開始してください。

KDEA04698-E

An error occurred on the server that sent data. (error code = aa....aa)

aa....aa：エラーコード

説明

データの送信元EADSサーバでエラーが発生しました。

対処

次の要因が考えられます。

送信タイムアウトが発生した。

通信エラーが発生した。

予期しないエラーが発生した。

復旧処理，スケールアウト処理，およびリバランス処理が実行できない状態だった。

ezstartコマンドまたはezserverコマンドのオプション指定に誤りがあった。

要因を特定し，問題を取り除いたあと，EADSサーバを再起動してください。

KDEA04703-E

The master switchover failed because a cache operation failed.

説明

データ操作に失敗したため，データのコピー元となるEADSサーバの切り替えに失敗しました。

対処

直前に出力されたメッセージを確認してください。

KDEA04722-E

A specified port is already being used. (self address = aa....aa, property name = bb....bb, port number = cc....cc)

aa....aa：自EADSサーバのIPアドレス

bb....bb：ポート番号を表すパラメタ名

cc....cc：指定されたポート番号

説明

指定されたポート番号はすでに使用されています。

対処

他プロセスが使用していないポート番号を指定してください。

KDEA04723-E

An unknown message was received. (source address = aa....aa, source port = bb....bb, header = cc....cc)

aa....aa：メッセージ配信元のIPアドレス

bb....bb：メッセージ配信元のポート番号

cc....cc：受信したメッセージのヘッダ（16進数）

説明

不正なメッセージを受信しました。使用中の通信ポートに対して，他システムがメッセージを送信しています。

対処

他システムのメッセージ配信と混線しないように，配信先IPアドレス，または配信先ポート番号を見直してください。

KDEA04725-E

A message of an unsupported protocol version was received. (source address = aa....aa, source port = bb....bb, protocol version = cc....cc)

aa....aa：メッセージ配信元のIPアドレス

bb....bb：メッセージ配信元のポート番号

cc....cc：受信したメッセージのプロトコルバージョン

説明

サポートされていないプロトコルバージョンのメッセージを受信しました。

異なるバージョンのプロトコルを使用しているシステムと混在しています。

対処

インストールされているEADSのバージョンと同じかどうか確認してください。

KDEA04726-W

A connection timeout occurred during failure detection processing. (destination address = aa....aa, destination port = bb....bb)

aa....aa：接続先EADSサーバのIPアドレス

bb....bb：接続先EADSサーバのポート番号

説明

生存確認で，タイムアウト時間までにコネクションを確立できませんでした。

対処

頻繁にタイムアウトが発生する場合は，ネットワーク機器に故障がないか確認してください。

または，サーバ定義のeads.failureDetector.connection.timeoutパラメタの指定値を見直してください。

KDEA04727-W

A read timeout occurred during failure detection processing. (destination address = aa....aa, destination port = bb....bb)

aa....aa：接続先EADSサーバのIPアドレス

bb....bb：接続先EADSサーバのポート番号

説明

コネクション確立後の生存確認で，タイムアウト時間までに受信できませんでした。

対処

頻繁にタイムアウトが発生する場合は，ネットワーク機器に故障がないか確認してください。

または，サーバ定義のeads.failureDetector.read.timeoutパラメタの指定値を見直してください。

KDEA04728-E

An error occurred during establishment of a connection for failure detection processing. (error message = aa....aa)

aa....aa：JavaVMからスローされた例外のエラーメッセージ

説明

生存確認のコネクション確立中に，JavaVMから例外がスローされたため，ソケットが作成できませんでした。

対処

ファイルディスクリプタが見積もりどおりに設定されているかどうかを確認してください。

それでも繰り返し発生する場合は，弊社問い合わせ窓口にご連絡ください。

KDEA04752-I

Processing to isolate a server was successful. (server ID = aa....aa)

aa....aa：縮退したEADSサーバのEADSサーバID

説明

縮退を完了しました。

KDEA04755-E

Processing to isolate a server failed because a cache operation failed.

説明

データ操作に失敗したため，縮退に失敗しました。

対処

直前に出力されたメッセージを確認してください。

KDEA04781-I

A server will now be added to the cluster. (server ID = aa....aa)

aa....aa：クラスタに追加されるEADSサーバのEADSサーバID

説明

クラスタにEADSサーバを追加します。

KDEA04783-I

Processing to isolate a server will now start. (server ID = aa....aa)

aa....aa：縮退するEADSサーバのEADSサーバID

説明

eztool isolateコマンドが実行されました。EADSサーバが縮退します。

KDEA04785-I

A command lock will now be acquired.

説明

コマンドの排他を取得します。

KDEA04786-I

A command lock could not be acquired.

説明

すでにほかのコマンドによって排他が取得されていたため，コマンドの排他を取得できませんでした。

対処

実行中のコマンドが終了するのを確認してから，コマンドを再実行してください。

KDEA04787-I

Acquisition of a command lock failed. (error code = aa....aa)

aa....aa：エラーコード

説明

コマンドの排他を取得できませんでした。

対処

次の要因が考えられます。

ほかのクラスタが操作中であった。

EADSサーバが停止した。

要因を特定し，問題を取り除いたあと，コマンドを再実行してください。

KDEA04789-I

A command lock will now be released.

説明

コマンドの排他を解除します。

KDEA04790-I

An attempt to release a lock failed. (error code = aa....aa)

aa....aa：エラーコード

説明

コマンドの排他を解除できませんでした。

対処

次の要因が考えられます。

ほかのクラスタが操作中であった。

EADSサーバが停止した。

要因を特定し，問題を取り除いたあと，eztool unlockコマンドを実行して，排他を解除してください。

KDEA04792-I

Now waiting for executing requests to complete...

説明

実行中のリクエストが完了するのを待っています。

KDEA04793-I

All requests are complete.

説明

実行中であった，すべてのリクエストが完了しました。

待機中に到着したリクエストの実行を開始します。

KDEA04794-I

The wait for the lock to end will now start.

説明

排他の完了待ちを開始しました。

KDEA04795-I

The wait for the lock to end ended successfully.

説明

排他の完了待ちが終了しました。

KDEA04799-E

Processing to isolate a server will now start. (server ID = aa....aa)

aa....aa：縮退するEADSサーバのEADSサーバID

説明

クラスタ監視によってEADSサーバダウンを検知しました。EADSサーバが縮退します。

対処

KDEA04752-Iメッセージが出力されて，縮退処理が完了したことを確認してください。そのあとで，次のどちらかのコマンドを実行して，縮退したEADSサーバを復旧してください。

ezstart -rコマンド

ezserver -rコマンド

スケールアウト処理またはリバランス処理中に縮退したEADSサーバを復旧する場合，縮退したEADSサーバのクラスタ定義ファイルに，スケールアウト処理またはリバランス処理後のクラスタ構成情報が反映されていない可能性があります。縮退したEADSサーバに，正常に稼働しているEADSサーバのクラスタ定義ファイルをコピーしてから，復旧処理を実行してください。

KDEA04800-E

This server will be stopped because a gap in the data could not be filled.

説明

クラスタで合意処理が継続できなくなったため，このEADSサーバを停止します。

対処

更新操作の履歴が格納される領域のサイズが見積もりどおりに設定されているか確認してください。

十分なサイズが設定されていない場合は，共通設定のeads.replication.external.heapsizeパラメタの値を変更してください。

次のどちらかのコマンドを実行して，停止したEADSサーバを復旧してください。

ezstart -rコマンド

ezserver -rコマンド

または，クラスタ内の全EADSサーバを再起動してください。

KDEA04801-E

This server will be stopped because a gap in the data could not be filled. (cache name = aa....aa, range ID = bb....bb)

aa....aa：キャッシュ名

bb....bb：レンジID

説明

クラスタで合意処理が継続できなくなったため，このEADSサーバを停止します。

対処

更新操作の履歴が格納される領域のサイズが見積もりどおりに設定されているか確認してください。

十分なサイズが設定されていない場合は，共通設定のeads.replication.external.heapsizeパラメタの値を変更してください。

次のどちらかのコマンドを実行して，停止したEADSサーバを復旧してください。

ezstart -rコマンド

ezserver -rコマンド

または，クラスタ内の全EADSサーバを再起動してください。

KDEA04805-E

Only some of the data are available because a server is isolated. (server ID = aa....aa, aborted positions = bb....bb)

aa....aa：縮退したEADSサーバのEADSサーバID

bb....bb：アクセスできないデータ範囲のコンシステント・ハッシング上の開始位置の一覧

説明

EADSサーバが縮退したため，一部のデータにアクセスできません。

対処

データへのアクセスはできませんが，キャッシュ上にデータは残っています。次の手順で対処してください。

eztool exportコマンドを実行して，必要なデータをファイルに書き出してください。

起動中のすべてのEADSサーバを終了してください。

すべてのEADSサーバを開始してください。

EADSサーバの復旧によって，クラスタを通常状態に戻すことはできません。

KDEA04807-E

The system could not continue building a consensus on distribution among servers in the range.

説明

合意処理が続行できなくなりました。

対処

クラスタ内の全EADSサーバを再起動してください。

KDEA04808-E

Only some of the data are available because a server is isolated. Some data were lost. (isolated server ID = aa....aa, lost data start positions = bb....bb, aborted data start positions = cc....cc)

aa....aa：縮退したEADSサーバのEADSサーバID

bb....bb：欠落したデータ範囲のコンシステント・ハッシング上の開始位置の一覧

cc....cc：アクセスできないデータ範囲のコンシステント・ハッシング上の開始位置の一覧

説明

EADSサーバが縮退したため，一部のデータにアクセスできません。

また，一部のデータが欠落しました。

対処

欠落していないデータについて，データへのアクセスはできませんが，キャッシュ上にデータは残っています。次の手順で対処してください。

eztool exportコマンドを実行して，必要なデータをファイルに書き出してください。

起動中のすべてのEADSサーバを終了してください。

すべてのEADSサーバを開始してください。

EADSサーバの復旧によって，クラスタを通常状態に戻すことはできません。

KDEA04809-W

The number of running servers is the minimum required for the cluster to be available. (isolated server ID = aa....aa, start positions of data to be lost = bb....bb, start positions of data to be aborted = cc....cc)

aa....aa：縮退したEADSサーバのEADSサーバID

bb....bb：さらにEADSサーバが縮退した場合，欠落のおそれがあるデータ範囲のコンシステント・ハッシング上の開始位置の一覧

cc....cc：さらにEADSサーバが縮退した場合，アクセスできないおそれがあるデータ範囲のコンシステント・ハッシング上の開始位置の一覧

説明

稼働中のEADSサーバ数が，最低限クラスタが動作できる数になりました。

さらにEADSサーバが縮退した場合，一部のデータにアクセスできなくなるか，または一部のデータが欠落するおそれがあります。

対処

次のどちらかのコマンドを実行して，縮退しているEADSサーバを復旧してください。

ezstart -rコマンド

ezserver -rコマンド

KDEA04810-W

The number of running servers is the minimum required for the cluster to be available. (isolated server ID = aa....aa, start positions = bb....bb)

aa....aa：縮退したEADSサーバのEADSサーバID

bb....bb：さらにEADSサーバが縮退した場合，アクセスできないおそれがあるデータ範囲のコンシステント・ハッシング上の開始位置の一覧

説明

稼働中のEADSサーバ数が，最低限クラスタが動作できる数になりました。

さらにEADSサーバが縮退した場合，一部のデータにアクセスできなくなるおそれがあります。

対処

次のどちらかのコマンドを実行して，縮退しているEADSサーバを復旧してください。

ezstart -rコマンド

ezserver -rコマンド

KDEA04812-E

An unexpected exception occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生しました。

対処

弊社問い合わせ窓口にご連絡ください。

KDEA04813-E

A sequence number is too large and exceeded the upper limit.

説明

長期運用によって，内部的なシーケンス番号がオーバーフローしました。

対処

弊社問い合わせ窓口にご連絡ください。

KDEA04814-W

Server-to-server communication timed out. (timeout value = aa....aa, destination addresses = bb....bb)

aa....aa：タイムアウト時間

bb....bb：送信先EADSサーバのIPアドレス一覧

説明

EADSサーバ間の通信でタイムアウトが発生しました。

次の要因が考えられます。

通信先EADSサーバ，ホスト，またはネットワークで障害が発生している。

タイムアウト時間が適切でない。

対処

タイムアウトした原因を取り除いてください。

または，サーバ定義のeads.replication.consensus.timeoutパラメタの指定値を大きくしてください。ただし，次の場合は指定値を変更する必要はありません。

通信障害が発生している場合

プロセス障害などによってEADSサーバが縮退している場合

eztool isolateコマンドによってEADSサーバが縮退している場合

KDEA04815-E

The cluster status has become NOT_AVAILABLE.

説明

クラスタの状態が，クラスタ動作不能（NOT_AVAILABLE）になりました。

スプリットブレインが発生したか，クラスタ内の半数以上のEADSサーバに障害が発生しました。

対処

スプリットブレインが発生している場合，ネットワークを復旧してください。

クラスタ内の半数以上のEADSサーバに障害が発生している場合，クラスタ内の全EADSサーバを再起動してください。

KDEA04816-I

The cluster has recovered from the NOT_AVAILABLE state.

説明

クラスタの状態が，クラスタ動作不能（NOT_AVAILABLE）から回復しました。

スプリットブレインから回復しました。

KDEA04817-E

A gap was found that the server could not resolve.

説明

遅延していたEADSサーバの処理を同期しようとしましたが，同期を取るための履歴が残っていないため，回復できませんでした。

対処

次の要因が考えられます。

合意メッセージの送信キューがオーバーフローした。

EADSサーバが縮退した。

通信エラーが発生した。

予期しないエラーが発生した。

要因を特定し，問題を取り除いたあと，次のどちらかのコマンドを実行して，EADSサーバを復旧してください。

ezstart -rコマンド

ezserver -rコマンド

KDEA04821-W

Processing to delete part of the history in order to resolve a memory shortage in the history storage area has started.

説明

更新操作の履歴を格納する領域が不足したため，既存の更新操作の履歴の削除を開始しました。

対処

更新操作の履歴が格納される領域のサイズが見積もりどおりに設定されているか確認してください。

十分なサイズが設定されていない場合は，共通設定のeads.replication.external.heapsizeパラメタの値を変更してください。

KDEA04822-W

During the building of a consensus on distribution among the servers in the cluster, processing to delete part of the history in order to resolve a memory shortage in the history storage area failed. (requested size = aa....aa)

aa....aa：更新操作の履歴を格納するために要求されたサイズ

説明

更新操作の履歴を格納する領域が不足し，既存の更新操作の履歴を削除しようとしましたが，それでも要求されたサイズの領域を確保できなかったため，合意処理を中断しました。

対処

ネットワーク機器に故障がないか確認したあと，しばらくしてから再実行してください。

それでも繰り返し発生する場合は，更新操作の履歴が格納される領域のサイズが見積もりどおりに設定されているか確認してください。

十分なサイズが設定されていない場合は，共通設定のeads.replication.external.heapsizeパラメタの値を変更してください。

KDEA04823-E

During the building of a consensus on distribution among the servers in the cluster, processing to delete part of the history in order to resolve a memory shortage in the history storage area failed. (requested size = aa....aa)

aa....aa：更新操作の履歴を格納するために要求されたサイズ

説明

更新操作の履歴を格納する領域が不足し，既存の更新操作の履歴を削除しようとしましたが，それでも要求されたサイズの領域を確保できなかったため，すべての処理が異常終了しました。

対処

更新操作の履歴が格納される領域のサイズが見積もりどおりに設定されているか確認してください。

十分なサイズが設定されていない場合は，共通設定のeads.replication.external.heapsizeパラメタの値を変更してください。

KDEA04824-W

During processing to delete part of the history in order to resolve a memory shortage in the history storage area, processing to build a consensus stopped because the memory shortage could not be resolved. (requested size = aa....aa, cache name = bb....bb, range ID = cc....cc)

aa....aa：更新操作の履歴を格納するために要求されたサイズ

bb....bb：キャッシュ名

cc....cc：レンジID

説明

更新操作の履歴を格納する領域が不足し，既存の更新操作の履歴を削除しようとしましたが，それでも要求されたサイズの領域を確保できなかったため，合意処理を中断しました。

対処

ネットワーク機器に故障がないか確認したあと，しばらくしてから再実行してください。

それでも繰り返し発生する場合は，更新操作の履歴が格納される領域のサイズが見積もりどおりに設定されているか確認してください。

十分なサイズが設定されていない場合は，共通設定のeads.replication.external.heapsizeパラメタの値を変更してください。

KDEA04825-E

During processing to delete part of the history in order to resolve a memory shortage in the history storage area, all processing ended abnormally because the memory shortage could not be resolved. (requested size = aa....aa, cache name = bb....bb, range ID = cc....cc)

aa....aa：更新操作の履歴を格納するために要求されたサイズ

bb....bb：キャッシュ名

cc....cc：レンジID

説明

更新操作の履歴を格納する領域が不足し，既存の更新操作の履歴を削除しようとしましたが，それでも要求されたサイズの領域を確保できなかったため，すべての処理が異常終了しました。

対処

更新操作の履歴が格納される領域のサイズが見積もりどおりに設定されているか確認してください。

十分なサイズが設定されていない場合は，共通設定のeads.replication.external.heapsizeパラメタの値を変更してください。

KDEA04841-E

A TCP connection was closed because the queue for sending distribution-consensus messages overflowed. (destination address = aa....aa, destination port = bb....bb, queuesize = cc....cc, queuedatasize = dd....dd)

aa....aa：接続先EADSサーバのIPアドレス

bb....bb：接続先EADSサーバのポート番号

cc....cc：送信キュー内のメッセージ数

dd....dd：送信キュー内のメッセージのデータサイズ

説明

合意メッセージの送信キューがあふれたため，コネクションを切断しました。

対処

サーバ定義のeads.replication.sendQueue.lengthパラメタ，またはeads.replication.sendQueue.datasizeパラメタの指定値を大きくしてください。

KDEA04871-E

Initialization of UDP reception failed because an error occurred during initialization of the receiving socket. (error message = aa....aa, multicast address = bb....bb, multicast port = cc....cc)

aa....aa：JavaVMからスローされた例外のエラーメッセージ

bb....bb：IPアドレス（マルチキャストアドレス）

cc....cc：ポート番号

説明

受信ソケットの初期化中に障害が発生したため，UDP受信の初期化処理に失敗しました。

対処

出力された例外のエラーメッセージから要因を特定し，問題を取り除いてください。また，ファイルディスクリプタが見積もりどおりに設定されているかどうかを確認してください。

KDEA04872-E

Initialization of UDP transmission failed because an error occurred during initialization of the sending socket. (error message = aa....aa, multicast address = bb....bb, multicast port = cc....cc)

aa....aa：JavaVMからスローされた例外のエラーメッセージ

bb....bb：IPアドレス（マルチキャストアドレス）

cc....cc：ポート番号

説明

送信ソケットの初期化中に障害が発生したため，UDP送信の初期化処理に失敗しました。

対処

出力された例外のエラーメッセージから要因を特定し，問題を取り除いてください。また，ファイルディスクリプタが見積もりどおりに設定されているかどうかを確認してください。

KDEA04881-E

Initialization of TCP/IP reception failed because an error occurred during initialization of the receiving socket. (error message = aa....aa, local address = bb....bb, local port = cc....cc)

aa....aa：JavaVMからスローされた例外のエラーメッセージ

bb....bb：自IPアドレス

cc....cc：自ポート番号

説明

受信ソケットの初期化中に障害が発生したため，TCP/IP受信の初期化処理に失敗しました。

対処

エラーメッセージごとに次のことを確認してください。

Cannot assign requested address

自IPアドレスがOSで使用できるアドレスかどうか確認してください。

Address already in use

自ポート番号がほかのプロセスで使用されていないかどうか確認してください。

その他

出力された例外のエラーメッセージから要因を特定し，問題を取り除いてください。また，ファイルディスクリプタが見積もりどおりに設定されているかどうかを確認してください。

KDEA04882-E

Initialization of TCP/IP transmission failed because an error occurred during initialization of the sending socket. (error message = aa....aa, destination address = bb....bb, destination port = cc....cc)

aa....aa：JavaVMからスローされた例外のエラーメッセージ

bb....bb：接続先IPアドレス

cc....cc：接続先ポート番号

説明

送信ソケットの初期化中に障害が発生したため，TCP/IP送信の初期化処理に失敗しました。

対処

エラーメッセージごとに次のことを確認してください。

Connection refused

接続先ポート番号が正しいかどうか確認してください。

正しい場合，接続先EADSサーバが起動済みかどうか確認してください。

Connection Timedout

接続先IPアドレスが正しいかどうか確認してください。

正しい場合，接続先のOSが起動済みかどうか確認してください。

java.net.SocketTimeoutException

接続先IPアドレスが正しいかどうか確認してください。

正しい場合，接続先のOSが起動済みかどうか確認してください。

その他

出力された例外のエラーメッセージから要因を特定し，問題を取り除いてください。また，ファイルディスクリプタが見積もりどおりに設定されているかどうかを確認してください。

KDEA04883-I

A different ReceiveBufferSize from the property value will be used. (property name = aa....aa, property value = bb....bb, ReceiveBufferSize = cc....cc)

aa....aa：パラメタ名

bb....bb：パラメタの指定値

cc....cc：実際に使用される合意メッセージの受信バッファサイズ

説明

サーバ定義のeads.replication.connection.buffersizeパラメタに指定した値が，OSで使用できるウィンドウサイズを超えたため，指定値と異なる受信バッファサイズが使用されました。

KDEA04884-I

A different SendBufferSize from the property value will be used. (property name = aa....aa, property value = bb....bb, SendBufferSize = cc....cc)

aa....aa：パラメタ名

bb....bb：パラメタの指定値

cc....cc：実際に使用される合意メッセージの送信バッファサイズ

説明

サーバ定義のeads.replication.connection.buffersizeパラメタに指定した値が，OSで使用できるウィンドウサイズを超えたため，指定値と異なる送信バッファサイズが使用されました。

KDEA04887-W

A read timeout occurred in a TCP/IP reception. (local address = aa....aa, local port = bb....bb, destination address = cc....cc, destination port = dd....dd)

aa....aa：自IPアドレス

bb....bb：自ポート番号

cc....cc：接続先IPアドレス

dd....dd：接続先ポート番号

説明

コネクション確立後のデータ受信で，タイムアウト時間までにデータを受信できませんでした。

対処

頻繁にタイムアウトが発生する場合は，サーバ定義のeads.transfer.timeoutパラメタの指定値を見直してください。

KDEA04888-W

A send timeout occurred in a TCP/IP transmission. (local address = aa....aa, local port = bb....bb, destination address = cc....cc, destination port = dd....dd)

aa....aa：自IPアドレス

bb....bb：自ポート番号

cc....cc：接続先IPアドレス

dd....dd：接続先ポート番号

説明

コネクション確立後のデータ送信で，タイムアウト時間までにデータを送信できませんでした。

対処

頻繁にタイムアウトが発生する場合は，サーバ定義のeads.transfer.timeoutパラメタの指定値を見直してください。

KDEA04891-E

An unknown message was received. (source address = aa....aa, source port = bb....bb, error message = cc....cc)

aa....aa：メッセージ配信元のIPアドレス

bb....bb：メッセージ配信元のポート番号

cc....cc：エラーメッセージ

説明

不正なメッセージを受信しました。使用中の通信ポートに対して，他システムがメッセージを送信しています。

対処

他システムのメッセージ配信と混線しないように，配信先IPアドレス，または配信先ポート番号を見直してください。

KDEA04892-W

TCP/IP transmission failed because the server is not running.

説明

EADSサーバが終了しているため，TCP/IPでの送信処理に失敗しました。

KDEA04932-E

An error occurred during cache processing. (exception = aa....aa, cache name = bb....bb)

aa....aa：例外クラス名

bb....bb：キャッシュ名（キャッシュ名がない場合はnull）

説明

キャッシュの処理中にエラーが発生しました。

対処

直前に出力されたメッセージを確認してください。

KDEA04962-W

Cache creation was aborted because a consensus on distribution for part of the range is not executable. (cache name = aa....aa, management client = bb....bb)

aa....aa：キャッシュ名

bb....bb：コマンド実行元のIPアドレス

説明

一部のレンジで合意処理が実行できないため，キャッシュの作成を中断しました。

対処

クラスタ内の全EADSサーバを再起動してから，コマンドを再実行してください。

KDEA04965-E

Addition of a server to the cluster failed because the system could not continue building a consensus on distribution among the servers in the cluster. (node id = aa....aa)

aa....aa：追加しようとしたEADSサーバのEADSサーバID

説明

クラスタで合意処理が継続できなくなったため，クラスタへのEADSサーバの追加に失敗しました。

対処

eztool statusコマンドを実行して，クラスタの状態を確認してください。クラスタの状態がクラスタ稼働中（AVAILABLE）の場合，EADSサーバを復旧できます。

クラスタの状態が，クラスタ動作不能（NOT_AVAILABLE）またはクラスタ一部稼働中（PARTIALLY_AVAILABLE）の場合，EADSサーバは復旧できません。クラスタ内の全EADSサーバを再起動する必要があります。

KDEA04966-E

Processing to isolate a server failed because the system could not continue building a consensus on distribution among the servers in the cluster. (node id = aa....aa)

aa....aa：縮退しようとしたEADSサーバのEADSサーバID

説明

クラスタで合意処理が継続できなくなったため，EADSサーバの縮退に失敗しました。

対処

eztool statusコマンドを実行して，クラスタの状態を確認してください。クラスタの状態がクラスタ稼働中（AVAILABLE）の場合，EADSサーバを復旧できます。

クラスタの状態が，クラスタ動作不能（NOT_AVAILABLE）またはクラスタ一部稼働中（PARTIALLY_AVAILABLE）の場合，EADSサーバは復旧できません。クラスタ内の全EADSサーバを再起動する必要があります。

KDEA04967-E

Acquisition of a command lock failed because the system could not continue building a consensus on distribution among the servers in the cluster.

説明

クラスタで合意処理が継続できなくなったため，コマンドの排他の取得に失敗しました。

対処

eztool statusコマンドを実行してクラスタの状態を確認し，別のEADSサーバでコマンドを再実行してください。

KDEA04968-E

The release of a lock failed because the system could not continue building a consensus on distribution among the servers in the cluster.

説明

クラスタで合意処理が継続できなくなったため，コマンドの排他の解除に失敗しました。

対処

別のEADSサーバでeztool unlockコマンドを再実行してください。

KDEA04971-W

An attempt to change the server position stopped.

説明

EADSサーバの縮退以外の問題（例：データ総量監視の上限値の縮小に失敗した）が発生したため，EADSサーバの位置の移動を中止しました。

対処

直前に出力されたメッセージを確認してください。

KDEA04972-E

An attempt to change the server position failed because some servers were isolated.

説明

複数のEADSサーバが縮退したため，EADSサーバの位置の移動に失敗しました。

対処

eztool statusコマンドを実行して，クラスタの状態を確認してください。縮退しているEADSサーバを復旧させてから，eztool rebalanceコマンドを再実行してください。

22.6　KDEA06000〜KDEA07999

KDEA06000〜KDEA07999のメッセージとその対処方法について説明します。

KDEA06001-E

The specified cache already exists. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

指定されたキャッシュ名はすでに存在します。

対処

すでに存在するキャッシュを削除するか，またはキャッシュ名を変更してください。

対処が必要なければ，このメッセージは無視してください。

KDEA06002-E

The specified cache was not found. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

指定されたキャッシュが見つかりません。

対処

キャッシュを新規に作成するか，または処理を見直してください。

KDEA06004-E

An unexpected exception occurred. (detail = aa....aa)

aa....aa：保守情報

説明

予期しない例外が発生しました。

対処

弊社問い合わせ窓口にご連絡ください。

KDEA07001-E

An attempt to open a file failed. (file name = aa....aa, detail = bb....bb)

aa....aa：オープンしようとしたストアデータファイル名（絶対パス）

bb....bb：詳細情報

説明

ストアデータファイルのオープンに失敗しました。

次の要因が考えられます。

読み込み対象のストアデータファイルがない。

ストアデータファイル以外のパスを指定した。

ストアデータファイルのアクセス権がない。

対処

詳細情報を参照し，OS環境に問題がないかどうかを確認してください。

KDEA07002-E

An I/O error occurred. (file name = aa....aa, detail = bb....bb)

aa....aa：ストアデータファイル名（絶対パス）

bb....bb：詳細情報

説明

I/Oエラーが発生しました。

対処

詳細情報を参照し，OS環境に問題がないかどうかを確認してください。

KDEA07003-E

The data format is invalid. (file name = aa....aa, detail = bb....bb)

aa....aa：ストアデータファイル名（絶対パス）

bb....bb：保守情報

説明

データ形式が不正です。

次の要因が考えられます。

ストアデータファイルではない。

ストアデータファイルが破損している。

対処

正しいストアデータファイルを指定しているかどうかを見直してください。

または，別のストアデータファイルを使用してください。

KDEA07004-E

A checksum error occurred. (file name = aa....aa)

aa....aa：ストアデータファイル名（絶対パス）

説明

チェックサムエラーです。

ストアデータファイルが破損していると考えられます。

対処

正しいストアデータファイルを指定しているかどうかを見直してください。

または，別のストアデータファイルを使用してください。

KDEA07005-E

The input data version is too new. (file name = aa....aa, input version = bb....bb)

aa....aa：ストアデータファイル名（絶対パス）

bb....bb：ストアデータファイルのフォーマットバージョン

説明

新しいフォーマットバージョンで取得したストアデータファイルを読み込もうとしています。

対処

正しいストアデータファイルを指定しているかどうかを見直してください。

または，別のストアデータファイルを使用してください。

KDEA07006-E

An unexpected exception occurred. (details = aa....aa)

aa....aa：保守情報

説明

予期しない例外が発生しました。

対処

弊社問い合わせ窓口にご連絡ください。

KDEA07101-E

The specified cache type cannot be used. (cache name = aa....aa, cache type = bb....bb)

aa....aa：キャッシュ名

bb....bb：キャッシュタイプ

説明

指定されたキャッシュタイプは使えません。

次の要因が考えられます。

キャッシュ定義のeads.cache.typeパラメタの指定値が誤っている。

共通設定のeads.java.external.heapsizeパラメタの指定値が小さい。

対処

キャッシュ定義のeads.cache.typeパラメタの指定値を見直してください。

キャッシュ定義のeads.cache.typeパラメタの指定値が正しい場合は，共通設定のeads.java.external.heapsizeパラメタの指定値を大きくしてください。

KDEA07104-E

The specified cache or cache file was not found. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

指定されたキャッシュ，またはキャッシュファイルが見つかりません。

対処

キャッシュを作成してください。

または，正しいキャッシュファイルを指定しているかどうかを見直してください。

KDEA07106-E

An attempt to open a file failed. (file name = aa....aa, details = bb....bb)

aa....aa：オープンしようとしたキャッシュファイル名（絶対パス）

bb....bb：詳細情報

説明

キャッシュファイルのオープンに失敗しました。

次の要因が考えられます。

読み込み対象のキャッシュファイルがない。

キャッシュファイル以外のパスを指定した。

キャッシュファイルのアクセス権がない。

キャッシュファイルを配置するファイルシステムとして，サポートしていないファイルシステムを使用している。

対処

詳細情報を参照し，OS環境に問題がないかどうかを確認してください。または，キャッシュファイルを配置しているファイルシステムが，EADSがサポートしているファイルシステムであることを確認してください。EADSがサポートしているファイルシステムついては，「7.7.2(2)　キャッシュファイルの格納先の設定」を参照してください。

KDEA07107-E

An I/O error occurred. (file name = aa....aa, details = bb....bb)

aa....aa：キャッシュファイル名（絶対パス）（特定できない場合はnull）

bb....bb：詳細情報

説明

I/Oエラーが発生しました。

対処

詳細情報を参照し，OS環境に問題がないかどうかを確認してください。

KDEA07108-E

The data format is invalid. (file name = aa....aa, details = bb....bb)

aa....aa：キャッシュファイル名（絶対パス）

bb....bb：保守情報

説明

データ形式が不正です。

次の要因が考えられます。

キャッシュファイルではない。

キャッシュファイルが破損している。

対処

正しいキャッシュファイルを指定しているかどうかを見直してください。

または，別のキャッシュファイルを使用してください。

KDEA07109-E

A checksum error occurred. (file name = aa....aa)

aa....aa：キャッシュファイル名（絶対パス）

説明

チェックサムエラーです。

キャッシュファイルが破損していると考えられます。

対処

正しいキャッシュファイルを指定しているかどうかを見直してください。

または，別のキャッシュファイルを使用してください。

KDEA07110-E

The input data version is too new. (file name = aa....aa, input version = bb....bb)

aa....aa：キャッシュファイル名（絶対パス）

bb....bb：キャッシュファイルのフォーマットバージョン

説明

新しいフォーマットバージョンで取得したキャッシュファイルを読み込もうとしています。

対処

正しいキャッシュファイルを指定しているかどうかを見直してください。

または，別のキャッシュファイルを使用してください。

KDEA07111-E

A data discrepancy between the cache property file and the cache file was detected. (cache property file name = aa....aa, parameter = bb....bb, cache property value = cc....cc, cache file value = dd....dd)

aa....aa：キャッシュ定義ファイル名

bb....bb：パラメタ名

cc....cc：キャッシュ定義ファイルの値

dd....dd：キャッシュファイルの値

説明

キャッシュ定義ファイルの値とキャッシュファイルの値に不一致があります。

キャッシュファイルを作成したあとで，次に示すキャッシュ定義のパラメタを変更することはできません。

eads.cache.type

eads.cache.eviction.policy

eads.cache.disk.filesize

eads.cache.disk.blocksize

eads.cache.disk.persistentMemory.enable

ディスクキャッシュの格納先として不揮発性メモリを使用する場合は，次に示すキャッシュ定義のパラメタも変更することはできません。

eads.cache.disk.persistentMemory.device

eads.cache.disk.persistentMemory.blocksize

eztool resumeコマンド実行時に，キャッシュファイルを作成したあとで，次に示すキャッシュ定義のパラメタの指定値を小さい値に変更することはできません。

eads.cache.disk.filenum

eads.cache.eviction.keyCount（データ自動削除機能を使用する場合）

ezstart -rコマンドまたはezserver -rコマンド実行時に，キャッシュファイルを作成したあとで，次に示すキャッシュ定義のパラメタを変更することはできません。

eads.cache.disk.filenum

eads.cache.eviction.keyCount（データ自動削除機能を使用する場合）

対処

正しいキャッシュファイルを指定しているかどうかを見直してください。

または，別のキャッシュファイルを使用してください。

キャッシュ定義ファイルの値が誤っている場合は，次に示すキャッシュ定義のパラメタの指定値を見直し，正しい値に変更したあと，EADSサーバを再起動してください。

eads.cache.type

eads.cache.eviction.policy

eads.cache.eviction.keyCount（データ自動削除機能を使用する場合）

eads.cache.disk.filesize

eads.cache.disk.blocksize

eads.cache.disk.filenum

eads.cache.disk.persistentMemory.enable

eads.cache.disk.persistentMemory.device

eads.cache.disk.persistentMemory.blocksize

KDEA07112-E

A data discrepancy between the cluster property file and the cache file was detected. (cache name = aa....aa, type = bb....bb, cluster property value = cc....cc, cache file value = dd....dd)

aa....aa：キャッシュ名

bb....bb：種別

cc....cc：クラスタ定義ファイルの値（パラメタが設定されていない場合はnull）

dd....dd：キャッシュファイルの値

説明

クラスタ定義ファイルの値とキャッシュファイルの値に不一致があります。

キャッシュファイルを作成したあとで，クラスタ定義のパラメタを変更することはできません。

種別ごとの要因を次の表に示します。

種別

要因

server number

EADSサーバの数が不一致です。

no server ID

指定したIDのEADSサーバがありません。

position

EADSサーバの位置が不一致です。

対処

正しいキャッシュファイルを指定しているかどうかを見直してください。

または，別のキャッシュファイルを使用してください。

クラスタ定義ファイルの値が誤っている場合は，次に示すクラスタ定義のパラメタを見直し，正しい指定に変更したあと，EADSサーバを再起動してください。

eads.node.＜EADSサーバID＞.address

eads.node.＜EADSサーバID＞.port

eads.node.＜EADSサーバID＞.position

KDEA07113-E

A data discrepancy between the cache and the cache file was detected. (cache name = aa....aa, error details = bb....bb)

aa....aa：キャッシュ名

bb....bb：エラー詳細情報

説明

キャッシュとキャッシュファイルの値に不一致があるため，EADSサーバを復旧できませんでした。

対処

正しいキャッシュファイルを指定しているかどうかを見直してください。

または，別のキャッシュファイルを使用してください。

KDEA07115-E

A cache file cannot be written to. (cache name = aa....aa, details = bb....bb)

aa....aa：キャッシュ名

bb....bb：詳細情報

説明

キャッシュファイルの書き込み中に問題が発生したため，キャッシュファイルの書き込みに失敗しました。

対処

詳細情報および直前に出力されたメッセージから要因を特定し，問題を取り除いてください。

ディスクキャッシュの格納先として不揮発性メモリを使用している場合は，キャッシュ定義ファイルのeads.cache.disk.persistentMemory.deviceパラメタに指定した不揮発性メモリのデバイスファイルの容量が不足していないか確認してください。

KDEA07116-E

A cache file cannot be read. (cache name = aa....aa, details = bb....bb)

aa....aa：キャッシュ名

bb....bb：詳細情報

説明

キャッシュファイルの読み込みに失敗しました。

次の要因が考えられます。

キャッシュ定義ファイルの読み込み中に問題が発生した。

キャッシュファイルの読み込み中に問題が発生した。

キャッシュファイルに過不足があります。

対処

詳細情報および直前に出力されたメッセージから要因を特定し，問題を取り除いてください。

なお，ezstart -rコマンド，またはezserver -rコマンド実行時にキャッシュファイルの過不足が発生した場合，deleteecf -lコマンドの実行後に，ezstart -rコマンド，またはezserver -rコマンドを再実行すると，復旧できることがあります。

ディスクキャッシュの格納先として不揮発性メモリを使用している場合で，詳細情報に「The device cannot be used.」が出力されているときは次の点を確認してください。

キャッシュ定義ファイルのeads.cache.disk.persistentMemory.deviceパラメタに指定した不揮発性メモリのデバイスファイルについて，次の点を確認してください。

・不揮発性メモリのデバイスファイルがDevice DAXモードであること

・不揮発性メモリのデバイスファイルが他のキャッシュで使用されていないこと

不揮発性メモリを使用するための前提パッケージがインストールされていることを確認してください。不揮発性メモリを使用するための前提パッケージについては，リリースノートを参照してください。

KDEA07117-E

A data discrepancy between the shared property file and the cache file was detected. (cache name = aa....aa, parameter = bb....bb, shared property value = cc....cc, cache file value = dd....dd)

aa....aa：キャッシュ名

bb....bb：パラメタ名

cc....cc：共通設定ファイルの値

dd....dd：キャッシュファイルの値

説明

共通設定ファイルの値とキャッシュファイルの値に不一致があります。

キャッシュファイルを作成したあとで，次に示す共通設定のパラメタを変更することはできません。

eads.cache.key.maxsize

eads.replication.factor

対処

正しいキャッシュファイルを指定しているかどうかを見直してください。

または，別のキャッシュファイルを使用してください。

共通設定ファイルの値が誤っている場合は，次に示す共通設定のパラメタの指定値を見直し，正しい値に変更したあと，EADSサーバを再起動してください。

eads.cache.key.maxsize

eads.replication.factor

KDEA07120-E

An I/O error occurred. (directory = aa....aa, details = bb....bb)

aa....aa：ディレクトリ名（絶対パス）

bb....bb：詳細情報

説明

I/Oエラーが発生しました。

対処

詳細情報を参照し，OS環境に問題がないかどうかを確認してください。

特に，次に示す問題がないかどうかを確認してください。

必要なディレクトリが作成されていない

ディレクトリを作成できない

KDEA07121-E

A data discrepancy between the cache property file and the cache was detected. (cache property file name = aa....aa, parameter = bb....bb, cache property value = cc....cc, cache value = dd....dd)

aa....aa：キャッシュ定義ファイル名

bb....bb：パラメタ名

cc....cc：キャッシュ定義ファイルの値

dd....dd：キャッシュの値

説明

キャッシュ定義ファイルの指定値とキャッシュの値に不一致があります。

キャッシュを作成したあとで，次に示すキャッシュ定義のパラメタを変更することはできません。

eads.cache.type

eads.cache.eviction.policy

eads.cache.disk.filesize

eads.cache.disk.filenum

eads.cache.disk.blocksize

eads.cache.disk.persistentMemory.enable

ディスクキャッシュの格納先として不揮発性メモリを使用する場合は，次に示すキャッシュ定義のパラメタも変更することはできません。

eads.cache.disk.persistentMemory.blocksize

データ自動削除機能を使用する場合は，次に示すキャッシュ定義のパラメタも変更することはできません。

eads.cache.eviction.keyCount

対処

次に示すキャッシュ定義のパラメタの指定値を見直し，正しい値に変更したあと，EADSサーバを再起動してください。

eads.cache.type

eads.cache.eviction.policy

eads.cache.eviction.keyCount

eads.cache.disk.filesize

eads.cache.disk.filenum

eads.cache.disk.blocksize

eads.cache.disk.persistentMemory.enable

eads.cache.disk.persistentMemory.blocksize

KDEA07122-E

The area for writing the cache data files is insufficient. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

キャッシュデータファイルの書き込み領域が不足しました。

対処

「11.4.1　定義内容を変更する手順」に従って，キャッシュ定義のeads.cache.disk.filenumパラメタの指定値を大きくしてください。

KDEA07123-E

An I/O error occurred. (cache name = aa....aa, details = bb....bb)

aa....aa：キャッシュ名

bb....bb：詳細情報

説明

I/Oエラーが発生しました。

対処

例外ログから要因を特定し，問題を取り除いてください。

KDEA07124-E

An unexpected exception occurred. (cache name = aa....aa, details = bb....bb)

aa....aa：キャッシュ名

bb....bb：保守情報

説明

予期しない例外が発生しました。

対処

弊社問い合わせ窓口にご連絡ください。

KDEA07125-I

A parameter different from the cache file value will be used. (cache property file name = aa....aa, parameter = bb....bb, cache property value = cc....cc, cache file value = dd....dd)

aa....aa：キャッシュ定義ファイル名

bb....bb：パラメタ名

cc....cc：キャッシュ定義ファイルの値

dd....dd：キャッシュファイルの値

説明

キャッシュファイルの値とは異なるパラメタが使用されました。

KDEA07126-W

The loading of the cache property file failed. (cache property file name = aa....aa)

aa....aa：キャッシュ定義ファイル名

説明

キャッシュ定義ファイルの読み込み中に問題が発生したため，キャッシュ定義ファイルの読み込みに失敗しました。

対処

直前に出力されたメッセージを確認してください。

KDEA07127-E

The loading of the cache property file failed. (cache property file name = aa....aa)

aa....aa：キャッシュ定義ファイル名

説明

キャッシュ定義ファイルの読み込み中に問題が発生したため，キャッシュ定義ファイルの読み込みに失敗しました。

対処

直前に出力されたメッセージを確認してください。

KDEA07128-E

The compaction of cache data files failed. (cache name = aa....aa, range ID = bb....bb, error details = cc....cc)

aa....aa：キャッシュ名

bb....bb：レンジID

cc....cc：エラー詳細情報

説明

キャッシュデータファイルのコンパクションに失敗しました。

対処

キャッシュファイルが破損していると考えられます。

eztool deleteecfコマンドでキャッシュファイルを削除したあと，次のどちらかのコマンドを実行して，再度EADSサーバを復旧してください。

ezstart -rコマンド

ezserver -rコマンド

KDEA07201-E

Some data of cache might be inconsistent. (details = aa....aa)

aa....aa：詳細情報

説明

キャッシュの一部のデータは，矛盾しているおそれがあります。

キャッシュの再開が失敗しているため，EADSサーバの復旧に失敗したと考えられます。

対処

キャッシュを確認してください。

必要に応じて，eztool deletecacheコマンドでキャッシュを削除してから，EADSサーバを復旧してください。

KDEA07202-E

The operation and cache type combination is invalid. (operation = aa....aa, cache name = bb....bb, cache type = cc....cc)

aa....aa：操作

bb....bb：キャッシュ名

cc....cc：キャッシュタイプ

説明

操作とキャッシュタイプの組み合わせが不正です。

メモリキャッシュ以外のキャッシュが存在しているため，EADSサーバの追加に失敗したと考えられます。

対処

キャッシュを確認してください。

必要に応じて，eztool deletecacheコマンドでキャッシュを削除してから，EADSサーバを追加してください。

KDEA07211-E

The number of keys in range and move range exceeds the limit. (range ID = aa....aa, move range ID = bb....bb, move first position = cc....cc, move last position = dd....dd, key count = ee....ee, key count limit = ff....ff)

aa....aa：結合先のレンジID

bb....bb：結合元のレンジ（移動するレンジ）ID

cc....cc：結合元のレンジ（移動するレンジ）の開始位置（ハッシュ値）

dd....dd：結合元のレンジ（移動するレンジ）の終了位置（ハッシュ値）

ee....ee：結合先のレンジと結合元のレンジ（移動するレンジ）に格納されているkeyの数

ff....ff：レンジに格納できるkeyの数の上限値

説明

次に示すkeyの数の合計が，レンジに格納できるkeyの数の上限値を超えているため，EADSサーバの位置を変更できません。

結合先のレンジに格納されているkeyの数

結合元のレンジ（移動するレンジ）に格納されているkeyの数

対処

結合先のレンジまたは結合元のレンジ（移動するレンジ）に格納されているkeyを削除してから，eztool rebalanceコマンドを再実行してください。

KDEA07212-E

Memory capacity in range and move range exceeds the limit. (range ID = aa....aa, move range ID = bb....bb, move first position = cc....cc, move last position = dd....dd, memory capacity = ee....ee, memory capacity limit = ff....ff)

aa....aa：結合先のレンジID

bb....bb：結合元のレンジ（移動するレンジ）ID

cc....cc：結合元のレンジ（移動するレンジ）の開始位置（ハッシュ値）

dd....dd：結合元のレンジ（移動するレンジ）の終了位置（ハッシュ値）

ee....ee：結合先のレンジと結合元のレンジ（移動するレンジ）に格納されているデータのメモリ使用量

ff....ff：レンジに格納できるデータのメモリ使用量の上限値

説明

次に示すメモリ使用量の合計が，レンジに格納できるデータのメモリ使用量の上限値を超えているため，EADSサーバの位置を変更できません。

結合先のレンジに格納されているデータのメモリ使用量

結合元のレンジ（移動するレンジ）に格納されているデータのメモリ使用量

対処

結合先のレンジまたは結合元のレンジ（移動するレンジ）に格納されているデータを削除して，メモリ使用量を減らしてから，eztool rebalanceコマンドを再実行してください。

KDEA07302-E

The cluster contains a mixture of caches with automatic data deletion and caches without automatic data deletion.

説明

クラスタにデータ自動削除機能を使用しているキャッシュと，データ自動削除機能を使用していないキャッシュが混在するため，EADSサーバの追加に失敗しました。

対処

データ自動削除機能を使用しているキャッシュと，データ自動削除機能を使用していないキャッシュのどちらかを削除してから，EADSサーバをクラスタに追加してください。

22.7　KDEA08000〜KDEA09999

KDEA08000〜KDEA09999のメッセージとその対処方法について説明します。

KDEA08001-I

The command will now start. (subcommand = aa....aa, parameter = bb....bb)

aa....aa：サブコマンド

bb....bb：オプションおよび引数

説明

コマンドを開始します。

KDEA08002-I

The command will now end.

説明

コマンドを終了します。

KDEA08006-E

Log initialization failed. (log directory = aa....aa)

aa....aa：ログの出力先パス名

説明

ログの初期化に失敗しました。

対処

コマンド定義のeads.command.logger.dirパラメタに指定したログファイルの出力先パス名が適切かどうかを確認してください。

ログライブラリの初期化に失敗している場合，EADSサーバの負荷が低くなってから，再実行してください。

KDEA08007-E

The specified option is invalid. (error details = aa....aa) For more information, use 'eztool -h'.

aa....aa：エラー詳細情報

説明

指定されたコマンドのオプションが不正です。

コマンド形式の詳細を知りたい場合は，eztool -hコマンドを実行してください。

対処

コマンドのオプションを確認してください。

KDEA08008-E

The specified option is duplicated. (option = aa....aa)

aa....aa：コマンドのオプション

説明

指定されたコマンドのオプションが重複しています。

対処

コマンドのオプションを確認してください。

KDEA08009-E

The specified subcommand is invalid. (subcommand = aa....aa) For more information, use 'eztool -h'.

aa....aa：不正なサブコマンド

説明

指定されたサブコマンドが不正です。

コマンド形式の詳細を知りたい場合は，eztool -hコマンドを実行してください。

対処

サブコマンドを確認してください。

KDEA08010-E

The specified parameter is invalid. (parameter = aa....aa) For more information, use 'eztool -h'.

aa....aa：不正なコマンドの引数

説明

指定されたコマンドの引数が不正です。

コマンド形式の詳細を知りたい場合は，eztool -hコマンドを実行してください。

対処

コマンドの引数を確認してください。

KDEA08011-E

An attempt to connect to a server failed. (server = aa....aa)

aa....aa：接続先EADSサーバのホスト名（またはIPアドレス）とポート番号

説明

EADSサーバへの接続に失敗しました。

対処

接続先EADSサーバのサーバ定義を確認してください。

接続先EADSサーバが起動しているかどうかを確認してください。

クラスタ内のEADSサーバに障害が発生している場合，EADSサーバダウンが確定するまで待ってから，再実行してください。EADSサーバダウンが確定するまでに掛かる時間については，「9.3.2(1)　ハートビートの送信，および生存確認」を参照してください。

KDEA08013-E

The server is not in a state in which commands can be executed. (subcommand = aa....aa, error details = bb....bb)

aa....aa：サブコマンド

bb....bb：エラー詳細情報（コマンドが実行できない状態のEADSサーバとその状態の一覧）

説明

EADSサーバがコマンドを実行できる状態ではありません。

対処

eztool statusコマンドを実行して，EADSサーバの状態を確認してください。

コマンドが実行できる状態にしてから，再実行してください。

KDEA08014-E

An attempt to lock the server failed. (server = aa....aa, error details = bb....bb)

aa....aa：排他に失敗したEADSサーバのホスト名（またはIPアドレス）とポート番号

bb....bb：エラー詳細情報

説明

排他に失敗しました。

対処

eztool status -vコマンドを実行して，ほかのコマンドが実行中かどうかを確認してください。

コマンドが終了しているのに，EADSサーバの排他状態がlock（排他している）であれば，eztool unlockコマンドを実行して，コマンドの排他を解除してください。

エラーの要因が不明な場合は，弊社問い合わせ窓口にご連絡ください。

KDEA08015-E

A server error occurred during the execution of a command. (server = aa....aa, error details = bb....bb)

aa....aa：エラーが発生したEADSサーバのホスト名（またはIPアドレス）とポート番号

bb....bb：エラー詳細情報

説明

コマンドの実行中にEADSサーバでエラーが発生しました。

対処

エラー詳細情報を確認してください。

EADSサーバで発生しているエラーを，EADSサーバのメッセージで確認してください。

エラーの要因が不明な場合は，弊社問い合わせ窓口にご連絡ください。

KDEA08016-E

An attempt to unlock the server failed. (server = aa....aa, error details = bb....bb)

aa....aa：排他解除に失敗したEADSサーバのホスト名（またはIPアドレス）とポート番号

bb....bb：エラー詳細情報

説明

排他の解除に失敗しました。

対処

eztool status -vコマンドを実行して，ほかのコマンドが実行中かどうかを確認してください。

コマンドが終了しているのに，EADSサーバの排他状態がlock（排他している）であれば，eztool unlockコマンドを実行して，コマンドの排他を解除してください。

エラーの要因が不明な場合は，弊社問い合わせ窓口にご連絡ください。

KDEA08018-E

The server connection timed out. (server = aa....aa, timeout value = bb....bb)

aa....aa：タイムアウトしたEADSサーバのホスト名（またはIPアドレス）とポート番号

bb....bb：タイムアウト時間

説明

EADSサーバとの通信がタイムアウトしました。

対処

eztool statusコマンドを実行して，EADSサーバの状態を確認してください。

クラスタ内のEADSサーバに障害が発生している場合，EADSサーバダウンが確定するまで待ってから，再実行してください。EADSサーバダウンが確定するまでに掛かる時間については，「9.3.2(1)　ハートビートの送信，および生存確認」を参照してください。

KDEA08019-E

The command timed out. (timeout value = aa....aa)

aa....aa：タイムアウト時間

説明

コマンドがタイムアウトしました。

対処

eztool statusコマンドを実行して，EADSサーバの状態を確認してください。

次に示す値を確認して，必要に応じて値を変更してから，再実行してください。

コマンドの引数で指定したタイムアウト値

コマンド定義のeads.command.common.execution.timeoutパラメタ

eads.command.＜サブコマンド名＞.execution.timeoutパラメタ

eztool resumeコマンドの場合，データが不整合になっているおそれがあります。

そのまま運用を継続するとデータが破壊されたり，消失したりするおそれがあるため，次の手順で対処してください。

eztool status -vコマンドでクラスタの状態を確認する。

eztool unlockコマンドで排他を解除する。

eztool listcacheコマンドでキャッシュの一覧を確認する。

キャッシュの再開が失敗したキャッシュをeztool deletecacheコマンドで削除する。

EADSサーバが縮退している場合，EADSサーバを復旧する。

キャッシュの再開を，再度実行する。

KDEA08020-E

An unexpected error occurred during command execution. (error details = aa....aa)

aa....aa：エラー詳細情報

説明

コマンドの実行中に予期しないエラーが発生しました。

対処

エラー詳細情報を確認してください。

エラーの要因が不明な場合は，弊社問い合わせ窓口にご連絡ください。

KDEA08023-I

The status has already changed. (server = aa....aa)

aa....aa：EADSサーバのホスト名（またはIPアドレス）とポート番号

説明

EADSサーバの状態がすでに変更されています。

KDEA08024-W

No matching store data files were found. (server = aa....aa, warning details = bb....bb)

aa....aa：EADSサーバのホスト名（またはIPアドレス）とポート番号

bb....bb：警告詳細情報

説明

該当するストアデータファイルが見つかりませんでした。

対処

指定したストアデータファイルキーを確認してください。

ストアデータファイルの出力先にストアデータファイルが存在するか確認してください。

ディレクトリ構成の変更などで該当するストアデータファイルを移動した場合や，EADSサーバをクラスタに追加した場合に，この警告が表示されます。警告詳細情報を確認し，問題がなければ無視してください。

KDEA08025-E

The specified subcommand requires a value. (subcommand = aa....aa) For more information, use 'eztool -h'.

aa....aa：引数が指定されていないサブコマンド

説明

指定されたサブコマンドには引数が必要です。

コマンド形式の詳細を知りたい場合は，eztool -hコマンドを実行してください。

対処

サブコマンドの引数を確認してください。

KDEA08026-W

The specified cache already exists. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

指定されたキャッシュ名はすでに存在します。

対処

指定したキャッシュ名が適切かどうかを確認してください。

KDEA08027-W

A connection cannot be established because the cluster is offline. (server = aa....aa)

aa....aa：EADSサーバのホスト名（またはIPアドレス）とポート番号

説明

EADSサーバがクラスタに参加していないため，接続できません。

対処

eztool statusコマンドを実行して，クラスタの状態を確認してください。

KDEA08029-E

The number of store data file generations has exceeded the limit. (generation count = aa....aa, limit = bb....bb)

aa....aa：世代数

bb....bb：世代数の上限値

説明

ストアデータファイルの世代数が上限値を超えています。

対処

次のどれかの対処をしてください。

eztool deleteesdコマンドを実行して，クラスタ内の不要なストアデータファイルを削除してください。

eztool export -dコマンドを実行して，別のディレクトリにデータを書き出してください。

ストアデータファイルを任意のディレクトリに退避してください。

KDEA08030-E

No generation managed store data files were found.

説明

世代管理されたストアデータファイルが見つかりませんでした。

対処

eztool listesdコマンドを実行して，ストアデータファイルを確認してください。

KDEA08031-W

The specified cache name does not exist. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

指定されたキャッシュが見つかりませんでした。

対処

指定したキャッシュ名が適切かどうかを確認してください。

KDEA08032-E

Cache creation failed. (cache name = aa....aa, error details = bb....bb)

aa....aa：キャッシュ名

bb....bb：エラー詳細情報

説明

キャッシュの作成に失敗しました。

対処

キャッシュ数が上限（16個）に達していないか確認してください。

指定したキャッシュ名が適切かどうかを確認してください。

エラー詳細情報を確認してください。

KDEA08033-E

Importing failed. (store date file key = aa....aa, error details = bb....bb)

aa....aa：ストアデータファイルキー

bb....bb：エラー詳細情報

説明

データの読み込みに失敗しました。

対処

指定したストアデータファイルキーを確認してください。

エラー詳細情報を確認してください。

直前に出力されたEADSサーバのメッセージを確認してください。

eztool statusコマンドを実行して，EADSサーバの状態を確認してください。

KDEA08034-E

Data addition failed. (cache name = aa....aa, key = bb....bb, error details = cc....cc)

aa....aa：キャッシュ名

bb....bb：key

cc....cc：エラー詳細情報

説明

データの追加に失敗しました。

対処

キャッシュ名を確認してください。

エラー詳細情報を確認してください。

eztool statusコマンドを実行して，EADSサーバの状態を確認してください。

KDEA08035-E

Data acquisition failed. (cache name = aa....aa, key = bb....bb, error details = cc....cc)

aa....aa：キャッシュ名

bb....bb：key

cc....cc：エラー詳細情報

説明

データの取得に失敗しました。

対処

キャッシュ名を確認してください。

エラー詳細情報を確認してください。

eztool statusコマンドを実行して，EADSサーバの状態を確認してください。

KDEA08036-E

Data deletion failed. (cache name = aa....aa, key = bb....bb, error details = cc....cc)

aa....aa：キャッシュ名

bb....bb：key

cc....cc：エラー詳細情報

説明

データの削除に失敗しました。

対処

キャッシュ名を確認してください。

エラー詳細情報を確認してください。

eztool statusコマンドを実行して，EADSサーバの状態を確認してください。

KDEA08037-E

The cluster property file is incorrect. (error details = aa....aa)

aa....aa：エラー詳細情報

説明

クラスタの構成に関する定義が正しくありません。

対処

クラスタ定義ファイルが存在するか確認してください。

エラー詳細情報を確認してください。

クラスタ定義の次のパラメタが適切か確認してください。

eads.node.＜EADSサーバID＞.address

eads.node.＜EADSサーバID＞.port

eads.node.＜EADSサーバID＞.position

KDEA08046-W

The specified function name does not exist. (function name = aa....aa)

aa....aa：ユーザファンクション名

説明

指定されたユーザファンクション名が見つかりませんでした。

対処

ユーザファンクション名が適切か確認してください。

KDEA08049-E

No matching store data file was found. (store data file key = aa....aa)

aa....aa：ストアデータファイルキー

説明

該当するストアデータファイルが一つも見つかりませんでした。

対処

指定したストアデータファイルキーを確認してください。

ストアデータファイルの出力先にストアデータファイルが存在するか確認してください。

ディレクトリ構成の変更などで該当するストアデータファイルを移動した場合に，このメッセージが表示されます。エラー詳細情報を確認し，問題がなければ無視してください。

KDEA08050-E

The specified store data file already exists. (store data file key = aa....aa)

aa....aa：ストアデータファイルキー

説明

指定されたストアデータファイル名はすでに存在します。

対処

指定したストアデータファイルキーが適切かどうか確認してください。

KDEA08051-E

Processing to open the cluster failed. (error details = aa....aa)

aa....aa：エラー詳細情報

説明

クラスタの閉塞状態の解除に失敗しました。

対処

エラー詳細情報を確認してください。

KDEA08052-E

Processing to isolate the server failed. (error details = aa....aa)

aa....aa：エラー詳細情報

説明

EADSサーバの縮退に失敗しました。

対処

エラー詳細情報を確認してください。

eztool statusコマンドを実行して，コマンドを実行したEADSサーバの状態を確認してください。

コマンドを実行したEADSサーバが縮退状態ではない場合

クラスタの状態がクラスタ一部稼働中（PARTIALLY_AVAILABLE）にならないことを確認し，コマンドを再実行してください。

コマンドを実行したEADSサーバが縮退状態で，eztool isolate --stopコマンドを実行している場合

コマンドを再実行して，EADSサーバプロセスをダウンさせてください。

KDEA08053-E

The wait for completion of execution failed. (error details = aa....aa)

aa....aa：エラー詳細情報

説明

コマンド実行の完了待ちに失敗しました。

対処

eztool createcacheコマンド，またはeztool deletecacheコマンドの場合

eztool listcacheコマンドを実行して，キャッシュ数を確認してください。

コマンドを再実行してください。

eztool stopコマンド，またはeztool isolate --stopコマンドの場合

eztool statusコマンドを実行して，EADSサーバの状態を確認してください。

また，プロセスの状態を確認してください。

コマンドを再実行してください。

KDEA08054-I

The store data file was imported. (store data file key = aa....aa)

aa....aa：ストアデータファイルキー

説明

ストアデータファイルを読み込みました。

KDEA08055-I

The store data file was exported. (store data file key = aa....aa)

aa....aa：ストアデータファイルキー

説明

ストアデータファイルを出力しました。

KDEA08056-E

A property file cannot be read. (file path = aa....aa)

aa....aa：定義ファイルの格納先パス名

説明

定義ファイルが読み込めません。

次の要因が考えられます。

定義ファイルが開けない。

格納先パス名がファイルではなくディレクトリを指している。

対処

定義ファイルの格納先パス名を見直してください。

要因を特定し，問題を取り除いてください。

KDEA08057-W

The obtained cluster information might be old.

説明

取得したクラスタ構成情報が古いおそれがあります。

縮退したEADSサーバだけが動作していると考えられます。

対処

eztool statusコマンドを実行して，クラスタおよびEADSサーバの状態を確認してください。

KDEA08058-E

Execution of a function failed. (cache name = aa....aa, function name = bb....bb, error details = cc....cc)

aa....aa：キャッシュ名

bb....bb：ユーザファンクション名

cc....cc：エラー詳細情報

説明

ユーザファンクションの実行に失敗しました。

対処

キャッシュ名，ユーザファンクション名，およびエラー詳細情報を確認してください。

eztool statusコマンドを実行して，EADSサーバの状態を確認してください。

KDEA08059-I

Stopping the compaction of cache data files is already reserved.

説明

キャッシュデータファイルのコンパクションの中断はすでに予約されています。

KDEA08060-E

The resumption of cache files failed. (error details = aa....aa)

aa....aa：エラー詳細情報

説明

キャッシュの再開に失敗しました。

対処

エラー詳細情報を確認してください。

KDEA08061-E

The compaction of cache data files failed. (error details = aa....aa)

aa....aa：エラー詳細情報

説明

キャッシュデータファイルのコンパクションに失敗しました。

対処

エラー詳細情報を確認してください。

KDEA08062-I

The compaction of cache data files was stopped.

説明

キャッシュデータファイルのコンパクションが中断されました。

KDEA08063-I

The compaction of cache data files is not executing.

説明

キャッシュデータファイルのコンパクションが実行されていません。

KDEA08064-I

The cache files were deleted.

説明

キャッシュファイルを削除しました。

KDEA08065-E

Deletion of cache files failed. (error details = aa....aa)

aa....aa：エラー詳細情報

説明

キャッシュファイルの削除に失敗しました。

対処

エラー詳細情報を確認してください。

ディスクキャッシュの格納先として不揮発性メモリを使用している場合で，エラー詳細情報に「The device cannot be used.」が出力されているときは，エラーが発生したEADSサーバで次の点を確認してください。

キャッシュ定義ファイルのeads.cache.disk.persistentMemory.deviceパラメタに指定した不揮発性メモリのデバイスファイルについて，次の点を確認してください。

・不揮発性メモリのデバイスファイルがDevice DAXモードであること

・不揮発性メモリのデバイスファイルが他のキャッシュで使用されていないこと

不揮発性メモリを使用するための前提パッケージがインストールされていることを確認してください。不揮発性メモリを使用するための前提パッケージについては，リリースノートを参照してください。

不揮発性メモリのデバイスファイルの指定に問題がない場合は，デバイスファイルを初期化してください。

KDEA08066-W

No matching cache file was found. (server = aa....aa, warning details = bb....bb)

aa....aa：EADSサーバのホスト名（またはIPアドレス）とポート番号

bb....bb：警告詳細情報

説明

該当するキャッシュファイルが見つかりませんでした。

対処

キャッシュ定義ファイルで指定したキャッシュファイルの格納先を確認してください。

ディレクトリ構成の変更などで該当するキャッシュファイルを移動したり，キャッシュファイルを削除したりした場合，またはキャッシュ定義ファイルの内容を書き換えた場合に，この警告が表示されます。警告詳細情報を確認してください。

KDEA08067-E

No matching cache file was found.

説明

該当するキャッシュファイルが見つかりませんでした。

対処

eztool listecfコマンドでキャッシュファイルの有無を確認してください。

キャッシュ定義ファイルの内容を確認してください。

キャッシュ定義ファイルで指定したキャッシュファイルの格納先を確認してください。

KDEA08068-E

The importing of cache files failed. (error details = aa....aa)

aa....aa：エラー詳細情報

説明

キャッシュファイルのインポートに失敗しました。

対処

エラー詳細情報を確認してください。

KDEA08070-E

Creation of cache files failed. (cache name = aa....aa, error details = bb....bb)

aa....aa：キャッシュ名

bb....bb：エラー詳細情報

説明

キャッシュファイルの作成に失敗しました。

対処

エラー詳細情報を確認してください。

ディスクキャッシュの格納先として不揮発性メモリを使用している場合で，エラー詳細情報に「The device cannot be used.」が出力されているときは，エラーが発生したEADSサーバで次の点を確認してください。

キャッシュ定義ファイルのeads.cache.disk.persistentMemory.deviceパラメタに指定した不揮発性メモリのデバイスファイルについて，次の点を確認してください。

・不揮発性メモリのデバイスファイルがDevice DAXモードであること

・不揮発性メモリのデバイスファイルが他のキャッシュで使用されていないこと

不揮発性メモリを使用するための前提パッケージがインストールされていることを確認してください。不揮発性メモリを使用するための前提パッケージについては，リリースノートを参照してください。

KDEA08071-W

Cache files do not exist because the type of the specified cache is MemoryCache.

説明

指定したキャッシュタイプがメモリキャッシュであるため，キャッシュファイルは存在しません。

KDEA08072-W

The cache already exists. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

キャッシュは，すでに存在します。

対処

キャッシュを確認してください。

必要に応じて，eztool deletecacheコマンドでキャッシュを削除してから，再度実行してください。

KDEA08073-I

The resumption of cache started. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

キャッシュの再開を開始しました。

KDEA08074-I

The resumption of cache finished. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

キャッシュの再開が完了しました。

KDEA08075-W

The resumption of cache files did not run, because the cache to resume target does not exist.

説明

再開する対象のキャッシュが存在しないため，キャッシュファイルの再開は実行されませんでした。

対処

キャッシュを確認してください。

必要に応じて，eztool deletecacheコマンドでキャッシュを削除してから，再度実行してください。

KDEA08076-E

Some data might be inconsistent, because resumption of cache failed. Therefore a lock was not released.

説明

キャッシュの再開に失敗したため，一部のデータは矛盾しているおそれがあります。そのため，排他は解除されませんでした。

対処

データが不整合になっているおそれがあります。そのため，そのまま運用を継続するとデータが破壊されたり，データが失われたりするおそれがあります。次の手順で対処してください。

eztool status -vコマンドでクラスタの状態を確認する。

eztool unlockコマンドで排他を解除する。

eztool listcacheコマンドでキャッシュの一覧を確認する。

キャッシュの再開に失敗したキャッシュをeztool deletecacheコマンドで削除する。

EADSサーバが縮退している場合，EADSサーバを復旧する。

キャッシュの再開を，再度実行する。

KDEA08077-W

The compaction of cache data files was not executed. (warning details = aa....aa)

aa....aa：警告詳細情報

説明

キャッシュデータファイルのコンパクションは実行されませんでした。

対処

警告詳細情報を確認してください。

必要に応じて，しきい値を下げたり，未使用ファイル数の指定を増やしたりして，再度実行してください。

KDEA08078-W

The compaction of cache data files could not reach to the specified unused file count. (minimum unused file count = aa....aa)

aa....aa：未使用ファイル数の最小値

説明

キャッシュデータファイルのコンパクションは，指定された未使用ファイル数まで到達できませんでした。

対処

必要に応じて，しきい値を下げて，再度実行してください。

KDEA08079-I

Exporting was not executed because no memory cache exist on the server.

説明

EADSサーバにメモリキャッシュが存在しなかったため，データの書き出しは実行されませんでした。

KDEA08081-E

Data addition failed. (cache name = aa....aa, error details = bb....bb)

aa....aa：キャッシュ名

bb....bb：エラー詳細情報

説明

データの追加に失敗しました。

対処

キャッシュ名を確認してください。

エラー詳細情報を確認してください。

EADSサーバの状態を確認してください。

KDEA08082-E

Data acquisition failed. (cache name = aa....aa, error details = bb....bb)

aa....aa：キャッシュ名

bb....bb：エラー詳細情報

説明

データの取得に失敗しました。

対処

キャッシュ名を確認してください。

エラー詳細情報を確認してください。

EADSサーバの状態を確認してください。

KDEA08083-E

Data deletion failed. (cache name = aa....aa, error details = bb....bb)

aa....aa：キャッシュ名

bb....bb：エラー詳細情報

説明

データの削除に失敗しました。

対処

キャッシュ名を確認してください。

エラー詳細情報を確認してください。

EADSサーバの状態を確認してください。

KDEA08084-E

The command cannot be executed because the command version and server version are different. (command version = aa....aa, server version = bb....bb)

aa....aa：コマンドのバージョン

bb....bb：EADSサーバのバージョン

説明

コマンドのバージョンが，EADSサーバのバージョンと不一致であるため，コマンドは実行できません。

対処

EADSサーバのバージョンと同じバージョンのコマンドを実行してください。

KDEA08085-W

No range for the server ID specified in the server ID specification group was found. (server = aa....aa, server ID = bb....bb)

aa....aa：EADSサーバ名

bb....bb：EADSサーバID

説明

EADSサーバID指定グループで指定されたEADSサーバIDのレンジが存在しません。

対処

eztool importコマンド，またはeztool importecfコマンドで指定したEADSサーバID変換ルールが正しいかどうかを確認してください。

クラスタの構成と，各EADSサーバのEADSサーバIDを確認してください。

KDEA08086-E

The execution of the command failed because the cluster configuration was changed while the command was being executed.

説明

コマンド実行中にクラスタの構成が変更されたため，コマンドの実行に失敗しました。

対処

クラスタの構成が変更される処理（スケールアウト処理など）が終了してから，コマンドを再実行してください。

KDEA08092-I

Rebalancing was not executed, because the servers in the cluster are already in the appropriate positions.

説明

クラスタ内の各EADSサーバはすでに適切な位置に配置されているため，リバランス処理は実行されませんでした。

KDEA08093-E

Rebalancing failed. (error details = aa....aa)

aa....aa：エラー詳細情報

説明

リバランス処理の実行に失敗しました。

対処

エラー詳細情報を確認してください。

すべてのEADSサーバのkeyの数や，データ容量の空きが不足しているおそれがあります。必要に応じて，不要なデータを削除して，空き容量を増やしてください。

KDEA08094-I

Stopping the rebalancing processing is already reserved.

説明

リバランス処理の中断はすでに予約されています。

KDEA08095-I

Rebalancing was stopped.

説明

リバランス処理が中断されました。

KDEA08096-I

The rebalancing processing is not running.

説明

リバランス処理が実行されていません。

KDEA08098-E

The exporting of cache files failed. (error details = aa....aa)

aa....aa：エラー詳細情報

説明

キャッシュファイルのエクスポートに失敗しました。

対処

エラー詳細情報を確認してください。

ディスクキャッシュの格納先として不揮発性メモリを使用している場合で，エラー詳細情報に「The device cannot be used.」が出力されているときは，エラーが発生したEADSサーバで次の点を確認してください。

キャッシュ定義ファイルのeads.cache.disk.persistentMemory.deviceパラメタに指定した不揮発性メモリのデバイスファイルについて，次の点を確認してください。

・不揮発性メモリのデバイスファイルがDevice DAXモードであること

・不揮発性メモリのデバイスファイルが他のキャッシュで使用されていないこと

不揮発性メモリを使用するための前提パッケージがインストールされていることを確認してください。不揮発性メモリを使用するための前提パッケージについては，リリースノートを参照してください。

KDEA08099-W

Some data was not imported because the number of data in the range has exceeded the limit. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

eztool importコマンドでデータをインポートしましたが，レンジのデータ件数がデータ自動削除機能のしきい値（キャッシュ定義のeads.cache.eviction.keyCountパラメタ）で指定した上限を超えたため，一部のデータはインポートされませんでした。

対処

意図しない状態でこのメッセージが出力された場合は，データ自動削除機能のデータ削除のしきい値，およびレンジのデータ件数の上限が想定通りであることを確認してください。

レンジのすべてのデータの読み込みが必要な場合は，キャッシュを削除したあとで，キャッシュ定義ファイルのeads.cache.eviction.keyCountパラメタにレンジに登録されたデータ件数以上の値を指定して，再実行してください。

KDEA08100-W

Some data was not imported because the number of data in the range has exceeded the limit. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

eztool importecfコマンドでデータをインポートしましたが，レンジのデータ件数がデータ自動削除機能のしきい値（キャッシュ定義のeads.cache.eviction.keyCountパラメタ）で指定した上限を超えたため，一部のデータはインポートされませんでした。

対処

意図しない状態でこのメッセージが出力された場合は，データ自動削除機能のデータ削除のしきい値，およびレンジのデータ件数の上限が想定通りであることを確認してください。

レンジのすべてのデータの読み込みが必要な場合は，キャッシュを削除したあとで，キャッシュ定義ファイルのeads.cache.eviction.keyCountパラメタにレンジに登録されたデータ件数以上の値を指定して，再実行してください。

KDEA08401-E

Log initialization failed. (log directory = aa....aa)

aa....aa：ログの出力先パス名

説明

ログの初期化に失敗しました。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

サーバ定義のeads.logger.dirパラメタに指定したログファイルの出力先パス名が適切かどうかを確認してください。

KDEA08402-E

The server directory is invalid. (directory = aa....aa)

aa....aa：運用ディレクトリ

説明

運用ディレクトリが不正です。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

運用ディレクトリが適切かどうかを確認してください。

KDEA08403-E

Startup of the server failed.

説明

EADSサーバの起動に失敗しました。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

ezserverファイルが実行可能なファイルかどうかを確認してください。

また，ログの出力先およびログファイルにアクセスできるかどうかを確認してください。

KDEA08404-E

The directory name contains invalid characters. (directory = aa....aa)

aa....aa：ディレクトリ名

説明

ディレクトリ名が不正です。ディレクトリ名に不正な文字が含まれています。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

ディレクトリ名には，半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），およびスラッシュ（/）を使用してください。

また，ディレクトリ名にピリオドを含んだ相対パスを指定しないでください。

KDEA08405-E

The server process was not found. (server = aa....aa)

aa....aa：EADSサーバ名（運用ディレクトリ名）

説明

EADSサーバプロセスが見つかりませんでした。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

EADSサーバが起動しているかどうかを確認してください。

KDEA08406-E

A required program was not found. (directory = aa....aa)

aa....aa：EADSサーバ名（運用ディレクトリ名）

説明

必要となるプログラムが見つかりませんでした。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

製品が適切にインストールされているかどうかを確認してください。

運用ディレクトリの位置が適切かどうかを確認してください。

KDEA08407-E

The specified option is invalid. (error details = aa....aa)

aa....aa：エラー詳細情報

説明

指定されたオプションが不正です。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

オプションを確認してください。

KDEA08408-E

The server process already exists. (server = aa....aa)

aa....aa：EADSサーバ名（運用ディレクトリ名）

説明

EADSサーバはすでに起動しています。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

EADSサーバが起動しているかどうかを確認してください。

KDEA08409-E

An attempt to lock the server failed.

説明

排他に失敗しました。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

eztool status -vコマンドを実行して，ほかのコマンドが実行中かどうかを確認してください。

コマンドが終了しているのに，EADSサーバの排他状態がlock（排他している）であれば，eztool unlockコマンドを実行して，コマンドの排他を解除してください。

エラーの要因が不明な場合は，弊社問い合わせ窓口にご連絡ください。

KDEA08410-E

The specified options cannot be specified at the same time. (option names = aa....aa, bb....bb)

aa....aa：オプション

bb....bb：オプション

説明

指定されたオプションは同時に指定できません。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

オプションを確認してください。

KDEA08411-E

File creation failed. (file name = aa....aa, error details = bb....bb)

aa....aa：ファイル名

bb....bb：エラー詳細情報

説明

ファイルの作成に失敗しました。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

エラー詳細情報を確認してください。

KDEA08412-W

An attempt to unlock the server failed.

説明

排他の解除に失敗しました。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

eztool status -vコマンドを実行して，ほかのコマンドが実行中かどうかを確認してください。

コマンドが終了しているのに，EADSサーバの排他状態がlock（排他している）であれば，eztool unlockコマンドを実行して，コマンドの排他を解除してください。

KDEA08413-W

The directory of cache files is invalid. (cache properties name = aa....aa, warning details = bb....bb)

aa....aa：キャッシュ定義ファイル名

bb....bb：警告詳細情報

説明

キャッシュ定義ファイルで指定したディレクトリが不正です。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

警告詳細情報を確認してください。

必要に応じて，キャッシュ定義ファイルに指定したディレクトリが適切か確認してください。

KDEA08414-W

The parameter is invalid. The default value will be used. (parameter = aa....aa, value = bb....bb, default value = cc....cc)

aa....aa：パラメタ名

bb....bb：指定値

cc....cc：デフォルト値

説明

パラメタに指定した値が不正です。デフォルト値を使用します。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

パラメタに不正な値を指定しています。

必要に応じて，パラメタに指定した値が正しいか確認してください。

KDEA08415-E

The specified option is duplicated. (option = aa....aa)

aa....aa：オプション名

説明

指定したオプションが重複しています。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

オプションが重複していないか確認してください。

KDEA08416-E

The specified parameter is invalid. (parameter = aa....aa)

aa....aa：引数

説明

指定した引数は不正です。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

不正な引数を指定していないか確認してください。

KDEA08417-W

Deletion of a file failed. (warning details = aa....aa)

aa....aa：警告詳細情報

説明

ファイルの削除に失敗しました。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

警告詳細情報を確認してください。

必要に応じて，削除できなかったファイルを手動で削除してください。

KDEA08418-E

An attempt to read the file failed. (file name = aa....aa, error details = bb....bb)

aa....aa：ファイル名

bb....bb：エラー詳細情報

説明

ファイルの読み込みに失敗しました。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

ファイルが存在するかどうかを確認してください。または，ファイルの権限を確認してください。

KDEA08420-W

The device of cache files is invalid. (cache properties name = aa....aa, warning details = bb....bb)

aa....aa：キャッシュ定義ファイル名

bb....bb：警告詳細情報

説明

キャッシュ定義ファイルで指定したデバイスが不正です。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

対処

警告詳細情報を確認してください。

必要に応じて，キャッシュ定義ファイルで指定しているデバイスが正しい値かを確認してください。

KDEA08501-I

The collection of statistics started.

説明

統計情報の収集を開始しました。

KDEA08502-I

The collection of statistics stopped.

説明

統計情報の収集を終了しました。

KDEA08505-I

Export processing started. (store data file path = aa....aa, management client = bb....bb)

aa....aa：ストアデータファイルの出力先パス名

bb....bb：コマンド実行元のIPアドレス

説明

データの書き出しを開始しました。

KDEA08506-I

Import processing started. (store data directory = aa....aa, store data file key = bb....bb, management client = cc....cc)

aa....aa：ストアデータファイルの格納先パス名

bb....bb：ストアデータファイルキー

cc....cc：コマンド実行元のIPアドレス

説明

データの読み込みを開始しました。

KDEA08507-I

A cache was created. (cache name = aa....aa, management client = bb....bb)

aa....aa：作成したキャッシュ名

bb....bb：コマンド実行元のIPアドレス

説明

キャッシュを作成しました。

KDEA08508-I

A cache was deleted. (cache name = aa....aa, management client = bb....bb)

aa....aa：削除したキャッシュ名

bb....bb：コマンド実行元のIPアドレス

説明

キャッシュを削除しました。

KDEA08510-I

Open processing finished. (management client = aa....aa)

aa....aa：コマンド実行元のIPアドレス

説明

EADSサーバの閉塞状態を解除しました。

KDEA08512-E

Initialization of the management service failed. (error details = aa....aa)

aa....aa：エラー詳細情報

説明

運用管理機能の初期化に失敗しました。

対処

エラー詳細情報を確認して，EADSサーバを再起動してください。

また，サーバ定義のeads.admin.operation.portパラメタを確認してください。

統計情報の出力先のディレクトリやファイルを確認してください。

KDEA08513-E

Output of statistics failed. (statistics file path = aa....aa, error details = bb....bb)

aa....aa：統計情報ファイルのパス名

bb....bb：エラー詳細情報

説明

統計情報ファイルの出力に失敗しました。

対処

統計情報ファイルの出力先を確認してください。

KDEA08516-E

Exporting failed. (store data file path = aa....aa, management client = bb....bb, error details = cc....cc)

aa....aa：ストアデータファイルの出力先パス名

bb....bb：コマンド実行元のIPアドレス

cc....cc：エラー詳細情報

説明

データの書き出しに失敗しました。

対処

ストアデータファイルキーを確認してください。

エラー詳細情報を確認してください。

直前に出力されたメッセージを確認してください。

eztool statusコマンドを実行して，EADSサーバの状態を確認してください。

KDEA08517-E

Importing failed. (store data directory = aa....aa, store date file key = bb....bb, management client = cc....cc, error details = dd....dd)

aa....aa：ストアデータファイルの格納先パス名

bb....bb：ストアデータファイルキー

cc....cc：コマンド実行元のIPアドレス

dd....dd：エラー詳細情報

説明

データの読み込みに失敗しました。

対処

ストアデータファイルキーを確認してください。

エラー詳細情報を確認してください。

直前に出力されたメッセージを確認してください。

eztool statusコマンドを実行して，EADSサーバの状態を確認してください。

KDEA08518-E

Creation of a cache failed. (cache name = aa....aa, management client = bb....bb, error details = cc....cc)

aa....aa：作成しようとしたキャッシュ名

bb....bb：コマンド実行元のIPアドレス

cc....cc：エラー詳細情報

説明

キャッシュの作成に失敗しました。

対処

キャッシュ名を確認してください。

エラー詳細情報を確認してください。

直前に出力されたメッセージを確認してください。

eztool statusコマンドを実行して，EADSサーバの状態を確認してください。

KDEA08519-E

Deletion of a cache failed. (cache name = aa....aa, management client = bb....bb, error details = cc....cc)

aa....aa：削除しようとしたキャッシュ名

bb....bb：コマンド実行元のIPアドレス

cc....cc：エラー詳細情報

説明

キャッシュの削除に失敗しました。

対処

キャッシュ名を確認してください。

エラー詳細情報を確認してください。

直前に出力されたメッセージを確認してください。

eztool statusコマンドを実行して，EADSサーバの状態を確認してください。

KDEA08530-E

The server is not in a state in which commands can be executed. (subcommand = aa....aa, management client = bb....bb, error details = cc....cc)

aa....aa：サブコマンド

bb....bb：コマンド実行元のIPアドレス

cc....cc：エラー詳細情報

説明

EADSサーバがコマンドを実行できる状態ではありません。

対処

EADSサーバ，コマンド，およびクラスタの状態を確認してください。

KDEA08531-I

The status has already been changed. (subcommand = aa....aa, management client = bb....bb, details = cc....cc)

aa....aa：サブコマンド

bb....bb：コマンド実行元のIPアドレス

cc....cc：詳細情報

説明

EADSサーバの状態がすでに変更されています。

KDEA08532-I

Close processing finished. (management client = aa....aa)

aa....aa：コマンド実行元のIPアドレス

説明

EADSサーバを閉塞しました。

KDEA08533-I

Export processing finished. (store data file path = aa....aa, management client = bb....bb)

aa....aa：ストアデータファイルの出力先パス名

bb....bb：コマンド実行元のIPアドレス

説明

データの書き出しを終了しました。

KDEA08534-I

Import processing finished. (store data directory = aa....aa, store data file key = bb....bb, management client = cc....cc)

aa....aa：ストアデータファイルの格納先パス名

bb....bb：ストアデータファイルキー

cc....cc：コマンド実行元のIPアドレス

説明

データの読み込みを終了しました。

KDEA08535-E

An unexpected error occurred. (error details = aa....aa)

aa....aa：エラー詳細情報

説明

予期しないエラーが発生しました。

対処

エラー詳細情報を確認してください。

エラーの要因が不明な場合は，弊社問い合わせ窓口にご連絡ください。

KDEA08537-I

The importing of the store data file started. (store data file path = aa....aa)

aa....aa：ストアデータファイルの格納先パス名

説明

データの読み込みを開始しました。

KDEA08538-I

The importing of the store data file finished. (store data file path = aa....aa)

aa....aa：ストアデータファイルの格納先パス名

説明

データの読み込みを終了しました。

KDEA08539-E

The importing of the store data file failed. (store data file path = aa....aa, error details = bb....bb)

aa....aa：ストアデータファイルの格納先パス名

bb....bb：エラー詳細情報

説明

データの読み込みに失敗しました。

対処

エラー詳細情報を確認してください。

ストアデータファイルが適切かどうかを確認してください。

eztool statusコマンドを実行して，EADSサーバの状態を確認してください。

KDEA08545-W

The specified cache name already exists. (cache name = aa....aa, management client = bb....bb)

aa....aa：キャッシュ名

bb....bb：コマンド実行元のIPアドレス

説明

指定されたキャッシュ名はすでに存在します。

対処

キャッシュ名が適切かどうかを確認してください。

KDEA08547-W

The specified cache name does not exist. (cache name = aa....aa, management client = bb....bb)

aa....aa：キャッシュ名

bb....bb：コマンド実行元のIPアドレス

説明

指定されたキャッシュが存在しません。

対処

キャッシュ名が適切かどうかを確認してください。

KDEA08548-I

The store data file was deleted. (store data file path = aa....aa)

aa....aa：ストアデータファイルの出力先パス名

説明

ストアデータファイルを削除しました。

KDEA08549-E

Deletion of the store data file failed. (store data file name = aa....aa, error details = bb....bb)

aa....aa：ストアデータファイル名

bb....bb：エラー詳細情報

説明

ストアデータファイルの削除に失敗しました。

対処

直前に出力されたメッセージを確認してください。

eztool statusコマンドを実行して，EADSサーバの状態を確認してください。

KDEA08569-E

The specified cache name is invalid. (cache name = aa....aa, management client = bb....bb)

aa....aa：キャッシュ名

bb....bb：コマンド実行元のIPアドレス

説明

指定されたキャッシュ名が不正です。

対処

指定したキャッシュ名が適切かどうかを確認してください。

KDEA08570-E

The number of caches exceeds the limit. (cache count = aa....aa, limit = bb....bb, management client = cc....cc)

aa....aa：キャッシュ数

bb....bb：キャッシュ数の上限

cc....cc：コマンド実行元のIPアドレス

説明

キャッシュ数が上限値を超えています。

対処

eztool deletecacheコマンドを実行して，不要なキャッシュを削除してください。

KDEA08571-E

The specified directory name is invalid. (store data directory name = aa....aa, management client = bb....bb)

aa....aa：ストアデータファイルの格納先パス名

bb....bb：コマンド実行元のIPアドレス

説明

指定されたディレクトリ名が不正です。

対処

指定したディレクトリ名が適切かどうかを確認してください。

KDEA08572-E

The specified store data file name is invalid. (store data file key = aa....aa, management client = bb....bb)

aa....aa：ストアデータファイルキー

bb....bb：コマンド実行元のIPアドレス

説明

指定されたストアデータファイル名が不正です。

対処

指定したストアデータファイルキーが適切かどうかを確認してください。

KDEA08575-E

Acquisition of the store data failed. (management client = aa....aa, error details = bb....bb)

aa....aa：コマンド実行元のIPアドレス

bb....bb：エラー詳細情報

説明

ストアデータの取得に失敗しました。

対処

ストアデータファイルの出力先にストアデータファイルが存在するか確認してください。

ストアデータファイルの出力先，およびストアデータファイルのアクセス権を確認してください。

KDEA08576-I

Processing to isolate the server finished. (management client = aa....aa)

aa....aa：コマンド実行元のIPアドレス

説明

EADSサーバを縮退しました。

KDEA08577-E

Processing to isolate the server failed. (management client = aa....aa, error details = bb....bb)

aa....aa：コマンド実行元のIPアドレス

bb....bb：エラー詳細情報

説明

EADSサーバの縮退に失敗しました。

対処

エラー詳細情報を確認してください。

ほかのEADSサーバの状態を確認してください。

縮退しているほかのEADSサーバを復旧してから，コマンドを再実行してください。

KDEA08580-I

Processing to close the server started. (management client = aa....aa)

aa....aa：コマンド実行元のIPアドレス

説明

EADSサーバの閉塞化を開始しました。

KDEA08582-E

The wait for completion of execution failed. (management client = aa....aa, error details = bb....bb)

aa....aa：コマンド実行元のIPアドレス

bb....bb：エラー詳細情報

説明

コマンド実行の完了待ちに失敗しました。

対処

コマンドを再実行してください。

KDEA08585-E

The compaction of cache data files failed. (management client = aa....aa, cache name = bb....bb, range ID = cc....cc, error details = dd....dd)

aa....aa：コマンド実行元のIPアドレス

bb....bb：キャッシュ名

cc....cc：レンジID

dd....dd：エラー詳細情報

説明

キャッシュデータファイルのコンパクションに失敗しました。

対処

エラー詳細情報を確認してください。

KDEA08586-I

Stopping the compaction of cache data files was reserved. (management client = aa....aa)

aa....aa：コマンド実行元のIPアドレス

説明

キャッシュデータファイルのコンパクションの中断が予約されました。

KDEA08587-I

The compaction of cache data files was stopped. (management client = aa....aa)

aa....aa：コマンド実行元のIPアドレス

説明

キャッシュデータファイルのコンパクションが中断されました。

KDEA08588-I

The cache files were deleted. (management client = aa....aa, cache name = bb....bb)

aa....aa：コマンド実行元のIPアドレス

bb....bb：キャッシュ名

説明

キャッシュファイルを削除しました。

KDEA08589-E

Deletion of cache files failed. (management client = aa....aa, cache name = bb....bb, error details = cc....cc)

aa....aa：コマンド実行元のIPアドレス

bb....bb：キャッシュ名

cc....cc：エラー詳細情報

説明

キャッシュファイルの削除に失敗しました。

対処

エラー詳細情報を確認してください。

ディスクキャッシュの格納先として不揮発性メモリを使用している場合で，エラー詳細情報に「The device cannot be used.」が出力されているときは，次の点を確認してください。

キャッシュ定義ファイルのeads.cache.disk.persistentMemory.deviceパラメタに指定した不揮発性メモリのデバイスファイルについて，次の点を確認してください。

・不揮発性メモリのデバイスファイルがDevice DAXモードであること

・不揮発性メモリのデバイスファイルが他のキャッシュで使用されていないこと

不揮発性メモリを使用するための前提パッケージがインストールされていることを確認してください。不揮発性メモリを使用するための前提パッケージについては，リリースノートを参照してください。

不揮発性メモリのデバイスファイルの指定に問題がない場合は，デバイスファイルを初期化してください。

KDEA08591-I

The resumption of cache files started. (management client = aa....aa)

aa....aa：コマンド実行元のIPアドレス

説明

キャッシュの再開を開始しました。

KDEA08592-I

The resumption of cache files finished. (management client = aa....aa)

aa....aa：コマンド実行元のIPアドレス

説明

キャッシュの再開が完了しました。

KDEA08593-E

The resumption of cache files failed. (management client = aa....aa, error details = bb....bb)

aa....aa：コマンド実行元のIPアドレス

bb....bb：エラー詳細情報

説明

キャッシュの再開に失敗しました。

対処

エラー詳細情報を確認してください。

KDEA08594-I

The importing of cache files started. (management client = aa....aa)

aa....aa：コマンド実行元のIPアドレス

説明

キャッシュファイルのインポートを開始しました。

KDEA08595-I

The importing of cache files finished. (management client = aa....aa)

aa....aa：コマンド実行元のIPアドレス

説明

キャッシュファイルのインポートが完了しました。

KDEA08596-E

The importing of cache files failed. (management client = aa....aa, error details = bb....bb)

aa....aa：コマンド実行元のIPアドレス

bb....bb：エラー詳細情報

説明

キャッシュファイルのインポートに失敗しました。

対処

エラー詳細情報を確認してください。

KDEA08597-E

Creation of cache files failed. (cache name = aa....aa, management client = bb....bb, error details = cc....cc)

aa....aa：キャッシュ名

bb....bb：コマンド実行元のIPアドレス

cc....cc：エラー詳細情報

説明

キャッシュファイルの作成に失敗しました。

対処

エラー詳細情報を確認してください。

ディスクキャッシュの格納先として不揮発性メモリを使用している場合で，エラー詳細情報に「The device cannot be used.」が出力されているときは，次の点を確認してください。

キャッシュ定義ファイルのeads.cache.disk.persistentMemory.deviceパラメタに指定した不揮発性メモリのデバイスファイルについて，次の点を確認してください。

・不揮発性メモリのデバイスファイルがDevice DAXモードであること

・不揮発性メモリのデバイスファイルが他のキャッシュで使用されていないこと

不揮発性メモリを使用するための前提パッケージがインストールされていることを確認してください。不揮発性メモリを使用するための前提パッケージについては，リリースノートを参照してください。

KDEA08598-I

Exporting was not executed because no memory cache exist on the server. (management client = aa....aa)

aa....aa：コマンド実行元のIPアドレス

説明

EADSサーバにメモリキャッシュが存在しなかったため，データの書き出しは実行されませんでした。

対処

エラー詳細情報を確認してください。

KDEA08599-E

The command cannot be executed because the command version and server version are different. (command version = aa....aa, server version = bb....bb)

aa....aa：コマンドのバージョン

bb....bb：EADSサーバのバージョン

説明

コマンドのバージョンが，EADSサーバのバージョンと不一致であるため，コマンドは実行できません。

対処

EADSサーバのバージョンと同じバージョンのコマンドを実行してください。

KDEA08600-W

No range for the server ID specified in the server ID specification group was found. (server ID = aa....aa)

aa....aa：EADSサーバID

説明

EADSサーバID指定グループで指定されたEADSサーバIDのレンジが存在しません。

対処

eztool importコマンド，またはeztool importecfコマンドで指定したEADSサーバID変換ルールが正しいかどうかを確認してください。

クラスタの構成と，各EADSサーバのEADSサーバIDを確認してください。

KDEA08601-E

The user does not have the write permission for the file. (file path = aa....aa)

aa....aa：ファイルパス

説明

ファイルに書き込み権限がありません。

対処

ファイルに書き込み権限を追加してください。

KDEA08602-E

The user does not have the execute permission for the file. (file path = aa....aa)

aa....aa：ファイルパス

説明

ファイルに実行権限がありません。

対処

ファイルに実行権限を追加してください。

KDEA08603-E

An attempt to output the configuration after scaling failed. (error details = aa....aa)

aa....aa：エラー詳細情報

説明

スケールアウト後，またはリバランス後のクラスタ構成の出力に失敗しました。

対処

エラー詳細情報を確認してください。

出力に失敗した場合，現在のクラスタ構成と定義ファイルに記載されているクラスタ構成が異なるおそれがあります。その場合は，正常に出力されたほかのEADSサーバの定義ファイルをコピーするか，スケールアウト後，またはリバランス後のクラスタ構成を定義ファイルに手動で記載してください。

KDEA08604-E

An attempt to change server positions failed. (management client = aa....aa, error details = bb....bb)

aa....aa：コマンド実行元のIPアドレス

bb....bb：エラー詳細情報

説明

EADSサーバの位置の変更に失敗しました。

対処

エラーの内容を確認してください。

KDEA08605-I

Stopped the processing to change server positions was reserved. (management client = aa....aa)

aa....aa：コマンド実行元のIPアドレス

説明

EADSサーバの位置の変更の中断が予約されました。

KDEA08606-I

The processing to change server positions was stopped. (management client = aa....aa)

aa....aa：コマンド実行元のIPアドレス

説明

EADSサーバの位置の変更が中断されました。

KDEA08607-I

The exporting of cache files started. (management client = aa....aa, cache name = bb....bb)

aa....aa：コマンド実行元のIPアドレス

bb....bb：キャッシュ名

説明

キャッシュファイルのエクスポートを開始しました。

KDEA08608-E

The exporting of cache files failed. (management client = aa....aa, cache name = bb....bb, error details = cc....cc)

aa....aa：コマンド実行元のIPアドレス

bb....bb：キャッシュ名

cc....cc：エラー詳細情報

説明

キャッシュファイルのエクスポートに失敗しました。

対処

エラー詳細情報を確認してください。

ディスクキャッシュの格納先として不揮発性メモリを使用している場合で，エラー詳細情報に「The device cannot be used.」が出力されているときは，次の点を確認してください。

キャッシュ定義ファイルのeads.cache.disk.persistentMemory.deviceパラメタに指定した不揮発性メモリのデバイスファイルについて，次の点を確認してください。

・不揮発性メモリのデバイスファイルがDevice DAXモードであること

・不揮発性メモリのデバイスファイルが他のキャッシュで使用されていないこと

不揮発性メモリを使用するための前提パッケージがインストールされていることを確認してください。不揮発性メモリを使用するための前提パッケージについては，リリースノートを参照してください。

KDEA08609-I

The exporting of cache files finished. (management client = aa....aa, cache name = bb....bb)

aa....aa：コマンド実行元のIPアドレス

bb....bb：キャッシュ名

説明

キャッシュファイルのエクスポートが完了しました。

KDEA08610-W

Some data was not imported because the number of data in the range has exceeded the limit. (cache name = aa....aa, range ID = bb....bb)

aa....aa：キャッシュ名

bb....bb：レンジID

説明

eztool importコマンドでデータをインポートしましたが，レンジのデータ件数がデータ自動削除機能のしきい値（キャッシュ定義のeads.cache.eviction.keyCountパラメタ）で指定した上限を超えたため，一部のデータはインポートされませんでした。

対処

意図しない状態でこのメッセージが出力された場合は，データ自動削除機能のデータ削除のしきい値，およびレンジのデータ件数の上限が想定通りであることを確認してください。

レンジのすべてのデータの読み込みが必要な場合は，キャッシュを削除したあとで，キャッシュ定義ファイルのeads.cache.eviction.keyCountパラメタにレンジに登録されたデータ件数以上の値を指定して，再実行してください。

KDEA08611-W

Some data was not imported because the number of data in the range has exceeded the limit. (cache name = aa....aa, range ID = bb....bb)

aa....aa：キャッシュ名

bb....bb：レンジID

説明

eztool importecfコマンドでデータをインポートしましたが，レンジのデータ件数がデータ自動削除機能のしきい値（キャッシュ定義のeads.cache.eviction.keyCountパラメタ）で指定した上限を超えたため，一部のデータはインポートされませんでした。

対処

意図しない状態でこのメッセージが出力された場合は，データ自動削除機能のデータ削除のしきい値，およびレンジのデータ件数の上限が想定通りであることを確認してください。

レンジのすべてのデータの読み込みが必要な場合は，キャッシュを削除したあとで，キャッシュ定義ファイルのeads.cache.eviction.keyCountパラメタにレンジに登録されたデータ件数以上の値を指定して，再実行してください。

22.8　KDEA10000〜KDEA11999

KDEA10000〜KDEA11999のメッセージとその対処方法について説明します。

KDEA10001-W

The parameter is outside the valid range. The default value will be used. (parameter = aa....aa, value = bb....bb, default value = cc....cc)

aa....aa：パラメタ名

bb....bb：パラメタの指定値

cc....cc：パラメタのデフォルト値

説明

パラメタの指定値が不正です。デフォルト値を使用します。

対処

パラメタの指定値を見直し，正しい値に変更してください。

KDEA10002-E

The parameter is outside the valid range or was not specified. (parameter = aa....aa, value = bb....bb)

aa....aa：パラメタ名

bb....bb：不正なパラメタの指定値（指定されていない場合はnullまたはNULL）

説明

パラメタが指定されていないか，または指定値が不正です。

対処

パラメタの指定値を見直し，正しい値に変更したあと，EADSサーバを再起動してください。

KDEA10005-E

A received packet was invalid for the protocol. (local = aa....aa:bb....bb, remote = cc....cc:dd....dd)

aa....aa：自IPアドレス

bb....bb：自ポート番号

cc....cc：通信先のIPアドレス

dd....dd：通信先のポート番号

説明

プロトコルとして不正なパケットを受信しました。

対処

次の要因が考えられます。

通信先で問題が発生した。

ネットワークで問題が発生した。

要因を特定し，問題を取り除いてください。

KDEA10006-W

A packet incompatible with the communications protocol was received. (local = aa....aa:bb....bb, remote = cc....cc:dd....dd)

aa....aa：自IPアドレス

bb....bb：自ポート番号

cc....cc：接続元のIPアドレス

dd....dd：接続元のポート番号

説明

互換性のないパケットを受信しました。

対処

次の要因が考えられます。

通信先で問題が発生した。

通信先と互換性がない。

ネットワークで問題が発生した。

要因を特定し，問題を取り除いてください。

KDEA10007-E

Some parameter values conflict. (parameter1 = aa....aa, parameter2 = bb....bb)

aa....aa：値が矛盾しているパラメタ1

bb....bb：値が矛盾しているパラメタ2

説明

パラメタ1とパラメタ2の値が矛盾しています。

大小関係などに問題があります。

対処

パラメタの値を見直し，正しい値に変更したあと，EADSサーバを再起動してください。

付録

付録A　サンプルプログラム

EADSでは2種類のユーザファンクションのサンプルプログラムを提供しています。

ExportCsvFunction

EADSサーバに格納されているデータをCSV形式でファイルに出力します。

RemoveAllFunction

EADSサーバに格納されているデータを削除します。

サンプルプログラムは，/opt/hitachi/xeads/server/sampleディレクトリ下に格納されています。

サンプルプログラムでは，「18.2　ユーザファンクションで使用できるAPI」のAPIを使用して，実際にデータを操作します。

なお，サンプルプログラムはC言語のクライアントAPでの実行には対応していません。Java言語のクライアントAPまたはeztool execfuncコマンドを使用して実行してください。

付録A.1　ExportCsvFunction（データの出力）

このサンプルプログラムは，EADSサーバに格納されているデータをCSV形式でファイルに出力します。

このユーザファンクションの引数と戻り値は文字列のため，eztool execfuncコマンドで実行できます。

(1)　規則

keyが＜グループ名＞:＜yyyyMMddHHmmss＞に合致する形式で，対象のEADSサーバに格納されているデータが出力されます。

年（yyyy），月（MM），日（dd），時（HH），分（mm），秒（ss）の各桁は固定なので，足りない桁は0で補ってください。これ以外の形式のkeyのデータは出力されません。

valueは文字列表現であるtoString()の戻り値が出力されます。

出力するCSVファイルの文字エンコーディングは，Javaのデフォルトエンコーディングになります。

key，valueにコンマなどが含まれていた場合でも，そのまま出力されます。

(2)　ユーザファンクション名

samplefunc.ExportCsvFunction

(3)　ユーザファンクション引数

ユーザファンクションに次の引数を渡します。

＜CSVファイル名＞［,＜時間範囲＞］

データ出力先のCSVファイル名を指定します。CSVファイルは，＜運用ディレクトリ＞/store下に出力されます。

CSVファイル名には，最大32文字の半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），およびピリオド（.）が指定できます。

特定のデータを出力したい場合は，時間範囲（開始時刻，終了時刻）を指定します。

＜時間範囲＞：

［＜開始時刻＞］:［＜終了時刻＞］

開始時刻，終了時刻は，yyyyMMddHHmmss形式で指定します。

yyyyMMddHHmmss：

yyyy：年，MM：月，dd：日，HH：時（00〜23），mm：分，ss：秒

また，どちらかの時刻を省略できます。開始時刻を省略した場合は最初のデータから，終了時刻を省略した場合は最後のデータまで出力されます。

（例）exportdata2.csv,20131120150000:

2013年11月20日15時以降のkey，valueをexportdata2.csvに出力します。

(4)　実行例

eztool execfuncコマンドでサンプルプログラムを実行します。

（例1）

キャッシュcache1に格納されているkey，valueをexportdata1.csvに出力します。

eztool execfunc cache1 samplefunc.ExportCsvFunction exportdata1.csv

（例2）

キャッシュcache2に格納されている2013年11月20日15時までのkey，valueをexportdata2.csvに出力します。

eztool execfunc cache2 samplefunc.ExportCsvFunction exportdata2.csv,:20131120150000

(5)　CSVファイル出力例

# key,value

group0:20131122102030,value1

group0:20131122103000,value2

(6)　例外処理

例外が発生した場合は，例外の内容をユーザログに出力し，ユーザファンクションの実行を中断します。

(7)　戻り値

"Success"：CSVファイルの出力に成功した場合

"Failure"：CSVファイルの出力に失敗した場合

(8)　注意事項

このAPIは複数同時に実行できません。ファンクション定義のeads.function.＜ユーザファンクション名＞.maxExecuteThreadsパラメタに1を指定し，最大同時実行スレッド数を制限してください。

付録A.2　RemoveAllFunction（データの削除）

このサンプルプログラムは，EADSサーバに格納されているデータを削除します。

このユーザファンクションの引数と戻り値は文字列のため，eztool execfuncコマンドで実行できます。

(1)　規則

keyが＜グループ名＞:＜yyyyMMddHHmmss＞に合致する形式で，対象のEADSサーバに格納されているデータが削除されます。

年（yyyy），月（MM），日（dd），時（HH），分（mm），秒（ss）の各桁は固定なので，足りない桁は0で補ってください。これ以外の形式のkeyのデータは削除されません。

(2)　ユーザファンクション名

samplefunc.RemoveAllFunction

(3)　ユーザファンクション引数

特定のデータを削除したい場合は，ユーザファンクションに次の引数を渡します。

［,＜時間範囲＞］

＜時間範囲＞：

［＜開始時刻＞］:［＜終了時刻＞］

開始時刻，終了時刻は，yyyyMMddHHmmss形式で指定します。

yyyyMMddHHmmss：

yyyy：年，MM：月，dd：日，HH：時（00〜23），mm：分，ss：秒

また，どちらかの時刻を省略できます。開始時刻を省略した場合は最初のデータから，終了時刻を省略した場合は最後のデータまで削除されます。

（例）20131120150000:

2013年11月20日15時以降のkey，valueを削除します。

(4)　実行例

eztool execfuncコマンドでサンプルプログラムを実行します。

（例1）

キャッシュcache1に格納されているkey，valueをすべて削除します。

eztool execfunc cache1 samplefunc.RemoveAllFunction

（例2）

キャッシュcache2に格納されている2013年11月22日16時までのkey，valueをすべて削除します。

eztool execfunc cache2 samplefunc.RemoveAllFunction :20131122160000

(5)　例外処理

例外が発生した場合は，例外の内容をユーザログに出力し，ユーザファンクションの実行を中断します。

(6)　戻り値

"Success"：データの削除に成功した場合

"Failure"：データの削除に失敗した場合

(7)　注意事項

このAPIは複数同時に実行できません。ファンクション定義のeads.function.＜ユーザファンクション名＞.maxExecuteThreadsパラメタに1を指定し，最大同時実行スレッド数を制限してください。

付録B　03-60以前のバージョンからの移行手順

EADSを03-60以前のバージョンからアップデートして使用する場合，パラメタの設定に変更があります。03-60以前のバージョンからの移行に必要となる手順について説明します。

付録B.1　パラメタの移動（EADSサーバ）

EADSサーバで指定する一部のパラメタについて，指定する定義ファイルが変更になっています。

EADSを03-60以前のバージョンからアップデートする場合，次に示すパラメタを，それぞれの定義ファイルに移動してください。

ポイント

パラメタを移動しなかった場合，そのパラメタの設定は無効となり，デフォルトの値でEADSサーバが動作します。

名称が変更になったパラメタは，ほかの定義ファイルに移動する際，新しいパラメタ名で指定できます。新しい名称との対応については「付録B.4　名称が変更になったパラメタの一覧」を参照してください。

03-60以前に使用できたパラメタのうち，無効となったパラメタがあります。これらのパラメタを誤って定義した場合，EADSサーバの正常な動作は保証できません。無効となったパラメタについては「付録B.5　無効となったパラメタの一覧」を参照してください。

(1)　サーバ定義ファイルから移動するパラメタ

サーバ定義ファイルから移動するパラメタおよび移動先の定義ファイルについて，次の表に示します。

表B‒1　サーバ定義ファイルから移動するパラメタ

項番

パラメタ名

移動先の定義ファイル

1

eads.consensus.external.heapsize

共通設定ファイル（eads_shared.properties）

(2)　クラスタ定義ファイルから移動するパラメタ

クラスタ定義ファイルから移動するパラメタおよび移動先の定義ファイルについて，次の表に示します。

表B‒2　クラスタ定義ファイルから移動するパラメタ

項番

パラメタ名

移動先の定義ファイル

1

eads.server.max_key_size

共通設定ファイル（eads_shared.properties）

2

eads.cluster.heartbeat.address

3

eads.cluster.heartbeat.port

4

eads.replication.factor

5

eads.storeData.generation.count

6

eads.storeData.stop_command.generation.count

(3)　コマンド定義ファイルの変更

コマンド定義ファイルは，ファイルの名称が変更になっています。

03-60以前のコマンド定義ファイル（eads_management.properties）の名称を，新しい名称（eads_command.properties）に変更して使用してください。

(4)　起動設定ファイルから移動するパラメタ

起動設定ファイルから移動するパラメタおよび移動先の定義ファイルについて，次の表に示します。

表B‒3　起動設定ファイルから移動するパラメタ

項番

パラメタ名

移動先の定義ファイル

1

eads.java.log.filesize

サーバ定義ファイル（eads_server.properties）

2

eads.java.log.filenum

3

eads.java.heapsize

共通設定ファイル（eads_shared.properties）

4

eads.java.external.heapsize

5

eads.java.permanent.size※

注※

バージョン04-50以降では，eads.java.metaspace.maxsizeパラメタとなります。

付録B.2　パラメタの追加

EADSを03-60以前のバージョンからアップデートして運用する場合，EADSサーバ，およびEADSクライアントの動作に互換性を保つため，次に示すパラメタを各定義ファイルに追加してください。

(1)　サーバ定義ファイルに追加するパラメタ

サーバ定義ファイル（eads_server.properties）に追加するパラメタと指定値について，次の表に示します。

表B‒4　サーバ定義ファイルに追加するパラメタ

項番

パラメタ名

指定値

1

eads.admin.operation.connection.timeout

サーバ定義のeads.connection.timeoutパラメタに設定していた値

(2)　共通設定ファイルに追加するパラメタ

共通設定ファイル（eads_shared.properties）に追加するパラメタと指定値について，次の表に示します。

表B‒5　共通設定ファイルに追加するパラメタ

項番

パラメタ名

指定値

1

eads.cache.limiter.enable

false

(3)　コマンド定義ファイルに追加するパラメタ

コマンド定義ファイル（eads_command.properties）に追加するパラメタと指定値について，次の表に示します。

表B‒6　コマンド定義ファイルに追加するパラメタ

項番

パラメタ名

指定値

1

eads.command.compat

0300

(4)　クライアント定義ファイルに追加するパラメタ

クライアント定義ファイル（eads_client.properties）に追加するパラメタと指定値について，次の表に示します。

表B‒7　クライアント定義ファイルに追加するパラメタ

項番

パラメタ名

指定値

1

eads.client.compat

0300

付録B.3　パラメタの再設計

次に示すパラメタのデフォルト値が変更になっています。必要に応じて，パラメタに指定する値を再設計してください。

(1)　サーバ定義ファイルに指定していたパラメタ

サーバ定義ファイル（eads_server.properties）に指定していた次に示すパラメタは，デフォルト値が変更になっています。

(a)　eads.connection.timeout

デフォルト値が60000（ミリ秒）に変更になっています。

03-60で60000未満の値を設定していた場合，デフォルト値での使用を推奨します。

(b)　eads.restore.dataSender.send.timeout

デフォルト値が60000（ミリ秒）に変更になっています。

03-60で60000未満の値を設定していた場合，デフォルト値での使用を推奨します。

(c)　eads.statistics.interval

デフォルト値が1（秒）に変更になっています。

03-60以前でデフォルト値のまま使用していた場合で，アップデート後も同様の設定で運用するときは，サーバ定義ファイル（eads_server.properties）にeads.statistics.interval=60を指定してください。

(2)　クラスタ定義ファイルに指定していたパラメタ

クラスタ定義ファイル（eads_cluster.properties）に指定していた次に示すパラメタは，デフォルト値が変更になっています。

(a)　eads.cache.prepare.num

デフォルト値を20に変更しています。

03-60以前にデフォルト値のまま使用していた場合で，アップデート後も同様の設定で運用するときは，共通設定ファイル（eads_shared.properties）にeads.cache.prepare.num=10を指定してください。

(3)　クライアント定義ファイルに指定していたパラメタ

クライアント定義ファイル（eads_client.properties）に指定していた次に示すパラメタは，デフォルト値が変更になっています。

(a)　eads.connection.send.timeout

デフォルトの値が60000（ミリ秒）に変更になっています。

03-60で60000未満の値を設定していた場合，デフォルト値での使用を推奨します。

(b)　eads.connection.receive.timeout

デフォルト値が60000（ミリ秒）に変更になっています。

03-60で60000未満の値を設定していた場合，デフォルト値での使用を推奨します。

付録B.4　名称が変更になったパラメタの一覧

次に示すパラメタは，名称が変更になっていますが，03-60以前のパラメタ名を指定した場合も，正常に動作します。

注意事項

名称が変更になったパラメタについては，次の点に注意してください。

変更前と変更後の両方のパラメタを指定した場合，変更後のパラメタの指定値が有効となります。

変更前の名称で指定したパラメタに誤りがあった場合，出力されるメッセージ（KDEA10001-Wメッセージ，KDEA10002-Eメッセージ）には，変更後のパラメタ名が出力されます。

一部のパラメタは，指定する定義ファイルが変更になっています。「付録B.1　パラメタの移動（EADSサーバ）」を参照して，パラメタを移動してください。

(1)　サーバ定義ファイルに指定していたパラメタ

サーバ定義ファイル（eads_server.properties）に指定していたパラメタのうち，名称が変更になったパラメタを次の表に示します。

表B‒8　名称が変更になったサーバ定義のパラメタ

項番

03-60以前のパラメタ名

変更後のパラメタ名

1

eads.server.max_connections

eads.server.maxConnections

2

eads.server.session.keepAlive.timeout

eads.server.connection.keepAlive.timeout

3

eads.server.cache.max_execute_threads

eads.server.cache.maxExecuteThreads

4

eads.server.function_container.max_execute_threads

eads.server.function.maxExecuteThreads

5

eads.management.port

eads.admin.operation.port

6

eads.logger.user.rotationStyle

eads.user.logger.rotationStyle

7

eads.logger.user.filesize

eads.user.logger.filesize

8

eads.logger.user.filenum

eads.user.logger.filenum

9

eads.logger.userException.rotationStyle

eads.user.logger.exception.rotationStyle

10

eads.logger.userException.filesize

eads.user.logger.exception.filesize

11

eads.logger.userException.filenum

eads.user.logger.exception.filenum

12

eads.logger.cache.rotationStyle

eads.cache.logger.diskCache.rotationStyle

13

eads.logger.cache.filesize

eads.cache.logger.diskCache.filesize

14

eads.logger.cache.filenum

eads.cache.logger.diskCache.filenum

15

eads.connection.buffersize

eads.server.connection.buffersize

16

eads.connection.timeout

eads.server.connection.timeout

17

eads.cluster.boot.timeout

eads.admin.boot.timeout

18

eads.gracefulstop.wait_time

eads.admin.operation.isolate.gracefulstop.waitTime

19

eads.cluster.failureDetector.connect.timeout

eads.failureDetector.connection.timeout

20

eads.cluster.failureDetector.read.timeout

eads.failureDetector.read.timeout

21

eads.cluster.failureDetector.retry

eads.failureDetector.retry

22

eads.cluster.failureDetector.port

eads.failureDetector.port

23

eads.cluster.assertive.threshold

eads.failureDetector.assertive.threshold

24

eads.cluster.heartbeat.interval

eads.failureDetector.heartbeat.interval

25

eads.cluster.heartbeat.timeout

eads.failureDetector.heartbeat.timeout

26

eads.cache.consensus.timeout

eads.replication.consensus.timeout

27

eads.consensus.external.heapsize

eads.replication.external.heapsize※

28

eads.consensus.message.buffersize

eads.replication.connection.buffersize

29

eads.consensus.message.send.queuesize

eads.replication.sendQueue.length

30

eads.consensus.message.send.max_queuedatasize

eads.replication.sendQueue.datasize

31

eads.consensus.message.port

eads.replication.port

32

eads.consensus.fillgap.copy.dataSize

eads.replication.fillgap.copy.datasize

33

eads.consensus.fillgap.copy.timeout

eads.replication.fillgap.copy.timeout

34

eads.restore.connection.buffersize

eads.transfer.connection.buffersize

35

eads.restore.dataSender.send.timeout

eads.transfer.timeout

36

eads.restore.dataSender.sendInterval

eads.transfer.interval

37

eads.restore.dataSender.sendSize

eads.transfer.datasize

38

eads.restore.port

eads.transfer.port

39

eads.storeData.dir

eads.admin.backup.dir

40

eads.management.resume.sendInterval

eads.admin.operation.resume.send.interval

41

eads.management.resume.sendSize

eads.admin.operation.resume.send.datasize

42

eads.statistics.backupnum

eads.statistics.filenum

注※

このパラメタは，共通設定ファイル（eads_shared.properties）に移動になっています。

(2)　クラスタ定義ファイルに指定していたパラメタ

クラスタ定義ファイル（eads_cluster.properties）に指定していたパラメタのうち，名称が変更になったパラメタを次の表に示します。

表B‒9　名称が変更になったクラスタ定義のパラメタ

項番

03-60以前のパラメタ名

変更後のパラメタ名

1

eads.server.max_key_size

eads.cache.key.maxsize※

2

eads.cache.prepare.num

eads.replication.preparations※

3

eads.cluster.heartbeat.address

eads.failureDetector.heartbeat.address※

4

eads.cluster.heartbeat.port

eads.failureDetector.heartbeat.port※

5

eads.storeData.generation.count

eads.admin.backup.exportCommand.generation.maxNum※

6

eads.storeData.stop_command.generation.count

eads.admin.backup.stopCommand.generation.maxNum※

注※

これらのパラメタは，共通設定ファイル（eads_shared.properties）に移動になっています。

(3)　起動設定ファイルに指定していたパラメタ

起動設定ファイル（eads_start.properties）に指定していたパラメタのうち，名称が変更になったパラメタを次の表に示します。

表B‒10　名称が変更された起動設定のパラメタ

項番

03-60以前のパラメタ名

変更後のパラメタ名

1

eads.java.permanent.size

eads.java.permanent.maxsize※

注※

このパラメタは，共通設定ファイル（eads_shared.properties）に移動になっています。なお，バージョン04-50以降では，変更後のパラメタ名は，eads.java.metaspace.maxsizeパラメタとなります。

(4)　コマンド定義ファイルに指定していたパラメタ

コマンド定義ファイル（eads_management.properties）に指定していたパラメタのうち，名称が変更されたパラメタを次の表に示します。

なお，コマンド定義ファイルは，ファイル名をeads_management.propertiesからeads_command.propertiesに変更しています。

表B‒11　名称が変更されたコマンド定義のパラメタ

項番

03-60以前のパラメタ名

変更後のパラメタ名

1

eads.logger.dir

eads.command.logger.dir

2

eads.logger.message.rotationStyle

eads.command.logger.message.rotationStyle

3

eads.logger.message.filesize

eads.command.logger.message.filesize

4

eads.logger.message.filenum

eads.command.logger.message.filenum

5

eads.logger.exception.rotationStyle

eads.command.logger.exception.rotationStyle

6

eads.logger.exception.filesize

eads.command.logger.exception.filesize

7

eads.logger.exception.filenum

eads.command.logger.exception.filenum

8

eads.management.compaction.effect.threshold

eads.command.compaction.effect.threshold

9

eads.management.compaction.effect.division

eads.command.compaction.effect.division

10

eads.management.connect.timeout

eads.command.connection.timeout

11

eads.management.long_running.read.timeout

eads.command.common.read.timeout

12

eads.management.long_running.command.timeout

eads.command.common.execution.timeout

(5)　キャッシュ定義ファイルに指定していたパラメタ

キャッシュ定義ファイル(eads_cache.＜キャッシュ名＞.properties)に指定していたパラメタのうち，名称が変更されたパラメタを次の表に示します。

表B‒12　名称が変更されたキャッシュ定義のパラメタ

項番

03-60以前のパラメタ名

変更後のパラメタ名

1

eads.cache.restore.dataSender.sendInterval

eads.cache.disk.transfer.interval

2

eads.cache.restore.dataSender.sendSize

eads.cache.disk.transfer.datasize

(6)　ファンクション定義ファイルに指定していたパラメタ

ファンクション定義ファイル（eads_function.propertiesまたは＜任意の文字列＞_function.properties）に指定していたパラメタのうち，名称が変更されたパラメタを次の表に示します。

表B‒13　名称が変更されたファンクション定義のパラメタ

項番

03-60以前のパラメタ名

変更後のパラメタ名

1

eads.function.＜ユーザファンクション名＞.max_execute_threads

eads.function.＜ユーザファンクション名＞.maxExecuteThreads

(7)　クライアント定義ファイルに指定していたパラメタ

クライアント定義ファイル（eads_client.properties）に指定していたパラメタのうち，名称が変更されたパラメタを次の表に示します。

表B‒14　名称が変更されたクライアント定義のパラメタ

項番

03-60以前のパラメタ名

変更後のパラメタ名

1

eads.client.node.list

eads.client.connect.servers

2

eads.logger.dir

eads.client.logger.dir

3

eads.logger.message.filesize

eads.client.logger.message.filesize

4

eads.logger.message.filenum

eads.client.logger.message.filenum

5

eads.logger.message.console.enable

eads.client.logger.message.console.enable

6

eads.connection.buffersize

eads.client.connection.buffersize

7

eads.connectionPool.poolsize

eads.client.connectionPool.poolsize

8

eads.connectionPool.exceedMaxSizeError.enable

eads.client.connectionPool.exceedMaxSizeError.enable

9

eads.connection.send.timeout

eads.client.connection.send.timeout

10

eads.connection.receive.timeout

eads.client.connection.receive.timeout

付録B.5　無効となったパラメタの一覧

03-60以前に使用できたパラメタのうち，次に示すパラメタは無効となっています。

これらのパラメタを誤って設定した場合は，EADSサーバおよびEADSクライアントの正常な動作は保証されません。

表B‒15　無効となったパラメタの一覧

項番

定義ファイル名

無効となったパラメタ名

1

サーバ定義ファイル

eads.server.max.datasize.enable

2

eads.server.max.datasize

3

eads.prf.enable

4

eads.cluster.controller.cache.max_execute_threads

5

eads.restore.dataReceiver.read.timeout

6

起動設定ファイル

eads.prf.filesize

7

eads.prf.filenum

8

eads.prf.level

9

eads.prf.buffersize

10

コマンド定義ファイル

eads.management.read.timeout

11

eads.management.command.timeout

12

クライアント定義ファイル

eads.logger.commTrace.enable

13

eads.logger.commTrace.filesize

14

eads.logger.commTrace.filenum

15

eads.logger.commTrace.commNo.prefix

付録C　用語解説

（数字）

2Wayキャッシュ

メモリ領域およびディスク領域にデータを格納するキャッシュのことです。

（英字）

EADSクライアント

EADSが提供するクライアントライブラリを使用して，EADSサーバに接続するユーザプログラムのことです。

EADSサーバ

keyとvalueで構成されるデータを管理するサーバプロセスのことです。

（ア行）

イベントリスナ

EADSサーバでのイベントの発生（クラスタ構成情報の更新）を契機に，ユーザが定義した処理を，EADSクライアント上で実行させるプログラムのことです。

イベントリスナには，次の2種類があります。

クラスタイベントリスナ

EADSサーバがクラスタに追加された場合に実行させるイベントリスナです。

ノードイベントリスナ

EADSサーバの縮退や復旧など，クラスタを構成するEADSサーバの状態が変わった場合に実行させるイベントリスナです。

（カ行）

キャッシュ

EADSで扱うデータ（keyとvalueのペア）を格納する領域のことです。

キャッシュはクラスタ内に最大16個作成できます。

EADSクライアントは，クラスタ内のキャッシュに対してデータ操作を行います。

クラスタ

複数のEADSサーバの集合です。EADSクライアントからは1つの格納先として認識されます。

同じセグメント内に同じマルチキャストアドレスおよびポート番号を設定したEADSサーバ群で構成されます。

（サ行）

スケールアウト処理

クラスタを停止させないで，新しいEADSサーバをクラスタに追加する処理のことです。

生存確認

ハートビートを送信しないEADSサーバに対して，ダウンしていないかどうかクラスタ内で確認する機能のことです。

生存確認にはTCPプロトコルを使用します。

（タ行）

ディスクキャッシュ

ディスク領域にデータを格納するキャッシュのことです。

（ハ行）

ハートビート

正常に稼働していることを知らせるために，クラスタ内にマルチキャストで配信するパケットのことです。

ハートビートの送信にはUDPプロトコルを使用します。

不揮発性メモリ

従来のフラッシュメモリよりも高速に読み書きができ，かつ電源が失われても書き込んだデータが保持される不揮発性のメモリ，いわゆるストレージクラスメモリのことです。

EADSでは，不揮発性メモリをストレージデバイスとして使用することで，データの格納先として使用できます。EADSが対応する製品については，リリースノートを参照してください。

（マ行）

メモリキャッシュ

メモリ領域にデータを格納するキャッシュのことです。

（ヤ行）

ユーザファンクション

データの集計や分析など，キャッシュに対して実行する一連のデータ操作（ユーザ処理）を定義したプログラムのことです。

ユーザが作成して，あらかじめEADSサーバ上に配置しておき，EADSクライアントから呼び出すことで実行できます。なお，ユーザファンクションには次の2種類の実行方法があります。

keyまたはグループ指定による実行方法

EADSサーバ指定による実行方法

（ラ行）

リバランス処理

クラスタを停止させないで，クラスタ内のEADSサーバを均等に配置し直すことで，各レンジに格納できるkeyの数を均等にする処理のことです。

索引

数字

2Wayキャッシュ[1]

2Wayキャッシュ〔用語解説〕[1]

A

addClusterEventListener()〔CacheManagerクラス〕[1]

addNodeEventListener()〔CacheManagerクラス〕[1]

AllFailureExceptionクラス[1]

B

BatchOperationExceptionクラス[1]

BNF表記の読み方[1]

C

CacheExceptionクラス[1]

CacheInfoインタフェース[1]

CacheManagerクラス[1]

Cacheクラス[1]

calcDiskUsageSize()〔Storeインタフェース〕[1]

calcEHeapUsageSize()〔Storeインタフェース〕[1]

ClientInfoインタフェース[1]

close[1]

ClusterEventContextインタフェース[1]

ClusterEventListenerインタフェース[1]

ClusterInfoインタフェース[1]

compaction[1]

containsKey()（Keyインタフェース指定）〔Storeインタフェース〕[1]

containsKey()（文字列指定）〔Storeインタフェース〕[1]

create[1]

create()（EADSクライアント名およびクライアント定義指定）〔CacheManagerクラス〕[1]

create()（EADSクライアント名および入力ストリーム指定）〔CacheManagerクラス〕[1]

create()（EADSクライアント名およびパス指定）〔CacheManagerクラス〕[1]

create()（クライアント定義指定）〔CacheManagerクラス〕[1]

create()（入力ストリーム指定）〔CacheManagerクラス〕[1]

create()（パス指定）〔CacheManagerクラス〕[1]

create()〔Cacheクラス〕[1]

create()〔Groupインタフェース〕[1]

create()〔Storeインタフェース〕[1]

createcache[1]

createGroup()〔Groupインタフェース〕[1]

createGroup()〔Storeインタフェース〕[1]

createKey()〔Groupインタフェース〕[1]

createKey()〔Storeインタフェース〕[1]

createValue()〔Storeインタフェース〕[1]

D

deletecache[1]

deleteecf[1]

deleteesd[1]

descendingKeyIterator()（Keyインタフェース指定）〔Groupインタフェース〕[1]

descendingKeyIterator()〔Groupインタフェース〕[1]

destroy()〔CacheManagerクラス〕[1]

destroy()〔Functionインタフェース〕[1]

E

ead_add_cluster_eventlistener()[1]

ead_add_node_eventlistener()[1]

ead_address構造体[1]

ead_cluster_eventcontext構造体[1]

ead_cluster_eventlistener構造体[1]

ead_create()[1]

EAD_ERROR_BATCH_FAILED_ALL〔C言語〕[1]

EAD_ERROR_BATCH_FAILED_ALL〔Java言語〕[1]

EAD_ERROR_BATCH_FAILED_PART〔C言語〕[1]

EAD_ERROR_BATCH_FAILED_PART〔Java言語〕[1]

EAD_ERROR_CACHE_NOT_CREATED〔ユーザファンクション〕[1]

EAD_ERROR_CACHE_NOT_NEED_STOP〔C言語〕[1]

EAD_ERROR_CACHE_NOT_NEED_STOP〔Java言語〕[1]

EAD_ERROR_CACHE_NOT_STARTED〔C言語〕[1]

EAD_ERROR_CACHE_NOT_STARTED〔Java言語〕[1]

EAD_ERROR_CACHE_SETTING〔ユーザファンクション〕[1]

EAD_ERROR_CLIENT_BATCH_CANCEL〔C言語〕[1]

EAD_ERROR_CLIENT_BATCH_CANCEL〔Java言語〕[1]

EAD_ERROR_CLIENT_FINALIZED〔Java言語〕[1]

EAD_ERROR_CLIENT_OUT_OF_MEMORY〔C言語〕[1]

EAD_ERROR_CLIENT_OUT_OF_MEMORY〔Java言語〕[1]

EAD_ERROR_CLIENT〔C言語〕[1]

EAD_ERROR_CLIENT〔Java言語〕[1]

EAD_ERROR_EVENTLISTENER_EXIST〔C言語〕[1]

EAD_ERROR_EVENTLISTENER_EXIST〔Java言語〕[1]

EAD_ERROR_EVENTLISTENER_NOT_INITIALIZED〔C言語〕[1]

EAD_ERROR_EVENTLISTENER_NOT_INITIALIZED〔Java言語〕[1]

EAD_ERROR_EVENTLISTENER_NOT_NEED_REMOVE〔C言語〕[1]

EAD_ERROR_EVENTLISTENER_NOT_NEED_REMOVE〔Java言語〕[1]

EAD_ERROR_EXCEED_MAX_CONNECTION_POOL_SIZE〔C言語〕[1]

EAD_ERROR_EXCEED_MAX_CONNECTION_POOL_SIZE〔Java言語〕[1]

EAD_ERROR_ILLEGAL_ARGUMENT〔C言語〕[1]

EAD_ERROR_INIT_CLUSTERINFO〔C言語〕[1]

EAD_ERROR_INIT_CLUSTERINFO〔Java言語〕[1]

EAD_ERROR_INIT_INVALID_PROPERTY〔C言語〕[1]

EAD_ERROR_INIT_INVALID_PROPERTY〔Java言語〕[1]

EAD_ERROR_INIT_LOGGER〔C言語〕[1]

EAD_ERROR_INIT_LOGGER〔Java言語〕[1]

EAD_ERROR_INIT_PROPERTIES〔C言語〕[1]

EAD_ERROR_INIT_PROPERTIES〔Java言語〕[1]

EAD_ERROR_INIT〔C言語〕[1]

EAD_ERROR_INIT〔Java言語〕[1]

EAD_ERROR_INVALID_NODE_ADDRESS〔C言語〕[1]

EAD_ERROR_INVALID_NODE_ADDRESS〔Java言語〕[1]

EAD_ERROR_INVALID_PARAMETER〔Java言語〕[1]

EAD_ERROR_INVALID_PARAMETER〔ユーザファンクション〕[1]

EAD_ERROR_NET_CLUSTERINFO〔C言語〕[1]

EAD_ERROR_NET_CLUSTERINFO〔Java言語〕[1]

EAD_ERROR_NET_CONNECTION〔C言語〕[1]

EAD_ERROR_NET_CONNECTION〔Java言語〕[1]

EAD_ERROR_NET_PROTOCOL〔C言語〕[1]

EAD_ERROR_NET_PROTOCOL〔Java言語〕[1]

EAD_ERROR_NET_RECEIVE_RESPONSE〔C言語〕[1]

EAD_ERROR_NET_RECEIVE_RESPONSE〔Java言語〕[1]

EAD_ERROR_NET_RECEIVE_TIMEOUT〔C言語〕[1]

EAD_ERROR_NET_RECEIVE_TIMEOUT〔Java言語〕[1]

EAD_ERROR_NET_SEND_REQUEST〔C言語〕[1]

EAD_ERROR_NET_SEND_REQUEST〔Java言語〕[1]

EAD_ERROR_NET_SEND_TIMEOUT〔C言語〕[1]

EAD_ERROR_NET_SEND_TIMEOUT〔Java言語〕[1]

EAD_ERROR_NET_TIMEOUT〔C言語〕[1]

EAD_ERROR_NET_TIMEOUT〔Java言語〕[1]

EAD_ERROR_NET〔C言語〕[1]

EAD_ERROR_NET〔Java言語〕[1]

EAD_ERROR_NOT_DESERIALIZABLE〔Java言語〕[1]

EAD_ERROR_NOT_DESERIALIZABLE〔ユーザファンクション〕[1]

EAD_ERROR_NOT_SERIALIZABLE〔Java言語〕[1]

EAD_ERROR_NOT_SERIALIZABLE〔ユーザファンクション〕[1]

EAD_ERROR_SERVER_CACHE_AFTER_REPLICATION〔C言語〕[1]

EAD_ERROR_SERVER_CACHE_AFTER_REPLICATION〔Java言語〕[1]

EAD_ERROR_SERVER_CACHE_AFTER_REPLICATION〔ユーザファンクション〕[1]

EAD_ERROR_SERVER_CACHE_BEFORE_REPLICATION〔C言語〕[1]

EAD_ERROR_SERVER_CACHE_BEFORE_REPLICATION〔Java言語〕[1]

EAD_ERROR_SERVER_CACHE_BEFORE_REPLICATION〔ユーザファンクション〕[1]

EAD_ERROR_SERVER_CACHE_CLUSTER_NOT_AVAILABLE〔ユーザファンクション〕[1]

EAD_ERROR_SERVER_CACHE_CLUSTER_UPDATE〔C言語〕[1]

EAD_ERROR_SERVER_CACHE_CLUSTER_UPDATE〔Java言語〕[1]

EAD_ERROR_SERVER_CACHE_NOT_FOUND〔C言語〕[1]

EAD_ERROR_SERVER_CACHE_NOT_FOUND〔java言語〕[1]

EAD_ERROR_SERVER_CACHE〔C言語〕[1]

EAD_ERROR_SERVER_CACHE〔Java言語〕[1]

EAD_ERROR_SERVER_CACHE〔ユーザファンクション〕[1]

EAD_ERROR_SERVER_CREATE_METHOD_KEY_EXIST〔C言語〕[1]

EAD_ERROR_SERVER_CREATE_METHOD_KEY_EXIST〔Java言語〕[1]

EAD_ERROR_SERVER_CREATE_METHOD_KEY_EXIST〔ユーザファンクション〕[1]

EAD_ERROR_SERVER_FUNCTION_ARG_DESERIALIZE〔Java言語〕[1]

EAD_ERROR_SERVER_FUNCTION_EXECUTE〔C言語〕[1]

EAD_ERROR_SERVER_FUNCTION_EXECUTE〔Java言語〕[1]

EAD_ERROR_SERVER_FUNCTION_NOT_FOUND〔C言語〕[1]

EAD_ERROR_SERVER_FUNCTION_NOT_FOUND〔java言語〕[1]

EAD_ERROR_SERVER_FUNCTION_RETURN_SERIALIZE〔C言語〕[1]

EAD_ERROR_SERVER_FUNCTION_RETURN_SERIALIZE〔Java言語〕[1]

EAD_ERROR_SERVER_INCOMPATIBLE_CLUSTERINFO〔C言語〕[1]

EAD_ERROR_SERVER_INCOMPATIBLE_CLUSTERINFO〔Java言語〕[1]

EAD_ERROR_SERVER_LIMIT_CACHE_FILE〔C言語〕[1]

EAD_ERROR_SERVER_LIMIT_CACHE_FILE〔Java言語〕[1]

EAD_ERROR_SERVER_LIMIT_CACHE_FILE〔ユーザファンクション〕[1]

EAD_ERROR_SERVER_LIMIT_EXTERNAL_MEMORY_TEMPORARILY〔C言語〕[1]

EAD_ERROR_SERVER_LIMIT_EXTERNAL_MEMORY_TEMPORARILY〔Java言語〕[1]

EAD_ERROR_SERVER_LIMIT_EXTERNAL_MEMORY_TEMPORARILY〔ユーザファンクション〕[1]

EAD_ERROR_SERVER_LIMIT_EXTERNAL_MEMORY〔C言語〕[1]

EAD_ERROR_SERVER_LIMIT_EXTERNAL_MEMORY〔Java言語〕[1]

EAD_ERROR_SERVER_LIMIT_EXTERNAL_MEMORY〔ユーザファンクション〕[1]

EAD_ERROR_SERVER_LIMIT_KEY_VALUE_LENGTH〔C言語〕[1]

EAD_ERROR_SERVER_LIMIT_KEY_VALUE_LENGTH〔Java言語〕[1]

EAD_ERROR_SERVER_LIMIT_KEY_VALUE_LENGTH〔ユーザファンクション〕[1]

EAD_ERROR_SERVER_LIMIT_KV_COUNT_TEMPORARILY〔C言語〕[1]

EAD_ERROR_SERVER_LIMIT_KV_COUNT_TEMPORARILY〔Java言語〕[1]

EAD_ERROR_SERVER_LIMIT_KV_COUNT_TEMPORARILY〔ユーザファンクション〕[1]

EAD_ERROR_SERVER_LIMIT_KV_COUNT〔C言語〕[1]

EAD_ERROR_SERVER_LIMIT_KV_COUNT〔Java言語〕[1]

EAD_ERROR_SERVER_LIMIT_KV_COUNT〔ユーザファンクション〕[1]

EAD_ERROR_SERVER_LIMIT_RECEIVE_BUFFER〔C言語〕[1]

EAD_ERROR_SERVER_LIMIT_RECEIVE_BUFFER〔Java言語〕[1]

EAD_ERROR_SERVER_LIMIT_SEND_BUFFER〔C言語〕[1]

EAD_ERROR_SERVER_LIMIT_SEND_BUFFER〔Java言語〕[1]

EAD_ERROR_SERVER_NOT_EXECUTE_REQUEST_TEMPORARILY〔C言語〕[1]

EAD_ERROR_SERVER_NOT_EXECUTE_REQUEST_TEMPORARILY〔Java言語〕[1]

EAD_ERROR_SERVER_NOT_RUNNING〔C言語〕[1]

EAD_ERROR_SERVER_NOT_RUNNING〔Java言語〕[1]

EAD_ERROR_SERVER_REPLACE_METHOD_KEY_NOT_EXIST〔C言語〕[1]

EAD_ERROR_SERVER_REPLACE_METHOD_KEY_NOT_EXIST〔Java言語〕[1]

EAD_ERROR_SERVER_REPLACE_METHOD_KEY_NOT_EXIST〔ユーザファンクション〕[1]

EAD_ERROR_SERVER_REPLACE_METHOD_NOT_MATCHED〔C言語〕[1]

EAD_ERROR_SERVER_REPLACE_METHOD_NOT_MATCHED〔Java言語〕[1]

EAD_ERROR_SERVER_REPLACE_METHOD_NOT_MATCHED〔ユーザファンクション〕[1]

EAD_ERROR_SERVER_STATUS〔C言語〕[1]

EAD_ERROR_SERVER_STATUS〔Java言語〕[1]

EAD_ERROR_SERVER_UNAVAILABLE〔C言語〕[1]

EAD_ERROR_SERVER_UNAVAILABLE〔Java言語〕[1]

EAD_ERROR_SERVER_UNKNOWN〔C言語〕[1]

EAD_ERROR_SERVER_UNKNOWN〔Java言語〕[1]

EAD_ERROR_SERVER_UNSUPPORTED_REQUEST〔C言語〕[1]

EAD_ERROR_SERVER_UNSUPPORTED_REQUEST〔Java言語〕[1]

EAD_ERROR_SERVER_UPDATE_METHOD_KEY_NOT_EXIST〔C言語〕[1]

EAD_ERROR_SERVER_UPDATE_METHOD_KEY_NOT_EXIST〔Java言語〕[1]

EAD_ERROR_SERVER_UPDATE_METHOD_KEY_NOT_EXIST〔ユーザファンクション〕[1]

EAD_ERROR_SERVER〔C言語〕[1]

EAD_ERROR_SERVER〔Java言語〕[1]

EAD_ERROR_SERVER〔ユーザファンクション〕[1]

EAD_ERROR_UNEXPECTED〔C言語〕[1]

EAD_ERROR_UNEXPECTED〔Java言語〕[1]

EAD_ERROR_UNEXPECTED〔ユーザファンクション〕[1]

ead_execute_function_rt()[1]

ead_execute_function()[1]

ead_execute_node_function_rt()[1]

ead_execute_node_function()[1]

ead_failure_operation_info構造体[1]

ead_get_all_results構造体[1]

ead_get_all()[1]

ead_get_cache_name()[1]

ead_get_current_master_node()[1]

ead_get_group_count()[1]

ead_get_group_first_key()[1]

ead_get_group_key_count()[1]

ead_get_group_keys()[1]

ead_get_group_names()[1]

ead_get_group_next_key()[1]

ead_get_group_results構造体[1]

ead_get_group()[1]

ead_get_node_first_key()[1]

ead_get_node_key_count()[1]

ead_get_node_keys()[1]

ead_get_node_next_key()[1]

ead_get_node()[1]

ead_get_nodelist()[1]

ead_get_original_master_node()[1]

ead_get_slave_nodelist()[1]

ead_get()[1]

ead_group_names構造体[1]

ead_init_client_n()[1]

ead_init_client()[1]

ead_key_value_pair構造体[1]

ead_keys構造体[1]

ead_node_eventcontext構造体[1]

ead_node_eventlistener構造体[1]

ead_node_eventtype構造体[1]

ead_nodelist構造体[1]

ead_node構造体[1]

ead_object構造体[1]

EAD_OK〔C言語〕[1]

ead_put_all_results構造体[1]

ead_put_all()[1]

ead_put_array_value()[1]

ead_put()[1]

ead_remove_all_results構造体[1]

ead_remove_all()[1]

ead_remove_cluster_eventlistener()[1]

ead_remove_group()[1]

ead_remove_node_eventlistener()[1]

ead_remove_node()[1]

ead_remove()[1]

ead_replace()[1]

ead_start_cache()[1]

ead_stop_cache()[1]

ead_terminate_client()[1]

ead_update()[1]

ead_value_element構造体[1]

eads_[xxx]_[EADSサーバID].esd〔ファイル名〕[1]

eads_cache_stats_[n].csv〔ファイル名〕[1]

eads_cache_stats.csv〔ファイル名〕[1]

eads_cache.＜キャッシュ名＞.properties〔ファイル名〕[1]

eads_client_maintenance[n].log〔ファイル名〕[1]

eads_client_message[n].log〔ファイル名〕[1]

eads_cluster.properties〔ファイル名〕[1]

eads_command_exception.log〔ファイル名〕[1]

eads_command_exception[n].log〔ファイル名〕[1]

eads_command_maintenance[n].log〔ファイル名〕[1]

eads_command_message.log〔ファイル名〕[1]

eads_command_message[n].log〔ファイル名〕[1]

eads_command.properties〔ファイル名〕[1]

eads_data_[EADSサーバID]_[キャッシュ名]_[レンジID]_[nnnnn].ecf[1]

eads_dist_maintenance[n].log〔ファイル名〕[1]

eads_function_stats_[n].csv〔ファイル名〕[1]

eads_function_stats.csv〔ファイル名〕[1]

eads_index_[EADSサーバID]_[キャッシュ名]_[レンジID]_[nnnnn].ecf[1]

eads_info_[EADSサーバID]_[キャッシュ名].ecf〔ファイル名〕[1]

eads_maintenance_stats_[n].csv〔ファイル名〕[1]

eads_maintenance_stats.csv〔ファイル名〕[1]

eads_nonblocking_stats_[n].csv〔ファイル名〕[1]

eads_nonblocking_stats.csv〔ファイル名〕[1]

eads_server_cache.log〔ファイル名〕[1]

eads_server_cache[n].log〔ファイル名〕[1]

eads_server_exception.log〔ファイル名〕[1]

eads_server_exception[n].log〔ファイル名〕[1]

eads_server_maintenance[n].log〔ファイル名〕[1]

eads_server_message.log〔ファイル名〕[1]

eads_server_message[n].log〔ファイル名〕[1]

eads_server.properties〔ファイル名〕[1]

eads_shared.properties〔ファイル名〕[1]

eads_single_[xxx]_[EADSサーバID].esd〔ファイル名〕[1]

eads_stats_[n].csv〔ファイル名〕[1]

eads_stats.csv〔ファイル名〕[1]

eads_stop_[YYYYMMDDhhmmss]_[EADSサーバID].esd〔ファイル名〕[1]

eads_store_stats_[n].csv〔ファイル名〕[1]

eads_store_stats.csv〔ファイル名〕[1]

eads_user_exception.log〔ファイル名〕[1]

eads_user_exception[n].log〔ファイル名〕[1]

eads_user_message.log〔ファイル名〕[1]

eads_user_message[n].log〔ファイル名〕[1]

eads.admin.backup.dir[1]

eads.admin.backup.exportCommand.generation.maxNum[1]

eads.admin.backup.stopCommand.generation.maxNum[1]

eads.admin.boot.timeout[1]

eads.admin.operation.connection.timeout[1]

eads.admin.operation.isolate.gracefulstop.waitTime[1]

eads.admin.operation.port[1]

eads.admin.operation.resume.send.datasize[1]

eads.admin.operation.resume.send.interval[1]

eads.cache.disk.<n>.dir[1]

eads.cache.disk.blocksize[1]

eads.cache.disk.filenum[1]

eads.cache.disk.filesize[1]

eads.cache.disk.getError.isolate.enable[1]

eads.cache.disk.highSpecDrive.enable[1]

eads.cache.disk.info.dir[1]

eads.cache.disk.persistentMemory.blocksize[1]

eads.cache.disk.persistentMemory.device[1]

eads.cache.disk.persistentMemory.enable[1]

eads.cache.disk.transfer.datasize[1]

eads.cache.disk.transfer.interval[1]

eads.cache.eviction.keyCount[1]

eads.cache.eviction.policy[1]

eads.cache.key.maxsize[1]

eads.cache.keyCount[1]

eads.cache.limiter.enable[1]

eads.cache.logger.diskCache.filenum[1]

eads.cache.logger.diskCache.filesize[1]

eads.cache.logger.diskCache.rotationStyle[1]

eads.cache.type[1]

eads.client.＜接続先EADSサーバ＞.address[1]

eads.client.＜接続先EADSサーバ＞.port[1]

eads.client.batchOperation.unit[1]

eads.client.clusterInfo.update.interval[1]

eads.client.compat[1]

eads.client.connect.servers[1]

eads.client.connection.buffersize[1]

eads.client.connection.receive.timeout[1]

eads.client.connection.send.timeout[1]

eads.client.connectionPool.exceedMaxSizeError.enable[1]

eads.client.connectionPool.poolsize[1]

eads.client.eventListener.enable[1]

eads.client.eventListener.reconnect.interval[1]

eads.client.logger.dir[1]

eads.client.logger.initErrorOut[1]

eads.client.logger.maintenance.filenum[1]

eads.client.logger.maintenance.filesize[1]

eads.client.logger.message.console.enable[1]

eads.client.logger.message.filenum[1]

eads.client.logger.message.filesize[1]

eads.command.＜サブコマンド名＞.execution.timeout[1]

eads.command.＜サブコマンド名＞.read.timeout[1]

eads.command.＜接続先EADSサーバ＞.address[1]

eads.command.＜接続先EADSサーバ＞.admin.operation.port[1]

eads.command.common.execution.timeout[1]

eads.command.common.read.timeout[1]

eads.command.compaction.effect.division[1]

eads.command.compaction.effect.threshold[1]

eads.command.compat[1]

eads.command.connect.sub.servers[1]

eads.command.connection.timeout[1]

eads.command.logger.dir[1]

eads.command.logger.exception.filenum[1]

eads.command.logger.exception.filesize[1]

eads.command.logger.exception.rotationStyle[1]

eads.command.logger.message.filenum[1]

eads.command.logger.message.filesize[1]

eads.command.logger.message.rotationStyle[1]

eads.failureDetector.assertive.threshold[1]

eads.failureDetector.connection.timeout[1]

eads.failureDetector.heartbeat.address[1]

eads.failureDetector.heartbeat.interval[1]

eads.failureDetector.heartbeat.port[1]

eads.failureDetector.heartbeat.timeout[1]

eads.failureDetector.port[1]

eads.failureDetector.read.timeout[1]

eads.failureDetector.retry[1]

eads.function.＜ユーザファンクション名＞.maxExecuteThreads[1]

eads.java.external.heapsize[1]

eads.java.heapsize[1]

eads.java.log.filenum[1]

eads.java.log.filesize[1]

eads.java.metaspace.maxsize[1]

eads.java.nio.maxCachedBufferSize[1]

eads.logger.dir[1]

eads.logger.exception.filenum[1]

eads.logger.exception.filesize[1]

eads.logger.exception.rotationStyle[1]

eads.logger.message.console.enable[1]

eads.logger.message.filenum[1]

eads.logger.message.filesize[1]

eads.logger.message.rotationStyle[1]

eads.node.＜EADSサーバID＞.address[1]

eads.node.＜EADSサーバID＞.port[1]

eads.node.＜EADSサーバID＞.position[1]

eads.rebalance.transfer.datasize[1]

eads.rebalance.transfer.interval[1]

eads.replication.connection.buffersize[1]

eads.replication.consensus.timeout[1]

eads.replication.external.heapsize[1]

eads.replication.factor[1]

eads.replication.fillgap.copy.datasize[1]

eads.replication.fillgap.copy.timeout[1]

eads.replication.port[1]

eads.replication.preparations[1]

eads.replication.sendQueue.datasize[1]

eads.replication.sendQueue.length[1]

eads.scaling.eviction.targetKeyCount[1]

eads.scaling.moveData.interval[1]

eads.scaling.moveDataWithUpdateRequest.enable[1]

eads.scaling.requestQueuing.enable[1]

eads.server.address[1]

eads.server.cache.maxExecuteThreads[1]

eads.server.connection.buffersize[1]

eads.server.connection.keepAlive.timeout[1]

eads.server.connection.timeout[1]

eads.server.eventListener.notify.retry.timeout[1]

eads.server.function.maxExecuteThreads[1]

eads.server.maxConnections[1]

eads.server.nonBlocking.enable[1]

eads.server.nonBlocking.external.heapsize[1]、[2]

eads.server.nonBlocking.maxAllocateConnections[1]

eads.server.nonBlocking.processorThreads[1]、[2]

eads.server.nonBlocking.selectorThreads[1]

eads.server.port[1]

eads.statistics.compaction.effect.division[1]

eads.statistics.filenum[1]

eads.statistics.interval[1]

eads.statistics.nonBlocking.enable[1]

eads.transfer.connection.buffersize[1]

eads.transfer.datasize[1]

eads.transfer.interval[1]

eads.transfer.port[1]

eads.transfer.timeout[1]

eads.user.logger.exception.filenum[1]

eads.user.logger.exception.filesize[1]

eads.user.logger.exception.rotationStyle[1]

eads.user.logger.filenum[1]

eads.user.logger.filesize[1]

eads.user.logger.rotationStyle[1]

EADsStoreExceptionクラス[1]

EADSクライアント[1]

EADSクライアント〔用語解説〕[1]

EADSサーバ[1]

EADSサーバID指定グループ[1]

EADSサーバの開始[1]

EADSサーバの強制終了[1]

EADSサーバの縮退[1]

EADSサーバの縮退処理[1]

EADSサーバのフォアグラウンドでの開始[1]

EADSサーバ〔用語解説〕[1]

EADSサーバを開始する

キャッシュを新規に作成する[1]

ファイルからデータを読み込んでキャッシュを作成する[1]

EADSサーバを終了する

メモリ上のデータを破棄する[1]

メモリ上のデータをファイルに書き出す[1]

ehjavalog[nn].log〔ファイル名〕[1]

equals()〔Groupインタフェース〕[1]

equals()〔Keyインタフェース〕[1]

equals()〔Valueインタフェース〕[1]

execfunc[1]

execute()〔Functionインタフェース〕[1]

executeFunction()（EADSサーバおよび受信タイムアウト指定）〔Cacheクラス〕[1]

executeFunction()（EADSサーバ指定）〔Cacheクラス〕[1]

executeFunction()（keyまたはグループ，および受信タイムアウト指定）〔Cacheクラス〕[1]

executeFunction()（keyまたはグループ指定）〔Cacheクラス〕[1]

Explicitヒープ[1]

export[1]

exportecf（キャッシュファイルの書き出し）[1]

ezserver[1]

ezstart[1]

eztool[1]

eztoolコマンドのサブコマンド[1]

F

FailureOperationInfoクラス[1]

firstKey()〔Groupインタフェース〕[1]

FunctionContextインタフェース[1]

Functionインタフェース[1]

G

get[1]

get()（Keyインタフェース指定）〔Groupインタフェース〕[1]

get()（文字列指定）〔Groupインタフェース〕[1]

get()〔Cacheクラス〕[1]

get()〔Storeインタフェース〕[1]

getAddress()〔Nodeクラス〕[1]

getAddress()〔ServerInfoインタフェース〕[1]

getAll()（Set指定）〔Cacheクラス〕[1]

getAll()（グループ指定）〔Cacheクラス〕[1]

getArgument()〔FunctionContextインタフェース〕[1]

getCache()〔CacheManagerクラス〕[1]

getCacheDataFileRemainingSize()〔ServerInfoインタフェース〕[1]

getCacheDataFileSize()〔CacheInfoインタフェース〕[1]

getCacheDataFilesNumber()〔CacheInfoインタフェース〕[1]

getCacheDataFileSpecifiedNumber()〔ServerInfoインタフェース〕[1]

getCacheDataFileSpecifiedSize()〔ServerInfoインタフェース〕[1]

getCacheDataFileUnusedNumber()〔ServerInfoインタフェース〕[1]

getCacheInfo()〔ClusterInfoインタフェース〕[1]

getCacheName()〔ClientInfoインタフェース〕[1]

getCacheName()〔FunctionContextインタフェース〕[1]

getCacheNames()〔ClusterInfoインタフェース〕[1]

getCacheNames()〔ServerInfoインタフェース〕[1]

getCacheType()〔ServerInfoインタフェース〕[1]

getClientInfo()〔FunctionContextインタフェース〕[1]

getClusterEventType()〔ClusterEventContextインタフェース〕[1]

getClusterInfo()〔FunctionContextインタフェース〕[1]

getCurrentMasterNode()〔CacheManagerクラス〕[1]

getDiskUsageSize()（Groupインタフェース指定）〔Storeインタフェース〕[1]

getDiskUsageSize()（Keyインタフェース指定）〔Storeインタフェース〕[1]

getEHeapSize()〔ServerInfoインタフェース〕[1]

getEHeapUsageSize()（Groupインタフェース指定）〔Storeインタフェース〕[1]

getEHeapUsageSize()（Keyインタフェース指定）〔Storeインタフェース〕[1]

getEHeapUsageSize()〔ServerInfoインタフェース〕[1]

getErrorCode()〔CacheExceptionクラス〕[1]

getErrorCode()〔EADsStoreExceptionクラス〕[1]

getErrorCode()〔FailureOperationInfoクラス〕[1]

getException()〔FailureOperationInfoクラス〕[1]

getFailureOperationInfo()〔BatchOperationExceptionクラス〕[1]

getFirstKey()（EADSサーバ指定）〔Cacheクラス〕[1]

getFirstKey()（グループ指定）〔Cacheクラス〕[1]

getFunctionArgument()〔ClientInfoインタフェース〕[1]

getFunctionName()〔InitConfigインタフェース〕[1]

getFunctionProperty()〔InitConfigインタフェース〕[1]

getFunctionPropertyNames()〔InitConfigインタフェース〕[1]

getGroup()（グループ名指定）〔Storeインタフェース〕[1]

getGroup()〔Storeインタフェース〕[1]

getGroupCount()〔Cacheクラス〕[1]

getGroupCount()〔Groupインタフェース〕[1]

getGroupCount()〔Storeインタフェース〕[1]

getGroupLayerNames()〔Groupインタフェース〕[1]

getGroupName()〔FunctionContextインタフェース〕[1]

getGroupNames()〔Groupインタフェース〕[1]

getGroupNames()〔Storeインタフェース〕[1]

getGroupNameSet()〔Cacheクラス〕[1]

getGroupNameSet()〔Groupインタフェース〕[1]

getGroupNameSet()〔Storeインタフェース〕[1]

getId()〔ServerInfoインタフェース〕[1]

getInitConfig()〔FunctionContextインタフェース〕[1]

getIp()〔ClientInfoインタフェース〕[1]

getKey()〔FailureOperationInfoクラス〕[1]

getKeyCount()（EADSサーバ指定）〔Cacheクラス〕[1]

getKeyCount()（グループ指定）〔Cacheクラス〕[1]

getKeyCount()〔Groupインタフェース〕[1]

getKeyCount()〔Storeインタフェース〕[1]

getKeyOrGroupName()〔ClientInfoインタフェース〕[1]

getKeySet()（EADSサーバ指定）〔Cacheクラス〕[1]

getKeySet()（グループ指定）〔Cacheクラス〕[1]

getLastUpdateTime()（Keyインタフェース指定）〔Groupインタフェース〕[1]

getLastUpdateTime()（文字列指定）〔Groupインタフェース〕[1]

getLastUpdateTime()〔Storeインタフェース〕[1]

getLocalRangeId()〔ClusterInfoインタフェース〕[1]

getLogger()〔FunctionContextインタフェース〕[1]

getName()〔Cacheクラス〕[1]

getName()〔ServerInfoインタフェース〕[1]

getNextKey()（EADSサーバおよびkey指定）〔Cacheクラス〕[1]

getNextKey()（グループおよびkey指定）〔Cacheクラス〕[1]

getNode()〔CacheManagerクラス〕[1]

getNode()〔ClusterEventContextインタフェース〕[1]

getNodeEventType()〔NodeEventContextインタフェース〕[1]

getNodeId()〔Nodeクラス〕[1]

getNodeId()〔NodeEventContextインタフェース[1]

getNodeList()〔CacheManagerクラス〕[1]

getObject()〔Valueインタフェース〕[1]

getOriginalMasterNode()〔CacheManagerクラス〕[1]

getPid()〔ClientInfoインタフェース〕[1]

getposition[1]

getPosition()〔ClusterInfoインタフェース〕[1]

getPosition()〔Groupインタフェース〕[1]

getPosition()〔Keyインタフェース〕[1]

getPosition()〔Nodeクラス〕[1]

getRangeId()（keyまたはグループ名指定）〔ClusterInfoインタフェース〕[1]

getRangeId()（ポジション指定）〔ClusterInfoインタフェース〕[1]

getRangeId()〔NodeEventContextインタフェース〕[1]

getRemainingAreaSizeOfWritingCacheDataFile()〔CacheInfoインタフェース〕[1]

getRemainingCacheDataFilesNumber()〔CacheInfoインタフェース〕[1]

getReplicationFactor()〔ClusterInfoインタフェース〕[1]

getServerInfo()〔FunctionContextインタフェース〕[1]

getServerName()〔FunctionContextインタフェース〕[1]

getSlaveNodeList()〔CacheManagerクラス〕[1]

getStore()（キャッシュ名指定）〔FunctionContextインタフェース〕[1]

getStore()〔FunctionContextインタフェース〕[1]

getSuccessOperationNumber()〔BatchOperationExceptionクラス〕[1]

getType()〔CacheInfoインタフェース〕[1]

getValueUsageSize()（Keyインタフェース指定）〔Groupインタフェース〕[1]

getValueUsageSize()（文字列指定）〔Groupインタフェース〕[1]

getValueUsageSize()〔Groupインタフェース〕[1]

get〔サブコマンド〕[1]

Groupインタフェース[1]

H

higherKeyIterator()〔Groupインタフェース〕[1]

I

import[1]

importecf[1]

init()〔Functionインタフェース〕[1]

InitConfigインタフェース[1]

InitializeExceptionクラス[1]

InternalClientExceptionクラス[1]

InternalServerExceptionクラス[1]、[2]

isEnable()〔Nodeクラス〕[1]

isLocalMasterRange()〔ClusterInfoインタフェース〕[1]

isLocalRange()〔ClusterInfoインタフェース〕[1]

isolate[1]

J

javacore[PID].[YYMMDDhhmmss].txt〔ファイル名〕[1]

javalog[nn].log〔ファイル名〕[1]

Javaヒープ[1]

Javaログファイル[1]

K

keyIterator()（Keyインタフェース指定）〔Groupインタフェース〕[1]

keyIterator()〔Groupインタフェース〕[1]

Keyインタフェース[1]

keyの一覧表示[1]

L

lastKey()〔Groupインタフェース〕[1]

listcache[1]

listconf[1]

listecf[1]

listesd[1]

listfunc[1]

listgroup[1]

listkey[1]

log()（形式1）〔UserLoggerインタフェース〕[1]

log()（形式2）〔UserLoggerインタフェース〕[1]

lowerDescendingKeyIterator()〔Groupインタフェース〕[1]

N

NodeEventContextインタフェース[1]

NodeEventListenerインタフェース[1]

Nodeクラス[1]

O

onEvent()〔ClusterEventListenerインタフェース[1]

onEvent()〔NodeEventListenerインタフェース〕[1]

open[1]

P

PartFailureExceptionクラス[1]

put[1]

put()（Keyインタフェース指定）〔Groupインタフェース〕[1]

put()（文字列指定）〔Groupインタフェース〕[1]

put()〔Cacheクラス〕[1]

put()〔Storeインタフェース〕[1]

putAll()〔Cacheクラス〕[1]

putStackTrace()（形式1）〔UserLoggerインタフェース〕[1]

putStackTrace()（形式2）〔UserLoggerインタフェース〕[1]

put〔サブコマンド〕[1]

putとreplaceの違い[1]

R

rebalance[1]

remove[1]

remove()（Keyインタフェース指定）〔Groupインタフェース〕[1]

remove()（文字列指定）〔Groupインタフェース〕[1]

remove()〔Cacheクラス〕[1]

remove()〔Storeインタフェース〕[1]

removeAll()（EADSサーバ指定）〔Cacheクラス〕[1]

removeAll()（Set指定）〔Cacheクラス〕[1]

removeAll()（グループ指定）〔Cacheクラス〕[1]

removeall〔サブコマンド〕[1]

removeCache()〔CacheManagerクラス〕[1]

removeClusterEventListener()〔CacheManagerクラス〕[1]

removeNodeEventListener()〔CacheManagerクラス〕[1]

remove〔サブコマンド〕[1]

replace[1]

replace()（Keyインタフェース指定）〔Groupインタフェース〕[1]

replace()（文字列指定）〔Groupインタフェース〕[1]

replace()〔Cacheクラス〕[1]

replace()〔Storeインタフェース〕[1]

resume[1]

S

ServerCommunicationExceptionクラス[1]

ServerInfoインタフェース[1]

size()〔Valueインタフェース〕[1]

snapshot[1]

status[1]

stop[1]

storeusage[1]

Storeインタフェース[1]

T

threaddump[1]

toString()〔Groupインタフェース〕[1]

toString()〔Keyインタフェース〕[1]

toString()〔Nodeクラス〕[1]

toString()〔Valueインタフェース〕[1]

U

unlock[1]

update[1]

update()（Keyインタフェース指定）〔Groupインタフェース〕[1]

update()（文字列指定）〔Groupインタフェース〕[1]

update()〔Cacheクラス〕[1]

update()〔Storeインタフェース〕[1]

UserLoggerインタフェース[1]

UserOperationExceptionクラス[1]、[2]

V

Valueインタフェース[1]

い

イベントリスナ[1]

イベントリスナ〔用語解説〕[1]

う

運用ディレクトリ[1]

え

永続データに関する情報の一覧表示[1]

永続データの再配置[1]

か

稼働状態[1]

環境依存パラメタ[1]

き

起動シェル[1]

起動ログファイル[1]

キャッシュ[1]

キャッシュインデックスファイル[1]

キャッシュ情報ファイル[1]

キャッシュ定義ファイル[1]

キャッシュデータファイル[1]

キャッシュデータファイルのコンパクション[1]

キャッシュの一覧表示[1]

キャッシュの一覧を表示する[1]

キャッシュの再開[1]

キャッシュの削除[1]

キャッシュの作成[1]

キャッシュファイル[1]

キャッシュファイル操作ログファイル[1]

キャッシュファイルの削除[1]

キャッシュ〔用語解説〕[1]

共通設定ファイル[1]

く

クライアント定義ファイル[1]

クラスタ[1]

クラスタ一部稼働中[1]

クラスタイベントリスナ[1]

クラスタおよびEADSサーバの状態を確認する[1]

クラスタ稼働中[1]

クラスタ構成情報[1]

クラスタ参加[1]

クラスタ参加予定[1]

クラスタ状態の確認[1]

クラスタ定義ファイル[1]

クラスタ動作不能[1]

クラスタの運用操作[1]

クラスタの終了[1]

クラスタのスケールアウト処理[1]

クラスタの復旧処理[1]

クラスタの閉塞[1]

クラスタの閉塞解除[1]

クラスタのリバランス処理[1]

クラスタ不参加[1]

クラスタへの参加状況[1]

クラスタ〔用語解説〕[1]

グループ階層名[1]

グループ名[1]

グループ名の一覧表示[1]

こ

合意メッセージ[1]

更新操作の履歴[1]

更新操作の履歴の補完処理[1]

コネクションプール[1]

コマンド定義ファイル[1]

コンパクション[1]

さ

サーバ定義ファイル[1]

最新パラメタの一覧表示[1]

サマリ〔実行結果を表示するeztoolコマンドのサブコマンド〕[1]

し

指定したデータの格納[1]

指定したデータの削除[1]

指定したデータの取得[1]

シフト方式[1]

縮退状態[1]

障害発生時の対処[1]

障害情報の取得方法[1]

初期化状態[1]

初期化中[1]

す

スケールアウト処理[1]

スケールアウト処理〔用語解説〕[1]

ストアデータファイル[1]

ストアデータファイルキー[1]

ストアデータファイルの一覧表示[1]

ストアデータファイルの削除[1]

スレッドダンプ[1]

スレッドダンプの出力[1]

スレッドダンプの取得方法[1]

スレッドプール[1]

せ

生存確認[1]

生存確認〔用語解説〕[1]

全データの削除[1]

た

滞留中I/Oデータ流量制御[1]

ち

チューニングパラメタ[1]

つ

追加中[1]

て

定義ファイル（EADSクライアント）[1]

定義ファイル（EADSサーバ）[1]

停止状態[1]

停止中[1]

ディスクキャッシュ[1]

ディスクキャッシュ〔用語解説〕[1]

ディレクトリ構成〔EADSクライアント〕[1]

ディレクトリ構成〔EADSサーバ〕[1]

データ自動削除機能[1]

データ自動削除機能の運用[1]

データ総量監視機能[1]

データの書き出し[1]

データの格納先の表示[1]

データの多重化[1]

データの読み込み[1]

と

統計情報ファイル[1]

の

ノードイベントリスナ[1]

ノンブロッキングI/O通信制御[1]

ノンブロッキングI/O通信制御の設定[1]

ノンブロッキングI/O通信バッファ[1]

は

ハートビート[1]

ハートビート〔用語解説〕[1]

排他解除[1]

排他制御[1]

ふ

ファンクション定義ファイル[1]

不揮発性メモリ〔用語解説〕[1]

復旧中[1]

ブロッキングI/O通信制御[1]、[2]

分散保守ログファイル[1]

へ

閉塞状態[1]

閉塞中[1]

ヘッダ〔実行結果を表示するeztoolコマンドのサブコマンド〕[1]

ほ

保守ログファイル[1]

ボディ〔実行結果を表示するeztoolコマンドのサブコマンド〕[1]

め

メイン〔実行結果を表示するeztoolコマンドのサブコマンド〕[1]

メッセージログファイル[1]

メモリキャッシュ[1]

メモリキャッシュ〔用語解説〕[1]

メモリ構成[1]

ゆ

ユーザファンクション[1]

ユーザファンクションの実行[1]

ユーザファンクションの実行可否の表示[1]

ユーザファンクション〔用語解説〕[1]

ユーザ例外ログファイル[1]

ユーザログファイル[1]

よ

要素名[1]

ら

ラップアラウンド方式[1]

り

リクエスト・キューイング[1]

リバランス処理[1]

リバランス処理〔用語解説〕[1]

れ

例外ログファイル[1]

レスポンス低下

原因の調査方法[1]

障害情報の取得[1]

列挙型CacheType[1]

列挙型ClusterEventType[1]

列挙型NodeEventType[1]

レンジ[1]

レンジおよびキャッシュの使用状況の確認[1]

ろ

ログ，設定情報，ハードウェア情報，およびネットワーク情報の収集[1]