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

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

3020-3-V21-40

前書き

対象製品

●適用OS：Red Hat Enterprise Linux 5（AMD/Intel 64），Red Hat Enterprise Linux 5 Advanced Platform（AMD/Intel 64），Red Hat Enterprise Linux Server 6（64-bit x86_64）

P-9W43-8A31 uCosminexus Elastic Application Data store 03-60

P-9W43-8B31 uCosminexus Elastic Application Data store Client for Java 03-60

P-9W43-8C31 uCosminexus Elastic Application Data store Client for C 03-60

●適用OS：Windows Server 2008 x86，Windows Server 2008 x64，Windows Server 2008 R2，Windows Server 2012

P-2443-8B34 uCosminexus Elastic Application Data store Client for Java 03-60※

●適用OS：Windows 7 x86，Windows 7 x64，Windows 8 x86，Windows 8 x64

P-2443-8B34 uCosminexus Elastic Application Data store Client for Java 03-60※

P-2443-8D34 uCosminexus Elastic Application Data store Developer 03-60※

注※　このプログラムプロダクトについては，出荷時期をご確認ください。

輸出時の注意

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

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

商標類

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

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

Intelは，アメリカ合衆国およびその他の国におけるIntel Corporationの商標です。

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

Microsoftは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。

MicrosoftおよびWindows Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。

OracleとJavaは，Oracle Corporation 及びその子会社，関連会社の米国及びその他の国における登録商標です。

Red Hatは，米国およびその他の国でRed Hat, Inc.の登録商標もしくは商標です。

RSAは，EMC Corporationの米国およびその他の国における登録商標または商標です。

Windowsは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。

本製品は，米国EMC コーポレーションのRSA BSAFE(R) ソフトウェアを搭載しています。

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.

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

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

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

「http://www.hitachi.co.jp/Prod/comp/soft1/manual/common/cosmi/v9/index.html」

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

マイクロソフト製品の表記について

このマニュアルでは，マイクロソフト製品の名称を次のように表記しています。

表記

製品名

Windows

Windows 7 x86

Microsoft(R) Windows(R) 7 Professional 日本語版(32ビット版)

Microsoft(R) Windows(R) 7 Enterprise 日本語版(32ビット版)

Microsoft(R) Windows(R) 7 Ultimate 日本語版(32ビット版)

Windows 7 x64

Microsoft(R) Windows(R) 7 Professional 日本語版(64ビット版)

Microsoft(R) Windows(R) 7 Enterprise 日本語版(64ビット版)

Microsoft(R) Windows(R) 7 Ultimate 日本語版(64ビット版)

Windows 8 x86

Windows(R) 8 Pro 日本語版(32ビット版)

Windows(R) 8 Enterprise 日本語版(32ビット版)

Windows 8 x64

Windows(R) 8 Pro 日本語版(64ビット版)

Windows(R) 8 Enterprise 日本語版(64ビット版)

Windows Server 2008 x86

Microsoft(R) Windows Server(R) 2008 Standard 32-bit 日本語版

Microsoft(R) Windows Server(R) 2008 Enterprise 32-bit 日本語版

Windows Server 2008 x64

Microsoft(R) Windows Server(R) 2008 Standard 日本語版

Microsoft(R) Windows Server(R) 2008 Enterprise 日本語版

Windows Server 2008 R2

Microsoft(R) Windows Server(R) 2008 R2 Standard 日本語版

Microsoft(R) Windows Server(R) 2008 R2 Enterprise 日本語版

Windows Server 2012

Microsoft(R) Windows Server(R) 2012 Standard 日本語版

Microsoft(R) Windows Server(R) 2012 Datacenter 日本語版

発行

2014年 7月　3020-3-V21-40

著作権

All Rights Reserved. Copyright (C) 2012, 2014, Hitachi, Ltd.

変更内容

変更内容（3020-3-V21-40）　uCosminexus Elastic Application Data store 03-60

追加・変更内容

変更個所

キャッシュのデータをディスク上で管理できるようにしました。

次の2種類のキャッシュを作成できるようにしました。

ディスクキャッシュ

2Wayキャッシュ

1.3，1.3.5，2.3.1，14.3.4(4)(c)，14.3.4(5)，14.3.9(1)

次のリソースを見積もる計算式および説明を変更しました。

Javaヒープサイズ

Explicitヒープサイズ

1EADsサーバプロセス当たりのファイルディスクリプタ数

4.1.2，4.1.3(1)，4.3.2(1)，9.1.1

ディスク上にキャッシュを作成した場合に出力されるファイル（キャッシュファイル）の見積もりを追加しました。

4.2.1，4.4

EADsサーバおよびDeveloperのディレクトリ構成の説明を変更しました。

5.1.3(1)，16.2.2(1)

定義ファイルにキャッシュ定義ファイルを追加しました。

5.2.2，7.1，7.7，11.3.1(2)，11.3.2，14.3.9(4)(a)，14.3.9(6)，14.3.10(4)(a)，14.3.14(4)(a)，14.3.15(4)(a)，14.3.16(4)(a)，14.3.18(4)(c)，23.1.1(5)，付録B.5

ログファイルの種類に，キャッシュファイル操作ログファイルを追加しました。

これに伴い，サーバ定義に次のパラメタを追加しました。

eads.logger.cache.rotationStyle

eads.logger.cache.filesize

eads.logger.cache.filenum

7.4.1，7.4.2，7.4.5，23.1.1(1)，付録B.1

統計情報に，キャッシュの統計情報を追加しました。

7.4.2，11.10，11.10.3

キャッシュデータファイルを最適化（コンパクション）できるようにしました。これに伴い，eztoolコマンドにcompactionサブコマンドを追加しました。

また，サーバ定義に次のパラメタを追加しました。

eads.statistics.compaction.effect.division

また，コマンド定義に次のパラメタを追加しました。

eads.management.compaction.effect.threshold

eads.management.compaction.effect.division

7.4.5，9.4，10.9，12.2.2(2)，14.3，14.3.1，14.3.4(5)，14.3.24，23.1.1(1)，23.1.1(4)，23.2

サーバ定義にeads.cache.disk.getError.isolate.enableパラメタを追加しました。

7.7.4，23.1.1(1)，付録B.1

ディスク上のキャッシュを再開できるようにしました。これに伴い，eztoolコマンドにresumeサブコマンドを追加しました。

また，サーバ定義に次のパラメタを追加しました。

eads.management.resume.sendSize

eads.management.resume.sendInterval

9.1.3，9.3.3，10.3，10.3.2，12.2.2(2)，14.3，14.3.1，14.3.4(5)，14.3.21，23.1.1(1)，23.2，付録B.1

サーバ定義の次のパラメタに，ディスク上のキャッシュの場合の説明を追加しました。

eads.restore.dataSender.sendSize

eads.restore.dataSender.sendInterval

9.1.3(1)(h)，9.3.3(1)(n)

ディスク上のデータを再配置できるようにしました。これに伴い，eztoolコマンドにimportecfサブコマンドを追加しました。

9.1.3(2)(a)，11.1.2，11.2.2，14.3，14.3.1，14.3.4(5)，14.3.22，23.2

コマンドの追加および仕様変更に伴い，コマンド定義の次のパラメタの説明を変更しました。

eads.management.long_running.read.timeout

eads.management.long_running.command.timeout

9.3.2(3)，9.3.3(2)(d)，9.3.3(2)(e)，14.2.3(4)(b)，23.1.1(4)

ディスク上にキャッシュを作成する手順を追加しました。

10.2.2

ディスク上のキャッシュを終了する手順を追加しました。

10.6

キャッシュファイルを削除できるようにしました。これに伴い，eztoolコマンドにdeleteecfサブコマンドを追加しました。

11.2.2，11.4.2，11.11，12.2.1(5)，12.2.2(2)，14.3，14.3.1，14.3.4(5)，14.3.9(6)，14.3.23，23.2

永続データに関する情報の一覧を出力できるようにしました。これに伴い，eztoolコマンドにlistecfサブコマンドを追加しました。

11.4.2，11.11，14.3，14.3.1，14.3.9(6)，14.3.20，23.2

キャッシュと同時にキャッシュファイルを削除できるようにしました。これに伴い，eztoolコマンドのdeletechacheサブコマンドに，--with_deleteecfオプションを追加しました。

11.4.2，14.3.10

キャッシュのデータをディスク上で管理できるようになったことに伴い，ユーザファンクションで使用できる次のAPIを追加しました。

ServerInfoインタフェースの次のメソッド

・getCacheType()

・getCacheDataFileSpecifiedSize()

・getCacheDataFileRemainingSize()

・getCacheDataFileSpecifiedNumber()

・getCacheDataFileUnusedNumber()

列挙型CacheType

また，ServerInfoインタフェースの使用例を追加しました。

20.2，20.2.5(3)，20.2.5(7)，20.2.5(10)，20.2.5(11)，20.2.5(12)，20.2.5(13)，20.2.5(14)，20.2.13，23.3.1(2)

ユーザファンクションで使用できる次のAPIに，valueをメモリに格納しないキャッシュの説明を追加しました。

Groupインタフェースの次のメソッド

・getValueUsageSize()（文字列指定）

・getValueUsageSize()（Keyインタフェース指定）

・getValueUsageSize()

20.2.7(23)(d)，20.2.7(24)(d)，20.2.7(25)(c)

eztoolコマンドのstatusサブコマンドで，次の内容が表示されるようにしました。

EADsサーバID

5.3.2(2)，10.2.1(2)，10.2.1(6)，10.3.1(2)，10.3.1(6)，10.4.1(2)，10.5.1(2)，10.7，11.4.1(2)，11.4.1(6)，11.5.1(2)，11.5.1(6)，11.9.1(5)，14.3.4

サーバ定義のeads.statistics.enableパラメタを削除しました。

これに伴い，サーバ定義の次のパラメタの説明を変更しました。

eads.statistics.interval

eads.statistics.backupnum

また，次のパラメタをDeveloperで使用するサーバ定義に追加しました。

eads.statistics.interval

eads.statistics.backupnum

7.4.5，23.1.1(1)，付録B.1

起動設定のeads.java.external.heapsizeパラメタの最小値，および見積もりの計算式を変更しました。これに伴い，サーバ定義のeads.consensus.external.heapsizeパラメタの説明を変更しました。

9.1.3

eztoolコマンドのlistcacheサブコマンドで，次の項目が表示されるようにしました。

CacheType

TotalMasterKeyCount

10.2.1(4)，10.3.1(4)，10.8，11.4.1(4)，14.3.5

eztoolコマンドのlistcacheサブコマンドの-vまたは--verboseオプションを指定することで，コマンドの実行結果の詳細として，次の項目を表示できるようにしました。

Server

MasterKeyCount

10.8，14.3.5

eztoolコマンドのsnapshotサブコマンドで収集するファイルを追加しました。

14.3，14.3.27，16.6.1，23.2

eztoolコマンドのexportサブコマンドに-sまたは--singleオプションを指定したときの説明を追加しました。

14.3.11(4)(a)

eztoolコマンドのsnapshotサブコマンドに-sdまたは--safedumpオプションを指定した場合に，コマンドを実行できる条件の説明を変更しました。

14.3.27(2)

Developer用EADsクライアントの，サンプルプログラムの格納先のパスを変更しました。

16.4.2

Java言語のクライアントライブラリが出力する次のエラーコードの説明を追加しました。

4000

20.1.4(5)(c)

ユーザファンクションから複数のキャッシュを操作できるようにしました。

これに伴い，ユーザファンクションで使用できる次のAPIを追加しました。

FunctionContextインタフェースのgetStore()（キャッシュ名指定）

ServerInfoインタフェースのgetCacheNames()

20.2.2(3)，20.2.2(9)，20.2.5(3)，20.2.5(6)

指定したkeyが格納済みかどうかを確認できるようにしました。

これに伴い，ユーザファンクションで使用できる次のAPIを追加しました。

StoreインタフェースのcontainsKey()

20.2.6(3)，20.2.6(7)

ユーザファンクションが出力する次のエラーコードを追加しました。

1130

1140

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

4000

20.2.10(5)(c)

C言語のクライアントライブラリが出力する次のエラーコードの説明を追加しました。

4000

22.2

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

1レンジ当たりのキャッシュデータファイルのサイズ

1レンジ当たりのキャッシュデータファイルのファイル数

1キャッシュデータファイルに格納できるデータ数

次の項目をEADsの最大値・最小値の一覧から削除しました。

1EADsサーバ当たりの，Explicitヒープのサイズ

ユーザファンクション数

ユーザイベントハンドラ数

次の項目の最小値を0から1に変更しました。

グループ数

グループの階層数

また，グループの階層数の最大値を「制限なし」から511に変更しました。

23.5

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

KDEA01901-I〜KDEA01903-I，KDEA07101-E，KDEA07104-E，KDEA07106-E，KDEA07107-E〜KDEA07113-E，KDEA07115-E〜KDEA07117-E，KDEA07120-E〜KDEA07128-E，KDEA08059-I〜KDEA08068-E，KDEA08070-E〜KDEA08079-I，KDEA08414-W，KDEA08585-E〜KDEA08589-E，KDEA08591-I〜KDEA08598-I

24.2，24.6，24.7

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

KDEA00058-E，KDEA04692-I，KDEA04696-E，KDEA04805-E，KDEA04808-E，KDEA08026-W，KDEA08032-E，KDEA08530-E

24.2，24.5，24.7

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

はじめに

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

対象読者

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

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

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

Linuxに関する基本的な知識

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

このマニュアルでの表記

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

表記

製品名またはJava関連用語

EADs

EADsサーバ

uCosminexus Elastic Application Data store

EADsクライアント

EADsクライアント（Java）

uCosminexus Elastic Application Data store Client for Java

EADsクライアント（C）

uCosminexus Elastic Application Data store Client for C

Developer

uCosminexus Elastic Application Data store Developer

JavaVM

Java Virtual Machine

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

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

英字での表記

英略語

Application Program

AP

Application Programming Interface

API

Key-Value store

KVS

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

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

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

記号

意味

例

［　］

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

eztool status ［-v|--verbose］

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

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

構文要素記号

意味

＜文字列＞

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

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

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

第1編　解説

1　uCosminexus Elastic Application Data storeとは

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

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

uCosminexus 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では，複数のサーバをグループとして管理します。このグループをクラスタと呼びます。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では基本的にメモリ領域でデータを管理しますが，データを永続化するために，メモリ領域とディスク領域を併用したり，ディスク領域だけでデータを管理したりすることもできます。

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

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編から構成されます。

解説

設計・構築

運用

AP開発

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

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

2　アーキテクチャ

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

2.1　EADsの構成

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

2.1.1　システム構成

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

図2‒1　システム構成

(1)　実行環境

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

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

(a)　EADsサーバ

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

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

uCosminexus 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）

uCosminexus Elastic Application Data store Client for Java

EADsクライアント（C）

uCosminexus Elastic Application Data store Client for C

注意事項

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

(2)　Developer

EADsでは，Java言語を使用したAPの開発をサポートするための製品として，Developerを提供しています。

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

uCosminexus Elastic Application Data store Developer

Developerの対象OSはWindowsだけです。

Developerは，1マシン上にEADsサーバとEADsクライアントの機能を持ちます。1EADsサーバプロセスで構成されるため，クラスタを構成しません。

2.1.2　プロセス構成

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

図2‒2　プロセス構成

(1)　EADsサーバ

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

(2)　PRFデーモン

EADsサーバが共用メモリに出力したPRFトレース情報をファイルに出力するためのI/Oプロセスです。

PRFデーモンが出力するPRFトレース情報は，システムのボトルネックを検証したり，トラブルシュートの効率向上を図ったりするために役立ちます。

PRFデーモンは，EADsサーバ1プロセス当たり1プロセス起動します。

なお，PRFトレース情報を出力しない場合，PRFデーモンは起動しません。

(3)　起動シェル

EADsサーバとPRFデーモンを起動します。

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サーバ間の通信には，UDPプロトコルを使用します。

ハートビート※

注※

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

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

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

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

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

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

データの送受信バッファ

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

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

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

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

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

2.3　keyとvalueを格納する領域

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

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

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

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

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

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コマンド

データの参照操作

get

eztool getコマンド

注意事項

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

データの更新操作の違い

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

APIまたはコマンド

新規のデータを格納する

既存のデータを更新する

put

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　EADsサーバの位置を意識しないデータアクセス

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

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

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

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

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

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

2.4.8　データアクセスの流れ

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

(1)　データの更新操作

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

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

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

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サーバに格納できるデータ数を超えている。

(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.9　データアクセス時の排他制御

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

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

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

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

実行中の処理

同時に実行する処理

データの更新操作※1

データの参照操作※2

データの更新操作※1

×

○

データの参照操作※2

○

○

（凡例）

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

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

注※1

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

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

eztool putコマンド

eztool removeコマンド

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

注※2

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

API（get）

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

・keyIterator()

・descendingKeyIterator()

・higherKeyIterator()

・lowerDescendingKeyIterator()

eztool getコマンド

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

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

図2‒15　排他範囲

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

このように，処理対象のkeyが決まっているときは，そのkeyをグルーピングすることで，関連するデータを同じEADsサーバに配置できます。これによって，ユーザファンクションを利用した通信処理の削減ができるようになり，データ処理の効率化を図ることができます。

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

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

2.6.1　keyのグルーピング

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

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

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

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

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

図2‒18　keyの構成

グループ名

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

要素名

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

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

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

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

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

(3)　グループの階層化

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

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

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

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

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

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

「Group1:Group2:ElementA」

「Group1:Group3:ElementB」

「Group1:ElementC」

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

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

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

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

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

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

2.7.1　前提条件

ユーザファンクションを使用する場合は，keyをグルーピングすることが前提となります。あらかじめkeyをグルーピングして，処理対象とするデータが特定のEADsサーバに配置されるようにしてください。

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

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

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

グループ指定による実行方法

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

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

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

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

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

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

グループ指定による実行方法では，指定したグループが属するEADsサーバに格納されていて，かつグルーピングされている全データを操作できます。

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

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

EADsサーバ指定による実行方法では，指定したEADsサーバに格納されていて，かつグルーピングされている全データを操作できます。

2.8　データ操作を契機とするユーザ処理の実行（ユーザイベントハンドラ）

ユーザイベントハンドラとは，データの更新操作を契機に，自動的に動作するユーザ処理のプログラムです。

ユーザが作成して，あらかじめEADsサーバ上に配置しておきます。

ユーザイベントハンドラがデータの更新操作と同期して動作することで，EADsの他クラスタと連携したり，DBMSなどの他システムとデータの同期を図ったりすることができます。

ユーザイベントハンドラは，Java言語で作成します。

2.8.1　ユーザイベントハンドラが動作するケース，動作しないケース

ユーザイベントハンドラが動作するケース，動作しないケースについて説明します。

(1)　ユーザイベントハンドラが動作するケース

ユーザイベントハンドラで設定した条件を満たし，かつデータの更新操作を行った場合に，ユーザイベントハンドラが動作します。

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

API（put，create，update，replace，remove）※

eztool putコマンド

eztool removeコマンド

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

(2)　ユーザイベントハンドラが動作しないケース

次の場合はユーザイベントハンドラが動作しません。

データの参照操作を行った場合

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

API（get）※

eztool getコマンド

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

データの更新操作で例外が発生した場合

create，update，replaceの処理で，データが更新されなかった場合

2.8.2　ユーザイベントハンドラの仕組み

ユーザイベントハンドラの仕組みについて説明します。

図2‒20　ユーザイベントハンドラの仕組み

ユーザイベントハンドラを使用する場合は，ユーザイベントハンドラを作成し，クラスタ内のすべてのEADsサーバに配置します。

ユーザイベントハンドラには，ユーザイベントハンドラが動作する条件（データの更新操作）と，条件を満たした場合の動作を設定します。

設定された条件を満たすデータの更新操作が行われると，ユーザイベントハンドラが実行されます。

データを多重化している場合，データの多重化とユーザイベントハンドラの処理がそれぞれ実行されます。なお，データのコピー先EADsサーバでは，ユーザイベントハンドラを実行されません。

ユーザイベントハンドラはデータの内容を取得し，取得した情報を基に他クラスタや他システムに，データの更新操作が行われたことを通知します。他クラスタと連携する場合，ユーザイベントハンドラでクライアントライブラリを使用します。

1回のデータの更新操作で，複数のユーザイベントハンドラが動作する場合，ユーザイベントハンドラをどの順序で実行するか，実行優先順序を指定できます。

なお，ユーザイベントハンドラでエラーが発生すると，データの更新操作は成功し，EADsクライアントにはエラーが返却されます。

注意事項

1回のデータの更新操作で，複数のユーザイベントハンドラが動作する場合，ユーザイベントハンドラでエラーが発生すると，以降のユーザイベントハンドラは動作しません。

2.9　データの多重化

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

2.9.1　データの多重化の概要

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

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

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

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

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

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

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

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

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

注意事項

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

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

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

2.10　クラスタ監視

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

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

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

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

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

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

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

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

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

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

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

図2‒24　 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‒25　クラスタ構成情報の更新確認の概要

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

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

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

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

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

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

2.12.1　クラスタの状態遷移

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

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

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

表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‒27　 EADsサーバの状態遷移

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

表2‒5　EADsサーバの状態

EADsサーバの状態

説明

状態名

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

初期化中

initializing

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‒28　スレッドプールおよびコネクションプールの概要

2.13.1　スレッドプール

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

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

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

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

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

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

2.13.2　コネクションプール

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

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

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

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

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

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

第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部分を格納するための領域と，更新操作の履歴が格納される領域から構成されます。

更新操作の履歴とは，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ギガバイトです。

参考

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

Javaヒープサイズ（単位：メガバイト）＝

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

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

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

　×グループ名の数※1

　＋（EADsサーバへの最大同時接続数×データの多重度）

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

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

　＋EADsサーバ数×409,600バイト

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

　＋縮退処理・復旧処理で使用するJavaヒープ領域（単位：バイト）

　＋ユーザイベントハンドラで使用するJavaヒープ領域（単位：バイト）｝

　×3÷1,024²

注※1

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

注※2

この括弧内の計算式は64キロバイト単位で切り上げて見積もってください。

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

クラスタ定義のeads.server.max_key_sizeパラメタの指定値

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

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

データの多重度：

クラスタ定義のeads.replication.factorパラメタの指定値

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

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

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

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

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

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

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

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

　＋16×合意メッセージの送信キューの長さ×（EADsサーバ数−1）

更新操作の履歴が保持される最大数：

更新操作の履歴が保持される最大数を見積もる計算式を次に示します。

更新操作の履歴が保持される最大数＝

　（ハートビートのタイムアウト時間÷1,000）

　×1EADsサーバへのデータの更新操作のスループット（単位：件/秒）※

ハートビートのタイムアウト時間：

　サーバ定義のeads.cluster.heartbeat.timeoutパラメタの指定値

注※

キャッシュごとにスループットが大きく異なる場合は，キャッシュごとに算出したスループットのうち，最大の値を代入してください。

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

クラスタ定義のeads.cache.prepare.numパラメタの指定値

データの多重度：

クラスタ定義のeads.replication.factorパラメタの指定値

合意メッセージの送信キューの長さ：

サーバ定義のeads.consensus.message.send.queuesizeパラメタの指定値

縮退処理・復旧処理で使用するJavaヒープ領域（単位：バイト）：

縮退処理および復旧処理で使用するJavaヒープ領域の最大値をそれぞれ見積もり，どちらか大きい方の値を代入してください。

縮退処理で使用するJavaヒープ領域（単位：バイト）＝

　（合意処理で一度に合意できる処理の最大数×2

　×更新操作の履歴の最大サイズ（単位：バイト）

　×（キャッシュ単位に行われる処理の最大同時実行スレッド数

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

　×更新操作の履歴の補完処理で送信するデータサイズ（単位：バイト））

　×MIN（4×（データの多重度−1），EADsサーバ数−1）

復旧処理で使用するJavaヒープ領域（単位：バイト）＝

　更新操作の履歴が格納される領域のサイズ（単位：メガバイト）×1,024²

　÷（データの多重度×2−1）

　＋復旧処理で送信するデータサイズ（単位：バイト）

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

クラスタ定義のeads.cache.prepare.numパラメタの指定値

更新操作の履歴の最大サイズ（単位：バイト）：

更新操作の履歴の最大サイズを見積もる計算式を次に示します。

更新操作の履歴の最大サイズ（単位：バイト）＝

　クラスタに格納できるkeyの最大サイズ＋valueの最大サイズ×2

クラスタに格納できるkeyの最大サイズ：

　クラスタ定義のeads.server.max_key_sizeパラメタの指定値

valueの最大サイズ：

　put，create，update，replace実行時に指定するvalueの最大サイズ

キャッシュ単位に行われる処理の最大同時実行スレッド数：

サーバ定義のeads.cluster.controller.cache.max_execute_threadsパラメタの指定値

このパラメタに0を指定している場合，データの多重度−1を代入します。

データの多重度：

クラスタ定義のeads.replication.factorパラメタの指定値

更新操作の履歴の補完処理で送信するデータサイズ（単位：バイト）：

サーバ定義のeads.consensus.fillgap.copy.dataSizeパラメタの指定値

MIN：

計算結果の最も小さい値を選ぶことを示しています。

（例）MIN（3×6，4＋7）の計算結果は11となります。

更新操作の履歴が格納される領域のサイズ：

サーバ定義のeads.consensus.external.heapsizeパラメタの指定値

見積もりについては，「4.1.3(2)　更新操作の履歴が格納される領域のサイズ」を参照してください。

復旧処理で送信するデータサイズ：

復旧処理で送信するデータサイズをキャッシュごとに見積もり，その中で最大の値を代入してください。

メモリキャッシュの場合

サーバ定義のeads.restore.dataSender.sendSizeパラメタの指定値

ディスクキャッシュ，および2Wayキャッシュの場合

キャッシュ定義のeads.cache.restore.dataSender.sendSizeパラメタの指定値

ユーザイベントハンドラで使用するJavaヒープ領域（単位：バイト）：

ユーザイベントハンドラで使用するJavaヒープ領域を見積もる計算式を次に示します。ただし，ユーザイベントハンドラを使用しない場合は0としてください。

ユーザイベントハンドラで使用するJavaヒープ領域（単位：バイト）＝

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

　×MIN（データ操作の最大同時実行スレッド数＋ユーザファンクション全体の最大同時実行スレッド数，

　EADsサーバへの最大同時接続数）

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

クラスタ定義のeads.server.max_key_sizeパラメタの指定値

MIN：

計算結果の最も小さい値を選ぶことを示しています。

（例）MIN（3×6，4＋7）の計算結果は11となります。

データ操作の最大同時実行スレッド数：

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

ユーザファンクション全体の最大同時実行スレッド数：

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

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

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

(2)　ディスク上のキャッシュが使用するJavaヒープサイズを見積もる

ディスクキャッシュ，および2Wayキャッシュを使用する場合は，各キャッシュが使用するJavaヒープサイズを求めます。

ディスクキャッシュ，および2Wayキャッシュ1つ当たりのJavaヒープサイズを見積もる計算式を次に示します。この計算式でキャッシュごとに見積もったあと，算出した値を合計します。その値を「4.1.2(1)　1EADsサーバ当たりのJavaヒープサイズを見積もる」で見積もったJavaヒープサイズに加算します。

ディスクキャッシュの場合

Javaヒープサイズの見積もりの値に加算する値（単位：キロバイト）＝

　（1,600＋8×1レンジ当たりのキャッシュデータファイルの面数

　＋0.8×格納するデータ件数）×データの多重度

2Wayキャッシュの場合※

Javaヒープサイズの見積もりの値に加算する値（単位：キロバイト）＝

　（1,600＋8×1レンジ当たりのキャッシュデータファイルの面数

　−0.4×格納するデータ件数）×データの多重度

注※

格納するデータ件数が多いときは，計算結果が負の値になることがあります。そのときは，負の値のまま代入してください。

1レンジ当たりのキャッシュデータファイルの面数：

キャッシュ定義のeads.cache.disk.filenumパラメタの指定値

見積もりについては，「4.4.1　キャッシュデータファイルのサイズおよび面数を見積もる」を参照してください。

格納するデータ件数：

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

格納するデータ件数＝

　クラスタ全体（1キャッシュ）に格納するデータ件数÷クラスタを構成するEADsサーバ数

データの多重度：

クラスタ定義のeads.replication.factorパラメタの指定値

4.1.3　Explicitヒープサイズを見積もる

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

keyとvalueのうち，value部分が格納される領域と，更新操作の履歴が格納される領域を足した値がExplicitヒープサイズとなります。なお，Explicitヒープサイズの3%は管理領域として使用されます。

算出した値は，起動設定のeads.java.external.heapsizeパラメタに指定します。

Explicitヒープサイズ（単位：メガバイト）＝（a÷1,024²＋b÷1,024²）÷0.97

変数の説明

a：value部分が格納される領域のサイズ

b：更新操作の履歴が格納される領域のサイズ

各領域のサイズを見積もる計算式を次に示します。

(1)　value部分が格納される領域のサイズ

keyとvalueのうち，value部分が格納される領域のサイズを見積もる計算式を次に示します。ただし，valueをExplicitヒープに格納しない（キャッシュタイプがディスクキャッシュのキャッシュだけを使用する）場合は，0としてください。

value部分が格納される領域のサイズ（単位：バイト）＝

　（メモリキャッシュおよび2Wayキャッシュに格納するデータ1件当たりのvalueサイズ※1（単位：バイト）

　＋2バイト）※2

　×（メモリキャッシュおよび2Wayキャッシュに格納するデータ件数の合計

　＋メモリキャッシュおよび2Wayキャッシュのキャッシュ数の合計

　×データの多重度＋500）

注※1

valueのサイズについては，「15.2.2(2)　valueとして指定できるデータ」を参照してください。

注※2

この括弧内の計算式は16バイト単位で切り上げて見積もってください。

データの多重度：

クラスタ定義のeads.replication.factorパラメタの指定値

(2)　更新操作の履歴が格納される領域のサイズ

更新操作の履歴が格納される領域のサイズを見積もる計算式を次に示します。

算出した値は，メガバイト単位に切り上げてから，サーバ定義のeads.consensus.external.heapsizeパラメタに指定します。

更新操作の履歴が格納される領域（単位：バイト）＝

　｛（データの多重度×2−1）×キャッシュ数×更新操作の履歴の最大数＋500｝

　×（更新操作の履歴の最大サイズ（単位：バイト）＋1,024）＋1,048,576

注　小数点以下の値は切り上げます。

データの多重度：

クラスタ定義のeads.replication.factorパラメタの指定値

更新操作の履歴の最大数：

更新操作の履歴の最大数を見積もる計算式を次に示します。

更新操作の履歴の最大数＝

　更新操作の履歴が保持される最大数＋合意処理で一度に合意できる処理の最大数

更新操作の履歴が保持される最大数：

更新操作の履歴が保持される最大数を見積もる計算式を次に示します。

更新操作の履歴が保持される最大数＝

　（ハートビートのタイムアウト時間÷1,000）

　×1EADsサーバへのデータの更新操作のスループット（単位：件/秒）※

ハートビートのタイムアウト時間：

　サーバ定義のeads.cluster.heartbeat.timeoutパラメタの指定値

注※

キャッシュごとにスループットが大きく異なる場合は，キャッシュごとに算出したスループットのうち，最大の値を代入してください。

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

クラスタ定義のeads.cache.prepare.numパラメタの指定値

更新操作の履歴の最大サイズ（単位：バイト）：

更新操作の履歴の最大サイズを見積もる計算式を次に示します。

更新操作の履歴の最大サイズ（単位：バイト）＝

　クラスタに格納できるkeyの最大サイズ＋valueの最大サイズ×2

クラスタに格納できるkeyの最大サイズ：

クラスタ定義のeads.server.max_key_sizeパラメタの指定値

valueの最大サイズ：

put，create，update，replace実行時に指定するvalueの最大サイズ

注意事項

Explicitヒープの見積もりが適切でない場合，Explicitヒープの空き容量が少なくなると，valueおよび更新操作の履歴のフラグメントが発生し，性能が低下するおそれがあります。また，Explicitヒープの空き容量が不足して，valueを格納できなくなると，EADsサーバが縮退します。

Explicitヒープの空き容量が不足して更新操作の履歴が格納できなくなると，EADsサーバは既存の更新操作の履歴を削除することでExplicitヒープを確保しようとします。これによって，EADsサーバ間での更新操作の履歴の補完処理に失敗するおそれがあります。更新操作の履歴の補完処理については，「9.3.2(6)　更新操作の履歴の補完処理」を参照してください。

4.1.4　EADsサーバのメモリ使用量を見積もる

EADsサーバのメモリ使用量を見積もる計算式を次に示します。

EADsサーバのメモリ使用量（単位：メガバイト）＝

　Javaヒープサイズ＋Explicitヒープサイズ＋150

　＋（EADsサーバへの最大同時接続数×データの多重度）×52÷1,024

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

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

データの多重度：

クラスタ定義のeads.replication.factorパラメタの指定値

4.2　ディスク使用量を見積もる

EADsを使用するために必要なディスク使用量の見積もりについて説明します。

4.2.1　EADsサーバのディスク使用量を見積もる

EADsサーバのディスク使用量の見積もりについて説明します。

ディスクキャッシュ，および2Wayキャッシュを使用する場合は，ここで算出する次の値に，「4.4　キャッシュファイルの容量を見積もる」で見積もったディスク使用量を加算してください。

1EADsサーバ当たりのログファイルの容量

ストアデータファイルの容量

(1)　1EADsサーバ当たりのログファイルの容量を算出する

1EADsサーバ当たりのログファイルの容量を見積もる計算式を次に示します。

1EADsサーバ当たりのログファイルの容量（単位：メガバイト）＝

　a＋b＋c×2＋d＋e＋f＋100メガバイト

変数の説明

a：EADsサーバによって出力されるメッセージログファイルの容量

b：コマンド実行時に出力されるメッセージログファイルの容量

c：Javaログファイルの容量

d：PRFトレースファイルの容量

e：統計情報ファイルの容量

f：ユーザログファイルの容量

各ログファイルの容量を見積もる計算式を次に示します。

なお，EADsサーバが管理するログファイルについては，「7.4.1　ログファイルの種類」を参照してください。

(a)　EADsサーバによって出力されるメッセージログファイルの容量

EADsサーバによって出力されるメッセージログファイルの容量を見積もる計算式を次に示します。

EADsサーバによって出力されるメッセージログファイルの容量

（単位：メガバイト）＝

　メッセージログファイルのファイルサイズ（単位：バイト）÷1,024²

　×メッセージログファイルのファイル数

メッセージログファイルのファイルサイズ（単位：バイト）：

サーバ定義のeads.logger.message.filesizeパラメタの指定値

メッセージログファイルのファイル数：

サーバ定義のeads.logger.message.filenumパラメタの指定値

サーバ定義のeads.logger.message.filesizeパラメタの指定値はバイト単位に指定するので，メガバイト単位に切り上げて計算します。

(b)　コマンド実行時に出力されるメッセージログファイルの容量

コマンド実行時に出力されるメッセージログファイルの容量を見積もる計算式を次に示します。

コマンド実行時に出力されるメッセージログファイルの容量

（単位：メガバイト）＝

　メッセージログファイルのファイルサイズ（単位：バイト）÷1,024²

　×メッセージログファイルのファイル数

メッセージログファイルのファイルサイズ（単位：バイト）：

コマンド定義のeads.logger.message.filesizeパラメタの指定値

メッセージログファイルのファイル数：

コマンド定義のeads.logger.message.filenumパラメタの指定値

コマンド定義のeads.logger.message.filesizeパラメタの指定値はバイト単位に指定するので，メガバイト単位に切り上げて計算します。

(c)　Javaログファイルの容量

Javaログファイルの容量を見積もる計算式を次に示します。

Javaログファイルの容量（単位：メガバイト）＝

　Javaログファイルのファイルサイズ（単位：メガバイト）

　×Javaログファイルのファイル数

Javaログファイルのファイルサイズ（単位：メガバイト）：

起動設定のeads.java.log.filesizeパラメタの指定値

Javaログファイルのファイル数：

起動設定のeads.java.log.filenumパラメタの指定値

(d)　PRFトレースファイルの容量

PRFトレースファイルの容量を見積もる計算式を次に示します。

PRFトレースファイルの容量（単位：メガバイト）＝

　150＋

　（PRFデーモンが共用メモリに確保するバッファのサイズ（単位：キロバイト）

　＋20）÷1,024×5

　＋PRFトレースファイルのファイルサイズ（単位：キロバイト）÷1,024

　×PRFトレースファイルのファイル数

PRFデーモンが共用メモリに確保するバッファのサイズ（単位：キロバイト）：

起動設定のeads.prf.buffersizeパラメタの指定値

PRFトレースファイルのファイルサイズ（単位：キロバイト）：

起動設定のeads.prf.filesizeパラメタの指定値

PRFトレースファイルのファイル数：

起動設定のeads.prf.filenumパラメタの指定値

起動設定のeads.prf.buffersizeパラメタおよびeads.prf.filesizeパラメタの指定値はキロバイト単位に指定するので，メガバイト単位に切り上げて計算します。

(e)　統計情報ファイルの容量

統計情報ファイルの容量を見積もる計算式を次に示します。

統計情報ファイルの容量（単位：メガバイト）＝

　（統計情報ファイル（eads_stats.csv）の容量

　＋ユーザファンクションの統計情報ファイル（eads_function_stats.csv）の容量

　＋ユーザイベントハンドラの統計情報ファイル（eads_event_stats.csv）の容量）

　÷1,024²

各統計情報ファイルの容量を見積もる計算式を次に示します。

統計情報ファイル（eads_stats.csv）の容量

統計情報ファイル（eads_stats.csv）の容量（単位：バイト）＝

　｛1,024＋1,024×（86,400÷統計情報を出力する間隔）｝

　×（統計情報の取得ファイル数＋1）

ユーザファンクションの統計情報ファイル（eads_function_stats.csv）の容量

ユーザファンクションの統計情報ファイル（eads_function_stats.csv）の容量

（単位：バイト）＝

　｛1,024＋（2,048×ユーザファンクション数）

　×（86,400÷統計情報を出力する間隔）｝

　×（統計情報の取得ファイル数＋1）

ユーザイベントハンドラの統計情報ファイル（eads_event_stats.csv）の容量

ユーザイベントハンドラの統計情報ファイル（eads_event_stats.csv）の容量

（単位：バイト）＝

　｛1,024＋（2,048×ユーザイベントハンドラ数）

　×（86,400÷統計情報を出力する間隔）｝

　×（統計情報の取得ファイル数＋1）

統計情報を出力する間隔：

サーバ定義のeads.statistics.intervalパラメタの指定値

統計情報の取得ファイル数：

サーバ定義のeads.statistics.backupnumパラメタの指定値

(f)　ユーザログファイルの容量

ユーザログファイルの容量を見積もる計算式を次に示します。

ユーザログファイルの容量（単位：メガバイト）＝

　ユーザログファイルのファイルサイズ（単位：バイト）÷1,024²

　×ユーザログファイルのファイル数

ユーザログファイルのファイルサイズ（単位：バイト）：

サーバ定義のeads.logger.user.filesizeパラメタの指定値

ユーザログファイルのファイル数：

サーバ定義のeads.logger.user.filenumパラメタの指定値

サーバ定義のeads.logger.user.filesizeパラメタの指定値はバイト単位に指定するので，メガバイト単位に切り上げて計算します。

(2)　ストアデータファイルの容量を算出する

ストアデータファイルの容量を見積もる計算式を次に示します。

ストアデータファイルの容量（単位：メガバイト）＝

　（1件当たりのkeyサイズ※1＋1件当たりのvalueサイズ※1＋100）

　×1EADsサーバに格納するデータ件数※2

　×（eztool exportコマンド実行時に出力されるストアデータファイルの世代数の上限値

　＋eztool stopコマンド実行時に出力されるストアデータファイルの世代数の上限値＋1）

　÷1,024²

注※1

シリアライズ後のサイズです。

C言語の場合は，EADsクライアントで指定したvalueのサイズに10バイトを付加したサイズとなります。

注※2

多重化によってコピーされたデータ件数も含みます。

eztool exportコマンド実行時に出力されるストアデータファイルの世代数の上限値：

クラスタ定義のeads.storeData.generation.countパラメタの指定値

eztool stopコマンド実行時に出力されるストアデータファイルの世代数の上限値：

クラスタ定義のeads.storeData.stop_command.generation.countパラメタの指定値

注意事項

メモリ上にデータがない状態でストアデータファイルに書き出した場合でも，管理情報が格納され，最大4キロバイトを使用します。そのため，ストアデータファイルの使用量は0バイトにはなりません。

なお，ストアデータファイルについては，「7.4.1　ログファイルの種類」を参照してください。

(3)　1EADsサーバ当たりのログファイルの容量とストアデータファイルの容量の合計値を算出する

「(1)1EADsサーバ当たりのログファイルの容量を算出する」および「(2)ストアデータファイルの容量を算出する」で算出した値を合計します。

ディスクキャッシュ，および2Wayキャッシュを使用する場合は，「4.4　キャッシュファイルの容量を見積もる」で見積もったディスク使用量をさらに加算します。

4.2.2　EADsクライアントのディスク使用量を見積もる

EADsクライアントのディスク使用量の見積もりについて説明します。

(1)　1EADsクライアント当たりのログファイルの容量を見積もる

1EADsクライアント当たりのログファイルの容量を見積もる計算式を次に示します。

1EADsクライアント当たりのログファイルの容量（単位：メガバイト）＝

　a＋b＋70メガバイト

変数の説明

a：EADsクライアントによって出力されるメッセージログファイルの容量

b：EADsクライアントによって出力される通信トレースファイルの容量

なお，EADsクライアントが管理するログファイルについては，「8.4.1　ログファイルの種類」を参照してください。

(a)　EADsクライアントによって出力されるメッセージログファイルの容量

EADsクライアントによって出力されるメッセージログファイルの容量を見積もる計算式を次に示します。

EADsクライアントによって出力されるメッセージログファイルの容量

（単位：メガバイト）＝

　メッセージログファイルのファイルサイズ（単位：バイト）÷1,024²

　×メッセージログファイルのファイル数

メッセージログファイルのファイルサイズ（単位：バイト）：

クライアント定義のeads.logger.message.filesizeパラメタの指定値

メッセージログファイルのファイル数：

クライアント定義のeads.logger.message.filenumパラメタの指定値

クライアント定義のeads.logger.message.filesizeパラメタの指定値はバイト単位に指定するので，メガバイト単位に切り上げて計算します。

(b)　EADsクライアントによって出力される通信トレースファイルの容量

EADsクライアントによって出力される通信トレースファイルの容量を見積もる計算式を次に示します。

EADsクライアントによって出力される通信トレースファイルの容量

（単位：メガバイト）＝

　通信トレースファイルのファイルサイズ（単位：バイト）÷1,024²

　×通信トレースファイルのファイル数

通信トレースファイルのファイルサイズ（単位：バイト）：

クライアント定義のeads.logger.commTrace.filesizeパラメタの指定値

通信トレースファイルのファイル数：

クライアント定義のeads.logger.commTrace.filenumパラメタの指定値

クライアント定義のeads.logger.commTrace.filesizeパラメタの指定値はバイト単位に指定するので，メガバイト単位に切り上げて計算します。

4.3　スレッド数とファイルディスクリプタ数を見積もる

EADsを使用するために必要なスレッド数とファイルディスクリプタ数の見積もりについて説明します。

4.3.1　スレッド数を見積もる

(1)　1EADsサーバプロセス当たりのスレッド数

1EADsサーバプロセス当たりのスレッド数を見積もる計算式を次に示します。

1EADsサーバプロセス当たりのスレッド数＝

　キャッシュ数×（データの多重度×2−1）×3＋EADsサーバ数×5

　＋キャッシュ単位に行われる処理の最大同時実行スレッド数

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

データの多重度：

クラスタ定義のeads.replication.factorパラメタの指定値

キャッシュ単位に行われる処理の最大同時実行スレッド数：

サーバ定義のeads.cluster.controller.cache.max_execute_threadsパラメタの指定値

このパラメタに0を指定している場合，データの多重度−1を代入します。

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

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

(2)　1コマンドプロセス当たりのスレッド数

1コマンドプロセス当たりのスレッド数を見積もる計算式を次に示します。

1コマンドプロセス当たりのスレッド数＝EADsサーバプロセス数×2＋50

4.3.2　ファイルディスクリプタ数を見積もる

(1)　1EADsサーバプロセス当たりのファイルディスクリプタ数

1EADsサーバプロセス当たりのファイルディスクリプタ数を見積もる計算式を次に示します。

1EADsサーバプロセス当たりのファイルディスクリプタ数＝

　EADsサーバ数×14＋EADsサーバへの最大同時接続数

　＋ユーザが作成するライブラリ数※＋Javaのライブラリ数

　＋統計情報の取得ファイル数＋35

　＋ディスク上のキャッシュが使用するファイルディスクリプタ数

注※

ユーザが作成するユーザファンクションおよびユーザイベントハンドラのjarファイル数と，ユーザファンクションおよびユーザイベントハンドラ共通で使用するライブラリ数の合計です。

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

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

統計情報の取得ファイル数：

サーバ定義のeads.statistics.backupnumパラメタの指定値

ディスク上のキャッシュが使用するファイルディスクリプタ数：

ディスクキャッシュ，および2Wayキャッシュを使用する場合は，次の計算式で見積もった値を加算します。

ディスク上のキャッシュが使用するファイルディスクリプタ数＝

　5×データの多重度×ディスクを使用するキャッシュ数

データの多重度：

クラスタ定義のeads.replication.factorパラメタの指定値

ディスクを使用するキャッシュ数：

ディスクキャッシュ，および2Wayキャッシュのキャッシュ数の合計

eztool importコマンド実行時のファイルディスクリプタ数を見積もる計算式を次に示します。

eztool importコマンド実行時のファイルディスクリプタ数＝

　EADsサーバへの最大同時接続数×（データの多重度−1）×2

　＋EADsサーバプロセス数×100＋ユーザが作成するライブラリ数※

　＋ユーザプログラムで必要なファイルディスクリプタ数

注※

ユーザが作成するユーザファンクションおよびユーザイベントハンドラのjarファイル数と，ユーザファンクションおよびユーザイベントハンドラ共通で使用するライブラリ数の合計です。

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

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

データの多重度：

クラスタ定義のeads.replication.factorパラメタの指定値

(2)　1コマンドプロセス当たりのファイルディスクリプタ数

1コマンドプロセス当たりのファイルディスクリプタ数を見積もる計算式を次に示します。

1コマンドプロセス当たりのファイルディスクリプタ数＝

　EADsサーバプロセス数×10＋100

4.4　キャッシュファイルの容量を見積もる

この節の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

ディスクキャッシュ，および2Wayキャッシュを使用する場合は，「4.2.1　EADsサーバのディスク使用量を見積もる」で見積もったディスク使用量に，キャッシュごとに次のファイルの容量を見積もって加算します。

キャッシュデータファイル

キャッシュインデックスファイル

なお，キャッシュデータファイルおよびキャッシュインデックスファイルについては，「7.7.2　キャッシュファイルの種類と格納先の設定」を参照してください。

4.4.1　キャッシュデータファイルのサイズおよび面数を見積もる

ここでは，次の値の見積もりについて説明します。

キャッシュデータファイルのサイズ

キャッシュデータファイルの面数

キャッシュデータファイルのサイズおよび面数は次の手順で見積もります。

媒体への書き込みブロックサイズを決定します。

キャッシュデータファイルに格納する，レコード1件分のサイズを見積もります。

キャッシュデータファイル1面のサイズと実際に格納できるデータ量を見積もります。

2.を基に，システムで管理する有効データの最大量を見積もります。

コンパクションの実施間隔を決定します。

2.と5.を基に，コンパクション中に更新されるデータを格納するための容量（更新データ用の容量）を見積もります。

4.と6.から，キャッシュデータファイルに必要な容量を見積もります。

7.から，キャッシュ定義のeads.cache.disk.filesizeパラメタに指定する，1レンジ当たりのキャッシュデータファイルのサイズ，およびキャッシュ定義のeads.cache.disk.filenumパラメタに指定する，1レンジ当たりのキャッシュデータファイルの面数を見積もります。

システムの運用前に，コンパクションに掛かる時間などに問題がないことを確認します。

それぞれの説明を次に示します。

(1)　書き込みブロックサイズを決定する

キャッシュデータファイルに対して，1回で書き込むデータサイズを，書き込みブロックサイズといいます。

書き込みブロックサイズは，キャッシュデータファイルの格納先の媒体に合わせて設定します。設定した値は，キャッシュ定義のeads.cache.disk.blocksizeパラメタに指定します。

格納先の媒体がHDDの場合

1キロバイト（デフォルト）

格納先の媒体がSSDの場合

使用するSSDのページサイズ（単位：キロバイト）

(2)　レコード1件分のサイズを見積もる

EADsサーバに格納する1件分のデータは，key，value，および制御情報を合わせて，レコードという単位で格納します。

レコード1件分のサイズを見積もる計算式を次に示します。

レコード1件分のサイズ（単位：キロバイト）＝

　（EADsサーバに格納されるkeyのサイズ（単位：バイト）

　＋EADsサーバに格納されるvalueのサイズ（単位：バイト）＋36）※÷1,024

注※

この括弧内の値は，「4.4.1(1)　書き込みブロックサイズを決定する」で決定した書き込みブロックサイズ（単位：キロバイト）（キャッシュ定義のeads.cache.disk.blocksizeパラメタの指定値）の整数倍に切り上げて見積もってください。

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レンジに同時に格納される最大のkey数×レコード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)　キャッシュデータファイルに必要な容量を見積もる

キャッシュデータファイルに必要な容量を見積もる計算式を次に示します。

キャッシュデータファイルに必要な容量（単位：メガバイト）＝

　（有効データの最大量（単位：キロバイト）×2

　　＋更新データ用の容量（単位：キロバイト））÷1,024

有効データの最大量：

「4.4.1(4)　有効データの最大量を見積もる」で算出した値

更新データ用の容量：

「4.4.1(6)　更新データ用の容量を見積もる」で算出した値

(8)　キャッシュデータファイルのサイズおよび面数を設計する

「4.4.1(7)　キャッシュデータファイルに必要な容量を見積もる」で算出した，キャッシュデータファイルに必要な容量を基に，次の式を満たすように，1レンジ当たりのキャッシュデータファイルのサイズ，およびキャッシュデータファイルの面数を設計します。

キャッシュデータファイルに必要な容量（単位：メガバイト）≦

　1レンジ当たりのキャッシュデータファイルのサイズ（単位：メガバイト）×キャッシュデータファイルの面数※

注※

キャッシュデータファイルの容量の拡張が考えられる場合は，その分の面数も考慮して決定してください。

1レンジ当たりのキャッシュデータファイルのサイズは，キャッシュ定義のeads.cache.disk.filesizeパラメタに指定します。

1レンジ当たりのキャッシュデータファイルの面数を見積もる計算式を次に示します。

1レンジ当たりのキャッシュデータファイルの面数＝

　キャッシュデータファイルの面数＋1

算出した値は，キャッシュ定義のeads.cache.disk.filenumパラメタに指定します。

(9)　コンパクションの運用計画を確認する

システムの運用前に，コンパクションに掛かる時間，およびに確保される容量に問題がないことを確かめてください。

次の計算式を満たしていない場合，コンパクションがデータの更新に間に合わないため，容量不足によるエラーが発生するおそれがあります。

更新データ用の容量＜1回のコンパクションで確保される容量

注意事項

上記の計算式を満たしていない原因がハードウェアの性能不足の場合，コンパクションの回数や実施間隔のチューニングだけでなく，ハードウェアの更新やホストの追加も考慮した対策を検討してください。

4.4.2　キャッシュインデックスファイルのサイズを見積もる

キャッシュインデックスファイル1ファイル分のサイズを見積もる計算式を次に示します。

キャッシュインデックスファイルのサイズ（単位：バイト）＝

　48＋4×｛（1レンジ当たりのキャッシュデータファイルのサイズ（単位：メガバイト）×1,024

　÷書き込みブロックサイズ（単位：キロバイト））−2｝

1レンジ当たりのキャッシュデータファイルのサイズ：

キャッシュ定義のeads.cache.disk.filesizeパラメタの指定値

書き込みブロックサイズ：

「4.4.1(1)　書き込みブロックサイズを決定する」で決定した値（キャッシュ定義のeads.cache.disk.blocksizeパラメタの指定値）

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

保守ログファイル（システムが使用するファイル）の出力先（デフォルト）です。

spool

PRFトレースファイルの出力先（デフォルト）です。

stats

統計情報ファイルの出力先（デフォルト）です。

store

ストアデータファイル，キャッシュ情報ファイルおよびキャッシュインデックスファイルの出力先（デフォルト）です。

/opt/hitachi/xeads/javaclient/

EADsクライアント（Java）のインストールディレクトリです。

conf

クライアント定義ファイルが格納されています。

lib

ライブラリファイルが格納されています。

/opt/hitachi/xeads/PSB

EADsで使用するPRFおよびJDKの格納用ディレクトリです。

PRF

パフォーマンストレーサ（PRFデーモン）のインストールディレクトリです。

jdk

JDKのインストールディレクトリです。

注※

運用ディレクトリとは，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.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_start.properties）

コマンド定義ファイル（eads_management.properties）

キャッシュ定義ファイル（eads_cache.＜キャッシュ名＞.properties）※

注※　メモリキャッシュを作成する場合，キャッシュ定義ファイルの作成は任意です。

それぞれの定義ファイルに指定できるパラメタの一覧については，「23.1　パラメタ一覧」を参照してください。

チューニングパラメタについては，「9.　チューニングパラメタを設計する」を参照して設計します。設計した値を各定義ファイルに設定してください。

ユーザファンクションを使用する場合，ファンクション定義ファイルを任意で作成します。ファンクション定義ファイルは，実行環境のEADsサーバが停止した状態で，ユーザファンクションと一緒に，＜運用ディレクトリ＞/app下にコピーします。詳細については，「18.4　ファンクション定義ファイルを作成する（任意）」および「18.9　実行環境に配布する」を参照してください。

注意事項

クラスタ定義ファイルの定義内容は，クラスタを構成する全EADsサーバで同一になるようにしてください。同一でないとクラスタが構築できないため，EADsサーバは起動しません。

キャッシュ定義ファイルの次のパラメタの定義内容は，クラスタを構成する全EADsサーバで同じになるようにしてください。同じでないとキャッシュを作成できません。

・eads.cache.type

・eads.cache.disk.filesize

・eads.cache.disk.filenum

・eads.cache.disk.blocksize

5.2.3　APを配置する

開発環境で作成したAPを，実行環境に配布します。

ユーザファンクションの実行環境への配布については，「18.9　実行環境に配布する」を参照してください。ユーザイベントハンドラの実行環境への配布については，「19.8　実行環境に配布する」を参照してください。

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＞

コマンド実行例

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言語の場合

次のプログラムプロダクトをインストールしてください。

uCosminexus Elastic Application Data store Client for C

インストール手順については，「5.1.2　インストール手順」を参照してください。

注意事項

Developerがインストールされている環境に，EADsクライアントをインストールしないでください。

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ビット版のライブラリファイルが格納されています。

(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

なお，J2EEサーバ（uCosminexus Application Server）上で実行する場合は，次に示すライブラリをAP（WARファイル（WEB-INF/libディレクトリ））に取り込む必要があります。J2EEサーバでは，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を任意のディレクトリに配置します。

注意事項

J2EEサーバ（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クライアント）」で設計した値をクライアント定義ファイルに設定します。

クライアント定義ファイルに指定できるパラメタの一覧については，「23.1.2(1)　クライアント定義ファイル」を参照してください。

チューニングパラメタについては，「9.　チューニングパラメタを設計する」を参照して設計します。設計した値をクライアント定義ファイルに設定してください。

6.3　EADsクライアントをアンインストールする

EADsクライアントをアンインストールする手順を次に示します。使用するAPの言語によって，アンインストールの手順が異なります。

Java言語の場合

EADsサーバの次のディレクトリをコピーしたディレクトリを削除してください。

/opt/hitachi/xeads/javaclient

C言語の場合

次のプログラムプロダクトをアンインストールしてください。

uCosminexus Elastic Application Data store Client for C

アンインストールする手順については，「5.5　EADsサーバをアンインストールする」を参照してください。参照する際は，「EADsサーバ」を「EADsクライアント」に読み替えてください。

7　環境依存パラメタを設計する（EADsサーバ）

この章では，EADsサーバの，環境依存パラメタの設計指針について説明します。

7.1　定義ファイルの種類（EADsサーバ）

EADsサーバで使用する定義ファイルの種類を次の表に示します。

なお，この章では，環境依存パラメタについてだけ説明しています。それぞれの定義ファイルに指定できるパラメタの一覧については，「23.1　パラメタ一覧」を参照してください。

表7‒1　定義ファイルの種類（EADsサーバ）

項番

定義ファイル

ファイル名

説明

1

サーバ定義ファイル

eads_server.properties

EADsサーバの実行環境を定義します。

2

クラスタ定義ファイル

eads_cluster.properties

クラスタの構成およびデータの多重度を定義します。

3

起動設定ファイル

eads_start.properties

EADsサーバ，およびPRFデーモンの起動設定を定義します。

4

コマンド定義ファイル

eads_management.properties

コマンド実行時の設定を定義します。

5

キャッシュ定義ファイル

eads_cache.＜キャッシュ名＞.properties

キャッシュの設定を定義します。キャッシュごとに作成します。

メモリキャッシュの場合，作成は任意です。

ディスクキャッシュまたは2Wayキャッシュの場合，必ず作成してください。

6

ファンクション定義ファイル

ファイル名は任意です。詳細については，「18.4　ファンクション定義ファイルを作成する（任意）」を参照してください。

ユーザファンクション実行時の設定を定義します。

作成は任意です。

注意事項

クラスタ定義ファイルの定義内容は，クラスタを構成する全EADsサーバで同じになるようにしてください。同じでないとクラスタが構築できないため，EADsサーバは起動しません。

キャッシュ定義ファイルの次のパラメタの定義内容は，クラスタを構成する全EADsサーバで同じになるようにしてください。同じでないとキャッシュを作成できません。

・eads.cache.type

・eads.cache.disk.filesize

・eads.cache.disk.filenum

・eads.cache.disk.blocksize

その他の定義ファイルの定義内容については，同一にする必要はありませんが，同一にすることを推奨します（IPアドレスやポート番号は除きます）。

7.2　定義ファイルの形式

次のようにパラメタを指定します。

＜パラメタ名＞=＜指定値＞

指定方法

改行までが値になります。

#で始まる行はコメントと見なされます。

空行は無視されます。

値の後ろには，コメントなどの文字列は追加できません。追加した場合，不正な値と解釈されます。

同じパラメタを指定した場合，後から記述したパラメタの指定が有効になります。例えば，次のように指定されている場合，falseが有効になります。

eads.prf.enable=true
eads.prf.enable=false

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.consensus.message.port」

(d)：「7.3.2(1)(d)　eads.cluster.failureDetector.port」

(e)：「7.3.2(1)(e)　eads.restore.port」

(f)：「7.3.2(1)(f)　eads.management.port」

EADsサーバ間のハートビートの送信に使用するポート番号については，「7.5.3　クラスタ構成に依存するパラメタ」の「7.5.3(1)(e)　eads.cluster.heartbeat.port」を参照してください。

参考

ハートビートの送信はマルチキャスト通信を使用するため，ネットワークの設計時に注意が必要です。クラスタ定義のeads.cluster.heartbeat.addressパラメタには，マルチキャストアドレスを指定する必要があります。

ポート番号を指定する場合は，ほかのアプリケーションとの重複を避けるため，OSが任意に割り当てるポート番号は使用しないでください。OSが任意に割り当てるポート番号は，OSの種別やバージョンによって異なります。詳細については，ご使用のOSのマニュアルを参照してください。

7.3.2　通信に依存するパラメタ

通信に依存するパラメタの一覧を次の表に示します。

なお，必ず指定するパラメタを太字で表記しています。

表7‒2　通信に依存するパラメタ一覧（EADsサーバ）

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

サーバ定義ファイル

eads.server.address

IPアドレスまたはホスト名

なし

2

eads.server.port

ポート番号

24600

3

eads.consensus.message.port

ポート番号

24633

4

eads.cluster.failureDetector.port

ポート番号

24631

5

eads.restore.port

ポート番号

24632

6

eads.management.port

ポート番号

24620

(1)　サーバ定義ファイル

(a)　eads.server.address

EADsサーバのIPアドレスまたはホスト名を指定します。

ホスト名で指定する場合は，ホスト名からIPアドレスが一意に識別できるホスト名を指定してください。

(b)　eads.server.port

EADsクライアントとの通信に使用するEADsサーバのポート番号を指定します。

(c)　eads.consensus.message.port

EADsサーバ間の通信に使用するポート番号を指定します。

(d)　eads.cluster.failureDetector.port

EADsサーバ間の生存確認に使用するポート番号を指定します。

(e)　eads.restore.port

EADsサーバの復旧に使用するポート番号を指定します。

(f)　eads.management.port

コマンドが使用するポート番号を指定します。

7.4　ログファイルに依存するパラメタの設計

ログファイルに依存するパラメタを設計します。

7.4.1　ログファイルの種類

EADsサーバが管理するログファイルの種類を次の表に示します。

表7‒3　ログファイルの種類（EADsサーバ）

項番

ログファイル

説明

1

メッセージログファイル

動作確認やエラー監視用のメッセージログを出力するファイルです。

メッセージログは，EADsサーバまたはコマンドによって出力されます。

2

例外ログファイル

障害原因の調査で必要となるスタックトレースを出力するファイルです。

3

ユーザログファイル

ユーザファンクションおよびユーザイベントハンドラの実行情報を出力するファイルです。

4

ユーザ例外ログファイル

ユーザファンクションおよびユーザイベントハンドラで発生した例外のスタックトレースを出力するファイルです。

5

キャッシュファイル操作ログファイル

キャッシュデータファイルの使用状況，およびコンパクションの状況を確認，監視するための情報を出力するファイルです。

6

保守ログファイル

システムが使用するファイルです。

ユーザが設定するパラメタはありません。

7

分散保守ログファイル

システムが使用するファイルです。

ユーザが設定するパラメタはありません。

8

PRFトレースファイル

性能解析および問題解析用のPRFトレース情報を出力するファイルです。

9

統計情報ファイル

チューニングの見直し，性能測定，リソース見積もりなどに使用する統計情報を出力するファイルです。

10

Javaログファイル

JavaVMのGC（ガーベージコレクション）やメモリに関する情報を出力するファイルです。

11

スレッドダンプ

Javaプロセス内で動作しているスレッドの情報を出力するファイルです。

12

起動ログファイル

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.logger.dirパラメタに指定したディレクトリ

Wrap

eads_management_message[n].log

Shift

eads_management_message.log

9

コマンド実行時に出力される例外ログファイル

（例外ログ情報）

コマンド定義のeads.logger.dirパラメタに指定したディレクトリ

Wrap

eads_management_exception[n].log

Shift

eads_management_exception.log

10

コマンド実行時に出力される保守ログファイル

（保守ログ情報）

＜コマンド定義のeads.logger.dirパラメタに指定したディレクトリ＞/maintenance

eads_management_maintenance[n].log

11

PRFトレースファイル

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/spool/utt/prf/REQ_PRF_ID/dcopltrc

prf_[nnn]

12

統計情報ファイル

（EADsサーバ）

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/stats

eads_stats.csv

eads_stats_[n].csv※1

13

統計情報ファイル

（キャッシュ）

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/stats

eads_cache_stats.csv

eads_cache_stats_[n].csv※1

14

統計情報ファイル

（ユーザファンクション）

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/stats

eads_function_stats.csv

eads_function_stats_[n].csv※1

15

統計情報ファイル

（ユーザイベントハンドラ）

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/stats

eads_event_stats.csv

eads_event_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.backupnumパラメタに指定した数の統計情報ファイルをバックアップファイルとして残します。

統計情報ファイルのローテーションについては，「7.4.4　統計情報ファイルのローテーションの設定」を参照してください。

注※2

Explicitヒープに関するログを出力するファイルです。

注意事項

ファイルの出力先に，ネットワークで接続された別マシンのディレクトリは指定できません。

7.4.3　ファイルサイズおよびファイル数の設定

ログファイルのファイルサイズおよびファイル数は，基本的にデフォルト値を設定してください。EADsサーバ構築後，必要に応じてパラメタの指定値を変更してください。

7.4.4　統計情報ファイルのローテーションの設定

統計情報は，統計情報が更新されるタイミングでファイルに出力されます。

取得する統計情報ファイル数をサーバ定義のeads.statistics.backupnumパラメタに指定します。

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.logger.user.rotationStyle

Wrap

Shift

Wrap

10

eads.logger.user.filesize

ファイルサイズ（4096バイト〜2147483647バイト）

1048576バイト

11

eads.logger.user.filenum

ファイル数（1〜16）

2

12

eads.logger.userException.rotationStyle

Wrap

Shift

Wrap

13

eads.logger.userException.filesize

ファイルサイズ（4096バイト〜2147483647バイト）

1048576バイト

14

eads.logger.userException.filenum

ファイル数（1〜16）

2

15

eads.logger.cache.rotationStyle

Wrap

Shift

Wrap

16

eads.logger.cache.filesize

ファイルサイズ（4096バイト〜2147483647バイト）

1048576バイト

17

eads.logger.cache.filenum

ファイル数（1〜16）

2

18

eads.prf.enable

true

false

false

19

eads.statistics.interval

1〜3600

60

20

eads.statistics.backupnum

1〜366

7

21

eads.statistics.compaction.effect.division

1〜10

5

22

起動設定ファイル

eads.prf.filesize

ファイルサイズ（1024キロバイト〜1048576キロバイト）

65536キロバイト

23

eads.prf.filenum

ファイル数（3〜256）

16

24

eads.prf.level

0x00000000（標準）

0x40000000（詳細）

0x40000000

25

eads.java.log.filesize

ファイルサイズ（1メガバイト〜2097152メガバイト）

8メガバイト

26

eads.java.log.filenum

ファイル数（1〜99）

4

27

コマンド定義ファイル

eads.logger.dir

パス名

＜運用ディレクトリ＞/logs

28

eads.logger.message.rotationStyle

Wrap

Shift

Wrap

29

eads.logger.message.filesize

ファイルサイズ（4096バイト〜2147483647バイト）

1048576バイト

30

eads.logger.message.filenum

ファイル数（1〜64）

2

31

eads.logger.exception.rotationStyle

Wrap

Shift

Wrap

32

eads.logger.exception.filesize

ファイルサイズ（4096バイト〜2147483647バイト）

1048576バイト

33

eads.logger.exception.filenum

ファイル数（1〜16）

2

(1)　サーバ定義ファイル

(a)　eads.logger.dir

EADsサーバによって出力されるログファイルの出力先ディレクトリのパスを指定します。

指定されたパスが存在しない場合は作成します。

このパラメタに指定したディレクトリ下に出力されるログファイルについては，「7.4.2　ファイルの出力先の設定」を参照してください。

出力先ディレクトリのパスには，最大96文字の半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），コロン（:），およびセパレータ（Linuxの場合はスラッシュ（/），Windowsの場合は円符号（¥））が指定できます。

このパラメタの指定値を変更した場合は，このパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(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.logger.user.rotationStyle

ユーザログのローテーション方式を指定します。

Wrap：

ラップアラウンド方式を使用します。

Shift：

シフト方式を使用します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(j)　eads.logger.user.filesize

ユーザログの1ファイル当たりのファイルサイズ（単位：バイト）を指定します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(k)　eads.logger.user.filenum

ユーザログのファイル数を指定します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(l)　eads.logger.userException.rotationStyle

ユーザ例外ログのローテーション方式を指定します。

Wrap：

ラップアラウンド方式を使用します。

Shift：

シフト方式を使用します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(m)　eads.logger.userException.filesize

ユーザ例外ログの1ファイル当たりのファイルサイズ（単位：バイト）を指定します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(n)　eads.logger.userException.filenum

ユーザ例外ログのファイル数を指定します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(o)　eads.logger.cache.rotationStyle

キャッシュファイル操作ログのローテーション方式を指定します。

Wrap：

ラップアラウンド方式を使用します。

Shift：

シフト方式を使用します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(p)　eads.logger.cache.filesize

キャッシュファイル操作ログの1ファイル当たりのファイルサイズ（単位：バイト）を指定します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(q)　eads.logger.cache.filenum

キャッシュファイル操作ログのファイル数を指定します。

このパラメタの指定値を変更した場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(r)　eads.prf.enable

PRFトレースの出力を有効にするか，無効にするかを指定します。

true：

PRFトレースの出力を有効にします。

false：

PRFトレースの出力を無効にします。

PRFトレースの出力を有効にすると，保守情報を取得できます。ただし，性能に影響を与えるおそれがあります。

PRFトレースの出力を無効にする場合，クラスタ内の全EADsサーバのPRFトレースの出力を無効にしてください。クラスタ内で有効と無効が混在すると，正しい内容が出力されないことがあります。なお，無効にした場合，PRFデーモンは起動しません。

注意事項

PRFトレースの出力を無効にした場合，障害発生時の原因調査ができないおそれがあります。

(s)　eads.statistics.interval

統計情報を出力する間隔（単位：秒）を指定します。

(t)　eads.statistics.backupnum

統計情報の取得ファイル数を指定します。

このパラメタの指定値を変更した場合は，次に示すファイルを別のディレクトリに移動するか，または削除してください。

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/stats下の，拡張子が.mmの全ファイル

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/maintenance/stats下の，拡張子が.mmの全ファイル

(u)　eads.statistics.compaction.effect.division

キャッシュの統計情報で使用する，コンパクションの効果のファイル数の分布を分割する個数を指定します。

例えば，このパラメタに4を指定した場合，分布は4つに分割されるため，コンパクションの効果が「0〜25%」，「26〜50%」，「51〜75%」および「76〜100%」であるファイル数がそれぞれ出力されます。

効果の値が整数にならない場合，小数点以下はすべて切り捨てられます。

(2)　起動設定ファイル

(a)　eads.prf.filesize

PRFトレースのファイルサイズ（単位：キロバイト）を指定します。

サーバ定義のeads.prf.enableパラメタがfalseの場合，この指定は無効となります。

(b)　eads.prf.filenum

PRFトレースのファイル数を指定します。

サーバ定義のeads.prf.enableパラメタがfalseの場合，この指定は無効となります。

(c)　eads.prf.level

PRFトレースの出力レベルを指定します。

0x00000000：

標準

0x40000000：

詳細

サーバ定義のeads.prf.enableパラメタがfalseの場合，この指定は無効となります。

注意事項

不正な値を指定するとPRFデーモンの起動でエラーとなるため，注意してください。

(d)　eads.java.log.filesize

Javaログのファイルサイズ（単位：メガバイト）を指定します。

(e)　eads.java.log.filenum

Javaログのファイル数を指定します。

(3)　コマンド定義ファイル

(a)　eads.logger.dir

コマンド実行時に出力されるログファイルの出力先ディレクトリのパスを指定します。

指定されたパスが存在しない場合は作成します。

このパラメタに指定したディレクトリ下に出力されるログファイルについては，「7.4.2　ファイルの出力先の設定」を参照してください。

出力先ディレクトリのパスには，最大96文字の半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），コロン（:），およびセパレータ（Linuxの場合はスラッシュ（/），Windowsの場合は円符号（¥））が指定できます。

このパラメタの指定値を変更した場合は，このパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(b)　eads.logger.message.rotationStyle

コマンド実行時に出力されるメッセージログのローテーション方式を指定します。

Wrap：

ラップアラウンド方式を使用します。

Shift：

シフト方式を使用します。

このパラメタの指定値を変更した場合は，コマンド定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(c)　eads.logger.message.filesize

コマンド実行時に出力されるメッセージログの1ファイル当たりのファイルサイズ（単位：バイト）を指定します。

このパラメタの指定値を変更した場合は，コマンド定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(d)　eads.logger.message.filenum

コマンド実行時に出力されるメッセージログのファイル数を指定します。

このパラメタの指定値を変更した場合は，コマンド定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(e)　eads.logger.exception.rotationStyle

コマンド実行時に出力される例外ログのローテーション方式を指定します。

Wrap：

ラップアラウンド方式を使用します。

Shift：

シフト方式を使用します。

このパラメタの指定値を変更した場合は，コマンド定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(f)　eads.logger.exception.filesize

コマンド実行時に出力される例外ログの1ファイル当たりのファイルサイズ（単位：バイト）を指定します。

このパラメタの指定値を変更した場合は，コマンド定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(g)　eads.logger.exception.filenum

コマンド実行時に出力される例外ログのファイル数を指定します。

このパラメタの指定値を変更した場合は，コマンド定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

7.5　クラスタ構成に依存するパラメタの設計

クラスタ構成に依存するパラメタを設計します。

7.5.1　EADsサーバの位置の設定

EADsサーバをクラスタ内のどこに配置するかをeads.node.＜EADsサーバID＞.positionパラメタで設定します。EADsサーバの位置（ハッシュ値）を指定することで，負荷を分散させることができます。

位置を指定しなければ，EADsサーバはクラスタ上の論理的な位置に均等に分散配置されます。

keyや業務の特性によって，データの配置（データ数，データ使用量，またはデータアクセス数）が偏ることがあります。そうなると，一部のEADsサーバに負荷が掛かり，レスポンス速度の低下やリソース不足などにつながります。

EADsサーバの位置を指定する場合は，統計情報（KvCount，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.cluster.heartbeat.address

IPアドレス（マルチキャストアドレス）

239.255.2.1

5

eads.cluster.heartbeat.port

ポート番号

24630

6

eads.replication.factor

1〜10

2

注意事項

クラスタ定義ファイルの定義内容は，クラスタを構成する全EADsサーバで同じになるようにしてください。同一でないとクラスタが構築できないため，EADsサーバは起動しません。

また，範囲外の値が設定されていた場合は，デフォルト値が設定されます。

(1)　クラスタ定義ファイル

(a)　eads.node.＜EADsサーバID＞.address

クラスタを構成するEADsサーバのIPアドレスまたはホスト名（サーバ定義のeads.server.addressパラメタの値）を指定します。

ホスト名で指定する場合は，ホスト名からIPアドレスが一意に識別できるホスト名を指定してください。

EADsサーバIDはユーザが任意に割り振る番号（1〜96の整数）です。EADsサーバIDはクラスタ内のEADsサーバを一意に識別するために，ストアデータファイル名やPRFトレース情報に使用されます。連番でなくてもかまいませんが，クラスタ内ではユニークにする必要があります。

(b)　eads.node.＜EADsサーバID＞.port

クラスタを構成するEADsサーバのポート番号（サーバ定義のeads.server.portパラメタの値）を指定します。

EADsサーバIDはユーザが任意に割り振る番号（1〜96の整数）です。EADsサーバIDはクラスタ内のEADsサーバを一意に識別するために，ストアデータファイル名やPRFトレース情報に使用されます。連番でなくてもかまいませんが，クラスタ内ではユニークにする必要があります。

(c)　eads.node.＜EADsサーバID＞.position

EADsサーバの位置（ハッシュ値）を指定します。

EADsサーバIDはユーザが任意に割り振る番号（1〜96の整数）です。EADsサーバIDはクラスタ内のEADsサーバを一意に識別するために，ストアデータファイル名やPRFトレース情報に使用されます。連番でなくてもかまいませんが，クラスタ内ではユニークにする必要があります。

このパラメタは省略できます。省略した場合，EADsサーバがクラスタ上の論理的な位置に均等に分散配置されるように設定されます。

指定する場合は，クラスタを構成する全EADsサーバの位置を指定してください。指定の有無が混在した場合はエラーとなり，EADsサーバの起動に失敗します。

(d)　eads.cluster.heartbeat.address

EADsサーバ間のハートビートの送信に使用するIPアドレス（マルチキャストアドレス）を指定します。

IPアドレスのエイリアス名でも指定できます。

(e)　eads.cluster.heartbeat.port

EADsサーバ間のハートビートの送信に使用するポート番号を指定します。

(f)　eads.replication.factor

データの多重度を指定します。

注意事項

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

クラスタを構成するEADsサーバ数が，「データの多重度×2−1」より少なかった場合，エラーとなりEADsサーバの開始に失敗します。

7.6　バックアップファイルに依存するパラメタの設計

バックアップファイルに依存するパラメタを設計します。

メモリキャッシュに格納されているデータを出力するバックアップファイルを，ストアデータファイルといいます。

7.6.1　ファイルの出力先の設定

ストアデータファイルの出力先は変更できます。ファイルの出力先を次の表に示します。

表7‒7　ストアデータファイルの出力先

項番

ストアデータファイル種別

出力先

ファイル名

1

eztool exportコマンド実行時に出力されるストアデータファイル

サーバ定義のeads.storeData.dirパラメタに指定したディレクトリ

eads_[xxx]_[EADsサーバID].esd

eads_single_[xxx]_[EADs サーバID].esd

2

eztool stopコマンド実行時に出力されるストアデータファイル

サーバ定義のeads.storeData.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.storeData.generation.countパラメタに指定した上限値まで，クラスタ全体で世代管理されます。これによって，ストアデータファイルの増加によるディスク容量の圧迫を防ぎます。

クラスタ全体で保持するストアデータファイルの世代数の上限値を2（デフォルト）に設定した場合の例を次の図に示します。

図7‒4　ストアデータファイルの世代数の設定

この上限値を超えるストアデータファイルが出力されると，eztool exportコマンドはエラーとなります。eztool deleteesdコマンドを実行して，不要なストアデータファイルを削除してください。

ストアデータファイルの確認および削除手順については，「11.6　ストアデータファイルを管理したい」を参照してください。

注意事項

ストアデータファイルが世代管理されないケースを次に示します。

世代数の上限値（クラスタ定義のeads.storeData.generation.countパラメタ）に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.storeData.stop_command.generation.countパラメタに指定します。

この上限値を超えるストアデータファイルが出力されると，最新のストアデータファイルが出力されたあと，最も古いストアデータファイルが自動的に削除されます。

注意事項

eztool stopコマンドに--no_exportオプションを指定した場合は，EADsサーバ終了時に，データをファイルに出力しません。

7.6.3　バックアップファイルに依存するパラメタ

バックアップファイルに依存するパラメタの一覧を次の表に示します。

表7‒8　バックアップファイルに依存するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

サーバ定義ファイル

eads.storeData.dir

パス名

＜運用ディレクトリ＞/store

2

クラスタ定義ファイル

eads.storeData.generation.count

0〜32

2

3

eads.storeData.stop_command.generation.count

1〜32

1

(1)　サーバ定義ファイル

(a)　eads.storeData.dir

ストアデータファイルの出力先ディレクトリのパスを指定します。

(2)　クラスタ定義ファイル

(a)　eads.storeData.generation.count

eztool exportコマンド実行時に出力されるストアデータファイルの世代数の上限値を指定します。

この上限値を超えるストアデータファイルが出力されると，eztool exportコマンドはエラーとなります。

また，出力先にすでに同じ名称のストアデータファイルが存在する場合は，上書きされないでeztool exportコマンドがエラーとなります。

このパラメタに0を指定した場合，ストアデータファイルは世代管理されません。

(b)　eads.storeData.stop_command.generation.count

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　キャッシュデータファイルのサイズおよび面数を見積もる」で見積もった値を指定します。

7.7.2　キャッシュファイルの種類と格納先の設定

ディスクキャッシュ，および2Wayキャッシュを使用する場合に，キャッシュの情報を格納するファイルの格納先を指定します。

キャッシュの情報を格納するファイルを，キャッシュファイルといいます。

ディスクキャッシュ，および2Wayキャッシュを使用する場合は，キャッシュファイルの格納先を指定します。

(1)　キャッシュファイルの種類

キャッシュファイルには次の3種類があります。

(a)　キャッシュデータファイル

キャッシュに格納するデータ（keyおよびvalue）を格納するファイルです。

(b)　キャッシュインデックスファイル

キャッシュデータファイルに含まれるデータのインデックスを格納するファイルです。

キャッシュデータファイルと同じ数のファイルが作成されます。

(c)　キャッシュ情報ファイル

キャッシュの設定情報を格納するファイルです。

キャッシュごとにファイルが1つ作成されます。

(2)　キャッシュファイルの格納先の設定

キャッシュファイルの格納先を指定します。

キャッシュファイルのうち，キャッシュデータファイルの格納先は必ず指定します。キャッシュファイルの格納先を次の表に示します。

表7‒9　キャッシュファイルの格納先とファイル名

項番

キャッシュファイル種別

格納先

ファイル名

1

キャッシュデータファイル

＜キャッシュ定義のeads.cache.disk.<n>.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞

eads_data_[EADsサーバID]_[キャッシュ名]_[レンジID]_[nnnnn].ecf

2

キャッシュインデックスファイル

＜キャッシュ定義のeads.cache.disk.info.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞

eads_index_[EADsサーバID]_[キャッシュ名]_[レンジID]_[nnnnn].ecf

3

キャッシュ情報ファイル

＜キャッシュ定義のeads.cache.disk.info.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞

eads_info_[EADsサーバID]_[キャッシュ名].ecf

（凡例）

[レンジID]：キャッシュ内のレンジを識別するための番号（01〜96の整数）です。データのコピー元EADsサーバのサーバIDと一致します。

[nnnnn]：ファイル数の連番（5桁の整数）です。

(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）の格納先

7.7.3　キャッシュファイルのサイズの設定

キャッシュファイルのサイズの設定については，「4.4　キャッシュファイルの容量を見積もる」を参照してください。

7.7.4　キャッシュの運用に依存するパラメタ

キャッシュの運用に依存するパラメタの一覧を次の表に示します。

なお，必ず指定するパラメタを太字で表記しています。

表7‒10　キャッシュの運用に依存するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

サーバ定義ファイル

eads.cache.disk.getError.isolate.enable

ture

false

true

2

キャッシュ定義ファイル

eads.cache.type

Memory

Disk

2Way

なし

3

eads.cache.disk.info.dir

パス名

＜運用ディレクトリ＞/store

4

eads.cache.disk.<n>.dir

パス名

なし

5

eads.cache.disk.filesize

ファイルサイズ（16メガバイト〜128メガバイト）

なし

6

eads.cache.disk.filenum

ファイル数（8〜32768）

なし

7

eads.cache.disk.blocksize

データサイズ

1キロバイト

2キロバイト

4キロバイト

8キロバイト

16キロバイト

32キロバイト

64キロバイト

128キロバイト

1キロバイト

8

eads.cache.restore.dataSender.sendInterval

0〜60000（ミリ秒）

1000ミリ秒

9

eads.cache.restore.dataSender.sendSize

10240バイト〜2147483647バイト

102400バイト

注意事項

キャッシュ定義ファイルの次のパラメタの定義内容は，クラスタを構成する全EADsサーバで同じになるようにしてください。同じでないとキャッシュを作成できません。

eads.cache.type

eads.cache.disk.filesize

eads.cache.disk.filenum

eads.cache.disk.blocksize

(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）

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

・getLastUpdateTime()

・getValueUsageSize()

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.disk.info.dir

キャッシュ情報ファイル，およびキャッシュインデックスファイルの格納先を指定します。

格納先ディレクトリのパスには，最大200文字の半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），コロン（:），およびセパレータ（Linuxの場合はスラッシュ（/），Windowsの場合は円符号（¥））が指定できます。

このパラメタに指定したディレクトリ下に格納されるファイルのファイル名については，「7.7.2(2)　キャッシュファイルの格納先の設定」を参照してください。

注意事項

同一EADsサーバ内で，このパラメタの指定値の絶対パスとeads.cache.disk.<n>.dirパラメタの指定値の絶対パスが同じにならないようにしてください。

(c)　eads.cache.disk.<n>.dir

キャッシュデータファイルの格納先を指定します。

<n>には，1〜データの多重度（eads.replication.factorパラメタの指定値）の整数を指定します。

データを多重化している場合は，データの多重度の数だけ，このパラメタを指定します。

格納先ディレクトリのパスには，最大1,024文字の半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），コロン（:），およびセパレータ（Linuxの場合はスラッシュ（/），Windowsの場合は円符号（¥））が指定できます。

このパラメタに指定したディレクトリ下に格納されるファイルのファイル名については，「7.7.2(2)　キャッシュファイルの格納先の設定」を参照してください。

注意事項

同一EADsサーバ内で，このパラメタの指定値の絶対パスとeads.cache.disk.info.dirパラメタの指定値の絶対パスが同じにならないようにしてください。

eads.cache.disk.info.dirパラメタに指定したディレクトリ直下のディレクトリを指定する場合，キャッシュ名と同じ名前のディレクトリを指定しないでください。

クラスタを構成するEADsサーバ間で，キャッシュデータファイルの格納先にSSDとHDDを混在させるなど，極端に速度差が発生するようなディスク構成にすることはできません。

1台の物理マシン上で複数のEADsサーバを動作させる場合，EADsサーバごとに異なる格納先を指定してください。

(d)　eads.cache.disk.filesize

1レンジ当たりのキャッシュデータファイルのサイズ（単位：メガバイト）を指定します。

(e)　eads.cache.disk.filenum

1レンジ当たりのキャッシュデータファイルの面数を指定します。

(f)　eads.cache.disk.blocksize

キャッシュデータファイルに1回で書き込むデータサイズ（単位：キロバイト）を指定します。

キャッシュデータファイルの格納先の媒体がHDDの場合は，このパラメタには1キロバイト（デフォルト）を指定してください。SSDの場合は，SSDのページサイズを指定してください。

(g)　eads.cache.restore.dataSender.sendInterval

ディスクキャッシュ，および2Wayキャッシュの復旧処理でのデータ送信間隔（単位：ミリ秒）を指定します。

このパラメタの指定値とキャッシュ定義のeads.cache.restore.dataSender.sendSizeパラメタの指定値は，次の式を満たすように設定してください。

復旧処理のデータ送信に使用できる帯域（単位：bps）≧

　MAX（各キャッシュの復旧処理のデータ送信に使用できる帯域（単位：bps））

MAX：

計算結果の最も大きい値を選ぶことを示しています。

（例）MAX（3×6，4＋7）の計算結果は18となります。

各キャッシュの復旧処理のデータ送信に使用できる帯域（単位：bps）：

キャッシュごとに，次の式で求めます。

メモリキャッシュの場合

復旧処理のデータ送信に使用できる帯域（単位：bps）≧

　（復旧処理で送信するデータサイズ（単位：バイト）×8）

　÷｛（復旧処理でのデータ送信間隔（単位：ミリ秒）

　＋データ送信に掛かる時間（単位：ミリ秒））÷1,000｝

復旧処理で送信するデータサイズ（単位：バイト）：

サーバ定義のeads.restore.dataSender.sendSizeの指定値

復旧処理でのデータ送信間隔（単位：ミリ秒）：

サーバ定義のeads.restore.dataSender.sendIntervalパラメタの指定値

データ送信に掛かる時間（単位：ミリ秒）：

サーバ定義のeads.restore.dataSender.sendSizeパラメタに指定したサイズのデータ送信に掛かる時間（単位：ミリ秒）

ディスクキャッシュおよび2Wayキャッシュの場合

復旧処理のデータ送信に使用できる帯域（単位：bps）≧

　（復旧処理で送信するデータサイズ（単位：バイト）×8）

　÷｛（復旧処理でのデータ送信間隔（単位：ミリ秒）

　＋データ送信に掛かる時間（単位：ミリ秒））÷1,000｝

復旧処理で送信するデータサイズ（単位：バイト）：

キャッシュ定義のeads.cache.restore.dataSender.sendSizeの指定値

復旧処理でのデータ送信間隔（単位：ミリ秒）：

キャッシュ定義のeads.cache.restore.dataSender.sendIntervalパラメタの指定値

データ送信に掛かる時間（単位：ミリ秒）：

キャッシュ定義のeads.cache.restore.dataSender.sendSizeパラメタに指定したサイズのデータ送信に掛かる時間（単位：ミリ秒）

「9.3.2(5)　クラスタの復旧処理」の図中の「復旧処理（データ送信）」に掛かる時間を示します。この時間は環境によって異なります。

復旧処理に掛かる時間を短くすると，復旧処理の通信負荷が高くなります。逆に，復旧処理の通信負荷を低くすると，復旧処理に掛かる時間が長くなります。

メモリキャッシュを使用する場合，このパラメタの指定は無効になり，サーバ定義のeads.restore.dataSender.sendIntervalパラメタの指定値が有効となります。

復旧処理については，「9.3.2(5)　クラスタの復旧処理」を参照してください。

注意事項

ディスクの書き込み性能を超えないように，このパラメタの指定値を決定してください。

(h)　eads.cache.restore.dataSender.sendSize

ディスクキャッシュ，および2Wayキャッシュの復旧処理で送信するデータサイズ（単位：バイト）を指定します。

復旧処理では，データの整合性を回復するために，稼働中のEADsサーバが復旧対象のEADsサーバにデータを送信します。eads.cache.restore.dataSender.sendIntervalパラメタに指定した間隔で，このパラメタの指定値を超えるまで，10キロバイト単位でデータを連続して送信します。

メモリキャッシュを使用する場合，このパラメタの指定は無効になり，サーバ定義のeads.restore.dataSender.sendSizeパラメタの指定値が有効となります。

注意事項

復旧処理では最低1個のデータを送信します。そのため，送信データのサイズが，このパラメタの指定値を超えることがあります。なお，このパラメタにEADsサーバに格納しているデータのサイズよりも小さい値を指定しても，送信量を制限することはできません。

復旧データの転送速度がディスクの書き込み速度を超えないように，このパラメタの指定値を決定してください。

8　環境依存パラメタを設計する（EADsクライアント）

この章では，EADsクライアントの，環境依存パラメタの設計指針について説明します。

8.1　定義ファイルの種類（EADsクライアント）

EADsクライアントで使用する定義ファイルの種類を次の表に示します。

この章では，環境依存パラメタについてだけ説明しています。クライアント定義ファイルに指定できるパラメタの一覧については，「23.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.logger.message.console.enable=true
eads.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.node.listパラメタで指定したEADsサーバからランダムに接続先を決定します（2回目以降の接続では，EADsサーバから取得したクラスタ構成情報に従って接続先を選択します）。

クライアント定義に複数のEADsサーバを指定しておくことで，EADsサーバに接続できないときに，別のEADsサーバに接続を試みることができます。

通信処理の仕組みについては「2.2　EADsの通信処理の仕組み」を参照してください。

図8‒1　通信に依存するパラメタの設計（EADsクライアント）

8.3.2　通信に依存するパラメタ

通信に依存するパラメタの一覧を次の表に示します。

なお，必ず指定するパラメタを太字で表記しています。

表8‒2　通信に依存するパラメタ一覧（EADsクライアント）

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

クライアント定義ファイル

eads.client.node.list

接続先EADsサーバを識別するための名称（任意の名称）

なし

2

eads.client.＜接続先EADsサーバ＞.address

IPアドレスまたはホスト名

なし

3

eads.client.＜接続先EADsサーバ＞.port

ポート番号

24600

(1)　クライアント定義ファイル

(a)　eads.client.node.list

EADsクライアントの初期設定時に接続する，接続先EADsサーバを識別するための名称（任意の名称）を指定します。

名称には，半角英数字（0〜9，A〜Z，a〜z）が指定できます。

複数指定する場合は，コンマ区切りで指定してください。複数指定する場合，EADsサーバへの初回接続時，EADsクライアントはこのパラメタに指定したEADsサーバからランダムに決定します。2回目以降の接続では，EADsサーバから取得したクラスタ構成情報に従って接続先を選択します。

EADsサーバへの接続に失敗した場合は，接続に失敗したEADsサーバを基点として，指定された順にEADsサーバへの接続が試行されます。

(b)　eads.client.＜接続先EADsサーバ＞.address

EADsクライアントの初期設定時に接続する，接続先EADsサーバのIPアドレスまたはホスト名を指定します。

ホスト名で指定する場合は，ホスト名からIPアドレスが一意に識別できるホスト名を指定してください。

eads.client.node.listパラメタと対で指定します。接続先EADsサーバには，eads.client.node.listパラメタに指定したEADsサーバを識別するための名称を指定してください。

(c)　eads.client.＜接続先EADsサーバ＞.port

EADsクライアントの初期設定時に接続する，接続先EADsサーバのポート番号を指定します。

eads.client.node.listパラメタと対で指定します。接続先EADsサーバには，eads.client.node.listパラメタに指定したEADsサーバを識別するための名称を指定してください。

(d)　eads.client.node.listパラメタの指定例

eads.client.node.listパラメタの指定例を次に示します。

eads.client.node.list=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

通信トレースファイル

通信に関するトレース情報を出力するファイルです。

3

保守ログファイル

システムが使用するファイルです。

ユーザが設定するパラメタはありません。

8.4.2　ファイルの出力先の設定

ログファイルの出力先は変更できます。ファイルの出力先を次の表に示します。

表8‒4　ファイルの出力先の設定（EADsクライアント）

ログファイル名

出力先

ファイル名

メッセージログファイル

＜eads.logger.dirパラメタに指定したディレクトリ＞/＜EADsクライアント名※＞

eads_client_message[n].log

通信トレースファイル

eads_client_comm_trace[n].log

保守ログファイル

＜eads.logger.dirパラメタに指定したディレクトリ＞/＜EADsクライアント名※＞/maintenance

eads_client_maintenance[n].log

（凡例）

[n]：ファイル数の通番です。

注※

クライアントAPIで指定したEADsクライアント名です。EADsクライアント名が空文字列の場合，EADsクライアント名のサブディレクトリを省略して出力します。

注意事項

ファイルの出力先に，ネットワークで接続された別マシンのディレクトリは指定できません。

8.4.3　ファイルサイズおよびファイル数の設定

ログファイルのファイルサイズおよびファイル数は，基本的にデフォルト値を設定してください。EADsクライアント構築後，必要に応じてパラメタの指定値を変更してください。

8.4.4　ログファイルに依存するパラメタ

ログファイルに依存するパラメタの一覧を次の表に示します。

なお，必ず指定するパラメタを太字で表記しています。

表8‒5　ログファイルに依存するパラメタ一覧（EADsクライアント）

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

クライアント定義ファイル

eads.logger.dir

パス名

なし

2

eads.logger.message.filesize

ファイルサイズ（4096バイト〜2147483647バイト）

1048576バイト

3

eads.logger.message.filenum

ファイル数（1〜16）

2

4

eads.logger.message.console.enable

true

false

false

5

eads.logger.commTrace.enable

true

false

false

6

eads.logger.commTrace.filesize

ファイルサイズ（4096バイト〜2147483647バイト）

4194304バイト

7

eads.logger.commTrace.filenum

ファイル数（1〜16）

2

8

eads.logger.commTrace.commNo.prefix

プレフィックス（0〜127）

0

(1)　クライアント定義ファイル

(a)　eads.logger.dir

ログファイルの出力先ディレクトリのパスを指定します。

指定されたパスが存在しない場合は作成します。

このパラメタに指定したディレクトリ下に出力されるログファイルについては，「8.4.2　ファイルの出力先の設定」を参照してください。

なお，複数プロセスで同じ出力先を同時に使用しないでください。

(b)　eads.logger.message.filesize

メッセージログの1ファイル当たりのファイルサイズ（単位：バイト）を指定します。

(c)　eads.logger.message.filenum

メッセージログのファイル数を指定します。

(d)　eads.logger.message.console.enable

メッセージログの標準出力への出力を有効にするか，無効にするかを指定します。

true：

標準出力への出力を有効にします。

false：

標準出力への出力を無効にします。

(e)　eads.logger.commTrace.enable

通信トレースの出力を有効にするか，無効にするかを指定します。

true：

通信トレースの出力を有効にします。

false：

通信トレースの出力を無効にします。

通信トレースの出力を有効にすると，保守情報を取得できます。ただし，性能に影響を与えるおそれがあります。

注意事項

通信トレースの出力を無効にする場合，障害発生時の原因調査ができないおそれがあります。

例えば，EADsクライアント・EADsサーバ間で通信障害が発生した場合，通信時の情報がないため，EADsクライアントとEADsサーバのどちらに原因があるのか特定できません。

(f)　eads.logger.commTrace.filesize

通信トレースの1ファイル当たりのファイルサイズ（単位：バイト）を指定します。

eads.logger.commTrace.enableパラメタがfalseの場合，この指定は無効となります。

(g)　eads.logger.commTrace.filenum

通信トレースのファイル数を指定します。

eads.logger.commTrace.enableパラメタがfalseの場合，この指定は無効となります。

(h)　eads.logger.commTrace.commNo.prefix

PRFトレースに出力されるRootAP情報の通信番号（RootAP CommNo.）に含めるプレフィックスを指定します。

1プロセス内に複数のクラスローダを持ち，それぞれでライブラリを使用する場合，RootAP情報が一意となるように指定します。

RootAP情報の通信番号は16桁の16進数です。プレフィックスは9桁目から10桁目に該当します。

（例）

00000000XXYYYYYY

XX：プレフィックス

YYYYYY：000001からFFFFFFまでの値

eads.logger.commTrace.enableパラメタがfalseの場合，この指定は無効となります。

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

この章では，チューニングパラメタの設計指針について説明します。

9.1　メモリ・バッファに関連するパラメタの設計

メモリ・バッファに関連するパラメタを設計します。

9.1.1　メモリサイズの設定

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

Explicitヒープは，次の領域から構成されます。

更新操作の履歴が格納される領域

メモリキャッシュ，および2Wayキャッシュの場合に，keyとvalueのうち，value部分を格納するための領域

更新操作の履歴とは，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.consensus.message.send.queuesizeパラメタで，送信キューに格納できるデータの最大サイズを，サーバ定義のeads.consensus.message.send.max_queuedatasizeパラメタで設定できます。

なお，クラスタ定義のeads.cache.prepare.numパラメタで，一度に合意できる処理の最大数を設定することもできます。

最大同時接続数および最大同時実行スレッド数の設定については，「9.2　スレッドプールおよびコネクションプールに関連するパラメタの設計」を参照してください。

考え方

扱うデータ量に合わせてバッファサイズを調節することで，効率良くデータを送受信できます。

9.1.3　メモリ・バッファに関連するパラメタ

メモリ・バッファに関連するパラメタの一覧を次の表に示します。

表9‒1　メモリ・バッファに関連するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

サーバ定義ファイル

eads.connection.buffersize

バッファサイズ（1024バイト〜16777216バイト）

4096バイト

2

eads.server.max.datasize.enable

true

false

false

3

eads.server.max.datasize

1024バイト〜67108864バイト

67108864バイト

4

eads.consensus.message.buffersize

バッファサイズ（1024バイト〜16777216バイト）

131071バイト

5

eads.consensus.message.send.queuesize

キューの長さ

（10000〜1000000）

100000

6

eads.consensus.message.send.max_queuedatasize

1048576バイト〜2147483647バイト

16777216バイト

7

eads.restore.connection.buffersize

バッファサイズ（1024バイト〜16777216バイト）

131071バイト

8

eads.restore.dataSender.sendSize

10240バイト〜2147483647バイト

1048576バイト

9

eads.consensus.fillgap.copy.dataSize

1024バイト〜16777216バイト

10240バイト

10

eads.consensus.external.heapsize

1メガバイト〜268435456メガバイト

450メガバイト

11

eads.management.resume.sendSize

0バイト〜2147483647バイト

1048576バイト

12

クラスタ定義ファイル

eads.server.max_key_size

1バイト〜1024バイト

1024バイト

13

eads.cache.prepare.num

1〜100

10

14

起動設定ファイル

eads.prf.buffersize

バッファサイズ（512キロバイト〜102400キロバイト）

8192キロバイト

15

eads.java.heapsize

ヒープサイズ※1

3072メガバイト

16

eads.java.external.heapsize

ヒープサイズ（2メガバイト〜2147483647メガバイト）

1024メガバイト

17

eads.java.permanent.size

メモリサイズ※2

83メガバイト

18

クライアント定義ファイル

eads.connection.buffersize

バッファサイズ（1024バイト〜16777216バイト）

4096バイト

注※1

指定した値が，JavaVMのヒープサイズオプション（-Xmxおよび-Xms）に適用されます。

注※2

指定した値が，JavaVMのメモリサイズオプション（-XX:PermSizeおよび-XX:MaxPermSize）に適用されます。

(1)　サーバ定義ファイル

(a)　eads.connection.buffersize

データの送受信バッファのサイズ（単位：バイト）を指定します。

(b)　eads.server.max.datasize.enable

EADsサーバが受け付けるデータの最大サイズのチェックを有効にするか，無効にするかを指定します。

true：

データの最大サイズのチェックを有効にします。

false：

データの最大サイズのチェックを無効にします。

(c)　eads.server.max.datasize

EADsサーバが受け付けるデータの最大サイズ（単位：バイト）を指定します。

eads.server.max.datasize.enableパラメタがfalseの場合，この指定は無効となります。

(d)　eads.consensus.message.buffersize

合意メッセージの送受信バッファサイズ（単位：バイト）を指定します。

OSで設定されたTCPのウィンドウサイズを指定することを推奨します。

なお，OSによって，このパラメタに指定した値と異なるサイズのバッファが使用されることがあります。

(e)　eads.consensus.message.send.queuesize

合意メッセージの送信キューの長さを指定します。

送信キューは，合意メッセージの送信先となるEADsサーバの数だけ確保されます。

次の計算式から見積もってください。見積もった結果，このパラメタの最小値よりも小さい場合は，最小値を設定してください。

2×a×b＋2×a×キャッシュ数＋（c−1）×a×キャッシュ数

a：クラスタ定義のeads.cache.prepare.numパラメタの指定値

b：サーバ定義のeads.cluster.controller.cache.max_execute_threadsパラメタの指定値

c：クラスタ定義のeads.replication.factorパラメタの指定値

注意事項

設定した送信キューの長さを超える量の合意メッセージが送信キューに入った場合，通信エラーになります。

(f)　eads.consensus.message.send.max_queuedatasize

合意メッセージの送信キューに格納できるデータの最大サイズ（単位：バイト）を指定します。

次の計算式から見積もってください。

2×a×b×（c＋キャッシュ数）＋d×（e−1）×キャッシュ数

a：クラスタ定義のeads.cache.prepare.numパラメタの指定値

b：更新操作の履歴の最大サイズ

更新操作の履歴の最大サイズ（単位：バイト）を見積もる計算式を次に示します。

クラスタ定義のeads.server.max_key_sizeパラメタの指定値＋valueの最大サイズ※×2

注※　put，create，update，replace実行時に指定するvalueの最大サイズです。

c：サーバ定義のeads.cluster.controller.cache.max_execute_threadsパラメタの指定値

d：サーバ定義のeads.consensus.fillgap.copy.dataSizeパラメタの指定値

e：クラスタ定義のeads.replication.factorパラメタの指定値

注意事項

見積もった結果に対して非常に小さい値を設定した場合，送信キューあふれによるリトライが頻発し，処理が継続できなくなるおそれがあります。

(g)　eads.restore.connection.buffersize

復旧処理で使用するデータの送受信バッファサイズ（単位：バイト）を指定します。

OSで設定されたTCPのウィンドウサイズを指定することを推奨します。

なお，OSによって，このパラメタに指定した値と異なるサイズのバッファが使用されることがあります。

(h)　eads.restore.dataSender.sendSize

復旧処理で送信するデータサイズ（単位：バイト）を指定します。

復旧処理では，データの整合性を回復するために，稼働中のEADsサーバが復旧対象のEADsサーバにデータを送信します。eads.restore.dataSender.sendIntervalパラメタに指定した間隔で，このパラメタの指定値を超えるまで，10キロバイト単位でデータを連続して送信します。

復旧処理については，「9.3.2(5)　クラスタの復旧処理」を参照してください。

ディスクキャッシュ，および2Wayキャッシュを使用する場合，このパラメタの指定は無効になり，キャッシュ定義のeads.cache.restore.dataSender.sendSizeパラメタの指定値が有効となります。

注意事項

復旧処理では最低1個のデータを送信します。そのため，このパラメタにEADsサーバに格納しているデータのサイズよりも小さい値を指定しても，送信量を制限することはできません。

(i)　eads.consensus.fillgap.copy.dataSize

EADsサーバに対して，更新操作の履歴の補完処理でデータをコピーする際，1回当たりに送信するデータサイズ（単位：バイト）を指定します。

更新操作の履歴の補完処理については，「9.3.2(6)　更新操作の履歴の補完処理」を参照してください。

次の計算式から見積もってください。

更新操作の履歴の最大サイズ×合意処理で一度に合意できる処理の最大数

更新操作の履歴の最大サイズ：

更新操作の履歴の最大サイズ（単位：バイト）を見積もる計算式を次に示します。

クラスタ定義のeads.server.max_key_sizeパラメタの指定値＋valueの最大サイズ※×2

注※　put，create，update，replace実行時に指定するvalueの最大サイズです。

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

クラスタ定義のeads.cache.prepare.numパラメタの指定値

注意事項

メモリ使用量やCPU使用率に影響するため，必要以上に大きな値を設定しないでください。

このパラメタの指定値を超えるサイズのデータが送信されることがあります。

データサイズを小さく設定しても，最低1履歴分は補完処理が行われます。

(j)　eads.consensus.external.heapsize

更新操作の履歴が格納される領域のサイズ（単位：メガバイト）を指定します。

このパラメタの指定値が，起動設定のeads.java.external.heapsizeパラメタの指定値×0.97（メガバイト単位で小数点以下は切り捨て）より大きい場合，EADsサーバの起動に失敗するので注意してください。

(k)　eads.management.resume.sendSize

eztool resumeコマンド実行時に，1回で転送する差分のデータサイズ（単位：バイト）を指定します。

0を指定すると，1回の通信でデータ1つを送信します。

(2)　クラスタ定義ファイル

(a)　eads.server.max_key_size

クラスタに格納できるkeyの最大サイズ（単位：バイト）を指定します。

このパラメタに指定したサイズでkeyの格納領域を確保します。

keyの最大サイズを制限することで，デフォルトのまま使用するよりも，keyが格納されるJavaヒープのサイズを小さく設計することができます。

注意事項

keyの最大サイズを大きく設定したクラスタで出力されたストアデータファイルは，それよりも小さく設定したクラスタでは読み込めないことがあります。

ディスクキャッシュ，および2Wayキャッシュを使用する場合，keyの最大サイズを大きく設定したクラスタで出力されたキャッシュデータファイルとキャッシュインデックスファイルは，それよりも小さく設定したクラスタでは，データの再配置に使用できないことがあります。

(b)　eads.cache.prepare.num

合意処理で，一度に合意できる処理の最大数を指定します。

次に示す値のうち，小さい方の値を設定してください。ただし，EADsサーバ間で値が異なる場合は，クラスタ内で最大の値を設定してください。

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

サーバ定義のeads.server.cache.max_execute_threadsパラメタの指定値＋サーバ定義のeads.server.function_container.max_execute_threadsパラメタの指定値

注意事項

メモリ使用量に影響するため，必要以上に大きな値を設定しないでください。

(3)　起動設定ファイル

(a)　eads.prf.buffersize

PRFデーモンが共用メモリに確保するバッファのサイズ（単位：キロバイト）を指定します。

起動設定のeads.prf.filesizeパラメタの指定値よりも大きな値は指定できません。

(b)　eads.java.heapsize

keyが格納されるJavaヒープのサイズ（単位：メガバイト）を指定します。

(c)　eads.java.external.heapsize

valueおよび更新操作の履歴が格納されるExplicitヒープのサイズ（単位：メガバイト）を指定します。

指定したExplicitヒープサイズの3%（メガバイト単位で小数点以下は切り上げ）は管理領域として使用されます。

サーバ定義のeads.consensus.external.heapsizeパラメタの指定値が，このパラメタの指定値×0.97（メガバイト単位で小数点以下は切り捨て）より大きい場合，EADsサーバの起動に失敗するので注意してください。

(d)　eads.java.permanent.size

Permanent領域のサイズ（単位：メガバイト）を指定します。

Permanent領域は，ロードされたEADsサーバ，ユーザファンクション，ユーザイベントハンドラのclassなどが格納される領域です。

(4)　クライアント定義ファイル

(a)　eads.connection.buffersize

データの送受信バッファのサイズ（単位：バイト）を指定します。

9.2　スレッドプールおよびコネクションプールに関連するパラメタの設計

同時に実行されるリクエスト処理数に応じて，スレッドプールおよびコネクションプールに関連するパラメタを設計します。

9.2.1　最大同時接続数の設定

EADsでは，スレッドプールおよびコネクションプールを使用することで，スレッドやコネクションの生成に掛かるオーバヘッドを軽減し，スループットの向上を図ります。スレッドプールおよびコネクションプールについては，「2.13　スレッドプールおよびコネクションプールを使用したスループットの向上」を参照してください。

考え方

最大同時接続数（サーバ定義のeads.server.max_connectionsパラメタの指定値）を調節することで，リソースの使用効率を改善できます。

9.2.2　最大同時実行スレッド数の設定

EADsサーバは，EADsクライアントからの同時接続数および同時実行スレッド数を制御します。

同時実行スレッド数については，EADsサーバに対するリクエストをデータ操作とユーザファンクションに分けて制御します。

データ操作の同時実行スレッド数

サーバ定義のeads.server.cache.max_execute_threadsパラメタで指定します。

EADsクライアント・EADsサーバ間の接続を切断するまでの間（サーバ定義のeads.server.session.keepAlive.timeoutパラメタの指定値），最大同時実行スレッド数を超えるリクエストはキューに待機します。

ユーザファンクションの同時実行スレッド数

ユーザファンクションごとの同時実行スレッド数（ファンクション定義のeads.function.＜ユーザファンクション名＞.max_execute_threadsパラメタ）を制御し，その上でユーザファンクション全体の同時実行スレッド数（サーバ定義のeads.server.function_container.max_execute_threadsパラメタ）を制御します。

考え方

最大同時実行スレッド数を調節することで，リソースの使用効率を改善できます。

9.2.3　スレッドプールおよびコネクションプールに関連するパラメタ

スレッドプールおよびコネクションプールに関連するパラメタの一覧を次の表に示します。

表9‒2　スレッドプールおよびコネクションプールに関連するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

サーバ定義ファイル

eads.server.max_connections

1〜1024

10

2

eads.server.cache.max_execute_threads

1〜eads.server.max_connectionsパラメタの指定値

eads.server.max_connectionsパラメタの指定値

3

eads.server.function_container.max_execute_threads

1〜eads.server.max_connectionsパラメタの指定値

eads.server.max_connectionsパラメタの指定値

4

eads.cluster.controller.cache.max_execute_threads

0〜1024

0

5

ファンクション定義ファイル

eads.function.＜ユーザファンクション名＞.max_execute_threads

0〜eads.server.function_container.max_execute_threadsパラメタの指定値

0

6

クライアント定義ファイル

eads.connectionPool.poolsize

1〜1024

10

7

eads.connectionPool.exceedMaxSizeError.enable

true

false

false

(1)　サーバ定義ファイル

(a)　eads.server.max_connections

EADsサーバへの最大同時接続数を指定します。

最大同時接続数を超える接続に対しては，エラーを返却し，通信を切断します。

接続するEADsクライアントのクライアント定義に設定したeads.connectionPool.poolsizeパラメタの値の総和以上を設定してください。

なお，eads.connectionPool.poolsizeパラメタに設定した値はListenキューのbacklogにも設定されます。設定値がOS の制限値を超えた場合は，OSの制限値が設定されます。

クライアント定義のeads.connectionPool.poolsizeパラメタに設定する値を考慮して，OSの制限値を拡張してください。制限値を拡張する方法については，OSのマニュアルを参照してください。

(b)　eads.server.cache.max_execute_threads

データ操作の最大同時実行スレッド数を指定します。

(c)　eads.server.function_container.max_execute_threads

ユーザファンクション全体の最大同時実行スレッド数を指定します。

(d)　eads.cluster.controller.cache.max_execute_threads

キャッシュ単位に行われる処理の最大同時実行スレッド数を指定します。

EADsサーバの縮退処理，復旧処理，および排他制御は，キャッシュ単位に行われるため，キャッシュ数が増えるほど実行数も多くなります。

このパラメタの指定値を大きくすると，これらの処理の並列実行性を向上させ，EADsサーバの縮退処理や復旧処理に掛かる時間を軽減できます。ただし，指定値を大きくし過ぎると，リソースを多く消費し，ほかの処理に影響を与えるおそれがあるため，注意してください。

キャッシュが1つの場合は，基本的にデフォルト値を設定してください。

キャッシュが複数で，並列実行性を向上させたい場合は，（データの多重度−1）×キャッシュ数を設定してください。

注意事項

0を指定した場合，データの多重度−1の値が設定されます。ただし，データの多重度が1の場合は，1が設定されます。

(2)　ファンクション定義ファイル

(a)　eads.function.＜ユーザファンクション名＞.max_execute_threads

ユーザファンクション単位の最大同時実行スレッド数を指定します。

ユーザファンクション名には，完全修飾クラス名を指定します。

0を指定した場合は無制限となります。

(3)　クライアント定義ファイル

(a)　eads.connectionPool.poolsize

同一接続先に対してプールしておく，コネクションの最大個数を指定します。

指定した個数まで，コネクションを確立できます。

クライアントAPIを同時に実行するスレッド数の値を設定してください。

(b)　eads.connectionPool.exceedMaxSizeError.enable

同一接続先に対してプールしておくコネクションがすでに最大個数に達していて，すべて使用中の場合に，EADsクライアントからのリクエストをエラーにするかどうかを指定します。

true：

クライアントAPIをエラーにします。

false：

クライアントAPIをエラーにしません。クライアントAPIは処理待ちとなります。

9.3　タイムアウトに関連するパラメタの設計

タイムアウトに関連するパラメタを設計します。

9.3.1　通信を監視するタイマの設定

TCPプロトコルを使用するEADsクライアント・EADsサーバ間の通信では，次に示す時間を監視することによって，通信障害を検知しています。

ソケットによる接続開始から接続完了までの時間

データの書き込み開始から書き込み完了までの時間

データの読み込み開始から読み込み完了までの時間

データの読み込みについては，1つの電文を受信する際に複数回発生することがあります。

考え方

監視時間を短くすることで通信障害を検知するスピードを早めたり，長くすることで頻繁にタイムアウトが発生するのを防いだりします。

(1)　EADsクライアント・EADsサーバ間での通信タイムアウトの設定

EADsクライアント・EADsサーバ間の通信では，次の図に示す通信タイムアウトが設定できます。

図9‒1　EADsクライアント・EADsサーバ間での通信タイムアウトの設定

通信タイムアウトの設定で使用するパラメタを次の表に示します。表の項番は，図9-1の(1)〜(6)に対応しています。

表9‒3　通信タイムアウトの設定で使用するパラメタ

項番

設定するタイムアウト

定義ファイル

パラメタ名

1

EADsサーバへの接続

クライアント定義ファイル

eads.connection.send.timeout

2

EADsサーバへのデータ送信

3

EADsサーバからのデータ受信

eads.connection.receive.timeout

4

EADsクライアントからのデータ受信

サーバ定義ファイル

eads.connection.timeout

5

EADsクライアントへのデータ送信

6

通信のない常設コネクションの切断

eads.server.session.keepAlive.timeout

EADsクライアント・EADsサーバ間の通信で，タイムアウトが設定できる個所を次の図に示します。

図9‒2　EADsクライアント・EADsサーバ間の通信で，タイムアウトが設定できる個所

各タイムアウト（図中の(1)〜(6)）に設定する値の考え方については，次の個所で説明します。

「9.3.1(2)　通信タイムアウトに設定する値の考え方」

「9.3.1(3)　常設コネクション切断までのタイムアウト値の設定」

また，ポイントとなる項目（★1〜★5）については，「9.3.1(4)　タイムアウトに設定する値を考慮する際のポイント」で説明します。

(2)　通信タイムアウトに設定する値の考え方

通信タイムアウト（図9-2の(1)〜(5)）は，設定したタイムアウト時間内に処理が完了することを期待するものではなく，次のような状態を検知するための機能です。

通信路の物理的な切断

通信先の障害などによる，通信先との通信路の切断

そのため，期待する時間内に応答がない場合でも，通信タイムアウトの機能で通信を切断することは推奨しません。

EADsサーバの処理は，EADsクライアントとの通信路の状態とは関係なく進みます。EADsクライアントへの応答時に通信路の切断を検知しても，データのロールバックは行いません。そのため，通信タイムアウトの機能で通信を切断してしまうと，EADsクライアントでは，データ操作の結果がわからなくなります。

処理の遅延やネットワークの遅延ではなく，通信先の障害や通信路の切断などを正しく検知できるように，通信タイムアウトの時間をチューニングすることを推奨します。

(3)　常設コネクション切断までのタイムアウト値の設定

常設コネクション切断までのタイムアウト値の設定（図9-2の(6)）は，AP（ユーザプログラム）が動作するOS，またはホストがダウンした場合にEADsサーバが気づくことができない場合に，OSに設定されたTCPのkeep-aliveのアイドル時間までコネクション，およびスレッドが占有されることを防ぐためのものです。

設定する際は次の3点を考慮して，ほかの機能に問題のない範囲で，かつむだな通信の切断やエラーを避けられるように，大きめの値を設定することを推奨します。

EADsクライアント側のコネクション数との関係

EADsクライアントはAPから一定の期間EADsサーバへの操作がないときでも常設コネクションを保持します。常設コネクションはクラスタ構成情報の確認処理のために定期的に使用されます。1つのEADsサーバに対する常設コネクション数は最大で，クライアント定義のeads.connectionPool.poolsizeパラメタで指定した数となります。また，各EADsサーバに対してクライアント定義のeads.client.clusterInfo.update.intervalパラメタに指定した間隔で常設コネクションを使用します。

クラスタ構成情報の確認は1スレッドで実行しているため，OSが正常に動作していないホストのアドレスに対して，クラスタ構成情報の確認処理を行うと，最大でクライアント定義のeads.connection.send.timeoutパラメタに設定した時間の待ちが発生し，その間，ほかのEADsサーバに対するクラスタ構成情報の確認処理で通信が滞ります。

上記の場合で，かつEADsクライアントからのリクエストがないときに，常設コネクションの切断を防ぐために，サーバ定義のeads.server.session.keepAlive.timeoutパラメタの値には，次の関係を保つことができる，十分な時間を設定する必要があります。

サーバ定義のeads.server.session.keepAlive.timeoutパラメタの指定値

　＞（クライアント定義のeads.connection.send.timeoutパラメタの指定値×〔許容するEADsサーバの障害数〕

　＋クライアント定義のeads.client.clusterInfo.update.intervalパラメタの指定値）

　×クライアント定義のeads.connectionPool.poolsizeパラメタの指定値

なお，EADsサーバプロセスがダウンしてもOSに問題がない場合，上記のeads.connection.send.timeoutパラメタに指定した分の待ち時間は発生しません。そのため，許容するEADsサーバの障害数は，プロセス障害ではなく，ホスト障害などの許容範囲を考慮してください。

EADsサーバ側の接続最大数との関係

サーバ定義のeads.server.max_connectionsパラメタを指定すると，EADsクライアントからの接続数が制限され，設定した値を超えた接続はエラーとなります。

必要最小限の値をこのパラメタに設定している場合，ホストやOSの異常によってEADsサーバ側のネットワークで検知できないネットワーク切断が発生すると，サーバ定義のeads.server.session.keepAlive.timeoutパラメタに設定した時間までEADsサーバの接続が保持されることによって，EADsクライアント側で障害回復後の再接続ができなくなるおそれがあります。この問題を解決するためには，次の式を満たすように，パラメタを設定する必要があります。

サーバ定義のeads.server.session.keepAlive.timeoutパラメタの指定値

　＜〔障害発生からEADsクライアントが再接続までに必要とする時間〕

ただし，障害の内容によって対応に掛かる時間が大きく変わるため，メモリに余裕がある場合は，再接続に使用する数をeads.server.max_connectionsパラメタにあらかじめ加算し，eads.server.session.keepAlive.timeoutパラメタには3600秒など余裕を持った値を設定することを推奨します。

(4)　タイムアウトに設定する値を考慮する際のポイント

タイムアウトに設定する値を考慮する際に，ポイントとなる項目について説明します。なお，このポイントは図9-2の★1〜★5に対応しています。

ポイント1（★1）

EADsクライアントからの通信は，通常，常設コネクションを使用します。そのため，初回接続時や，クライアントライブラリを使用するスレッドが増加した場合にだけ接続処理が発生します。接続タイムアウトには送信タイムアウトと同じ値（クライアント定義のeads.connection.send.timeoutパラメタの値）が使用されます。

ポイント2（★2）

データ送信処理は送信側の送信バッファにデータを格納した時点で送信完了とみなされます。そのため，送信バッファに収まるサイズの送信処理では，受信側プロセスや通信路の状態に関係なく，データの送信処理が成功します（通信路に問題がある場合は，次の受信処理でエラーになります）。

送信バッファより大きいサイズのデータを送信する場合，FullGCなど受信側プロセスの問題で送信エラーが発生することがあります。送信バッファのサイズを超えるような大きなデータを送信する場合は，受信側プロセスのFullGCなどに掛かる時間を考慮する必要があります。

ポイント3（★3）

送信処理，受信処理は，内部では複数回に分けて実行されます。その際，それぞれの処理でタイムアウト値が適用されます。そのため，タイムアウト値は応答が戻るまでの時間を保証するものではありません。

ポイント4（★4）

EADsクライアントは，EADsクライアント側の送信処理が終わった時点から次の読み込み処理に移ります。このとき，送信したデータをEADsサーバが受信しているかどうかは考慮されません。

また，EADsクライアントの受信タイムアウトに含まれる時間には，EADsサーバ上のデータ操作やユーザファンクションの実行時間が含まれます。処理に時間が掛かるユーザファンクションが存在する場合，ユーザファンクションの処理時間に合わせてクライアント定義を設定すると，通常の通信には適さない値となるおそれがあります。そのような場合には，クライアント定義でタイムアウト値を設定するのではなく，タイムアウトつきのAPIの使用を推奨します。

ポイント5（★5）

EADsクライアントへのレスポンス送信を終えたEADsサーバは，次のリクエスト待ちとなります。この受信処理には，通常の通信タイムアウト（サーバ定義のeads.connection.timeoutパラメタで指定した値）ではなく，常設コネクションのタイムアウト（サーバ定義のeads.server.session.keepAlive.timeoutパラメタで指定した値）が適用されます。常設コネクションのタイムアウトの設定値については，「9.3.1(3)　常設コネクション切断までのタイムアウト値の設定」を参照してください。

9.3.2　クラスタを監視するタイマの設定

クラスタ内のEADsサーバは，互いにハートビートを送信し合い，正常に稼働していることをクラスタ内に知らせています。

また，コマンド実行時のクラスタ構成情報の更新確認や，コマンド実行開始から終了までに掛かる時間を監視することによって，通信障害を検知しています。

考え方

監視時間を短くすることで通信障害を検知するスピードを早めたり，長くすることで頻繁にタイムアウトが発生するのを防いだりします。

(1)　ハートビートの送信，および生存確認

ハートビートの送信によるクラスタ監視については，「2.10　クラスタ監視」を参照してください。

ハートビートの送信，および生存確認のタイマを次の図に示します。

図中のアルファベットは，「9.3.3　タイムアウトに関連するパラメタ」の説明と次のように対応しています。

(b)：「9.3.3(1)(b)　eads.cluster.heartbeat.interval」

(c)：「9.3.3(1)(c)　eads.cluster.heartbeat.timeout」

(d)：「9.3.3(1)(d)　eads.cluster.failureDetector.connect.timeout」

(e)：「9.3.3(1)(e)　eads.cluster.failureDetector.read.timeout」

(2)　クラスタの開始

ezstartコマンドを実行してクラスタを開始する場合を例に，EADsサーバ開始時のタイマを次の図に示します。

図中のアルファベットは，「9.3.3　タイムアウトに関連するパラメタ」の説明と次のように対応しています。

(h)：「9.3.3(1)(h)　eads.cluster.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.management.connect.timeout」

(b)：「9.3.3(2)(b)　eads.management.read.timeout」※1

(c)：「9.3.3(2)(c)　eads.management.command.timeout」※2

注※1

次に示すコマンドを実行する場合は，コマンド定義のeads.management.long_running.read.timeoutパラメタの値が適用されます。

eztool export

eztool import

eztool createcache

eztool deletecache

eztool execfunc

eztool importecf

eztool resume

eztool compaction

eztool stop

注※2

次に示すコマンドを実行する場合は，コマンド定義のeads.management.long_running.command.timeoutパラメタの値が適用されます。

eztool export

eztool import

eztool createcache

eztool deletecache

eztool execfunc

eztool importecf

eztool resume

eztool compaction

eztool stop

(4)　EADsサーバの縮退処理

EADsサーバの縮退処理の流れとタイマの関係を次の図に示します。

図中のアルファベットは，「9.3.3　タイムアウトに関連するパラメタ」の説明と次のように対応しています。

(c)：「9.3.3(3)(c)　eads.client.clusterInfo.update.interval」

(j)：「9.3.3(1)(j)　eads.gracefulstop.wait_time」

eztool isolateコマンドを実行してEADsサーバを縮退させる場合，サーバ定義のeads.gracefulstop.wait_timeパラメタで，EADsサーバの縮退処理が完了してから停止するまでの時間を指定できます。クライアント定義のeads.client.clusterInfo.update.intervalパラメタの指定値よりもこの値を大きくすることで，EADsクライアントのクラスタ構成情報の更新完了後に，EADsサーバを停止できます。

なお，クラスタ監視によってEADsサーバが縮退する場合，eads.gracefulstop.wait_timeパラメタの指定は無効となります。

更新操作の履歴の補完処理については，「9.3.2(6)　更新操作の履歴の補完処理」を参照してください。

(5)　クラスタの復旧処理

クラスタを復旧する際のタイマを次の図に示します。

図中のアルファベットは，「9.3.3　タイムアウトに関連するパラメタ」の説明と次のように対応しています。

(l)：「9.3.3(1)(l)　eads.restore.dataSender.send.timeout」

(m)：「9.3.3(1)(m)　eads.restore.dataReceiver.read.timeout」

(n)：「9.3.3(1)(n)　eads.restore.dataSender.sendInterval」

サーバ定義のeads.restore.dataSender.sendSizeパラメタに指定したサイズを超えるまで，10キロバイト単位でデータを連続して送信します。例えば，25キロバイトを指定した場合は，30キロバイトまでデータを送信します。

復旧処理では，データの整合性を回復するために，稼働中のEADsサーバが復旧対象のEADsサーバにデータを送信します。

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

EADsサーバが復旧するまでに，少なくともデータ取得分の時間が掛かります。

データ送信元のEADsサーバでは，データを送信する分，オンライン性能に影響があります。

参考

ディスクキャッシュ，および2Wayキャッシュを復旧する場合は，復旧処理で送信するデータサイズをキャッシュ定義のeads.cache.restore.dataSender.sendSizeパラメタで指定します。また，復旧処理でのデータ送信間隔をeads.cache.restore.dataSender.sendIntervalパラメタで指定します。

データの更新中でも，データの整合性を回復した状態で，縮退したEADsサーバをクラスタに復帰させることができます。縮退状態が発生した場合の復旧までの流れについては，「12.2.1　縮退状態が発生した場合」を参照してください。

更新操作の履歴の補完処理については，「9.3.2(6)　更新操作の履歴の補完処理」を参照してください。

(6)　更新操作の履歴の補完処理

EADsサーバの縮退処理，復旧処理，および排他制御では，EADsサーバ間で更新操作の履歴を確認します。EADsサーバ間で更新操作の履歴に差異がある場合は，更新操作の履歴の補完処理を行います。これによって，データの書き込み順序の整合性を確保します。

更新操作の履歴の補完処理は，次の2つの処理から成ります。

他EADsサーバの更新操作の履歴の補完処理

自EADsサーバの更新操作の履歴の補完処理

なお，この場合の自EADsサーバとは次のEADsサーバを指します。

縮退処理の場合：

縮退するEADsサーバの処理を引き継ぐEADsサーバ（データのコピー先EADsサーバ）

復旧処理の場合：

復旧対象のEADsサーバ

更新操作の履歴の補完処理の流れとタイマの関係を次の図に示します。

図中のアルファベットは，「9.3.3　タイムアウトに関連するパラメタ」の説明と次のように対応しています。

(o)：「9.3.3(1)(o)　eads.consensus.fillgap.copy.timeout」

他EADsサーバの更新操作の履歴の補完処理

自EADsサーバの更新操作の履歴を各EADsサーバに送信します。

自EADsサーバと他EADsサーバの更新操作の履歴に差異がある場合，他EADsサーバに対して，自EADsサーバの更新操作の履歴を送信します。このとき，サーバ定義のeads.consensus.fillgap.copy.dataSizeパラメタに指定したサイズのデータを送信します。

他EADsサーバは，自EADsサーバから送信された更新操作の履歴を基に更新操作の履歴を補完します。

他EADsサーバの更新操作の履歴は次のように補完されます。

他EADsサーバの更新操作の履歴の補完処理は，データのコピー先EADsサーバに対して，更新操作の履歴の差異の数だけ実行されます。

自EADsサーバの更新操作の履歴の補完処理

自EADsサーバの更新操作の履歴に差異があるかを確認するため，各EADsサーバに更新操作の履歴の補完処理の要求を送信します。

更新操作の履歴の補完処理の要求に対して合意処理が行われます。

サーバ定義のeads.cache.consensus.timeoutパラメタに指定した時間内に合意処理が完了しない場合はタイムアウトして，再度，合意処理を行います。合意できるまで無限に繰り返します。

合意処理によって，他EADsサーバから自EADsサーバに更新操作の履歴が送信されます。

自EADsサーバは，各EADsサーバから送信された更新操作の履歴を基に更新操作の履歴を補完します。

自EADsサーバの更新操作の履歴は次のように補完されます。

自EADsサーバの更新操作の履歴の補完処理は，自EADsサーバの更新操作の履歴の差異の数だけ実行されます。

1回の復旧処理，または縮退処理に対して，更新操作の履歴の補完処理が1回だけとは限りません。最大で（データの多重度−1）×（キャッシュ数）回，実行されます。

更新操作の履歴の補完処理の同時実行スレッド数は，サーバ定義のeads.cluster.controller.cache.max_execute_threadsでパラメタ指定できます。

9.3.3　タイムアウトに関連するパラメタ

タイムアウトに関連するパラメタの一覧を次の表に示します。

表9‒4　タイムアウトに関連するパラメタに関連するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

サーバ定義ファイル

eads.connection.timeout

100〜3600000

（ミリ秒）

3000

2

eads.cluster.heartbeat.interval

10〜60000

（ミリ秒）

400

3

eads.cluster.heartbeat.timeout

10〜86400000

（ミリ秒）

2000

4

eads.cluster.failureDetector.connect.timeout

1〜60000

（ミリ秒）

500

5

eads.cluster.failureDetector.read.timeout

1〜60000

（ミリ秒）

500

6

eads.cluster.failureDetector.retry

0〜100

0

7

eads.cluster.assertive.threshold

1〜49

1

8

eads.cluster.boot.timeout

1〜86400

（秒）

60

9

eads.server.session.keepAlive.timeout

0〜3600（秒）

3600

10

eads.gracefulstop.wait_time

0〜60000

（ミリ秒）

3000

11

eads.cache.consensus.timeout

10〜60000

（ミリ秒）

800

12

eads.restore.dataSender.send.timeout

100〜3600000（ミリ秒）

10000

13

eads.restore.dataReceiver.read.timeout

100〜3600000（ミリ秒）

1000

14

eads.restore.dataSender.sendInterval

0〜60000

（ミリ秒）

1000

15

eads.consensus.fillgap.copy.timeout

100〜3600000（ミリ秒）

2000

16

eads.management.resume.sendInterval

0〜2147483647（ミリ秒）

0

17

コマンド定義ファイル

eads.management.connect.timeout

0〜2147483647

（ミリ秒）

3000

18

eads.management.read.timeout

0〜2147483647

（ミリ秒）

10000

19

eads.management.command.timeout

0〜2147483647

（秒）

60

20

eads.management.long_running.read.timeout

0〜2147483647

（ミリ秒）

600000

21

eads.management.long_running.command.timeout

0〜2147483647

（秒）

600

22

クライアント定義ファイル

eads.connection.send.timeout

100〜3600000

（ミリ秒）

1000

23

eads.connection.receive.timeout

100〜3600000

（ミリ秒）

1000

24

eads.client.clusterInfo.update.interval

10〜60000

（ミリ秒）

1000

(1)　サーバ定義ファイル

(a)　eads.connection.timeout

クラスタ構成情報の更新確認やデータ送受信のタイムアウト時間（単位：ミリ秒）を指定します。

(b)　eads.cluster.heartbeat.interval

ハートビートの送信間隔（単位：ミリ秒）を指定します。

(c)　eads.cluster.heartbeat.timeout

ハートビートのタイムアウト時間（単位：ミリ秒）を指定します。

(d)　eads.cluster.failureDetector.connect.timeout

生存確認の接続タイムアウト時間（単位：ミリ秒）を指定します。

(e)　eads.cluster.failureDetector.read.timeout

生存確認の受信タイムアウト時間（単位：ミリ秒）を指定します。

(f)　eads.cluster.failureDetector.retry

生存確認タイムアウト時のリトライ回数を指定します。

(g)　eads.cluster.assertive.threshold

EADsサーバダウンに同意するEADsサーバ数を指定します。

（クラスタを構成するEADsサーバ数＋1）÷2を切り上げた値以下となるように設定してください。例えば，クラスタを構成するEADsサーバ数が5つの場合は，このパラメタに3以下の値を指定してください。

(h)　eads.cluster.boot.timeout

クラスタを構成する全EADsサーバが開始するまでの最大待ち時間（単位：秒）を指定します。

(i)　eads.server.session.keepAlive.timeout

EADsクライアント・EADsサーバ間の接続を切断するまでの時間（単位：秒）を指定します。

リクエスト待ちの状態（通信が行われない状態）が，指定した時間以上続いた場合，接続が切断されます。

0を指定した場合，タイムアウトなし（無限）となります。

(j)　eads.gracefulstop.wait_time

eztool isolateコマンドを実行したEADsサーバの縮退処理が完了してから，停止するまでの時間（単位：ミリ秒）を指定します。

EADsクライアントからクラスタ構成情報の更新確認を受信したEADsサーバが縮退する際，EADsクライアントのクラスタ構成情報の更新が完了する前にコネクションがクローズしてしまうと，通信エラーになります。このパラメタの指定値を調整することで，EADsクライアントのクラスタ構成情報の更新完了後に，EADsサーバを停止できます。

このパラメタの指定値には，クライアント定義のeads.client.clusterInfo.update.intervalパラメタの指定値よりも大きく，かつコマンド定義のeads.management.read.timeoutパラメタの指定値より小さい値を設定してください。

(k)　eads.cache.consensus.timeout

合意処理のタイムアウト時間（単位：ミリ秒）を指定します。

指定した時間内に合意処理ができない場合は，タイムアウトして再度合意処理をやり直します。

(l)　eads.restore.dataSender.send.timeout

復旧処理でのデータ送信タイムアウト時間（単位：ミリ秒）を指定します。

扱うデータサイズに合わせて指定してください。

(m)　eads.restore.dataReceiver.read.timeout

復旧処理でのデータ受信タイムアウト時間（単位：ミリ秒）を指定します。

扱うデータサイズに合わせて指定してください。

(n)　eads.restore.dataSender.sendInterval

復旧処理でのデータ送信間隔（単位：ミリ秒）を指定します。

このパラメタの指定値とサーバ定義のeads.restore.dataSender.sendSizeパラメタの指定値は，次の式を満たすように設定してください。

復旧処理のデータ送信に使用できる帯域（単位：bps）≧

　（復旧処理で送信するデータサイズ（単位：バイト）×8）

　÷｛（復旧処理でのデータ送信間隔（単位：ミリ秒）

　＋データ送信に掛かる時間（単位：ミリ秒））÷1,000｝

復旧処理で送信するデータサイズ（単位：バイト）：

サーバ定義のeads.restore.dataSender.sendSizeパラメタの指定値

復旧処理でのデータ送信間隔（単位：ミリ秒）：

サーバ定義のeads.restore.dataSender.sendIntervalパラメタの指定値

データ送信に掛かる時間（単位：ミリ秒）：

サーバ定義のeads.restore.dataSender.sendSizeパラメタに指定したサイズのデータ送信に掛かる時間（単位：ミリ秒）

「9.3.2(5)　クラスタの復旧処理」の図中の「復旧処理（データ送信）」に掛かる時間を示します。この時間は環境によって異なります。

復旧処理に掛かる時間を短くすると，復旧処理の通信負荷が高くなります。逆に，復旧処理の通信負荷を低くすると，復旧処理に掛かる時間が長くなります。

ディスクキャッシュ，および2Wayキャッシュを使用する場合，このパラメタの指定は無効になり，キャッシュ定義のeads.cache.restore.dataSender.sendIntervalパラメタの指定値が有効となります。

(o)　eads.consensus.fillgap.copy.timeout

更新操作の履歴の補完処理で，更新操作の履歴を送信する際の送信タイムアウト時間（単位：ミリ秒）を指定します。

次のどちらか大きい方の値を処理できる時間を設定してください。

データのコピー先EADsサーバに対して，1回当たりに送信するデータサイズ（サーバ定義のeads.consensus.fillgap.copy.dataSizeパラメタの値）

keyの最大サイズ＋valueの最大サイズ×2

更新操作の履歴の補完処理については，「9.3.2(6)　更新操作の履歴の補完処理」を参照してください。

(p)　eads.management.resume.sendInterval

eztool resumeコマンド実行時の差分転送間隔（単位：ミリ秒）を指定します。

(2)　コマンド定義ファイル

(a)　eads.management.connect.timeout

コマンド実行時のクラスタ構成情報の更新確認の接続タイムアウト時間（単位：ミリ秒）を指定します。

このパラメタに0を指定した場合，タイムアウトしません。

(b)　eads.management.read.timeout

コマンド実行時のクラスタ構成情報の更新確認の受信タイムアウト時間（単位：ミリ秒）を指定します。

このパラメタに0を指定した場合，タイムアウトしません。

次のコマンドを実行する場合は，このパラメタの値を，クライアント定義のeads.connection.receive.timeoutパラメタに適用します。

eztool put

eztool get

eztool remove

ただし，次の場合はこのパラメタの値を適用しません。

このパラメタに0を指定した場合，または，クライアント定義のeads.connection.receive.timeoutパラメタの最大値以上の値を指定した場合

eads.connection.receive.timeoutパラメタの最大値を適用します。

クライアント定義のeads.connection.receive.timeoutパラメタの最小値以下の値を指定した場合

eads.connection.receive.timeoutパラメタの最小値を適用します。

(c)　eads.management.command.timeout

コマンド実行開始からのタイムアウト時間（単位：秒）を指定します。

このパラメタに0を指定した場合，タイムアウトしません。

(d)　eads.management.long_running.read.timeout

次に示すコマンド実行時のクラスタ構成情報の更新確認の受信タイムアウト時間（単位：ミリ秒）を指定します。

eztool export

eztool import

eztool createcache

eztool deletecache

eztool execfunc

eztool importecf

eztool resume

eztool compaction

eztool stop

このパラメタに0を指定した場合，タイムアウトしません。

eztool execfuncコマンドを実行する場合は，このパラメタの値を，クライアント定義のeads.connection.receive.timeoutパラメタに適用します。ただし，次の場合はこのパラメタの値を適用しません。

このパラメタに0を指定した場合，または，クライアント定義のeads.connection.receive.timeoutパラメタの最大値以上の値を指定した場合

eads.connection.receive.timeoutパラメタの最大値を適用します。

クライアント定義のeads.connection.receive.timeoutパラメタの最小値以下の値を指定した場合

eads.connection.receive.timeoutパラメタの最小値を適用します。

(e)　eads.management.long_running.command.timeout

次に示すコマンドの実行開始からのタイムアウト時間（単位：秒）を指定します。

eztool export

eztool import

eztool createcache

eztool deletecache

eztool execfunc

eztool importecf

eztool resume

eztool compaction

eztool stop

このパラメタに0を指定した場合，タイムアウトしません。

(3)　クライアント定義ファイル

(a)　eads.connection.send.timeout

クラスタ構成情報の更新確認やデータ送信のタイムアウト時間（単位：ミリ秒）を指定します。

(b)　eads.connection.receive.timeout

クラスタ構成情報の更新確認やデータ受信のタイムアウト時間（単位：ミリ秒）を指定します。

次の時間を考慮してください。

EADsサーバに配置しているユーザファンクションおよびユーザイベントハンドラの実行時間

縮退処理および復旧処理に掛かる時間

縮退処理および復旧処理に掛かる時間については，「9.3.2(4)　EADsサーバの縮退処理」と「9.3.2(5)　クラスタの復旧処理」を参考にして，十分に大きな値を指定してください。

(c)　eads.client.clusterInfo.update.interval

EADsクライアントがクラスタ内の一つ一つのEADsサーバに対してクラスタ構成情報の更新確認を行う間隔（単位：ミリ秒）を指定します。

クラスタを構成するEADsサーバ数を考慮してください。

クラスタを構成するEADsサーバ数が増えると，このパラメタに指定した時間内に通信する回数が増えるため，EADsクライアントへの負荷が増加します。

9.4　コンパクションに関連するパラメタの設計

この節の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

キャッシュデータファイルのコンパクションに関連するパラメタを設計します。コンパクションについては，「10.9　キャッシュデータファイルの使用量を削減する（キャッシュデータファイルをコンパクションする）」を参照してください。

9.4.1　コンパクションの効果のしきい値の設定

キャッシュデータファイルに対する，コンパクションの効果のしきい値を設定できます。コンパクションの効果のしきい値の概要を次の図に示します。

図9‒3　コンパクションの効果のしきい値の概要

考え方

キャッシュデータファイルごとに，コンパクションの効果は異なります。eztool compactionコマンドを実行する際，しきい値を設定することで，例えば，一定以上のコンパクションの効果があるキャッシュデータファイルに絞って，コンパクションを実行する，という運用ができます。

次のコマンドで--thresholdオプションを省略した際に設定される，コンパクションの効果のしきい値を，コマンド定義のeads.management.compaction.effect.thresholdパラメタで設定できます。

eztool listecfコマンド

eztool compactionコマンド

この図の例では，キャッシュデータファイル2と5がコンパクションの効果がしきい値以上のファイルとなります。このとき，-thresholdオプションを省略してeztool compactionコマンドを実行すると，キャッシュデータファイル2と5がコンパクションの対象となります。

9.4.2　コンパクションに関連するパラメタ

コンパクションに関連するパラメタの一覧を次の表に示します。

表9‒5　コンパクションに関連するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

コマンド定義ファイル

eads.management.compaction.effect.threshold

1〜100（%）

50

2

eads.management.compaction.effect.division

1〜10

5

(1)　コマンド定義ファイル

(a)　eads.management.compaction.effect.threshold

次に示すコマンドで使用する，コンパクションの効果のしきい値（単位：%）を指定します。

eztool listecf

eztool compaction

(b)　eads.management.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.disk.filesize

eads.cache.disk.filenum

eads.cache.disk.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/＜キャッシュ名＞）

(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コマンドを再実行してください。

(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サーバをクラスタに追加する手順について説明します。

(1)　クラスタ内の全EADsサーバを終了する（ファイルにデータを書き出す）

ファイルにデータを書き出してからクラスタ内の全EADsサーバを終了します。

手順については，「10.5　EADsサーバを終了する（メモリ上のデータをファイルに書き出す場合）」を参照してください。

(2)　追加するEADsサーバのインストールおよびセットアップを行う

追加するEADsサーバのインストールおよびセットアップを行います。

インストールおよびセットアップの手順については，「5.　インストールおよびセットアップを行う（EADsサーバ）」を参照してください。

(3)　クラスタ定義を変更する

クラスタを構成するEADsサーバが増えるため，クラスタ定義を変更する必要があります。

定義内容を変更する手順については，「11.3　定義内容を変更したい」を参照してください。

(4)　クラスタ内の全EADsサーバを開始する（ファイルからデータを読み込む）

クラスタ内の全EADsサーバを起動したあとに，前回稼働時にファイルに書き出したデータを，再度メモリ上に読み込ませます。

手順については，「10.3　EADsサーバを開始する（ファイルからデータを読み込んでキャッシュを作成する場合）」を参照してください。

11.1.2　EADsサーバをクラスタに追加する手順（ディスク上のキャッシュを使用する場合）

この項の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

ディスクキャッシュまたは2Wayキャッシュを使用する場合に，EADsサーバをクラスタに追加する手順について説明します。

(1)　クラスタ内の全EADsサーバを終了する

クラスタ内の全EADsサーバを終了します。

手順については，「10.6　EADsサーバを終了する（ディスク上のキャッシュを終了する場合）」を参照してください。

(2)　全EADsサーバのキャッシュファイルを移動する

全EADsサーバのキャッシュファイルを，任意のディレクトリに移動します。

EADsサーバごとに，次のディレクトリ下のすべてのファイルを移動してください（次のディレクトリ下のすべてのファイルをコピーしたあとで，コピー元のファイルを削除してください）。

＜キャッシュ定義のeads.cache.disk.<n>.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞

＜キャッシュ定義のeads.cache.disk.info.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞（デフォルトは＜運用ディレクトリ＞/store/＜キャッシュ名＞）

移動先のディレクトリのパスは，全EADsサーバで同一になるようにしてください。

(3)　追加するEADsサーバのインストールおよびセットアップを行う

追加するEADsサーバのインストールおよびセットアップを行います。

インストールおよびセットアップの手順については，「5.　インストールおよびセットアップを行う（EADsサーバ）」を参照してください。

(4)　クラスタ定義を変更する

クラスタを構成するEADsサーバが増えるため，クラスタ定義を変更する必要があります。

定義内容を変更する手順については，「11.3　定義内容を変更したい」を参照してください。

(5)　クラスタ内の全EADsサーバを起動する

EADsサーバを起動するホストにログインしてezstartコマンドを実行し，EADsサーバを起動します。このコマンドはEADsサーバごとに実行する必要があります。

ezstart

(6)　初期化が完了していることを確認する

EADsサーバの起動に成功すると，初期化状態に遷移します。

eztool statusコマンドを実行して，全EADsサーバの初期化が完了していることを確認します。

eztool status

コマンド実行例

初期化が完了している場合，State欄にinitializedが表示されます。

(7)　データを再配置する

eztool importecfコマンドを実行して，データを再配置します。＜キャッシュデータファイルとキャッシュインデックスファイルの格納先パス名＞には，「11.1.2(2)　全EADsサーバのキャッシュファイルを移動する」でキャッシュデータファイルとキャッシュインデックスファイルを移動したディレクトリを指定します。

注意事項

＜キャッシュデータファイルとキャッシュインデックスファイルの格納先パス名＞には，次のディレクトリは指定できません。

＜キャッシュ定義のeads.cache.disk.<n>.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞

＜キャッシュ定義のeads.cache.disk.info.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞（デフォルトは＜運用ディレクトリ＞/store/＜キャッシュ名＞）

eztool importecf ＜キャッシュデータファイルとキャッシュインデックスファイルの格納先パス名＞

コマンド実行例

(8)　クラスタの閉塞状態を解除する

初期化状態は閉塞状態と同じく，EADsクライアントからのリクエストが受け付けられない状態です。eztool openコマンドを実行して，クラスタの閉塞状態を解除します。

eztool open

コマンド実行例

(9)　閉塞状態が解除できていることを確認する

eztool statusコマンドを実行して，全EADsサーバの閉塞状態が解除できていることを確認します。

eztool status

コマンド実行例

閉塞状態が解除できている場合，State欄にrunningが表示されます。

11.2　EADsサーバをクラスタから削除したい

EADsサーバをクラスタから削除します。

11.2.1　EADsサーバをクラスタから削除する手順（メモリ上のキャッシュだけを使用する場合）

メモリキャッシュだけを使用する場合に，EADsサーバをクラスタから削除する手順について説明します。

(1)　クラスタ内の全EADsサーバを終了する（ファイルにデータを書き出す）

ファイルにデータを書き出してからクラスタ内の全EADsサーバを終了します。

手順については，「10.5　EADsサーバを終了する（メモリ上のデータをファイルに書き出す場合）」を参照してください。

(2)　削除するEADsサーバのストアデータファイルを退避する

削除するEADsサーバのストアデータファイルを任意のディレクトリに退避します。

削除するEADsサーバのストアデータファイルを，削除しないEADsサーバのストアデータファイル格納先にコピーします。

(3)　クラスタ定義を変更する

クラスタを構成するEADsサーバが減るため，クラスタ定義を変更する必要があります。

定義内容を変更する手順については，「11.3　定義内容を変更したい」を参照してください。

(4)　クラスタ内の全EADsサーバを開始する（ファイルからデータを読み込む）

クラスタ内の全EADsサーバを起動したあとに，前回稼働時にファイルに書き出したデータを，再度メモリ上に読み込ませます。

手順については，「10.3　EADsサーバを開始する（ファイルからデータを読み込んでキャッシュを作成する場合）」を参照してください。

11.2.2　EADsサーバをクラスタから削除する手順（ディスク上のキャッシュを使用する場合）

この項の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

ディスクキャッシュまたは2Wayキャッシュを使用する場合に，EADsサーバをクラスタから削除する手順について説明します。

(1)　クラスタ内の全EADsサーバを終了する

クラスタ内の全EADsサーバを終了します。

手順については，「10.6　EADsサーバを終了する（ディスク上のキャッシュを終了する場合）」を参照してください。

(2)　EADsサーバのキャッシュファイルを移動する

削除するEADsサーバ以外のEADsサーバのキャッシュファイルを，任意のディレクトリに移動します。

EADsサーバごとに，次のディレクトリ下のすべてのファイルを移動してください（次のディレクトリ下のすべてのファイルをコピーしたあとで，コピー元のファイルを削除してください）。

＜キャッシュ定義のeads.cache.disk.<n>.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞

＜キャッシュ定義のeads.cache.disk.info.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞（デフォルトは＜運用ディレクトリ＞/store/＜キャッシュ名＞）

移動先のディレクトリのパスは，全EADsサーバで同一になるようにしてください。

(3)　削除するEADsサーバのキャッシュファイルを退避する

削除するEADsサーバのキャッシュファイルを，ほかのどれか1つのEADsサーバの，「11.2.2(2)　EADsサーバのキャッシュファイルを移動する」でキャッシュファイルを移動したディレクトリに退避します。

削除するEADsサーバの次のディレクトリ下のすべてのファイルを移動してください。

＜キャッシュ定義のeads.cache.disk.<n>.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞

＜キャッシュ定義のeads.cache.disk.info.dirパラメタで指定したディレクトリ＞/＜キャッシュ名＞（デフォルトは＜運用ディレクトリ＞/store/＜キャッシュ名＞）

(4)　クラスタ定義を変更する

クラスタを構成するEADsサーバが減るため，クラスタ定義を変更する必要があります。

定義内容を変更する手順については，「11.3　定義内容を変更したい」を参照してください。

(5)　クラスタ内の全EADsサーバを開始する（データを再配置する）

クラスタ内の全EADsサーバを起動したあとに，データを再配置します。

手順については，「11.1.2(5)　クラスタ内の全EADsサーバを起動する」〜「11.1.2(9)　閉塞状態が解除できていることを確認する」を参照してください。

11.3　定義内容を変更したい

定義内容を変更します。

11.3.1　定義内容を変更する手順

定義内容を変更する手順について説明します。

(1)　EADsサーバを終了する（ファイルにデータを書き出す）

ファイルにデータを書き出してからEADsサーバを終了します。

手順については，「10.5　EADsサーバを終了する（メモリ上のデータをファイルに書き出す場合）」を参照してください。

注意事項

コマンド定義を変更する場合は，EADsサーバを終了する必要はありません。

(2)　定義内容を変更する

定義内容を変更します。

「eads.logger.」で始まるサーバ定義のパラメタを変更する場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

クラスタ定義を変更する場合は，クラスタを構成する全EADsサーバで定義内容が同じになるようにしてください。

キャッシュ定義を変更する場合は，クラスタを構成する全EADsサーバで次のパラメタの定義内容が同じになるようにしてください

eads.cache.type

eads.cache.disk.filesize

eads.cache.disk.filenum

eads.cache.disk.blocksize

「eads.logger.」で始まるコマンド定義のパラメタを変更する場合は，コマンド定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリを別のディレクトリに移動するか，または削除してください。

(3)　EADsサーバを開始する（ファイルからデータを読み込む）

EADsサーバを起動したあとに，前回稼働時にファイルに書き出したデータを，再度メモリ上に読み込ませます。手順については，「10.3　EADsサーバを開始する（ファイルからデータを読み込んでキャッシュを作成する場合）」を参照してください。

11.3.2　定義内容を変更する場合の注意点

この項の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

ディスクキャッシュ，および2Wayキャッシュを使用する場合，次に示すパラメタを変更すると，キャッシュの再開ができなくなります。次に示すパラメタを変更したい場合は，データを再配置してください。データの再配置については，「11.1.2　EADsサーバをクラスタに追加する手順（ディスク上のキャッシュを使用する場合）」を参照してください。

クラスタ定義の次のパラメタ

eads.node.＜EADsサーバID＞.positionパラメタ

eads.replication.factorパラメタ

eads.server.max_key_sizeパラメタ

ディスクキャッシュ，および2Wayキャッシュを使用する場合，次に示すパラメタは変更しないでください。変更するとキャッシュの再開ができなくなります。

キャッシュ定義の次のパラメタ

eads.cache.typeパラメタ

eads.cache.disk.filesizeパラメタ

注　キャッシュ定義のeads.cache.disk.filenumパラメタについては，指定値を増やすことはできますが，減らすことはできません。

11.4　キャッシュを追加または削除したい

キャッシュを追加または削除します。

11.4.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.4.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/＜キャッシュ名＞）

(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.5　バックアップを取得したい

データのバックアップを取得します。

11.5.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　ストアデータファイルを管理したい

ストアデータファイルの世代数には上限があるため，上限に達する前に削除する必要があります。

ストアデータファイルの世代数については，「7.6.2　ストアデータファイルの世代数の設定」を参照してください。

11.6.1　ストアデータファイルの確認および削除手順

ストアデータファイルの確認および削除手順について説明します。

(1)　ストアデータファイルの一覧を表示する

eztool listesdコマンドを実行して，クラスタ内のストアデータファイルの一覧を表示します。

eztool listesd

コマンド実行例

StoreDataFileKey欄に，ストアデータファイルのストアデータファイルキーの一覧が表示されます。

(2)　不要なストアデータファイルを削除する

eztool deleteesdコマンドを実行して，クラスタ内の不要なストアデータファイルを削除します。

eztool deleteesd ＜ストアデータファイルキー＞

コマンド実行例

11.7　データの格納先を確認したい

eztool getpositionコマンドを実行して，指定したkeyやグループの格納先EADsサーバを表示します。

なお，-lまたは--localオプションを指定すると，EADsサーバの状態に関係なく実行できます。この場合，稼働中のクラスタ構成情報ではなく，コマンドを実行するEADsサーバのクラスタ定義ファイルの情報を読み込みます。

eztool getposition ＜key＞

コマンド実行例

データを多重化している場合，No.2以降にデータのコピー先EADsサーバが表示されます。

11.8　ユーザファンクションまたはユーザイベントハンドラが，各EADsサーバに正しく配置されているかどうか，また，実行できるかどうか確認したい

ユーザファンクションやユーザイベントハンドラが各EADsサーバに正しく配置されているかどうか，また，実行できるかどうか確認する手順について説明します。

11.8.1　ユーザファンクションの実行可否を表示する

eztool listfuncコマンドを実行して，ユーザファンクションの実行可否を表示します。

eztool listfunc ［-v|--verbose］

コマンド実行例

Enable欄には，ユーザファンクションごとに，実行可能なEADsサーバ数が表示されます。

また，-vまたは--verboseオプションを指定すると，各EADsサーバに配置されているユーザファンクションが確認できます。また，それぞれ実行可能かどうかも確認できます。

なお，disableが表示されたユーザファンクションを実行可能な状態にするには，全EADsサーバを終了したあと，メッセージログから要因を特定し，問題を取り除いてください。

11.8.2　ユーザイベントハンドラの実行可否を表示する

eztool listeventコマンドを実行して，ユーザイベントハンドラの実行可否を表示します。

eztool listevent ［-v|--verbose］

コマンド実行例

Enable欄には，ユーザイベントハンドラごとに，実行可能なEADsサーバ数が表示されます。

また，-vまたは--verboseオプションを指定すると，各EADsサーバに配置されているユーザイベントハンドラが確認できます。また，それぞれ実行可能かどうかも確認できます。

なお，disableが表示されたユーザイベントハンドラを実行可能な状態にするには，全EADsサーバを終了したあと，メッセージログから要因を特定し，問題を取り除いてください。

11.9　クラスタを稼働させたまま，EADsサーバの修正パッチを適用したい

クラスタを稼働させたまま，EADsサーバの修正パッチを適用します。

通常は，全EADsサーバを終了してから修正パッチを適用することを推奨します。

修正パッチの適用はマシン1台ずつ行います。

なお，1マシン上に1EADsサーバのシステム構成ではない場合，次の条件を満たしている必要があります。

1マシン上のEADsサーバ数がデータの多重度未満であること

1マシン上のEADsサーバ数がクラスタを構成するEADsサーバ数の半数未満であること

11.9.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.10　統計情報を取得したい

EADsでは次に示す統計情報を取得できます。

統計情報（eads_stats.csv）

キャッシュの統計情報（eads_cache_stats.csv）

ユーザファンクションの統計情報（eads_function_stats.csv）

ユーザイベントハンドラの統計情報（eads_event_stats.csv）

ここでは，統計情報の格納先とそれぞれの統計情報に出力される情報，統計情報が取得される個所について説明します。

11.10.1　統計情報の格納先

統計情報は＜サーバ定義のeads.logger.dirパラメタに指定されたディレクトリ＞/stats下に格納されています。

11.10.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.connection.buffersize

eads.server.max.datasize

5

EADsクライアント・EADsサーバ間の受信データの合計サイズ（単位：バイト）

CSReadTotalSize

統計値

eads.connection.buffersize

eads.consensus.message.buffersize

6

EADsクライアント・EADsサーバ間の送信データの最大サイズ（単位：バイト）

CSWriteMaxSize

統計値

7

EADsクライアント・EADsサーバ間の送信データの合計サイズ（単位：バイト）

CSWriteTotalSize

統計値

8

EADsサーバ間の受信データの最大サイズ（単位：バイト）

SSReadMaxSize

統計値

9

EADsサーバ間の受信データの合計サイズ（単位：バイト）

SSReadTotalSize

統計値

10

EADsサーバ間の送信データの最大サイズ（単位：バイト）

SSWriteMaxSize

統計値

11

EADsサーバ間の送信データの合計サイズ（単位：バイト）

SSWriteTotalSize

統計値

12

復旧時に復旧先EADsサーバにデータをコピーするために送信されるデータの合計サイズ（単位：バイト）

RestoreCopyDataWriteTotalSize

統計値

eads.restore.dataSender.sendSize

13

復旧時に復旧先EADsサーバに送信される全データ※3の合計サイズ（単位：バイト）

RestoreWriteTotalSize

統計値

14

リソース見積もりの見直し

データ数

キャッシュに格納されているkey数

KvCount

現在値

eads.node.＜EADsサーバID＞.position

15

メモリ使用量

現在のメモリ使用量（メモリを使用するキャッシュに格納されているvalueの合計）（単位：メガバイト）※4

UsedMemorySize

現在値

16

valueを格納できるメモリの最大サイズ（単位：メガバイト）※4

MaxMemorySize

設定値

eads.java.heapsize

eads.java.external.heapsize

17

更新操作の履歴が格納される領域の使用量（単位：メガバイト）※4

ConsensusMemorySize

現在値

eads.consensus.external.heapsize

18

更新操作の履歴が格納される領域の最大サイズ（単位：メガバイト）※4

MaxConsensusMemorySize

設定値

19

実行回数

リクエスト受付数（put，create，update，replace，get，remove）

RequestCount

統計値

eads.node.＜EADsサーバID＞.position

20

全ユーザファンクションの実行回数

AllFunctionExecuteCount

統計値

21

全ユーザイベントハンドラの実行回数

AllEventHandlerExecuteCount

統計値

−

22

EADsサーバの性能測定

性能

内部処理時間の平均値※1（単位：マイクロ秒）

InternalProcessingAverageTime

統計値

23

リクエスト処理時間の最大値※2（単位：マイクロ秒）

RequestProcessingMaxTime

統計値

24

リクエスト処理時間の平均値※2（単位：マイクロ秒）

RequestProcessingAverageTime

統計値

25

リクエスト処理時間の最小値※2（単位：マイクロ秒）

RequestProcessingMinTime

統計値

（凡例）

−：関連するパラメタはありません。

注※1

データの多重化およびユーザイベントハンドラを除く，次に示すリクエスト処理に掛かった時間の平均値です。

put，removeの処理

create，update，replaceの処理で，データ更新が行われた場合

注※2

最初にデータが操作されるEADsサーバに対するリクエスト処理（put，removeの処理，またはcreate，update，replaceの処理でデータ更新が行われた場合）全体に掛かった時間が対象です。

注※3

復旧時には，次のデータが復旧先EADsサーバに送信されます。

コピー用のデータ

復旧開始後にデータが更新された場合，更新を通知するデータ

注※4

メガバイト以下の値は切り捨てて表示されます。

(2)　EADsサーバの性能測定に使用する統計情報が取得される個所

EADsサーバの性能測定に使用する統計情報が取得される個所を，put処理を例にして次の図に示します。

図11‒1　EADsサーバの性能測定に使用する統計情報が取得される個所（put処理の例）

説明

1と6のタイミングで取得した時刻の差分から，リクエスト処理時間を算出します。また，次に示す統計情報を算出します。

リクエスト処理時間の最大値（RequestProcessingMaxTime）

リクエスト処理時間の平均値（RequestProcessingAverageTime）

リクエスト処理時間の最小値（RequestProcessingMinTime）

2と3のタイミングで取得した時刻の差分から，合意処理に掛かった時間を算出します。

4と5のタイミングで取得した時刻の差分から，ユーザイベントハンドラ実行時間を算出します。

リクエスト処理時間から，合意処理に掛かった時間，およびユーザイベントハンドラ実行時間を除いた時間が，内部処理時間に当たります。また，次に示す統計情報を算出します。

内部処理時間の平均値（InternalProcessingAverageTime）

11.10.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数

CacheKvCount

現在値

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（単位：マイクロ秒）

CacheInternalProcessingAverageTime

統計値

−

16

キャッシュごとのリクエスト処理時間の最大値※5（単位：マイクロ秒）

CacheRequestProcessingMaxTime

統計値

17

キャッシュごとのリクエスト処理時間の平均値※5（単位：マイクロ秒）

CacheRequestProcessingAverageTime

統計値

18

キャッシュごとのリクエスト処理時間の最小値※5（単位：マイクロ秒）

CacheRequestProcessingMinTime

統計値

19

キャッシュごとのputの回数

PutCount

統計値

20

キャッシュごとのputの成功回数

PutSuccessCount

統計値

21

キャッシュごとのgetの回数

GetCount

統計値

22

キャッシュごとのgetの成功回数

GetSuccessCount

統計値

23

キャッシュごとのremoveの回数

RemoveCount

統計値

24

キャッシュごとのremoveの成功回数

RemoveSuccessCount

統計値

25

キャッシュごとのcreateの回数

CreateCount

統計値

26

キャッシュごとのcreateの成功回数

CreateSuccessCount

統計値

27

キャッシュごとのupdateの回数

UpdateCount

統計値

28

キャッシュごとのupdateの成功回数

UpdateSuccessCount

統計値

29

キャッシュごとのreplaceの回数

ReplaceCount

統計値

30

キャッシュごとのreplaceの成功回数

ReplaceSuccessCount

統計値

（凡例）

−：関連するパラメタはありません。

注※1

キャッシュが複数ある場合は，上からキャッシュ名の自然順序順に表示されます。

注※2

データの多重度が2以上の場合は，上からデータの格納先EADsサーバ，データのコピー先EADsサーバの順に表示されます。

注※3

メガバイト以下の値は切り捨てて表示されます。

注※4

データの多重化およびユーザイベントハンドラを除く，次に示すリクエスト処理に掛かった時間の平均値です。

put，removeの処理

create，update，replaceの処理で，データ更新が行われた場合

注※5

最初にデータが操作されるEADsサーバに対するリクエスト処理（put，removeの処理，またはcreate，update，replaceの処理でデータ更新が行われた場合）全体に掛かった時間が対象です。

11.10.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と6のタイミングで取得した時刻の差分から，ユーザファンクション実行時間を算出します。また，次に示す統計情報を算出します。

ユーザファンクション実行時間の最大値（FunctionExecuteMaxTime）

ユーザファンクション実行時間の平均値（FunctionExecuteAverageTime）

ユーザファンクション実行時間の最小値（FunctionExecuteMinTime）

2と3のタイミングで取得した時刻の差分から，合意処理に掛かった時間を算出します。

4と5のタイミングで取得した時刻の差分から，ユーザイベントハンドラ実行時間を算出します。

ユーザファンクション実行時間から，合意処理に掛かった時間，およびユーザイベントハンドラ実行時間を除いた時間が，ユーザファンクションの内部処理時間に当たります。また，次に示す統計情報を算出します。

ユーザファンクションの内部処理時間の最大値（FunctionInternalProcessingMaxTime）

ユーザファンクションの内部処理時間の平均値（FunctionInternalProcessingAverageTime）

ユーザファンクションの内部処理時間の最小値（FunctionInternalProcessingMinTime）

ユーザプログラム処理のうち，合意処理に掛かった時間，ユーザイベントハンドラ実行時間，およびAPIの処理時間を除いた時間が，ユーザプログラムの処理時間に当たります。また，次に示す統計情報を算出します。

ユーザファンクションのユーザプログラムの処理時間の最大値（UserProgramProcessingMaxTime）

ユーザファンクションのユーザプログラムの処理時間の平均値（UserProgramProcessingAverageTime）

ユーザファンクションのユーザプログラムの処理時間の最小値（UserProgramProcessingMinTime）

11.10.5　ユーザイベントハンドラの統計情報（eads_event_stats.csv）

ユーザイベントハンドラの統計情報（eads_event_stats.csv）に出力される情報と，統計情報が取得される個所について説明します。

(1)　ユーザイベントハンドラの統計情報（eads_event_stats.csv）に出力される情報

ユーザイベントハンドラの統計情報（eads_event_stats.csv）に出力される情報を，次の表に示します。

これらの情報は，ユーザイベントハンドラの性能測定に使用できます。

表11‒4　ユーザイベントハンドラの統計情報（eads_event_stats.csv）に出力される情報

項番

項目

列名称

出力される値

1

統計情報を出力した日付

Date

現在値

2

統計情報を出力した時間

Time

現在値

3

統計情報を出力したEADsサーバのIPアドレスと，EADsクライアントとの通信に使用するEADsサーバのポート番号

ThisNode

設定値

4

ユーザイベントハンドラ名

EventHandlerName

設定値

5

ユーザイベントハンドラの実行回数

EventHandlerExecuteCount

統計値

6

ユーザイベントハンドラ実行時間の最大値（単位：マイクロ秒）

EventHandlerExecuteMaxTime

統計値

7

ユーザイベントハンドラ実行時間の平均値（単位：マイクロ秒）

EventHandlerExecuteAverageTime

統計値

8

ユーザイベントハンドラ実行時間の最小値（単位：マイクロ秒）

EventHandlerExecuteMinTime

統計値

(2)　統計情報が取得される個所

統計情報が取得される個所を次の図に示します。

図11‒3　統計情報が取得される個所（ユーザイベントハンドラの統計情報）

説明

1と2のタイミングで時刻を取得し，次に示す統計情報を算出します。

ユーザイベントハンドラ実行時間の最大値（EventHandlerExecuteMaxTime）

ユーザイベントハンドラ実行時間の平均値（EventHandlerExecuteAverageTime）

ユーザイベントハンドラ実行時間の最小値（EventHandlerExecuteMinTime）

11.11　キャッシュファイルを管理したい

この節の内容は，ディスクキャッシュ，および2Wayキャッシュを使用する場合にお読みください。

定義を誤った状態でキャッシュを作成してしまったときなどに，不要なキャッシュファイルを削除します。

11.11.1　キャッシュファイルの確認および削除手順

キャッシュファイルの確認および削除手順について説明します。

(1)　キャッシュファイルが存在するキャッシュを確認する

eztool listecf -vコマンドを実行して，キャッシュファイルが存在するキャッシュを確認します。

eztool listecf -v

コマンド実行例

キャッシュのキャッシュ情報ファイルが存在する場合は，ExCI欄にtureが表示されます。

キャッシュのキャッシュデータファイルが存在する場合は，ExCD欄にtureが表示されます。

(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.logger.dirパラメタに指定したディレクトリ

Wrap（デフォルト）

eads_management_message[n].log

Shift

eads_management_message.log

EADsクライアント

＜クライアント定義のeads.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）

この例では，2013年09月03日の11時59分25秒にEADsサーバIDが1であるEADsサーバが縮退状態になっています。

メッセージの出力例（KDEA04799-E）

この例では，2013年08月21日の11時55分46秒にEADsサーバIDが3であるEADsサーバが縮退状態になっています。

(5)　停止したEADsサーバを復旧する

障害対策後，次のどちらかのコマンドで，停止したEADsサーバを復旧します。

ezstart -rコマンド

ezserver -rコマンド

復旧処理では，データの整合性を回復するために，稼働中のEADsサーバが復旧対象のEADsサーバにデータを送信します。

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

EADsサーバが復旧するまでに，少なくともデータ取得分の時間が掛かります。

データ送信元のEADsサーバでは，データを送信する分，オンライン性能に影響があります。

ポイント

ディスクキャッシュ，および2Wayキャッシュを使用している場合は，次のどちらかの方法でEADsサーバを復旧してください。

復旧方法

復旧の手順

復旧時の動作

適用基準

キャッシュファイルを使用して復旧する

停止したEADsサーバのキャッシュファイルを削除しないで，ezstart -rコマンド，またはezserver -rコマンドで停止したEADsサーバを復旧します。

キャッシュファイルからデータを読み込んだあと，稼働中のEADsサーバとの間でデータの過不足を補うことで，復旧します。

データの更新頻度や削除頻度が低いキャッシュで，キャッシュファイルに有効なデータが多く残っている場合，キャッシュファイルを使用しないときに比べて，復旧に掛かる時間を短縮できる可能性があります。

キャッシュファイルを使用しないで復旧する

停止したEADsサーバを指定してdeleteecf -lコマンドを実行し，該当するキャッシュのキャッシュデータファイルを削除します。

そのあとで，ezstart -rコマンド，またはezserver -rコマンドを実行して，停止したEADsサーバを復旧します。

稼働中のEADsサーバからすべてのデータを取得することで，復旧します。

データの更新頻度や削除頻度が高いキャッシュで，キャッシュファイルに無効なデータが多く残っている場合，キャッシュファイルを使用するときに比べて，復旧に掛かる時間を短縮できる可能性があります。

データの復旧中にキャッシュデータファイルの容量不足が発生した場合，内部的にコンパクションが実行されます。その結果，容量不足が解消されると，復旧処理が継続されます。

なお，次のような理由で復旧に失敗したときは，問題のあるファイルが存在するキャッシュのキャッシュファイルを削除してから，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）の場合の復旧までの流れについて説明します。

(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)　キャッシュデータファイルをコンパクションする

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サーバに対して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.logger.dirパラメタに指定したディレクトリ下の全ファイル

クライアント定義ファイル

(3)　業務APの管理者に確認すること

業務APの管理者に次に示すことを確認してください。

レスポンスが低下する時間帯に規則性があるか。

レスポンスが低下するEADsクライアントが決まっているか。

レスポンスが低下する操作に規則性があるか。

12.3　障害情報の取得方法

ここでは，原因調査に必要な障害情報と，その取得方法について説明します。

12.3.1　原因調査に必要な障害情報

障害の原因調査には，次に示す障害情報が必要になります。障害が発生した場合，システム運用管理者はこれらの障害情報を取得してください。

なお，eztool snapshotコマンドを使用すると，ログと設定ファイルを一括して収集することができます。

メッセージログ

メッセージログファイルには，動作確認やエラー監視用のメッセージログが出力されます。

統計情報

統計情報ファイルには，チューニングの見直し，性能測定，リソース見積もりなどに使用する統計情報が出力されます。

スレッドダンプ

スレッドダンプには，Javaプロセス内で動作しているスレッドの情報が出力されます。

必要に応じて取得してください。

コアダンプ

EADsサーバがダウンした場合，運用ディレクトリ直下にコアダンプが出力されます。ファイル名は「core.[PID].[YYMMDDhhmmss]」※です。

なお，EADsサーバによって出力されるコアダンプは上限値が設定されていないため，ディスクの空き容量に注意してください。

注※

　[PID]：EADsサーバのプロセスID

　[YYMMDDhhmmss]：YY：年，MM：月，DD：日，hh：時（00〜23），mm：分，ss：秒

PRFトレース

PRFトレースには，EADsクライアントから送信されたリクエストが，EADsサーバで処理されて，処理結果がEADsクライアントに返却されるまでの通信のトレース情報が出力されます。また，EADsサーバ間の通信処理に関する情報も出力されます。必要に応じて取得してください。

PRFトレースに出力される情報については，「13.2.2　PRFトレースに出力される情報」を参照してください。

注意事項

PRFトレースを取得する場合は，サーバ定義のeads.prf.enableパラメタの指定をtrueにする必要があります。

また，次に示す障害発生時の定義ファイルも取得してください。

＜運用ディレクトリ＞/conf下の全定義ファイル

12.3.2　統計情報の取得方法

統計情報の取得方法については，「11.10　統計情報を取得したい」を参照してください。

12.3.3　スレッドダンプの取得方法

eztool threaddumpコマンドでスレッドダンプを取得してください。

コマンド実行例

eztool threaddump

スレッドダンプはサーバ定義のeads.logger.dirパラメタに指定したディレクトリ下に出力されます。

サーバ定義のeads.logger.dirパラメタを指定していない場合は，＜運用ディレクトリ＞/logs下に出力されます。

12.3.4　PRFトレースの取得方法

注意事項

PRFトレースを取得する場合は，サーバ定義のeads.prf.enableパラメタの指定をtrueにする必要があります。

eztool cprfedコマンドでPRFトレースを取得してください。この例では，コマンド実行日の10時23分45秒から10時23分50秒までのPRFトレースを編集対象とします。

コマンド実行例

eztool cprfed -Time "102345,102350"

PRFトレースファイルは＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/spool/utt/prf/REQ_PRF_ID/dcopltrc下に出力されます。

サーバ定義のeads.logger.dirパラメタを指定していない場合は，＜運用ディレクトリ＞/logs/spool/utt/prf/REQ_PRF_ID/dcopltrc下に出力されます。

コマンドのオプションについて説明します。

-Time "102345,102350"

PRFトレースの編集対象範囲を時刻で指定します。

13　障害原因の調査

この章では，障害原因（原因元の切り分け）の調査方法について説明します。

13.1　レスポンス低下の原因調査

ここでは，レスポンス低下の原因を調査する方法について説明します。

13.1.1　原因調査の流れ

レスポンスの低下，およびレスポンスの低下によるAPのタイムアウトの原因調査の流れを次の図に示します。

図13‒1　レスポンスの低下，およびレスポンスの低下によるAPのタイムアウトの原因調査の流れ

発生した現象の例

レスポンス低下の報告があった。

レスポンスの低下によってAPの処理がタイムアウトした。

考えられる主な原因

特定のEADsサーバにアクセスが集中している。

格納データのサイズなどが適切でない。

EADs以外のプロセスが重い処理を実行している。

リクエストが集中または増加している。

統計情報を使用した調査の観点

EADsサーバ，ユーザイベントハンドラ，ネットワークのどれが要因か。

内部処理時間の平均値とユーザイベントハンドラ実行時間の平均値から，レスポンス低下の要因を切り分けます。

EADsサーバ，ユーザファンクション，ネットワークのどれが要因か。

ユーザファンクションの内部処理時間の平均値とユーザファンクションのユーザプログラムの処理時間の平均値から，レスポンス低下の要因を切り分けます。

調査に必要な障害情報

全EADsサーバの統計情報

統計情報の取得方法については，「11.10　統計情報を取得したい」を参照してください。

13.1.2　原因の調査方法

統計情報を使用した性能の確認方法について説明します。

(1)　APの性能を確認する

統計情報を使用してAPの性能を確認する手順を次の図に示します。また，詳細の手順を以降に示します。

図13‒2　APの性能を確認する手順

(a)　平均性能の傾向を確認する

次の表に示す統計情報の項目から，平均性能の傾向を確認します。

統計情報の種類

項目

列名称

統計情報

（eads_stats.csv）

リクエスト処理時間の平均値

RequestProcessingAverageTime

(b)　性能劣化の要因を切り分ける

次の表に示す統計情報の項目を比較して，性能劣化の要因を切り分けます。

統計情報の種類

項目

列名称

統計情報

（eads_stats.csv）

内部処理時間の平均値

InternalProcessingAverageTime

ユーザイベントハンドラの統計情報

（eads_event_stats.csv）

ユーザイベントハンドラ実行時間の平均値

EventHandlerExecuteAverageTime

(c)　性能劣化の要因を分析する

それぞれの要因に応じて，性能劣化の要因を分析します。

EADsサーバが要因の場合

EADsサーバが要因と考えられる場合は，次のことを確認してください。

次の表に示す統計情報の項目を確認し，EADsサーバに対するアクセスが集中していないか確認してください。

統計情報の種類

項目

列名称

統計情報

（eads_stats.csv）

リクエスト受付数（put，create，update，replace，get，remove）

RequestCount

JavaログからGCが発生していないか確認してください。

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が発生していないか確認してください。

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

ネットワークの状態を確認してください。

13.2　PRFトレースの仕組みと出力される情報

ここでは，PRFトレースの仕組みと，PRFトレースに出力される情報について説明します。

13.2.1　PRFトレースの仕組み

EADsではデータを多重化しているため，EADsサーバ間でデータの送受信が発生しています。通信障害などでデータを送受信できなかった場合，どのサーバのどの処理で，またいつエラーが発生したのか，原因を特定する必要があります。

EADsでは，EADsサーバ間の通信処理ごとにトレース情報をPRFトレースとして取得しています。このPRFトレースの情報を追い掛けると，どの処理でエラーになったのか，またどの処理で時間が掛かっているのかが特定できます。

PRFトレースのレコード（1データ）は処理ごとに出力され，決められたID（イベントID）が付けられます。

PRFトレースを取得する処理とイベントIDの対応を次の図に示します。

図13‒4　PRFトレースを取得する処理とイベントIDの対応

図13‒5　PRFトレースを取得する処理とイベントIDの対応（ユーザファンクションの場合）

図13‒6　PRFトレースを取得する処理とイベントIDの対応（ユーザイベントハンドラの場合）

13.2.2　PRFトレースに出力される情報

PRFトレースを出力した場合，次の表に示す情報が出力されます。

表13‒1　PRFトレースに出力される情報

項番

ヘッダ名（列名）

説明

1

PRF

PRFトレースのレコードの状態が出力されます。次のどちらかが出力されます。

Rec：正常

ErrRec：異常

2

Process

PRFトレースを取得したプロセスのプロセスIDが出力されます。

3

Thread(hashcode)

PRFトレースを取得したプロセスのスレッドIDが出力されます。（　）内にはスレッドのハッシュ値が出力されます。

4

Trace

保守情報です。

5

ProcessName

保守情報です。

6

Event

イベントID（16進数）が出力されます。出力されるイベントIDの意味については，「表13-2　出力されるイベントIDとその意味」を参照してください。

7

Date

PRFトレースを取得した年月日が出力されます。

8

Time

PRFトレースを取得した時刻が秒単位で出力されます。

9

Time(msec/usec/nsec)

PRFトレースを取得した時刻がミリ秒/マイクロ秒/ナノ秒単位で出力されます。

10

Rc

リターンコード（16進数）が出力されます。次のどちらかが出力されます。

0：処理成功

1：処理失敗

11

ClientAP IP

保守情報です。

12

ClientAP PID

保守情報です。

13

ClientAP CommNo.

保守情報です。

14

RootAP IP※

EADsクライアントまたはEADsサーバのIPアドレスが出力されます。

一連の通信処理は，RootAP IP列，RootAP PID列，およびRootAP CommNo列の値が同じになります。

15

RootAP PID※

EADsクライアントが付与する番号が出力されます。

16

RootAP CommNo.※

通信番号（16進数）が出力されます。

17

SendSCD IP

保守情報です。

18

SendSCD PID

保守情報です。

19

ReceiveSCD IP

保守情報です。

20

ReceiveSCD PID

保守情報です。

21

INT

イベントIDごとに出力される情報が異なります。出力される情報については，「表13-2　出力されるイベントIDとその意味」を参照してください。

なお，情報が出力されないこともあります。

22

OPR

イベントIDごとに出力される情報が異なります。出力される情報については，「表13-2　出力されるイベントIDとその意味」を参照してください。

なお，情報が出力されないこともあります。

23

LookupName

保守情報です。

24

OPT

保守情報です。

25

ASCII

イベントIDごとに出力される情報が異なります。出力される情報については，「表13-2　出力されるイベントIDとその意味」を参照してください。

なお，情報が出力されないこともあります。

注※

合意メッセージは内部的に送受信される場合もあります。その場合，RootAP IP列，RootAP PID列，RootAp CommNo.列には，次に示すダミーの情報が格納されます。

RootAP IP：0.0.0.0

RootAP PID：0

RootAp CommNo.：0x00000000xxxxxxxx（xxxxxxxxはスレッドIDをint型に変換した値）

出力されるイベントIDとその意味を次の表に示します。

表13‒2　出力されるイベントIDとその意味

分類

イベントID

PRFトレースの取得ポイント

INT

OPR

ASCII

EADsクライアント・EADsサーバ間の送受信

0xe018

リクエストの受信直後

保守情報

EADsクライアントのIPアドレス，ポート番号，通番※1

−

0xe019

レスポンスの送信直後

保守情報

−

例外情報※2

ユーザファンクション

0xe042

ユーザファンクション（Functionインタフェースのexecute()）呼び出し直前

ユーザファンクション名

−

−

0xe043

ユーザファンクション（Functionインタフェースのexecute()）呼び出し直後

−

−

例外情報※2

ユーザイベントハンドラ

0xe050

ユーザイベントハンドラ（EventHandlerインタフェースのexecute()）呼び出し直前

ユーザイベントハンドラ名

−

−

0xe051

ユーザイベントハンドラ（EventHandlerインタフェースのexecute()）呼び出し直後

−

−

例外情報※2

EADsサーバ間の送受信

0xe0c0

合意メッセージ（1相目）の送信直前

保守情報

合意メッセージ送信先EADsサーバのIPアドレス，ポート番号※3

保守情報

0xe0c1

合意メッセージ（1相目）の受信直後

保守情報

合意メッセージ送信元EADsサーバのIPアドレス，ポート番号※3

保守情報

0xe0c2

合意メッセージ（1相目）の応答送信直前

保守情報

合意メッセージ送信先EADsサーバのIPアドレス，ポート番号※3※4

保守情報

0xe0c3

合意メッセージ（1相目）の応答受信直後

保守情報

合意メッセージ送信元EADsサーバのIPアドレス，ポート番号※3※5

保守情報または例外情報※2

0xe0c4

合意メッセージ（2相目）の送信直前

保守情報

合意メッセージ送信先EADsサーバのIPアドレス，ポート番号※3

保守情報

0xe0c5

合意メッセージ（2相目）の受信直後

保守情報

合意メッセージ送信元EADsサーバのIPアドレス，ポート番号※3

保守情報

0xe0c6

合意メッセージ（2相目）の応答送信直前

保守情報

合意メッセージ送信先EADsサーバのIPアドレス，ポート番号※3※4

保守情報

0xe0c7

合意メッセージ（2相目）の応答受信直後

保守情報

合意メッセージ送信元EADsサーバのIPアドレス，ポート番号※3※5

例外情報※2

0xe0c8

合意メッセージ（成功）の送信直前

保守情報

合意メッセージ送信先EADsサーバのIPアドレス，ポート番号※3

−

0xe0c9

合意メッセージ（成功）の受信直後

保守情報

合意メッセージ送信元EADsサーバのIPアドレス，ポート番号※3

−

（凡例）

−：出力される情報はありません。

注

情報が取得できなかった場合，またはリクエスト中に情報が設定されていない場合，情報は出力されません。

上記の表で説明している以外のイベントID（保守情報のイベントID）も出力されます。

注※1

次に示す形式で出力されます。

IPアドレス:ポート番号/通番

注※2

例外が発生した場合に出力されます。

注※3

次に示す形式で出力されます。

IPアドレス:ポート番号

注※4

否定応答の場合は出力されません。

注※5

タイムアウトが発生した場合は出力されません。

ただし，次に示す例外が発生した場合は，合意メッセージ送信先EADsサーバのIPアドレス，およびポート番号が出力されます。

コネクション確立に失敗した。

コネクションがクローズした。

送信キューがあふれた。

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」のどれでも指定できます。

ただし，eztool cprfedコマンドの-Timeオプションは除きます。

14.2.1　ezstart（EADsサーバの開始）

(1)　機能

EADsサーバをバックグラウンドで開始します。

(2)　規則

このコマンドはDeveloperでは実行できません。

このコマンドはEADsサーバが停止状態のときに実行できます。

このコマンドはEADsサーバを開始するホストにログインして実行します。クラスタ内の全EADsサーバを開始する場合は，このコマンドをEADsサーバごとに実行する必要があります。

コマンド実行時に出力されるメッセージログは，コンソールには出力されません。＜運用ディレクトリ＞/logs下のeads_start.logに出力されます。

(3)　形式

ezstart ［-r］

(4)　オプションおよび引数

(a)　-rまたは--recovery

停止状態のEADsサーバをクラスタに復旧させて，クラスタへの参加状況をonlineにしたい場合に指定します。

(5)　リターンコード

0：正常終了

0以外：エラー

(6)　注意事項

このコマンドを実行するには，環境変数PATHに/binおよび/usr/binが設定されている必要があります。

このコマンドを複数同時に実行した場合，eads_start.logは後から実行したプロセスで上書きされます。PRFトレース情報を確認したい場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下のeads_server_message[n].log，およびspool/log/REQ_PRF_ID/ctmlog[n]を参照してください（[n]はファイル数の通番です）。

一度EADsサーバを起動したあと，別のユーザが同じEADsサーバを起動した場合，PRFデーモンの起動に失敗することがあります。この場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリを削除したあと，再実行してください。

PRFデーモンが起動した状態でこのコマンドを実行し，EADsサーバの起動に失敗した場合，PRFデーモンを停止しないで処理を終了することがあります。この場合は，EADsサーバの起動に失敗した要因を取り除いたあと，EADsサーバを再起動してください。

クラスタを構成するEADsサーバ数が多い場合，EADsサーバを同時に起動すると，処理に時間が掛かり，タイムアウトして起動に失敗することがあります。このような場合は，間隔を空けながらEADsサーバを起動してください。または，サーバ定義のeads.cluster.boot.timeoutパラメタの指定値を調整してください。

14.2.2　ezserver（EADsサーバのフォアグラウンドでの開始）

(1)　機能

EADsサーバをフォアグラウンドで開始します。

(2)　規則

このコマンドはEADsサーバが停止状態のときに実行できます。

このコマンドはEADsサーバを開始するホストにログインして実行します。クラスタ内の全EADsサーバを開始する場合は，このコマンドをEADsサーバごとに実行する必要があります。

コマンド実行時に出力されるメッセージログは，コンソール，およびサーバ定義のeads.logger.dirパラメタに指定したディレクトリ下のeads_server_message[n].log（[n]はファイル数の通番です）に出力されます。

(3)　形式

ezserver ［-r］

(4)　オプションおよび引数

(a)　-rまたは--recovery

停止状態のEADsサーバをクラスタに復旧させて，クラスタへの参加状況をonlineにしたい場合に指定します。

このオプションを指定した場合，Developerでは実行できません。

(5)　リターンコード

0：正常終了

0以外：エラー

(6)　注意事項

Linux上でこのコマンドを実行するには，環境変数PATHに/binおよび/usr/binが設定されている必要があります。

一度EADsサーバを起動したあと，別のユーザが同じEADsサーバを起動した場合，PRFデーモンの起動に失敗することがあります。この場合は，サーバ定義のeads.logger.dirパラメタに指定したディレクトリを削除したあと，再実行してください。

PRFデーモンが起動した状態でこのコマンドを実行し，EADsサーバの起動に失敗した場合，PRFデーモンを停止しないで処理を終了することがあります。この場合は，EADsサーバの起動に失敗した要因を取り除いたあと，EADsサーバを再起動してください。

クラスタを構成するEADsサーバ数が多い場合，EADsサーバを同時に起動すると，処理に時間が掛かり，タイムアウトして起動に失敗することがあります。このような場合は，間隔を空けながらEADsサーバを起動してください。または，サーバ定義のeads.cluster.boot.timeoutパラメタの指定値を調整してください。

すでに起動しているEADsサーバに対してこのコマンドを実行した場合，KDEA08408-Eメッセージが出力されて処理を中止します。ただし，ほぼ同時にEADsサーバを二重に起動した場合，メッセージが出力されない場合があります。この場合は間隔を開けてから，EADsサーバを起動してください。

14.2.3　eztool（クラスタの運用操作）

(1)　機能

クラスタに対して運用操作を行います。

(2)　規則

このコマンドはクラスタ内の任意のEADsサーバで実行します。

コマンド実行時に出力されるメッセージログは，コンソール，およびコマンド定義のeads.logger.dirパラメタに指定したディレクトリ下のeads_management_message[n].log（[n]はファイル数の通番です）に出力されます。

(3)　形式

eztool ［-h］
       ［-t ＜コマンドのタイムアウト時間＞］
        ＜サブコマンド＞ ＜オプションおよび引数＞

(4)　オプションおよび引数

(a)　-hまたは--help

コマンドの使用方法を表示したい場合に指定します。

ただし，次のコマンドでは指定できません。

eztool cprfed

eztool threaddump

eztool snapshot

eztool forcestop

このオプションを指定した場合，その他のオプションを指定しても無視されます。

(b)　-tまたは--timeout ＜コマンドのタイムアウト時間＞

コマンドのタイムアウト時間（単位：秒）を設定したい場合に指定します。

0〜2,147,483,647の整数が指定できます。

0を指定した場合はタイムアウトしません。

省略すると，コマンド定義のeads.management.command.timeoutパラメタの指定値が設定されます。

次のコマンドを実行する場合は，コマンド定義のeads.management.long_running.command.timeoutパラメタの指定値が設定されます。

eztool export

eztool import

eztool createcache

eztool deletecache

eztool execfunc

eztool importecf

eztool resume

eztool compaction

eztool stop

ただし，次のコマンドでは指定できません。

eztool cprfed

eztool threaddump

eztool snapshot

eztool forcestop

(c)　＜サブコマンド＞ ＜オプションおよび引数＞

このコマンドに指定できるサブコマンドについては，「14.3　eztoolコマンドのサブコマンド」を参照してください。

サブコマンドに指定できるオプションおよび引数については，各サブコマンドの説明を参照してください。

注意事項

サブコマンドの引数にハイフン（-）で始まる文字列を指定したい場合は，ハイフン2つ（--）を前方に付与して指定してください。ただし，ハイフン2つ（--）を引数として指定することはできません。

(5)　リターンコード

各サブコマンドの説明を参照してください。

(6)　注意事項

Linux上でこのコマンドを実行するには，環境変数PATHに/binおよび/usr/binが設定されている必要があります。

14.3　eztoolコマンドのサブコマンド

eztoolコマンドに指定できるサブコマンドの一覧を次の表に示します。

表14‒2　 eztoolコマンドに指定できるサブコマンド一覧

項番

利用シーン

サブコマンド名

実行対象

1

閉塞化と閉塞解除

クラスタを閉塞状態にする

close

クラスタ

2

クラスタの閉塞状態を解除する

open

クラスタ

3

状態確認

クラスタの状態を確認する

status

クラスタ※1

4

キャッシュの一覧を表示する

listcache

クラスタ

5

ストアデータファイルの一覧を表示する

listesd

クラスタ

6

データの格納先を表示する

getposition

クラスタ

7

排他制御

排他を解除する

unlock

クラスタ

8

メモリ・ディスク管理

キャッシュを作成する

createcache

クラスタ

9

キャッシュを削除する

deletecache

クラスタ

10

データ移行

データを書き出す

export

クラスタ※1

11

データを読み込む

import

クラスタ

12

ストアデータファイルを削除する

deleteesd

クラスタ

13

データ操作

指定したデータを格納する

put

EADsサーバ

14

指定したデータを取得する

get

EADsサーバ

15

指定したデータを削除する

remove

EADsサーバ

16

ユーザファンクション

ユーザファンクションの実行可否を表示する

listfunc

クラスタ

17

ユーザファンクションを実行する

execfunc

クラスタ※1※2

18

ユーザイベントハンドラ

ユーザイベントハンドラの実行可否を表示する

listevent

クラスタ

19

永続化

永続データに関する情報の一覧を表示する

listecf

クラスタ※1

20

キャッシュを再開する

resume

クラスタ

21

キャッシュファイルを読み込む

importecf

クラスタ

22

キャッシュファイルを削除する

deleteecf

クラスタ

23

キャッシュデータファイルをコンパクションする

compaction

EADsサーバ※3

24

トラブルシュート

PRFトレース情報を編集出力する

cprfed

EADsサーバ

25

スレッドダンプを出力する

threaddump

EADsサーバ

26

ログ，設定情報，ハードウェア情報，およびネットワーク情報を収集する

snapshot

EADsサーバ

27

終了

クラスタ内の全EADsサーバを終了する

stop

クラスタ

28

EADsサーバを強制終了する

forcestop

EADsサーバ

29

EADsサーバを縮退させる

isolate

EADsサーバ

注※1

-sまたは--singleオプションを指定すると，コマンドを実行したEADsサーバが対象となります。

注※2

-gまたは--groupオプションを指定すると，指定したグループ名のハッシュ値から決定したEADsサーバが対象となります。

注※3

--cacheオプションを指定すると，コマンドを実行したキャッシュが対象となります。

--rangeオプションを指定すると，コマンドを実行したレンジが対象となります。

14.3.1　コマンド間の排他制御

コマンド間の同時実行可否を次の表に示します。

表14‒3　コマンド間の同時実行可否

コマンドの種類

同時実行可否

更新系

参照系

データ操作

復旧

更新系

eztool close

eztool open

eztool createcache

eztool deletecache

eztool export

eztool import

eztool deleteesd

eztool resume

eztool importecf

eztool deleteecf

eztool snapshot -sd

またはeztool snapshot --safedump

eztool stop

eztool isolate

×

○

○

×

参照系

eztool status

eztool listcache

eztool listesd

eztool listecf

eztool getposition

eztool listfunc

eztool listevent

○

○

○

○

データ操作

eztool put

eztool get

eztool remove

eztool execfunc

○

○

○

○

復旧

ezstart -r

またはezstart --recovery

ezserver -r

またはezserver --recovery

×

○

○

×

（凡例）

○：同時に実行できます。

×：同時に実行できません。

注

eztool unlockコマンドは，排他を解除できるときだけ実行できます。

次のコマンドは常に，同時に実行できます。

eztool compaction

eztool cprfed

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)　リターンコード

0：成功

101：失敗

14.3.3　open（クラスタの閉塞解除）

(1)　機能

クラスタの閉塞状態を解除します。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，クラスタへの参加状況がonlineのEADsサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADsサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADsサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞状態（closed）

(3)　形式

eztool open

(4)　リターンコード

0：成功

101：失敗

14.3.4　status（クラスタ状態の確認）

(1)　機能

クラスタの状態を確認します。

(2)　規則

このサブコマンドはクラスタの状態に関係なく実行できます。

このサブコマンドは，EADsサーバが次の状態のときに実行できます。

初期化中（initializing）

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

縮退状態（isolated）

停止中（stopping）

(3)　形式

eztool status ［-v］
              ［-s|-c ＜表示内容の項目名＞==＜状態＞］

(4)　オプションおよび引数

(a)　-vまたは--verbose

コマンド実行結果の詳細を表示したい場合に指定します。

(b)　-sまたは--single

クラスタ全体ではなく，コマンドを実行するEADsサーバの状態だけを確認したい場合に指定します。

(c)　-cまたは--count ＜表示内容の項目名＞==＜状態＞

クラスタに参加する各EADsサーバの状態がそろっていることを確認したい場合に指定します。

指定した項目が，指定した状態と完全一致するEADsサーバ数を，リターンコードとして返します。ただし，情報が取得できないためにアスタリスク（*）が表示された項目については，カウントされません。

■表示内容の項目名

指定できる表示内容の項目名を次の表に示します。

表示内容の項目名

説明

表示の有無

-vまたは--verboseオプション指定

なし

あり

ID

EADsサーバID

○

○

IP_Address

EADsサーバのIPアドレス

○

○

ServerName

EADsサーバ名（運用ディレクトリ名）

×

○

ClientPort

EADsクライアントとの通信に使用するEADsサーバのポート番号

○

○

ServerPort

EADsサーバ間のデータの多重化に使用するポート番号

×

○

ManagePort

コマンドが使用する通信ポートを確認するためのポート番号

×

○

Position

EADsサーバの位置

○

○

Cluster

クラスタへの参加状況

○

○

State

EADsサーバの状態

○

○

Operation

現在実行中のサブコマンド名，またはコマンドのオプション名

○

○

Lock

EADsサーバの排他状態

×

○

KeyCount

EADsサーバ内のkeyの総数

×

○

UsedCache

EADsサーバ内の，メモリキャッシュまたは2Wayキャッシュのvalue部分が格納される領域のメモリ使用量（Explicitヒープ）の割合（メモリ使用量/メモリ総容量）

（単位：メガバイト）

×

○

Version

バージョン情報

×

○

（凡例）

○：表示されます。

×：表示されません。

■状態

指定した表示内容の項目名で表示される文字列を指定します。

ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

半角スペースは二重引用符（"）で囲むことで使用できますが，表示内容の項目名，および状態の前後の半角スペースは無視されます。

なお，情報が取得できない項目にはアスタリスク（*）が表示されるため，アスタリスク（*）だけを指定した場合はエラーとなります。

(5)　出力例

eztool statusコマンドの実行結果の出力例を次に示します。

■-vまたは--verboseオプションを指定しない場合

■-vまたは--verboseオプションを指定する場合

表示内容を次の表に示します。

項番

表示内容

説明

表示の有無

-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の場合，カウントされません。

○

○

6

ID

EADsサーバID

○

○

7

IP_Address

EADsサーバのIPアドレス

○

○

8

ServerName

EADsサーバ名（運用ディレクトリ名）

×

○※1※2

9

ClientPort

EADsクライアントとの通信に使用するEADsサーバのポート番号

○

○

10

ServerPort

EADsサーバ間のデータの多重化に使用するポート番号

×

○※2

11

ManagePort

コマンドが使用する通信ポートを確認するためのポート番号

×

○※2

12

Position

EADsサーバの位置

位置（ハッシュ値）は降順で表示されます。

○

○

13

Cluster

クラスタへの参加状況

次のどれかが表示されます。

online

クラスタに参加している

offline

クラスタに参加していない

standby

クラスタに参加する予定

○

○※3

14

State

EADsサーバの状態

次のどれかが表示されます。

initializing

初期化中

initialized

初期化状態

running

稼働状態

closing

閉塞中

closed

閉塞状態

isolated

縮退状態

stopping

停止中

○

○※1※2

15

Operation

現在実行中のサブコマンド名，またはコマンドのオプション名

次のどれかが表示されます。

close

open

unlock

createcache

deletecache

export

import

deleteesd

resume

importecf

deleteecf

compaction

stop

isolate

recovery

export，import，importecfおよびstopについては，処理の進捗率も表示されます。

（例）export(88%)

実行中でない場合はnoneが表示されます。

○

○※1※2

16

Lock

EADsサーバの排他状態

次のどちらかが表示されます。

lock

排他している

unlock

排他していない

×

○※3

17

KeyCount

EADsサーバ内のkeyの総数

多重化によってコピーされるkey数も含みます。

×

○※1※2

18

UsedCache

EADsサーバ内の，メモリキャッシュまたは2Wayキャッシュのvalue部分が格納される領域のメモリ使用量（Explicitヒープ）の割合（メモリ使用量/メモリ総容量）

（単位：メガバイト）

メガバイト以下の値は切り捨てて表示されます。

メモリ使用量には，多重化によってコピーされるvalueも含みます。

ここで表示されるメモリ使用量およびメモリ総容量については，keyとvalueのうち，value部分が格納される領域の容量だけが対象となります。管理領域として使用される分（Explicitヒープサイズの3%（メガバイト単位で小数点以下は切り上げ）），および更新操作の履歴が格納される領域の分は含まれません。

×

○※1※2

19

Version

バージョン情報

03-00の場合，03-00-00と表示されます。

×

○※1※2

（凡例）

○：表示されます。

×：表示されません。

注※1

接続失敗，通信エラー，または通信タイムアウトの場合，アスタリスク（*）が表示されます。

注※2

EADsサーバのクラスタへの参加状況がstandbyの場合，アスタリスク（*）が表示されます。

注※3

クラスタの状態がNOT_AVAILABLEの場合，アスタリスク（*）が表示されます。

(6)　リターンコード

0：成功

0以外：エラー

-sまたは--singleオプションを指定した場合

EADsサーバの状態をリターンコードとして返します。

0：稼働状態（running）

1：初期化中（initializing）

2：初期化状態（initialized）

3：閉塞中（closing）

4：閉塞状態（closed）

5：停止中（stopping）

10：縮退状態（isolated）

101：失敗

110：接続失敗

111：通信タイムアウト

-cまたは--countオプションを指定した場合

指定した項目が，指定した状態になっているEADsサーバ数を，リターンコードとして返します。

コマンドの実行に失敗した場合は101を返します。

(7)　注意事項

EADsサーバIDがいちばん小さいEADsサーバが起動していない場合，ほかのEADsサーバはクラスタに参加できません。また，クラスタに参加していないEADsサーバでこのコマンドを実行した場合，ほかのEADsサーバが複数起動していても，コマンドを実行したEADsサーバの情報しか表示されません。

復旧中のEADsサーバでこのコマンドを実行した場合，復旧が完了するまではほかのEADsサーバの情報は表示されません。

縮退状態のEADsサーバしか存在しない場合，クラスタ構成情報が更新されないために古い情報が表示されることがあります。

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

14.3.5　listcache（キャッシュの一覧表示）

(1)　機能

キャッシュの一覧を表示します。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，クラスタへの参加状況がonlineのEADsサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADsサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADsサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

(3)　形式

eztool listcache ［-v］

(4)　オプションおよび引数

(a)　-vまたは--verbose

コマンド実行結果の詳細を表示したい場合に指定します。

(5)　出力例

eztool listcacheコマンドの実行結果の出力例を次に示します。

■-vまたは--verboseオプションを指定しない場合

■-vまたは--verboseオプションを指定する場合

表示内容を次の表に示します。

項番

表示内容

説明

表示の有無

-vまたは--verboseオプション指定

なし

あり

1

CacheCount

キャッシュ数の現在値と最大値

○

○

2

CacheName

キャッシュ名

○

○

3

CacheType

キャッシュタイプ

次のどれかが表示されます。

Memory

メモリキャッシュ

Disk

ディスクキャッシュ

2Way

2Wayキャッシュ

○

○

4

TotalMasterKeyCount

各キャッシュのkeyの総数

多重化によってコピーされたkey数は含みません。

○

○

5

Server

EADsサーバのIPアドレス，およびEADsクライアントとの通信に使用するEADsサーバのポート番号

次の形式で表示されます。

IPアドレス:ポート番号

縮退状態（isolated），または起動していないEADsサーバの場合は，何も表示されません。

×

○

6

MasterKeyCount

EADsサーバごとの，各キャッシュのkeyの数

多重化によってコピーされたkey数は含みません。

縮退状態（isolated），または起動していないEADsサーバの場合は，何も表示されません。

×

○

（凡例）

○：表示されます。

×：表示されません。

注

実行結果は，次の優先順位に従って表示されます。

CacheNameの値の自然順序順に表示されます。

-vまたは--verboseオプションを指定する場合，CacheNameの値が同じ行は，Serverの値の自然順序順に表示されます。

(6)　リターンコード

0：成功

101：失敗

(7)　注意事項

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

14.3.6　listesd（ストアデータファイルの一覧表示）

(1)　機能

クラスタ内のストアデータファイルの一覧を表示します。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，クラスタへの参加状況がonlineのEADsサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADsサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADsサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

(3)　形式

eztool listesd ［-v］
               ［-d ＜ストアデータファイルの格納先パス名＞］

(4)　オプションおよび引数

(a)　-vまたは--verbose

コマンド実行結果の詳細を表示したい場合に指定します。

(b)　-dまたは--directory ＜ストアデータファイルの格納先パス名＞

ストアデータファイルの格納先パス名を指定します。

指定したディレクトリ下にあるストアデータファイルの一覧を表示したい場合に指定します。

パス名には，アスタリスク（*），二重引用符（"），疑問符（?），縦線（|），小なり演算子（<），大なり演算子（>）を含むディレクトリは指定できません。

ストアデータファイルの格納先パスに相対パスを指定した場合，運用ディレクトリが起点となります。

(5)　出力例

eztool listesdコマンドの実行結果の出力例を次に示します。

■-vまたは--verboseオプションを指定しない場合

■-vまたは--verboseオプションを指定する場合

表示内容を次の表に示します。

項番

表示内容

説明

表示の有無

-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が表示されます。

○

○

6

Type

ストアデータファイルの種別

次のどれかが表示されます。

export

eztool exportコマンド（引数指定なし）実行時に出力されるストアデータファイル

stop

eztool stopコマンド実行時に出力されるストアデータファイル

other

eztool exportコマンド（引数や-sまたは--singleオプション指定あり）実行時に出力されるストアデータファイル

○

○

7

StoreDataFileKey

ストアデータファイルキー

○

○

8

FileName

ストアデータファイル名

×

○

9

FileSize(MB)

ストアデータファイルサイズ

（単位：メガバイト）

メガバイト以下の値は切り捨てて表示されます。

×

○

10

Server

ストアデータファイルがあるEADsサーバのIPアドレス，およびEADsクライアントとの通信に使用するEADsサーバのポート番号

次の形式で表示されます。

IPアドレス:ポート番号

×

○

11

AbsolutePath

ストアデータファイル名（絶対パス）

×

○

（凡例）

○：表示されます。

×：表示されません。

注

実行結果は，次の優先順位に従って表示されます。

Typeの値がexport，stop，otherの順に表示されます。

Typeの値が同じ行は，StoreDataFileKeyの値の自然順序順に表示されます。

-vまたは--verboseオプションを指定する場合，Typeの値およびStoreDataFileKeyの値が同じ行は，Serverの値の自然順序順に表示されます。

(6)　リターンコード

0：成功

101：失敗

(7)　注意事項

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

14.3.7　getposition（データの格納先の表示）

(1)　機能

指定したkeyまたはグループの，格納先EADsサーバを表示します。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，EADsサーバが次の状態のときに実行できます。

初期化中（initializing）

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

縮退状態（isolated）

停止中（stopping）

-lオプションまたは--localオプションを指定した場合は，クラスタおよびEADsサーバの状態に関係なく実行できます。

(3)　形式

eztool getposition ＜key＞ ［-l］

(4)　オプションおよび引数

(a)　＜key＞

格納先EADsサーバを表示したいデータに関連づけられたkeyを指定します。

keyには，半角1,024文字までの，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

ただし，次の場合はエラーとなります。

区切り文字（:）がkeyの先頭または後尾にある場合

（例）　「:element」「group:」

区切り文字（:）が連続している場合

（例）　「group::element」

(b)　-lまたは--local

クラスタ定義で設定したクラスタ構成で，指定したkeyまたはグループが格納されるEADsサーバを知りたい場合に指定します。

このオプションを指定すると，コマンドを実行するEADsサーバのクラスタ定義ファイルの内容を読み込みます。

次の場合は，エラーとなります。

コマンドを実行するEADsサーバにクラスタ定義ファイルが存在しない場合

クラスタ定義のeads.node.＜EADsサーバID＞.addressパラメタおよびeads.node.＜EADsサーバID＞.portパラメタが定義されていない場合

注意事項

稼働中のクラスタ構成情報で，指定したkeyまたはグループが格納されるEADsサーバを知りたい場合は，このオプションを指定しないで実行してください。

なお，このオプションを指定しない場合，ダウンしているEADsサーバの情報は表示されません。表示されるEADsサーバ数とReplicationCount（データの多重度）を比較することで，データのコピー状況を確認します。

(5)　出力例

eztool getpositionコマンドの実行結果の出力例を次に示します。

表示内容を次の表に示します。

項番

表示内容

説明

1

ReplicationCount

データの多重度

2

HashValue

指定されたkeyまたはグループ名のハッシュ値

3

No.

データの優先度※

昇順で表示されます。

4

IP_Address

EADsサーバのIPアドレス

5

ClientPort

EADsクライアントとの通信に使用するEADsサーバのポート番号

6

Position

EADsサーバの位置（ハッシュ値）

注※

データを多重化している場合，データの格納先EADsサーバ，データのコピー先EADsサーバの順に表示されます。

この例の場合，No.1に表示されているEADsサーバがデータの格納先，No.2以降に表示されているEADsサーバが，データのコピー先となります。

(6)　リターンコード

0：成功

101：失敗

(7)　注意事項

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

すべてのEADsサーバが縮退状態（isolated）の場合はエラーとなります。

14.3.8　unlock（排他解除）

(1)　機能

コマンドの排他を解除します。

詳細については，「14.3.1　コマンド間の排他制御」を参照してください。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，クラスタへの参加状況がonlineのEADsサーバを処理対象とします。ただし，次の場合は実行できません。

実行中の操作がある場合

クラスタへの参加状況がstandbyのEADsサーバがクラスタ内にある場合

クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADsサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞状態（closed）

(3)　形式

eztool unlock

(4)　リターンコード

0：成功

101：失敗

(5)　注意事項

すべてのEADsサーバが縮退状態（isolated）の場合はエラーとなります。

14.3.9　createcache（キャッシュの作成）

(1)　機能

キャッシュを作成します。

キャッシュはメモリキャッシュ，ディスクキャッシュ，および2Wayキャッシュの合計で，クラスタ内に最大64個作成できます。

(2)　規則

このサブコマンドは，クラスタの状態がクラスタ稼働中（AVAILABLE）のときに実行できます。

このサブコマンドは，クラスタへの参加状況がonlineのEADsサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADsサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADsサーバが次の状態のときに実行できます。

初期化状態（initialized）

閉塞状態（closed）

(3)　形式

eztool createcache ＜キャッシュ名＞

(4)　オプションおよび引数

(a)　＜キャッシュ名＞

新しく作成するキャッシュの名称を指定します。

キャッシュ名に指定できる文字を次に示します。

キャッシュ定義ファイルを使用しない場合

半角32文字までの，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

キャッシュ定義ファイルを使用する場合

半角32文字までの，半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

(5)　リターンコード

0：成功

101：失敗

(6)　注意事項

キャッシュ定義ファイルを作成していない場合は，メモリキャッシュが作成されます。

キャッシュタイプがメモリキャッシュまたは2Wayキャッシュの場合，起動設定の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.10　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)　リターンコード

0：成功

101：失敗

14.3.11　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

クラスタ全体で保持するデータではなく，コマンドを実行するEADsサーバが保持するデータだけを書き出したい場合に指定します。

例えば，縮退状態になった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)　リターンコード

0：成功

101：失敗

(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.12　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 ＜ストアデータファイルの格納先パス名＞］
              ［＜ストアデータファイルキー＞］

(4)　オプションおよび引数

(a)　-dまたは--directory ＜ストアデータファイルの格納先パス名＞

ストアデータファイルの格納先パス名を指定します。

指定したディレクトリ下にあるストアデータファイルだけを読み込みたい場合に指定します。

パス名には，アスタリスク（*），二重引用符（"），疑問符（?），縦線（|），小なり演算子（<），大なり演算子（>）を含むディレクトリは指定できません。

ストアデータファイルの格納先パスに相対パスを指定した場合，各EADsサーバの運用ディレクトリが起点となります。

(b)　＜ストアデータファイルキー＞

ストアデータファイルのストアデータファイルキーを指定します。

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)　リターンコード

0：成功

101：失敗

(6)　注意事項

壊れている，または不正なストアデータファイルは読み込みません。

03-00より古いバージョンのEADsサーバで出力したストアデータファイルを読み込んだ場合，動作は保証されません。

データを一つ一つ登録し直すため，データ数やデータ量によっては，かなりの時間が掛かります。

ストアデータファイルのデータをputする際，キャッシュに同じ名称のkeyが存在する場合は，keyの更新日時をチェックして，ストアデータファイルの更新日時の方が新しいときにだけデータを上書きします。

14.3.13　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)　リターンコード

0：成功

101：失敗

(6)　注意事項

指定したストアデータファイルキーのストアデータファイルはすべて削除されます。

例えば，ストアデータファイルキーに「20111101130203」を指定してこのコマンドを実行した場合，各EADsサーバにあるeads_20111101130203_[EADsサーバID].esdファイルはすべて削除されます。

14.3.14　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には，半角1,024文字までの，ASCIIコード「0x20」〜「0x7E」の文字列（java.lang.String）が指定できます。

ただし，次の場合はエラーとなります。

区切り文字（:）がkeyの先頭または後尾にある場合

（例）　「:element」「group:」

区切り文字（:）が連続している場合

（例）　「group::element」

(c)　＜value＞

格納するvalueを指定します。

valueには，半角1,024文字までの文字列（java.lang.String）が指定できます。

(5)　リターンコード

0：成功

101：失敗

(6)　注意事項

APIで操作したデータをコマンドで操作したり，コマンドで操作したデータをAPIで操作したりすることができます。

ただし，keyやvalueに指定できるデータ型とサイズについて，APIとの完全な互換性はありません。例えば，このコマンドで文字列（java.lang.String）以外のオブジェクトや，半角1,024文字以上のvalueを格納することはできません。

14.3.15　get（指定したデータの取得）

(1)　機能

指定したvalueを取得します。

このコマンドは，構築後の実行環境が正常に動作するかどうかテストするために使用します。

(2)　規則

このサブコマンドはEADsサーバが稼働状態（running）のときに実行できます。

(3)　形式

eztool get ＜キャッシュ名＞ ＜key＞

(4)　オプションおよび引数

(a)　＜キャッシュ名＞

取得するvalueが格納されているキャッシュの名称を指定します。

キャッシュ名に指定できる文字を次に示します。

キャッシュ作成時にキャッシュ定義ファイルを使用しなかった場合

半角32文字までの，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

キャッシュ作成時にキャッシュ定義ファイルを使用した場合

半角32文字までの，半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

(b)　＜key＞

取得するvalueに関連づけられたkeyを指定します。

keyには，半角1,024文字までの，ASCIIコード「0x20」〜「0x7E」の文字列（java.lang.String）が指定できます。

ただし，次の場合はエラーとなります。

区切り文字（:）がkeyの先頭または後尾にある場合

（例）　「:element」「group:」

区切り文字（:）が連続している場合

（例）　「group::element」

(5)　出力例

eztool getコマンドの実行結果の出力例を次に示します。

表示内容を次の表に示します。

項番

表示内容

説明

1

Value

取得したvalue

2

ValueSize

取得したvalueのサイズ（単位：バイト）

(6)　リターンコード

0：成功

101：失敗

(7)　注意事項

APIで操作したデータをコマンドで操作したり，コマンドで操作したデータをAPIで操作したりすることができます。

ただし，keyやvalueに指定できるデータ型とサイズについて，APIとの完全な互換性はありません。

14.3.16　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には，半角1,024文字までの，ASCIIコード「0x20」〜「0x7E」の文字列（java.lang.String）が指定できます。

ただし，次の場合はエラーとなります。

区切り文字（:）がkeyの先頭または後尾にある場合

（例）　「:element」「group:」

区切り文字（:）が連続している場合

（例）　「group::element」

(5)　リターンコード

0：成功

101：失敗

(6)　注意事項

APIで操作したデータをコマンドで操作したり，コマンドで操作したデータをAPIで操作したりすることができます。

ただし，keyやvalueに指定できるデータ型とサイズについて，APIとの完全な互換性はありません。

14.3.17　listfunc（ユーザファンクションの実行可否の表示）

(1)　機能

ユーザファンクションの実行可否を表示します。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，クラスタへの参加状況がonlineのEADsサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADsサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADsサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

(3)　形式

eztool listfunc ［-v］ ［＜ユーザファンクション名＞］

(4)　オプションおよび引数

(a)　-vまたは--verbose

コマンド実行結果の詳細を表示したい場合に指定します。

(b)　＜ユーザファンクション名＞

実行可否を表示したいユーザファンクション名を指定します。

指定したユーザファンクションの情報だけを表示したい場合に指定します。

ユーザファンクション名には，半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数に制限はありません。

(5)　出力例

eztool listfuncコマンドの実行結果の出力例を次に示します。

(a)　-vまたは--verboseオプションを指定しない場合

表示内容を次の表に示します。

項番

表示内容

説明

1

FunctionCount

ユーザファンクションの総数

ユーザファンクション名を指定した場合は表示されません。

2

FunctionName

ユーザファンクション名

ユーザファンクション名を指定した場合は，指定したユーザファンクション名だけが表示されます。

自然順序順で表示されます。

3

Enable

ユーザファンクションを実行できる状態のEADsサーバ数

4

Disable

ユーザファンクションを実行できない状態のEADsサーバ数

(b)　-vまたは--verboseオプションを指定する場合

表示内容を次の表に示します。

項番

表示内容

説明

1

FunctionCount

ユーザファンクションの総数

ユーザファンクション名を指定した場合は表示されません。

2

Server

EADsサーバのIPアドレス，およびEADsクライアントとの通信に使用するEADsサーバのポート番号

次の形式で表示されます。

IPアドレス:ポート番号

3

FunctionName

ユーザファンクション名

ユーザファンクション名を指定した場合は，指定したユーザファンクション名だけが表示されます。

4

Status

ユーザファンクションの実行可否

次のどちらかが表示されます。

enable

実行できる

disable

実行できない

ユーザファンクションが存在しない場合，noneと表示されます。

注

実行結果は，次の優先順位に従って表示されます。

Serverの値の自然順序順に表示されます。

Serverの値が同じ行は，FunctionNameの値の自然順序順に表示されます。

(6)　リターンコード

0：成功

101：失敗

(7)　注意事項

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

14.3.18　execfunc（ユーザファンクションの実行）

(1)　機能

指定したユーザファンクションを実行します。

ユーザファンクションを実行するEADsクライアントを構築しなくても，このコマンドでユーザファンクションを実行できます。

(2)　規則

このサブコマンドはEADsサーバが稼働状態（running）のときに実行できます。

EADsサーバの位置（Position）の降順にユーザファンクションを実行します。実行途中で，一部のEADsサーバでユーザファンクションの実行に失敗しても，処理を継続します。

(3)　形式

eztool execfunc ［-g ＜グループ名＞|-s］
                ＜キャッシュ名＞ ＜ユーザファンクション名＞ ［＜ユーザファンクション引数＞］

(4)　オプションおよび引数

(a)　-gまたは--group ＜グループ名＞

グループ名を指定してユーザファンクションを実行したい場合に指定します。

グループ名には，半角1,024文字までの，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

ただし，次の場合はエラーとなります。

区切り文字（:）がkeyの先頭または後尾にある場合

（例）　「:element」「group:」

区切り文字（:）が連続している場合

（例）　「group::element」

(b)　-sまたは--single

コマンドを実行するEADsサーバだけでユーザファンクションを実行したい場合に指定します。

(c)　＜キャッシュ名＞

ユーザファンクションを実行するキャッシュの名称を指定します。

キャッシュ名に指定できる文字を次に示します。

キャッシュ作成時にキャッシュ定義ファイルを使用しなかった場合

半角32文字までの，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

キャッシュ作成時にキャッシュ定義ファイルを使用した場合

半角32文字までの，半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

(d)　＜ユーザファンクション名＞

実行したいユーザファンクション名を指定します。

ユーザファンクション名には，半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数に制限はありません。

(e)　＜ユーザファンクション引数＞

ユーザファンクションに特定の引数を渡したい場合に指定します。

省略した場合はnullが引数として渡されます。

ユーザファンクション引数には，半角1,024文字までの，ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

(5)　出力例

eztool execfuncコマンドの実行結果の出力例を次に示します。

表示内容を次の表に示します。

項番

表示内容

説明

1

Server

ユーザファンクションを実行したEADsサーバのIPアドレス，およびEADsクライアントとの通信に使用するEADsサーバのポート番号

次の形式で表示されます。

IPアドレス:ポート番号

2

Result

成功時

取得したユーザファンクションの実行結果オブジェクトのtoString()値

ただし，nullの場合は文字列の"null"が出力されます。

失敗時

発生した例外の情報

(6)　リターンコード

0：成功

101：失敗

失敗時のリターンコードは，コマンドの実行に失敗した場合に返します。ユーザファンクション実行時に例外が発生した場合，コマンドは成功として扱います。例外の内容については，Resultの表示結果を参照してください。

(7)　注意事項

通常のユーザファンクションとは異なり，ユーザファンクション引数と取得データの型は，文字列（java.lang.String）だけとなります。このコマンドを使用する場合は，この点を考慮してユーザファンクションを作成してください。

ただし，サイズの大きい文字列を使用すると，EADsサーバでGCが発生して性能に影響が出るおそれがあるので注意してください。

14.3.19　listevent（ユーザイベントハンドラの実行可否の表示）

(1)　機能

ユーザイベントハンドラの実行可否を表示します。

(2)　規則

このサブコマンドは，クラスタが次の状態のときに実行できます。

クラスタ稼働中（AVAILABLE）

クラスタ一部稼働中（PARTIALLY_AVAILABLE）

このサブコマンドは，クラスタへの参加状況がonlineのEADsサーバを処理対象とします。ただし，クラスタへの参加状況がstandbyのEADsサーバがクラスタ内にある場合は実行できません。クラスタへの参加状況については，eztool statusコマンドで確認できます。

このサブコマンドは，処理対象のEADsサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

(3)　形式

eztool listevent ［-v］ ［＜ユーザイベントハンドラ名＞］

(4)　オプションおよび引数

(a)　-vまたは--verbose

コマンド実行結果の詳細を表示したい場合に指定します。

(b)　＜ユーザイベントハンドラ名＞

実行可否を表示したいユーザイベントハンドラ名を指定します。

指定したユーザイベントハンドラの情報だけを表示したい場合に指定します。

ユーザイベントハンドラ名には，半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数に制限はありません。

(5)　出力例

eztool listeventコマンドの実行結果の出力例を次に示します。

(a)　-vまたは--verboseオプションを指定しない場合

表示内容を次の表に示します。

項番

表示内容

説明

1

EventCount

ユーザイベントハンドラの総数

ユーザイベントハンドラ名を指定した場合は表示されません。

2

EventName

ユーザイベントハンドラ名

ユーザイベントハンドラ名を指定した場合は，指定したユーザイベントハンドラ名だけが表示されます。

自然順序順で表示されます。

3

Enable

ユーザイベントハンドラを実行できる状態のEADsサーバ数

4

Disable

ユーザイベントハンドラを実行できない状態のEADsサーバ数

5

Priority

ユーザイベントハンドラの優先度

次のどれかが表示されます。

highest

high

normal

low

lowest

初期化に成功しているユーザイベントハンドラ間の優先度がそろっていない場合，UNMATCHと表示されます。

全ユーザイベントハンドラが初期化に成功していない場合は，何も表示されません。

6

OperationFilter

オペレーションタイプフィルタの内容

put，removeのうち，設定されているものが表示されます。

初期化に成功しているユーザイベントハンドラ間のオペレーションタイプフィルタの内容がそろっていない場合は，UNMATCHと表示されます。

全ユーザイベントハンドラが初期化に成功していない場合は，何も表示されません。

7

DataFilter

データフィルタの内容

cache，group，elementのうち，設定されているものが表示されます。何も設定されていない場合はnoneが表示されます。

初期化に成功しているユーザイベントハンドラ間のデータフィルタの内容がそろっていない場合は，UNMATCHと表示されます。

全ユーザイベントハンドラが初期化に成功していない場合は，何も表示されません。

(b)　-vまたは--verboseオプションを指定する場合

表示内容を次の表に示します。

項番

表示内容

説明

1

EventCount

ユーザイベントハンドラの総数

ユーザイベントハンドラ名を指定した場合は表示されません。

2

Server

EADsサーバのIPアドレス，およびEADsクライアントとの通信に使用するEADsサーバのポート番号

次の形式で表示されます。

IPアドレス:ポート番号

3

EventName

ユーザイベントハンドラ名

ユーザイベントハンドラ名を指定した場合は，指定したユーザイベントハンドラ名だけが表示されます。

4

Status

ユーザイベントハンドラの実行可否

次のどちらかが表示されます。

enable

実行できる

disable

実行できない

ユーザイベントハンドラが存在しない場合，noneと表示されます。

5

Priority

ユーザイベントハンドラの優先度

次のどれかが表示されます。

highest

high

normal

low

lowest

Statusにdisableまたはnoneと表示されるユーザイベントハンドラについては，何も表示されません。

6

OperationFilter

オペレーションタイプフィルタの内容

put，removeのうち，設定されているものが表示されます。

Statusにdisableまたはnoneと表示されるユーザイベントハンドラについては，何も表示されません。

7

DataFilter

データフィルタの内容

cache，group，elementのうち，設定されているものが表示されます。何も設定されていない場合はnoneが表示されます。

Statusにdisableまたはnoneと表示されるユーザイベントハンドラについては，何も表示されません。

注

実行結果は，次の優先順位に従って表示されます。

Serverの値の自然順序順に表示されます。

Serverの値が同じ行は，EventNameの値の自然順序順に表示されます。

(6)　リターンコード

0：成功

101：失敗

(7)　注意事項

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

14.3.20　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 ＜しきい値＞］
               ［＜キャッシュ名＞］

(4)　オプションおよび引数

(a)　-vまたは--verbose

コマンド実行結果の詳細を表示したい場合に指定します。

(b)　--divide ＜分割する個数＞

-vまたは--verboseオプションを指定した場合，コンパクションの効果のファイル数の分布が表示されます。コンパクションの効果のファイル数の分布を，任意の個数で分割したい場合に指定します。

分割する個数には，1から10までの整数が指定できます。

このオプションを指定しない場合，コマンド定義のeads.management.compaction.effect.divisionパラメタに指定した値（デフォルトは5）が分割する個数になります。

(c)　-sまたは--single

コマンドを実行するEADsサーバの実行結果だけを表示したい場合に指定します。

(d)　--threshold ＜しきい値＞

しきい値（単位：%）以上のコンパクションの効果があるキャッシュデータファイルのファイル数を表示したい場合に指定します。

しきい値には，1から100までの整数が指定できます。

このオプションを指定しない場合，コマンド定義のeads.management.compaction.effect.thresholdパラメタに指定した値（デフォルトは50）がしきい値になります。

(e)　＜キャッシュ名＞

指定したキャッシュ名のキャッシュの情報だけを表示したい場合に指定します。

キャッシュ名には，半角32文字までの半角英数字（0〜9，A〜Z，およびa〜z）が指定できます。

(5)　出力例

eztool listecfコマンドの実行結果の出力例を次に示します。

■-vまたは--verboseオプションを指定しない場合

■-vまたは--verboseオプションを指定する場合

表示内容を次の表に示します。

項番

表示内容

説明

表示の有無

-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）」の略称であることを表しています。

○

○

×

8

Cache

キャッシュ名

ディスクキャッシュおよび2Wayキャッシュのキャッシュ名が，次のキャッシュの情報から抽出されて表示されます。

EADsサーバに存在するキャッシュ

キャッシュ定義ファイルに指定したキャッシュ

◯

◯

○

9

ExCache

キャッシュがEADsサーバに存在しているかどうか

次のどちらかが表示されます。

true

EADsサーバに存在する

false

EADsサーバに存在しない

◯

◯

×

10

AcCP

EADsサーバ間でキャッシュ定義ファイルが一致しているかどうか

キャッシュ定義ファイルの有無も含めて，すべてのEADsサーバ間で一致しているかどうかが表示されます。

次のどちらかが表示されます。

true

一致している

false

一致していない

×

○

×

11

AcCI

EADsサーバ間でキャッシュ情報ファイルが一致しているかどうか

キャッシュ情報ファイルが存在しないEADsサーバは無視されて，一致しているかどうかが表示されます。

次のどちらかが表示されます。

true

一致している

false

一致していない

×

○

×

12

Range

レンジID

キャッシュ内のレンジを識別するための番号（1〜96の整数）です。データのコピー元EADsサーバのサーバIDと一致します。

○

◯

○

13

Server

Rangeの範囲に含まれるEADsサーバのIPアドレス，およびEADsクライアントとの通信に使用するEADsサーバのポート番号

次の形式で表示されます。

IPアドレス:ポート番号

○

○

×

14

ExCP

キャッシュ定義ファイルが存在するかどうか

次のどちらかが表示されます。

true

存在する

false

存在しない

EADsサーバが起動していない場合，または通信障害が発生した場合は，何も表示されません。

×

○

×

15

ExCI

キャッシュ情報ファイルが存在するかどうか

次のどちらかが表示されます。

true

存在する

false

存在しない

次の場合は何も表示されません。

EADsサーバが起動していない場合

通信障害が発生した場合

EADsサーバにキャッシュが読み込まれていない状態で，ExCPがfalseの場合

EADsサーバにキャッシュが読み込まれていない状態で，ExCIの情報取得に必要なパラメタがキャッシュ定義ファイルに指定されていない場合

×

○

×

16

ExCD

キャッシュデータファイルが存在するかどうか

次のどちらかが表示されます。

true

存在する

false

存在しない

次の場合は何も表示されません。

EADsサーバが起動していない場合

通信障害が発生した場合

EADsサーバにキャッシュが読み込まれていない状態で，ExCPがfalseの場合

EADsサーバにキャッシュが読み込まれていない状態で，ExCDの情報取得に必要なパラメタがキャッシュ定義ファイルに指定されていない場合

×

○

×

17

UnusedFC

使用していないファイル数

次の場合は何も表示されません。

EADsサーバが起動していない場合

通信障害が発生した場合

EADsサーバに存在しないキャッシュの場合

○

○

○

18

MaxCE

レンジ内のキャッシュデータファイルが持つコンパクションの効果の最大値※1

次の場合は何も表示されません。

EADsサーバが起動していない場合

通信障害が発生した場合

EADsサーバに存在しないキャッシュの場合

○

○

○

19

FilterCE(x%)※2

コンパクションの効果がしきい値以上のファイル数※3

次の場合は何も表示されません。

EADsサーバが起動していない場合

通信障害が発生した場合

EADsサーバに存在しないキャッシュの場合

○

○

○

20

CE(x-y%)※4

コンパクションの効果のファイル数の分布※3

次の場合は何も表示されません。

EADsサーバが起動していない場合

通信障害が発生した場合

EADsサーバに存在しないキャッシュの場合

×

○

○

（-vまたは--verboseオプションを指定した場合だけ，表示されます）

（凡例）

○：表示されます。

×：表示されません。

注

実行結果は，次の優先順位に従って表示されます。

Cacheの値の自然順序順に表示されます。

Cacheの値が同じ行は，Rangeの値の昇順に表示されます。

Cacheの値，およびRangeの値が同じ行は，Severの値の順（データの格納先EADsサーバ，データのコピー先EADsサーバの順）に表示されます。-sオプションまたは--singleオプションを指定した場合は該当しません。

注※1

コンパクションの効果の小数点以下は切り捨てて表示されます。

注※2

xには，しきい値として設定した値が表示されます。

注※3

コンパクションの効果の小数点以下を切り捨てた値で，ファイル数が集計されます。

注※4

分割する個数から算出した範囲が表示されます。2列目以降のヘッダには，範囲として「(x-y%)」だけが表示されます。

(6)　リターンコード

0：成功

101：失敗

(7)　注意事項

出力処理中にコマンドがタイムアウトした場合，出力結果が欠落することがあります。また，出力処理が完了していても，コマンドがタイムアウトになることがあります。このような場合には，コマンドのタイムアウト時間を大きくしてから再実行してください。

14.3.21　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)　リターンコード

0：成功

101：失敗

(5)　注意事項

キャッシュの再開の対象とならないキャッシュのキャッシュ定義の定義内容も，クラスタを構成する全EADsサーバで同じになるようにしてください（eads.cache.disk.info.dirパラメタおよびeads.cache.disk.<n>.dirパラメタは除きます）。

正常にクラスタを停止していない場合，削除したデータが復活することがあります。

キャッシュの再開が中途半端に終了した場合，排他は解除されません。キャッシュの再開を実行後，排他が解除されていない場合は，データが不整合になっているおそれがあります。そのまま運用を継続するとデータが破壊されたり，消失したりする危険があるため，次の手順で対処してください。

eztool status -vコマンドでクラスタの状態を確認する。

eztool unlockコマンドで排他を解除する。

eztool listcacheコマンドでキャッシュの一覧を確認する。

必要に応じてeztool deletecache --with_deleteecfコマンドでキャッシュを削除する。

再度キャッシュを再開する。

キャッシュの再開に失敗した場合は，次の項目を確認して，再度キャッシュを再開してください。

クラスタ定義ファイルに指定したパラメタの指定値が誤っていないかどうか

キャッシュ定義ファイルに指定したパラメタの指定値が誤っていないかどうか

キャッシュファイルが不正な状態になっていないかどうか

14.3.22　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 ＜キャッシュデータファイルとキャッシュインデックスファイルの格納先パス名＞

(4)　オプションおよび引数

(a)　＜キャッシュデータファイルとキャッシュインデックスファイルの格納先パス名＞

読み込みたいキャッシュデータファイルとキャッシュインデックスファイルの格納先パス名を指定します。

パス名には，アスタリスク（*），二重引用符（"），疑問符（?），縦線（|），小なり演算子（<），大なり演算子（>）を含むディレクトリは指定できません。

キャッシュデータファイルとキャッシュインデックスファイルの格納先パスに相対パスを指定した場合，運用ディレクトリが起点となります。

(5)　リターンコード

0：成功

101：失敗

(6)　注意事項

キャッシュ情報ファイル，キャッシュインデックスファイル，およびキャッシュデータファイルの出力先ディレクトリは指定できません。

このサブコマンドを実行すると，読み込み対象のディレクトリ下にあるキャッシュ永続データファイル，およびキャッシュインデックスファイルはすべて読み込まれます。

読み込み対象となるキャッシュデータファイル，およびキャッシュインデックスファイルが破損していたり，障害時のファイルだったりした場合は，削除したデータが復活することがあります。

読み込み対象となるキャッシュデータファイル，およびキャッシュインデックスファイルの処理中にエラーが発生した場合，次のキャッシュデータファイル，およびキャッシュインデックスファイルの処理を続けます。ただし，サブコマンドの結果はエラーとなります。このため，サブコマンドの結果がエラーとなった場合は，次の内容に問題がないかどうかを確認してください。

eztool statusコマンドでクラスタの状態を確認する。

eztool listcacheコマンドでキャッシュの一覧を確認する。

データを一つ一つ登録し直すため，データ数やデータ量によっては，かなりの時間が掛かります。

putするkeyのデータがすでに存在する場合は，keyの更新日時をチェックして，putするkeyのデータの更新日時が新しいときだけデータを上書きします。

14.3.23　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パラメタに指定したディレクトリ＞/＜キャッシュ名＞

(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)　リターンコード

0：成功

101：失敗

(6)　注意事項

EADsサーバが使用しているキャッシュのキャッシュファイルは削除できません。また，指定したキャッシュ名のキャッシュ定義ファイルが存在しない場合は，キャッシュファイルを削除できません。

14.3.24　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.management.compaction.effect.thresholdパラメタに指定した値（デフォルトは50）がしきい値になります。

(f)　--break

コンパクションを中断したいときに指定します。

コンパクションの中断は，ファイル単位で実行します。コンパクションを実行しているファイルの途中で中断することはできません。

(5)　リターンコード

0：成功

1：実行対象のファイルが存在しなかったため，コンパクションを実行しませんでした。

2：未使用ファイル数が--unused_fcオプションに指定した値以上に存在するため，コンパクションを実行しませんでした。

3：未使用ファイル数が--unused_fcオプションに指定した値に達する前に，実行対象のファイルがなくなりました。コンパクションは実行済みです。

10：--breakオプションが指定されましたが，コンパクションは実行されていません。

11：--breakオプションが指定されましたが，すでにコンパクションの中断が予約されています。

101：失敗

(6)　注意事項

このサブコマンドは，EADsサーバが稼働状態（running）でも実行できますが，性能に影響が出るおそれがあるため，注意してください。

コンパクションの中断を予約している場合に，このサブコマンドがタイムアウトしたり，プロセスが停止したりしたときは，中断待ちプロセスは完了しません。プロセスがタイムアウトするまで待つか，プロセスを停止してください。

あるファイルのコンパクションが終わってから，次のファイルのコンパクションが始まるまでの時間は，コンパクションの実行中ではありません。このため，--breakオプションを指定してコンパクションを中断しようとしても，コンパクションが実行されていないというメッセージが出力され，中断できない場合があります。その場合は，コンパクションが中断できるまで，eztool compaction --breakコマンドを繰り返し実行してください。

14.3.25　cprfed（PRFトレース情報の編集出力）

(1)　機能

バッファ上に格納されているPRFトレース情報をPRFトレースファイルに出力します。PRFトレース情報はCSV形式で編集出力されます。

なお，PRFトレース情報は＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/spool/utt/prf/REQ_PRF_ID/dcopltrc下に出力されます。

サーバ定義のeads.logger.dirパラメタを指定していない場合は，＜運用ディレクトリ＞/logs/spool/utt/prf/REQ_PRF_ID/dcopltrc下に出力されます。

(2)　規則

このサブコマンドはクラスタおよびEADsサーバの状態に関係なく実行できます。

Developerでこのサブコマンドを実行する場合，管理者特権でEADsサーバを起動してください。管理者特権がないと，エラーとなり実行できません。

(3)　形式

eztool cprfed ［-Time ＜開始時刻＞，＜終了時刻＞］

(4)　オプションおよび引数

(a)　-Time ＜開始時刻＞，＜終了時刻＞

指定された時刻内に取得されたPRFトレース情報だけを出力したい場合に指定します。

開始時刻，終了時刻は，hhmmss[MMdd[yyyy]]形式で指定します。MMdd，yyyyは省略できます。開始時刻と終了時刻は二重引用符（"）で囲みます。

hhmmss[MMdd[yyyy]]：

時（hh），分（mm），秒（ss），月（MM），日（dd），年（yyyy）

MMdd，yyyyを省略すると，コマンド実行月日年が設定されます。

また，どちらかの時刻を省略できます。開始時刻を省略した場合は，PRFトレースファイルの最初から，終了時刻を省略した場合は，PRFトレースファイルの最後まで出力されます。

このオプションを省略すると，前回ファイル出力したPRFトレース情報の，次のPRFトレース情報から，コマンドが入力された時点までのPRFトレース情報が出力されます。

2012年4月1日にコマンドを実行した場合の引数の指定例とその編集範囲の例を次に示します。

引数の指定

編集範囲

-Time "102345,"

2012年4月1日10時23分45秒からPRFトレースファイルの最後まで

-Time ",102345"

PRFトレースファイルの最初から2012年4月1日10時23分45秒まで

-Time "102345,102350"

2012年4月1日10時23分45秒から2012年4月1日10時23分50秒まで

-Time "1023450401,1023500414"

2012年4月1日10時23分45秒から2012年4月14日10時23分50秒まで

-Time "10234510102011,10235001102012"

2011年10月10日10時23分45秒から2012年1月10日10時23分50秒まで

(5)　出力例

eztool cprfedコマンドの実行結果の出力例を次に示します。

PRF,Process,Thread(hashcode),Trace,ProcessName,Event,Date,Time,Time(msec/usec/nsec),Rc,ClientAP IP,ClientAP PID, ClientAP CommNo.,RootAP IP,RootAP PID,RootAP CommNo.,SendSCD IP,SendSCD PID,ReceiveSCD IP,ReceiveSCD PID,INT,OPR,LookupName,OPT,ASCII
Rec,516,2204,10,ctmd.exe,0x1406,2004/02/05,16:46:55,576/000/000,0,XX.XXX.XX.XXX,2148,0x0000000000000107,XX.XXX.XX.XXX,2200,0x0000000000000104,XX.XXX.XX.XXX,516,****,****,com/abcd/BookShop,orderBook,BookShop,

表示内容を次の表に示します。

項番

表示内容

説明

1

PRF

PRFトレースのレコードの状態が出力されます。次のどちらかが出力されます。

Rec：正常

ErrRec：異常

2

Process

PRFトレースを取得したプロセスのプロセスIDが出力されます。

3

Thread(hashcode)

PRFトレースを取得したプロセスのスレッドIDが出力されます。（　）内にはスレッドのハッシュ値が出力されます。

4

Trace

保守情報です。

5

ProcessName

保守情報です。

6

Event

イベントID（16進数）が出力されます。出力されるイベントIDの意味については，「表13-2　出力されるイベントIDとその意味」を参照してください。

7

Date

PRFトレースを取得した年月日が出力されます。

8

Time

PRFトレースを取得した時刻が秒単位で出力されます。

9

Time(msec/usec/nsec)

PRFトレースを取得した時刻がミリ秒/マイクロ秒/ナノ秒単位で出力されます。

10

Rc

リターンコード（16進数）が出力されます。次のどちらかが出力されます。

0：処理成功

1：処理失敗

11

ClientAP IP

保守情報です。

12

ClientAP PID

保守情報です。

13

ClientAP CommNo.

保守情報です。

14

RootAP IP

EADsクライアントまたはEADsサーバのIPアドレスが出力されます。

一連の通信処理は，RootAP IP列，RootAP PID列，およびRootAP CommNo列の値が同じになります。

15

RootAP PID

EADsクライアントが付与する番号が出力されます。

16

RootAP CommNo.

通信番号（16進数）が出力されます。

17

SendSCD IP

保守情報です。

18

SendSCD PID

保守情報です。

19

ReceiveSCD IP

保守情報です。

20

ReceiveSCD PID

保守情報です。

21

INT

イベントIDごとに出力される情報が異なります。出力される情報については，「表13-2　出力されるイベントIDとその意味」を参照してください。

なお，情報が出力されないこともあります。

22

OPR

イベントIDごとに出力される情報が異なります。出力される情報については，「表13-2　出力されるイベントIDとその意味」を参照してください。

なお，情報が出力されないこともあります。

23

LookupName

保守情報です。

24

OPT

保守情報です。

25

ASCII

イベントIDごとに出力される情報が異なります。出力される情報については，「表13-2　出力されるイベントIDとその意味」を参照してください。

なお，情報が出力されないこともあります。

(6)　リターンコード

0：eztool cprfedコマンドが正常に終了しました。

0以外：エラー

(7)　注意事項

高負荷時に排他によるボトルネックが生じないように，PRFトレース情報の出力時に排他制御を行っていません。そのため，一部のPRFトレース情報が正しく出力されない場合があります。

14.3.26　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.27　snapshot（ログ，設定情報，ハードウェア情報，およびネットワーク情報の収集）

(1)　機能

次のファイルを収集し，書庫ファイルとしてアーカイブします。

ただし，拡張子が.tar，.tar.gz，または.tgzのファイルは除きます。

EADsログ情報

稼働中のEADsサーバのスレッドダンプ

サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下のファイル

ただし，eads_management_*ファイル（*は0文字以上の任意の文字列）は除きます。

コマンド定義のeads.logger.dirパラメタに指定したディレクトリ直下のeads_management_*ファイル（*は0文字以上の任意の文字列）

コマンド定義のeads.logger.dirパラメタに指定したディレクトリのmaintenanceディレクトリ直下のeads_management_*ファイル（*は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）

キャッシュ情報ファイルの一覧（＜運用ディレクトリ＞/logs/snapshot_info/cache_file_info/eads_info ＜キャッシュ名＞.txt）

キャッシュインデックスファイルの一覧（＜運用ディレクトリ＞/logs/snapshot_info/cache_file_info/eads_index_<キャッシュ名>.txt）

ハードウェア・ネットワーク情報

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_netstat.txt）

カーネルパラメタnet.core情報（＜運用ディレクトリ＞/logs/snapshot_info/eads_info/eads_info_netcore.txt）

ホストとIPアドレスの対応情報（/etc/hostsファイル）

ネットワークインタフェース情報（＜運用ディレクトリ＞/logs/snapshot_info/eads_info/eads_info_ifconfig.txt）

コマンドに割り当てる資源の制限情報（＜運用ディレクトリ＞/logs/snapshot_info/eads_info/eads_info_ulimit.txt）

なお，gzファイルはサーバ定義のeads.logger.dirパラメタに指定したディレクトリ下に出力されます。

サーバ定義のeads.logger.dirパラメタを指定していない場合は，＜運用ディレクトリ＞/logs下に出力されます。

ファイル名は，次に示す形式となります。

snapshot_[EADsサーバ名]_[YYYYMMDDhhmmss].tar.gz

（凡例）

[YYYYMMDDhhmmss]：コマンド実行日時

YYYY：年，MM：月，DD：日，hh：時（00〜23），mm：分，ss：秒

(2)　規則

このサブコマンドはDeveloperでは実行できません。

このサブコマンドはクラスタおよび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

-fdオプションを指定した場合

snapshot, -v, -t, 60

snapshot, -s, -v, -t, 60

-sdオプションを指定した場合

snapshot, -v, -t, 60

snapshot, -s, -v, -t, 60

snapshot, --lock, -t, 60※

snapshot, --unlock, -t, 60※

注※　EADsサーバが縮退状態（isolated）のときは出力されません。

14.3.28　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)　リターンコード

0：成功

101：失敗

(6)　注意事項

このコマンドの実行時に出力されるストアデータファイルの詳細については，「7.6.2(3)　eztool stopコマンド実行時に出力されるストアデータファイル」を参照してください。

ストアデータファイルの出力先については，「7.4.2　ファイルの出力先の設定」を参照してください。

14.3.29　forcestop（EADsサーバの強制終了）

(1)　機能

EADsサーバを強制終了します。

(2)　規則

このサブコマンドはクラスタの状態に関係なく実行できます。

このサブコマンドは，EADsサーバが次の状態のときに実行できます。

初期化中（initializing）

初期化状態（initialized）

稼働状態（running）

閉塞中（closing）

閉塞状態（closed）

縮退状態（isolated）

停止中（stopping）

(3)　形式

eztool forcestop

(4)　リターンコード

1：EADsサーバが見つかりませんでした。

1以外：Linuxではkillコマンドの終了コードを，Windowsではtaskkillコマンドの終了コードを返します。

(5)　注意事項

このコマンドは，メモリキャッシュのデータをストアデータファイルに書き出さないでEADsサーバを強制終了します。このため，ほかのEADsサーバに同一レンジのデータが存在しない場合，メモリキャッシュのデータは失われます。

14.3.30　isolate（EADsサーバの縮退）

(1)　機能

EADsサーバを縮退させます。

(2)　規則

このサブコマンドはDeveloperでは実行できません。

このサブコマンドは，クラスタの状態がクラスタ稼働中（AVAILABLE）のときに実行できます。

このサブコマンドは，EADsサーバが次の状態のときに実行できます。

初期化状態（initialized）

稼働状態（running）

閉塞状態（closed）

縮退状態（isolated）

稼働状態（running）でこのサブコマンドを実行した場合，実行中のユーザファンクションやユーザイベントハンドラが終了するのを待ってから縮退します。

(3)　形式

eztool isolate ［--stop］

(4)　オプションおよび引数

(a)　--stop

EADsサーバの縮退後，終了まで行いたい場合に指定します。

すでに縮退しているEADsサーバに対して実行した場合は，EADsサーバの終了だけを行います。

(5)　リターンコード

0：成功

101：失敗

(6)　注意事項

このサブコマンドを実行してEADsサーバを縮退したあと，クラスタ構成情報が更新されていないEADsクライアントからAPIを実行した場合，EADsサーバとの接続でエラーが発生することがあります。

このサブコマンドを実行することでレンジが動作不能となり，データの継続操作ができなくなる場合は，エラーとなります。

第4編　AP開発

15　AP開発の流れ

この章では，AP開発の流れと，APを開発する前に知っておくべき前提条件について説明します。

15.1　AP開発の流れ

AP開発の流れを次の図に示します。

15.1.1　開発環境を構築する

APを作成するための開発環境を準備します。

APの開発環境は，APを作成する言語（Java言語またはC言語）によって，必要なプログラムプロダクトが異なります。それぞれ必要なプログラムプロダクトをインストールし，APの開発環境をセットアップします。

Java言語の場合

uCosminexus Elastic Application Data store

C言語の場合

uCosminexus Elastic Application Data store

uCosminexus Elastic Application Data store Client for C

次の項目を参照して，EADsサーバとEADsクライアントを実行環境と同じように構築して，開発環境として使用してください。

「5.　インストールおよびセットアップを行う（EADsサーバ）」

「6.　インストールおよびセットアップを行う（EADsクライアント）」

なお，ユーザファンクションまたはユーザイベントハンドラを作成する場合，次のプログラムプロダクトを提供しています。

uCosminexus Elastic Application Data store Developer

Developerを使用してユーザファンクションまたはユーザイベントハンドラを作成する方は，「16.　Developerを構築する」を参照してください。

15.1.2　APを作成する

開発環境が構築できたら，APを作成します。

Java言語を使用してクライアントAPを作成する方は，「17.　クライアントAPを作成する（Java言語）」を参照してください。

ユーザファンクションを作成する方は，「18.　ユーザファンクションを作成する」を参照してください。

ユーザイベントハンドラを作成する方は，「19.　ユーザイベントハンドラを作成する」を参照してください。

C言語を使用してクライアントAPを作成する方は，「21.　クライアント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言語の場合

uCosminexus Elastic Application Data store Client for Java

C言語の場合

uCosminexus 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として指定できるデータ型と文字数を，APを作成する言語ごとに次の表に示します。

表15‒1　keyとして指定できるデータ

APを作成する言語

keyとして指定できるデータ型

文字数

備考

Java言語

文字列（java.lang.String）

1〜1,024

ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

keyをグルーピングする場合，作成できるグループ数，およびグループの階層数に上限はありません。

keyをグルーピングする場合，グループ名，区切り文字（:），要素名を合わせて1,024文字までとなります。

keyをグルーピングする場合，グループ名と要素名にコロン（:）は指定できません。

nullまたは空文字列は不正となります。

C言語

'¥0'を終端記号とする文字列（char *）

1〜1,024

ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

keyをグルーピングする場合，作成できるグループ数，およびグループの階層数に上限はありません。

keyをグルーピングする場合，グループ名，区切り文字（:），要素名を合わせて1,024文字までとなります。

keyをグルーピングする場合，グループ名と要素名にコロン（:）は指定できません。

文字列の最大サイズは，'¥0'を含まないバイト数となります。

長さ0の文字列（'¥0'だけ）は指定できません。

注意事項

eztool put，eztool get，eztool removeの各コマンドは，構築後の実行環境が正常に動作するかどうかテストするために使用します。そのため，コマンドで指定できるデータ型とサイズと，API（put，get，remove）で指定できるデータ型とサイズの間に完全な互換性はありません。

(2)　valueとして指定できるデータ

valueとして指定できるデータ型とサイズを，APを作成する言語ごとに次の表に示します。

表15‒2　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またはユーザファンクションでバイト配列として取得できます。

C言語のクライアントAPからユーザファンクションを実行する場合，ユーザファンクションの戻り値として扱うことができるオブジェクトは，バイト配列とnullだけです。バイト配列およびnull以外のオブジェクトを戻り値とした場合，エラーとなります。

(3)　キャッシュ名として指定できるデータ

キャッシュ名として指定できるデータ型と文字数を，APを作成する言語ごとに次の表に示します。

表15‒3　キャッシュ名として指定できるデータ

APを作成する言語

キャッシュ名として指定できるデータ型

文字数

備考

Java言語

文字列（java.lang.String）

1〜32

ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

nullまたは空文字列は不正となります。

C言語

'¥0'を終端記号とする文字列（char *）

1〜32

ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

文字列の最大サイズは，'¥0'を含まないバイト数となります。

長さ0の文字列（'¥0'だけ）は指定できません。

(4)　EADsクライアント名として指定できるデータ

EADsクライアント名として指定できるデータ型と文字数を，APを作成する言語ごとに次の表に示します。

表15‒4　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　Developerを構築する

EADsでは，ユーザファンクションおよびユーザイベントハンドラの開発をサポートするための製品として，Developerを提供しています。DeveloperはWindows上で動作します。

この章では，ユーザファンクションおよびユーザイベントハンドラの開発環境であるDeveloperの構築方法について説明します。

16.1　Developerに必要なリソースを確認する

Developerに必要なマシンスペックを次に示します。

リソース

説明

メモリ容量

1ギガバイト以上必要です。

ディスク容量

1ギガバイト必要です（すべてのパラメタをデフォルト値に設定した場合）。

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

ここでは，Developerのインストール方法について説明します。

インストールは管理者特権を持ったユーザが行います。

16.2.1　インストール手順

注意事項

すでに別バージョンのDeveloper用EADsサーバがインストールされている場合，上書きインストールされます（ただし，03-00以降のバージョンに限ります）。また，Developer用EADsサーバプロセスが起動していないことを確認してからインストールしてください。

Windows Installerを使用してDeveloperをインストールします。

画面の指示に従ってインストールを完了させます。

デフォルトのインストールディレクトリは，＜OSのインストールドライブ＞¥xeadsです。

（例）OSがCドライブにインストールされている場合

C:¥xeads¥

インストールディレクトリ名には，最大43文字の半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ハイフン（-），丸括弧（()），コロン（:），円符号（¥），および半角スペースが指定できます。

16.2.2　インストール後にすること

インストールしたあと，管理者特権を持ったユーザで次のことを行います。

(1)　ディレクトリ構成を確認する

インストール後，ディレクトリ構成を確認します。

図16‒1　Developerのディレクトリ構成

図に示したDeveloperのディレクトリ構成について説明します。

ディレクトリ

説明

＜インストールディレクトリ＞¥server¥

Developer用EADsサーバのインストールディレクトリです。

lib

Developer用EADsサーバを実行するためのライブラリファイルが格納されています。

ライブラリファイルは編集できません。

sample

eztool execfuncコマンドで実行できるユーザファンクションのサンプルプログラムが格納されています。

servers

Developer用EADsサーバの運用ディレクトリを配置します。

developer_template

Developer用EADsサーバの運用ディレクトリのテンプレートです。

bin

Developer用EADsサーバを運用操作するコマンドが格納されています。

コマンドは編集できません。

conf

次に示す定義ファイルが格納されています。

サーバ定義ファイル

クラスタ定義ファイル

起動設定ファイル

コマンド定義ファイル

キャッシュ定義ファイル

app

ファンクション定義ファイル，ユーザファンクション，およびユーザイベントハンドラの格納先です。

lib

ユーザファンクション，およびユーザイベントハンドラを実行するためのライブラリファイルの格納先です。

logs

ログファイルの出力先（デフォルト）です。

maintenance

保守ログファイル（システムが使用するファイル）の出力先（デフォルト）です。

spool

PRFトレースファイルの出力先（デフォルト）です。

stats

統計情報ファイルの出力先（デフォルト）です。

store

ストアデータファイル，キャッシュ情報ファイルおよびキャッシュインデックスファイルの出力先（デフォルト）です。

project

Apache Antを実行するためのビルドファイルが格納されています。

java

ユーザファンクション，およびユーザイベントハンドラを実行するためのディレクトリです。

user-function

ユーザファンクションのサンプルプログラムが格納されています。

user-event-handler

ユーザイベントハンドラのサンプルプログラムが格納されています。

＜インストールディレクトリ＞¥javaclient¥

Developer用EADsクライアント（Java）のインストールディレクトリです。

conf

クライアント定義ファイルが格納されています。

lib

ライブラリファイルが格納されています。

＜インストールディレクトリ＞¥PSB¥

EADsで使用する機能の格納用ディレクトリです。

PRF

パフォーマンストレーサのインストールディレクトリです。

jdk

JDKのインストールディレクトリです。

16.3　Developer用EADsサーバをセットアップする

インストール以降の作業は管理者特権がなくても実施できます。

16.3.1　Developer用EADsサーバの運用ディレクトリを作成する

運用ディレクトリのテンプレートである＜インストールディレクトリ＞¥server¥servers¥developer_templateディレクトリを，＜インストールディレクトリ＞¥server¥serversディレクトリ下に別名でコピーします。

運用ディレクトリ名には，最大32文字の半角英数字（0〜9，A〜Z，a〜z），およびアンダースコア（_）が指定できます。

注意事項

すでに存在する運用ディレクトリを使用する場合，次に示すファイルとディレクトリを別のディレクトリに移動するか，または削除してください。

サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリ

コマンド定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイルと全ディレクトリ

16.3.2　Developer用EADsサーバで使用する定義ファイルを確認する

次のディレクトリに格納されている各種定義ファイルを確認します。

＜運用ディレクトリ＞¥conf

特に確認が必要な点を次に示します。

ポート番号

ログファイルおよびストアデータファイルの出力先

ログファイルのファイルサイズおよびファイル数

上記の項目については，デフォルト値で問題なければ定義内容を変更する必要はありません。

なお，実行環境のEADsサーバで使用する各種定義ファイルとはデフォルト値が異なります。Developerで使用する定義ファイルで設定される値については，「付録B　Developerで使用する定義ファイルで設定される値」を参照してください。

16.4　Developer用EADsクライアントをセットアップする

クライアント定義ファイルの編集方法について説明します。

16.4.1　Developer用クライアント定義ファイルを編集する

クライアント定義ファイルを編集する手順を説明します。

次に示すディレクトリ下のクライアント定義ファイルを，APで指定したディレクトリにコピーします（ファイル名もAPで指定したファイル名に合わせます）。

＜インストールディレクトリ＞¥javaclient¥conf¥eads_sample_client.properties

クライアント定義ファイル名は最大32文字で，半角英数字（0〜9，A〜Z，a〜z），およびアンダースコア（_）が指定できます。

クライアント定義ファイルを編集します。

次に示す点を確認し，定義内容を変更します。

通信に依存するパラメタ

サーバ定義の設定を確認して設定します。

ログファイルの出力先

その他の定義内容については，デフォルト値で問題なければ変更する必要はありません。

16.4.2　サンプルプログラムを使用する

サンプルプログラムは次のディレクトリに格納されています。次のディレクトリをコピーして使用してください。

ユーザファンクションのサンプルプログラム

＜インストールディレクトリ＞¥server¥servers¥developer_template¥project¥java¥user-function

ユーザイベントハンドラのサンプルプログラム

＜インストールディレクトリ＞¥server¥servers¥developer_template¥project¥java¥user-event-handler

16.5　Developerをアンインストールする

注意事項

Developer用EADsサーバプロセスが起動していないことを確認してからアンインストールしてください。

Developerは，次の手順でアンインストールしてください。

「Windowsマーク（スタート）」-「コントロール パネル」を選択します。

表示された画面で「プログラムのアンインストール」を選択します。

プログラムの一覧からuCosminexus Elastic Application Data store Developerを選択して，アンインストールします。

16.6　Developerで実行できるコマンドおよびタスク

セットアップが完了したら，Developer用EADsサーバを開始して，AP（ユーザファンクションおよびユーザイベントハンドラ）の開発やテストを行います。

Developerでは，APの開発やテストを支援するためのコマンドや，Apache Antのタスクを用意しています。ここでは，Developerで実行できるEADsのコマンドとDeveloperが提供するApache Antのタスクについて説明します。

16.6.1　EADsのコマンド

Developerでは，次に示すコマンドは実行できません。

バックグラウンドでのEADsサーバの開始（ezstart）

EADsサーバの復旧（ezserver -r）

ログ，設定情報，ハードウェア情報，およびネットワーク情報の収集（eztool snapshot）

EADsサーバの縮退（eztool isolate）

EADsのコマンドについては，「14.　コマンドリファレンス」を参照してください。

16.6.2　Apache Antのタスク

Developerでは，Apache Antを使用することによって，コマンドラインから複数の運用操作を一括して実行できます。

(1)　Apache Antをインストールする

Apache Antのインストール手順について説明します。

Apache Ant version 1.7.1以降をインストールします。

システム環境変数ANT_HOMEを設定します。

システム環境変数ANT_HOMEにApache Antを展開したディレクトリ名を指定します。

システム環境変数Pathを設定します。

システム環境変数Pathに「%ANT_HOME%¥bin;」を追加します。

システム環境変数JAVA_HOMEを設定します。

システム環境変数JAVA_HOMEに「＜インストールディレクトリ＞¥PSB¥jdk」を指定します。

(2)　Developerが提供するApache Antのタスク

Developerが提供するApache Antのタスクを次の表に示します。

表16‒1　Developerが提供するApache Antのタスク一覧

項番

利用シーン

実行形式

1

Developer用EADsサーバを開始する

ファイルからデータを読み込む場合

ant.bat start

2

ファイルからデータを読み込まない場合

ant.bat start_nocache

3

Developer用EADsサーバの状態を確認する

ant.bat status

4

キャッシュを作成する

ant.bat createcache -DcacheName=＜キャッシュ名＞

5

キャッシュを削除する

ant.bat deletecache -DcacheName=＜キャッシュ名＞

6

ソースプログラムをコンパイルする

ユーザファンクションをコンパイルする場合

ant.bat compilefunc

7

ユーザイベントハンドラをコンパイルする場合

ant.bat compileevent

8

ユーザファンクションとユーザイベントハンドラをコンパイルする場合

ant.bat compile

9

デプロイする

ユーザファンクションをデプロイする場合

ant.bat deployfunc

10

ユーザイベントハンドラをデプロイする場合

ant.bat deployevent

11

ユーザファンクションとユーザイベントハンドラをデプロイする場合

ant.bat deploy

12

Developer用EADsサーバを終了する

ant.bat stop

13

コマンドの使用方法を表示する

ant.bat -p

16.6.3　Apache Antのタスクの格納先

Apache Antのタスクは，次のディレクトリに格納されています。

＜運用ディレクトリ＞¥project

16.6.4　Developer用EADsサーバを開始する

Developer用EADsサーバを開始します。

Developer用EADsサーバを開始したあと，前回稼働時にファイルに書き出したデータを再度メモリ上に読み込ませるかどうかで，実行するタスクが異なります。

それぞれのタスクについて説明します。

(1)　ファイルからデータを読み込む場合

次のタスクを実行します。

ant.bat start

次の処理（コマンド）が順番に実行されます。

EADsサーバの開始（ezserver）

データの読み込み※（eztool import）

クラスタの閉塞状態解除（eztool open）

クラスタの状態表示（詳細）（eztool status -v）

キャッシュの一覧表示（eztool listcache）

ユーザファンクションの実行可否の表示（eztool listfunc）

ユーザイベントハンドラの実行可否の表示（eztool listevent）

注※

存在するストアデータファイル（eads_developer_[EADsサーバID].esd）をすべて読み込みます。存在しない場合，エラーが発生しますが，処理は中断されません。

(2)　ファイルからデータを読み込まない場合

次のタスクを実行します。

ant.bat start_nocache

次の処理（コマンド）が順番に実行されます。

EADsサーバの開始（ezserver）

クラスタの閉塞状態解除（eztool open）

クラスタの状態表示（詳細）（eztool status -v）

キャッシュの一覧の表示（eztool listcache）

ユーザファンクションの実行可否の表示（eztool listfunc）

ユーザイベントハンドラの実行可否の表示（eztool listevent）

16.6.5　Developer用EADsサーバの状態を確認する

Developer用EADsサーバの状態を確認する場合は，次のタスクを実行します。

ant.bat status

次の処理（コマンド）が実行されます。

クラスタの状態表示（詳細）（eztool status -v）

16.6.6　キャッシュを作成する

キャッシュを作成する場合は，次のタスクを実行します。

ant.bat createcache -DcacheName=＜キャッシュ名＞

参考

キャッシュ名には，半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_）またはハイフン（-）が指定できます。

次の処理（コマンド）が順番に実行されます。

クラスタの閉塞（eztool close）

キャッシュの作成（eztool createcache）

クラスタの閉塞状態解除（eztool open）

キャッシュの一覧表示（eztool listcache）

16.6.7　キャッシュを削除する

キャッシュを削除する場合は，次のタスクを実行します。

ant.bat deletecache -DcacheName=＜キャッシュ名＞

参考

キャッシュ名には，半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_）またはハイフン（-）が指定できます。

次の処理（コマンド）が順番に実行されます。

クラスタの閉塞（eztool close）

キャッシュの削除（eztool deletecache）

クラスタの閉塞状態解除（eztool open）

キャッシュの一覧表示（eztool listcache）

16.6.8　ソースプログラムをコンパイルする

ソースプログラムをコンパイルする手順について説明します。

(1)　ソースプログラムを配置する

作成したソースプログラムを次に示すディレクトリに配置します。

注意事項

Apache Antのタスクを使用してコンパイルする場合は，ソースプログラムの文字コードはUTF-8にしてください。

ユーザファンクション

＜運用ディレクトリ＞¥project¥java¥user-function

ユーザイベントハンドラ

＜運用ディレクトリ＞¥project¥java¥user-event-handler

(2)　ライブラリを設定する（任意）

コンパイルに必要なライブラリのうち，EADsが提供するライブラリは自動的に読み込まれるため，設定は不要です。EADsが提供するライブラリ以外に必要なライブラリがある場合は，次に示すディレクトリに配置します。なお，コンパイル時と実行時で同じライブラリを使用してください。

＜運用ディレクトリ＞¥app¥lib

(3)　マニフェストを設定する

マニフェストを設定する場合は，ソースプログラムを配置したディレクトリにマニフェストファイル（MANIFEST.MF）を配置します。

(4)　コンパイルする

ユーザファンクションおよびユーザイベントハンドラをコンパイルするためのタスクを実行すると，classファイルおよびjarファイルの作成が行われます。

同名のファイルがすでに存在する場合は上書きされます。

ソースプログラムをコンパイルするためのタスクは，コンパイルする対象ごとに異なります。

それぞれのタスクについて説明します。

(a)　ユーザファンクションをコンパイルする場合

ユーザファンクションをコンパイルする場合は，次のタスクを実行します。

ant.bat compilefunc

コンパイルされたclassファイルは，一時的に作成される次のディレクトリに出力されます。

＜運用ディレクトリ＞¥project¥temp¥classes¥user-function

jarファイル（user-function.jar）は，＜運用ディレクトリ＞¥project¥temp下に出力されます。

(b)　ユーザイベントハンドラをコンパイルする場合

ユーザイベントハンドラをコンパイルする場合は，次のタスクを実行します。

ant.bat compileevent

コンパイルされたclassファイルは，一時的に作成される次のディレクトリに出力されます。

＜運用ディレクトリ＞¥project¥temp¥classes¥user-event-handler

jarファイル（user-event-handler.jar）は，＜運用ディレクトリ＞¥project¥temp下に出力されます。

(c)　ユーザファンクションとユーザイベントハンドラをコンパイルする場合

ユーザファンクションとユーザイベントハンドラをコンパイルする場合は，次のタスクを実行します。

ant.bat compile

コンパイルされたclassファイルは，一時的に作成される次のディレクトリにそれぞれ出力されます。

ユーザファンクション

＜運用ディレクトリ＞¥project¥temp¥classes¥user-function

ユーザイベントハンドラ

＜運用ディレクトリ＞¥project¥temp¥classes¥user-event-handler

jarファイル（user-function.jarおよびuser-event-handler.jar）は，＜運用ディレクトリ＞¥project¥temp下に出力されます。

16.6.9　ユーザファンクションまたはユーザイベントハンドラをデプロイする

ユーザファンクションおよびユーザイベントハンドラをデプロイするためのタスクを実行すると，ソースプログラムのコンパイル，jarファイルの作成（パッケージング）および配置（デプロイ）のあと，EADsサーバの再起動まで行われます。

jarファイルがすでに存在する場合は上書きされます。

参考

ソースプログラムをコンパイルするためのタスク実行時に作成されるディレクトリ（＜運用ディレクトリ＞¥project¥temp以下のディレクトリ）は，ユーザファンクションおよびユーザイベントハンドラをデプロイするためのタスク実行時に削除されます。

ユーザファンクションおよびユーザイベントハンドラをデプロイするためのタスクは，デプロイする対象ごとに異なります。

それぞれのタスクについて説明します。

(1)　ユーザファンクションをデプロイする場合

ユーザファンクションをデプロイする場合は，次のタスクを実行します。

ant.bat deployfunc

jarファイル（user-function.jar）は，次のディレクトリに出力されます。

＜運用ディレクトリ＞¥app

(2)　ユーザイベントハンドラをデプロイする場合

ユーザイベントハンドラをデプロイする場合は，次のタスクを実行します。

ant.bat deployevent

jarファイル（user-event-handler.jar）は，次のディレクトリに出力されます。

＜運用ディレクトリ＞¥app

(3)　ユーザファンクションとユーザイベントハンドラをデプロイする場合

ユーザファンクションとユーザイベントハンドラをデプロイする場合は，次のタスクを実行します。

ant.bat deploy

jarファイル（user-function.jar，およびuser-event-handler.jar）は，次のディレクトリに出力されます。

＜運用ディレクトリ＞¥app

16.6.10　Developer用EADsサーバを終了する

Developer用EADsサーバを終了する場合は，次のタスクを実行します。

ant.bat stop

次の処理（コマンド）が順番に実行されます。

クラスタの閉塞（eztool close）

データの書き出し※（eztool export -s）

EADsサーバの終了（eztool stop --no_export）

注※

ストアデータファイルが存在する場合，ストアデータファイル名は次のようにリネームされます。

eads_developer_1.esd　→　backup_eads_developer_1.esd

なお，backup_eads_developer_1.esdがすでに存在する場合は上書きされます。

17　クライアントAPを作成する（Java言語）

この章では，Java言語を使用したクライアントAPの作成方法について説明します。

17.1　ソースプログラムを作成する（Java言語）

ここでは，キャッシュへのアクセスとデータ操作の流れと，ソースプログラムの作成例について説明します。

17.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()には，ユーザファンクションを実行するグループ名またはNodeクラスのインスタンス，実行するユーザファンクション名，およびユーザファンクションに渡す引数を指定します。

executeFunction()によってユーザファンクションが実行されると，ユーザファンクションの実行結果が返却されます。

(9)　キャッシュへのアクセスを終了する

キャッシュへのアクセスを終了するには，CacheManagerクラスのremoveCache()を使用します。

removeCache()には，アクセスを終了するキャッシュ名を指定します。

(10)　EADsクライアントの使用を終了する

EADsクライアントの使用を終了するには，CacheManagerクラスのdestroy()を使用します。

17.2　クライアントAP作成上の留意事項（Java言語）

クライアントAP作成上の留意事項について説明します。

17.2.1　EADsクライアントの初期設定に関する留意事項

EADsクライアントの初期設定に関する留意事項を次に示します。

EADsクライアントを同一マシンで複数同時に実行する場合は，それぞれ異なるログ出力先を指定してください。同一のログ出力先を指定した場合，動作は保証されません。ログ出力先の設定については，「8.4.2　ファイルの出力先の設定」を参照してください。

EADsクライアント名の指定を省略して初期設定をした場合は，EADsクライアント名に空文字列を指定して初期設定をした場合と同じ動作をします。EADsクライアント名とログ出力先の関係については，「8.4.2　ファイルの出力先の設定」を参照してください。

J2EEサーバ（uCosminexus Application Server）上で実行する場合，次に示す方法などで，AP開始時にEADsクライアントの初期設定をしてください。

ServletContextListenerを使用する。

Servletのinitメソッドを使用する。

J2EEサーバ（uCosminexus Application Server）上で実行する場合，CacheManagerクラスのcreate()の実行後，CacheManagerクラスのdestroy()を実行しないとメモリリークとなるので必ず実行してください。

クライアント定義を変更する場合は，次の順に行います。

CacheManagerクラスのdestroy()で，EADsクライアントの使用を終了します。

クライアント定義ファイルを更新します。

CacheManagerクラスのcreate()で，再度EADsクライアントの初期設定をします。

17.2.2　キャッシュへのアクセス開始に関する留意事項

キャッシュ名には，あらかじめeztool createcacheコマンドで作成した名称を指定します。指定したキャッシュ名が存在しない場合は，CacheException.EAD_ERROR_NET_CLUSTERINFOが返却されます。

17.2.3　データ操作に関する留意事項

データ操作に関する留意事項を次に示します。

指定した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が返却されます。

17.2.4　キャッシュへのアクセス終了に関する留意事項

キャッシュへのアクセス終了に関する留意事項を次に示します。

一度，CacheManagerクラスのremoveCache()でアクセスを終了したキャッシュに再度アクセスする場合は，CacheManagerクラスのgetCache()を発行してください。

CacheManagerクラスのremoveCache()は同じキャッシュ名を指定して取得したすべてのキャッシュ（Cacheクラスのインスタンス）へのアクセスを終了するため，複数スレッドで実行している場合などは注意してください。

17.2.5　EADsクライアントの使用終了に関する留意事項

EADsクライアントの使用終了に関する留意事項を次に示します。

CacheManagerクラスのdestroy()は，CacheManagerクラスのcreate()と対になるように実行してください。CacheManagerクラスのcreate()で取得したインスタンスにつき1度だけ実行してください。

J2EEサーバ（uCosminexus Application Server）上で実行する場合，CacheManagerクラスのdestroy()を実行しないとメモリリークとなるので必ず実行してください。

CacheManagerクラスのdestroy()を実行してEADsクライアントがすでに終了している場合は，CacheExceptionが返却されます。

17.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

なお，J2EEサーバ（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を含みます）。

18　ユーザファンクションを作成する

この章では，ユーザファンクションの作成から実行までの方法について説明します。

18.1　ユーザファンクションを作成する前に知っておくべき前提条件

ユーザファンクションを使用する場合は，keyをグルーピングすることが前提となります。

あらかじめkeyをグルーピングして，処理対象とするデータが特定のEADsサーバに配置されるようにしてください。

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

そのほかに，ユーザファンクションを作成する前に知っておくべき前提条件について説明します。

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

18.1.1　ユーザファンクションの作成言語

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

ユーザファンクションは，EADsが提供するFunctionインタフェースを実装し，jarファイルにアーカイブする必要があります。

注意事項

EADsサーバより新しいバージョンのFunctionインタフェースで実装されたユーザファンクションを使用した場合，動作は保証されません。この場合，ソースプログラムの変更や再コンパイルが必要です。

なお，03-00以降のバージョンのFunctionインタフェースで実装されたユーザファンクションは，新しいバージョンのEADsサーバでも使用できます。

なお，1つのEADsサーバに複数のjarファイルを配置することができます。そのため，1つのEADsサーバで複数のユーザファンクションを実行したい場合，用途に合わせてjarファイルを分割することができます。

18.1.2　ユーザファンクションの実行方法の種類

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

グループ指定による実行方法

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

それぞれのユーザファンクションの仕組みについては，「2.7.2　ユーザファンクションの仕組み」を参照してください。

18.1.3　EADsサーバが使用するJavaクラスローダ

EADsサーバで使用するJavaクラスローダについて説明します。

Javaクラスローダとは，JavaクラスをJava仮想マシンに動的にロードする役割を持ちます。EADsサーバが使用するJavaクラスローダの構成を次の図に示します。

システムクラスローダ

jdkライブラリとEADsサーバで使用するクラスをロードします。

ユーザライブラリクラスローダ

＜運用ディレクトリ＞/app/lib下に配置したユーザファンクションおよびユーザイベントハンドラ共通で使用するライブラリのクラスをロードします。

このクラスローダは，EADsサーバで1つ作成されます。

ファンクションクラスローダ

ユーザファンクションのjarファイルに含まれるクラスと，jarファイルのマニフェストファイルに記載されたライブラリに含まれるクラス（ユーザファンクションだけで使用するクラス）をロードします。

このクラスローダは，jarファイルごとに作成されます。そのため，ユーザファンクションのjarファイルを複数配置した場合，クラスローダも複数作成されます。

イベントクラスローダ

ユーザイベントハンドラのjarファイルに含まれるクラスと，jarファイルのマニフェストファイルに記載されたライブラリに含まれるクラス（ユーザイベントハンドラだけで使用するクラス）をロードします。

このクラスローダは，jarファイルごとに作成されます。

各クラスローダのクラス検索は，親クラスローダであるシステムクラスローダから行います。

ユーザファンクションのロード順序は，jarファイルのASCIIコード順です。

異なるファンクションクラスローダに同じ完全修飾クラス名のクラスをロードできますが，ユーザファンクションとして実行できるのは先にロードされたユーザファンクションとなります。あとからロードされたユーザファンクションについては，インスタンスの生成およびFuncitonインターフェースのinit()は実行されません。

18.1.4　ユーザファンクションの作成の流れ

ユーザファンクションの作成の流れを次の図に示します。

18.2　ソースプログラムを作成する（ユーザファンクション）

ユーザファンクションの作成方法と，作成上の留意事項について説明します。

18.2.1　ユーザファンクションの流れ

ユーザファンクションの流れを次の図に示します。

(1)　ユーザファンクションのサンプルプログラム

Developerを使用している場合，ユーザファンクションのサンプルプログラムは次のディレクトリに格納されています。

＜運用ディレクトリ＞¥project¥java¥user-function

ユーザファンクションのサンプルプログラムを次に示します。

// EADsが提供するパッケージをインポートする
import com.hitachi.software.xeads.func.Function;
import com.hitachi.software.xeads.func.FunctionContext;

public class FunctionSample implements Function {

    // ユーザファンクションの初期化処理を実装する
    public void init(FunctionContext context) {
        context.getLogger().log("init function at " + context.getServerName());
    }

    // ユーザファンクションの処理を実装する
    public Object execute(FunctionContext context) {
        context.getLogger().log("execute function at " + context.getServerName() + ", group name=" + context.getGroupName());
        return null;
    }

    // ユーザファンクションの終了処理を実装する
    public void destroy(FunctionContext context) {
        context.getLogger().log("destroy function at " + context.getServerName());
    }

}

(2)　EADsが提供するパッケージをインポートする

EADsが提供する次のパッケージをインポートします。

import com.hitachi.software.xeads.func.Function;

import com.hitachi.software.xeads.func.FunctionContext;

(3)　ユーザファンクションの初期化処理を実装する

Functionインタフェースのinit()を使用して，EADsサーバの開始時に呼び出される，ユーザファンクションの初期化処理を実装します。

init()の引数FunctionContextを通じて，EADsサーバの情報を取得できます。ただし，init()はEADsサーバ起動時に呼び出されるため，キャッシュのデータは取得できません。

なお，init()の実行時に例外が発生した場合，このユーザファンクションは使用できません。

(4)　ユーザファンクションの処理を実装する

Functionインタフェースのexecute()を使用して，EADsクライアントからの要求時にEADsサーバで実行するユーザファンクションの処理を実装します。

execute()の引数FunctionContextを通じて，EADsサーバの情報を取得したり，キャッシュのデータを操作したりできます。

実行できる操作を次に示します。

ユーザファンクションの実行に必要な情報の取得（FunctionContextインタフェース）

ファンクション定義の情報の取得（InitConfigインタフェース）

EADsクライアントの情報の取得（ClientInfoインタフェース）

EADsサーバの情報の取得（ServerInfoインタフェース）

データ操作（Storeインタフェース）

ユーザログの出力（UserLoggerインタフェース）

(5)　ユーザファンクションの終了処理を実装する

Functionインタフェースのdestroy()を使用して，EADsサーバの終了時に呼び出される，ユーザファンクションの終了処理を実装します。

destroy()の引数FunctionContextを通じて，EADsサーバの情報を取得できます。

なお，ユーザファンクションの初期化処理に失敗した場合，destroy()は呼び出されません。

18.3　ユーザファンクション作成上の留意事項

ユーザファンクション作成上の留意事項について説明します。

18.3.1　jarファイル名に関する留意事項

jarファイル名に関する留意事項を次に示します。

eadsから始まるファイル名は使用しないでください。

ファイル名は次の形式にしてください。

＜任意の文字列＞_function.jar

任意の文字列には，半角英数字（0〜9，A〜Z，a〜z），およびアンダースコア（_）が指定できます。

18.3.2　パッケージ名に関する留意事項

パッケージ名に関する留意事項を次に示します。

com.hitachi.software.xeadsから始まるパッケージ名は使用しないでください。

ユーザファンクションのパッケージ名およびクラス名には，半角英数字（0〜9，A〜Z，a〜z），およびアンダースコア（_）が指定できます。

18.3.3　ユーザファンクションの実装に関する留意事項

ユーザファンクションの実装に関する留意事項を次に示します。

ユーザファンクションのデフォルトコンストラクタのアクセス修飾子はpublicにして，EADsサーバから使用できるようにしてください。

EADsクライアントからの引数と戻り値は，シリアライズ可能なオブジェクトにしてください。

Groupインタフェースを使用してデータを取得する場合，次のどちらかの方法で，オブジェクトをデシリアライズするために十分な内容をクラスパスに追加してください。

jarファイルのマニフェストのClass-Path属性にjarファイルのパスを記載する。

＜運用ディレクトリ＞/app/libディレクトリ下にjarファイルを配置する。

ユーザファンクションのインスタンスは単一であり，複数のEADsクライアントで同時に実行すると，EADsサーバではマルチスレッドで同一のインスタンスを使用します。そのため，ユーザファンクションには次のような処理を実装しないでください。

排他制御をしないで，インスタンス変数，static変数を更新する。

排他制御をしないで，スレッドセーフでないAPIを使用する。

FunctionContextと，そこから取得できるオブジェクトの有効範囲は，Functionインタフェースのメソッドの中だけです。これらのオブジェクトを，メソッドの範囲外で参照した場合の動作は保証されません。

ユーザファンクション内でスレッドを生成しないでください。スレッドを生成・実行した場合の動作は保証されません。

ユーザファンクションは，EADsサーバプロセスで動作するため，カレントディレクトリは運用ディレクトリになります。

18.3.4　効率的にkeyの一覧を取得する方法

あるグループのkeyをASCIIコードの昇順に格納し，ユーザファンクションを使用して非同期にkeyの一覧を取得する場合，GroupインタフェースのkeyIterator()とhigherKeyIterator()を組み合わせると，1度取得したkeyを，2度目以降に取得する際に対象外にできます（2度目以降は，未取得のkeyの一覧だけを取得できます）。

これによって，データが追加されるたびに，すべてのkeyの一覧を取得し直すことなく，効率的にkeyの一覧を取得できます。

Groupインタフェースについては，「20.2.7　Groupインタフェース」を参照してください。

keyの一覧をASCIIコードの降順で取得する場合は，GroupインタフェースのdescendingKeyIterator()とlowerDescendingKeyIterator()を組み合わせて，同様のことができます。

ポイント

keyの格納順序に対応するシーケンス（日付や時刻など）をkeyとして設定すると，効率的に一覧を取得できます。

18.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.＜ユーザファンクション名＞.max_execute_threadsパラメタを指定して，ユーザファンクション単位の最大同時実行スレッド数を設定できます。

また，ユーザ独自のパラメタを定義することもできます。

ユーザファンクション単位の最大同時実行スレッド数の設計については，「9.2.2　最大同時実行スレッド数の設定」を参照してください。

ファンクション定義に指定したパラメタは，InitConfigインタフェースを使用することで，ユーザファンクション内で取得できます。

ファンクション定義ファイルを作成する手順を説明します。

ファンクション定義ファイルを編集します。

参考

Developerを使用している場合，ファンクション定義ファイル（eads_function.properties）は次のディレクトリに格納されています。

＜運用ディレクトリ＞¥project¥java¥user-function

次のディレクトリにファンクション定義ファイルを格納します。

＜運用ディレクトリ＞/app

参考

Developerを使用している場合は，次のディレクトリになります。

＜運用ディレクトリ＞¥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.で始まるパラメタ名は使用できません。使用した場合の動作は保証されません。

18.5　ソースプログラムをコンパイルする（ユーザファンクション）

ユーザファンクションをコンパイルします。

なお，Developerでは，EADsが提供するApache Antのタスクを使用して，コンパイルすることもできます。手順については，「16.6.8　ソースプログラムをコンパイルする」を参照してください。

18.5.1　ユーザファンクションをコンパイルする手順

ユーザファンクションをコンパイルする手順について説明します。

(1)　ソースプログラムを配置する

作成したユーザファンクションを任意の場所に配置します。

(2)　コンパイルする

作成したユーザファンクションのソースプログラムは，次に示すディレクトリに格納されているJDKのjavacコマンドを使用してコンパイルします。

javacコマンドの詳細については，Java言語のコンパイラに関するドキュメントを参照してください。

/opt/hitachi/xeads/PSB/jdk

参考

Developerを使用している場合は，次のディレクトリになります。

＜インストールディレクトリ＞¥PSB¥jdk

次に示すライブラリをクラスパスに設定します。

/opt/hitachi/xeads/server/lib/eads-function.jar

参考

Developerを使用している場合は，次のライブラリを設定します。

＜インストールディレクトリ＞¥server¥lib¥eads-function.jar

18.6　ユーザファンクションをパッケージングする

「18.5　ソースプログラムをコンパイルする（ユーザファンクション）」でコンパイルしたclassファイルを格納するjarファイルを作成します。

なお，Developerでは，EADsが提供するApache Antのタスクを使用して，jarファイルを作成することもできます。手順については，「16.6.9　ユーザファンクションまたはユーザイベントハンドラをデプロイする」を参照してください。

18.6.1　ユーザファンクションをパッケージングする手順

「18.5　ソースプログラムをコンパイルする（ユーザファンクション）」でコンパイルしたclassファイルを格納するjarファイルを作成する手順について説明します。

(1)　マニフェストを設定する（任意）

ユーザファンクションだけで使用するクラスは，jarファイルのマニフェストファイル（MANIFEST.MF）のClass-Path属性に記載します。

参考

Developerを使用している場合，マニフェストファイルは次のディレクトリに格納されています。

＜運用ディレクトリ＞¥project¥java¥user-function

(2)　jarファイルを作成する

次に示すディレクトリに格納されているJDKのjarコマンドを使用してjarファイルを作成します。

jarコマンドの詳細については，Java言語に関するドキュメントを参照してください。

/opt/hitachi/xeads/PSB/jdk

参考

Developerを使用している場合は，次のディレクトリになります。

＜インストールディレクトリ＞¥PSB¥jdk

18.7　ユーザファンクションをデプロイする

ユーザファンクションをデプロイします。

ユーザファンクションのデプロイはEADsサーバが停止した状態で行います。

なお，Developerでは，EADsが提供するApache Antのタスクを使用して，デプロイすることもできます。手順については，「16.6.9　ユーザファンクションまたはユーザイベントハンドラをデプロイする」を参照してください。

18.7.1　ユーザファンクションをデプロイする手順

ユーザファンクションをデプロイする手順について説明します。

(1)　EADsサーバを終了する

eztool stopコマンドを実行して，EADsサーバを終了します。

Developerを使用している場合は，Apache Antのタスク（ant.bat stop）を実行して，Developer用EADsサーバを終了することもできます。

(2)　作成したjarファイルをコピーする

「18.6.1(2)　jarファイルを作成する」で作成したjarファイルを，次に示すディレクトリにコピーします。

＜運用ディレクトリ＞/app

参考

Developerを使用している場合は，次のディレクトリになります。

＜運用ディレクトリ＞¥app

(3)　ファンクション定義ファイルをコピーする（任意）

ファンクション定義ファイルを作成した場合，次に示すディレクトリにコピーします。

＜運用ディレクトリ＞/app

参考

Developerを使用している場合は，次のディレクトリになります。

＜運用ディレクトリ＞¥app

(4)　ライブラリを配置する（任意）

必要に応じて，ユーザファンクションおよびユーザイベントハンドラ共通で使用するライブラリを次に示すディレクトリに配置します。拡張子がjarであるライブラリだけが有効です。

＜運用ディレクトリ＞/app/lib

参考

Developerを使用している場合は，次のディレクトリになります。

＜運用ディレクトリ＞¥app¥lib

jarファイルのマニフェストファイル（MANIFEST.MF）のClass-Path属性にjarファイルのパスを記載している場合，そのパスにjarファイルをコピーしてください。

(5)　EADsサーバを開始する

ezserverコマンドを実行し，EADsサーバを開始します。

Developerを使用している場合は，Apache Antのタスク（ant.bat startまたはant.bat start_nocache）を実行し，Developer用EADsサーバを開始することもできます。

(6)　デプロイされたかどうか確認する（任意）

eztool listfuncコマンドを使用して，正しくデプロイされたかどうか確認します。

手順については，「11.8　ユーザファンクションまたはユーザイベントハンドラが，各EADsサーバに正しく配置されているかどうか，また，実行できるかどうか確認したい」を参照してください。

18.8　ユーザファンクションを実行する

ユーザファンクションを実行して動作を確認します。

18.8.1　ユーザファンクションの呼び出し

ユーザファンクションは，EADsクライアントの次のメソッドを使用して呼び出します。

(1)　グループを指定して実行するユーザファンクションの場合

Java言語の場合

CacheクラスのexecuteFunction()（グループ指定）

C言語の場合

ead_execute_function()

(2)　EADsサーバを指定して実行するユーザファンクションの場合

Java言語の場合

CacheクラスのexecuteFunction()（EADsサーバ指定）

C言語の場合

ead_execute_node_function()

18.8.2　ユーザログへの出力

UserLoggerインタフェースを使用して，ユーザファンクションの実行情報など（ユーザログ）を出力できます。ユーザログは，サーバ定義のeads.logger.dirパラメタに指定したディレクトリに，eads_user_message[n].log（[n]はファイル数の通番）というファイル名で出力されます。

18.8.3　ユーザファンクション運用上の留意事項

eztool forcestopコマンドやOSの機能などによってEADsサーバプロセスが強制終了された場合，Functionインタフェースのdestroyメソッドは呼び出されません。

EADsサーバ間でのユーザファンクションの整合性は，ユーザが確保する必要があります。特定のEADsサーバにユーザファンクションが存在しない状態で，ユーザファンクションを実行しようとすると，EADsクライアントにはエラーが返されます。

ユーザファンクションの実装がEADsサーバごとに異なっていても，EADsサーバはユーザファンクションを実行します。

ユーザファンクションはEADsクライアントで指定されたキャッシュにアクセスするため，異なるキャッシュにアクセスするには，EADsクライアント側でキャッシュを切り替える必要があります。

18.9　実行環境に配布する

＜運用ディレクトリ＞/appディレクトリを，実行環境のEADsサーバの＜運用ディレクトリ＞/appディレクトリにコピーします。

参考

Developerを使用している場合は，次のディレクトリになります。

＜運用ディレクトリ＞¥app

19　ユーザイベントハンドラを作成する

この章では，ユーザイベントハンドラの作成から実行までの方法について説明します。

19.1　ユーザイベントハンドラを作成する前に知っておくべき前提条件

ユーザイベントハンドラを作成する前に知っておくべき前提条件について説明します。

ユーザイベントハンドラの概要については，「2.8　データ操作を契機とするユーザ処理の実行（ユーザイベントハンドラ）」を参照してください。

なお，EADsサーバが使用するJavaクラスローダについては，「18.1.3　EADsサーバが使用するJavaクラスローダ」を参照してください。

19.1.1　ユーザイベントハンドラの作成言語

ユーザイベントハンドラはJava言語で作成できます。

ユーザイベントハンドラは，EADsが提供するEventHandlerインタフェースを実装し，jarファイル（user-event-handler.jar）にアーカイブする必要があります。

19.1.2　ユーザイベントハンドラが動作するケース，動作しないケース

ユーザイベントハンドラが動作するケース，動作しないケースについて説明します。

(1)　ユーザイベントハンドラが動作するケース

ユーザイベントハンドラで設定した条件を満たし，かつデータの更新操作を行った場合に，ユーザイベントハンドラが動作します。

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

API（put，create，update，replace，remove）※

eztool putコマンド

eztool removeコマンド

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

(2)　ユーザイベントハンドラが動作しないケース

次の場合はユーザイベントハンドラが動作しません。

データの参照操作を行った場合

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

API（get）※

eztool getコマンド

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

データ操作で例外が発生した場合

create，update，replaceの処理で，データが更新されなかった場合

19.1.3　ユーザイベントハンドラが動作する条件の限定

ユーザイベントハンドラが動作する条件を，フィルタを掛けることで限定できます。

フィルタには次の2種類があります。なお，2種類のフィルタを同時に指定できます。

オペレーションタイプフィルタ

データフィルタ

(1)　オペレーションタイプフィルタ

データ操作の種類に応じてユーザイベントハンドラが動作するかどうかを決定します。

データの格納処理

該当するデータの格納処理を次に示します。

Cacheクラス，またはGroupインタフェースのメソッド（put()，replace()，create()，update()）

eztool putコマンド

データの削除処理

該当するデータの削除処理を次に示します。

Cacheクラス，またはGroupインタフェースのメソッド（remove()）

eztool removeコマンド

オペレーションタイプフィルタは，EventHandlerインタフェースを実装したクラスにOperationFilterアノテーションを付けることで設定します。

(2)　データフィルタ

操作が行われたデータのキャッシュ名，グループ名，および要素名に応じてユーザイベントハンドラが動作するかどうかを決定します。

データフィルタは，EventHandlerインタフェースを実装したクラスにDataFilterアノテーションを付けることで設定します。

データフィルタが無効の場合，ユーザイベントハンドラは動作しません。

キャッシュ名のフィルタリング

指定したキャッシュ名と完全一致した場合にユーザイベントハンドラが動作します。

グループ名のフィルタリング

指定したグループ名が階層単位で完全一致した場合にユーザイベントハンドラが動作します。

要素名のフィルタリング

指定した要素名と前方一致した場合にユーザイベントハンドラが動作します。

キャッシュ名，グループ名，および要素名のデータフィルタを組み合わせて，フィルタを掛けることができます。

ポイント

例えば，キャッシュ名のフィルタリングとグループ名のフィルタリングの両方でフィルタを掛ける場合，それぞれのデータフィルタが有効になるときだけ，ユーザイベントハンドラが動作します。

(3)　グループ名および要素名のデータフィルタが有効となる指定範囲の例

グループ名および要素名のデータフィルタが有効となる指定範囲の例を，次の図に示します。

グループ名のデータフィルタは，指定したグループ名が階層単位で完全一致した場合に有効となります。この図の場合，グループ名のデータフィルタは「Tel:Number」または「Tel」と指定すると有効となります。なお，「Tel:Number:1234-56-7890」のように，グループ名以外（要素名など）を指定すると無効となります。

要素名のデータフィルタは，指定した要素名と前方一致した場合に有効となります。この図の場合，「12」や「1234-56-7890」のように指定すると有効となります。なお，「Tel」や「7890」のように，要素名以外（グループ名など）を指定したり，前方一致していなかったりすると無効となります。

19.1.4　ユーザイベントハンドラの優先度の設定

EADsサーバ上で複数のユーザイベントハンドラが同じ条件で動作する場合，ユーザイベントハンドラの実行順序について，ユーザイベントハンドラ間で優先度を設定できます。優先度は高いものから順にHighest，High，Normal，Low，Lowestの5段階で設定できます（デフォルトはNormal）。

ユーザイベントハンドラの優先度は，EventHandlerインタフェースを実装したクラスにPriorityアノテーションを付けることで設定します。

注意事項

同じ優先度のユーザイベントハンドラが複数存在する場合，同一優先度内での実行順序は保証されません。

19.1.5　ユーザイベントハンドラの作成の流れ

ユーザイベントハンドラの作成の流れを次の図に示します。

19.2　ソースプログラムを作成する（ユーザイベントハンドラ）

ユーザイベントハンドラの作成方法と，作成上の留意事項について説明します。

19.2.1　ユーザイベントハンドラの流れ

ユーザイベントハンドラの流れを次の図に示します。

(1)　ユーザイベントハンドラのサンプルプログラム

Developerを使用している場合，ユーザイベントハンドラのサンプルプログラムは次のディレクトリに格納されています。

＜運用ディレクトリ＞¥project¥java¥user-event-handler

ユーザイベントハンドラのサンプルプログラムを次に示します。

// EADsが提供するパッケージをインポートする
import com.hitachi.software.xeads.event.EventHandler;
import com.hitachi.software.xeads.event.EventContext;

public class EventHandlerSample implements EventHandler {

    // ユーザイベントハンドラの初期化処理を実装する
    public void init(EventContext context) {
        context.getLogger().log("init event at " + context.getServerName());
    }

    // ユーザイベントハンドラの処理を実装する
    public void execute(EventContext context) {
        context.getLogger().log("execute event at " + context.getServerName() + ",key=" + context.getKey());
    }

    // ユーザイベントハンドラの終了処理を実装する
    public void destroy(EventContext context) {
        context.getLogger().log("destroy event at " + context.getServerName());
    }

}

(2)　EADsが提供するパッケージをインポートする

EADsが提供する次のパッケージをインポートします。

import com.hitachi.software.xeads.event.EventHandler;

import com.hitachi.software.xeads.event.EventContext;

(3)　ユーザイベントハンドラが動作する条件を指定する

ユーザイベントハンドラが動作する条件を指定する場合は，アノテーションを付けます。

オペレーションタイプフィルタは，EventHandlerインタフェースを実装したクラスにOperationFilterアノテーションを付けることで設定します。

データフィルタは，EventHandlerインタフェースを実装したクラスにDataFilterアノテーションを付けることで設定します。

(4)　ユーザイベントハンドラの初期化処理を実装する

EventHandlerインタフェースのinit()を使用して，EADsサーバの開始時に呼び出される，ユーザイベントハンドラの初期化処理を実装します。

init()の引数EventContextを通じて，EADsサーバの情報を取得できます。

なお，init()の実行時に例外が発生した場合，このユーザイベントハンドラは使用できません。

(5)　ユーザイベントハンドラの処理を実装する

EventHandlerインタフェースのexecute()を使用して，ユーザイベントハンドラの処理を実装します。

execute()の引数EventContextを通じて，EADsサーバの情報を取得できます。

実行できる操作を次に示します。

EADsサーバの情報の取得（EventContextインタフェース）

EADsクライアントの情報の取得（ClientInfoインタフェース）

ユーザログへの出力（UserLoggerインタフェース）

(6)　ユーザイベントハンドラの終了処理を実装する

EventHandlerインタフェースのdestroy()を使用して，EADsサーバの終了時に呼び出される，ユーザイベントハンドラの終了処理を実装します。

destroy()の引数EventContextを通じて，EADsサーバの情報を取得できます。

なお，ユーザイベントハンドラの初期化処理に失敗した場合，destroy()は呼び出されません。

19.3　ユーザイベントハンドラ作成上の留意事項

ユーザイベントハンドラ作成上の留意事項について説明します。

19.3.1　パッケージ名に関する留意事項

パッケージ名に関する留意事項を次に示します。

com.hitachi.software.xeadsから始まるパッケージ名は使用しないでください。

ユーザイベントハンドラのパッケージ名およびクラス名には，半角英数字（0〜9，A〜Z，a〜z），およびアンダースコア（_）が指定できます。

19.3.2　ユーザイベントハンドラの実装に関する留意事項

ユーザイベントハンドラの実装に関する留意事項を次に示します。

ユーザイベントハンドラのデフォルトコンストラクタのアクセス修飾子はpublicにして，EADsサーバから使用できるようにしてください。

EventContextからデータを取得する場合，次のどちらかの方法で，オブジェクトをデシリアライズするために十分な内容をクラスパスに追加してください。

jarファイルのマニフェストのClass-Path属性にjarファイルのパスを記載する。

＜運用ディレクトリ＞/app/libディレクトリ下にjarファイルを配置する。

ユーザイベントハンドラのインスタンスは単一であり，複数のEADsクライアントから1つのユーザイベントハンドラを同時に実行すると，EADsサーバではマルチスレッドで同一のインスタンスを使用します。そのため，ユーザイベントハンドラには次のような処理を実装しないでください。

排他制御をしないで，インスタンス変数，static変数を更新する。

排他制御をしないで，スレッドセーフでないAPIを使用する。

EventContextと，そこから取得できるオブジェクトの有効範囲は，EventHandlerインタフェースのメソッドの中だけです。これらのオブジェクトを，メソッドの範囲外で参照した場合の動作は保証されません。

ユーザイベントハンドラは，EADsサーバプロセスで動作するため，カレントディレクトリは運用ディレクトリになります。

ユーザイベントハンドラでクライアントライブラリを使用して，自クラスタのデータを操作しないでください。デッドロックや無限ループが発生するおそれがあります。

ユーザイベントハンドラでクライアントライブラリを使用して他クラスタのデータを操作する場合，複数のクラスタが互いにデータを操作し合うことのないようにしてください。デッドロックや無限ループが発生するおそれがあります。

19.4　ソースプログラムをコンパイルする（ユーザイベントハンドラ）

ユーザイベントハンドラをコンパイルします。

なお，Developerでは，EADsが提供するApache Antのタスクを使用して，コンパイルすることもできます。手順については，「16.6.8　ソースプログラムをコンパイルする」を参照してください。

19.4.1　ユーザイベントハンドラをコンパイルする手順

ユーザイベントハンドラをコンパイルする手順について説明します。

(1)　ソースプログラムを配置する

作成したユーザイベントハンドラを任意の場所に配置します。

(2)　コンパイルする

作成したユーザイベントハンドラのソースプログラムは，次に示すディレクトリに格納されているJDKのjavacコマンドを使用してコンパイルします。

javacコマンドの詳細については，Java言語のコンパイラに関するドキュメントを参照してください。

/opt/hitachi/xeads/PSB/jdk

参考

Developerを使用している場合は，次のディレクトリになります。

＜インストールディレクトリ＞¥PSB¥jdk

次に示すライブラリをクラスパスに設定します。

/opt/hitachi/xeads/server/lib/eads-function.jar

参考

Developerを使用している場合は，次のライブラリを設定します。

＜インストールディレクトリ＞¥server¥lib¥eads-function.jar

19.5　ユーザイベントハンドラをパッケージングする

「19.4　ソースプログラムをコンパイルする（ユーザイベントハンドラ）」でコンパイルしたclassファイルを格納するjarファイルを作成します。

なお，Developerでは，EADsが提供するApache Antのタスクを使用して，jarファイルを作成することもできます。手順については，「16.6.9　ユーザファンクションまたはユーザイベントハンドラをデプロイする」を参照してください。

19.5.1　ユーザイベントハンドラをパッケージングする手順

「19.4　ソースプログラムをコンパイルする（ユーザイベントハンドラ）」でコンパイルしたclassファイルを格納するjarファイルを作成する手順について説明します。

(1)　マニフェストを設定する（任意）

ユーザイベントハンドラだけで使用するクラスは，jarファイルのマニフェストファイル（MANIFEST.MF）のClass-Path属性に記載します。

参考

Developerを使用している場合，マニフェストファイルは次のディレクトリに格納されています。

＜運用ディレクトリ＞¥project¥java¥user-event-handler

(2)　jarファイルを作成する

次に示すディレクトリに格納されているJDKのjarコマンドを使用してjarファイルを作成します。

jarコマンドの詳細については，Java言語に関するドキュメントを参照してください。

/opt/hitachi/xeads/PSB/jdk

参考

Developerを使用している場合は，次のディレクトリになります。

＜インストールディレクトリ＞¥PSB¥jdk

複数のユーザイベントハンドラを1つのEADsサーバで使用する場合，1つのjarファイルにまとめてアーカイブします。

（例）

example.SampleEventHandlerおよびexample.SampleHandler2の，2つのユーザイベントハンドラを1つのEADsサーバで使用する場合

user-event-handler.jar

└example

　├SampleEventHandler.class

　└SampleEventHandler2.class

19.6　ユーザイベントハンドラをデプロイする

ユーザイベントハンドラをデプロイします。

ユーザイベントハンドラのデプロイはEADsサーバが停止した状態で行います。

なお，Developerでは，EADsが提供するApache Antのタスクを使用して，デプロイすることもできます。手順については，「16.6.9　ユーザファンクションまたはユーザイベントハンドラをデプロイする」を参照してください。

19.6.1　ユーザイベントハンドラをデプロイする手順

ユーザイベントハンドラをデプロイする手順について説明します。

(1)　EADsサーバを終了する

eztool stopコマンドを実行して，EADsサーバを終了します。

Developerを使用している場合は，Apache Antのタスク（ant.bat stop）を実行して，Developer用EADsサーバを終了することもできます。

(2)　作成したjarファイルをコピーする

「19.5.1(2)　jarファイルを作成する」で作成したjarファイルを，次に示すディレクトリにコピーします。

＜運用ディレクトリ＞/app

参考

Developerを使用している場合は，次のディレクトリになります。

＜運用ディレクトリ＞¥app

(3)　ライブラリを配置する（任意）

必要に応じて，ユーザファンクションおよびユーザイベントハンドラ共通で使用するライブラリを次に示すディレクトリに配置します。拡張子がjarであるライブラリだけが有効です。

＜運用ディレクトリ＞/app/lib

参考

Developerを使用している場合は，次のディレクトリになります。

＜運用ディレクトリ＞¥app¥lib

jarファイルのマニフェストファイル（MANIFEST.MF）のClass-Path属性にjarファイルのパスを記載している場合，そのパスにjarファイルをコピーしてください。

(4)　EADsサーバを開始する

ezserverコマンドを実行し，EADsサーバを開始します。

Developerを使用している場合は，Apache Antのタスク（ant.bat startまたはant.bat start_nocache）を実行し，Developer用EADsサーバを開始することもできます。

(5)　デプロイされたかどうか確認する（任意）

eztool listeventコマンドを使用して，正しくデプロイされたかどうか確認します。

手順については，「11.8　ユーザファンクションまたはユーザイベントハンドラが，各EADsサーバに正しく配置されているかどうか，また，実行できるかどうか確認したい」を参照してください。

19.7　ユーザイベントハンドラを実行する

ユーザイベントハンドラを実行して動作を確認します。

19.7.1　ユーザイベントハンドラの実行

ユーザイベントハンドラを実行します。動作確認の結果，ソースプログラムを修正する場合は，「19.2　ソースプログラムを作成する（ユーザイベントハンドラ）」に戻ります。

19.7.2　ユーザログへの出力

UserLoggerインタフェースを使用して，ユーザイベントハンドラの実行情報など（ユーザログ）を出力できます。ユーザログは，サーバ定義のeads.logger.dirパラメタに指定したディレクトリに，eads_user_message[n].log（[n]はファイル数の通番）というファイル名で出力されます。

19.7.3　ユーザイベントハンドラ運用上の留意事項

eztool forcestopコマンドやOSの機能などによってEADsサーバプロセスが強制終了された場合，EventHandlerインタフェースのdestroyメソッドは呼び出されません。

EADsサーバ間でのユーザイベントハンドラの整合性は，ユーザが確保する必要があります。特定のEADsサーバにユーザイベントハンドラが存在しない場合や，ユーザイベントハンドラの内部実装がEADsサーバ間で異なっている場合でも，チェックされません。

19.8　実行環境に配布する

＜運用ディレクトリ＞/appディレクトリを，実行環境のEADsサーバの＜運用ディレクトリ＞/appディレクトリにコピーします。

参考

Developerを使用している場合は，次のディレクトリになります。

＜運用ディレクトリ＞¥app

20　APIリファレンス（Java言語）

この章では，EADsで使用できるAPI（Java言語）について説明します。

20.1　Java言語のクライアントライブラリが提供するクラス

Java言語のクライアントライブラリでは，EADsのAPIとして次の表に示すクラスを提供します。これらのクラスは，Java言語で記述したソースプログラムに，EADsが提供するパッケージ名を指定することで使用できます。

なお，Java言語のクライアントライブラリで使用できるクラスはすべてスレッドセーフです。

表20‒1　Java言語のクライアントライブラリで使用できるクラスとパッケージ名

項番

クラス名

機能

パッケージ名

1

Cache

データを操作するためのクラスです。

com.hitachi.software.xeads.client.api

2

CacheManager

キャッシュを管理するためのクラスです。

3

Node

EADsサーバの情報を取得するためのクラスです。

4

CacheException

Cacheクラス，およびCacheManagerクラスに対する操作が失敗した場合に返却する例外クラスです。

5

InitializeException

CacheManagerクラスの初期化でエラーが発生した場合に返却されるCacheExceptionのサブクラスです。

6

InternalClientException

EADsクライアントで内部エラーが発生した場合に返却されるCacheExceptionのサブクラスです。

7

InternalServerException

EADsサーバで内部エラーが発生した場合に返却されるCacheExceptionのサブクラスです。

8

ServerCommunicationException

通信障害が発生した場合に返却されるCacheExceptionのサブクラスです。

9

UserOperationException

不正なユーザ操作によってエラーが発生した場合に返却されるCacheExceptionのサブクラスです。

20.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クラスが提供するメソッド一覧を次の表に示します。

メソッド名

説明

put()

valueをkeyに関連づけて格納します。

create()

新規にkeyを格納する場合だけ，valueをkeyに関連づけて格納します。

update()

指定したkeyがすでに格納されている場合だけ，valueをkeyに関連づけて格納します。

replace()

指定したkeyに関連づけられているvalueを，条件として指定したvalue（comparativeValue）と比較します。valueが一致している場合だけ，valueをkeyに関連づけて格納します。

get()

指定したkeyに関連づけられたvalueを取得します。

remove()

指定したkey，およびkeyに関連づけられたvalueを削除します。

executeFunction()（グループ指定）

グループを指定して，ユーザファンクションを実行します。

executeFunction()（グループおよび受信タイムアウト指定）

グループおよび受信タイムアウト時間を指定して，ユーザファンクションを実行します。

executeFunction()（EADsサーバ指定）

EADsサーバを指定して，ユーザファンクションを実行します。

executeFunction()（EADsサーバおよび受信タイムアウト指定）

EADsサーバおよび受信タイムアウト時間を指定して，ユーザファンクションを実行します。

(5)　put()

(a)　機能

valueをkeyに関連づけて格納します。

valueの格納で問題が発生した場合は，例外が返却されます。

(b)　形式

public void put(String key,
                Object value)
         throws CacheException

(c)　パラメータ

key

valueに関連づけるkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

value

格納するvalueを指定します。

指定できるデータについては，「15.2.2(2)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADsサーバの内部エラー）

InternalClientException（EADsクライアントの内部エラー）

(6)　create()

(a)　機能

新規にkeyを格納する場合だけ，valueをkeyに関連づけて格納します。

valueの格納で問題が発生した場合は，例外が返却されます。

(b)　形式

public void create(String key,
                   Object value)
            throws CacheException

(c)　パラメータ

key

valueに関連づけるkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

value

格納するvalueを指定します。

指定できるデータについては，「15.2.2(2)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADsサーバの内部エラー）

InternalClientException（EADsクライアントの内部エラー）

(7)　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(2)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADsサーバの内部エラー）

InternalClientException（EADsクライアントの内部エラー）

(8)　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(2)　valueとして指定できるデータ」を参照してください。

comparativeValue

比較するvalueを指定します。

指定できるデータについては，「15.2.2(2)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADsサーバの内部エラー）

InternalClientException（EADsクライアントの内部エラー）

(9)　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()を実行するスレッドのコンテキストクラスローダを変更しないでください。コンテキストクラスローダの設定が不正な場合，戻り値のオブジェクトのデシリアライズに失敗します。

(10)　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クライアントの内部エラー）

(11)　executeFunction()（グループ指定）

(a)　機能

グループを指定して，ユーザファンクションを実行します。

ユーザファンクションの実行で問題が発生した場合は，例外が返却されます。

(b)　形式

public Object executeFunction(String groupName,
                              String funcName,
                              Object arg)
                       throws CacheException

(c)　パラメータ

groupName

グループ名を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

funcName

ユーザファンクション名を指定します。

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数の制限はありません。

nullまたは空文字列は不正となります。

arg

ユーザファンクションに渡す引数を指定します。

シリアライズできない場合，エラーとなります。

オブジェクトのサイズに上限はありません。ただし，EADsサーバが受け付けることができるデータの最大サイズ（サーバ定義のeads.server.max.datasizeパラメタの指定値）を超えない値を設定してください。

引数を渡さない場合はnullを指定します。

(d)　戻り値

ユーザファンクションで設定した実行結果が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADsサーバの内部エラー）

InternalClientException（EADsクライアントの内部エラー）

(f)　注意事項

executeFunction()を実行するスレッドのコンテキストクラスローダを変更しないでください。コンテキストクラスローダの設定が不正な場合，戻り値のオブジェクトのデシリアライズに失敗します。

(12)　executeFunction()（グループおよび受信タイムアウト指定）

(a)　機能

グループおよび受信タイムアウト時間を指定して，ユーザファンクションを実行します。

受信タイムアウト時間には，クライアント定義のeads.connection.receive.timeoutパラメタの値ではなく，引数（recvTimeout）で指定した値を適用します。

ユーザファンクションの実行で問題が発生した場合は，例外が返却されます。

タイムアウトが発生した場合は，CacheException.EAD_ERROR_NET_TIMEOUTが返却されます。

(b)　形式

public Object executeFunction(String groupName,
                              String funcName,
                              Object arg,
                              int recvTimeout)
                       throws CacheException

(c)　パラメータ

groupName

グループ名を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

funcName

ユーザファンクション名を指定します。

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数の制限はありません。

nullまたは空文字列は不正となります。

arg

ユーザファンクションに渡す引数を指定します。

シリアライズできない場合，エラーとなります。

オブジェクトのサイズに上限はありません。ただし，EADsサーバが受け付けることができるデータの最大サイズ（サーバ定義のeads.server.max.datasizeパラメタの指定値）を超えない値を設定してください。

引数を渡さない場合はnullを指定します。

recvTimeout

データ受信のタイムアウト時間（単位：ミリ秒）を指定します。

指定できるデータについては，「9.3.3(3)(b)　eads.connection.receive.timeout」を参照してください。

(d)　戻り値

ユーザファンクションで設定した実行結果が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADsサーバの内部エラー）

InternalClientException（EADsクライアントの内部エラー）

(f)　注意事項

executeFunction()を実行するスレッドのコンテキストクラスローダを変更しないでください。コンテキストクラスローダの設定が不正な場合，戻り値のオブジェクトのデシリアライズに失敗します。

(13)　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

ユーザファンクションに渡す引数を指定します。

シリアライズできない場合，エラーとなります。

オブジェクトのサイズに上限はありません。ただし，EADsサーバが受け付けることができるデータの最大サイズ（サーバ定義のeads.server.max.datasizeパラメタの指定値）を超えない値を設定してください。

引数を渡さない場合はnullを指定します。

(d)　戻り値

ユーザファンクションで設定した実行結果が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADsサーバの内部エラー）

InternalClientException（EADsクライアントの内部エラー）

(f)　注意事項

executeFunction()を実行するスレッドのコンテキストクラスローダを変更しないでください。コンテキストクラスローダの設定が不正な場合，戻り値のオブジェクトのデシリアライズに失敗します。

(14)　executeFunction()（EADsサーバおよび受信タイムアウト指定）

(a)　機能

EADsサーバおよび受信タイムアウト時間を指定して，ユーザファンクションを実行します。

受信タイムアウト時間には，クライアント定義のeads.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

ユーザファンクションに渡す引数を指定します。

シリアライズできない場合，エラーとなります。

オブジェクトのサイズに上限はありません。ただし，EADsサーバが受け付けることができるデータの最大サイズ（サーバ定義のeads.server.max.datasizeパラメタの指定値）を超えない値を設定してください。

引数を渡さない場合はnullを指定します。

recvTimeout

データ受信のタイムアウト時間（単位：ミリ秒）を指定します。

指定できるデータについては，「9.3.3(3)(b)　eads.connection.receive.timeout」を参照してください。

(d)　戻り値

ユーザファンクションで設定した実行結果が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

ServerCommunicationException（通信障害）

InternalServerException（EADsサーバの内部エラー）

InternalClientException（EADsクライアントの内部エラー）

(f)　注意事項

executeFunction()を実行するスレッドのコンテキストクラスローダを変更しないでください。コンテキストクラスローダの設定が不正な場合，戻り値のオブジェクトのデシリアライズに失敗します。

20.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サーバの情報を取得します。

getSlaveNodeList()

指定したEADsサーバにあるデータの，コピー先となっているEADsサーバの情報を取得します。

(5)　create()（パス指定）

(a)　機能

クライアント定義に従って，EADsクライアントの初期設定をします。

このメソッドを実行するたびに，通信タイムアウトを監視するスレッドと，クラスタを監視するスレッドが1つずつ生成されます。生成されたスレッドは，destroy()実行時に終了します。

EADsクライアントの初期設定で問題が発生した場合は，例外が返却されます。

(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　ファイルの出力先の設定」を参照してください。

J2EEサーバ（uCosminexus Application Server）上で実行する場合，このメソッドの実行後，destroy()を実行しないとメモリリークとなるので必ず実行してください。

(6)　create()（EADsクライアント名およびパス指定）

(a)　機能

クライアント定義に従って，EADsクライアントの初期設定をします。

このメソッドを実行するたびに，通信タイムアウトを監視するスレッドと，クラスタを監視するスレッドが1つずつ生成されます。生成されたスレッドは，destroy()実行時に終了します。

EADsクライアントの初期設定で問題が発生した場合は，例外が返却されます。

(b)　形式

public static CacheManager create(String clientName, String fileName)
                           throws CacheException

(c)　パラメータ

clientName

EADsクライアント名を指定します。

指定できるデータについては，「15.2.2(4)　EADsクライアント名として指定できるデータ」を参照してください。

EADsクライアント名とログファイルの出力先の関係については，「8.4.2　ファイルの出力先の設定」を参照してください。

fileName

EADsクライアントのクライアント定義ファイルの格納先パス名を指定します。

nullまたは空文字列は不正となります。

(d)　戻り値

CacheManagerクラスのインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InitializeException（CacheManagerクラスの初期化失敗）

InternalClientException（EADsクライアントの内部エラー）

(f)　注意事項

EADsクライアントを同一マシンで複数同時に実行する場合は，それぞれ異なるログ出力先を指定してください。同一のログ出力先を指定した場合，動作は保証されません。ログ出力先の設定については，「8.4.2　ファイルの出力先の設定」を参照してください。

J2EEサーバ（uCosminexus Application Server）上で実行する場合，このメソッドの実行後，destroy()を実行しないとメモリリークとなるので必ず実行してください。

(7)　create()（入力ストリーム指定）

(a)　機能

クライアント定義に従って，EADsクライアントの初期設定をします。

このメソッドを実行するたびに，通信タイムアウトを監視するスレッドと，クラスタを監視するスレッドが1つずつ生成されます。生成されたスレッドは，destroy()実行時に終了します。

EADsクライアントの初期設定で問題が発生した場合は，例外が返却されます。

(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　ファイルの出力先の設定」を参照してください。

J2EEサーバ（uCosminexus Application Server）上で実行する場合，このメソッドの実行後，destroy()を実行しないとメモリリークとなるので必ず実行してください。

(8)　create()（EADsクライアント名および入力ストリーム指定）

(a)　機能

クライアント定義に従って，EADsクライアントの初期設定をします。

このメソッドを実行するたびに，通信タイムアウトを監視するスレッドと，クラスタを監視するスレッドが1つずつ生成されます。生成されたスレッドは，destroy()実行時に終了します。

EADsクライアントの初期設定で問題が発生した場合は，例外が返却されます。

(b)　形式

public static CacheManager create(String clientName, InputStream in)
                           throws CacheException

(c)　パラメータ

clientName

EADsクライアント名を指定します。

指定できるデータについては，「15.2.2(4)　EADsクライアント名として指定できるデータ」を参照してください。

EADsクライアント名とログファイルの出力先の関係については，「8.4.2　ファイルの出力先の設定」を参照してください。

in

EADsクライアントのクライアント定義ファイルを読み込む入力ストリームを指定します。

nullの場合は不正となります。

(d)　戻り値

CacheManagerクラスのインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InitializeException（CacheManagerクラスの初期化失敗）

InternalClientException（EADsクライアントの内部エラー）

(f)　注意事項

EADsクライアントを同一マシンで複数同時に実行する場合は，それぞれ異なるログ出力先を指定してください。同一のログ出力先を指定した場合，動作は保証されません。ログ出力先の設定については，「8.4.2　ファイルの出力先の設定」を参照してください。

J2EEサーバ（uCosminexus Application Server）上で実行する場合，このメソッドの実行後，destroy()を実行しないとメモリリークとなるので必ず実行してください。

(9)　create()（クライアント定義指定）

(a)　機能

クライアント定義に従って，EADsクライアントの初期設定をします。

このメソッドを実行するたびに，通信タイムアウトを監視するスレッドと，クラスタを監視するスレッドが1つずつ生成されます。生成されたスレッドは，destroy()実行時に終了します。

EADsクライアントの初期設定で問題が発生した場合は，例外が返却されます。

(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　ファイルの出力先の設定」を参照してください。

J2EEサーバ（uCosminexus Application Server）上で実行する場合，このメソッドの実行後，destroy()を実行しないとメモリリークとなるので必ず実行してください。

(10)　create()（EADsクライアント名およびクライアント定義指定）

(a)　機能

クライアント定義に従って，EADsクライアントの初期設定をします。

このメソッドを実行するたびに，通信タイムアウトを監視するスレッドと，クラスタを監視するスレッドが1つずつ生成されます。生成されたスレッドは，destroy()実行時に終了します。

EADsクライアントの初期設定で問題が発生した場合は，例外が返却されます。

(b)　形式

public static CacheManager create(String clientName, Properties properties)
                           throws CacheException

(c)　パラメータ

clientName

EADsクライアント名を指定します。

指定できるデータについては，「15.2.2(4)　EADsクライアント名として指定できるデータ」を参照してください。

EADsクライアント名とログファイルの出力先の関係については，「8.4.2　ファイルの出力先の設定」を参照してください。

properties

EADsクライアントのクライアント定義を指定します。

nullの場合は不正となります。

(d)　戻り値

CacheManagerクラスのインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InitializeException（CacheManagerクラスの初期化失敗）

InternalClientException（EADsクライアントの内部エラー）

(f)　注意事項

EADsクライアントを同一マシンで複数同時に実行する場合は，それぞれ異なるログ出力先を指定してください。同一のログ出力先を指定した場合，動作は保証されません。ログ出力先の設定については，「8.4.2　ファイルの出力先の設定」を参照してください。

J2EEサーバ（uCosminexus Application Server）上で実行する場合，このメソッドの実行後，destroy()を実行しないとメモリリークとなるので必ず実行してください。

(11)　getCache()

(a)　機能

キャッシュへのアクセスを開始し，Cacheクラスのインスタンスを取得します。

また，removeCache()でアクセスを終了したキャッシュのインスタンスを再度開始状態にします。

キャッシュへのアクセス開始で問題が発生した場合は，例外が返却されます。

(b)　形式

public Cache getCache(String name)
               throws CacheException

(c)　パラメータ

name

取得するCacheクラスのキャッシュ名を指定します。

指定できるデータについては，「15.2.2(3)　キャッシュ名として指定できるデータ」を参照してください。

(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(3)　キャッシュ名として指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalClientException（EADsクライアントの内部エラー）

(e)　注意事項

同じキャッシュ名を指定して取得したすべてのキャッシュ（Cacheクラスのインスタンス）へのアクセスを終了するため，複数スレッドで実行している場合などは注意してください。

(13)　destroy()

(a)　機能

すべてのキャッシュに対して終了処理を行い，EADsクライアントの使用を終了します。

destroy()を実行してEADsクライアントがすでに終了している場合は，CacheException.EAD_ERROR_CLIENT_FINALIZEDが返却されます。

(b)　形式

public void destroy()
             throws CacheException

(c)　発生する例外

UserOperationException（ユーザの操作不正）

InternalClientException（EADsクライアントの内部エラー）

(d)　注意事項

destroy()はcreate()と対になるように実行してください。create()で取得したインスタンスにつき1度だけ実行してください。

J2EEサーバ（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サーバへの通信は行われません。そのため，取得した情報が最新でないことがあります。

(15)　getNode()

(a)　機能

指定したkey（またはグループ）が格納されている接続先EADsサーバの情報を取得します。

接続先EADsサーバの取得で問題が発生した場合は，例外が返却されます。

(b)　形式

public Node getNode(String key)
             throws CacheException

(c)　パラメータ

key

取得したい接続先EADsサーバに格納されているkey（またはグループ）を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

(d)　戻り値

指定したkey（またはグループ）が格納されている接続先EADsサーバを表すNodeクラスのインスタンスが返却されます。

接続先EADsサーバの接続可否については，戻り値に影響しません。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalClientException（EADsクライアントの内部エラー）

(f)　注意事項

このメソッドの実行時には，EADsサーバへの通信は行われません。そのため，取得した情報が最新でないことがあります。

(16)　getSlaveNodeList()

(a)　機能

指定した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サーバへの通信は行われません。そのため，取得した情報が最新でないことがあります。

20.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アドレスとポート番号＞”

20.1.4　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)　戻り値

戻り値としてエラーコードが返却されます。エラーコードとエラーの内容，発生要因を次の表に示します。

エラーコード

エラーコード定数

例外クラス

エラーの内容

発生要因

1000

EAD_ERROR_UNEXPECTED

CacheException

予期しないエラーが発生しました。

プログラム内で予期しないエラーが発生しました。

1010

EAD_ERROR_INVALID_PARAMETER

UserOperationException

指定されたパラメタが不正です。

APIの引数に不正なパラメタを指定しています。

1030

EAD_ERROR_CLIENT_FINALIZED

UserOperationException

EADsクライアントの使用を終了しているため，処理を実行できませんでした。

CacheManagerクラスのdestroy()を実行したあとで，CacheManagerクラスのメソッドが実行されました。

1040

EAD_ERROR_CACHE_NOT_STARTED

UserOperationException

キャッシュが開始されていないため実行できません。

次の要因が考えられます。

キャッシュの終了後（CacheManagerクラスのremoveCache()の実行後）に，データを操作した。

EADsクライアントの使用を終了したあと（CacheManagerクラスのdestroy()実行後）に，データを操作した。

1050

EAD_ERROR_NOT_SERIALIZABLE

UserOperationException

EADsクライアントでのシリアライズ処理に失敗しました。

APIの引数にシリアライズできないオブジェクトを指定しています。

1060

EAD_ERROR_NOT_DESERIALIZABLE

UserOperationException

EADsクライアントでのデシリアライズ処理に失敗しました。

EADsサーバから取得したオブジェクトはEADsクライアントでデシリアライズできませんでした。

EADsクライアントのクラスパスに含まれないオブジェクトであることが考えられます。

1100

EAD_ERROR_CACHE_NOT_NEED_STOP

UserOperationException

すでに終了しているキャッシュに対して，終了処理をしています。

次の要因が考えられます。

キャッシュの終了後（CacheManagerクラスのremoveCache()の実行後）に，キャッシュを終了した。

CacheManagerクラスのgetCache()を実行していない状態で，CacheManagerクラスのremoveCache()を実行した。

1110

EAD_ERROR_INVALID_NODE_ADDRESS

UserOperationException

指定したEADsサーバのアドレス情報が，EADsクライアントが保持するEADsサーバのアドレス情報と一致しません。

APIの引数に指定したEADsサーバのアドレス情報（IPアドレスおよびポート番号）が，EADsクライアントが保持するどのEADsサーバのアドレス情報とも一致しません。

1120

EAD_ERROR_EXCEED_MAX_CONNECTION_POOL_SIZE

UserOperationException

同一接続先に対してプールしておくコネクションがすでに最大個数に達していて，すべて使用中です。

特定のEADsサーバに対して同時にリクエストしているスレッド数が，コネクションの最大個数を超えています。

2000

EAD_ERROR_INIT

InitializeException

EADsクライアントの初期設定でエラーが発生しました。

CacheManagerクラスのcreate()実行中に予期しないエラーが発生しました。

2010

EAD_ERROR_INIT_PROPERTIES

InitializeException

クライアント定義ファイルが読み込めませんでした。

次の要因が考えられます。

クライアント定義ファイルが存在しない。

クライアント定義ファイルに読み込み権限がない。

格納先パス名がファイルではなくディレクトリを指している。

CacheManagerクラスのcreate()で指定した入力ストリームに問題がある。

2020

EAD_ERROR_INIT_INVALID_PROPERTY

InitializeException

クライアント定義ファイルの定義内容に不正があります。

クライアント定義ファイルの定義内容が不正です。

2030

EAD_ERROR_INIT_LOGGER

InitializeException

ログの初期化に失敗しました。

次の要因が考えられます。

指定されたディレクトリ，または出力先のログファイルに書き込み権限がない。

指定されたディレクトリに同名のファイルが存在する。

指定されたパス名，またはファイル名が不正である。

ログファイル名と同名のディレクトリが存在した。

ログ出力を開始するためのメモリが不足している。

2040

EAD_ERROR_INIT_CLUSTERINFO

InitializeException

クライアント定義ファイルで指定されたEADsサーバへの接続に失敗しました。

次の要因が考えられます。

クライアント定義に指定した接続先EADsサーバの指定に誤りがある。

接続先EADsサーバとの通信に失敗した。または接続先EADsサーバで障害が発生している。

接続先EADsサーバの最大同時接続数を超えた。

接続先EADsサーバがリクエストの受付を開始できる状態でない。

3000

EAD_ERROR_NET

ServerCommunicationException

EADsサーバとの間で通信エラーが発生しました。

次の要因が考えられます。

通信中にネットワーク障害が発生した。

通信先のEADsサーバで問題が発生した。

通信先のホストで問題が発生した。

EADsサーバが受信できるデータの最大サイズを超えた。

3010

EAD_ERROR_NET_TIMEOUT

ServerCommunicationException

EADsサーバとの通信中にタイムアウトが発生しました。

次の要因が考えられます。

接続先EADsサーバで問題が発生した。

接続先のホストで問題が発生した。

ネットワークで問題が発生した。

タイムアウト時間の設定が誤っている。

3020

EAD_ERROR_NET_CONNECTION

ServerCommunicationException

EADsサーバとの接続に失敗しました。

次の要因が考えられます。

接続先EADsサーバで問題が発生した。

接続先EADsサーバに関する設定が誤っている。

ネットワークで問題が発生した。

タイムアウト時間の設定が誤っている。

3030

EAD_ERROR_NET_PROTOCOL

ServerCommunicationException

EADsサーバとの通信中にプロトコル障害が発生しました。

接続先EADsサーバが誤りです。

3040

EAD_ERROR_NET_CLUSTERINFO

ServerCommunicationException

接続できる，すべてのEADsサーバへの接続に失敗しました。

次の要因が考えられます。

接続先EADsサーバで問題が発生した。

接続先EADsサーバに関する設定が誤っている。

ネットワークで問題が発生した。

指定したキャッシュが接続先EADsサーバに存在しない。

接続先EADsサーバが閉塞状態となっている。

EADsクライアントが保持するクラスタ構成情報と，再起動した接続先EADsサーバが保持するクラスタ構成情報が一致しない。

接続先EADsサーバの最大同時接続数を超えた。

4000

EAD_ERROR_SERVER

InternalServerException

EADsサーバで内部エラーが発生しました。

次の要因が考えられます。

接続先EADsサーバで内部エラーが発生した。

接続先EADsサーバが閉塞状態となっている。

接続先EADsサーバのユーザファンクション内でエラーが発生した。

指定したキャッシュ名のキャッシュが接続先EADsサーバに存在しない。

指定したkeyのサイズがクラスタに格納できるkeyの最大サイズを超えている。

データの格納先の空き容量が不足している。

4010

EAD_ERROR_SERVER_UNSUPPORTED_REQUEST

InternalServerException

EADsクライアントが送信したリクエストを，接続先EADsサーバが処理できませんでした。

次の要因が考えられます。

ユーザファンクションの引数に，接続先EADsサーバがデシリアライズできないオブジェクトを指定した。

データが破損しているなどの理由で，接続先EADsサーバがリクエストを処理できない。

4020

EAD_ERROR_SERVER_EVENTHANDLER

InternalServerException

データの更新操作および多重化は成功したが，ユーザイベントハンドラ内の処理で例外が発生しました。

接続先EADsサーバのユーザイベントハンドラ内の処理で例外が発生しました。

4030

EAD_ERROR_SERVER_UNAVAILABLE

InternalServerException

接続先EADsサーバプロセスが一時的に利用できません。

接続先EADsサーバの最大同時接続数を超えました。

4040

EAD_ERROR_SERVER_INCOMPATIBLE_CLUSTERINFO

InternalServerException

接続先EADsサーバが保持するクラスタ構成情報と，EADsクライアントが保持するクラスタ構成情報に互換性がありません。

再起動した接続先EADsサーバのクラスタ構成情報が，EADsクライアントが保持するクラスタ構成情報と一致しません。

4060

EAD_ERROR_SERVER_REPLACE_METHOD_NOT_MATCHED

InternalServerException

replace()実行時，すでに格納されているvalueがcomparativeValueと一致しなかったため，valueを格納できませんでした。

Cacheクラスのreplace()で条件に指定したvalueとキャッシュ上のvalueが一致しませんでした。

4070

EAD_ERROR_SERVER_REPLACE_METHOD_KEY_NOT_EXIST

InternalServerException

replace()実行時，指定したkeyが存在しなかったため（keyに関連づけられたvalueが存在しなかったため），valueを格納できませんでした。

Cacheクラスのreplace()で指定したkeyに関連づけられたvalueが存在しなかったため，valueの比較ができませんでした。

4080

EAD_ERROR_SERVER_CREATE_METHOD_KEY_EXIST

InternalServerException

create()実行時，すでに格納されているkeyが存在したため，valueを格納できませんでした。

Cacheクラスのcreate()で指定したkeyに関連づけられたvalueがすでに格納されています。

4090

EAD_ERROR_SERVER_UPDATE_METHOD_KEY_NOT_EXIST

InternalServerException

update()実行時，格納されているkeyが存在しなかったため，valueを格納できませんでした。

Cacheクラスのupdate()で指定したkeyに関連づけられたvalueが格納されていません。

4100

EAD_ERROR_SERVER_NOT_RUNNING

InternalServerException

データのコピー元，およびコピー先のEADsサーバがすべて縮退状態または停止状態です。

EADsクライアントからのリクエストを処理するEADsサーバと，データのコピー先EADsサーバがすべて縮退状態または停止状態です。

5000

EAD_ERROR_CLIENT

InternalClientException

EADsクライアントで内部エラーが発生しました。

クライアントライブラリ内で予期しないエラーが発生しました。

5010

EAD_ERROR_CLIENT_OUT_OF_MEMORY

InternalClientException

EADsクライアント内でメモリ確保に失敗しました。

クライアントライブラリ内でメモリ確保に失敗しました。

20.1.5　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

20.1.6　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

20.1.7　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

20.1.8　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

20.1.9　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

20.2　ユーザファンクションで使用できるAPI

ユーザファンクションで使用できるAPIを次の表に示します。

表20‒2　ユーザファンクションで使用できる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クライアントの情報（PRFトレースに出力されるRootAP情報に相当する情報）を取得するインタフェースです。

com.hitachi.software.xeads.common.ClientInfo

5

ServerInfo

EADsサーバの情報を取得するためのインタフェースです。

com.hitachi.software.xeads.common.ServerInfo

6

Store

ユーザファンクションの実行時にデータを操作するインタフェースです。

com.hitachi.software.xeads.func.store.Store

7

Group

ユーザファンクションを実行中のEADsサーバに属するグループを操作するためのインタフェースです。

com.hitachi.software.xeads.func.store.Group

8

Key

ユーザファンクションで使用できるAPI内で，keyを表現するインタフェースです。

com.hitachi.software.xeads.func.store.Key

9

UserLogger

ユーザログのインタフェースです。

com.hitachi.software.xeads.common.UserLogger

10

EADsStoreException

Groupインタフェースに対する操作が失敗した場合に返却される例外クラスです。

com.hitachi.software.xeads.func.store.EADsStoreException

11

InternalServerException

EADsサーバで内部エラーが発生した場合に返却されるEADsStoreExceptionのサブクラスです。

com.hitachi.software.xeads.func.store.InternalServerException

12

UserOperationException

不正なユーザ操作によってエラーが発生した場合に返却されるEADsStoreExceptionのサブクラスです。

com.hitachi.software.xeads.func.store.UserOperationException

13

列挙型CacheType

キャッシュタイプを表す列挙型です。

com.hitachi.software.xeads.common.CacheType

20.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

ユーザファンクションの実行に必要な情報を取得します。

ユーザファンクションの実行に必要な情報については，「20.2.2　FunctionContextインタフェース」を参照してください。

(5)　execute()

(a)　機能

ユーザファンクションの処理を実装します。

EADsクライアントからの，ユーザファンクション実行リクエスト時に呼び出されます。

(b)　形式

public Object execute(FunctionContext context)

(c)　パラメータ

context

ユーザファンクションの実行に必要な情報を取得します。

ユーザファンクションの実行に必要な情報については，「20.2.2　FunctionContextインタフェース」を参照してください。

(d)　戻り値

ユーザファンクションの処理結果が返却されます。

(e)　注意事項

マルチスレッドで実行するユーザファンクションの場合は，スレッドセーフに実装してください。

(6)　destroy()

(a)　機能

ユーザファンクションの終了処理を実装します。

EADsサーバ終了時のユーザファンクションの終了時に呼び出されます。

(b)　形式

public void destroy(FunctionContext context)

(c)　パラメータ

context

ユーザファンクションの実行に必要な情報を取得します。

ユーザファンクションの実行に必要な情報については，「20.2.2　FunctionContextインタフェース」を参照してください。

20.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クライアントの情報（PRFトレースに出力されるRootAP情報に相当する情報）を取得します。

getInitConfig()

ユーザファンクションの初期化に使用したファンクション定義の情報を取得します。

getServerInfo()

ユーザファンクションを実行したEADsサーバの情報を取得します。

(4)　getServerName()

(a)　機能

ユーザファンクションを実行するEADsサーバ名（運用ディレクトリ名）を取得します。

(b)　形式

public String getServerName()

(c)　戻り値

ユーザファンクションを実行するEADsサーバ名（運用ディレクトリ名）が返却されます。

(5)　getCacheName()

(a)　機能

ユーザファンクションが実行されたキャッシュ名を取得します。

(b)　形式

public String getCacheName()

(c)　戻り値

ユーザファンクションが実行されたキャッシュ名が返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(6)　getGroupName()

(a)　機能

ユーザファンクションの実行時に，EADsクライアントで指定したグループ名を取得します。

(b)　形式

public String getGroupName()

(c)　戻り値

ユーザファンクションの実行時に，EADsクライアントで指定したグループ名が返却されます。

次の場合はnullが返却されます。

EADsクライアントでグループを指定しなかった場合

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合

(7)　getArgument()

(a)　機能

ユーザファンクションの実行時に，EADsクライアントで指定した引数を取得します。

(b)　形式

public Object getArgument()

(c)　戻り値

ユーザファンクションの実行時に，EADsクライアントで指定した引数が返却されます。

次の場合はnullが返却されます。

EADsクライアントで引数にnullを指定した場合

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合

(8)　getStore()

(a)　機能

ユーザファンクションの呼び出しに使用したキャッシュの，データを操作するためのインスタンスを取得します。

(b)　形式

public Store getStore()

(c)　戻り値

ユーザファンクションの呼び出しに使用したキャッシュの，データを操作するためのインスタンスが返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(9)　getStore()（キャッシュ名指定）

(a)　機能

指定したキャッシュ名のキャッシュの，データを操作するためのインスタンスを取得します。

(b)　形式

public Store getStore(String cacheName)
               throws EADsStoreException

(c)　パラメータ

cacheName

操作対象となるキャッシュのキャッシュ名を指定します。

指定できるデータについては，「15.2.2(3)　キャッシュ名として指定できるデータ」を参照してください。

なお，作成していないキャッシュのキャッシュ名を指定した場合は不正となります。

(d)　戻り値

指定したキャッシュ名のキャッシュの，データを操作するためのインスタンスが返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(10)　getLogger()

(a)　機能

ユーザログを出力するロガーを取得します。

(b)　形式

public UserLogger getLogger()

(c)　戻り値

ユーザログを出力するロガーが返却されます。

(11)　getClientInfo()

(a)　機能

ユーザファンクションを実行したEADsクライアントの情報（PRFトレースに出力されるRootAP情報に相当する情報）を取得します。

(b)　形式

public ClientInfo getClientInfo()

(c)　戻り値

ユーザファンクションを実行したEADsクライアントの情報が返却されます。EADsクライアントの情報については，「20.2.4　ClientInfoインタフェース」を参照してください。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(12)　getInitConfig()

(a)　機能

ユーザファンクションの初期化に使用したファンクション定義の情報を取得します。

(b)　形式

public InitConfig getInitConfig()

(c)　戻り値

ユーザファンクションの初期化に使用したファンクション定義の情報が返却されます。

ユーザファンクションの初期化に使用したファンクション定義の情報については，「20.2.3　InitConfigインタフェース」を参照してください。

(13)　getServerInfo()

(a)　機能

ユーザファンクションを実行したEADsサーバの情報を取得します。

(b)　形式

public ServerInfo getServerInfo()

(c)　戻り値

ユーザファンクションを実行したEADsサーバの情報が返却されます。

20.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 Set<String> getFunctionPropertyNames ()

(c)　戻り値

ユーザファンクションの初期化に使用したファンクション定義のパラメタ名の一覧が返却されます。

(6)　getFunctionName()

(a)　機能

現在実行しているユーザファンクションの名称を取得します。

(b)　形式

public String getFunctionName()

(c)　戻り値

現在実行しているユーザファンクションの名称が返却されます。

20.2.4　ClientInfoインタフェース

(1)　説明

実行したEADsクライアントの情報（PRFトレースに出力されるRootAP情報に相当する情報）を取得するインタフェースです。

(2)　インタフェース名

com.hitachi.software.xeads.common.ClientInfo

(3)　メソッド一覧

ClientInfoインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

getIp()

実行したEADsクライアントのIPアドレス（PRFトレースに出力されるRootAP IPに相当する情報）を取得します。

getPid()

実行したEADsクライアントが付与した番号（PRFトレースに出力されるRootAP PIDに相当する情報）を取得します。

(4)　getIp()

(a)　機能

実行したEADsクライアントのIPアドレス（PRFトレースに出力されるRootAP IPに相当する情報）を取得します。

(b)　形式

public byte[] getIp()

(c)　戻り値

実行したEADsクライアントのIPアドレスが返却されます。

(5)　getPid()

(a)　機能

実行したEADsクライアントが付与した番号（PRFトレースに出力されるRootAP PIDに相当する情報）を取得します。

(b)　形式

public int getPid()

(c)　戻り値

実行したEADsクライアントが付与した番号が返却されます。

20.2.5　ServerInfoインタフェース

(1)　説明

EADsサーバの情報を取得するためのインタフェースです。

(2)　インタフェース名

com.hitachi.software.xeads.common.ServerInfo

(3)　メソッド一覧

ServerInfoインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

getName()

ユーザファンクションを実行しているEADsサーバ名（運用ディレクトリ名）を取得します。

getAddress()

ユーザファンクションを実行しているEADsサーバのIPアドレスおよびポート番号を取得します。

getCacheNames()

ユーザファンクションを実行しているEADsサーバで作成済みのキャッシュの，キャッシュ名の一覧を取得します。

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)　getCacheNames()

(a)　機能

ユーザファンクションを実行しているEADsサーバで作成済みのキャッシュの，キャッシュ名の一覧を取得します。

(b)　形式

public Set<String> getCacheNames()

(c)　戻り値

ユーザファンクションを実行しているEADsサーバで作成済みのキャッシュ名の一覧が返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(7)　getCacheType()

(a)　機能

指定したキャッシュ名のキャッシュから，キャッシュタイプの情報を取得します。

(b)　形式

public CacheType getCacheType(String cacheName)
                       throws EADsStoreException

(c)　パラメータ

cacheName

キャッシュ名を指定します。

指定できるデータについては，「15.2.2(3)　キャッシュ名として指定できるデータ」を参照してください。

なお，作成していないキャッシュのキャッシュ名を指定した場合は不正となります。

(d)　戻り値

キャッシュタイプの情報が返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(8)　getEHeapSize()

(a)　機能

ユーザファンクションを実行している，EADsサーバが確保しているExplicitヒープサイズを取得します。

(b)　形式

public long getEHeapSize()
                  throws EADsStoreException

(c)　戻り値

EADsサーバが確保しているExplicitヒープサイズ（単位：バイト）が返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は0が返却されます。

(d)　発生する例外

InternalServerException（EADsサーバの内部エラー）

EADsStoreException（予期しないエラー）

(9)　getEHeapUsageSize()

(a)　機能

ユーザファンクションを実行している，EADsサーバが使用しているExplicitヒープサイズを取得します。

(b)　形式

public long getEHeapUsageSize()
                  throws EADsStoreException

(c)　戻り値

EADsサーバが使用しているExplicitヒープサイズ（単位：バイト）が返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は0が返却されます。

(d)　発生する例外

InternalServerException（EADsサーバの内部エラー）

EADsStoreException（予期しないエラー）

(10)　getCacheDataFileSpecifiedSize()

(a)　機能

キャッシュデータファイルの1ファイル当たりのファイルサイズ（キャッシュ定義ファイルに定義した値）（単位：バイト）を取得します。

(b)　形式

public long getCacheDataFileSpecifiedSize(String cacheName)
                                   throws EADsStoreException

(c)　パラメータ

cacheName

キャッシュ名を指定します。

指定できるデータについては，「15.2.2(3)　キャッシュ名として指定できるデータ」を参照してください。

なお，作成していないキャッシュのキャッシュ名を指定した場合は不正となります。

(d)　戻り値

キャッシュデータファイルの1ファイル当たりのファイルサイズ（キャッシュ定義ファイルに定義した値）（単位：バイト）が返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(11)　getCacheDataFileRemainingSize()

(a)　機能

現在書き込み中のキャッシュデータファイルについて，永続データを格納できる残りのファイルサイズ（単位：バイト）を取得します。

(b)　形式

public long getCacheDataFileRemainingSize(String cacheName, String key)
                                   throws EADsStoreException

(c)　パラメータ

cacheName

キャッシュ名を指定します。

指定できるデータについては，「15.2.2(3)　キャッシュ名として指定できるデータ」を参照してください。

なお，作成していないキャッシュのキャッシュ名を指定した場合は不正となります。

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サーバで使用できる容量も考慮して，データを格納できるか判断してください。

(12)　getCacheDataFileSpecifiedNumber()

(a)　機能

キャッシュデータファイルのファイル数（キャッシュ定義ファイルに定義した値）を取得します。

(b)　形式

public int getCacheDataFileSpecifiedNumber(String cacheName)
                                    throws EADsStoreException

(c)　パラメータ

cacheName

キャッシュ名を指定します。

指定できるデータについては，「15.2.2(3)　キャッシュ名として指定できるデータ」を参照してください。

なお，作成していないキャッシュのキャッシュ名を指定した場合は不正となります。

(d)　戻り値

キャッシュデータファイルのファイル数（キャッシュ定義ファイルに定義した値）が返却されます。

Functionインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，0が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

EADsStoreException（予期しないエラー）

(13)　getCacheDataFileUnusedNumber()

(a)　機能

現在使用できる，未使用のキャッシュデータファイルの数を取得します。

(b)　形式

public int getCacheDataFileUnusedNumber(String cacheName, String key)
                                 throws EADsStoreException

(c)　パラメータ

cacheName

キャッシュ名を指定します。

指定できるデータについては，「15.2.2(3)　キャッシュ名として指定できるデータ」を参照してください。

なお，作成していないキャッシュのキャッシュ名を指定した場合は不正となります。

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サーバで使用できる容量も考慮して，データを格納できるか判断してください。

(14)　ServerInfoインタフェースの使用例

キャッシュデータファイルのデータを格納できる残りのファイルサイズを確認してから，データをputする場合の例を次に示します。

// ファイルに書き込むサイズ
int writeFileSize;
// メモリに書き込むサイズ
int writeMemorySize;

    書き込むサイズの計算（省略）

final String cacheName = context.getCacheName();
final ServerInfo serverInfo = context.getServerInfo();

final CacheType cacheType = serverInfo.getCacheType(cacheName);

// ディスク容量のチェック
if (cacheType == CacheType.DISK || cacheType == CacheType.TWOWAY) {
    // キャッシュデータファイルの残りを確認
    if (serverInfo.getCacheDataFileUnusedNumber(cacheName, KEY) == 0) {
        // 現在書き込み中のキャッシュデータファイルが最後の1つ
        if (serverInfo.getCacheDataFileRemainingSize(cacheName, KEY) < writeFileSize) {
            // キャッシュデータファイルに空きがない
            return "Error(CacheDataFile capacity)";
        }
    }
}

// メモリ容量のチェック
if (cacheType == CacheType.MEMORY || cacheType == CacheType.TWOWAY) {
    final long remainMemorySize = serverInfo.getEHeapSize() - serverInfo.getEHeapUsageSize();
    if (remainMemorySize < writeMemorySize) {
        return "Error(EHeap capacity)";
    }
}
// 空きがあるためputを実行
context.getStore().getGroup().put(KEY, VALUE);

20.2.6　Storeインタフェース

(1)　説明

ユーザファンクションの実行時にデータを操作するインタフェースです。

(2)　インタフェース名

com.hitachi.software.xeads.func.store.Store

(3)　メソッド一覧

Storeインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

getGroup()

ユーザファンクションの実行時に，EADsクライアントで指定したグループを操作するためのインスタンスを取得します。

getGroup()（グループ名指定）

指定したグループを操作するためのインスタンスを取得します。

getGroupNameSet()

キャッシュ内の最上位階層のグループ名の一覧をASCIIコードの昇順で取得します。

containsKey()

指定したkeyに関連づけられたvalueが，キャッシュに格納されているかどうかを取得します。

(4)　getGroup()

(a)　機能

ユーザファンクションの実行時に，EADsクライアントで指定したグループを操作するためのインスタンスを取得します。

(b)　形式

public Group getGroup()

(c)　戻り値

ユーザファンクションの実行時に，EADsクライアントで指定したグループを操作するためのインスタンスが返却されます。

EADsクライアントでグループを指定しなかった場合はnullが返却されます。

(5)　getGroup()（グループ名指定）

(a)　機能

指定したグループを操作するためのインスタンスを取得します。

(b)　形式

public Group getGroup(String groupName)
               throws EADsStoreException

(c)　パラメータ

groupName

グループ名を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

なお，ユーザファンクションを実行中のEADsサーバに属していないグループ名を指定した場合は不正となります。

(d)　戻り値

指定したグループを操作するためのインスタンスが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADsサーバの内部エラー）

EADsStoreException（予期しないエラー）

(6)　getGroupNameSet()

(a)　機能

キャッシュ内の最上位階層のグループ名の一覧をASCIIコードの昇順で取得します。

(b)　形式

public Set<String> getGroupNameSet()
                            throws EADsStoreException

(c)　戻り値

キャッシュ内の最上位階層のグループ名の一覧（ASCIIコードの昇順）が返却されます。

(d)　発生する例外

EADsStoreException（予期しないエラー）

(7)　containsKey()

(a)　機能

指定したkeyに関連づけられたvalueが，キャッシュに格納されているかどうかを取得します。

(b)　形式

public boolean containsKey(String key)
                          throws EADsStoreException

(c)　パラメータ

key

確認対象のkeyを指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

なお，ユーザファンクションを実行中のEADsサーバに，コピー元のデータが格納されていないkeyを指定した場合は不正となります。

(d)　戻り値

指定したkeyに関連づけられたvalueが，キャッシュに格納されているかどうかが返却されます。

true

valueがキャッシュに格納されています。

false

valueがキャッシュに格納されていません。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADsサーバの内部エラー）

EADsStoreException（予期しないエラー）

20.2.7　Groupインタフェース

(1)　説明

ユーザファンクションを実行中のEADsサーバに属する，グループを操作するためのインタフェースです。

指定したグループに属さないkeyは操作できません。

(2)　インタフェース名

com.hitachi.software.xeads.func.store.Group

(3)　メソッド一覧

Groupインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

toString()

グループ名を取得します。

keyIterator()

指定したグループに属するkeyに，ASCIIコードの昇順でアクセスする反復子を取得します。

反復子の開始位置は，グループの先頭のkeyとなります。

descendingKeyIterator()

指定したグループに属するkeyに，ASCIIコードの降順でアクセスする反復子を取得します。

反復子の開始位置は，グループの末尾の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の最終更新時刻を取得します。

getGroupNameSet()

グループ名の一覧をASCIIコードの昇順で取得します。

getValueUsageSize()（文字列指定）

指定したkeyに関連づけられたvalueのメモリ使用量を取得します。

getValueUsageSize()（Keyインタフェース指定）

指定したkeyに関連づけられたvalueのメモリ使用量を取得します。

getValueUsageSize()

下位のグループも含めて，グループに属する全valueのメモリ使用量の合計を取得します。

(4)　toString()

(a)　機能

グループ名を取得します。

(b)　形式

public String toString()

(c)　戻り値

グループ名が返却されます。

(5)　keyIterator()

(a)　機能

指定したグループに属するkeyに，ASCIIコードの昇順でアクセスする反復子を取得します。

反復子の開始位置は，グループの先頭のkeyとなります。

(b)　形式

public java.util.Iterator<Key> keyIterator()
                                    throws EADsStoreException

(c)　戻り値

グループに属するkeyに，ASCIIコードの昇順でアクセスする反復子が返却されます。

(d)　発生する例外

EADsStoreException（予期しないエラー）

(e)　注意事項

タイミングによっては，反復子で取得したkeyに関連づけられたvalueが，削除されている場合があります。

keyはUTF-8でエンコーディングしたバイト配列でソートされます。

(6)　descendingKeyIterator()

(a)　機能

指定したグループに属するkeyに，ASCIIコードの降順でアクセスする反復子を取得します。

反復子の開始位置は，グループの末尾のkeyとなります。

(b)　形式

public java.util.Iterator<Key> descendingKeyIterator()
                                              throws EADsStoreException

(c)　戻り値

グループに属するkeyに，ASCIIコードの降順でアクセスする反復子が返却されます。

(d)　発生する例外

EADsStoreException（予期しないエラー）

(e)　注意事項

タイミングによっては，反復子で取得したkeyに関連づけられたvalueが，削除されている場合があります。

keyはUTF-8でエンコーディングしたバイト配列でソートされます。

(7)　higherKeyIterator()

(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が，削除されている場合があります。

keyはUTF-8でエンコーディングしたバイト配列でソートされます。

(8)　lowerDescendingKeyIterator()

(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が，削除されている場合があります。

keyはUTF-8でエンコーディングしたバイト配列でソートされます。

(9)　put()（文字列指定）

(a)　機能

valueをkeyに関連づけて格納します。

valueの格納で問題が発生した場合は，EADsStoreExceptionが返却されます。

(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(2)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADsサーバの内部エラー）

EADsStoreException（予期しないエラー）

(10)　put()（Keyインタフェース指定）

(a)　機能

valueをkeyに関連づけて格納します。

valueの格納で問題が発生した場合は，EADsStoreExceptionが返却されます。

(b)　形式

public void put(Key key,
                java.lang.Object value)
         throws EADsStoreException

(c)　パラメータ

key

valueに関連づけるKeyインタフェースのkeyを指定します。

value

格納するvalueを指定します。

指定できるデータについては，「15.2.2(2)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADsサーバの内部エラー）

EADsStoreException（予期しないエラー）

(11)　create()

(a)　機能

新規にkeyを格納する場合だけ，valueをkeyに関連づけて格納します。

valueの格納で問題が発生した場合は，EADsStoreExceptionが返却されます。

(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(2)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADsサーバの内部エラー）

EADsStoreException（予期しないエラー）

(12)　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(2)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADsサーバの内部エラー）

EADsStoreException（予期しないエラー）

(13)　update()（Keyインタフェース指定）

(a)　機能

指定したkeyがすでに格納されている場合だけ，valueをkeyに関連づけて格納します（valueを更新します）。

valueの格納で問題が発生した場合は，EADsStoreExceptionが返却されます。

(b)　形式

public void update(Key key,
                   java.lang.Object value)
            throws EADsStoreException

(c)　パラメータ

key

valueに関連づけるKeyインタフェースのkeyを指定します。

value

格納するvalueを指定します。

指定できるデータについては，「15.2.2(2)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADsサーバの内部エラー）

EADsStoreException（予期しないエラー）

(14)　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(2)　valueとして指定できるデータ」を参照してください。

comparativeValue

比較するvalueを指定します。

指定できるデータについては，「15.2.2(2)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADsサーバの内部エラー）

EADsStoreException（予期しないエラー）

(15)　replace()（Keyインタフェース指定）

(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を指定します。

value

格納するvalueを指定します。

指定できるデータについては，「15.2.2(2)　valueとして指定できるデータ」を参照してください。

comparativeValue

比較するvalueを指定します。

指定できるデータについては，「15.2.2(2)　valueとして指定できるデータ」を参照してください。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADsサーバの内部エラー）

EADsStoreException（予期しないエラー）

(16)　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（予期しないエラー）

(17)　get()（Keyインタフェース指定）

(a)　機能

指定したkeyに関連づけられたvalueを取得します。

valueの取得で問題が発生した場合は，EADsStoreExceptionが返却されます。

(b)　形式

public java.lang.Object get(Key key)
                     throws EADsStoreException

(c)　パラメータ

key

取得するvalueに関連づけられたKeyインタフェースのkeyを指定します。

(d)　戻り値

keyに関連づけられたvalueが返却されます。

指定したkeyに何も関連づけられていなかった場合は，nullが返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADsサーバの内部エラー）

EADsStoreException（予期しないエラー）

(18)　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（予期しないエラー）

(19)　remove()（Keyインタフェース指定）

(a)　機能

指定したkey，およびkeyに関連づけられたvalueを削除します。

valueの削除で問題が発生した場合は，EADsStoreExceptionが返却されます。

(b)　形式

public void remove(Key key)
            throws EADsStoreException

(c)　パラメータ

key

削除するvalueに関連づけられたKeyインタフェースのkeyを指定します。

(d)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADsサーバの内部エラー）

EADsStoreException（予期しないエラー）

(20)　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（予期しないエラー）

(21)　getLastUpdateTime()（Keyインタフェース指定）

(a)　機能

指定したkeyに関連づけられたvalueの最終更新時刻を取得します。

(b)　形式

public long getLastUpdateTime(Key key)
                       throws EADsStoreException

(c)　パラメータ

key

valueに関連づけられたKeyインタフェースのkeyを指定します。

(d)　戻り値

データの最終更新時刻（1970年1月1日00:00:00からの通算ミリ秒）が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADsサーバの内部エラー）

EADsStoreException（予期しないエラー）

(22)　getGroupNameSet()

(a)　機能

グループ名の一覧をASCIIコードの昇順で取得します。

(b)　形式

public Set<String> getGroupNameSet()
                            throws EADsStoreException

(c)　戻り値

直下の階層のグループ名の一覧（ASCIIコードの昇順）が返却されます。

(d)　発生する例外

InternalServerException（EADsサーバの内部エラー）

EADsStoreException（予期しないエラー）

(23)　getValueUsageSize()（文字列指定）

(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（予期しないエラー）

(24)　getValueUsageSize()（Keyインタフェース指定）

(a)　機能

指定したkeyに関連づけられたvalueのメモリ使用量を取得します。

(b)　形式

public long getValueUsageSize(Key key)
                       throws EADsStoreException

(c)　パラメータ

key

valueに関連づけられたKeyインタフェースのkeyを指定します。

(d)　戻り値

指定したkeyに関連づけられたvalueのメモリ使用量（単位：バイト）が返却されます。

valueをメモリに格納しないキャッシュの場合は，0が返却されます。

(e)　発生する例外

UserOperationException（ユーザの操作不正）

InternalServerException（EADsサーバの内部エラー）

EADsStoreException（予期しないエラー）

(25)　getValueUsageSize()

(a)　機能

下位のグループも含めて，グループに属する全valueのメモリ使用量の合計を取得します。

(b)　形式

public long getValueUsageSize()
                       throws EADsStoreException

(c)　戻り値

グループに属する全valueのメモリ使用量（単位：バイト）の合計が返却されます。

valueをメモリに格納しないキャッシュの場合は，0が返却されます。

(d)　発生する例外

InternalServerException（EADsサーバの内部エラー）

EADsStoreException（予期しないエラー）

20.2.8　Keyインタフェース

(1)　説明

ユーザファンクションで使用できるAPI内で，keyを表現するインタフェースです。

(2)　インタフェース名

com.hitachi.software.xeads.func.store.Key

(3)　メソッド一覧

Keyインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

toString()

keyを取得します。

(4)　toString()

(a)　機能

keyを取得します。

(b)　形式

public String toString()

(c)　戻り値

keyが返却されます。

20.2.9　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を指定した場合，空文字列が出力されます。

20.2.10　EADsStoreExceptionクラス

(1)　説明

Groupインタフェースに対する操作が失敗した場合に返却される例外クラスです。

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)　戻り値

戻り値としてエラーコードが返却されます。エラーコードとエラーの内容，発生要因を次の表に示します。

エラーコード

エラーコード定数

例外クラス

エラーの内容

発生要因

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サーバで内部エラーが発生した。

指定したkeyのサイズがクラスタに格納できるkeyの最大サイズを超えている。

データの格納先の空き容量が不足している。

4020

EAD_ERROR_SERVER_EVENTHANDLER

InternalServerException

データの更新操作および多重化は成功したが，ユーザイベントハンドラ内の処理で例外が発生しました。

ユーザイベントハンドラ内の処理で例外が発生しました。

4060

EAD_ERROR_SERVER_REPLACE_METHOD_NOT_MATCHED

InternalServerException

Groupインタフェースのreplace()実行時，すでに格納されているvalueがcomparativeValueと一致しなかったため，valueを格納できませんでした。

Groupインタフェースのreplace()で条件に指定したvalueとキャッシュ上のvalueが一致しませんでした。

4070

EAD_ERROR_SERVER_REPLACE_METHOD_KEY_NOT_EXIST

InternalServerException

Groupインタフェースのreplace()実行時，指定したkeyが存在しなかったため（keyに関連づけられたvalueが存在しなかったため），valueを格納できませんでした。

Groupインタフェースのreplace()で指定したkeyに関連づけられたvalueが存在しなかったため，valueの比較ができませんでした。

4080

EAD_ERROR_SERVER_CREATE_METHOD_KEY_EXIST

InternalServerException

Groupインタフェースのcreate()実行時，すでに格納されているkeyが存在したため，valueを格納できませんでした。

Groupインタフェースのcreate()で指定したkeyに関連づけられたvalueがすでに格納されています。

4090

EAD_ERROR_SERVER_UPDATE_METHOD_KEY_NOT_EXIST

InternalServerException

Groupインタフェースのupdate()実行時，格納されているkeyが存在しなかったため，valueを格納できませんでした。

Groupインタフェースのupdate()で指定したkeyに関連づけられたvalueが格納されていません。

20.2.11　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

20.2.12　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

20.2.13　列挙型CacheType

(1)　説明

キャッシュタイプを表す列挙型です。キャッシュタイプについては，「2.3.1　キャッシュの種類（キャッシュタイプ）」を参照してください。

(2)　列挙型名

com.hitachi.software.xeads.common.CacheType

(3)　形式

public enum CacheType {
MEMORY,
DISK,
TWOWAY
}

(4)　列挙定数

定数

説明

MEMORY

メモリキャッシュ

DISK

ディスクキャッシュ

TWOWAY

2Wayキャッシュ

20.3　ユーザイベントハンドラで使用できるAPI

ユーザイベントハンドラで使用できるAPIを次の表に示します。

表20‒3　ユーザイベントハンドラで使用できるAPI

項番

インタフェース名，アノテーション名，または列挙型名

機能

パッケージ名

1

EventHandler

EADsサーバで使用するユーザイベントハンドラが実装する必要のあるインタフェースです。

com.hitachi.software.xeads.event.EventHandler

2

EventContext

EADsサーバ，EADsクライアント，および発生したイベントに関する情報を，ユーザイベントハンドラに渡すインタフェースです。

com.hitachi.software.xeads.event.EventContext

3

ClientInfo※

実行したEADsクライアントの情報（PRFトレースに出力されるRootAP情報に相当する情報）を取得するインタフェースです。

com.hitachi.software.xeads.common.ClientInfo

4

UserLogger※

ユーザログのインタフェースです。

com.hitachi.software.xeads.common.UserLogger

5

OperationFilter

イベントが発生したデータ操作の種類に関して，ユーザイベントハンドラが動作する条件を指定するアノテーションです。

com.hitachi.software.xeads.event.annotation.OperationFilter

6

DataFilter

イベントが発生したデータのキャッシュ名，グループ名，または要素名に関して，ユーザイベントハンドラが動作する条件を指定するアノテーションです。

com.hitachi.software.xeads.event.annotation.DataFilter

7

Priority

ユーザイベントハンドラを実行する優先度を指定するアノテーションです。

com.hitachi.software.xeads.event.annotation.Priority

8

OperationType

イベントが発生したデータ操作の種類を表す列挙型です。

com.hitachi.software.xeads.event.OperationType

9

MethodType

実行したAPIの種類を表す列挙型です。

com.hitachi.software.xeads.event.MethodType

10

PriorityLevel

ユーザイベントハンドラを実行する優先度を表す列挙型です。

com.hitachi.software.xeads.event.PriorityLevel

注※

ClientInfoインタフェースについては，「20.2.4　ClientInfoインタフェース」を参照してください。

UserLoggerインタフェースについては，「20.2.9　UserLoggerインタフェース」を参照してください。

20.3.1　EventHandlerインタフェース

(1)　説明

EADsサーバで使用するユーザイベントハンドラが実装する必要のあるインタフェースです。

ユーザイベントハンドラの初期化時にインスタンスを生成します。インスタンスは単一で，EADsサーバの終了処理まで生存します。

(2)　インタフェース名

com.hitachi.software.xeads.event.EventHandler

(3)　メソッド一覧

EventHandlerインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

init()

ユーザイベントハンドラの初期化処理を実装します。

execute()

ユーザイベントハンドラの処理を実装します。

destroy()

ユーザイベントハンドラの終了処理を実装します。

(4)　init()

(a)　機能

ユーザイベントハンドラの初期化処理を実装します。

EADsサーバ起動時のユーザイベントハンドラの初期化時に呼び出されます。

(b)　形式

public void init(EventContext context)

(c)　パラメータ

context

ユーザイベントハンドラの実行に必要な情報を取得します。

ユーザイベントハンドラの実行に必要な情報については，「20.3.2　EventContextインタフェース」を参照してください。

(5)　execute()

(a)　機能

ユーザイベントハンドラの処理を実装します。

EADsクライアント，ユーザファンクション，またはコマンド（eztool put，eztool remove）からデータを操作する際に呼び出されます。

(b)　形式

public void execute(EventContext context)
             throws Exception

(c)　パラメータ

context

ユーザイベントハンドラの実行に必要な情報を取得します。

ユーザイベントハンドラの実行に必要な情報については，「20.3.2　EventContextインタフェース」を参照してください。

(d)　発生する例外

Exception（ユーザイベントハンドラの内部エラー）

(e)　注意事項

ユーザイベントハンドラで例外やエラーをcatchしない場合，ユーザイベントハンドラの内部エラーが発生すると，ユーザイベントハンドラの実行契機となったリクエストがエラーとなります。

(6)　destroy()

(a)　機能

ユーザイベントハンドラの終了処理を実装します。

EADsサーバ終了時のユーザイベントハンドラの終了時に呼び出されます。

(b)　形式

public void destroy(EventContext context)

(c)　パラメータ

context

ユーザイベントハンドラの実行に必要な情報を取得します。

ユーザイベントハンドラの実行に必要な情報については，「20.3.2　EventContextインタフェース」を参照してください。

20.3.2　EventContextインタフェース

(1)　説明

EADsサーバ，EADsクライアント，および発生したイベントに関する情報を，ユーザイベントハンドラに渡すインタフェースです。

インスタンスは，ユーザイベントハンドラを呼び出す直前に生成され，ユーザイベントハンドラの処理完了後に解放されます。

1回のデータ操作で複数のユーザイベントハンドラを呼び出す場合，ユーザイベントハンドラごとにインスタンスが生成されます。

(2)　インタフェース名

com.hitachi.software.xeads.event.EventContext

(3)　メソッド一覧

EventContextインタフェースが提供するメソッド一覧を次の表に示します。

メソッド名

説明

getServerName()

ユーザイベントハンドラを実行しているEADsサーバ名（運用ディレクトリ名）を取得します。

getCacheName()

APIを実行したキャッシュ名を取得します。

getGroupName()

実行したAPIに指定したkeyに含まれるグループ名を取得します。

getKey()

実行したAPIに指定したkeyを取得します。

getValue()

データ操作完了後のvalueを取得します。

getLastUpdateTime()

データの更新時刻を取得します。

isNewData()

新規に追加されたデータかどうかを取得します。

getClientInfo()

APIを実行したEADsクライアントの情報（PRFトレースに出力されるRootAP情報に相当する情報）を取得します。

getMethod()

実行したAPIの種類を取得します。

getLogger()

ユーザログを出力するロガーを取得します。

(4)　getServerName()

(a)　機能

ユーザイベントハンドラを実行しているEADsサーバ名（運用ディレクトリ名）を取得します。

(b)　形式

public String getServerName()

(c)　戻り値

ユーザイベントハンドラを実行しているEADsサーバ名（運用ディレクトリ名）が返却されます。

(5)　getCacheName()

(a)　機能

APIを実行したキャッシュ名を取得します。

(b)　形式

public String getCacheName()

(c)　戻り値

APIを実行したキャッシュ名が返却されます。

EventHandlerインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(6)　getGroupName()

(a)　機能

実行したAPIに指定したkeyに含まれるグループ名を取得します。

(b)　形式

public String getGroupName()

(c)　戻り値

実行したAPIに指定したkeyに含まれるグループ名が返却されます。

EventHandlerインタフェースのinit()，もしくはdestroy()内でこのメソッドを呼び出した場合，または，実行したAPIに指定したkeyにグループ名が含まれていない場合は，nullが返却されます。

(7)　getKey()

(a)　機能

実行したAPIに指定したkeyを取得します。

(b)　形式

public String getKey()

(c)　戻り値

実行したAPIに指定したkeyが返却されます。

EventHandlerインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(8)　getValue()

(a)　機能

データ操作完了後のvalueを取得します。

ユーザイベントハンドラを実行する契機となったリクエストで，操作が完了した時点のvalueを取得します。

このメソッドを呼び出すまでに，ほかのリクエストによって更新されたvalueを取得することはできません。

(b)　形式

public Object getValue()
throws IOException, ClassNotFoundException

(c)　戻り値

データ操作完了後のvalueが返却されます。

次の場合はnullが返却されます。

EventHandlerインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合

remove操作の際にこのメソッドを呼び出した場合

リクエストの操作が完了する前にこのメソッドを呼び出した場合

(d)　発生する例外

IOException（デシリアライズ処理内で問題が発生）

ClassNotFoundException（シリアライズされたオブジェクトのクラスが見つからない）

(9)　getLastUpdateTime()

データの更新時刻を取得します。

ユーザイベントハンドラを実行する契機となったリクエストで，操作が完了した時点のデータの更新時刻を取得します。

このメソッドを呼び出すまでに，ほかのリクエストによって更新されたデータの更新時刻を取得することはできません。

(a)　形式

public long getLastUpdateTime()

(b)　戻り値

データの更新時刻（1970年1月1日00:00:00からの通算ミリ秒）が返却されます。

次の場合は0が返却されます。

EventHandlerインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合

remove操作の際にこのメソッドを呼び出した場合

リクエストの操作が完了する前にこのメソッドを呼び出した場合

(10)　isNewData()

新規に追加されたデータかどうかを取得します。

(a)　形式

public boolean isNewData()

(b)　戻り値

新規に追加されたデータかどうかが返却されます。

true

新規に追加されたデータです。

false

既存のデータの更新または削除です。

EventHandlerインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，falseが返却されます。

(11)　getClientInfo()

(a)　機能

APIを実行したEADsクライアントの情報（PRFトレースに出力されるRootAP情報に相当する情報）を取得します。

ユーザファンクションからAPIを実行した場合は，CacheクラスのexecuteFunction()を実行したEADsクライアントの情報を取得します。

コマンド（eztool put，eztool remove）からAPIを実行した場合は，コマンドを実行したプロセスの情報を取得します。

(b)　形式

public ClientInfo getClientInfo()

(c)　戻り値

APIを実行したEADsクライアントの情報が返却されます。

EADsクライアントの情報については，「20.2.4　ClientInfoインタフェース」を参照してください。

EventHandlerインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(12)　getMethod()

(a)　機能

実行したAPIの種類を取得します。

(b)　形式

public MethodType getMethod()

(c)　戻り値

実行したAPIの種類が返却されます。

EventHandlerインタフェースのinit()，またはdestroy()内でこのメソッドを呼び出した場合は，nullが返却されます。

(13)　getLogger()

(a)　機能

ユーザログを出力するロガーを取得します。

(b)　形式

public UserLogger getLogger()

(c)　戻り値

ユーザログを出力するロガーが返却されます。

20.3.3　OperationFilterアノテーション

(1)　説明

イベントが発生したデータ操作の種類に関して，ユーザイベントハンドラが動作する条件を指定するアノテーションです。

OperationFilterアノテーションはEventHandlerインタフェースを実装したクラスにだけ付けることができます。

OperationFilterアノテーションを付けていない場合，ユーザイベントハンドラはvalueに{OperationType.PUT, OperationType.REMOVE}が設定された場合と同様に動作します。

(2)　アノテーション名

com.hitachi.software.xeads.event.annotation.OperationFilter

(3)　継承関係

OperationFilterアノテーションの内容はサブクラスに継承されます。

EventHandlerインタフェースを実装したクラスにOperationFilterアノテーションの宣言がない場合，そのクラスのスーパークラスのOperationFilterアノテーションの内容が継承されます。

(4)　形式

public @interface OperationFilter {
public OperationType[] value() default {OperationType.PUT,OperationType.REMOVE};
}

(5)　要素一覧

要素名

説明

OperationType[] value

ユーザイベントハンドラが動作するデータ操作の種類のセットです。

指定値については，「20.3.6　列挙型OperationType」を参照してください。デフォルト値は{OperationType.PUT,OperationType.REMOVE}です。

条件は配列として複数指定でき，どれかの条件を満たす場合，ユーザイベントハンドラが動作します。

指定値が重複する場合，2つ目以降の重複した指定値は無視されます。

20.3.4　DataFilterアノテーション

(1)　説明

イベントが発生したデータのキャッシュ名，グループ名，または要素名に関して，ユーザイベントハンドラが動作する条件を指定するアノテーションです。

DataFilterアノテーションはEventHandlerインタフェースを実装したクラスにだけ付けることができます。

DataFilterアノテーションを付けていない場合，キャッシュ名，グループ名，または要素名に関係なく，ユーザイベントハンドラは動作します。

(2)　アノテーション名

com.hitachi.software.xeads.event.annotation.DataFilter

(3)　継承関係

DataFilterアノテーションの内容はサブクラスに継承されます。

EventHandlerインタフェースを実装したクラスにDataFilterアノテーションの宣言がない場合，そのクラスのスーパークラスのDataFilterアノテーションが継承されます。

(4)　形式

public @interface DataFilter {
public String[] cache() default {};
public String[] group() default {};
public String[] element() default {};
}

(5)　要素一覧

要素名

説明

String[] cache

ユーザイベントハンドラが動作するキャッシュ名のセットです。

デフォルト値は{}です。{}を指定した場合，データのキャッシュ名に関係なく，ユーザイベントハンドラは動作します。

キャッシュ名は配列として複数指定でき，指定したどれかのキャッシュ名と操作対象のデータが一致すると，ユーザイベントハンドラが動作します。

キャッシュ名が重複する場合，2つ目以降の重複したキャッシュ名は無視されます。

String[] group

ユーザイベントハンドラが動作するグループ名のセットです。

デフォルト値は{}です。{}を指定した場合，データのグループ名に関係なく，ユーザイベントハンドラは動作します。

グループ名は配列として複数指定でき，指定したどれかのグループ名に操作対象のデータが含まれていると，ユーザイベントハンドラが動作します。

グループ名が重複する場合，2つ目以降の重複したグループ名は無視されます。

String[] element

ユーザイベントハンドラが動作する要素名のセットです。

デフォルト値は{}です。{}を指定した場合，データの要素名に関係なく，ユーザイベントハンドラは動作します。

要素名は配列として複数指定でき，指定したどれかの要素名に操作対象のデータが含まれていると，ユーザイベントハンドラが動作します。

要素名が重複する場合，2つ目以降の重複した要素名は無視されます。

20.3.5　Priorityアノテーション

(1)　説明

ユーザイベントハンドラを実行する優先度を指定するアノテーションです。

PriorityアノテーションはEventHandlerインタフェースを実装したクラスにだけ付けることができます。

Priorityアノテーションを付けていない場合，ユーザイベントハンドラはPriorityLevel.NORMALが設定された場合と同様に動作します。

(2)　アノテーション名

com.hitachi.software.xeads.event.annotation.Priority

(3)　継承関係

Priorityアノテーションの内容はサブクラスに継承されます。

EventHandlerインタフェースを実装したクラスにPriorityアノテーションの宣言がない場合，そのクラスのスーパークラスのPriorityアノテーションが継承されます。

(4)　形式

public @interface Priority {
public PriorityLevel value() default PriorityLevel.NORMAL;
}

(5)　要素一覧

要素名

説明

PriorityLevel value

ユーザイベントハンドラを実行する優先度です。

指定値については，「20.3.8　列挙型PriorityLevel」を参照してください。デフォルト値はPriorityLevel.NORMALです。

20.3.6　列挙型OperationType

(1)　説明

イベントが発生したデータ操作の種類を表す列挙型です。

(2)　列挙型名

com.hitachi.software.xeads.event.OperationType

(3)　形式

public enum OperationType {
PUT,
REMOVE
}

(4)　列挙定数

定数

説明

PUT

データの格納処理

該当するデータの格納処理を次に示します。

Cacheクラス，またはGroupインタフェースのメソッド（put()，replace()，create()，update()）

eztool putコマンド

REMOVE

データの削除処理

該当するデータの削除処理を次に示します。

Cacheクラス，またはGroupインタフェースのメソッド（remove()）

eztool removeコマンド

20.3.7　列挙型MethodType

(1)　説明

実行したAPIの種類を表す列挙型です。

(2)　列挙型名

com.hitachi.software.xeads.event.MethodType

(3)　形式

public enum MethodType {
PUT,
REMOVE,
REPLACE,
CREATE,
UPDATE
}

(4)　列挙定数

定数

説明

PUT

データの格納（put()）

REMOVE

データの削除（remove()）

REPLACE

データの置換（replace()）

CREATE

データの新規格納（create()）

UPDATE

データの更新（update()）

20.3.8　列挙型PriorityLevel

(1)　説明

ユーザイベントハンドラを実行する優先度を表す列挙型です。

(2)　列挙型名

com.hitachi.software.xeads.event.PriorityLevel

(3)　形式

public enum PriorityLevel {
HIGHEST,
HIGH,
NORMAL,
LOW,
LOWEST
}

(4)　列挙定数

定数

優先度

HIGHEST

最も高い

HIGH

高い

NORMAL

通常

LOW

低い

LOWEST

最も低い

21　クライアントAPを作成する（C言語）

この章では，C言語を使用したクライアントAPの作成方法について説明します。

21.1　ソースプログラムを作成する（C言語）

ここでは，キャッシュへのアクセスとデータ操作の流れと，ソースプログラムの作成例について説明します。

21.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のメモリ領域は，自動的に解放されません。メモリ領域の解放については，「(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)　グループ指定による実行方法

グループを指定してユーザファンクションを実行するには，ead_execute_function()を使用します。

ead_execute_function()には，ead_start_cache()で取得したキャッシュのハンドルを指定します。

また，ユーザファンクションを実行するグループ名と，実行するユーザファンクション名を指定します。

また，ユーザファンクションに指定する引数を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で解放してください。

ユーザファンクションを実行し，ユーザファンクションの実行結果として返却されたead_object構造体のobjectメンバがNULLでない場合

ead_get_nodelist()，またはead_get_slave_nodelist()の戻り値として返却されたead_nodelist構造体のnodesメンバがNULLでない場合

21.2　クライアントAP作成上の留意事項（C言語）

クライアントAP作成上の留意事項について説明します。

21.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クライアントの初期設定をします。

21.2.2　キャッシュへのアクセス開始に関する留意事項

キャッシュへのアクセス開始に関する留意事項を次に示します。

キャッシュへのアクセスを開始する場合は，ead_start_cache()を実行してください。ead_start_cache()は，ead_stop_cache()と対となるように実行してください。

キャッシュ名には，あらかじめeztool createcacheコマンドで作成した名称を指定します。

指定したキャッシュ名が存在しない場合，EAD_ERROR_NET_CLUSTERINFOが返却されます。

21.2.3　データ操作に関する留意事項

データ操作に関する留意事項を次に示します。

指定した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で解放してください。詳細については，「21.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が返却されます。

21.2.4　キャッシュへのアクセス終了に関する留意事項

キャッシュへのアクセス終了に関する留意事項を次に示します。

キャッシュへのアクセスを終了する場合は，ead_stop_cache()を実行してください。ead_stop_cache()は，ead_start_cache()と対となるように実行してください。

一度，ead_stop_cache()でアクセスを終了したキャッシュに再度アクセスする場合は，再度，ead_start_cache()を発行してください。

21.2.5　EADsクライアントの終了に関する留意事項

EADsクライアントの終了に関する留意事項を次に示します。これらの留意事項は必ず守ってください。守らない場合，セグメンテーション違反の原因となります。

ead_terminate_client()は，指定したキャッシュマネージャを使用する，すべてのAPIの処理が終了した状態で実行してください。

初期設定したEADsクライアントを終了する場合は，必ずead_terminate_client()を実行してください。

21.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

22　APIリファレンス（C言語）

この章では，EADsで使用できるAPI（C言語）について説明します。

22.1　C言語のクライアントライブラリが提供する関数

C言語のクライアントライブラリでは，EADsのAPIとして次の表に示す関数を提供します。これらの関数は，C言語で記述したソースプログラムに，EADsが提供するヘッダファイルを取り込むことで使用できます。

なお，C言語のクライアントライブラリで使用できる関数（ead_terminate_client()を除く）はスレッドセーフです。

表22‒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_terminate_client()

EADsクライアントを終了します。

6

ead_put()

valueをkeyに関連づけて格納します。

7

ead_put_array_value()

複数のvalueを連結して，keyに関連づけて格納します。

8

ead_create()

新規にkeyを格納する場合だけ，valueをkeyに関連づけて格納します。

9

ead_update()

指定したkeyがすでに格納されている場合だけ，valueをkeyに関連づけて格納します（valueを更新します）。

10

ead_replace()

指定したkeyに関連づけられているvalueを，条件として指定したvalue情報と比較します。valueが一致している場合だけ，valueをkeyに関連づけて格納します（valueを置換します）。

11

ead_get()

指定したkeyに関連づけられたvalueを取得します。

12

ead_remove()

指定したkey，およびkeyに関連づけられたvalueを削除します。

13

ead_execute_function()

グループを指定して，ユーザファンクションを実行します。

14

ead_execute_function_rt()

グループおよび受信タイムアウト時間を指定して，ユーザファンクションを実行します。

15

ead_execute_node_function()

EADsサーバを指定して，ユーザファンクションを実行します。

16

ead_execute_node_function_rt()

EADsサーバおよび受信タイムアウト時間を指定して，ユーザファンクションを実行します。

17

ead_get_nodelist()

EADsクライアントが保持している接続先EADsサーバの情報を取得します。

18

ead_get_node()

指定したkeyまたはグループが格納されている接続先EADsサーバの情報を取得します。

19

ead_get_slave_nodelist()

データのコピー先EADsサーバの情報を取得します。

22.1.1　ead_init_client()（EADsクライアントの初期設定）

(1)　機能

クライアント定義に従って，EADsクライアントの初期設定をします。

EADsクライアント名は空文字列として扱います。

また，キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）を取得します。

ead_init_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

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

ead_init_client()が正常に終了した場合は，キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）が返却されます。

ead_init_client()が異常終了した場合は，NULLが返却されます。

(5)　注意事項

EADsクライアントを同一マシンで複数同時に実行する場合は，それぞれ異なるログ出力先を指定してください。同一のログ出力先を指定した場合，動作は保証されません。ログ出力先の設定については，「8.4.2　ファイルの出力先の設定」を参照してください。

初期設定したEADsクライアントを終了する場合は，必ずead_terminate_client()を実行してください。

22.1.2　ead_init_client_n()（EADsクライアントの初期設定）

(1)　機能

EADsクライアント名およびクライアント定義に従って，EADsクライアントの初期設定をします。

また，キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）を取得します。

ead_init_client_n()を実行するたびに，クラスタを監視するスレッドが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(4)　EADsクライアント名として指定できるデータ」を参照してください。

EADsクライアント名とログファイルの出力先の関係については，「8.4.2　ファイルの出力先の設定」を参照してください。

file_name

EADsクライアントのクライアント定義ファイルのパスを指定します。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

ead_init_client_n()が正常に終了した場合は，キャッシュを管理するキャッシュマネージャのハンドル（ポインタ）が返却されます。

ead_init_client_n()が異常終了した場合は，NULLが返却されます。

(5)　注意事項

EADsクライアントを同一マシンで複数同時に実行する場合は，それぞれ異なるログ出力先を指定してください。同一のログ出力先を指定した場合，動作は保証されません。ログ出力先の設定については，「8.4.2　ファイルの出力先の設定」を参照してください。

初期設定したEADsクライアントを終了する場合は，必ずead_terminate_client()を実行してください。

22.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(3)　キャッシュ名として指定できるデータ」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

ead_start_cache()が正常に終了した場合は，指定したキャッシュのハンドル（ポインタ）が返却されます。

ead_start_cache()が異常終了した場合は，NULLが返却されます。

(5)　注意事項

キャッシュへのアクセスを終了する場合は，ead_stop_cache()を実行してください。

22.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

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

22.1.5　ead_terminate_client()（EADsクライアントの終了）

(1)　機能

キャッシュを管理するキャッシュマネージャを削除し，EADsクライアントを終了します。

ead_terminate_client()は，指定したキャッシュマネージャ，およびそれを使用して開始したキャッシュを解放します。そのため，ead_terminate_client()実行以降，これらを参照する操作は実行できません。実行した場合，動作は保証されません。

(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

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

22.1.6　ead_put()（keyとvalueの格納）

(1)　機能

valueをkeyに関連づけて格納します。

(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構造体の形式と説明については，「22.1.20　ead_value_element構造体（value情報）」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

22.1.7　ead_put_array_value()（複数のvalueの連結格納）

(1)　機能

複数のvalueを連結して，keyに関連づけて格納します。

格納したvalueを取得すると，連結したvalueが取得できます。

(2)　形式

#include <eads.h>
void ead_put_array_value
(
  const EAD_CACHE             *cp,            /* In */
  const char                  *key,           /* In */
  size_t                      array_length,
  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

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　注意事項

array_lengthには，0は指定できません。また，不正な値を指定した場合，動作は保証されません。

ead_value_element構造体の配列は，必ず要素数分の連続したメモリ領域を確保してください。

格納する値配列の要素数，サイズに上限はありません。ただし，連結後のサイズには，EADsサーバが受け付けることができるデータの最大サイズ（サーバ定義のeads.server.max.datasizeパラメタの指定値）を超えない値を設定してください。

22.1.8　ead_create()（keyとvalueの新規格納）

(1)　機能

新規にkeyを格納する場合だけ，valueをkeyに関連づけて格納します。

(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構造体の形式と説明については，「22.1.20　ead_value_element構造体（value情報）」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

22.1.9　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構造体の形式と説明については，「22.1.20　ead_value_element構造体（value情報）」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

22.1.10　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構造体の形式と説明については，「22.1.20　ead_value_element構造体（value情報）」を参照してください。

comparative_value

比較するvalue情報（ead_value_element構造体）を指定します。

ead_value_element構造体の形式と説明については，「22.1.20　ead_value_element構造体（value情報）」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

22.1.11　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

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

keyに関連づけられたvalue情報（ead_value_element構造体）が返却されます。

ead_value_element構造体の形式と説明については，「22.1.20　ead_value_element構造体（value情報）」を参照してください。

次の場合は，ead_value_element構造体のvalueメンバにNULLが設定されます。

keyがキャッシュに存在しない場合

value情報の取得で問題が発生した場合

valueのデータサイズが0バイトの場合（Java言語のAPIで格納された，長さ0のバイト配列を取得した場合）

(5)　注意事項

戻り値として返却されたvalue情報のメモリ領域は，自動的に解放されないため，APで解放してください。

22.1.12　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

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

22.1.13　ead_execute_function()（グループ指定によるユーザファンクションの実行）

(1)　機能

グループを指定して，ユーザファンクションを実行します。

(2)　形式

#include <eads.h>
ead_object ead_execute_function
(
  const EAD_CACHE      *cp,             /* In */
  const char           *group_name,     /* In */
  const char           *func_name,      /* In */
  const ead_object     *arg,            /* In */
  int                  *error_code      /* Out */
);

(3)　引数

cp

ユーザファンクションを実行するキャッシュのハンドル（ポインタ）を指定します。

ead_start_cache()で取得したハンドルを指定してください。

group_name

グループ名を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

func_name

ユーザファンクション名を指定します。

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数に制限はありません。

arg

ユーザファンクションに渡す引数（ead_object構造体）を指定します。

ead_object構造体の形式と説明については，「22.1.21　ead_object構造体（ユーザファンクションで使用するオブジェクト）」を参照してください。

引数を渡さない場合はNULLを指定します。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

ead_execute_function()が正常に終了した場合は，ユーザファンクションの実行結果（ead_object構造体）が返却されます。

ead_object構造体の形式と説明については，「22.1.21　ead_object構造体（ユーザファンクションで使用するオブジェクト）」を参照してください。

ead_object構造体のobject_sizeメンバは，ユーザファンクションの戻り値に指定したバイト配列のサイズになります。

次の場合は，ead_object構造体のobjectメンバにNULLが設定されます。

ユーザファンクションの実行で問題が発生した場合

ネットワーク障害などの問題によって，ユーザファンクションの実行結果を取得できなかった場合

ユーザファンクションの実行結果としてnullが返却された場合

ユーザファンクションの実行結果としてデータサイズが0のバイト配列が返却された場合

(5)　注意事項

戻り値として返却された，ユーザファンクションの実行結果を格納するメモリ領域は，自動的に解放されないため，APで解放してください。

22.1.14　ead_execute_function_rt()（グループおよび受信タイムアウト指定によるユーザファンクションの実行）

(1)　機能

グループおよび受信タイムアウト時間を指定して，ユーザファンクションを実行します。

ead_execute_function_rt()の実行中は，クライアント定義のeads.connection.receive.timeoutパラメタの値を使用しません。

(2)　形式

#include <eads.h>
ead_object ead_execute_function_rt
(
  const EAD_CACHE      *cp,             /* In */
  const char           *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()で取得したハンドルを指定してください。

group_name

グループ名を指定します。

指定できるデータについては，「15.2.2(1)　keyとして指定できるデータ」を参照してください。

func_name

ユーザファンクション名を指定します。

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数に制限はありません。

arg

ユーザファンクションに渡す引数（ead_object構造体）を指定します。

ead_object構造体の形式と説明については，「22.1.21　ead_object構造体（ユーザファンクションで使用するオブジェクト）」を参照してください。

引数を渡さない場合はNULLを指定します。

recv_timeout

データ受信のタイムアウト時間（単位：ミリ秒）を指定します。

指定できるデータについては，「9.3.3(3)(b)　eads.connection.receive.timeout」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

ead_execute_function_rt()が正常に終了した場合は，ユーザファンクションの実行結果（ead_object構造体）が返却されます。

ead_object構造体の形式と説明については，「22.1.21　ead_object構造体（ユーザファンクションで使用するオブジェクト）」を参照してください。

ead_object構造体のobject_sizeメンバは，ユーザファンクションの戻り値に指定したバイト配列のサイズになります。

次の場合は，ead_object構造体のobjectメンバにNULLが設定されます。

ユーザファンクションの実行で問題が発生した場合

ネットワーク障害などの問題によって，ユーザファンクションの実行結果を取得できなかった場合

ユーザファンクションの実行結果としてnullが返却された場合

ユーザファンクションの実行結果としてデータサイズが0のバイト配列が返却された場合

(5)　注意事項

戻り値として返却された，ユーザファンクションの実行結果を格納するメモリ領域は，自動的に解放されないため，APで解放してください。

22.1.15　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構造体の形式と説明については，「22.1.23　ead_node構造体（EADsサーバ指定のユーザファンクションで使用するオブジェクト）」を参照してください。

指定したead_node構造体が保持するアドレス情報（IPアドレスおよびポート番号）が，EADsクライアントが保持するどのEADsサーバのアドレス情報とも一致しない場合，エラーとなります。

func_name

ユーザファンクション名を指定します。

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数に制限はありません。

arg

ユーザファンクションに渡す引数（ead_object構造体）を指定します。

ead_object構造体の形式と説明については，「22.1.21　ead_object構造体（ユーザファンクションで使用するオブジェクト）」を参照してください。

引数を渡さない場合はNULLを指定します。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

ead_execute_node_function()が正常に終了した場合は，ユーザファンクションの実行結果（ead_object構造体）が返却されます。

ead_object構造体の形式と説明については，「22.1.21　ead_object構造体（ユーザファンクションで使用するオブジェクト）」を参照してください。

ead_object構造体のobject_sizeメンバは，ユーザファンクションの戻り値に指定したバイト配列のサイズになります。

次の場合は，ead_object構造体のobjectメンバにNULLが設定されます。

ユーザファンクションの実行で問題が発生した場合

ネットワーク障害などの問題によって，ユーザファンクションの実行結果を取得できなかった場合

ユーザファンクションの実行結果としてnullが返却された場合

ユーザファンクションの実行結果としてデータサイズが0のバイト配列が返却された場合

(5)　注意事項

戻り値として返却された，ユーザファンクションの実行結果を格納するメモリ領域は，自動的に解放されないため，APで解放してください。

22.1.16　ead_execute_node_function_rt()（EADsサーバおよび受信タイムアウト指定によるユーザファンクションの実行）

(1)　機能

EADsサーバおよび受信タイムアウト時間を指定して，ユーザファンクションを実行します。

ead_execute_node_function_rt()の実行中は，クライアント定義のeads.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構造体の形式と説明については，「22.1.23　ead_node構造体（EADsサーバ指定のユーザファンクションで使用するオブジェクト）」を参照してください。

指定したead_node構造体が保持するアドレス情報（IPアドレスおよびポート番号）が，EADsクライアントが保持するどのEADsサーバのアドレス情報とも一致しない場合，エラーとなります。

func_name

ユーザファンクション名を指定します。

半角英数字（0〜9，A〜Z，a〜z），アンダースコア（_），ピリオド（.）またはドルマーク（$）が指定できます。

文字数に制限はありません。

arg

ユーザファンクションに渡す引数（ead_object構造体）を指定します。

ead_object構造体の形式と説明については，「22.1.21　ead_object構造体（ユーザファンクションで使用するオブジェクト）」を参照してください。

引数を渡さない場合はNULLを指定します。

recv_timeout

データ受信のタイムアウト時間（単位：ミリ秒）を指定します。

指定できるデータについては，「9.3.3(3)(b)　eads.connection.receive.timeout」を参照してください。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

ead_execute_node_function_rt()が正常に終了した場合は，ユーザファンクションの実行結果（ead_object構造体）が返却されます。

ead_object構造体の形式と説明については，「22.1.21　ead_object構造体（ユーザファンクションで使用するオブジェクト）」を参照してください。

ead_object構造体のobject_sizeメンバは，ユーザファンクションの戻り値に指定したバイト配列のサイズになります。

次の場合は，ead_object構造体のobjectメンバにNULLが設定されます。

ユーザファンクションの実行で問題が発生した場合

ネットワーク障害などの問題によって，ユーザファンクションの実行結果を取得できなかった場合

ユーザファンクションの実行結果としてnullが返却された場合

ユーザファンクションの実行結果としてデータサイズが0のバイト配列が返却された場合

(5)　注意事項

戻り値として返却された，ユーザファンクションの実行結果を格納するメモリ領域は，自動的に解放されないため，APで解放してください。

22.1.17　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

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

EADsクライアントが保持している接続先EADsサーバの情報（ead_nodelist構造体）が返却されます。

ead_nodelist構造体の形式と説明については，「22.1.22　ead_nodelist構造体（EADsサーバ情報）」を参照してください。

異常終了時には，ead_nodelist構造体のnodesメンバにNULLが返却されます。

(5)　注意事項

戻り値として返却されたead_nodelist構造体のnodesメンバがNULLでない場合，メモリ領域は自動的に解放されないため，APで解放してください。

AP実行時にEADsサーバへの通信は行われません。そのため，返却された接続先EADsサーバの情報が最新でないことがあります。

22.1.18　ead_get_node()（指定したkeyが格納されている接続先EADsサーバの情報取得）

(1)　機能

指定した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

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

指定したkeyまたはグループが格納されている接続先EADsサーバの情報（ead_node構造体）が返却されます。

(5)　注意事項

AP実行時にEADsサーバへの通信は行われません。そのため，返却された接続先EADsサーバの情報が最新でないことがあります。

22.1.19　ead_get_slave_nodelist()（データのコピー先EADsサーバの情報取得）

(1)　機能

データのコピー先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構造体の形式と説明については，「22.1.23　ead_node構造体（EADsサーバ指定のユーザファンクションで使用するオブジェクト）」を参照してください。

指定したead_node構造体が保持するアドレス情報（IPアドレスおよびポート番号）が，EADsクライアントが保持するどのEADsサーバのアドレス情報とも一致しない場合，エラーとなります。

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

(4)　戻り値

データのコピー先EADsサーバの情報（ead_nodelist構造体）が返却されます。

ead_nodelist構造体の形式と説明については，「22.1.22　ead_nodelist構造体（EADsサーバ情報）」を参照してください。

データを多重化しない場合（多重度が1の場合），ead_nodelist構造体のlist_sizeメンバには0が，nodesメンバにはNULLが返却されます。

異常終了時は，ead_nodelist構造体のnodesメンバにNULLが返却されます。

(5)　注意事項

戻り値として返却されたead_nodelist構造体のnodesメンバがNULLでない場合，メモリ領域は自動的に解放されないため，APで解放してください。

AP実行時にEADsサーバへの通信は行われません。そのため，返却された接続先EADsサーバの情報が最新でないことがあります。

22.1.20　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サーバが受け付けることができるデータの最大サイズ（サーバ定義のeads.server.max.datasizeパラメタの指定値）を超えない値を設定してください。

22.1.21　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サーバが受け付けることができるデータの最大サイズ（サーバ定義のeads.server.max.datasizeパラメタの指定値）を超えない値を設定してください。

22.1.22　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サーバの情報を格納します。

格納するデータの先頭アドレスを指定します。

22.1.23　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構造体の形式と説明については，「22.1.24　ead_address構造体（EADsサーバのアドレス情報）」を参照してください。

reserved[8]

予備領域です。

22.1.24　ead_address構造体（EADsサーバのアドレス情報）

ead_address構造体には，EADsサーバのアドレス情報を格納します。

(1)　形式

struct ead_address {
  unsigned char     ip[4];
  unsigned short    port;
};

(2)　メンバの説明

ip

EADsサーバのIPアドレスを格納します。

port

EADsサーバのポート番号を格納します。

22.2　クライアントライブラリのエラーコード（C言語）

C言語のクライアントライブラリで使用できる関数は，引数error_codeに指定された領域に次に示すエラーコードを返却します。

エラーコードとエラーの内容，発生要因を次の表に示します。

表22‒2　C言語のクライアントライブラリで使用できる関数が返却するエラーコード

error_codeの値

記号定数

エラーの内容

発生要因

0

EAD_OK

処理は正常に終了しました。

−

1000

EAD_ERROR_UNEXPECTED

予期しないエラーが発生しました。

プログラム内で予期しないエラーが発生しました。

1010

EAD_ERROR_ILLEGAL_ARGUMENT

指定されたパラメタが不正です。

APIの引数に不正なパラメタが指定されています。

1040

EAD_ERROR_CACHE_NOT_STARTED

キャッシュが開始されていないため実行できません。

キャッシュの終了後（ead_stop_cache()の実行後）に，データを操作しました。

1100

EAD_ERROR_CACHE_NOT_NEED_STOP

すでに終了しているキャッシュに対して，終了処理をしています。

キャッシュはすでに終了しているため，ead_stop_cache()を実行する必要はありません。

1110

EAD_ERROR_INVALID_NODE_ADDRESS

指定したEADsサーバのアドレス情報が，EADsクライアントが保持するEADsサーバのアドレス情報と一致しません。

APIの引数に指定したEADsサーバのアドレス情報（IPアドレスおよびポート番号）が，EADsクライアントが保持するどのEADsサーバのアドレス情報とも一致しません。

1120

EAD_ERROR_EXCEED_MAX_CONNECTION_POOL_SIZE

同一接続先に対してプールしておくコネクションがすでに最大個数に達していて，すべて使用中です。

特定のEADsサーバに対して同時にリクエストしているスレッド数が，コネクションの最大個数を超えています。

2000

EAD_ERROR_INIT

EADsクライアントの初期設定でエラーが発生しました。

ead_init_client()またはead_init_client_n()実行中に予期しないエラーが発生しました。

2010

EAD_ERROR_INIT_PROPERTIES

クライアント定義ファイルが読み込めませんでした。

次の要因が考えられます。

クライアント定義ファイルが存在しない。

クライアント定義ファイルに読み込み権限がない。

格納先パス名がファイルではなくディレクトリを指している。

2020

EAD_ERROR_INIT_INVALID_PROPERTY

クライアント定義ファイルの定義内容に不正があります。

クライアント定義ファイルの定義内容が不正です。

2030

EAD_ERROR_INIT_LOGGER

ログの初期化に失敗しました。

次の要因が考えられます。

指定されたディレクトリ，または出力先のログファイルに書き込み権限がない。

指定されたディレクトリに同名のファイルが存在する。

指定されたパス名，またはファイル名が不正である。

ログファイル名と同名のディレクトリが存在した。

ログ出力を開始するためのメモリが不足している。

2040

EAD_ERROR_INIT_CLUSTERINFO

クライアント定義ファイルで指定されたEADsサーバへの接続に失敗しました。

次の要因が考えられます。

クライアント定義に指定した接続先EADsサーバの指定に誤りがある。

接続先EADsサーバとの通信に失敗した。または接続先EADsサーバで障害が発生している。

接続先EADsサーバの最大同時接続数を超えた。

接続先EADsサーバがリクエストの受付を開始できる状態でない。

3000

EAD_ERROR_NET

EADsサーバとの間で通信エラーが発生しました。

次の要因が考えられます。

通信中にネットワーク障害が発生した。

通信先のEADsサーバで問題が発生した。

通信先のホストで問題が発生した。

EADsサーバが受信できるデータの最大サイズを超えた。

3010

EAD_ERROR_NET_TIMEOUT

EADsサーバとの通信中にタイムアウトが発生しました。

次の要因が考えられます。

接続先EADsサーバで問題が発生した。

接続先のホストで問題が発生した。

ネットワークで問題が発生した。

タイムアウト時間の設定が誤っている。

3020

EAD_ERROR_NET_CONNECTION

EADsサーバとの接続に失敗しました。

次の要因が考えられます。

接続先EADsサーバで問題が発生した。

接続先EADsサーバに関する設定が誤っている。

ネットワークで問題が発生した。

タイムアウト時間の設定が誤っている。

3030

EAD_ERROR_NET_PROTOCOL

EADsサーバとの通信中にプロトコル障害が発生しました。

次の要因が考えられます。

接続先EADsサーバが誤っている。

実行したユーザファンクションがバイト配列，またはNULL以外を戻り値として返却した。

接続しているクラスタのキャッシュがJava言語のクライアントライブラリで使用中である。

3040

EAD_ERROR_NET_CLUSTERINFO

接続できる，すべてのEADsサーバへの接続に失敗しました。

次の要因が考えられます。

接続先EADsサーバで問題が発生した。

接続先EADsサーバに関する設定が誤っている。

ネットワークで問題が発生した。

指定したキャッシュが接続先EADsサーバに存在しない。

接続先EADsサーバが閉塞状態となっている。

EADsクライアントが保持するクラスタ構成情報と，再起動した接続先EADsサーバが保持するクラスタ構成情報が一致しない。

接続先EADsサーバの最大同時接続数を超えた。

4000

EAD_ERROR_SERVER

EADsサーバで内部エラーが発生しました。

次の要因が考えられます。

接続先EADsサーバで内部エラーが発生した。

接続先EADsサーバが閉塞状態となっている。

接続先EADsサーバのユーザファンクション内でエラーが発生した。

指定したキャッシュ名のキャッシュが接続先EADsサーバに存在しない。

指定したkeyのサイズがクラスタに格納できるkeyの最大サイズを超えている。

データの格納先の空き容量が不足している。

4010

EAD_ERROR_SERVER_UNSUPPORTED_REQUEST

EADsクライアントが送信したリクエストを，接続先EADsサーバが処理できませんでした。

データが破損しているなどの理由で，接続先EADsサーバがリクエストを処理できません。

4020

EAD_ERROR_SERVER_EVENTHANDLER

データの更新操作および多重化は成功したが，ユーザイベントハンドラ内の処理で例外が発生しました。

接続先EADsサーバのユーザイベントハンドラ内の処理で例外が発生しました。

4030

EAD_ERROR_SERVER_UNAVAILABLE

接続先EADsサーバプロセスが一時的に利用できません。

接続先EADsサーバの最大同時接続数を超えました。

4040

EAD_ERROR_SERVER_INCOMPATIBLE_CLUSTERINFO

接続先EADsサーバが保持するクラスタ構成情報と，EADsクライアントが保持するクラスタ構成情報に互換性がありません。

再起動した接続先EADsサーバのクラスタ構成情報が，EADsクライアントが保持するクラスタ構成情報と一致しません。

4060

EAD_ERROR_SERVER_REPLACE_METHOD_NOT_MATCHED

ead_replace()実行時，すでに格納されているvalueが条件に指定したvalueと一致しなかったため，valueを格納できませんでした。

ead_replace()で条件に指定したvalueとキャッシュ上のvalueが一致しませんでした。

4070

EAD_ERROR_SERVER_REPLACE_METHOD_KEY_NOT_EXIST

ead_replace()実行時，指定したkeyが存在しなかったため（keyに関連づけられたvalueが存在しなかったため），処理を続行できませんでした。

ead_replace()で指定したkeyに関連づけられたvalueが存在しなかったため，valueの比較ができませんでした。

4080

EAD_ERROR_SERVER_CREATE_METHOD_KEY_EXIST

ead_create()実行時，指定したkeyがすでに存在したため，valueを格納できませんでした。

ead_create()で指定したkeyに関連づけられたvalueがすでに格納されています。

4090

EAD_ERROR_SERVER_UPDATE_METHOD_KEY_NOT_EXIST

ead_update()実行時，指定したkeyが存在しなかったため，valueを格納できませんでした。

ead_update()で指定したkeyに関連づけられたvalueが格納されていません。

4100

EAD_ERROR_SERVER_NOT_RUNNING

データのコピー元，およびコピー先EADsサーバがすべて縮退状態または停止状態です。

EADsクライアントからのリクエストを処理するEADsサーバと，データのコピー先EADsサーバがすべて縮退状態または停止状態です。

5000

EAD_ERROR_CLIENT

EADsクライアントで内部エラーが発生しました。

クライアントライブラリ内で予期しないエラーが発生しました。

5010

EAD_ERROR_CLIENT_OUT_OF_MEMORY

EADsクライアント内でメモリ確保に失敗しました。

クライアントライブラリ内でメモリ確保に失敗しました。

（凡例）

−：該当しません。

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

23　よく使用する一覧集

この章では，パラメタ，コマンド，API，エラーコード，および最小値・最大値の一覧について説明します。

23.1　パラメタ一覧

EADsサーバ，EADsクライアントで使用する定義ファイルごとのパラメタの一覧について説明します。

23.1.1　EADsサーバで使用する定義ファイル

(1)　サーバ定義ファイル

サーバ定義ファイルに指定できるパラメタの一覧を次の表に示します。

なお，必ず指定するパラメタを太字で表記しています。

環境依存パラメタの設計については，「7.　環境依存パラメタを設計する（EADsサーバ）」を参照してください。

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

表23‒1　サーバ定義ファイルに指定できるパラメタ一覧

項番

分類

パラメタ名

指定する内容

1

通信

（「7.3　通信に依存するパラメタの設計」参照）

eads.server.address

EADsサーバのIPアドレスまたはホスト名

2

eads.server.port

EADsサーバのポート番号

3

eads.consensus.message.port

EADsサーバ間の通信に使用するポート番号

4

eads.cluster.failureDetector.port

EADsサーバ間の生存確認に使用するポート番号

5

eads.restore.port

EADsサーバの復旧に使用するポート番号

6

eads.management.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.logger.user.rotationStyle

ユーザログのローテーション方式

16

eads.logger.user.filesize

ユーザログの1ファイル当たりのファイルサイズ

17

eads.logger.user.filenum

ユーザログのファイル数

18

eads.logger.userException.rotationStyle

ユーザ例外ログのローテーション方式

19

eads.logger.userException.filesize

ユーザ例外ログの1ファイル当たりのファイルサイズ

20

eads.logger.userException.filenum

ユーザ例外ログのファイル数

21

eads.logger.cache.rotationStyle

キャッシュファイル操作ログのローテーション方式

22

eads.logger.cache.filesize

キャッシュファイル操作ログの1ファイル当たりのファイルサイズ

23

eads.logger.cache.filenum

キャッシュファイル操作ログのファイル数

24

eads.prf.enable

PRFトレースの出力を有効にするか，無効にするか

25

eads.statistics.interval

統計情報を出力する間隔

26

eads.statistics.backupnum

統計情報の取得日数

27

eads.statistics.compaction.effect.division

統計情報で使用する，コンパクションの効果のファイル数の分布を分割する個数

28

バックアップファイル

（「7.6　バックアップファイルに依存するパラメタの設計」参照）

eads.storeData.dir

ストアデータファイルの出力先パス名

29

メモリ・バッファ

（「9.1　メモリ・バッファに関連するパラメタの設計」参照）

eads.connection.buffersize

データの送受信バッファサイズ

30

eads.server.max.datasize.enable

EADsサーバが受け付けるデータの最大サイズのチェックを有効にするか，無効にするか

31

eads.server.max.datasize

EADsサーバが受け付けるデータの最大サイズ

32

eads.consensus.message.buffersize

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

33

eads.consensus.message.send.queuesize

合意メッセージの送信キューの長さ

34

eads.consensus.message.send.max_queuedatasize

合意メッセージの送信キューに格納できるデータの最大サイズ

35

eads.restore.connection.buffersize

復旧処理で使用するデータの送受信バッファサイズ

36

eads.restore.dataSender.sendSize

復旧処理で送信するデータサイズ

37

eads.consensus.fillgap.copy.dataSize

EADsサーバに対して，更新操作の履歴の補完処理でデータをコピーする際，1回当たりに送信するデータサイズ

38

eads.consensus.external.heapsize

更新操作の履歴が格納される領域のサイズ

39

eads.management.resume.sendSize

eztool resumeコマンド実行時に転送する差分のデータサイズ

40

スレッドプールおよびコネクションプール

（「9.2　スレッドプールおよびコネクションプールに関連するパラメタの設計」参照）

eads.server.max_connections

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

41

eads.server.cache.max_execute_threads

データ操作の最大同時実行スレッド数

42

eads.server.function_container.max_execute_threads

ユーザファンクション全体の最大同時実行スレッド数

43

eads.cluster.controller.cache.max_execute_threads

キャッシュ単位に行われる処理の最大同時実行スレッド数

44

タイムアウト

（「9.3　タイムアウトに関連するパラメタの設計」参照）

eads.connection.timeout

クラスタ構成情報の更新確認やデータ送受信のタイムアウト時間

45

eads.cluster.heartbeat.interval

ハートビートの送信間隔

46

eads.cluster.heartbeat.timeout

ハートビートのタイムアウト時間

47

eads.cluster.failureDetector.connect.timeout

生存確認の接続タイムアウト時間

48

eads.cluster.failureDetector.read.timeout

生存確認の受信タイムアウト時間

49

eads.cluster.failureDetector.retry

生存確認タイムアウト時のリトライ回数

50

eads.cluster.assertive.threshold

EADsサーバダウンに同意するEADsサーバ数

51

eads.cluster.boot.timeout

クラスタを構成する全EADsサーバが開始するまでの最大待ち時間

52

eads.server.session.keepAlive.timeout

EADsクライアント・EADsサーバ間の接続を切断するまでの時間

53

eads.gracefulstop.wait_time

eztool isolateコマンドを実行したEADsサーバの縮退処理が完了してから，停止するまでの時間

54

eads.cache.consensus.timeout

合意処理のタイムアウト時間

55

eads.restore.dataSender.send.timeout

復旧処理でのデータ送信タイムアウト時間

56

eads.restore.dataReceiver.read.timeout

復旧処理でのデータ受信タイムアウト時間

57

eads.restore.dataSender.sendInterval

復旧処理でのデータ送信間隔

58

eads.consensus.fillgap.copy.timeout

更新操作の履歴の補完処理で，更新操作の履歴を送信する際の送信タイムアウト時間

59

eads.management.resume.sendInterval

eztool resumeコマンド実行時の差分転送間隔

60

キャッシュ

（「7.7　キャッシュの運用に依存するパラメタの設計」参照）

eads.cache.disk.getError.isolate.enable

ディスクキャッシュおよび2Wayキャッシュで，データの整合性に影響がないディスクI/Oエラーが発生した場合に，EADsサーバを縮退させるか，縮退させないか

(2)　クラスタ定義ファイル

クラスタ定義ファイルに指定できるパラメタの一覧を次の表に示します。

なお，必ず指定するパラメタを太字で表記しています。

環境依存パラメタの設計については，「7.　環境依存パラメタを設計する（EADsサーバ）」を参照してください。

表23‒2　クラスタ定義ファイルに指定できるパラメタ一覧

項番

分類

パラメタ名

指定する内容

1

バックアップファイル

（「7.6　バックアップファイルに依存するパラメタの設計」参照）

eads.storeData.generation.count

eztool exportコマンド実行時に出力されるストアデータファイルの世代数の上限値

2

eads.storeData.stop_command.generation.count

eztool stopコマンド実行時に出力されるストアデータファイルの世代数の上限値

3

クラスタ構成

（「7.5　クラスタ構成に依存するパラメタの設計」参照）

eads.node.＜EADsサーバID＞.address

クラスタを構成するEADsサーバのIPアドレス

4

eads.node.＜EADsサーバID＞.port

クラスタを構成するEADsサーバのポート番号

5

eads.node.＜EADsサーバID＞.position

EADsサーバの位置（ハッシュ値）

6

eads.cluster.heartbeat.address

EADsサーバ間のハートビートの送信に使用するIPアドレス（マルチキャストアドレス）

7

eads.cluster.heartbeat.port

EADsサーバ間のハートビートの送信に使用するポート番号

8

eads.replication.factor

データの多重度

9

メモリ・バッファ

（「9.1　メモリ・バッファに関連するパラメタの設計」参照）

eads.server.max_key_size

クラスタに格納できるkeyの最大サイズ

10

eads.cache.prepare.num

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

(3)　起動設定ファイル

起動設定ファイルに指定できるパラメタの一覧を次の表に示します。

環境依存パラメタの設計については，「7.　環境依存パラメタを設計する（EADsサーバ）」を参照してください。

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

表23‒3　起動設定ファイルに指定できるパラメタ一覧

項番

分類

パラメタ名

指定する内容

1

ログファイル

（「7.4　ログファイルに依存するパラメタの設計」参照）

eads.prf.filesize

PRFトレースのファイルサイズ

2

eads.prf.filenum

PRFトレースのファイル数

3

eads.prf.level

PRFトレースの出力レベル

4

eads.java.log.filesize

Javaログ（JavaVMの保守情報）のファイルサイズ

5

eads.java.log.filenum

Javaログ（JavaVMの保守情報）のファイル数

6

メモリ・バッファ

（「9.1　メモリ・バッファに関連するパラメタの設計」参照）

eads.prf.buffersize

PRFデーモンが共用メモリに確保するバッファのサイズ

7

eads.java.heapsize

Javaヒープサイズ

8

eads.java.external.heapsize

Explicitヒープサイズ

9

eads.java.permanent.size

Permanent領域のサイズ

(4)　コマンド定義ファイル

コマンド定義ファイルに指定できるパラメタの一覧を次の表に示します。

環境依存パラメタの設計については，「7.　環境依存パラメタを設計する（EADsサーバ）」を参照してください。

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

表23‒4　コマンド定義ファイルに指定できるパラメタ一覧

項番

分類

パラメタ名

指定する内容

1

ログファイル

（「7.4　ログファイルに依存するパラメタの設計」参照）

eads.logger.dir

ログファイルの出力先ディレクトリのパス

2

eads.logger.message.rotationStyle

メッセージログのローテーション方式

3

eads.logger.message.filesize

メッセージログの1ファイル当たりのファイルサイズ

4

eads.logger.message.filenum

メッセージログのファイル数

5

eads.logger.exception.rotationStyle

例外ログのローテーション方式

6

eads.logger.exception.filesize

例外ログの1ファイル当たりのファイルサイズ

7

eads.logger.exception.filenum

例外ログのファイル数

8

タイムアウト

（「9.3　タイムアウトに関連するパラメタの設計」参照）

eads.management.connect.timeout

コマンド実行時のクラスタ構成情報の更新確認の接続タイムアウト時間

9

eads.management.read.timeout

コマンド実行時のクラスタ構成情報の更新確認の受信タイムアウト時間

10

eads.management.command.timeout

コマンド実行開始からのタイムアウト時間

11

eads.management.long_running.read.timeout

次に示すコマンド実行時のクラスタ構成情報の更新確認の受信タイムアウト時間

eztool export

eztool import

eztool createcache

eztool deletecache

eztool execfunc

eztool importecf

eztool resume

eztool compaction

eztool stop

12

eads.management.long_running.command.timeout

次に示すコマンドの実行開始からのタイムアウト時間

eztool export

eztool import

eztool createcache

eztool deletecache

eztool execfunc

eztool importecf

eztool resume

eztool compaction

eztool stop

13

コンパクション

（「9.4　コンパクションに関連するパラメタの設計」参照）

eads.management.compaction.effect.threshold

次に示すコマンドで使用する，コンパクションの効果のしきい値

eztool listecf

eztool compaction

14

eads.management.compaction.effect.division

eztool listecfコマンドで使用する，コンパクションの効果のファイル数の分布を分割する個数

(5)　キャッシュ定義ファイル

キャッシュ定義ファイルに指定できるパラメタの一覧を次の表に示します。

なお，必ず指定するパラメタを太字で表記しています。

環境依存パラメタの設計については，「7.　環境依存パラメタを設計する（EADsサーバ）」を参照してください。

表23‒5　キャッシュ定義ファイルに指定できるパラメタ一覧

項番

分類

パラメタ名

指定する内容

1

キャッシュ

（「7.7　キャッシュの運用に依存するパラメタの設計」参照）

eads.cache.type

キャッシュタイプ

2

eads.cache.disk.info.dir

キャッシュ情報ファイルおよびキャッシュインデックスファイルの格納先

3

eads.cache.disk.<n>.dir

キャッシュデータファイルの格納先

4

eads.cache.disk.filesize

キャッシュデータファイルのファイルサイズ

5

eads.cache.disk.filenum

キャッシュデータファイルの面数

6

eads.cache.disk.blocksize

キャッシュデータファイルに1回で書き込むデータサイズ

7

eads.cache.restore.dataSender.sendInterval

ディスクキャッシュ，および2Wayキャッシュの復旧処理でのデータ送信間隔

8

eads.cache.restore.dataSender.sendSize

ディスクキャッシュ，および2Wayキャッシュの復旧処理で送信するデータサイズ

(6)　ファンクション定義ファイル

ファンクション定義ファイルに指定できるパラメタの一覧を次の表に示します。

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

表23‒6　ファンクション定義ファイルに指定できるパラメタ一覧

項番

分類

パラメタ名

指定する内容

1

スレッドプールおよびコネクションプール

（「9.2　スレッドプールおよびコネクションプールに関連するパラメタの設計」参照）

eads.function.＜ユーザファンクション名＞.max_execute_threads

ユーザファンクション単位の最大同時実行スレッド数

23.1.2　EADsクライアントで使用する定義ファイル

(1)　クライアント定義ファイル

クライアント定義ファイルに指定できるパラメタの一覧を次の表に示します。

なお，必ず指定するパラメタを太字で表記しています。

環境依存パラメタの設計については，「8.　環境依存パラメタを設計する（EADsクライアント）」を参照してください。

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

表23‒7　クライアント定義ファイルに指定できるパラメタ一覧

項番

分類

パラメタ名

指定する内容

1

通信

（「8.3　通信に依存するパラメタの設計」参照）

eads.client.node.list

EADsクライアントの初期設定時に接続する，接続先EADsサーバを識別するための名称（任意の名称）

2

eads.client.＜接続先EADsサーバ＞.address

EADsクライアントの初期設定時に接続する，接続先EADsサーバのIPアドレスまたはホスト名

3

eads.client.＜接続先EADsサーバ＞.port

EADsクライアントの初期設定時に接続する，接続先EADsサーバのポート番号

4

ログファイル

（「8.4　ログファイルに依存するパラメタの設計」参照）

eads.logger.dir

ログファイルの出力先ディレクトリのパス

5

eads.logger.message.filesize

メッセージログの1ファイル当たりのファイルサイズ

6

eads.logger.message.filenum

メッセージログのファイル数

7

eads.logger.message.console.enable

メッセージログの標準出力への出力を有効にするか，無効にするか

8

eads.logger.commTrace.enable

通信トレースの出力を有効にするか，無効にするか

9

eads.logger.commTrace.filesize

通信トレースの1ファイル当たりのファイルサイズ

10

eads.logger.commTrace.filenum

通信トレースのファイル数

11

eads.logger.commTrace.commNo.prefix

PRFトレースに出力されるRootAP情報の通信番号（RootAP CommNo.）に含めるプレフィックス

12

メモリ・バッファ

（「9.1　メモリ・バッファに関連するパラメタの設計」参照）

eads.connection.buffersize

データの送受信バッファサイズ

13

スレッドプールおよびコネクションプール

（「9.2　スレッドプールおよびコネクションプールに関連するパラメタの設計」参照）

eads.connectionPool.poolsize

同一接続先に対してプールしておくコネクションの最大個数

14

eads.connectionPool.exceedMaxSizeError.enable

コネクションがすでに最大個数に達していて，すべて使用中の場合に，EADsクライアントからのリクエストをエラーにするかどうか

15

タイムアウト

（「9.3　タイムアウトに関連するパラメタの設計」参照）

eads.connection.send.timeout

クラスタ構成情報の更新確認やデータ送信のタイムアウト時間

16

eads.connection.receive.timeout

クラスタ構成情報の更新確認やデータ受信のタイムアウト時間

17

eads.client.clusterInfo.update.interval

クラスタ構成情報の更新確認を行う間隔

23.2　コマンド一覧

コマンドの一覧を次の表に示します。

表23‒8　コマンド一覧

項番

利用シーン

コマンド名

実行対象

1

開始

EADsサーバを開始する

ezstart

EADsサーバ

2

EADsサーバをフォアグラウンドで開始する

ezserver

EADsサーバ

3

閉塞化と閉塞解除

クラスタを閉塞状態にする

eztool close

クラスタ

4

クラスタの閉塞状態を解除する

eztool open

クラスタ

5

状態確認

クラスタの状態を確認する

eztool status

クラスタ※1

6

キャッシュの一覧を表示する

eztool listcache

クラスタ

7

ストアデータファイルの一覧を表示する

eztool listesd

クラスタ

8

データの格納先を表示する

eztool getposition

クラスタ

9

排他制御

排他を解除する

eztool unlock

クラスタ

10

メモリ・ディスク管理

キャッシュを作成する

eztool createcache

クラスタ

11

キャッシュを削除する

eztool deletecache

クラスタ

12

データ移行

データを書き出す

eztool export

クラスタ※1

13

データを読み込む

eztool import

クラスタ

14

ストアデータファイルを削除する

eztool deleteesd

クラスタ

15

データ操作

指定したデータを格納する

eztool put

EADsサーバ

16

指定したデータを取得する

eztool get

EADsサーバ

17

指定したデータを削除する

eztool remove

EADsサーバ

18

ユーザファンクション

ユーザファンクションの実行可否を表示する

eztool listfunc

クラスタ

19

ユーザファンクションを実行する

eztool execfunc

クラスタ※1※2

20

ユーザイベントハンドラ

ユーザイベントハンドラの実行可否を表示する

eztool listevent

クラスタ

21

永続化

永続データに関する情報の一覧を表示する

eztool listecf

クラスタ※1

22

キャッシュを再開する

eztool resume

クラスタ

23

キャッシュデータファイルからデータを再配置する

eztool importecf

クラスタ

24

キャッシュファイルを削除する

eztool deleteecf

クラスタ

25

キャッシュデータファイルをコンパクションする

eztool compaction

EADsサーバ※3

26

トラブルシュート

PRFトレース情報を編集出力する

eztool cprfed

EADsサーバ

27

スレッドダンプを出力する

eztool threaddump

EADsサーバ

28

ログ，設定情報，ハードウェア情報，およびネットワーク情報を収集する

eztool snapshot

EADsサーバ

29

終了

クラスタ内の全EADsサーバを終了する

eztool stop

クラスタ

30

EADsサーバを強制終了する

eztool forcestop

EADsサーバ

31

EADsサーバを縮退させる

eztool isolate

EADsサーバ

注※1

-sまたは--singleオプションを指定すると，コマンドを実行したEADsサーバが対象となります。

注※2

-gまたは--groupオプションを指定すると，指定したグループ名のハッシュ値から決定したEADsサーバが対象となります。

注※3

--cacheオプションを指定すると，コマンドを実行したキャッシュが対象となります。

--rangeオプションを指定すると，コマンドを実行したレンジが対象となります。

23.3　API一覧

APを作成する言語ごとのAPIの一覧について説明します。

23.3.1　Java言語のライブラリが提供するAPI

(1)　Java言語のクライアントライブラリが提供するクラス

Java言語のクライアントライブラリでは，EADsのAPIとして次の表に示すクラスを提供します。

表23‒9　Java言語のクライアントライブラリで使用できるクラスとパッケージ名

項番

クラス名

機能

パッケージ名

1

Cache

データを操作するためのクラスです。

com.hitachi.software.xeads.client.api

2

CacheManager

キャッシュを管理するためのクラスです。

3

Node

EADsサーバの情報を取得するためのクラスです。

4

CacheException

Cacheクラス，およびCacheManagerクラスに対する操作が失敗した場合に返却する例外クラスです。

5

InitializeException

CacheManagerクラスの初期化でエラーが発生した場合に返却されるCacheExceptionのサブクラスです。

6

InternalClientException

EADsクライアントで内部エラーが発生した場合に返却されるCacheExceptionのサブクラスです。

7

InternalServerException

EADsサーバで内部エラーが発生した場合に返却されるCacheExceptionのサブクラスです。

8

ServerCommunicationException

通信障害が発生した場合に返却されるCacheExceptionのサブクラスです。

9

UserOperationException

不正なユーザ操作によってエラーが発生した場合に返却されるCacheExceptionのサブクラスです。

(2)　ユーザファンクションで使用できるAPI

ユーザファンクションで使用できるAPIを次の表に示します。

表23‒10　ユーザファンクションで使用できる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クライアントの情報（PRFトレースに出力されるRootAP情報に相当する情報）を取得するインタフェースです。

com.hitachi.software.xeads.common.ClientInfo

5

ServerInfo

EADsサーバの情報を取得するためのインタフェースです。

com.hitachi.software.xeads.common.ServerInfo

6

Store

ユーザファンクションの実行時にデータを操作するインタフェースです。

com.hitachi.software.xeads.func.store.Store

7

Group

ユーザファンクションを実行中のEADsサーバに属するグループを操作するためのインタフェースです。

com.hitachi.software.xeads.func.store.Group

8

Key

ユーザファンクションで使用できるAPI内で，keyを表現するインタフェースです。

com.hitachi.software.xeads.func.store.Key

9

UserLogger

ユーザログのインタフェースです。

com.hitachi.software.xeads.common.UserLogger

10

EADsStoreException

Groupインタフェースに対する操作が失敗した場合に返却される例外クラスです。

com.hitachi.software.xeads.func.store.EADsStoreException

11

InternalServerException

EADsサーバで内部エラーが発生した場合に返却されるEADsStoreExceptionのサブクラスです。

com.hitachi.software.xeads.func.store.InternalServerException

12

UserOperationException

不正なユーザ操作によってエラーが発生した場合に返却されるEADsStoreExceptionのサブクラスです。

com.hitachi.software.xeads.func.store.UserOperationException

13

列挙型CacheType

キャッシュタイプを表す列挙型です。

com.hitachi.software.xeads.common.CacheType

(3)　ユーザイベントハンドラで使用できるAPI

ユーザイベントハンドラで使用できるAPIを次の表に示します。

表23‒11　ユーザイベントハンドラで使用できるAPI

項番

インタフェース名，

アノテーション名，

または列挙型名

機能

パッケージ名

1

EventHandler

EADsサーバで使用するユーザイベントハンドラが実装する必要のあるインタフェースです。

com.hitachi.software.xeads.event.EventHandler

2

EventContext

EADsサーバ，EADsクライアント，および発生したイベントに関する情報を，ユーザイベントハンドラに渡すインタフェースです。

com.hitachi.software.xeads.event.EventContext

3

ClientInfo※

実行したEADsクライアントの情報（PRFトレースに出力されるRootAP情報に相当する情報）を取得するインタフェースです。

com.hitachi.software.xeads.common.ClientInfo

4

UserLogger※

ユーザログのインタフェースです。

com.hitachi.software.xeads.common.UserLogger

5

OperationFilter

イベントが発生したデータ操作の種類に関して，ユーザイベントハンドラが動作する条件を指定するアノテーションです。

com.hitachi.software.xeads.event.annotation.OperationFilter

6

DataFilter

イベントが発生したデータのキャッシュ名，グループ名，または要素名に関して，ユーザイベントハンドラが動作する条件を指定するアノテーションです。

com.hitachi.software.xeads.event.annotation.DataFilter

7

Priority

ユーザイベントハンドラを実行する優先度を指定するアノテーションです。

com.hitachi.software.xeads.event.annotation.Priority

8

OperationType

イベントが発生したデータ操作の種類を表す列挙型です。

com.hitachi.software.xeads.event.OperationType

9

MethodType

実行したAPIの種類を表す列挙型です。

com.hitachi.software.xeads.event.MethodType

10

PriorityLevel

ユーザイベントハンドラを実行する優先度を表す列挙型です。

com.hitachi.software.xeads.event.PriorityLevel

注※

ClientInfoインタフェースについては，「20.2.4　ClientInfoインタフェース」を参照してください。

UserLoggerインタフェースについては，「20.2.9　UserLoggerインタフェース」を参照してください。

23.3.2　C言語のクライアントライブラリが提供する関数

C言語のクライアントライブラリでは，EADsのAPIとして次の表に示す関数を提供します。

表23‒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_terminate_client()

EADsクライアントを終了します。

6

ead_put()

valueをkeyに関連づけて格納します。

7

ead_put_array_value()

複数のvalueを連結して，keyに関連づけて格納します。

8

ead_create()

新規にkeyを格納する場合だけ，valueをkeyに関連づけて格納します。

9

ead_update()

指定したkeyがすでに格納されている場合だけ，valueをkeyに関連づけて格納します（valueを更新します）。

10

ead_replace()

指定したkeyに関連づけられているvalueを，条件として指定したvalue情報と比較します。valueが一致している場合だけ，valueをkeyに関連づけて格納します（valueを置換します）。

11

ead_get()

指定したkeyに関連づけられたvalueを取得します。

12

ead_remove()

指定したkey，およびkeyに関連づけられたvalueを削除します。

13

ead_execute_function()

グループを指定して，ユーザファンクションを実行します。

14

ead_execute_function_rt()

グループおよび受信タイムアウト時間を指定して，ユーザファンクションを実行します。

15

ead_execute_node_function()

EADsサーバを指定して，ユーザファンクションを実行します。

16

ead_execute_node_function_rt()

EADsサーバおよび受信タイムアウト時間を指定して，ユーザファンクションを実行します。

17

ead_get_nodelist()

EADsクライアントが保持している接続先EADsサーバの情報を取得します。

18

ead_get_node()

指定したkeyまたはグループが格納されている接続先EADsサーバの情報を取得します。

19

ead_get_slave_nodelist()

データのコピー先EADsサーバの情報を取得します。

23.4　クライアントライブラリが出力するエラーコード

クライアントライブラリが出力するエラーコードについて説明します。

23.4.1　Java言語のクライアントライブラリが出力するエラーコード

Java言語のクライアントライブラリが出力するエラーコードについては，「20.1.4　CacheExceptionクラス」の「(5)(c)戻り値」を参照してください。

なお，ユーザファンクションのエラーコードについては，「20.2.10　EADsStoreExceptionクラス」の「(5)(c)戻り値」を参照してください。

23.4.2　C言語のクライアントライブラリが出力するエラーコード

C言語のクライアントライブラリが出力するエラーコードについては，「22.2　クライアントライブラリのエラーコード（C言語）」を参照してください。

23.5　最小値・最大値一覧

EADsの最小値・最大値の一覧を次の表に示します。

表23‒13　最小値・最大値一覧

項番

項目

最小値

最大値

1

1EADsサーバ当たりの，EADsクライアントからの接続数

1

1,024

2

1クラスタを構成するEADsサーバ数

1※1

96

3

1クラスタに作成できるキャッシュ数

0

64

4

1EADsサーバに格納できるデータ数※2

0

2,147,483,647

5

データの多重度

1

10

6

keyの長さ

（単位：文字数）

1

1,024

7

valueのサイズ※3

（単位：バイト）

1

262,144

8

グループ名の長さ

（単位：文字数）

1

1,022

9

キャッシュ名の長さ

（単位：文字数）

1

32

10

グループ数

1

制限なし

11

グループの階層数

1

511

12

1レンジ当たりのキャッシュデータファイルのサイズ

（単位：メガバイト）

16

128

13

1レンジ当たりのキャッシュデータファイルのファイル数

8

32,768

14

1キャッシュデータファイルに格納できるデータ数

−

131,070

（凡例）

−：該当しません。

注※1

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

注※2

多重化によってコピーされるデータ数も含みます。

注※3

valueのサイズについては，「15.2.2(2)　valueとして指定できるデータ」を参照してください。

24　メッセージ

この章では，出力されるメッセージを示し，その意味，および対策について説明します。

24.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の動作など，メッセージに対する補足説明を示します。

対処

ユーザが実施する対処を表します。

24.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サーバ内で障害が発生したため，EADsサーバが縮退状態（isolated）になりました。以後，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.management.port

例外ログから要因を特定し，問題を取り除いたあと，EADsサーバを再起動してください。

KDEA00017-E

PRF trace failed to start. (return code = aa....aa)

aa....aa：PRFトレースの初期化処理の戻り値

説明

PRFトレースの初期化処理に失敗しました。

対処

次の表に示すPRFトレースの初期化処理の戻り値を参照して，対処してください。

PRFトレースの初期化処理の戻り値

意味

-1

環境変数PRFSPOOLが設定されていません。

または，環境変数PRFSPOOLに設定したディレクトリがありません。

-2

PRFデーモンのサービス開始処理でエラーが発生しました。

PRFデーモンが起動していないおそれがあります。

PRFデーモンが正常に起動しているかどうかを確認してください。EADsサーバが使用するPRFデーモンの識別子は，REQ_PRF_ID（固定値）です。

-3

PRFデーモンのサービス開始処理でエラーが発生しました（システムコールのエラーなど）。

＜サーバ定義のeads.logger.dirパラメタに指定したディレクトリ＞/spool/log/REQ_PRF_ID下にあるファイルを参照して，パフォーマンストレーサのメッセージを調査し，要因を特定してから問題を取り除いてください。

-4

PRFデーモンで必要となるライブラリのロードに失敗しました。次の要因が考えられます。

パフォーマンストレーサがインストールされていない。

クラスパスにPRFトレース出力ライブラリが指定されていない。

環境変数に誤りがある。

要因を特定し，問題を取り除いたあと，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.max_connectionsパラメタ）を見直してください。

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クライアントで問題が発生した。

通信先のホストで問題が発生した。

ネットワークで問題が発生した。

要因を特定し，問題を取り除いてください。

KDEA00037-I

The PRF trace is disabled.

説明

PRFトレースは無効です。PRFトレースは出力されません。

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クライアントが使用されているか確認してください。

KDEA00046-E

The packet size of a received request exceeds the maximum. (local = aa....aa:bb....bb, remote = cc....cc:dd....dd, maximum size (bytes) = ee....ee, packet size (bytes) = ff....ff)

aa....aa：EADsサーバのIPアドレス（java.net.InetAddressの文字列表現）

bb....bb：EADsサーバのポート番号

cc....cc：接続元のIPアドレス（java.net.InetAddressの文字列表現）

dd....dd：接続元のポート番号

ee....ee：最大サイズ（単位：バイト）

ff....ff：受信したパケットサイズ（単位：バイト）

説明

受信したリクエストのパケットサイズが最大値を超えています。

リクエストは処理されません。

対処

次に示すサーバ定義のパラメタの指定値を見直してください。

eads.server.max.datasize.enable

eads.server.max.datasize

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を格納するメモリの空き領域が不足しています。

対処

種別ごとに次の表に示す対処を検討してください。

種別

対処

store

起動設定の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.consensus.external.heapsizeパラメタの指定値が小さいです。

対処

valueのサイズが指定できる最大値を超えないようにしてください。

valueのサイズが指定できる最大値を超えていない場合は，種別ごとに次の表に示す対処を検討してください。

種別

対処

store

起動設定のeads.java.external.heapsizeパラメタの指定値を大きくしてください。

dist

サーバ定義のeads.consensus.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.consensus.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.server.max_key_sizeパラメタの指定値を見直してください。

KDEA00511-I

Initialization of the user event handler is complete. (event handler name = aa....aa)

aa....aa：ユーザイベントハンドラ名

説明

ユーザイベントハンドラの初期化が完了しました。

KDEA00512-W

An exception or error occurred in the init method of the user event handler. (event handler name = aa....aa)

aa....aa：ユーザイベントハンドラ名

説明

ユーザイベントハンドラのinit()で例外（またはエラー）が発生しました。

対処

ユーザ例外ログを確認し，問題を取り除いてください。

KDEA00513-W

Generation of a user event handler instance failed. (event handler name = aa....aa)

aa....aa：ユーザイベントハンドラ名

説明

ユーザイベントハンドラのインスタンスの生成に失敗しました。

対処

次の要因が考えられます。

ユーザイベントハンドラのインスタンス生成時に例外（またはエラー）が発生した。

ユーザイベントハンドラのデフォルトコンストラクタのアクセス権がない。

ユーザイベントハンドラがインスタンス生成できない形式である。

ユーザ例外ログを確認して問題を取り除いたあと，EADsサーバを再起動してください。

KDEA00514-I

Processing to terminate the user event handler is complete. (event handler name = aa....aa)

aa....aa：ユーザイベントハンドラ名

説明

ユーザイベントハンドラの終了処理が完了しました。

KDEA00515-W

Processing to terminate the user event handler failed. (event handler name = aa....aa)

aa....aa：ユーザイベントハンドラ名

説明

ユーザイベントハンドラの終了処理に失敗しました（ユーザイベントハンドラのdestroy()で例外（またはエラー）が発生しました）。

対処

ユーザ例外ログを確認し，問題を取り除いてください。

KDEA00516-E

An exception or error occurred on the user event handler. (event handler name = aa....aa)

aa....aa：ユーザイベントハンドラ名

説明

ユーザイベントハンドラ内で例外（またはエラー）が発生しました（ユーザイベントハンドラのexecute()実行中に例外（またはエラー）が発生しました）。

対処

ユーザ例外ログを確認し，問題を取り除いてください。

KDEA00517-E

An exception or error occurred in the user event handler call processing. (call event handler name = aa....aa, details = bb....bb)

aa....aa：呼び出し対象のユーザイベントハンドラ名（特定できない場合はnull）

bb....bb：詳細情報

説明

ユーザイベントハンドラの呼び出し処理で例外（またはエラー）が発生しました。

対処

詳細情報および直前に出力されたメッセージから要因を特定し，問題を取り除いてください。

KDEA00518-W

The annotation of a user event handler is invalid. (event handler name = aa....aa, details = bb....bb)

aa....aa：ユーザイベントハンドラ名

bb....bb：詳細情報

説明

ユーザイベントハンドラのアノテーションが不正です。

対処

次の表に示す詳細情報を参照して，問題を取り除いてください。

詳細情報

意味

The length of the specified cache name is outside the valid range. (index = ＜インデックス＞)

キャッシュ名の長さが指定できる範囲を超えています。

The specified cache name includes an invalid character. (index = ＜インデックス＞)

キャッシュ名に指定できない文字が含まれています。

The length of the specified group name is outside the valid range. (index = ＜インデックス＞)

グループ名の長さが指定できる範囲を超えています。

The specified group name includes an invalid character. (index = ＜インデックス＞)

グループ名に指定できない文字が含まれています。

The length of the specified element name is outside the valid range. (index = ＜インデックス＞)

要素名の長さが指定できる範囲を超えています。

The specified element name includes an invalid character. (index = ＜インデックス＞)

要素名に指定できない文字が含まれています。

The specified element name includes a group separator. (index = ＜インデックス＞)

要素名に区切り文字が含まれています。

The combined length of the specified group name and specified element name is outside the valid range.

グループ名と要素名を組み合わせた長さが，指定できる範囲を超えています。

注

インデックスはcache，group，elementの配列で何番目に指定した値が不正かを示します。インデックスは0から始まります（最初に指定した値のインデックスは0です）。

キャッシュ名が不正の場合

DataFilterアノテーションのcacheに指定した値を見直してください。

グループ名が不正の場合

DataFilterアノテーションのgroupに指定した値を見直してください。

要素名が不正の場合

DataFilterアノテーションのelementに指定した値を見直してください。

グループ名と要素名を組み合わせた長さが不正の場合

DataFilterアノテーションのgroupとelementに指定したすべてのグループ名と要素名の長さを見直してください。

KDEA00519-I

Initialization of the user event-handler library will now start. (file path = aa....aa)

aa....aa：ファイルパス

説明

ユーザイベントハンドラライブラリの初期化を開始します。

KDEA00520-I

Initialization of the user event-handler library is complete. (file path = aa....aa, success = bb....bb, failure = cc....cc)

aa....aa：ファイルパス

bb....bb：初期化に成功したユーザイベントハンドラの数

cc....cc：初期化に失敗したユーザイベントハンドラの数

説明

ユーザイベントハンドラライブラリの初期化が完了しました。

KDEA00521-I

No user event-handler library was found.

説明

ユーザイベントハンドラライブラリが存在しないため，ユーザイベントハンドラの初期化は行われません。

KDEA00522-E

An exception or error occurred in the initialization processing of the user event handler. (details = aa....aa)

aa....aa：詳細情報

説明

ユーザイベントハンドラの初期化処理で例外（またはエラー）が発生しました。

対処

詳細情報および例外ログから要因を特定し，問題を取り除いたあと，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：実際に割り当てられたサイズ

説明

キャッシュデータファイルに実際に割り当てられた領域のサイズが，ファイルサイズと異なります。

24.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 completed.

説明

クライアントライブラリの初期設定が完了しました。

KDEA02003-E

Initialization of the client library failed.

説明

クライアントライブラリの初期設定に失敗しました。

対処

「22.2　クライアントライブラリのエラーコード（C言語）」を参照して，問題を取り除いてください。

KDEA02008-I

Cache preparations 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.

説明

クラスタとの接続が回復しました。

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サーバとの通信を終了します。

24.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

Cache preparations 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：エラーコード

説明

クライアントライブラリの初期設定に失敗しました。

対処

「20.1.4　CacheExceptionクラス」の「(5)(c)戻り値」を参照して，問題を取り除いてください。

KDEA03019-I

Initialization of the client library completed.

説明

クライアントライブラリの初期設定が完了しました。

KDEA03021-E

The connections to all servers making up the cluster failed.

説明

クラスタを構成するすべてのEADsサーバとの接続に失敗しました。

対処

次の要因が考えられます。

クラスタを停止した。

通信先のEADsサーバで問題が発生した。

通信先のホストで問題が発生した。

ネットワークで問題が発生した。

タイムアウトの設定が適切でない。

要因を特定し，問題を取り除いてください。

KDEA03022-I

The connection to the cluster was restored.

説明

クラスタとの接続が回復しました。

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サーバとの通信を終了します。

24.5　KDEA04000〜KDEA05999

KDEA04000〜KDEA05999のメッセージとその対処方法について説明します。

KDEA04504-E

An attempt to initialize the distribution manager failed because an illegal property was detected. (property-file-name = aa....aa, property-name = bb....bb, property-value = cc....cc)

aa....aa：不正な定義ファイル名

bb....bb：不正なパラメタ名

cc....cc：不正なパラメタ指定値（値がない場合は空白）

説明

不正なパラメタが検出されたため，クラスタが構築できませんでした。

対処

メッセージ中に記されたパラメタを見直してください。

KDEA04505-E

Initialization of the distribution manager failed because there is no cluster-definition file.

説明

クラスタ定義ファイルが存在しないため，クラスタが構築できませんでした。

対処

クラスタ定義ファイルの格納先を見直してください。

KDEA04506-E

Initialization of the distribution-manager failed because a data discrepancy in the cluster-definition file was detected. (node = aa....aa)

aa....aa：他EADsサーバのクラスタ定義ファイルと不一致があるEADsサーバのIPアドレスとポート番号

説明

他EADsサーバのクラスタ定義ファイルと不一致があるため，クラスタが構築できませんでした。

対処

他EADsサーバのクラスタ定義ファイルと内容が一致しているかどうかを確認してください。

このエラーが再発する場合は，他クラスタからハートビートを受けている場合があります。その場合は，異なるクラスタ間で配信先IPアドレスまたは配信先ポート番号の指定（クラスタ定義のeads.cluster.heartbeat.addressパラメタおよびeads.cluster.heartbeat.portパラメタの指定）が重複していないか確認してください。

KDEA04507-E

Initialization of the distribution manager has failed because a data discrepancy in the table-boot id was detected. (node = aa....aa)

aa....aa：ほかのクラスタを構成するEADsサーバのIPアドレスとポート番号

説明

ほかのクラスタを構成するEADsサーバが検出されたため，クラスタが構築できませんでした。

対処

全EADsサーバを終了し，終了したことを確認した上で，全EADsサーバを再起動してください。

このエラーが再発する場合は，他クラスタからハートビートを受けている場合があります。その場合は，異なるクラスタ間で配信先IPアドレスまたは配信先ポート番号の指定（クラスタ定義のeads.cluster.heartbeat.addressパラメタおよびeads.cluster.heartbeat.portパラメタの指定）が重複していないか確認してください。

KDEA04508-E

An attempt to initialize the distribution manager failed because a time-out occurred. (node-list = aa....aa)

aa....aa：時間内に起動が完了しなかったEADsサーバのIPアドレスとポート番号のリスト

説明

指定された時間内に，クラスタを構成する全EADsサーバの起動が完了しなかったため，クラスタが構築できませんでした。

対処

メッセージ中に記されたEADsサーバが起動していたかどうかを確認してください。

それでも発生する場合は，クラスタを構成する全EADsサーバが開始するまでの最大待ち時間の指定（サーバ定義のeads.cluster.boot.timeoutパラメタの指定）を次に示す時間の合計となるように，設定し直してください。

全EADsサーバを起動する際，最初のEADsサーバを起動するためのコマンドを実行してから，最後のEADsサーバを起動するためのコマンドを実行するまでに掛かった時間

ハートビート送信間隔（サーバ定義のeads.cluster.heartbeat.intervalパラメタの指定）を5倍した時間

KDEA04509-E

An attempt to terminate the distribution manager in advance failed because an unexpected exception occurred. (error-code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，クラスタが構築できませんでした。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04510-I

Termination of the distribution manager will now start.

説明

クラスタの終了処理を開始します。

KDEA04511-I

Termination of the distribution-manager succeeded.

説明

クラスタの終了処理が完了しました。

KDEA04512-E

Termination of the distribution manager failed because an unexpected exception occurred. (error-code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，クラスタの終了処理が完了しませんでした。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04513-I

Initialization of the distribution manager in developer mode will now start.

説明

Developerの初期化処理を開始します。

KDEA04514-I

Initialize of the distribution manager in developer mode succeeded.

説明

Developerの初期化処理が成功しました。

KDEA04515-E

An attempt to initialize the distribution-manager on developer mode has failed because an unexpected exception occurred. (error-code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，Developerの初期化処理が失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04517-I

Termination of the distribution-manager in developer mode will now start.

説明

Developerの終了処理を開始します。

KDEA04518-I

Termination of the distribution manager in developer mode was successful.

説明

Developerの終了処理が成功しました。

KDEA04519-E

Termination of the distribution manager in developer mode failed because an unexpected exception occurred. (error-code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，Developerの終了処理が失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04520-E

Heartbeat reception processing for the distribution manager failed because an unexpected exception occurred. (error-code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，ハートビートの受信処理が失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04521-E

Heartbeat reception processing for the distribution manager was terminated because an unknown message was received. (delivery-source-address = aa....aa, delivery-source-port = bb....bb, message-length = cc....cc, message-header = dd....dd)

aa....aa：配信元のIPアドレス

bb....bb：配信元のポート番号

cc....cc：メッセージ長

dd....dd：メッセージのヘッダ（最大6バイト分を16進形式で表示します）

説明

不明なメッセージを受信したため，ハートビートの受信処理が中断しました。

対処

他システムのメッセージ配信と混線しないように，クラスタ定義のeads.cluster.heartbeat.addressパラメタおよびeads.cluster.heartbeat.portパラメタを見直してください。

KDEA04522-E

Transmission of the heartbeat failed because an unexpected exception occurred. (error-code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，ハートビートの送信が失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04523-E

An attempt by the server manager to accept a client's request failed because an unexpected exception occurred. (error-code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，EADsクライアントからのリクエストの受け付けに失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04524-I

A cluster node (aa....aa) determined that another node (bb....bb) has stopped.

aa....aa：EADsサーバダウンを確定したEADsサーバのIPアドレスとポート番号

bb....bb：EADsサーバダウンと確定されたEADsサーバのIPアドレスとポート番号

説明

EADsサーバaa....aaが，EADsサーバbb....bbのダウンを確定しました。

KDEA04527-E

An attempt to notify the server manager of the stoppage of a local node failed because an unexpected exception occurred. (error-code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，自EADsサーバへの停止通知処理が失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04528-E

Initialization of the distribution manager failed because 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パラメタに指定されているかどうかを確認してください。

KDEA04531-E

Initialization of the distribution manager failed because a position was duplicated. (duplication-node-1 = aa....aa, duplication-node-2 = bb....bb)

aa....aa：位置が重複したEADsサーバ1のIPアドレスとポート番号

bb....bb：位置が重複したEADsサーバ2のIPアドレスとポート番号

説明

クラスタを構成するEADsサーバの位置が重複したため，クラスタが構築できませんでした。

対処

クラスタ定義のeads.node.＜EADsサーバID＞.positionパラメタに重複がないかどうかを確認してください。

KDEA04532-E

Initialization of the distribution manager failed because the cluster definition file failed to be read.

説明

クラスタ定義ファイルの読み込みに失敗したため，クラスタが構築できませんでした。

次の要因が考えられます。

クラスタ定義ファイルが破損している。

クラスタ定義ファイルが開けない。

クラスタ定義ファイル内に不正なUnicodeエスケープがある。

対処

システム運用管理者権限でクラスタ定義ファイルを開けることを確認してください。

また，クラスタ定義ファイルの内容が正しく読み取れるかどうかを確認してください。

KDEA04535-E

Heartbeat transmission processing failed due to a network failure. (error-message = aa....aa)

aa....aa：JavaVMからスローされた例外のエラーメッセージ

説明

ネットワーク障害が発生したため，ハートビートの送信に失敗しました。

対処

クラスタ定義のeads.cluster.heartbeat.addressパラメタに指定したマルチキャストアドレスに対して，エラーが発生したEADsサーバでマルチキャストの送信が成功することを確認してください。

それでも繰り返し発生する場合は，弊社問い合わせ窓口にご連絡ください。

KDEA04536-E

Initialization of the distribution manager failed because an error occurred during initialization of a socket for heartbeat transmission processing. (error-message = aa....aa)

aa....aa：JavaVMからスローされた例外のエラーメッセージ

説明

ハートビート送信用のソケットの初期化中に障害が発生したため，クラスタが構築できませんでした。

対処

ファイルディスクリプタが見積もりどおりに設定されているかどうかを確認してください。

クラスタ定義のeads.cluster.heartbeat.addressパラメタに指定したマルチキャストアドレスに対して，エラーが発生したEADsサーバでマルチキャストの送信が成功することを確認してください。

それでも繰り返し発生する場合は，弊社問い合わせ窓口にご連絡ください。

KDEA04537-E

Initialization of the distribution manager failed because an error occurred during initialization of a socket for heartbeat reception processing. (error-message = aa....aa)

aa....aa：JavaVMからスローされた例外のエラーメッセージ

説明

ハートビート受信用のソケットの初期化中に障害が発生したため，クラスタが構築できませんでした。

対処

ファイルディスクリプタが見積もりどおりに設定されているかどうかを確認してください。

クラスタ定義のeads.cluster.heartbeat.addressパラメタに指定したマルチキャストアドレスで，エラーが発生したEADsサーバでマルチキャストの受信が成功することを確認してください。

それでも繰り返し発生する場合は，弊社問い合わせ窓口にご連絡ください。

KDEA04539-E

Heartbeat reception processing failed because of a network failure. (error-message = aa....aa)

aa....aa：JavaVMからスローされた例外のエラーメッセージ

説明

ネットワーク障害が発生したため，ハートビートの受信に失敗しました。

対処

クラスタ定義のeads.cluster.heartbeat.addressパラメタに指定したマルチキャストアドレスで，エラーが発生したEADsサーバでマルチキャストの受信が成功することを確認してください。

それでも繰り返し発生する場合は，弊社問い合わせ窓口にご連絡ください。

KDEA04540-E

Initialization of the distribution manager failed because a client connection address was duplicated. (duplicated server 1 = aa....aa, duplicated server 2 = bb....bb)

aa....aa：IPアドレスとポート番号の組み合わせが重複したEADsサーバ1

bb....bb：IPアドレスとポート番号の組み合わせが重複したEADsサーバ2

説明

クラスタ定義ファイルに同一のEADsサーバが複数登録されているため，クラスタが構築できませんでした。

対処

クラスタ定義のeads.node.＜EADsサーバID＞.addressパラメタとeads.node.＜EADsサーバID＞.portパラメタに重複がないかどうかを確認してください。

KDEA04541-E

Initialization of the distribution manager failed because the cluster-definition file contains only part of the server position specification.

説明

クラスタ定義ファイル中に，EADsサーバの位置の指定が一部しか存在しないため，クラスタが構築できませんでした。

対処

クラスタ定義のeads.node.＜EADsサーバID＞.positionパラメタを指定する場合は，クラスタを構成する全EADsサーバの位置を指定してください。省略する場合は，全EADsサーバの位置の指定を省略してください。

KDEA04661-E

Initialization of the distribution manager failed. (error code = aa....aa)

aa....aa：エラーコード

説明

分散制御機能の初期化処理に失敗しました。

対処

EADsサーバを再起動してください。

KDEA04663-E

Initialization failed because an unexpected exception occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，初期化処理に失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04664-E

Initialization of the distribution manager failed because 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パラメタの指定値）を下げてください。

KDEA04691-I

Restoration of cache data will now start. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

キャッシュのデータの復旧を開始します。

KDEA04692-I

The cache data were successfully restored. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

キャッシュのデータの復旧に成功しました。

KDEA04693-E

Restoration of cache data failed. (cache name = aa....aa, error code = bb....bb)

aa....aa：キャッシュ名

bb....bb：エラーコード

説明

キャッシュのデータの復旧に失敗しました。

対処

次の要因が考えられます。

データの送信元EADsサーバでエラーが発生した。

通信エラーが発生した。

予期しないエラーが発生した。

要因を特定し，問題を取り除いたあと，次のどちらかのコマンドを実行して，EADsサーバを復旧してください。

ezstart -rコマンド

ezserver -rコマンド

KDEA04696-E

Restoration of the server failed. (error code = aa....aa)

aa....aa：エラーコード

説明

EADsサーバの復旧に失敗しました。

次の要因が考えられます。

ほかの運用操作が実行中である。

復旧が実行できない状態である。

ezstartコマンドまたはezserverコマンドを，-rまたは--recoveryオプションを指定しないで実行した。

キャッシュの生成に失敗した。

キャッシュデータの送信サーバでエラーが発生した。

通信エラーが発生した。

予期しないエラーが発生した。

対処

次の手順で対処してください。

次のメッセージが出力されている場合は，出力されたメッセージを参照して対処してください。

・KDEA07101-E

・KDEA07115-E

・KDEA07116-E

・KDEA07121-E

・KDEA07127-E

・KDEA07128-E

eztool statusコマンドを実行して，クラスタの状態を確認してください。

EADsサーバの排他状態がlockの場合，排他が解除されていません。この場合は，eztool unlockコマンドを実行してください。

ezstartコマンドまたはezserverコマンドを，-rまたは--recoveryオプションを指定して再実行してください。

クラスタの状態が，クラスタ動作不能（NOT_AVAILABLE）またはクラスタ一部稼働中（PARTIALLY_AVAILABLE）の場合，EADsサーバは復旧できません。クラスタ内の全EADsサーバを再起動する必要があります。

KDEA04697-E

Restoration of the server failed because a required server is not running.

説明

EADsサーバの復旧に必要な起動中のEADsサーバが存在しないため，復旧できません。

データを保持しているEADsサーバが存在しないか，または多重度以下の数のEADsサーバしか起動していません。

対処

次の手順で対処してください。

eztool exportコマンドを実行して，必要なデータをファイルに書き出してください。

起動中のすべてのEADsサーバを終了してください。

すべてのEADsサーバを開始してください。

KDEA04698-E

An error occurred in the data-sending server during restoration or when referencing a cluster. (error code = aa....aa)

aa....aa：エラーコード

説明

EADsサーバのクラスタ参加処理中，または復旧処理中に，データの送信元EADsサーバでエラーが発生しました。

対処

次の要因が考えられます。

ほかの運用操作が実行中であった。

合意メッセージの送信キューがオーバーフローした。

送信タイムアウトが発生した。

通信エラーが発生した。

予期しないエラーが発生した。

要因を特定し，問題を取り除いたあと，EADsサーバを再起動してください。

または，次のどちらかのコマンドを実行して，EADsサーバを復旧してください。

ezstart -rコマンド

ezserver -rコマンド

KDEA04701-E

The master switchover failed because an unexpected exception occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，復旧に失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04702-E

The master switchover failed because an unexpected interrupt exception occurred.

説明

予期しない割り込み例外が発生したため，復旧に失敗しました。

対処

弊社問い合わせ窓口にご連絡ください。

KDEA04703-E

The master switchover failed because a cache operation failed.

説明

データ操作に失敗したため，復旧に失敗しました。

対処

直前に出力されたメッセージを確認してください。

KDEA04705-E

A restoration failed because an unexpected exception occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，復旧に失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04707-E

An initialization or online restoration failed because an unexpected exception occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，初期化処理または復旧処理に失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04722-E

Initialization of the cluster-monitoring function failed because 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アドレス，または配信先ポート番号を見直してください。

KDEA04724-E

Failure detection processing stopped because an unexpected exception occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外によって，生存確認が中断しました。

対処

弊社問い合わせ窓口にご連絡ください。

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.cluster.heartbeat.intervalパラメタおよびeads.cluster.heartbeat.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.cluster.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から例外がスローされたため，ソケットが作成できませんでした。

対処

ファイルディスクリプタが見積もりどおりに設定されているかどうかを確認してください。

それでも繰り返し発生する場合は，弊社問い合わせ窓口にご連絡ください。

KDEA04729-E

Cluster monitoring failed because an unexpected exception occurred.

説明

予期しない例外が発生したため，クラスタ監視に失敗しました。

対処

弊社問い合わせ窓口にご連絡ください。

KDEA04730-E

Failure detection processing failed because an unexpected exception occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，生存確認に失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04752-I

Processing to isolate a server was successful. (server ID = aa....aa)

aa....aa：縮退したEADsサーバのEADsサーバID

説明

縮退を完了しました。

KDEA04753-E

Processing to isolate a server failed because an unexpected exception occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，縮退に失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04754-E

Processing to isolate a server failed because an unexpected interrupt exception occurred.

説明

予期しない割り込み例外が発生したため，縮退に失敗しました。

対処

弊社問い合わせ窓口にご連絡ください。

KDEA04755-E

Processing to isolate a server failed because a cache operation failed.

説明

データ操作に失敗したため，縮退に失敗しました。

対処

直前に出力されたメッセージを確認してください。

KDEA04757-E

Processing to isolate a server failed because an unexpected exception occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，縮退に失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04781-I

A server will now be added to the cluster. (server ID = aa....aa)

aa....aa：クラスタに追加されるEADsサーバのEADsサーバID

説明

クラスタにEADsサーバを追加します。

KDEA04782-E

Addition of a server to the cluster failed because an unexpected error occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しないエラーが発生したため，クラスタへのEADsサーバの追加に失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04783-I

Processing to isolate a server will now start. (server ID = aa....aa)

aa....aa：縮退するEADsサーバのEADsサーバID

説明

eztool isolateコマンドが実行されました。EADsサーバが縮退します。

KDEA04784-E

Processing to isolate a server failed because an unexpected error occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しないエラーが発生したため，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サーバが停止した。

要因を特定し，問題を取り除いたあと，コマンドを再実行してください。

KDEA04788-E

Acquisition of a command lock failed because an unexpected error occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しないエラーが発生したため，コマンドの排他を取得できませんでした。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

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コマンドを実行して，排他を解除してください。

KDEA04791-E

An attempt to release a lock failed because an unexpected error occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しないエラーが発生したため，コマンドの排他を解除できませんでした。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

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.

説明

排他の完了待ちが終了しました。

KDEA04796-E

The wait for the lock to end failed because an unexpected exception occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

排他完了待ち中に予期しない例外が発生しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04797-E

The wait for the lock to end failed because an unexpected interrupt exception occurred.

説明

排他完了待ち中に予期しない割り込み例外が発生しました。

対処

弊社問い合わせ窓口にご連絡ください。

KDEA04798-E

The cluster configuration management failed because an unexpected exception occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，クラスタの構成管理に失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04799-E

Processing to isolate a server will now start. (server ID = aa....aa)

aa....aa：縮退するEADsサーバのEADsサーバID

説明

クラスタ監視によってEADsサーバダウンを検知しました。EADsサーバが縮退します。

対処

次のどちらかのコマンドを実行して，縮退したEADsサーバを復旧してください。

ezstart -rコマンド

ezserver -rコマンド

KDEA04800-E

This server will be stopped because a gap in the data could not be filled.

説明

クラスタで合意処理が継続できなくなったため，このEADsサーバを停止します。

対処

次のどちらかのコマンドを実行して，停止した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 = bb....bb - cc....cc)

aa....aa：キャッシュ名

bb....bb：レンジの左端

cc....cc：レンジの右端

説明

クラスタで合意処理が継続できなくなったため，このEADsサーバを停止します。

対処

次のどちらかのコマンドを実行して，停止したEADsサーバを復旧してください。

ezstart -rコマンド

ezserver -rコマンド

または，クラスタ内の全EADsサーバを再起動してください。

KDEA04802-E

The cluster configuration management failed because an unexpected exception occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，クラスタの構成管理に失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04803-E

A lock failed because an unexpected exception occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，排他に失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04804-E

Unlock processing failed because an unexpected exception occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，排他の解除に失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

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サーバの復旧によって，クラスタを通常状態に戻すことはできません。

KDEA04806-E

Cluster configuration management failed because an unexpected interrupt exception occurred.

説明

予期しない割り込み例外が発生したため，クラスタの構成管理に失敗しました。

対処

弊社問い合わせ窓口にご連絡ください。

KDEA04807-E

Cluster configuration management failed because 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. (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 detail = aa....aa)

aa....aa：JavaVMからスローされた例外のエラーメッセージ

説明

予期しない例外が発生しました。

対処

弊社問い合わせ窓口にご連絡ください。

KDEA04813-E

A sequence number is too large and exceeded the upper limit.

説明

長期運用によって，内部的なシーケンス番号がオーバーフローしました。

対処

弊社問い合わせ窓口にご連絡ください。

KDEA04814-W

Server-to-server communication timeout. (timeout value = aa....aa, destination addresses = bb....bb)

aa....aa：タイムアウト時間

bb....bb：送信先EADsサーバのIPアドレス一覧

説明

EADsサーバ間の通信でタイムアウトが発生しました。

次の要因が考えられます。

通信先EADsサーバ，ホスト，またはネットワークで障害が発生している。

タイムアウト時間が適切でない。

対処

タイムアウトした原因を取り除いてください。

または，サーバ定義のeads.cache.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.consensus.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.consensus.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.consensus.external.heapsizeパラメタの値を変更してください。

KDEA04824-W

During the building of a consensus on distribution among the servers in the range, processing to delete part of the history in order to resolve a memory shortage in the history storage area failed. (requested size = aa....aa, cache name = bb....bb, range = cc....cc - dd....dd)

aa....aa：更新操作の履歴を格納するために要求されたサイズ

bb....bb：キャッシュ名

cc....cc：レンジの左端

dd....dd：レンジの右端

説明

更新操作の履歴を格納する領域が不足し，既存の更新操作の履歴を削除しようとしましたが，それでも要求されたサイズの領域を確保できなかったため，合意処理を中断しました。

対処

ネットワーク機器に故障がないか確認したあと，しばらくしてから再実行してください。

それでも繰り返し発生する場合は，更新操作の履歴が格納される領域のサイズが見積もりどおりに設定されているか確認してください。

十分なサイズが設定されていない場合は，サーバ定義のeads.consensus.external.heapsizeパラメタの値を変更してください。

KDEA04825-E

During the building of a consensus on distribution among the servers in the range, processing to delete part of the history in order to resolve a memory shortage in the history storage area failed. (requested size = aa....aa, cache name = bb....bb, range = cc....cc - dd....dd)

aa....aa：更新操作の履歴を格納するために要求されたサイズ

bb....bb：キャッシュ名

cc....cc：レンジの左端

dd....dd：レンジの右端

説明

更新操作の履歴を格納する領域が不足し，既存の更新操作の履歴を削除しようとしましたが，それでも要求されたサイズの領域を確保できなかったため，すべての処理が異常終了しました。

対処

更新操作の履歴が格納される領域のサイズが見積もりどおりに設定されているか確認してください。

十分なサイズが設定されていない場合は，サーバ定義のeads.consensus.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.consensus.message.send.queuesizeパラメタ，またはeads.consensus.message.send.max_queuedatasizeパラメタの指定値を大きくしてください。

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送信の初期化処理に失敗しました。

対処

出力された例外のエラーメッセージから要因を特定し，問題を取り除いてください。また，ファイルディスクリプタが見積もりどおりに設定されているかどうかを確認してください。

KDEA04875-E

UDP reception failed because an unexpected exception occurred. (error message = aa....aa)

aa....aa：エラーメッセージ

説明

予期しない例外が発生したため，UDP受信処理に失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04876-E

UDP transmission failed because an unexpected exception occurred. (error message = aa....aa)

aa....aa：エラーメッセージ

説明

予期しない例外が発生したため，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 value = aa....aa, ReceiveBufferSize = bb....bb)

aa....aa：パラメタの指定値

bb....bb：実際に使用される合意メッセージの受信バッファサイズ

説明

サーバ定義のeads.consensus.message.buffersizeパラメタに指定した値が，OSで使用できるウィンドウサイズを超えたため，指定値と異なる受信バッファサイズが使用されました。

KDEA04884-I

A different SendBufferSize from the property value will be used. (property value = aa....aa, SendBufferSize = bb....bb)

aa....aa：パラメタの指定値

bb....bb：実際に使用される合意メッセージの送信バッファサイズ

説明

サーバ定義のeads.consensus.message.buffersizeパラメタに指定した値が，OSで使用できるウィンドウサイズを超えたため，指定値と異なる送信バッファサイズが使用されました。

KDEA04885-E

TCP/IP reception failed because an unexpected exception occurred. (error message = aa....aa)

aa....aa：エラーメッセージ

説明

予期しない例外が発生したため，TCP/IP受信処理に失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04886-E

TCP/IP transmission failed because an unexpected exception occurred. (error message = aa....aa)

aa....aa：エラーメッセージ

説明

予期しない例外が発生したため，TCP/IP送信処理に失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

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.restore.dataReceiver.read.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.restore.dataSender.send.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サーバを再起動してから，コマンドを再実行してください。

KDEA04963-E

Cache creation failed because an unexpected exception occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，キャッシュの作成に失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

KDEA04964-E

Cache deletion failed because an unexpected exception occurred. (error code = aa....aa)

aa....aa：エラーコード

説明

予期しない例外が発生したため，キャッシュの削除に失敗しました。

対処

メッセージ中に記されたエラーコードを添えて，弊社問い合わせ窓口にご連絡ください。

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コマンドを再実行してください。

KDEA04969-E

Initialization of the distribution manager failed because this JavaVM does not support the SHA-1 message digest algorithm.

説明

JavaVMがSHA-1メッセージダイジェストアルゴリズムをサポートしていないため，分散制御機能の初期化処理に失敗しました。

対処

EADsサーバを再インストールしてください。

KDEA04970-E

Initialization of the distribution manager failed because this JavaVM does not support the UTF-8 character set.

説明

JavaVMがUTF-8文字セットをサポートしていないため，分散制御機能の初期化処理に失敗しました。

対処

EADsサーバを再インストールしてください。

24.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環境に問題がないかどうかを確認してください。

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.disk.filesize

eads.cache.disk.blocksize

また，キャッシュファイルを作成したあとで，次に示すキャッシュ定義のパラメタの指定値を小さい値に変更することはできません。

eads.cache.disk.filenum

対処

正しいキャッシュファイルを指定しているかどうかを見直してください。

または，別のキャッシュファイルを使用してください。

キャッシュ定義ファイルの値が誤っている場合は，次に示すキャッシュ定義のパラメタの指定値を見直し，正しい値に変更したあと，EADsサーバを再起動してください。

eads.cache.type

eads.cache.disk.filesize

eads.cache.disk.blocksize

eads.cache.disk.filenum

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：詳細情報

説明

キャッシュファイルの書き込み中に問題が発生したため，キャッシュファイルの書き込みに失敗しました。

対処

詳細情報および直前に出力されたメッセージから要因を特定し，問題を取り除いてください。

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コマンドを再実行すると，復旧できることがあります。

KDEA07117-E

A data discrepancy between the cluster property file and the cache file was detected. (cache name = aa....aa, parameter = bb....bb, cluster property value = cc....cc, cache file value = dd....dd)

aa....aa：キャッシュ名

bb....bb：パラメタ名

cc....cc：クラスタ定義ファイルの値

dd....dd：キャッシュファイルの値

説明

クラスタ定義ファイルの値とキャッシュファイルの値に不一致があります。

キャッシュファイルを作成したあとで，次に示すクラスタ定義のパラメタを変更することはできません。

eads.server.max_key_size

eads.replication.factor

対処

正しいキャッシュファイルを指定しているかどうかを見直してください。

または，別のキャッシュファイルを使用してください。

クラスタ定義ファイルの値が誤っている場合は，次に示すクラスタ定義のパラメタの指定値を見直し，正しい値に変更したあと，EADsサーバを再起動してください。

eads.server.max_key_size

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.disk.filesize

eads.cache.disk.filenum

eads.cache.disk.blocksize

対処

次に示すキャッシュ定義のパラメタの指定値を見直し，正しい値に変更したあと，EADsサーバを再起動してください。

eads.cache.type

eads.cache.disk.filesize

eads.cache.disk.filenum

eads.cache.disk.blocksize

KDEA07122-E

The area for writing the cache data files is insufficient. (cache name = aa....aa)

aa....aa：キャッシュ名

説明

キャッシュデータファイルの書き込み領域が不足しました。

対処

キャッシュ定義のeads.cache.disk.filenumパラメタの指定値を大きくしたあと，EADsサーバを再起動してください。

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コマンド

24.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.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.management.command.timeoutパラメタまたはeads.management.long_running.command.timeoutパラメタを確認して，必要に応じて値を変更してから，再実行してください。

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：エラー詳細情報

説明

キャッシュの作成に失敗しました。

対処

キャッシュ数が上限（64個）に達していないか確認してください。

指定したキャッシュ名が適切かどうかを確認してください。

エラー詳細情報を確認してください。

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：エラー詳細情報

説明

クラスタの構成に関する定義が正しくありません。

対処

クラスタ定義ファイルが存在するか確認してください（Developerにはクラスタ定義ファイルはありません）。

エラー詳細情報を確認してください。

クラスタ定義の次のパラメタが適切か確認してください。

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：ユーザファンクション名

説明

指定されたユーザファンクション名が見つかりませんでした。

対処

ユーザファンクション名が適切か確認してください。

KDEA08047-W

The specified event name does not exist. (event 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：エラー詳細情報

説明

キャッシュファイルの削除に失敗しました。

対処

エラー詳細情報を確認してください。

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：エラー詳細情報

説明

キャッシュファイルの作成に失敗しました。

対処

エラー詳細情報を確認してください。

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 --with_deleteecfコマンドでキャッシュを削除する。

eztool resumeコマンドでキャッシュを再開する。

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サーバにメモリキャッシュが存在しなかったため，データの書き出しは実行されませんでした。

KDEA08401-E

Log initialization failed. (log directory = aa....aa)

aa....aa：ログの出力先パス名

説明

ログの初期化に失敗しました。

対処

コマンド定義のeads.logger.dirパラメタに指定したログファイルの出力先パス名が適切かどうかを確認してください。

サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下のspoolディレクトリが適切かどうかを確認してください。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

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 = Unrecognized option: 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 directory of cache files is invalid. (cache properties name = aa....aa, warning details = bb....bb)

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：デフォルト値

説明

パラメタに指定した値が不正です。デフォルト値を使用します。

対処

パラメタに不正な値を指定してします。

必要に応じて，パラメタに指定した値が正しいか確認してください。

なお，このメッセージはスクリプトから出力されるため，ログファイルには出力されません。

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.management.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：エラー詳細情報

説明

データの読み込みに失敗しました。

対処

エラー詳細情報を確認してください。

ストアデータファイルが適切かどうかを確認してください。

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：エラー詳細情報

説明

キャッシュファイルの削除に失敗しました。

対処

エラー詳細情報を確認してください。

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：エラー詳細情報

説明

キャッシュファイルの作成に失敗しました。

対処

エラー詳細情報を確認してください。

KDEA08598-I

Exporting was not executed because no memory cache exist on the server. (management client = aa....aa)

aa....aa：コマンド実行元のIPアドレス

説明

EADsサーバにメモリキャッシュが存在しなかったため，データの書き出しは実行されませんでした。

対処

エラー詳細情報を確認してください。

24.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ディレクトリ下に格納されています。

サンプルプログラムでは，「20.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.＜ユーザファンクション名＞.max_execute_threadsパラメタに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.＜ユーザファンクション名＞.max_execute_threadsパラメタに1を指定し，最大同時実行スレッド数を制限してください。

付録B　Developerで使用する定義ファイルで設定される値

次の定義ファイルの一部のパラメタについては，実行環境で使用する定義ファイルとは設定される値が異なります。

サーバ定義ファイル

クラスタ定義ファイル

起動設定ファイル

コマンド定義ファイル

付録B.1　サーバ定義ファイル

Developerで使用するサーバ定義で設定される値を，次の表に示します。

次の表に示す値を省略したり，範囲外の値に変更したりした場合は，実行環境で使用する定義ファイルと同じデフォルト値が設定されます。

なお，実行環境で使用するサーバ定義と設定される値が異なるパラメタを太字で表記しています。

表B‒1　Developerで使用するサーバ定義で設定される値

項番

分類

パラメタ名

設定される値

1

通信

（「7.3　通信に依存するパラメタの設計」参照）

eads.server.address

localhost

2

eads.server.port

24600

3

eads.consensus.message.port

24633

4

eads.restore.port

24632

5

eads.management.port

24620

6

ログファイル

（「7.4　ログファイルに依存するパラメタの設計」参照）

eads.logger.dir

＜運用ディレクトリ＞¥logs

7

eads.logger.message.rotationStyle

Wrap

8

eads.logger.message.filesize

1048576

9

eads.logger.message.filenum

2

10

eads.logger.message.console.enable

true

11

eads.logger.exception.rotationStyle

Wrap

12

eads.logger.exception.filesize

1048576

13

eads.logger.exception.filenum

2

14

eads.logger.user.rotationStyle

Wrap

15

eads.logger.user.filesize

1048576

16

eads.logger.user.filenum

2

17

eads.logger.userException.rotationStyle

Wrap

18

eads.logger.userException.filesize

1048576

19

eads.logger.userException.filenum

2

20

eads.logger.cache.rotationStyle

Wrap

21

eads.logger.cache.filesize

1048576

22

eads.logger.cache.filenum

2

23

eads.prf.enable

false

24

eads.statistics.interval

60

25

eads.statistics.backupnum

7

26

バックアップファイル

（「7.6　バックアップファイルに依存するパラメタの設計」参照）

eads.storeData.dir

＜運用ディレクトリ＞¥store

27

メモリ・バッファ

（「9.1　メモリ・バッファに関連するパラメタの設計」参照）

eads.connection.buffersize

4096

28

eads.server.max.datasize.enable

false

29

eads.server.max.datasize

67108864

30

eads.consensus.external.heapsize

30

31

eads.management.resume.sendSize

1048576

32

スレッドプールおよびコネクションプール（「9.2　スレッドプールおよびコネクションプールに関連するパラメタの設計」参照）

eads.server.max_connections

10

33

eads.server.cache.max_execute_threads

10

34

eads.server.function_container.max_execute_threads

10

35

タイムアウト

（「9.3　タイムアウトに関連するパラメタの設計」参照）

eads.connection.timeout

3000

36

eads.server.session.keepAlive.timeout

3600

37

eads.management.resume.sendInterval

0

38

キャッシュ

（「7.7　キャッシュの運用に依存するパラメタの設計」参照）

eads.cache.disk.getError.isolate.enable

true

付録B.2　クラスタ定義ファイル

Developerで使用するクラスタ定義で設定される値を，次の表に示します。

次の表に示す値を省略したり，範囲外の値に変更したりした場合は，実行環境で使用する定義ファイルと同じデフォルト値が設定されます。

なお，実行環境で使用するクラスタ定義と設定される値が異なるパラメタを太字で表記しています。

表B‒2　Developerで使用するクラスタ定義で設定される値

項番

分類

パラメタ名

設定される値

1

バックアップファイル

（「7.6　バックアップファイルに依存するパラメタの設計」参照）

eads.storeData.generation.count

2

2

eads.storeData.stop_command.generation.count

1

3

メモリ・バッファ

（「9.1　メモリ・バッファに関連するパラメタの設計」参照）

eads.server.max_key_size

1024

4

eads.cache.prepare.num

1

付録B.3　起動設定ファイル

Developerで使用する起動設定で設定される値を，次の表に示します。

次の表に示す値を省略したり，範囲外の値に変更したりした場合は，実行環境で使用する定義ファイルと同じデフォルト値が設定されます。ただし，eads.java.heapsizeパラメタおよびeads.java.external.heapsizeパラメタについては，次の表に示す値がデフォルト値となります。

なお，実行環境で使用する起動設定と設定される値が異なるパラメタを太字で表記しています。

表B‒3　Developerで使用する起動設定で設定される値

項番

分類

パラメタ名

設定される値

1

ログファイル

（「7.4　ログファイルに依存するパラメタの設計」参照）

eads.prf.filesize

16384

2

eads.prf.filenum

16

3

eads.prf.level

0x40000000

4

eads.java.log.filesize

8

5

eads.java.log.filenum

4

6

メモリ・バッファ

（「9.1　メモリ・バッファに関連するパラメタの設計」参照）

eads.prf.buffersize

2048

7

eads.java.heapsize

384

8

eads.java.external.heapsize

128

9

eads.java.permanent.size

83

付録B.4　コマンド定義ファイル

Developerで使用するコマンド定義で設定される値を，次の表に示します。

次の表に示す値を省略したり，範囲外の値に変更したりした場合は，実行環境で使用する定義ファイルと同じデフォルト値が設定されます。

なお，実行環境で使用するコマンド定義と設定される値が異なるパラメタを太字で表記しています。

表B‒4　Developerで使用するコマンド定義で設定される値

項番

分類

パラメタ名

設定される値

1

ログファイル

（「7.4　ログファイルに依存するパラメタの設計」参照）

eads.logger.dir

＜運用ディレクトリ＞¥logs

2

eads.logger.message.rotationStyle

Wrap

3

eads.logger.message.filesize

1048576

4

eads.logger.message.filenum

2

5

eads.logger.exception.rotationStyle

Wrap

6

eads.logger.exception.filesize

1048576

7

eads.logger.exception.filenum

2

8

タイムアウト

（「9.3　タイムアウトに関連するパラメタの設計」参照）

eads.management.connect.timeout

3000

9

eads.management.read.timeout

10000

10

eads.management.command.timeout

60

11

eads.management.long_running.read.timeout

180000

12

eads.management.long_running.command.timeout

180

付録B.5　キャッシュ定義ファイル

Developerで使用するキャッシュ定義で設定される値を，次の表に示します。

次の表に示す値を省略したり，範囲外の値に変更したりした場合は，実行環境で使用する定義ファイルと同じデフォルト値が設定されます。

表B‒5　Developerで使用するキャッシュ定義で設定される値

項番

分類

パラメタ名

設定される値

1

キャッシュ

（「7.7　キャッシュの運用に依存するパラメタの設計」参照）

eads.cache.disk.info.dir

＜運用ディレクトリ＞¥store

2

eads.cache.disk.blocksize

1

3

eads.cache.restore.dataSender.sendInterval

1000

4

eads.cache.restore.dataSender.sendSize

102400

付録C　用語解説

（数字）

2Wayキャッシュ

メモリ領域およびディスク領域にデータを格納するキャッシュのことです。

（英字）

EADsクライアント

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

EADsサーバ

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

（カ行）

キャッシュ

EADsで扱うデータ（keyとvalueのペア）を格納する領域のことです。

キャッシュはクラスタ内に最大64個作成できます。

EADsクライアントは，クラスタ内のキャッシュに対してデータ操作を行います。

クラスタ

複数のEADsサーバの集合です。EADsクライアントからは1つの格納先として認識されます。

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

（サ行）

生存確認

ハートビートを送信しないEADsサーバに対して，ダウンしていないかどうかクラスタ内で確認する機能のことです。

生存確認にはTCPプロトコルを使用します。

（タ行）

ディスクキャッシュ

ディスク領域にデータを格納するキャッシュのことです。

（ハ行）

ハートビート

正常に稼働していることを知らせるために，クラスタ内にマルチキャストで配信するパケットのことです。

ハートビートの送信にはUDPプロトコルを使用します。

（マ行）

メモリキャッシュ

メモリ領域にデータを格納するキャッシュのことです。

（ヤ行）

ユーザイベントハンドラ

データの更新操作を契機に，自動的に動作するユーザ処理のプログラムのことです。ユーザが作成して，あらかじめEADsサーバ上に配置しておきます。

データの更新操作と同期して動作することで，外部システムと連携できます。

ユーザファンクション

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

ユーザが作成して，あらかじめEADsサーバ上に配置しておき，EADsクライアントから呼び出すことで実行できます。なお，ユーザファンクションには次の2種類の実行方法があります。

グループ指定による実行方法

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

索引

数字

2Wayキャッシュ[1]

2Wayキャッシュ〔用語解説〕[1]

C

CacheExceptionクラス[1]

CacheManagerクラス[1]

Cacheクラス[1]

ClientInfoインタフェース[1]

close[1]

compaction[1]

containsKey()〔Storeインタフェース〕[1]

cprfed[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]

createcache[1]

D

DataFilterアノテーション[1]

deletecache[1]

deleteecf[1]

deleteesd[1]

descendingKeyIterator()〔Groupインタフェース〕[1]

destroy()〔CacheManagerクラス〕[1]

destroy()〔EventHandlerインタフェース〕[1]

destroy()〔Functionインタフェース〕[1]

E

ead_address構造体[1]

ead_create()[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_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_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_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_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_EVENTHANDLER〔C言語〕[1]

EAD_ERROR_SERVER_EVENTHANDLER〔Java言語〕[1]

EAD_ERROR_SERVER_EVENTHANDLER〔ユーザファンクション〕[1]

EAD_ERROR_SERVER_INCOMPATIBLE_CLUSTERINFO〔C言語〕[1]

EAD_ERROR_SERVER_INCOMPATIBLE_CLUSTERINFO〔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_UNAVAILABLE〔C言語〕[1]

EAD_ERROR_SERVER_UNAVAILABLE〔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()[1]

ead_execute_node_function()[1]

ead_get_node()[1]

ead_get_nodelist()[1]

ead_get_slave_nodelist()[1]

ead_get()[1]

ead_init_client_n()[1]

ead_init_client()[1]

ead_nodelist構造体[1]

ead_node構造体[1]

ead_object構造体[1]

EAD_OK〔C言語〕[1]

ead_put_array_value()[1]

ead_put()[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_comm_trace[n].log〔ファイル名〕[1]

eads_client_maintenance[n].log〔ファイル名〕[1]

eads_client_message[n].log〔ファイル名〕[1]

eads_cluster.properties〔ファイル名〕[1]

eads_data_[EADsサーバID]_[キャッシュ名]_[レンジID]_[nnnnn].ecf[1]

eads_dist_maintenance[n].log〔ファイル名〕[1]

eads_event_stats_[n].csv〔ファイル名〕[1]

eads_event_stats.csv〔ファイル名〕[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_management_exception.log〔ファイル名〕[1]

eads_management_exception[n].log〔ファイル名〕[1]

eads_management_maintenance[n].log〔ファイル名〕[1]

eads_management_message.log〔ファイル名〕[1]

eads_management_message[n].log〔ファイル名〕[1]

eads_management.properties〔ファイル名〕[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_single_[xxx]_[EADs サーバID].esd〔ファイル名〕[1]

eads_start.properties〔ファイル名〕[1]

eads_stats_[n].csv〔ファイル名〕[1]

eads_stats.csv〔ファイル名〕[1]

eads_stop_[YYYYMMDDhhmmss]_[EADs サーバID].esd〔ファイル名〕[1]

eads_user_exception.log〔ファイル名〕[1]

eads_user_exception[n].log〔ファイル名〕[1]

eads_user_message.log〔ファイル名〕[1]

eads_user_message[n].log〔ファイル名〕[1]

eads.cache.consensus.timeout[1]

eads.cache.prepare.num[1]

eads.cache.restore.dataSender.sendInterval[1]

eads.cache.restore.dataSender.sendSize[1]

eads.client.＜接続先EADsサーバ＞.address[1]

eads.client.＜接続先EADsサーバ＞.port[1]

eads.client.clusterInfo.update.interval[1]

eads.client.node.list[1]

eads.cluster.assertive.threshold[1]

eads.cluster.boot.timeout[1]

eads.cluster.controller.cache.max_execute_threads[1]

eads.cluster.failureDetector.connect.timeout[1]

eads.cluster.failureDetector.port[1]

eads.cluster.failureDetector.read.timeout[1]

eads.cluster.failureDetector.retry[1]

eads.cluster.heartbeat.address[1]

eads.cluster.heartbeat.interval[1]

eads.cluster.heartbeat.port[1]

eads.cluster.heartbeat.timeout[1]

eads.connection.buffersize〔クライアント定義〕[1]

eads.connection.buffersize〔サーバ定義〕[1]

eads.connection.receive.timeout[1]

eads.connection.send.timeout[1]

eads.connection.timeout[1]

eads.connectionPool.exceedMaxSizeError.enable[1]

eads.connectionPool.poolsize[1]

eads.consensus.external.heapsize[1]

eads.consensus.fillgap.copy.dataSize[1]

eads.consensus.fillgap.copy.timeout[1]

eads.consensus.message.buffersize[1]

eads.consensus.message.port[1]

eads.consensus.message.send.max_queuedatasize[1]

eads.consensus.message.send.queuesize[1]

eads.function.＜ユーザファンクション名＞.max_execute_threads[1]

eads.gracefulstop.wait_time[1]

eads.java.external.heapsize[1]

eads.java.heapsize[1]

eads.java.log.filenum[1]

eads.java.log.filesize[1]

eads.java.permanent.size[1]

eads.logger.cache.filenum[1]

eads.logger.cache.filesize[1]

eads.logger.cache.rotationStyle[1]

eads.logger.commTrace.commNo.prefix[1]

eads.logger.commTrace.enable[1]

eads.logger.commTrace.filenum[1]

eads.logger.commTrace.filesize[1]

eads.logger.dir〔クライアント定義〕[1]

eads.logger.dir〔コマンド定義〕[1]

eads.logger.dir〔サーバ定義〕[1]

eads.logger.exception.filenum〔コマンド定義〕[1]

eads.logger.exception.filenum〔サーバ定義〕[1]

eads.logger.exception.filesize〔コマンド定義〕[1]

eads.logger.exception.filesize〔サーバ定義〕[1]

eads.logger.exception.rotationStyle〔コマンド定義〕[1]

eads.logger.exception.rotationStyle〔サーバ定義〕[1]

eads.logger.message.console.enable〔クライアント定義〕[1]

eads.logger.message.console.enable〔サーバ定義〕[1]

eads.logger.message.filenum〔クライアント定義〕[1]

eads.logger.message.filenum〔コマンド定義〕[1]

eads.logger.message.filenum〔サーバ定義〕[1]

eads.logger.message.filesize〔クライアント定義〕[1]

eads.logger.message.filesize〔コマンド定義〕[1]

eads.logger.message.filesize〔サーバ定義〕[1]

eads.logger.message.rotationStyle〔コマンド定義〕[1]

eads.logger.message.rotationStyle〔サーバ定義〕[1]

eads.logger.user.filenum[1]

eads.logger.user.filesize[1]

eads.logger.user.rotationStyle[1]

eads.logger.userException.filenum[1]

eads.logger.userException.filesize[1]

eads.logger.userException.rotationStyle[1]

eads.management.command.timeout[1]

eads.management.long_running.command.timeout[1]

eads.management.long_running.read.timeout[1]

eads.management.port[1]

eads.management.resume.sendInterval[1]

eads.management.resume.sendSize[1]

eads.node.＜EADsサーバID＞.address[1]

eads.node.＜EADsサーバID＞.port[1]

eads.node.＜EADsサーバID＞.position[1]

eads.prf.buffersize[1]

eads.prf.enable[1]

eads.prf.filenum[1]

eads.prf.filesize[1]

eads.prf.level[1]

eads.replication.factor[1]

eads.restore.connection.buffersize[1]

eads.restore.dataReceiver.read.timeout[1]

eads.restore.dataSender.send.timeout[1]

eads.restore.dataSender.sendInterval[1]

eads.restore.dataSender.sendSize[1]

eads.restore.port[1]

eads.server.address[1]

eads.server.cache.max_execute_threads[1]

eads.server.function_container.max_execute_threads[1]

eads.server.max_connections[1]

eads.server.max_key_size[1]

eads.server.max.datasize[1]

eads.server.max.datasize.enable[1]

eads.server.port[1]

eads.server.session.keepAlive.timeout[1]

eads.statistics.backupnum[1]

eads.statistics.compaction.effect.division[1]

eads.statistics.interval[1]

eads.storeData.dir[1]

eads.storeData.generation.count[1]

eads.storeData.stop_command.generation.count[1]

EADsStoreExceptionクラス[1]

EADsクライアント[1]

EADsクライアント〔用語解説〕[1]

EADsサーバ[1]

EADsサーバの開始[1]

EADsサーバの強制終了[1]

EADsサーバの縮退[1]

EADsサーバの縮退処理[1]

EADsサーバのフォアグラウンドでの開始[1]

EADsサーバ〔用語解説〕[1]

EADsサーバを開始する

キャッシュを新規に作成する[1]

ファイルからデータを読み込んでキャッシュを作成する[1]

EADsサーバを終了する

メモリ上のデータを破棄する[1]

メモリ上のデータをファイルに書き出す[1]

ehjavalog[nn].log〔ファイル名〕[1]

EventContextインタフェース[1]

EventHandlerインタフェース[1]

execfunc[1]

execute()〔EventHandlerインタフェース〕[1]

execute()〔Functionインタフェース〕[1]

executeFunction()（EADsサーバおよび受信タイムアウト指定）〔Cacheクラス〕[1]

executeFunction()（EADsサーバ指定）〔Cacheクラス〕[1]

executeFunction()（グループおよび受信タイムアウト指定）〔Cacheクラス〕[1]

executeFunction()（グループ指定）〔Cacheクラス〕[1]

Explicitヒープ[1]

export[1]

ezserver[1]

ezstart[1]

eztool[1]

eztoolコマンドのサブコマンド[1]

F

FunctionContextインタフェース[1]

Functionインタフェース[1]

G

get[1]

get()（Keyインタフェース指定）〔Groupインタフェース〕[1]

get()（文字列指定）〔Groupインタフェース〕[1]

get()〔Cacheクラス〕[1]

getAddress()〔Nodeクラス〕[1]

getAddress()〔ServerInfoインタフェース〕[1]

getArgument()〔FunctionContextインタフェース〕[1]

getCache()〔CacheManagerクラス〕[1]

getCacheDataFileRemainingSize()〔ServerInfoインタフェース〕[1]

getCacheDataFileSpecifiedNumber()〔ServerInfoインタフェース〕[1]

getCacheDataFileSpecifiedSize()〔ServerInfoインタフェース〕[1]

getCacheDataFileUnusedNumber()〔ServerInfoインタフェース〕[1]

getCacheName()〔EventContextインタフェース〕[1]

getCacheName()〔FunctionContextインタフェース〕[1]

getCacheNames()〔ServerInfoインタフェース〕[1]

getCacheType()〔ServerInfoインタフェース〕[1]

getClientInfo()〔EventContextインタフェース〕[1]

getClientInfo()〔FunctionContextインタフェース〕[1]

getEHeapSize()〔ServerInfoインタフェース〕[1]

getEHeapUsageSize()〔ServerInfoインタフェース〕[1]

getErrorCode()〔CacheExceptionクラス〕[1]

getErrorCode()〔EADsStoreExceptionクラス〕[1]

getFunctionName()〔InitConfigインタフェース〕[1]

getFunctionProperty()〔InitConfigインタフェース〕[1]

getFunctionPropertyNames()〔InitConfigインタフェース〕[1]

getGroup()（グループ名指定）〔Storeインタフェース〕[1]

getGroup()〔Storeインタフェース〕[1]

getGroupName()〔EventContextインタフェース〕[1]

getGroupName()〔FunctionContextインタフェース〕[1]

getGroupNameSet()〔Groupインタフェース〕[1]

getGroupNameSet()〔Storeインタフェース〕[1]

getInitConfig()〔FunctionContextインタフェース〕[1]

getIp()〔ClientInfoインタフェース〕[1]

getKey()〔EventContextインタフェース〕[1]

getLastUpdateTime()（Keyインタフェース指定）〔Groupインタフェース〕[1]

getLastUpdateTime()（文字列指定）〔Groupインタフェース〕[1]

getLastUpdateTime()〔EventContextインタフェース〕[1]

getLogger()〔EventContextインタフェース〕[1]

getLogger()〔FunctionContextインタフェース〕[1]

getMethod()〔EventContextインタフェース〕[1]

getName()〔ServerInfoインタフェース〕[1]

getNode()〔CacheManagerクラス〕[1]

getNodeId()〔Nodeクラス〕[1]

getNodeList()〔CacheManagerクラス〕[1]

getPid()〔ClientInfoインタフェース〕[1]

getposition[1]

getPosition()〔Nodeクラス〕[1]

getServerInfo()〔FunctionContextインタフェース〕[1]

getServerName()〔EventContextインタフェース〕[1]

getServerName()〔FunctionContextインタフェース〕[1]

getSlaveNodeList()〔CacheManagerクラス〕[1]

getStore()（キャッシュ名指定）〔FunctionContextインタフェース〕[1]

getStore()〔FunctionContextインタフェース〕[1]

getValue()〔EventContextインタフェース〕[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()〔EventHandlerインタフェース〕[1]

init()〔Functionインタフェース〕[1]

InitConfigインタフェース[1]

InitializeExceptionクラス[1]

InternalClientExceptionクラス[1]

InternalServerExceptionクラス[1]、[2]

isEnable()〔Nodeクラス〕[1]

isNewData()〔EventContextインタフェース〕[1]

isolate[1]

J

javacore[PID].[YYMMDDhhmmss].txt〔ファイル名〕[1]

javalog[nn].log〔ファイル名〕[1]

Javaヒープ[1]

Javaログファイル[1]

K

keyIterator()〔Groupインタフェース〕[1]

Keyインタフェース[1]

L

listcache[1]

listecf[1]

listesd[1]

listevent[1]

listfunc[1]

log()（形式1）〔UserLoggerインタフェース〕[1]

log()（形式2）〔UserLoggerインタフェース〕[1]

lowerDescendingKeyIterator()〔Groupインタフェース〕[1]

N

Nodeクラス[1]

O

open[1]

OperationFilterアノテーション[1]

P

prf_[nnn]〔ファイル名〕[1]

PRFデーモン[1]

PRFトレース情報の編集出力[1]

PRFトレースに出力される情報[1]

PRFトレースの仕組み[1]

PRFトレースの取得方法[1]

PRFトレースファイル[1]

Priorityアノテーション[1]

put[1]

put()（Keyインタフェース指定）〔Groupインタフェース〕[1]

put()（文字列指定）〔Groupインタフェース〕[1]

put()〔Cacheクラス〕[1]

putStackTrace()（形式1）〔UserLoggerインタフェース〕[1]

putStackTrace()（形式2）〔UserLoggerインタフェース〕[1]

put〔サブコマンド〕[1]

putとreplaceの違い[1]

R

remove[1]

remove()（Keyインタフェース指定）〔Groupインタフェース〕[1]

remove()（文字列指定）〔Groupインタフェース〕[1]

remove()〔Cacheクラス〕[1]

removeCache()〔CacheManagerクラス〕[1]

remove〔サブコマンド〕[1]

replace[1]

replace()（Keyインタフェース指定）〔Groupインタフェース〕[1]

replace()（文字列指定）〔Groupインタフェース〕[1]

replace()〔Cacheクラス〕[1]

resume[1]

S

ServerCommunicationExceptionクラス[1]

ServerInfoインタフェース[1]

snapshot[1]

status[1]

stop[1]

Storeインタフェース[1]

T

threaddump[1]

toString()〔Groupインタフェース〕[1]

toString()〔Keyインタフェース〕[1]

toString()〔Nodeクラス〕[1]

U

unlock[1]

update[1]

update()（Keyインタフェース指定）〔Groupインタフェース〕[1]

update()（文字列指定）〔Groupインタフェース〕[1]

update()〔Cacheクラス〕[1]

UserLoggerインタフェース[1]

UserOperationExceptionクラス[1]、[2]

い

イベントID[1]

インストールディレクトリ〔Developer〕[1]

う

運用ディレクトリ[1]

運用ディレクトリ〔Developer〕[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]

す

ストアデータファイル[1]

ストアデータファイルキー[1]

ストアデータファイルの一覧表示[1]

ストアデータファイルの削除[1]

スレッドダンプ[1]

スレッドダンプの出力[1]

スレッドダンプの取得方法[1]

スレッドプール[1]

せ

生存確認[1]

生存確認〔用語解説〕[1]

ち

チューニングパラメタ[1]

つ

通信トレースファイル[1]

て

定義ファイル（EADsクライアント）[1]

定義ファイル（EADsサーバ）[1]

停止状態[1]

停止中[1]

ディスクキャッシュ[1]

ディスクキャッシュ〔用語解説〕[1]

ディレクトリ構成〔Developer〕[1]

ディレクトリ構成〔EADsクライアント〕[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]

ら

ラップアラウンド方式[1]

れ

例外ログファイル[1]

レスポンス低下

原因の調査方法[1]

障害情報の取得[1]

列挙型MethodType[1]

列挙型OperationType[1]

列挙型PriorityLevel[1]

レンジ[1]

ろ

ログ，設定情報，ハードウェア情報，およびネットワーク情報の収集[1]