Вы должны включить подписку в вашем пуле. Просто добавьте атрибут subscription-enabled = "true" в конфигурацию пула.
Примечание. Ваш клиент должен поддерживать транзакции. На кеш-серверах лучше использовать динамические регионы. Из клиента вызывать удаленную функцию.
Пример:
Функция:
public class CreateRegionFunction extends FunctionAdapter {
@Override
public void execute(FunctionContext fc) {
String name = (String) fc.getArguments();
Region reg = DynamicRegionFactory.get().createDynamicRegion("/parent",
name);
if (reg == null) {
fc.getResultSender().lastResult("ERROR");
} else {
fc.getResultSender().lastResult("DONE");
}
}
@Override
public String getId() {
return "create-region-function";
}
}
Сторона сервера:
CreateRegionFunction creatRegFun = new CreateRegionFunction();
FunctionService.registerFunction(creatRegFun);
Добавить динамический регион-фабрику в кеш вашего сервера:
<dynamic-region-factory />
Клиентская сторона:
FunctionService.onServer(PoolManager.find("poolName"))
.withArgs("child")
.execute("create-region-function")
.getResult();
В этом случае использование DynamicRegionFactory не обязательно, вы можете использовать RegionFactory и создавать корневые области.