まあ、GemFireのドキュメントによると、 あなたのGfshコマンドは正しいようです... put
put --key=1 --value=('exchange':'xyz','Product':'abc','Account':'xyz','Quantity':'123L') --region=/trade - -value-class=model.TradeDetails
ただし、あなたのkey
価値1
は少し疑わしいです。java.lang.Long
「/trade」リージョンで のキー制約を使用した場合は、 で--key-class
オプションも指定する必要がありますput
。
私は次のことをうまく実行できました...
$ gfsh
_________________________ __
/ _____/ ______/ ______/ /____/ /
/ / __/ /___ /_____ / _____ /
/ /__/ / ____/ _____/ / / / /
/______/_/ /______/_/ /_/ v8.2.0
Monitor and Manage GemFire
gfsh>connect
Connecting to Locator at [host=localhost, port=10334] ..
Connecting to Manager at [host=10.99.199.3, port=1099] ..
Successfully connected to: [host=10.99.199.3, port=1099]
gfsh>list members
Member Count : 1
Coordinator : SpringGemFireDataServer (10.99.199.3(SpringGemFireDataServer:77179)<v0>:47312)
Name | Id
----------------------- | ----------------------------------------------------
SpringGemFireDataServer | 10.99.199.3(SpringGemFireDataServer:77179)<v0>:47312
gfsh>describe member --name=SpringGemFireDataServer
Name : SpringGemFireDataServer
Id : 10.99.199.3(SpringGemFireDataServer:77179)<v0>:47312
Host : 10.99.199.3
Regions : People
PID : 77179
Groups :
Used Heap : 229M
Max Heap : 3641M
Working Dir : /Users/jblum/pivdev/spring-data-gemfire-tests-workspace/spring-data-gemfire-tests/target
Log file : /Users/jblum/pivdev/spring-data-gemfire-tests-workspace/spring-data-gemfire-tests/target
Locators : localhost[10334]
Cache Server Information
Server Bind : localhost
Server Port : 40404
Running : true
Client Connections : 0
gfsh>list regions
List of regions
---------------
People
gfsh>describe region --name=/People
..........................................................
Name : People
Data Policy : partition
Hosting Members : SpringGemFireDataServer
Non-Default Attributes Shared By Hosting Members
Type | Name | Value
------ | ---- | -----
Region | size | 0
gfsh>
gfsh>put --region=/People --key=1 --key-class=java.lang.Long --value=('firstName':'Jon','lastName':'Doe') --value-class=org.spring.data.gemfire.app.beans.Person
Result : true
Key Class : java.lang.Long
Key : 1
Value Class : org.spring.data.gemfire.app.beans.Person
Value
------
<NULL>
gfsh>
gfsh>describe region --name=/People
..........................................................
Name : People
Data Policy : partition
Hosting Members : SpringGemFireDataServer
Non-Default Attributes Shared By Hosting Members
Type | Name | Value
------ | ---- | -----
Region | size | 1
「/People」リージョンのキー タイプjava.lang.Long
と値タイプは であることに注意してくださいorg.spring.data.gemfire.app.beans.Person
。
でも、「Jon Doe」を読み返そうとしたら、Gfshが吐き出しました...
gfsh>get --region=/People --key=1 --key-class=java.lang.Long --value-class=org.spring.data.gemfire.app.beans.Person
Exception occurred. null
ただし、(Spring Boot ベースの) GemFire クライアント キャッシュ アプリケーション( SpringGemFireClientの基本構成) を作成して、Person を正常に引き戻しました。
Person is [Jon Doe]
model.TradeDetails
Jackson マッピング アノテーションを使用してアプリケーション ドメイン タイプにアノテーションを付けてみることもできますが、 Gfshが実際にそれらを使用してマッピングを実行するかどうかは定かではありません。でも、それも悪くないでしょう。どちらにしても。
私のサーバーは、 SpringGemFireServerに基づくこのSpringGemFireDataServerで開始されたことに注意してください。
これが役に立てば幸いです(少し:-)。
乾杯!ジョン