Я хочу поместить данные, подобные PDX, в регион с GFSH

В GFSH я хочу запустить команду put, чтобы создать ключ и значение с набором значений, подобных PDX... Например:

put --key=('test1') --value=('Client':'XYZ', 'MsgType':'R', 'OrdType':'C', 'SecurityType':'FOR', 'Symbol':'EUR/USD', 'QuoteReqId':'test1', 'OrderQty':'100000', 'OrderQty2':'0', 'Reference1':'GFSH Test', 'StreamingQuoteDuration':'30', 'FutSettDate':'20200102', 'Currency':'EUR') --region=/myRegion

Это возвращает ошибку

Вы не можете указать ':'R', 'OrdType':'C', 'SecurityType':'FOR', 'Symbol':'EUR/USD', 'QuoteReqId':'test1', 'OrderQty':'100000', 'OrderQty2':'0', 'Reference1':'GFSH Test', 'StreamingQuoteDuration':'30', 'FutSettDate':'20200102', 'Currency':'EUR')' в качестве другого значения для значения по умолчанию ('') в одной команде. Вы уже указали "MsgType" ранее. Вы забыли добавить в кавычки значение другого варианта?

2 ответа

Решение

Я попробовал ответить @Juan Ramos выше, но это не совсем сработало. Пробелы не проблема - что заставляет начальную работу поставить, так это добавление двойных кавычек вокруг строки значения в скобках:

put --key=('test1') --value="('Client':'XYZ', 'MsgType':'R', 'OrdType':'C', 'SecurityType':'FOR', 'Symbol':'EUR/USD', 'QuoteReqId':'test1', 'OrderQty':'100000', 'OrderQty2':'0', 'Reference1':'GFSH Test', 'StreamingQuoteDuration':'30', 'FutSettDate':'20200102', 'Currency':'EUR')" --region=/myRegion

Это по-прежнему помещает строку в область и не делает PDX-представление данных.

Вам в основном нужно удалить все пробелы внутри value вариант, все работает нормально, как только вы это сделаете:

gfsh>put --key=('test1') --value=('Client':'XYZ','MsgType':'R','OrdType':'C','SecurityType':'FOR','Symbol':'EUR/USD','QuoteReqId':'test1','OrderQty':'100000','OrderQty2':'0','Reference1':'GFSHTest','StreamingQuoteDuration':'30','FutSettDate':'20200102','Currency':'EUR') --region=/myRegion
Result      : true
Key Class   : java.lang.String
Key         : {'test1'}
Value Class : java.lang.String
Old Value   : null


gfsh>query --query="SELECT * FROM /myRegion"
Result : true
Limit  : 100
Rows   : 1




Result
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{'Client':'XYZ','MsgType':'R','OrdType':'C','SecurityType':'FOR','Symbol':'EUR/USD','QuoteReqId':'test1','OrderQty':'100000','OrderQty2':'0','Reference1':'GFSHTest','StreamingQuoteDuration':'30','FutSettDate':'20200102','Currency':'EUR'}

Ура.

Другие вопросы по тегам