use of org.apache.geode.internal.cache.InternalCache in project geode by apache.
the class HARegionQueueDUnitTest method createCache.
/**
* create cache
*/
private InternalCache createCache() throws CacheException {
Properties props = new Properties();
DistributedSystem ds = getSystem(props);
ds.disconnect();
ds = getSystem(props);
InternalCache cache = null;
cache = (InternalCache) CacheFactory.create(ds);
if (cache == null) {
// TODO: never throw an anonymous inner class
throw new CacheException("CacheFactory.create() returned null ") {
};
}
return cache;
}
use of org.apache.geode.internal.cache.InternalCache in project geode by apache.
the class AcceptorImplDUnitTest method testAcceptorImplCloseCleansUp.
@Test
public void testAcceptorImplCloseCleansUp() throws Exception {
Properties props = new Properties();
props.setProperty(MCAST_PORT, "0");
try (InternalCache cache = (InternalCache) new CacheFactory(props).create()) {
RegionFactory<Object, Object> regionFactory = cache.createRegionFactory(RegionShortcut.PARTITION);
final CacheServer server = cache.addCacheServer();
final int port = AvailablePortHelper.getRandomAvailableTCPPort();
server.setPort(port);
server.start();
regionFactory.create("region1");
assertTrue(cache.isServer());
assertFalse(cache.isClosed());
Awaitility.await("Acceptor is up and running").atMost(10, SECONDS).until(() -> getAcceptorImplFromCache(cache) != null);
AcceptorImpl acceptorImpl = getAcceptorImplFromCache(cache);
cache.close();
Awaitility.await("Acceptor shuts down properly").atMost(10, SECONDS).until(acceptorImpl::isShutdownProperly);
assertTrue(cache.isClosed());
assertFalse(acceptorImpl.isRunning());
}
}
use of org.apache.geode.internal.cache.InternalCache in project geode by apache.
the class RegionCommands method describeRegion.
@CliCommand(value = { CliStrings.DESCRIBE_REGION }, help = CliStrings.DESCRIBE_REGION__HELP)
@CliMetaData(shellOnly = false, relatedTopic = { CliStrings.TOPIC_GEODE_REGION, CliStrings.TOPIC_GEODE_CONFIG })
@ResourceOperation(resource = Resource.CLUSTER, operation = Operation.READ)
public Result describeRegion(@CliOption(key = CliStrings.DESCRIBE_REGION__NAME, optionContext = ConverterHint.REGION_PATH, help = CliStrings.DESCRIBE_REGION__NAME__HELP, mandatory = true) String regionName) {
Result result = null;
try {
if (regionName == null || regionName.isEmpty()) {
return ResultBuilder.createUserErrorResult("Please provide a region name");
}
if (regionName.equals(Region.SEPARATOR)) {
return ResultBuilder.createUserErrorResult(CliStrings.INVALID_REGION_NAME);
}
InternalCache cache = getCache();
ResultCollector<?, ?> rc = CliUtil.executeFunction(getRegionDescription, regionName, CliUtil.getAllMembers(cache));
List<?> resultList = (List<?>) rc.getResult();
// The returned result could be a region description with per member and /or single local
// region
Object[] results = resultList.toArray();
List<RegionDescription> regionDescriptionList = new ArrayList<RegionDescription>();
for (int i = 0; i < results.length; i++) {
if (results[i] instanceof RegionDescriptionPerMember) {
RegionDescriptionPerMember regionDescPerMember = (RegionDescriptionPerMember) results[i];
if (regionDescPerMember != null) {
RegionDescription regionDescription = new RegionDescription();
regionDescription.add(regionDescPerMember);
for (int j = i + 1; j < results.length; j++) {
if (results[j] != null && results[j] instanceof RegionDescriptionPerMember) {
RegionDescriptionPerMember preyRegionDescPerMember = (RegionDescriptionPerMember) results[j];
if (regionDescription.add(preyRegionDescPerMember)) {
results[j] = null;
}
}
}
regionDescriptionList.add(regionDescription);
}
} else if (results[i] instanceof Throwable) {
Throwable t = (Throwable) results[i];
LogWrapper.getInstance().info(t.getMessage(), t);
}
}
if (regionDescriptionList.isEmpty()) {
return ResultBuilder.createUserErrorResult(CliStrings.format(CliStrings.REGION_NOT_FOUND, regionName));
}
CompositeResultData crd = ResultBuilder.createCompositeResultData();
Iterator<RegionDescription> iters = regionDescriptionList.iterator();
while (iters.hasNext()) {
RegionDescription regionDescription = iters.next();
// No point in displaying the scope for PR's
if (regionDescription.isPartition()) {
regionDescription.getCndRegionAttributes().remove(RegionAttributesNames.SCOPE);
} else {
String scope = regionDescription.getCndRegionAttributes().get(RegionAttributesNames.SCOPE);
if (scope != null) {
scope = scope.toLowerCase().replace('_', '-');
regionDescription.getCndRegionAttributes().put(RegionAttributesNames.SCOPE, scope);
}
}
SectionResultData regionSection = crd.addSection();
regionSection.addSeparator('-');
regionSection.addData("Name", regionDescription.getName());
String dataPolicy = regionDescription.getDataPolicy().toString().toLowerCase().replace('_', ' ');
regionSection.addData("Data Policy", dataPolicy);
String memberType = "";
if (regionDescription.isAccessor()) {
memberType = CliStrings.DESCRIBE_REGION__ACCESSOR__MEMBER;
} else {
memberType = CliStrings.DESCRIBE_REGION__HOSTING__MEMBER;
}
regionSection.addData(memberType, CliUtil.convertStringSetToString(regionDescription.getHostingMembers(), '\n'));
regionSection.addSeparator('.');
TabularResultData commonNonDefaultAttrTable = regionSection.addSection().addTable();
commonNonDefaultAttrTable.setHeader(CliStrings.format(CliStrings.DESCRIBE_REGION__NONDEFAULT__COMMONATTRIBUTES__HEADER, memberType));
// Common Non Default Region Attributes
Map<String, String> cndRegionAttrsMap = regionDescription.getCndRegionAttributes();
// Common Non Default Eviction Attributes
Map<String, String> cndEvictionAttrsMap = regionDescription.getCndEvictionAttributes();
// Common Non Default Partition Attributes
Map<String, String> cndPartitionAttrsMap = regionDescription.getCndPartitionAttributes();
writeCommonAttributesToTable(commonNonDefaultAttrTable, CliStrings.DESCRIBE_REGION__ATTRIBUTE__TYPE__REGION, cndRegionAttrsMap);
writeCommonAttributesToTable(commonNonDefaultAttrTable, CliStrings.DESCRIBE_REGION__ATTRIBUTE__TYPE__EVICTION, cndEvictionAttrsMap);
writeCommonAttributesToTable(commonNonDefaultAttrTable, CliStrings.DESCRIBE_REGION__ATTRIBUTE__TYPE__PARTITION, cndPartitionAttrsMap);
// Member-wise non default Attributes
Map<String, RegionDescriptionPerMember> regDescPerMemberMap = regionDescription.getRegionDescriptionPerMemberMap();
Set<String> members = regDescPerMemberMap.keySet();
TabularResultData table = regionSection.addSection().addTable();
// table.setHeader(CliStrings.format(CliStrings.DESCRIBE_REGION__NONDEFAULT__PERMEMBERATTRIBUTES__HEADER,
// memberType));
boolean setHeader = false;
for (String member : members) {
RegionDescriptionPerMember regDescPerMem = regDescPerMemberMap.get(member);
Map<String, String> ndRa = regDescPerMem.getNonDefaultRegionAttributes();
Map<String, String> ndEa = regDescPerMem.getNonDefaultEvictionAttributes();
Map<String, String> ndPa = regDescPerMem.getNonDefaultPartitionAttributes();
// Get all the member-specific non-default attributes by removing the common keys
ndRa.keySet().removeAll(cndRegionAttrsMap.keySet());
ndEa.keySet().removeAll(cndEvictionAttrsMap.keySet());
ndPa.keySet().removeAll(cndPartitionAttrsMap.keySet());
// Scope is not valid for PR's
if (regionDescription.isPartition()) {
if (ndRa.get(RegionAttributesNames.SCOPE) != null) {
ndRa.remove(RegionAttributesNames.SCOPE);
}
}
List<FixedPartitionAttributesInfo> fpaList = regDescPerMem.getFixedPartitionAttributes();
if (!(ndRa.isEmpty() && ndEa.isEmpty() && ndPa.isEmpty()) || fpaList != null) {
setHeader = true;
boolean memberNameAdded = false;
memberNameAdded = writeAttributesToTable(table, CliStrings.DESCRIBE_REGION__ATTRIBUTE__TYPE__REGION, ndRa, member, memberNameAdded);
memberNameAdded = writeAttributesToTable(table, CliStrings.DESCRIBE_REGION__ATTRIBUTE__TYPE__EVICTION, ndEa, member, memberNameAdded);
memberNameAdded = writeAttributesToTable(table, CliStrings.DESCRIBE_REGION__ATTRIBUTE__TYPE__PARTITION, ndPa, member, memberNameAdded);
writeFixedPartitionAttributesToTable(table, "", fpaList, member, memberNameAdded);
// Fix for #46767
// writeAttributeToTable(table, "", "", "", "");
}
}
if (setHeader == true) {
table.setHeader(CliStrings.format(CliStrings.DESCRIBE_REGION__NONDEFAULT__PERMEMBERATTRIBUTES__HEADER, memberType));
}
}
result = ResultBuilder.buildResult(crd);
} catch (FunctionInvocationTargetException e) {
result = ResultBuilder.createGemFireErrorResult(CliStrings.format(CliStrings.COULD_NOT_EXECUTE_COMMAND_TRY_AGAIN, CliStrings.DESCRIBE_REGION));
} catch (Exception e) {
String errorMessage = CliStrings.format(CliStrings.EXCEPTION_CLASS_AND_MESSAGE, e.getClass().getName(), e.getMessage());
result = ResultBuilder.createGemFireErrorResult(errorMessage);
}
return result;
}
use of org.apache.geode.internal.cache.InternalCache in project geode by apache.
the class WanCommands method statusGatewaySender.
@CliCommand(value = CliStrings.STATUS_GATEWAYSENDER, help = CliStrings.STATUS_GATEWAYSENDER__HELP)
@CliMetaData(relatedTopic = CliStrings.TOPIC_GEODE_WAN)
@ResourceOperation(resource = Resource.CLUSTER, operation = Operation.READ)
public Result statusGatewaySender(@CliOption(key = CliStrings.STATUS_GATEWAYSENDER__ID, mandatory = true, optionContext = ConverterHint.GATEWAY_SENDER_ID, help = CliStrings.STATUS_GATEWAYSENDER__ID__HELP) String senderId, @CliOption(key = CliStrings.STATUS_GATEWAYSENDER__GROUP, optionContext = ConverterHint.MEMBERGROUP, help = CliStrings.STATUS_GATEWAYSENDER__GROUP__HELP) String[] onGroup, @CliOption(key = CliStrings.STATUS_GATEWAYSENDER__MEMBER, optionContext = ConverterHint.MEMBERIDNAME, help = CliStrings.STATUS_GATEWAYSENDER__MEMBER__HELP) String[] onMember) {
Result result = null;
if (senderId != null)
senderId = senderId.trim();
try {
InternalCache cache = getCache();
SystemManagementService service = (SystemManagementService) ManagementService.getExistingManagementService(cache);
GatewaySenderMXBean bean = null;
CompositeResultData crd = ResultBuilder.createCompositeResultData();
TabularResultData availableSenderData = crd.addSection(CliStrings.SECTION_GATEWAY_SENDER_AVAILABLE).addTable(CliStrings.TABLE_GATEWAY_SENDER);
TabularResultData notAvailableSenderData = crd.addSection(CliStrings.SECTION_GATEWAY_SENDER_NOT_AVAILABLE).addTable(CliStrings.TABLE_GATEWAY_SENDER);
Set<DistributedMember> dsMembers = CliUtil.findMembers(onGroup, onMember);
if (dsMembers.isEmpty()) {
return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE);
}
for (DistributedMember member : dsMembers) {
if (cache.getDistributedSystem().getDistributedMember().getId().equals(member.getId())) {
bean = service.getLocalGatewaySenderMXBean(senderId);
} else {
ObjectName objectName = service.getGatewaySenderMBeanName(member, senderId);
bean = service.getMBeanProxy(objectName, GatewaySenderMXBean.class);
}
if (bean != null) {
buildSenderStatus(member.getId(), bean, availableSenderData);
} else {
buildSenderStatus(member.getId(), bean, notAvailableSenderData);
}
}
result = ResultBuilder.buildResult(crd);
} catch (Exception e) {
LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e));
result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage());
}
return result;
}
use of org.apache.geode.internal.cache.InternalCache in project geode by apache.
the class WanCommands method stopGatewayReceiver.
@CliCommand(value = CliStrings.STOP_GATEWAYRECEIVER, help = CliStrings.STOP_GATEWAYRECEIVER__HELP)
@CliMetaData(relatedTopic = CliStrings.TOPIC_GEODE_WAN)
@ResourceOperation(resource = Resource.DATA, operation = Operation.MANAGE)
public Result stopGatewayReceiver(@CliOption(key = CliStrings.STOP_GATEWAYRECEIVER__GROUP, optionContext = ConverterHint.MEMBERGROUP, help = CliStrings.STOP_GATEWAYRECEIVER__GROUP__HELP) String[] onGroup, @CliOption(key = CliStrings.STOP_GATEWAYRECEIVER__MEMBER, optionContext = ConverterHint.MEMBERIDNAME, help = CliStrings.STOP_GATEWAYRECEIVER__MEMBER__HELP) String[] onMember) {
Result result = null;
try {
InternalCache cache = getCache();
SystemManagementService service = (SystemManagementService) ManagementService.getExistingManagementService(cache);
GatewayReceiverMXBean receieverBean = null;
TabularResultData resultData = ResultBuilder.createTabularResultData();
Set<DistributedMember> dsMembers = CliUtil.findMembers(onGroup, onMember);
if (dsMembers.isEmpty()) {
return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE);
}
for (DistributedMember member : dsMembers) {
ObjectName gatewayReceiverObjectName = MBeanJMXAdapter.getGatewayReceiverMBeanName(member);
if (gatewayReceiverObjectName != null) {
receieverBean = service.getMBeanProxy(gatewayReceiverObjectName, GatewayReceiverMXBean.class);
if (receieverBean != null) {
if (receieverBean.isRunning()) {
receieverBean.stop();
accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_OK, CliStrings.format(CliStrings.GATEWAY_RECEIVER_IS_STOPPED_ON_MEMBER_0, new Object[] { member.getId() }));
} else {
accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR, CliStrings.format(CliStrings.GATEWAY_RECEIVER_IS_NOT_RUNNING_ON_MEMBER_0, new Object[] { member.getId() }));
}
} else {
accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR, CliStrings.format(CliStrings.GATEWAY_RECEIVER_IS_NOT_AVAILABLE_ON_MEMBER_0, new Object[] { member.getId() }));
}
} else {
accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR, CliStrings.format(CliStrings.GATEWAY_RECEIVER_IS_NOT_AVAILABLE_ON_MEMBER_0, new Object[] { member.getId() }));
}
}
result = ResultBuilder.buildResult(resultData);
} catch (CommandResultException crex) {
result = handleCommandResultException(crex);
} catch (Exception e) {
LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e));
result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage());
}
return result;
}
Aggregations