+ All Categories
Home > Documents > Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test...

Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test...

Date post: 10-Oct-2020
Category:
Upload: others
View: 13 times
Download: 0 times
Share this document with a friend
133
Pivotal Cloud Cache 1.5 Note: The support period for Pivotal Cloud Cache (PCC) 1.5 has expired, and this version is no longer supported. To stay up to date with the latest software and security updates, upgrade to a supported version. © Copyright Pivotal Software Inc, 2013-2019
Transcript
Page 1: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

PivotalCloudCache1.5

Note:ThesupportperiodforPivotalCloudCache(PCC)1.5hasexpired,andthisversionisnolongersupported.Tostayuptodatewiththelatestsoftwareandsecurityupdates,upgradetoasupportedversion.

©CopyrightPivotalSoftwareInc,2013-2019

Page 2: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

23

13454748515258646974818284869299

102107109110119126127129130

TableofContents

TableofContentsPivotalCloudCachePivotalCloudCacheOperatorGuidePivotalCloudCacheDeveloperGuideViewingAllPlansAvailableforPivotalCloudCacheCreatingaPivotalCloudCacheServiceInstanceSetUpWAN-SeparatedServiceInstancesSetUpaBidirectionalSystemSetUpaUnidirectionalSystemSetUpanAdditionalBidirectionalInteractionSetUpanAdditionalUnidirectionalInteractionSettingUpServersforanInlineCacheDeletingaServiceInstanceUpdatingaPivotalCloudCacheServiceInstancegfshCommandRestrictionsAccessingaServiceInstanceUsingPivotalCloudCacheDevelopinganAppUnderTLSConnectingaSpringBootApptoPivotalCloudCachewithSessionStateCachingCreatingContinuousQueriesUsingSpringDataGemFireApplicationDevelopmentDesignPatternsRegionDesignExampleApplicationsASimpleJavaAppTroubleshootingPivotalCloudCacheReleaseNotes

©CopyrightPivotalSoftwareInc,2013-present 2 1.5

Page 3: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

PivotalCloudCacheInthistopic

Overview

ProductSnapshot

PCCandOtherPCFServices

PCCArchitectureGemFireBasics

ThePCCCluster

MemberCommunication

WorkflowtoSetUpaPCCService

NetworkingforOn-DemandServices

ServiceNetworkRequirementDefaultNetworkandServiceNetwork

RequiredNetworkingRulesforOn-DemandServices

PCCInstancesAcrossWAN

RecommendedUsageandLimitations

Security

Feedback

OverviewPivotalCloudCache(PCC)isahigh-performance,high-availabilitycachinglayerforPivotalCloudFoundry(PCF).PCCoffersanin-memorykey-valuestore.Itdeliverslow-latencyresponsestoalargenumberofconcurrentdataaccessrequests.

PCCprovidesaservicebrokertocreatein-memorydataclustersondemand.TheseclustersarededicatedtothePCFspaceandtunedforspecificusecasesdefinedbyyourserviceplan.Serviceoperatorscancreatemultipleplanstosupportdifferentusecases.

PCCusesPivotalGemFire.ThePivotalGemFireAPIDocumentation detailstheAPIforclientaccesstodataobjectswithinPivotalGemFire.

Thisdocumentationperformsthefollowingfunctions:

DescribesthefeaturesandarchitectureofPCC

©CopyrightPivotalSoftwareInc,2013-present 3 1.5

Page 4: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

ProvidesthePCFoperatorwithinstructionsforinstalling,configuring,andmaintainingPCC

Providesappdevelopersinstructionsforchoosingaserviceplan,creating,anddeletingPCCserviceinstances

Providesappdevelopersinstructionsforbindingapps

ProductSnapshotThefollowingtableprovidesversionandversion-supportinformationaboutPCC:

Element Details

Version v1.5.4

Releasedate May8,2019

Softwarecomponentversion GemFirev9.6.2

CompatibleOpsManagerversion(s) v2.3.xandv2.2.x

CompatiblePivotalApplicationService(PAS)*version(s) v2.3.xandv2.2.x

IaaSsupport AWS,Azure,GCP,OpenStack,andvSphere

IPsecsupport Yes

RequiredBOSHstemcellversion Xenial250.9oramorerecentversion

MinimumJavabuildpackversionrequiredforapps v3.13

*AsofPCFv2.0,ElasticRuntimeisrenamedPivotalApplicationService(PAS).

PCCandOtherPCFServicesAswellasPivotalCloudCache,otherPCFservicesofferon-demandserviceplans.Theseplansletdevelopersprovisionserviceinstanceswhentheywant.

Thesecontrastwiththeolderpre-provisionedserviceplans,whichrequireoperatorstoprovisiontheserviceinstancesduringinstallationandconfigurationthroughtheservicetileUI.

ThefollowingtablelistswhichPCFservicesofferon-demandandpre-provisionedserviceplans:

PCFservicetileStandaloneproductrelatedtotheservice

Supportson-demand Supportspre-provisioned

Yes.Onlyrecommendedfortest

©CopyrightPivotalSoftwareInc,2013-present 4 1.5

Page 5: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

RabbitMQforPCF PivotalRabbitMQ Yes environments.

RedisforPCF Redis YesYes(shared-VMplan).Onlyrecommendedfortestenvironments.

MySQLforPCF MySQL Yes No

PivotalCloudCache(PCC)

PivotalGemFire Yes No

Forservicesthatofferbothon-demandandpre-provisionedplans,youcanchoosetheplanyouwanttousewhenconfiguringthetile.

PCCArchitecture

GemFireBasics

PivotalGemFireisthedatastorewithinPivotalCloudCache(PCC).AsmallamountofadministrativeGemFiresetupisrequiredforaPCCserviceinstance,andanyappwillusealimitedportionoftheGemFireAPI.

ThePCCarchitecturalmodelisaclient-servermodel.Theclientsareappsormicroservices,andtheserversareasetofGemFireserversmaintainedbyaPCCserviceinstance.TheGemFireserversprovidealow-latency,consistent,fault-tolerantdatastorewithinPCC.

GemFireholdsdatainkey/valuepairs.Eachpairiscalledanentry.Entriesarelogicallygroupedintosetscalledregions.Aregionisamap(ordictionary)datastructure.

Theapp(client)usesPCCasacache.Acachelookup(read)isagetoperationonaGemFireregion.ThecacheoperationofacachewriteisaputoperationonaGemFireregion.TheGemFirecommand-line

©CopyrightPivotalSoftwareInc,2013-present 5 1.5

Page 6: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

interface,called gfsh ,facilitatesregionadministration.Use gfsh tocreateanddestroyregionswithinthePCCserviceinstance.

ThePCCCluster

PCCdeployscacheclustersthatusePivotalGemFiretoprovidehighavailability,replicationguarantees,andeventualconsistency.

Whenyoufirstspinupacluster,youhavethreelocatorsandatleastfourservers.

graphTD;ClientsubgraphP-CloudCacheClustersubgraphlocatorsLocator1Locator2Locator3endsubgraphserversServer1Server2Server3Server4endendClient==>Locator1Client-->Server1Client-->Server2Client-->Server3Client-->Server4

Whenyouscaletheclusterup,youhavemoreservers,increasingthecapacityofthecache.Therearealwaysthreelocators.

graphTD;ClientsubgraphP-CloudCacheClustersubgraphlocatorsLocator1Locator2Locator3endsubgraphserversServer1Server2Server3Server4Server5Server6Server7endendClient==>Locator1Client-->Server1Client-->Server2Client-->Server3Client-->Server4Client-->Server5Client-->Server6Client-->Server7

MemberCommunication

Whenaclientconnectstothecluster,itfirstconnectstoalocator.ThelocatorreplieswiththeIPaddressofaserverforittotalkto.Theclientthenconnectstothatserver.

sequenceDiagramparticipantClientparticipantLocatorparticipantServer1Client->>+Locator:WhatserverscanItalkto?Locator->>-Client:Server1Client->>Server1:Hello!

Whentheclientwantstoreadorwritedata,itsendsarequestdirectlytotheserver.

sequenceDiagramparticipantClientparticipantServer1Client->>+Server1:What’sthevalueforKEY?Server1->>-Client:VALUE

Iftheserverdoesn’thavethedatalocally,itfetchesitfromanotherserver.

sequenceDiagramparticipantClientparticipantServer1participantServer2Client->>+Server1:What’sthevalueforKEY?Server1->>+Server2:What’sthevalueforKEY?Server2->>-Server1:VALUEServer1->>-Client:VALUE

©CopyrightPivotalSoftwareInc,2013-present 6 1.5

Page 7: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

WorkflowtoSetUpaPCCServiceTheworkflowforthePCFadminsettingupaPCCserviceplan:

graphTD;subgraphPCFAdminActionss1s2endsubgraphDeveloperActionss4ends1[1.UploadP-CloudCache.pivotaltoOpsManager]s2[2.ConfigureCloudCacheServicePlans,i.e.caching-small]s1-->s2s3[3.OpsManagerdeploysCloudCacheServiceBroker]s2-->s3s4[4.Developercalls`cfcreate-servicep-cloudcachecaching-smalltest`]s3-->s4s5[5.OpsManagercreatesaCloudCacheclusterfollowingthecaching-smallspecifications]s4-->s5

NetworkingforOn-DemandServicesThissectiondescribesnetworkingconsiderationsforPivotalCloudCache.

ServiceNetworkRequirementWhenyoudeployPCF,youmustcreateastaticallydefinednetworktohostthecomponentvirtualmachinesthatconstitutethePCFinfrastructure.

PCFcomponents,liketheCloudControllerandUAA,runonthisinfrastructurenetwork.On-demandPCFservicesmayrequirethatyouhostthemonanetworkthatrunsseparatelyfromthePCFdefaultnetwork.Youcanalsodeploytilesonseparateservicenetworkstomeetyourownsecurityrequirement.

PCFv2.1andlaterincludedynamicnetworking.Operatorscanusethisdynamicnetworkingwithasynchronousserviceprovisioningtodefinedynamically-provisionedservicenetworks.Formoreinformation,seeDefaultNetworkandServiceNetwork.

InPCFv2.1andlater,on-demandservicesareenabledbydefaultonallnetworks.OperatorscancreateseparatenetworkstohostservicesinBOSHDirector,butdoingsoisoptional.Operatorsselectwhichnetworkhostson-demandserviceinstanceswhentheyconfigurethetileforthatservice.

DefaultNetworkandServiceNetwork

On-demandPCFservicesrelyontheBOSH2.0abilitytodynamicallydeployVMsinadedicatednetwork.Theon-demandservicebrokerusesthiscapabilitytocreatesingle-tenantserviceinstancesinadedicatedservicenetwork.

On-demandservicesusethedynamically-provisionedservicenetworktohostthesingle-tenantworkerVMsthatrunasserviceinstanceswithindevelopmentspaces.ThisarchitectureletsdevelopersprovisionIaaSresourcesfortheirserviceinstancesatcreationtime,ratherthantheoperatorpre-provisioninga

©CopyrightPivotalSoftwareInc,2013-present 7 1.5

Page 8: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

fixedquantityofIaaSresourceswhentheydeploytheservicebroker.

Bymakingservicessingle-tenant,whereeachinstancerunsonadedicatedVMratherthansharingVMswithunrelatedprocesses,on-demandserviceseliminatethe“noisyneighbor”problemwhenoneapphogsresourcesonasharedcluster.Single-tenantservicescanalsosupportregulatorycompliancewheresensitivedatamustbecompartmentalizedacrossseparatemachines.

Anon-demandservicesplitsitsoperationsbetweenthedefaultnetworkandtheservicenetwork.Sharedcomponentsoftheservice,suchasexecutivecontrollersanddatabases,runcentrallyonthedefaultnetworkalongwiththeCloudController,UAA,andotherPCFcomponents.Theworkerpooldeployedtospecificspacesrunsontheservicenetwork.

ThediagrambelowshowsworkerVMsinanon-demandserviceinstancerunningonaseparateservicesnetwork,whileothercomponentsrunonthedefaultnetwork.

RequiredNetworkingRulesforOn-DemandServices

©CopyrightPivotalSoftwareInc,2013-present 8 1.5

Page 9: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Beforedeployingaservicetilethatusestheon-demandservicebroker(ODB),requesttheneedednetworkconnectionstoallowcomponentsofPCFtocommunicatewithODB.

ThespecificsofhowtoopenthoseconnectionsvariesforeachIaaS.

Seethefollowingtableforkeycomponentsandtheirresponsibilitiesinanon-demandarchitecture.

KeyComponents TheirResponsibilities

BOSHDirector

CreatesandupdatesserviceinstancesasinstructedbyODB.

BOSHAgentIncludesanagentoneveryVMthatitdeploys.TheagentlistensforinstructionsfromtheBOSHDirectorandcarriesoutthoseinstructions.TheagentreceivesjobspecificationsfromtheBOSHDirectorandusesthemtoassignarole,orjob,totheVM.

BOSHUAA IssuesOAuth2tokensforclientstousewhentheyactonbehalfofBOSHusers.

PAS Containstheappsthatareconsumingservices

ODBInstructsBOSHtocreateandupdateservices,andconnectstoservicestocreatebindings.

Deployedserviceinstance

Runsthegivendataservice.Forexample,thedeployedRedisforPCFserviceinstancerunstheRedisforPCFdataservice.

Regardlessofthespecificnetworklayout,theoperatormustensurenetworkrulesaresetupsothatconnectionsareopenasdescribedinthetablebelow.

Thiscomponent…

Mustcommunicatewith…

DefaultTCPPort Communicationdirection(s) Notes

ODB

BOSHDirector

BOSHUAA

25555(BOSHDirector)

8443(UAA)

8844(CredHub)

One-way

TheBOSHDirectorandBOSHUAAdefaultportsarenotconfigurable.TheCredHubdefaultportisconfigurable.

ODBDeployedserviceinstances

Specifictotheservice(suchasRabbitMQforPCF).Maybeoneormoreports.

One-way

Thisconnectionisforadministrativetasks.Avoidopeninggeneraluse,app-specificportsforthisconnection.

©CopyrightPivotalSoftwareInc,2013-present 9 1.5

Page 10: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

ODBPAS(orElasticRuntime)

8443 One-wayThedefaultportisnotconfigurable.

ErrandVMs

PAS(orElasticRuntime)

ODB

DeployedServiceInstances

8443

8080

Specifictotheservice.Maybeoneormoreports.

One-wayThedefaultportisnotconfigurable.

BOSHAgentBOSHDirector

4222 Two-way

TheBOSHAgentrunsoneveryVMinthesystem,includingtheBOSHDirectorVM.TheBOSHAgentinitiatestheconnectionwiththeBOSHDirector.Thedefaultportisnotconfigurable.

DeployedappsonPAS(orElasticRuntime)

Deployedserviceinstances

Specifictotheservice.Maybeoneormoreports.

One-way

Thisconnectionisforgeneraluse,app-specifictasks.Avoidopeningadministrativeportsforthisconnection.

PAS(orElasticRuntime)

ODB 8080 One-way

Thisportmaybedifferentforindividualservices.Thisportmayalsobeconfigurablebytheoperatorifallowedbythetiledeveloper.

PCCInstancesAcrossWAN

PCCserviceinstancesrunningwithindistinctPCFfoundationsmaycommunicatewitheachotheracrossaWAN.Inatopologysuchasthis,thememberswithinoneserviceinstanceusetheirownprivateaddressspace,asdefinedinRFC1918 .

AVPNmaybeusedtoconnecttheprivatenetworkspacesthatlayacrosstheWAN.Thestepsrequiredto

©CopyrightPivotalSoftwareInc,2013-present 10 1.5

Page 11: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

enabletheconnectivitybyVPNaredependentontheIaaSprovider(s).

Theprivateaddressspaceforeachserviceinstance’snetworkmustbeconfiguredwithnon-overlappingCIDRblocks.Configurethenetworkpriortocreatingserviceinstances.LocatedirectionsforcreatinganetworkontheappropriateIAASproviderwithinthesectiontitledArchitectureandInstallationOverview .

RecommendedUsageandLimitationsSeeDesignPatternsfordescriptionsofthevarietyofdesignpatternsthatPCCsupports.

PCCstoresobjectsinkey/valueformat,wherevaluecanbeanyobject.

SeegfshCommandRestrictionsforlimitationsontheuseofgfshcommands.

Limitations

Scaledownoftheclusterisnotsupported.

Planmigrations,forexample, -p flagwiththe cf update-service command,arenotsupported.

SecurityPivotalrecommendsthatyoudothefollowing:

RunPCCinitsownnetwork

Usealoadbalancertoblockdirect,outsideaccesstotheGorouter

ToallowPCCnetworkaccessfromapps,youmustcreateapplicationsecuritygroupsthatallowaccessonthefollowingports:

1099

8080

40404

55221

Formoreinformation,seethePCFApplicationSecurityGroups topic.

PCCworkswiththeIPsecAdd-onforPCF.ForinformationabouttheIPsecAdd-onforPCF,seeSecuringDatainTransitwiththeIPsecAdd-on .

©CopyrightPivotalSoftwareInc,2013-present 11 1.5

Page 12: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Authentication

PCCserviceinstancesarecreatedwiththreedefaultGemFireuserrolesforinteractingwithclusters:

AclusteroperatormanagestheGemFireclusterandcanaccessregiondata.

Adevelopercanaccessregiondata.

AgatewaysenderpropagatesregiondatatoanotherPCCserviceinstance.

Allclientapps,gfsh,andJMXclientsmustauthenticateasoneoftheseuserrolestoaccessthecluster.

TheidentifiersassignedfortheserolesaredetailedinCreateServiceKeys.

Authorization

Eachuserroleisgivenpredefinedpermissionsforclusteroperations.Toaccomplishaclusteroperation,theuserauthenticatesusingoneoftheroles.Priortoinitiatingtherequestedoperation,thereisaverificationthattheauthenticateduserrolehasthepermissionauthorizedtodotheoperation.Herearethepermissionsthateachuserrolehas:

Theclusteroperatorrolehas CLUSTER:MANAGE , CLUSTER:WRITE , CLUSTER:READ , DATA:MANAGE ,DATA:WRITE ,and DATA:READ permissions.

Thedeveloperrolehas CLUSTER:READ , DATA:WRITE ,and DATA:READ permissions.

Thegatewaysenderrolehas DATA:WRITE permission.

MoredetailsaboutthesepermissionsareinthePivotalGemFiremanualunderImplementingAuthorization .

FeedbackPleaseprovideanybugs,featurerequests,orquestionstothePivotalCloudFoundryFeedbacklist.

©CopyrightPivotalSoftwareInc,2013-present 12 1.5

Page 13: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

PivotalCloudCacheOperatorGuideInthistopic

RequirementsforPivotalCloudCache

PreparingforTLSOverview

ProvideorGenerateaCACertificate

InstallingandConfiguringPivotalCloudCacheConfigureTileProperties

SettingServiceInstanceQuotas

CreateGlobal-levelQuotas

CreatePlan-levelQuotas

CreateandSetOrg-levelQuotas

CreateandSetSpace-levelQuotas

ViewCurrentOrgandSpace-levelQuotas

MonitorQuotaUseandServiceInstanceCount

CalculateResourceCostsforOn-DemandPlans

MonitoringPivotalCloudCacheServiceInstancesServiceInstanceMetrics

PerMemberMetrics

GatewaySenderandGatewayReceiverMetrics

DiskMetrics

TotalMemoryConsumption

MonitoringPCCServiceInstanceswithPrometheus

UpgradingPivotalCloudCache

MigratingtoaTLS-EnabledCluster

UpdatingPivotalCloudCachePlans

UninstallingPivotalCloudCache

TroubleshootingViewStatisticsFiles

SmokeTestFailures

GeneralConnectivity

ThisdocumentdescribeshowaPivotalCloudFoundry(PCF)operatorcaninstall,configure,andmaintainPivotalCloudCache(PCC).

RequirementsforPivotalCloudCacheTheNetworkingforOn-DemandServices sectiondescribesnetworkingrequirementsforPCC.

AsofPCCv1.5.3,PCCincreasessecuritybyrequiringTLSencryptionforgfshandPulse.FollowtheinstructionsinPreparingforTLSpriortoinstallingthetile.

PreparingforTLS

ThistopicdescribeshowtoprovideanexistingCertificateAuthority(CA)certificatetoBOSHCredHub andhowtogenerateanewCAcertificatewithBOSHCredHub,ifyoudonotalreadyhaveone.

warning:AsofPCCv1.5.3,PCCincreasessecuritybyrequiringTLSencryptionforgfshandPulse.CompletetheproceduresinthistopicbeforeinstallingthePCCtileaspartofanupgrade.

warning:ThisprocedureinvolvesrestartingalloftheVMsinyourPCFdeploymentinordertopropagateaCAcertificate.Theoperationcantakealongtimetocomplete.

©CopyrightPivotalSoftwareInc,2013-present 13 1.5

Page 14: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Overview

EnablingTLSprovisionsPCCserviceinstanceswithacertificatesothatapps,gfsh,andPulsecanestablishanencryptedconnectionwiththePCCserviceinstance.

ThecertificatedeployedonthePCCserviceinstanceisaservercertificate.TheservercertificateisgeneratedbyCredHub,acomponentdesignedforcentralizedcredentialmanagementinPCF.CredHubisdeployedonthesameVMastheBOSHDirector.

CredHubgeneratestheservercertificateusingaCertificateAuthority(CA)certificate.TheCAcertificatemustbeprovidedtoCredHubbytheoperatororgeneratedbyCredHub.

AppsusetheCAcertificatetoauthenticatecomponentsofPCCserviceinstances.AppsthatcommunicatewithPCCmusthaveaccesstotheCAcertificateinordertovalidatethattheservercertificatecanbetrusted.

ProvideorGenerateaCACertificate

PerformthefollowingprocedurestocreateaUserAccountandAuthentication(UAA)clientforCredHub,logintoCredHub,andprovideorgenerateaCAcertificate.

CreateaUAAClient

PerformthefollowingstepstocreateaUAAclientforCredHubonyourUAAserver:

1. RetrievetheIPaddressoftheBOSHDirectorVMandtheDirectorcredentialsbyperformingthestepsinGatherCredentialandIPAddressInformation .

BoththeUAAandCredHubserversarecolocatedontheBOSHDirectorVM.

2. SSHintotheOpsManagerVMbyperformingthestepsinSSHintoOpsManagerVM .

3. FromtheOpsManagerVM,usetheUAACommandLineInterface(UAAC)totargettheUAAserverontheBOSHDirectorVM.IntheUAACcommand,specifytheIPaddressfortheBOSHDirectorVMandport8443.

Runthefollowingcommand:

uaactargetBOSH-DIRECTOR:8443

where BOSH-DIRECTOR istheIPaddressoftheBOSHDirectorVM.YouretrievedthisaddressfromtheStatustaboftheOpsManagerDirectortileinstep1.

Forexample:

$uaactarget10.0.0.5:8443

4. IntheCredentialstaboftheOpsManagerDirectortile,retrievetheUAALoginClientCredentialsandrecordthe identity and password values.

5. RetrievetheUAAAdminUserCredentialsandrecordthe identity and password values.

warning:AnoperatormustrotatetheCAcertificateifitexpiresorifitbecomescompromised.TorotateyourCAcertificate,seeRotatingCACertificatesforPivotalCloudFoundryServices inthePivotalKnowledgeBase.DonotattempttorotateaCAcertificateonyourown.ContactPivotalSupport andperformtheprocedureinthePivotalKnowledgeBasearticlewiththeirassistance.

Note:ThesearethecredentialsfortheUAAservercolocatedontheBOSHDirector,nottheUAAservercolocatedonPivotalApplicationService.

©CopyrightPivotalSoftwareInc,2013-present 14 1.5

Page 15: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

6. FromtheOpsManagerVM,usetheUAACtogetatoken.

Runthefollowingcommand:

uaactokenownergetlogin--secret=UAA-LOGIN-CLIENT-CRED

where UAA-LOGIN-CLIENT-CRED isthe password valueoftheUAALoginClientCredentialsthatyouretrievedinstep4.

Forexample:

$uaactokenownerget\login--secret=abcdefghijklm123456789

7. Whenpromptedforausernameandpassword,enterthevaluesfor identity and password oftheUAAAdminUserCredentialsthatyouretrievedinstep5.Forexample:

Username:adminPassword:********************************

8. AddaUAAclientforCredHubwiththecorrectgrants.

Enterthefollowingcommand:

$uaacclientadd\--authorized_grant_typesclient_credentials\--authoritiescredhub.read,credhub.write

9. WhenpromptedforClientID,enter credhub .Whenpromptedfor Newclientsecret ,enterasecurepasswordofyourchoice.Forexample:

ClientID:credhubNewclientsecret:*******Verifynewclientsecret:*******scope:uaa.noneclient_id:credhubresource_ids:noneauthorized_grant_types:client_credentialsautoapprove:authorities:credhub.writecredhub.readname:credhubrequired_user_groups:lastmodified:1518198701452id:credhubcreated_by:f609e861-39ec-4a16-8aee-cba9e9b079e3

AddtheCACertificate

PerformthefollowingstepstologintoCredHub,provideorgenerateaCAcertificate,andaddthecertificatetoOpsManager:

1. FromtheOpsManagerVM,settheAPItargetoftheCredHubCLItoyourCredHubserver.

Runthefollowingcommand:

credhubapihttps://BOSH-DIRECTOR:8844--ca-cert=/var/tempest/workspaces/default/root_ca_certificate

where BOSH-DIRECTOR istheIPaddressoftheBOSHDirectorVM.

Forexample:

©CopyrightPivotalSoftwareInc,2013-present 15 1.5

Page 16: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

$credhubapihttps://10.0.0.5:8844--ca-cert=/var/tempest/workspaces/default/root_ca_certificate

2. LogintoCredHub.

Runthefollowingcommand:

credhublogin--client-name=credhub--client-secret=CLIENT-SECRET

where CLIENT-SECRET istheclientsecretyousetinstep9above.

Forexample:

$credhublogin\--client-name=credhub\--client-secret=abcdefghijklm123456789

3. UsetheCredHubCLItocheckwhetheraservicesCAcertificatealreadyispresent.

Enterthefollowingcommand:

$credhubget\--name="/services/tls_ca"

Ifyoualreadyhaveacertificateatthe services/tls_ca path,skiptostep5.

4. UsetheCredHubCLItogenerateaCAcertificateorprovideanexistingone.

IfyoudonothaveaCAcertificate,usetheCredHubCLItogenerateone.Enterthefollowingcommand:

$credhubgenerate\--name="/services/tls_ca"\--type="certificate"\--no-overwrite\--is-ca\--common-name="rootCA"

IfyouhaveanexistingCAcertificatethatyouwanttouse,createanewfilecalled root.pem withthecontentsofthecertificate.Thenenterthefollowingcommand,specifyingthepathto root.pem andtheprivatekeyforthecertificate:

$credhubset\--name="/services/tls_ca"\--type="certificate"\--certificate=./root.pem\--private=ERKSOSMFF...

5. UsetheBOSHCLIv2toextractthe certificate portionfromtheCAcertificateandprintit.Enterthefollowingcommand:

$bosh2interpolate<(credhubget--name=/services/tls_ca)\--path/value/certificate

6. Recordtheoutputofthe bosh2interpolate commandfromstep4.

7. NavigatetotheOpsManagerInstallationDashboardandselecttheOpsManagerDirectortile.ClickSecurity.

8. PastethecontentsoftheCAcertificateintoTrustedCertificatesandclickSave.

Note:YourPCFdeploymentmayhavemultipleCAcertificates.PivotalrecommendsadedicatedCAcertificateforservices.

©CopyrightPivotalSoftwareInc,2013-present 16 1.5

Page 17: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

9. TheCAcertificatemustalsobeaddedfortheGorouter.NavigatetothePASSettingstab.ClickonNetworking.AddtheCAcertificatetotheboxlabeledCertificateAuthoritiesTrustedbyRouterandHAProxyandclickSave.

10. Optionally,ifyouareusingOpsManagerv2.3orlater,clickReviewPendingChanges(seeReviewingPendingProductChanges ).

11. ClickApplyChanges.

InstallingandConfiguringPivotalCloudCacheWithanOpsManagerrole(detailedinUnderstandRolesinOpsManager )thathastheproperpermissionstoinstallandconfigure,followthesestepstoinstallPCConPCF:

1. DownloadthetilefromthePivotalNetwork .

2. ClickImportaProducttoimportthetileintoOpsManager.

3. Clickthe+symbolnexttotheuploadedproductdescription.

4. ClickontheCloudCachetile.

5. CompletealltheconfigurationstepsintheConfigureTilePropertiessectionbelow.

6. ReturntotheOpsManagerInstallationDashboard.Optionally,ifyouareusingOpsManagerv2.3orlater,clickReviewPendingChanges(seeReviewingPendingProductChanges ).

7. ClickApplyChangestocompletetheinstallationofthePCCtile.

ConfigureTileProperties

Configurethesectionslistedontheleftsideofthepage.

©CopyrightPivotalSoftwareInc,2013-present 17 1.5

Page 18: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Asyoucompleteasection,saveit.Agreencheckmarkappearsnexttothesectionname.Eachsectionnamemustshowthisgreencheckmarkbeforeyoucancompleteyourinstallation.

AssignAZsandNetworks

Settings

ServicePlans,includingtheDevPlan

Syslog

ServiceInstanceUpgrades

Security

Errands

AssignAvailabilityZonesandNetworks

ToselectAZsandnetworksforVMsusedbyPCC,dothefollowing:

1. ClickAssignAZsandNetworks.

2. ConfigurethefieldsontheAssignAZsandNetworkspaneasfollows:

Field Instructions

Placesingletonjobsin SelecttheregionthatyouwantforsingletonVMs.

Balanceotherjobsin SelecttheAZ(s)youwanttousefordistributingotherGemFireVMs.Pivotalrecommendsselectingallofthem.

Network SelectyourPAS(orElasticRuntime)network.

ServiceNetwork SelectthenetworktobeusedforGemFireVMs.

3. ClickSave.

Settings

SmokeTestSettings

Thesmoke-testserrandthatrunsaftertileinstallation.Theerrandverifiesthatyourinstallationwassuccessful.Bydefault,the smoke-test errandrunsonthe system organdthe p-cloudcache-smoke-test space.

Toselectwhichplanyouwanttouseforsmoketests,dothefollowing:

Selectaplantousewhenthe smoke-tests errandruns.

Ensuretheselectedplanisenabledandconfigured.Forinformationaboutconfiguringplans,seeConfigureServicePlansbelow.Iftheselectedplanisnotenabled,the smoke-tests errandfails.

Pivotalrecommendsthatyouusethesmallestfour-serverplanforsmoketests.Becausesmoketestscreateandlaterdestroythisplan,usingaverysmallplanreducesinstallationtime.

Note:Smoketestswillfailunlessyouenableglobaldefaultapplicationsecuritygroups(ASGs).YoucanenableglobaldefaultASGsbybindingtheASGtothe system orgwithoutspecifyingaspace.ToenableglobaldefaultASGs,use cfbind-running-security-

group.

©CopyrightPivotalSoftwareInc,2013-present 18 1.5

Page 19: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Settings:AllowOutboundInternetAccessSettings

Bydefault,outboundinternetaccessisnotallowedfromserviceinstances.

IfBOSHisconfiguredtouseanexternalblobstore,youneedallowoutboundinternetaccessfromserviceinstances.Logforwardingandbackups,whichrequireexternalendpoints,mightalsorequireinternetaccess.

Toallowoutboundinternetaccessfromserviceinstance,dothefollowing:

SelectAllowoutboundinternetaccessfromserviceinstances(IaaS-dependent).

DefaultDistributedSystemIDSetting

EveryserviceinstancehasanintegeridentifiercalledadistributedsystemID.TheIDdefaultstothevalue0.ServiceinstancesthatformadistributedsystemthatcommunicatesacrossaWANwillneeddistinctIDs.ThosedistinctIDvaluesaresetwhencreatingtheserviceinstance.

TochangethedefaultdistributedsystemIDvalue,replacethedefaultvalueof0withyournewdefaultvalue.Acceptablevaluesareintegersgreaterthanorequalto0andlessthanorequalto255.

ConfigureServicePlans

Youcanconfigurefiveindividualplansforyourdevelopers.SelectthePlan1throughPlan5tabstoconfigureeachofthem.

Note:OutboundnetworktrafficrulesalsodependonyourIaaSsettings.ConsultyournetworkorIaaSadministratortoensurethatyourIaaSallowsoutboundtraffictotheexternalnetworksyouneed.

©CopyrightPivotalSoftwareInc,2013-present 19 1.5

Page 20: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

ThePlanEnabledoptionisselectedbydefault.IfyoudonotwanttoaddthisplantotheCFservicecatalog,selectPlanDisabled.Youmustenableat

©CopyrightPivotalSoftwareInc,2013-present 20 1.5

Page 21: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

leastoneplan.

ThePlanNametextfieldallowsyoutocustomizethenameoftheplan.ThisplannameisdisplayedtodeveloperswhentheyviewtheserviceintheMarketplace.

ThePlanDescriptiontextfieldallowsyoutosupplyaplandescription.ThedescriptionisdisplayedtodeveloperswhentheyviewtheserviceintheMarketplace.

TheEnablemetricsforserviceinstancescheckboxenablesmetricsforserviceinstancescreatedusingtheplan.Onceenabled,themetricsaresenttotheLoggregatorFirehose.

TheCFServiceAccessdrop-downmenugivesyoutheoptiontodisplayornotdisplaytheserviceplanintheMarketplace.EnableServiceAccessdisplaystheserviceplantheMarketplace.DisableServiceAccessmakestheplanunavailableintheMarketplace.Ifyouchoosethisoption,youcannotmaketheplanavailableatalatertime.LeaveServiceAccessUnchangedmakestheplanunavailableintheMarketplacebydefault,butallowsyoutomakeitavailableatalatertime.

TheServiceInstanceQuotasetsthemaximumnumberofPCCclustersthatcanexistsimultaneously.

Whendeveloperscreateorupdateaserviceinstance,theycanspecifythenumberofserversinthecluster.TheMaximumserversperclusterfieldallowsoperatorstosetanupperboundonthenumberofserversdeveloperscanrequest.Ifdevelopersdonotexplicitlyspecifythenumberofserversinaserviceinstance,anewclusterhasthenumberofserversspecifiedintheDefaultNumberofServersfield.

TheAvailabilityzonesforserviceinstancessettingdetermineswhichAZsareusedforaparticularcluster.ThemembersofaclusteraredistributedevenlyacrossAZs.

TheremainingfieldscontroltheVMtypeandpersistentdisktypeforserversandlocators.ThetotalsizeofthecacheisdirectlyrelatedtothenumberofserversandtheamountofmemoryoftheselectedserverVMtype.Werecommendthefollowingconfiguration:

FortheVMtypefortheLocatorVMsfield,selectaVMthathasatleast2CPUs,1GBofRAMand4GBofdiskspace.

ForthePersistentdisktypefortheLocatorVMsfield,select10GBorhigher.

FortheVMtypefortheServerVMsfield,selectaVMthathasatleast2CPUs,4GBofRAMand8GBofdiskspace.

ForthePersistentdisktypefortheserverVMsfield,select10GBorhigher.

Whenyoufinishconfiguringtheplan,clickSavetosaveyourconfigurationoptions.

ConfigureaDevPlan

ADevPlanisatypeofserviceplan.UseaDevPlanfordevelopmentandtesting.Theplanprovidesasinglelocatorandserver,whicharecolocatedwithinasingleVM.

ThepageforconfiguringaDevPlanissimilartothepageforconfiguringotherserviceplans.ToconfiguretheDevPlan,inputinformationinthefieldsandmakeselectionsfromtheoptionsonthePlanfortestdevelopmentpage.

warning!Afteryou’veselectedAZsforyourservicenetwork,youcannotaddadditionalAZs;doingsocausesexistingserviceinstancestolosedataonupdate.

©CopyrightPivotalSoftwareInc,2013-present 21 1.5

Page 22: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Ifyouhaveenabledpost-deployscriptsinyourBOSHDirector,aregionisautomaticallycreated.Toconfirmthatpost-deployscriptsareenabled,navigatetotheDirectorConfigpaneofOpsMangerDirectorandverifythatEnablePostDeployScriptsisselected.

©CopyrightPivotalSoftwareInc,2013-present 22 1.5

Page 23: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Syslog

Bydefault,syslogforwardingisnotenabledinPCC.However,PCCsupportsforwardingsyslogtoanexternallogmanagementservice(forexample,Papertrail,Splunk,oryourcustomenterpriselogsink).Thebrokerlogsareusefulfordebuggingproblemscreating,updating,andbindingserviceinstances.

Toenableremotesyslogfortheservicebroker,dothefollowing:

1. ClickSyslog.

2. ConfigurethefieldsontheSyslogpaneasfollows:

Field Instructions

EnableRemoteSyslog Selecttoenable.

ExternalSyslogAddress Entertheaddressorhostofthesyslogserverforsendinglogs,forexample, logs.example.com .

ExternalSyslogPort Entertheportofthesyslogserverforsendinglogs,forexample, 29279 .

EnableTLSforSyslogSelecttoenablesecurelogtransmissionthroughTLS.Withoutthis,remotesyslogsendsunencryptedlogs.WerecommendenablingTLS,asmostsyslogendpointssuchasPapertrailandLogsearchrequireTLS.

©CopyrightPivotalSoftwareInc,2013-present 23 1.5

Page 24: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

PermittedPeerforTLSCommunication.ThisisrequiredifTLSisenabled.

Ifthereareseveralpeerserversthatcanrespondtoremotesyslogconnections,thenprovidearegex,suchas*.example.com .

CACertificateforTLSCommunication

Iftheservercertificateisnotsignedbyaknownauthority,forexample,aninternalsyslogserver,providetheCAcertificateofthelogmanagementserviceendpoint.

Sendserviceinstancelogstoexternal

Bydefault,onlythebrokerlogsareforwardedtoyourconfiguredlogmanagementservice.Ifyouwanttoforwardserverandlocatorlogsfromallserviceinstances,selectthis.Thisletsyoumonitorthehealthoftheclusters,althoughitgeneratesalargevolumeoflogs.

Ifyoudon’tenablethis,yougetonlythebrokerlogswhichincludeinformationaboutserviceinstancecreation,butnotabouton-goingclusterhealth.

3. ClickSave.

ServiceInstanceUpgrades

AconfigurablenumberofserviceinstancesmaybeupgradedconcurrentlybyenteringanewvaluethatisgreaterthanoneandlessthantheBOSHworkercountfortheNumberofsimultaneousupgrades.

SpecifyasetofserviceinstancestoactascanariesfortheupgradeprocessbychangingtheNumberofupgradecanaryinstancestoavaluegreaterthan0.Ifallcanaryinstancessuccessfullyupgrade,theremaininginstancesareupgraded.Ifanycanaryinstancefailstoupgrade,theupgradefailsandnofurtherinstancesareupgraded.

ClickSaveafterchangingvalues.

Security

TheenvironmentmaybeconfiguredtomoresecurelystoreservicekeyswithinCredHub,insteadofwithinthecloudcontroller’sdatastore.Toenablethisfunctionality:

1. ClickSecurity.

2. ClickontheboxlabeledEnableSecureServiceInstanceCredentialstoenableuseofCredHub.

3. An‘X’isrequiredinthetextboxtopromotetheunderstandingthataTLS-enabledserviceinstancecannotbecreatedifthePCFenvironmentisnotsetuptohandleTLS.SeePreparingforTLSforhowtopreparethePCFenvironment.

4. ClickSave.

©CopyrightPivotalSoftwareInc,2013-present 24 1.5

Page 25: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Errands

Bydefault,post-deployandpre-deleteerrandsalwaysrun.Pivotalrecommendskeepingthesedefaults.However,ifnecessary,youcanchangethesedefaultsasfollows.

ForgeneralinformationabouterrandsinPCF,seeManagingErrandsinOpsManager

1. ClickErrands.

2. Changethesettingfortheerrands.

3. ClickSave.

SettingServiceInstanceQuotasOn-demandprovisioningisintendedtoaccelerateappdevelopmentbyeliminatingtheneedfordevelopmentteamstorequestandwaitforoperatorstocreateaserviceinstance.However,tocontrolcosts,operationsteamsandadministratorsmustensureresponsibleuseofresources.

Thereareseveralwaystocontroltheprovisioningofon-demandserviceinstancesbysettingvariousquotasattheselevels:

Global

Plan

Org

Space

Afteryousetquotas,youcan:

ViewCurrentOrgandSpace-levelQuotas

MonitorQuotaUseandServiceInstanceCount

CalculateResourceCostsforOn-DemandPlans

CreateGlobal-levelQuotasEachPivotalCloudFoundry(PCF)servicehasaseparateservicebroker.Aglobalquotaattheservicelevelsetsthemaximumnumberofserviceinstancesthatcanbecreatedbyagivenservicebroker.Ifaservicehasmorethanoneplan,thenthenumberofserviceinstancesforallplanscombinedcannotexceedtheglobalquotafortheservice.

TheoperatorsetsaglobalquotaforeachPCFserviceindependently.Forexample,ifyouhaveRedisforPCFandRabbitMQforPCF,youmustsetaseparateglobalservicequotaforeachofthem.

Whentheglobalquotaisreachedforaservice,nomoreinstancesofthatservicecanbecreatedunlessthequotaisincreased,orsomeinstancesofthatservicearedeleted.

TheglobalquotaissetintheservicetileinOpsManager,shownforanexampleservicebelow.

©CopyrightPivotalSoftwareInc,2013-present 25 1.5

Page 26: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

CreatePlan-levelQuotasAservicemayofferoneormoreplans.Youcansetaseparatequotaperplansothatinstancesofthatplancannotexceedtheplanquota.Foraservicewithmultipleplans,thetotalnumberofinstancescreatedforallplanscombinedcannotexceedtheglobalquotafortheservice.

Whentheplanquotaisreached,nomoreinstancesofthatplancanbecreatedunlesstheplanquotaisincreasedorsomeinstancesofthatplanaredeleted.

TheplanquotaissetintheservicetileinOpsManager,shownforanexampleserviceplanbelow.

Note:Thisisanexampleimageonly.Thefollowingscreenmaylookslightlydifferentforyourserviceorreleaseversion.

Note:Thisisanexampleimageonly.Thefollowingscreenmaylookslightlydifferentforyourserviceorreleaseversion.

©CopyrightPivotalSoftwareInc,2013-present 26 1.5

Page 27: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

©CopyrightPivotalSoftwareInc,2013-present 27 1.5

Page 28: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

CreateandSetOrg-levelQuotasAnorg-levelquotaappliestoallPCFservicesandsetsthemaximumnumberofserviceinstancesanorganizationcancreatewithinPCF.Forexample,ifyousetyourorg-levelquotato100,developerscancreateupto100serviceinstancesinthatorgusinganycombinationofPCFservices.

Whenthisquotaismet,nomoreserviceinstancesofanykindcanbecreatedintheorgunlessthequotaisincreasedorsomeserviceinstancesaredeleted.

Tocreateandsetanorg-levelquota,dothefollowing:

1. Runthiscommandtocreateaquotaforserviceinstancesattheorglevel:

cf create-quota QUOTA-NAME -m TOTAL-MEMORY -i INSTANCE-MEMORY -r ROUTES -s SERVICE-INSTANCES --allow-paid-service-plans

wherethesevariablesare:

QUOTA-NAME —AnameforthisquotaTOTAL-MEMORY —MaximummemoryusedbyallserviceinstancescombinedINSTANCE-MEMORY —MaximummemoryusedbyanysingleserviceinstanceROUTES —MaximumnumberofroutesallowedforallserviceinstancescombinedSERVICE-INSTANCES —Maximumnumberofserviceinstancesallowedfortheorg

Forexample:cfcreate-quotamyquota-m1024mb-i16gb-r30-s50--allow-paid-service-plans

2. Associatethequotayoucreatedabovewithaspecificorgbyrunningthefollowingcommand:

cf set-quota ORG-NAME QUOTA-NAME

Forexample: cfset-quotadev_orgmyquota

Formoreinformationonmanagingorg-levelquotas,seeCreatingandModifyingQuotaPlans .

CreateandSetSpace-levelQuotasAspace-levelservicequotaappliestoallPCFservicesandsetsthemaximumnumberofserviceinstancesthatcanbecreatedwithinagivenspaceinPCF.Forexample,ifyousetyourspace-levelquotato100,developerscancreateupto100serviceinstancesinthatspaceusinganycombinationofPCFservices.

Whenthisquotaismet,nomoreserviceinstancesofanykindcanbecreatedinthespaceunlessthequotaisupdatedorsomeserviceinstancesaredeleted.

Tocreateandsetaspace-levelquota,dothefollowing:

1. Runthefollowingcommandtocreatethequota:

cf create-space-quota QUOTA -m TOTAL-MEMORY -i INSTANCE-MEMORY -r ROUTES -s SERVICE-INSTANCES --allow-paid-service-plans

wherethesevariablesare:

©CopyrightPivotalSoftwareInc,2013-present 28 1.5

Page 29: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

QUOTA-NAME —AnameforthisquotaTOTAL-MEMORY —MaximummemoryusedbyallserviceinstancescombinedINSTANCE-MEMORY —MaximummemoryusedbyanysingleserviceinstanceROUTES —MaximumnumberofroutesallowedforallserviceinstancescombinedSERVICE-INSTANCES —Maximumnumberofserviceinstancesallowedfortheorg

Forexample: cfcreate-space-quotamyspacequota-m1024mb-i16gb-r30-s50--allow-paid-service-plans

2. Associatethequotayoucreatedabovewithaspecificspacebyrunningthefollowingcommand:

cf set-space-quota SPACE-NAME QUOTA-NAME

Forexample:cfset-space-quotamyspacemyspacequota

Formoreinformationonmanagingspace-levelquotas,seeCreatingandModifyingQuotaPlans .

ViewCurrentOrgandSpace-levelQuotasTovieworgquotas,runthefollowingcommand.

cforgORG-NAME

Toviewspacequotas,runthefollowingcommand:

cfspaceSPACE-NAME

Formoreinformationonmanagingorgandspace-levelquotas,seetheCreatingandModifyingQuotaPlans .

MonitorQuotaUseandServiceInstanceCountService-levelandplan-levelquotause,andtotalnumberofserviceinstances,areavailablethroughtheon-demandbrokermetricsemittedtoLoggregator.Thesemetricsarelistedbelow:

MetricName Description

on-demand-broker/SERVICE-NAME/quota_remaining Quotaremainingforallinstancesacrossallplans

on-demand-broker/SERVICE-NAME/PLAN-NAME/quota_remaining Quotaremainingforaspecificplan

on-demand-broker/SERVICE-NAME/total_instances Totalinstancescreatedacrossallplans

on-demand-broker/SERVICE-NAME/PLAN-NAME/total_instances Totalinstancescreatedforaspecificplan

CalculateResourceCostsforOn-DemandPlansOn-demandplansusededicatedVMs,disks,andvariousotherresourcesfromanIaaS,suchasAWS.Tocalculatemaximumresourcecostforplansindividuallyorcombined,youmultiplythequotabythecostofVMandPersistentDisktypesselectedintheplanconfiguration(s).ThespecificcostsdependonyourIaaS.

TheimagebelowshowsanexampleoftheVMtypeandpersistentdiskselected,aswellasthequotaforthisplan.

Note:Quotametricsarenotemittedifnoquotahasbeenset.

©CopyrightPivotalSoftwareInc,2013-present 29 1.5

Page 30: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

CalculateMaximumResourceCostPerOn-DemandPlan

TocalculatethemaximumcostofVMsandpersistentdiskforeachplan,dothefollowingcalculation:

planquotaxcostofselectedresources

Forexample,ifyouselectedtheoptionsintheaboveimage,youhaveselectedaVMtypemicro.cpuandapersistentdisktype20GB,andtheplanquotais15.TheVMandpersistentdisktypeshaveanassociatedcostfortheIaaSyouareusing.Therefore,tocalculatethemaximumcostofresourcesforthisplan,multiplythecostoftheresourcesselectedbytheplanquota:

(15xcostofmicro.cpuVMtype)+(15xcostof20GBpersistentdisk)

CalculateMaximumResourceCostforAllOn-DemandPlans

Tocalculatethemaximumcostforallplanscombined,addtogetherthemaximumcostsforeachplan.Thisassumesthatthesumofyourindividualplanquotasislessthantheglobalquota.

Hereisanexample:

(plan1quotaxplan1resourcecost)+(plan2quotaxplan2resourcecost)=maxcostforallplans

CalculateActualResourceCostofallOn-DemandPlans

Tocalculatethecurrentactualresourcecostacrossallyouron-demandplans:

1. Findthenumberofinstancescurrentlyprovisionedforeachactiveplanbylookingatthe total_instance metricforthatplan.

2. Multiplythe total_instance countforeachplanbythatplan’sresourcecosts.Recordthecostsforeachplan.

3. AddupthecostsnotedinStep2togetyourtotalcurrentresourcecosts.

Forexample:

(plan1total_instancesxplan1resourcecost)+(plan2total_instancesxplan2resourcecost)=currentcostforallplans

MonitoringPivotalCloudCacheServiceInstances

Important:Althoughoperatorscanlimiton-demandinstanceswithplanquotasandaglobalquota,asdescribedintheabovetopics,IaaSresourceusagestillvariesbasedonthenumberofon-demandinstancesprovisioned.

©CopyrightPivotalSoftwareInc,2013-present 30 1.5

Page 31: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

PCCclustersandbrokersemitservicemetrics.YoucanuseanytoolthathasacorrespondingCloudFoundrynozzletoreadandmonitorthesemetricsinrealtime.

Asanappdeveloper,whenyouopttouseadataservice,youshouldbepreparedto:

monitorthestateofthatservice

triageissuesthatoccurwiththatservice

benotifiedofanyconcerns

Ifyoubelieveanissuerelatestotheunderlyinginfrastructure(network,CPU,memory,ordisk),youwillneedtocaptureevidenceandnotifyyourplatformteam.Themetricsdescribedinthissectioncanhelpincharacterizingtheperformanceandresourceconsumptionofyourserviceinstance.

ServiceInstanceMetrics

Inthedescriptionsofthemetrics,KPIstandsforKeyPerformanceIndicator.

MemberCount

serviceinstance.MemberCount

Description Returnsthenumberofmembersinthedistributedsystem.

MetricType number

Suggestedmeasurement Everysecond

MeasurementType count

WarningThreshold lessthanthemanifestmembercount

SuggestedActionsThisdependsontheexpectedmembercount,whichisavailableintheBOSHmanifest.Ifthenumberexpectedisdifferentfromthenumberemitted,thisisacriticalsituationthatmayleadtodataloss,andthereasonsfornodefailureshouldbeinvestigatedbyexaminingtheservicelogs.

WhyaKPI? Memberlossduetoanyreasoncanpotentiallycausedataloss.

TotalAvailableHeapSize

serviceinstance.TotalHeapSize

Description Returnsthetotalavailableheap,inmegabytes,acrossallinstancemembers.

MetricType number

Suggestedmeasurement Everysecond

MeasurementType pulse

WhyaKPI?Ifthetotalheapsizeandusedheapsizearetooclose,thesystemmightseethrashingduetoGCactivity.Thisincreaseslatency.

TotalUsedHeapSize

serviceinstance.UsedHeapSize

Description Returnsthetotalheapusedacrossallinstancemembers,inmegabytes.

MetricType number

Suggestedmeasurement Everysecond

MeasurementType pulse

©CopyrightPivotalSoftwareInc,2013-present 31 1.5

Page 32: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

WhyaKPI?Ifthetotalheapsizeandusedheapsizearetooclose,thesystemmightseethrashingduetoGCactivity.Thisincreaseslatency.

TotalAvailableHeapSizeasaPercentage

serviceinstance.UnusedHeapSizePercentage

Description Returnstheproportionoftotalavailableheapacrossallinstancemembers,expressedasapercentage.

MetricType percent

Suggestedmeasurement Everysecond

MeasurementType compoundmetric

WarningThreshold 40%

CriticalThreshold 10%

SuggestedActionsIfthisisaspikeduetoevictioncatchingupwithinsertfrequency,thencustomersneedtokeepaclosewatchthatitshouldnothittheREDmarker.Ifthereisnoeviction,thenhorizontalscalingissuggested.

WhyaKPI?Ifthetotalheapsizeandusedheapsizearetooclose,thesystemmightseethrashingduetoGCactivity.Thisincreaseslatency.

PerMemberMetrics

MemoryUsedasaPercentage

member.UsedMemoryPercentage

Description RAMbeingconsumed.

MetricType percent

Suggestedmeasurement Averageoverlast10minutes

MeasurementType average

WarningThreshold 75%

CriticalThreshold 85%

CountofJavaGarbageCollections

member.GarbageCollectionCount

Description Thenumberoftimesthatgarbagehasbeencollected.

MetricType number

Suggestedmeasurement Sumoverlast10minutes

MeasurementType count

WarningThreshold DependentontheIaaSandappusecase.

CriticalThreshold DependentontheIaaSandappusecase.

SuggestedActionsCheckthenumberofqueriesrunagainstthesystem,whichincreasesthedeserializationofobjectsandincreasesgarbage.

WhyaKPI?Ifthefrequencyofgarbagecollectionishigh,thesystemmightseehighCPUusage,whichcausesdelaysinthecluster.

©CopyrightPivotalSoftwareInc,2013-present 32 1.5

Page 33: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

CPUUtilizationPercentage

member.HostCpuUsage

Description Thismember’sprocessCPUutilization,expressedasapercentage.

MetricType percent

Suggestedmeasurement Averageoverlast10minutes

MeasurementType average

WarningThreshold 85%

CriticalThreshold 95%

SuggestedActions IfthisisnothappeningwithhighGCactivity,thesystemisreachingitslimits.Horizontalscalingmighthelp.

WhyaKPI?HighCPUusagecausesdelayedresponsesandcanalsomakethemembernon-responsive.Thiscancausethemembertobekickedoutofthecluster,potentiallyleadingtodataloss.

AverageLatencyofGetOperations

member.GetsAvgLatency

Description Theaveragelatencyofcachegetoperations,innanoseconds.

MetricType number

Suggestedmeasurement Averageoverlast10minutes

MeasurementType average

WarningThreshold DependentontheIaaSandappusecase.

CriticalThreshold DependentontheIaaSandappusecase.

SuggestedActions IfthisisnothappeningwithhighGCactivity,thesystemisreachingitslimit.Horizontalscalingmighthelp.

WhyaKPI?Itisagoodindicatoroftheoverallresponsivenessofthesystem.Ifthisnumberishigh,theserviceadministratorshoulddiagnosetherootcause.

AverageLatencyofPutOperations

member.PutsAvgLatency

Description Theaveragelatencyofcacheputoperations,innanoseconds.

MetricType number

Suggestedmeasurement Averageoverlast10minutes

MeasurementType average

WarningThreshold DependentontheIaaSandappusecase.

CriticalThreshold DependentontheIaaSandappusecase.

SuggestedActions IfthisisnothappeningwithhighGCactivity,thesystemisreachingitslimit.Horizontalscalingmighthelp.

WhyaKPI?Itisagoodindicatoroftheoverallresponsivenessofthesystem.Ifthisnumberishigh,theserviceadministratorshoulddiagnosetherootcause.

JVMpauses

member.JVMPauses

©CopyrightPivotalSoftwareInc,2013-present 33 1.5

Page 34: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Description ThequantityofJVMpauses.

MetricType number

Suggestedmeasurement Sumover2seconds

MeasurementType count

WarningThreshold DependentontheIaaSandappusecase.

CriticalThreshold DependentontheIaaSandappusecase.

SuggestedActionsCheckthecachedobjectsize;ifitisgreaterthan1MB,youmaybehittingthelimitationonJVMtogarbagecollectthisobject.Otherwise,youmaybehittingtheutilizationlimitonthecluster,andwillneedtoscaleuptoaddmorememorytothecluster.

WhyaKPI?DuetoaJVMpause,thememberstopsrespondingto“are-you-alive”messages,whichmaycausethismembertobekickedoutofthecluster.

FileDescriptorLimit

member.FileDescriptorLimit

Description Themaximumnumberofopenfiledescriptorsallowedforthemember’shostoperatingsystem.

MetricType number

Suggestedmeasurement Everysecond

MeasurementType pulse

WhyaKPI?Ifthenumberofopenfiledescriptorsexceedsnumberavailable,itcausesthemembertostoprespondingandcrash.

OpenFileDescriptors

member.TotalFileDescriptorOpen

Description Thecurrentnumberofopenfiledescriptors.

MetricType number

Suggestedmeasurement Everysecond

MeasurementType pulse

WhyaKPI?Ifthenumberofopenfiledescriptorsexceedsnumberavailable,itcausesthemembertostoprespondingandcrash.

QuantityofRemainingFileDescriptors

member.FileDescriptorRemaining

Description Thenumberofavailablefiledescriptors.

MetricType number

Suggestedmeasurement Everysecond

MeasurementType compoundmetric

WarningThreshold 1000

CriticalThreshold 100

SuggestedActions Scalehorizontallytoincreasecapacity.

Ifthenumberofopenfiledescriptorsexceedsnumberavailable,itcausesthemembertostoprespondingand

©CopyrightPivotalSoftwareInc,2013-present 34 1.5

Page 35: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

WhyaKPI? crash.

GatewaySenderandGatewayReceiverMetrics

ThesearemetricsemittedthroughtheCFNozzleforgatewaysendersandgatewayreceivers.

QueueSizefortheGatewaySender

gatewaySender.<sender-id>.EventQueueSize

Description Thecurrentsizeofthegatewaysenderqueue.

MetricType number

MeasurementType count

EventsReceivedattheGatewaySender

gatewaySender.<sender-id>.EventsReceivedRate

DescriptionAcountoftheeventscomingfromtheregiontowhichthegatewaysenderisattached.Itisthecountsincethelasttimethemetricwaschecked.Thefirsttimeitischecked,thecountisofthenumberofeventssincethegatewaysenderwascreated.

MetricType number

MeasurementType count

EventsQueuedbytheGatewaySender

gatewaySender.<sender-id>.EventsQueuedRate

Description

Acountoftheeventsqueuedonthegatewaysenderfromtheregion.Thisquantityofeventsmightbelowerthanthequantityofeventsreceived,asnotallreceivedeventsarequeued.Itisacountsincethelasttimethemetricwaschecked.Thefirsttimeitischecked,thecountisofthenumberofeventssincethegatewaysenderwascreated.

MetricType number

MeasurementType count

EventsReceivedbytheGatewayReceiver

gatewayReceiver.EventsReceivedRate

DescriptionAcountoftheeventsreceivedfromthegatewaysenderwhichwillbeappliedtotheregiononthegatewayreceiver’ssite.Itisthecountsincethelasttimethemetricwaschecked.Thefirsttimeitischecked,thecountisofthenumberofeventssincethegatewayreceiverwascreated.

MetricType number

MeasurementType count

DiskMetrics

ThesearemetricsemittedthroughtheCFNozzlefordisks.

AverageLatencyofDiskWrites

diskstore.DiskWritesAvgLatency

Description Theaveragelatencyofdiskwritesinnanoseconds.

©CopyrightPivotalSoftwareInc,2013-present 35 1.5

Page 36: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

MetricType number

MeasurementType timeinnanoseconds

QuantityofBytesonDisk

diskstore.TotalSpace

Description Thetotalnumberofbytesontheattacheddisk.

MetricType number

MeasurementType count

QuantityofAvailableBytesonDisk

diskstore.UseableSpace

Description Thetotalnumberofbytesofavailablespaceontheattacheddisk.

MetricType number

MeasurementType count

TotalMemoryConsumption

TheBOSH mem-check errandcalculatesandoutputsthequantityofmemoryusedacrossallPCCserviceinstances.ThiserrandhelpsPCFoperatorsmonitorresourcecosts,whicharebasedonmemoryusage.

Fromthedirector,runaBOSHcommandoftheform:

bosh-d<servicebrokername>run-errandmem-check

Withthiscommand:

bosh-dcloudcache-service-brokerrun-errandmem-check

Hereisananonymizedportionofexampleoutputfromthe mem-check errandforatwoclusterdeployment:

Analyzingdeploymentxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx1...JVMheapusageforserviceinstancexxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx1UsedTotal=1204MBMaxTotal=3201MB

Analyzingdeploymentxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx2...JVMheapusageforserviceinstancexxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx2UsedTotal=986MBMaxTotal=3201MB

JVMheapusageforallclusterseverywhere:UsedGlobalTotal=2390MBMaxGlobalTotal=6402MB

MonitoringPCCServiceInstanceswithPrometheus

Prometheusisoneofvarioustoolsyoucanusetomonitorservicesinstances.Itisamonitoringandalertingtoolkitthatallowsformetricscraping.YoucanusetheFirehoseexporter toexportallthemetricsfromtheFirehose,whichyoucanthengraphwithGrafana tomonitoryourPCCcluster.

Followtheinstructionshere todeployPrometheusalongsideyourPCFcluster.

PrometheuscanbedeployedonanyIaaS.YouneedtoverifythattheFirehoseexporterjobcantalktoyourUAAVM.ThismightinvolveopeningupfirewallrulesorenablingyourVMtoallowoutgoingtraffic.

©CopyrightPivotalSoftwareInc,2013-present 36 1.5

Page 37: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Youcanrunquerieson,andbuildacustomdashboardof,specificmetricsthatareimportanttoyou.

UpgradingPivotalCloudCacheUpgrademinorreleaseversionsfromyourcurrentlydeployedversiontothetargetversioninsequentialorder.Forexample,PCCv1.2mustbeupgradedtoPCCv1.3priortoupgradingtoPCCv1.4.NotethateachPCCreleaseiscompatiblewithtwoPivotalApplicationService(PAS)andOpsManagerversions,asspecifiedintheProductSnapshot .IncorporatethoseupgradestoPASandOpsManagerinyourupgradeprocessasrequiredtomaintaincompatibility,asdescribedinUpgradingPivotalCloudFoundry .

FollowthestepsbelowtoupgradePCC:

1. DownloadthenewversionofthetilefromthePivotalNetwork.

2. UploadtheproducttoOpsManager.

©CopyrightPivotalSoftwareInc,2013-present 37 1.5

Page 38: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

3. ClickAddnexttotheuploadedproduct.

4. ClickontheCloudCachetileandconfiguretheupgradeoptions.

Totrytheupgradeonasmallnumberofserviceinstancesfirst,setthequantityofcanaryserviceinstancesasdescribedinServiceInstanceUpgrades.SetthenumberofinstancesthataretobeupgradedinparallelasdescribedinServiceInstanceUpgrades.MakesurethatundertheErrandssection,theUpgradeAllServiceInstancesPost-DeployErrandisDefault(On).Savethechange.

5. Optionally,ifyouareusingOpsManagerv2.3orlater,clickReviewPendingChanges(seeReviewingPendingProductChanges ).

6. ClickApplyChanges.

MigratingtoaTLS-EnabledClusterAnexistingPCCserviceinstancethatdoesnotuseTLSencryptionmaybemigratedtobecomeaPCCserviceinstancewithTLSencryptionenabled.

Followtheproceduregivenhereaftertheseprerequisiteshavebeenmet:

AllstepswithinPreparingforTLShavebeencompleted.

TheserviceinstancehasbeenupgradedtoPCCv1.5.2oramorerecentPCCversion.TherewillbenoPCCversionchangeduringthemigration.

FollowthisproceduretomigratetheexistingPCCserviceinstance:

1. AsaPCFoperator,stopallapps.First,listallappstoidentifythe APP_NAME .

$ cf apps

Then,stopeachappwith:

$ cf stop APP_NAME

2. Forallnon-persistentregions,usethe gfsh commandlinetooltoexportthedata.

CompletethestepswithinAccessingaServiceInstancetoacquirethecorrectversionof gfsh ,runit,andconnecttotheclusterusingtheclusteroperatorrole/credentialsfromtheservicekey.Listtheregions.

gfsh>list regions

Foreachregion,use gfsh describe todetermineiftheregionispersistentornotandtoacquireaservername.

gfsh>describe region --name=REGION_NAME

Foreachnon-persistentregion,usethissingle gfsh commandtoexportallthedatawithintheregion.The SERVER_NAME identifieswhichGemFireserverreceivesthe export commandandpropagatesthecommandtoallotherGemFireserverswithinthecluster.

gfsh>export data --parallel --region=REGION_NAME --member=SERVER_NAME --dir=/var/vcap/store/gemfire-server

3. YourPCFoperatorneedstotargettheBOSHDirectorinordertoacquirethe DEPLOYMENT_NAME .

Run

warning!Thisprocedurewillrequiredowntimefortheserviceinstanceduringthemigration.

warning!Withoutanexport,allnon-persistentregionentrieswillbeirretrievablylost.

©CopyrightPivotalSoftwareInc,2013-present 38 1.5

Page 39: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

$ cf service SERVICE_INSTANCE_NAME

toacquirethedigitsthatuniquelyidentifytheserviceinstance.Thedigits( XXX-XXX inthefollowinginstructions)arethosebetweencloudcache- andtheperiod . .

LogintotheBOSHDirector.

$ bosh log-in

The DEPLOYMENT_NAME willappearintheoutputof

$ bosh deployments | grep XXX-XXX

4. UsingPCFoperatorcredentials,stoptheBOSHdeployment:

$ bosh -d DEPLOYMENT_NAME stop

andtype“y”whenprompted.

5. AcquiretheBOSHmanifestwith:

$ bosh -d DEPLOYMENT_NAME manifest > DEPLOYMENT_NAME-manifest.yml

6. EdittheacquiredBOSHmanifest.Therearethreelocationswithinthemanifestfilethatwillrequireadditions.Thesethreelocationsareidentifiedwithinthisanonymizedportionofthemanifestfilewiththesymbols①,②,and③.Thefirstpartofthemanifestfileisomitted,asitslistedvalueschangebasedonthePCCversion.Realpasswordshavebeenreplacedwiththeplaceholder password ,andusernameshavebeenreplacedwiththeplaceholder userX withinthisexample.

instance_groups:- name: locator instances: 3 jobs: - name: gemfire-locator release: gemfire properties: gemfire: ① distributed-system-id: 0 locator: bpm_enabled: true port: '55221' properties: enable-time-statistics: true persist-pdx: true security: internal_cluster_password: password internal_cluster_username: userX roles: cluster_operator: - CLUSTER:WRITE - CLUSTER:READ - DATA:MANAGE - DATA:WRITE - DATA:READ - CLUSTER:MANAGE:DEPLOY - CLUSTER:MANAGE - CLUSTER:MANAGE:GATEWAY developer: - CLUSTER:READ - DATA:WRITE - DATA:READ gateway: - DATA:WRITE users: cluster_operator_userX: password: password roles: - cluster_operator

©CopyrightPivotalSoftwareInc,2013-present 39 1.5

Page 40: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

developer_userX: password: password roles: - developer - name: route_registrar release: routing consumes: nats: deployment: cf-NNNNNNNNNNN from: nats properties: route_registrar: routes: - name: cloudcache port: 8080 ② registration_interval: 20s uris: - cloudcache-XXX-XXX.example.com - name: bpm release: bpm vm_type: micro.cpu stemcell: stemcell persistent_disk_type: '10240' azs: - us-central1-f networks: - name: example-services-subnet- name: server instances: 4 jobs: - name: gemfire-server release: gemfire properties: gemfire: server: bpm_enabled: true create-gateway-receiver: true development-mode: false properties: enable-time-statistics: true jmx-manager-start: true security: gateway_password: password gateway_username: gateway_sender_userX - name: prime-cluster-for-pcc release: gemfire - name: bpm release: bpm vm_type: medium.cpu stemcell: stemcell persistent_disk_type: '10240' azs: - us-central1-f networks: - name: example-services-subnetupdate: canaries: 1 canary_watch_time: 1000-600000 update_watch_time: 1000-600000 max_in_flight: 32 serial: truefeatures: converge_variables: true ③

AddlinestotheBOSHmanifest,usingthelinesasshowninredinthefollowingmodifiedversionofthemanifest.Substituteyourdigitsthatuniquelyidentifyyourserviceinstancefor XXX-XXX withintheaddedlines.

instance_groups:- name: locator instances: 3 jobs: - name: gemfire-locator release: gemfire properties:

©CopyrightPivotalSoftwareInc,2013-present 40 1.5

Page 41: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

gemfire: ① tls: true truststore_password: ((trust-store-password)) keystore_password: ((key-store-password)) certificate: ((gemfire-certificate)) trusted_certs: - ((/cf/diego-instance-identity-root-ca)) - ((/services/tls_ca)) distributed-system-id: 0 locator: bpm_enabled: true port: '55221' properties: enable-time-statistics: true persist-pdx: true security: internal_cluster_password: password internal_cluster_username: userX roles: cluster_operator: - CLUSTER:WRITE - CLUSTER:READ - DATA:MANAGE - DATA:WRITE - DATA:READ - CLUSTER:MANAGE:DEPLOY - CLUSTER:MANAGE - CLUSTER:MANAGE:GATEWAY developer: - CLUSTER:READ - DATA:WRITE - DATA:READ gateway: - DATA:WRITE users: cluster_operator_userX: password: password roles: - cluster_operator developer_userX: password: password roles: - developer - name: route_registrar release: routing consumes: nats: deployment: cf-NNNNNNNNNNN from: nats properties: route_registrar: routes: - name: cloudcache port: 8080 ② tls_port: 8080 server_cert_domain_san: cloudcache-XXX-XXX.example.com registration_interval: 20s uris: - cloudcache-XXX-XXX.example.com - name: bpm release: bpm vm_type: micro.cpu stemcell: stemcell persistent_disk_type: '10240' azs: - us-central1-f networks: - name: example-services-subnet- name: server instances: 4 jobs: - name: gemfire-server release: gemfire properties: gemfire: server:

©CopyrightPivotalSoftwareInc,2013-present 41 1.5

Page 42: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

bpm_enabled: true create-gateway-receiver: true development-mode: false properties: enable-time-statistics: true jmx-manager-start: true security: gateway_password: password gateway_username: gateway_sender_userX - name: prime-cluster-for-pcc release: gemfire - name: bpm release: bpm vm_type: medium.cpu stemcell: stemcell persistent_disk_type: '10240' azs: - us-central1-f networks: - name: example-services-subnetupdate: canaries: 1 canary_watch_time: 1000-600000 update_watch_time: 1000-600000 max_in_flight: 32 serial: truefeatures: converge_variables: true ③ variables:- name: trust-store-password type: password- name: key-store-password type: password- name: gemfire-certificate type: certificate options: ca: /services/tls_ca common_name: gemfire-ssl alternative_names: - gemfire-ssl - cloudcache-XXX-XXX.example.com

7. RedeploytheBOSHmanifest.DoaBOSHdeployusingtheeditedBOSHmanifest:

$ bosh -d SERVICE-INSTANCE-NAME deploy SERVICE-INSTANCE-NAME-manifest.yml

andtype“y”whenprompted.

8. RestarttheclusterwithasequentialBOSHstart:

$ bosh start -d SERVICE-INSTANCE-NAME --max-in-flight=1

andtype“y”whenprompted.

9. Run gfsh andfollowthedirectionsinConnectwithgfshoverHTTPStoconnecttotheTLS-enabledcluster.

10. Use gfsh toimportallregiondatathatwasexportedearlierinthisprocedure.Foreachearlier-exportedregion,do:

gfsh>import data --parallel --region=REGION_NAME --member=SERVER_NAME --dir=/var/vcap/store/gemfire-server

11. RevisetheappsuchthatitworkswithaTLS-enabledPCCserviceinstancebyfollowingtheinstructionswithinDevelopinganAppUnderTLS.Re-build,re-deploy,andstarttheapp.

UpdatingPivotalCloudCachePlansFollowthestepsbelowtoupdateplansinOpsManager.

©CopyrightPivotalSoftwareInc,2013-present 42 1.5

Page 43: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

1. ClickontheCloudCachetile.

2. ClickontheplanyouwanttoupdateundertheInformationsection.

3. Editthefieldswiththechangesyouwanttomaketotheplan.

4. ClickSavebuttononthebottomofthepage.

5. ClickonthePCFOpsManagertonavigatetotheInstallationDashboard.

6. Optionally,ifyouareusingOpsManagerv2.3orlater,clickReviewPendingChanges(seeReviewingPendingProductChanges ).

7. ClickApplyChanges.

Planchangesarenotappliedtoexistingservicesinstancesuntilyourunthe upgrade-all-service-instances BOSHerrand.YoumustusetheBOSHCLItorunthiserrand.Untilyourunthiserrand,developerscannotupdateserviceinstances.

Changestofieldsthatcanbeoverriddenbyoptionalparameters,forexample num_servers or new_size_percentage ,changethedefaultvalueoftheseinstanceproperties,butdonotaffectexistingserviceinstances.

Ifyouchangetheallowedlimitsofanoptionalparameter,forexamplethemaximumnumberofserverspercluster,existingserviceinstancesinviolationofthenewlimitsarenotmodified.

Whenexistinginstancesareupgraded,allplanchangesareappliedtothem.UpgradesandupdatestoserviceinstancescancausearollingrestartofGemFireservers.Beawarethattherebalancingofdatatomaintainredundancymayimpacttheperformanceoftheremainderoftheserverswithintheserviceinstance.

UninstallingPivotalCloudCacheTouninstallPCC,followthestepsfrombelowfromtheInstallationDashboard:

1. Clickthetrashcaniconinthebottom-right-handcornerofthetile.

2. Optionally,ifyouareusingOpsManagerv2.3orlater,clickReviewPendingChanges(seeReviewingPendingProductChanges ).

3. ClickApplyChanges.

Troubleshooting

ViewStatisticsFiles

Youcanvisualizetheperformanceofyourclusterbydownloadingthestatisticsfilesfromyourservers.ThesefilesarelocatedinthepersistentstoreoneachVM.Tocopythesefilestoyourworkstation,runthefollowingcommand:

`bosh2-eBOSH-ENVIRONMENT-dDEPLOYMENT-NAMEscpserver/0:/var/vcap/store/gemfire-server/statistics.gfs/tmp`

SeethePivotalGemFireInstallingandRunningVSD topicforinformationaboutloadingthestatisticsfilesintoPivotalGemFireVSD.

SmokeTestFailures

Error:“Creatingp-cloudcacheSERVICE-NAMEfailed”

ThesmoketestscouldnotcreateaninstanceofGemFire.Totroubleshootwhythedeploymentfailed,usethecfCLItocreateanewserviceinstanceusingthesameplananddownloadthelogsoftheservicedeploymentfromBOSH.

warning:Datalossmayresultfromtherestartofacluster.SeeRestartingaClusterfortheconditionsunderwhichdatalossoccurs.

©CopyrightPivotalSoftwareInc,2013-present 43 1.5

Page 44: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Error:“DeletingSERVICE-NAMEfailed”

Thesmoketestattemptedtocleanupaserviceinstanceitcreatedandfailedtodeletetheserviceusingthe cfdelete-service

command.Totroubleshoot

thisissue,runBOSH logs toviewthelogsonthebrokerortheserviceinstancetoseewhythedeletionmayhavefailed.

Error:CannotconnecttotheclusterSERVICE-NAME

Thesmoketestwasunabletoconnecttothecluster.

Totroubleshoottheissue,reviewthelogsofyourloadbalancer,andreviewthelogsofyourCFRoutertoensuretheroutetoyourPCCclusterisproperlyregistered.

YoualsocancreateaserviceinstanceandtrytoconnecttoitusingthegfshCLI.Thisrequirescreatingaservicekey.

Error:“Couldnotperformcreate/putonCloudCachecluster”

Thesmoketestwasunabletowritedatatothecluster.Theusermaynothavepermissionstocreatearegionorwritedata.

Error:“CouldnotretrievevaluefromCloudCachecluster”

Thesmoketestwasunabletoreadbackthedataitwrote.DatalosscanhappenifaclustermemberimproperlystopsandstartsagainorifthemembermachinecrashesandisresurrectedbyBOSH.RunBOSH logs toviewthelogsonthebrokertoseeiftherewereanyinterruptionstotheclusterbyaserviceupdate.

GeneralConnectivity

Client-to-ServerCommunication

PCCClientscommunicatetoPCCserversonport40404andwithlocatorsonport55221.BothoftheseportsmustbereachablefromthePAS(orElasticRuntime)networktoservicethenetwork.

MembershipPortRange

PCCserversandlocatorscommunicatewitheachotherusingUDPandTCP.Thecurrentportrangeforthiscommunicationis 49152-65535 .

IfyouhaveafirewallbetweenVMs,ensurethisportrangeisopen.

PortRangeUsageAcrossaWAN

GatewayreceiversandgatewaysenderscommunicateacrossWAN-separatedserviceinstances.EachPCCserviceinstanceusesGemFiredefaultsforthegatewayreceiverports.Thedefaultistheinclusiverangeofportnumbers5000to5499.

EnsurethisportrangeisopenwhenWAN-separatedserviceinstanceswillcommunicate.

©CopyrightPivotalSoftwareInc,2013-present 44 1.5

Page 45: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

PivotalCloudCacheDeveloperGuideThisdocumentdescribeshowaPivotalCloudFoundry(PCF)appdevelopercanchooseaserviceplan,createanddeletePivotalCloudCache(PCC)serviceinstances,andbindanapp.

YoumustinstalltheCloudFoundryCommandLineInterface (cfCLI)torunthecommandsinthistopic.

Inthistopic:

ViewingAllPlansAvailableforPivotalCloudCache

CreatingaPivotalCloudCacheServiceInstance

ProvideOptionalParametersEnableSessionStateCachingwiththeJavaBuildpackEnableSessionStateCachingUsingSpringSessionDevPlans

SetUpWAN-SeparatedServiceInstances

SetUpaBidirectionalSystemSetUpaUnidirectionalSystem

SettingUpServersforanInlineCache

ImplementaCacheLoaderforReadMissesImplementanAsynchronousEventQueueandCacheListenerforWriteBehindImplementaCacheWriterforWriteThroughConfigureUsinggfshWriteBehindConfigureUsinggfshWriteThrough

DeletingaServiceInstance

UpdatingaPivotalCloudCacheServiceInstance

RebalancingaClusterRestartingaClusterAboutChangestotheServicePlan

gfshCommandRestrictions

AccessingaServiceInstance

CreateServiceKeys

©CopyrightPivotalSoftwareInc,2013-present 45 1.5

Page 46: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

ConnectwithgfshoverHTTPS

CreateaTruststoreEstablishtheConnectionwithHTTPSEstablishtheConnectionwithHTTPSinaDevelopmentEnvironment

UsingPivotalCloudCache

CreateRegionswithgfshWorkingwithDiskStoresJavaBuildPackRequirementsBindanApptoaServiceInstanceUsethePulseDashboardAccessServiceMetricsAccessServiceBrokerMetricsExportgfshlogsDeployanAppJARFiletotheServersUsetheGemFire-GreenplumConnector

DevelopinganAppUnderTLS

ConnectingaSpringBootApptoPivotalCloudCachewithSessionStateCaching

UsetheTomcatAppUseaSpringSessionDataGemFireApp

CreatingContinuousQueriesUsingSpringDataGemFire

©CopyrightPivotalSoftwareInc,2013-present 46 1.5

Page 47: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

ViewingAllPlansAvailableforPivotalCloudCacheRun cfmarketplace-sp-

cloudcachetoviewallplansavailableforPCC.Theplannamesdisplayedare

configuredbytheoperatorontileinstallation.

$cfmarketplace-sp-cloudcache

Gettingserviceplaninformationforservicep-cloudcacheasadmin...OK

serviceplandescriptionfreeorpaidextra-smallCachingPlan1freesmallCachingPlan2freemediumCachingPlan3freelargeCachingPlan4freeextra-largeCachingPlan5free

©CopyrightPivotalSoftwareInc,2013-present 47 1.5

Page 48: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

CreatingaPivotalCloudCacheServiceInstanceInthistopic

ProvideOptionalParameters

EnableSessionStateCachingwiththeJavaBuildpack

EnableSessionStateCachingUsingSpringSession

DevPlans

Run cfcreate-servicep-cloudcachePLAN-NAMESERVICE-INSTANCE-NAME

tocreateaserviceinstance.Replace

PLAN-NAME withthenamefromthelistofavailableplans.Replace SERVICE-INSTANCE-NAME withanameofyourchoice.Usethisnametorefertoyourserviceinstancewithothercommands.Serviceinstancenamescanincludealpha-numericcharacters,hyphens,andunderscores.

$cfcreate-servicep-cloudcacheextra-largemy-cloudcache

Serviceinstancesarecreatedasynchronously.Runthe cfservices commandtoviewthecurrentstatusoftheservicecreation,andofotherserviceinstancesinthecurrentorgandspace:

$cfservicesGettingservicesinorgmy-org/spacemy-spaceasuser...OK

nameserviceplanboundappslastoperationmy-cloudcachep-cloudcachesmallcreateinprogress

Whencompleted,thestatuschangesfrom createinprogress to createsucceeded

.

ProvideOptionalParametersYoucancreateacustomizedserviceinstancebypassingoptionalparametersto cfcreate-

serviceusingthe

-c flag.The -c flagacceptsavalidJSONobjectcontainingservice-specificconfigurationparameters,providedeitherin-lineorinafile.

ThePCCservicebrokersupportsthefollowingparameters:

©CopyrightPivotalSoftwareInc,2013-present 48 1.5

Page 49: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

tls :Aboolean,thatwhentrue,enablesTLSforallcommunicationwithinthecluster.

num_servers :Anintegerthatspecifiesthenumberofserverinstancesinthecluster.Theminimumvalueis 4 .Themaximumanddefaultvaluesareconfiguredbytheoperator.

new_size_percentage :Anintegerthatspecifiesthepercentageoftheheaptoallocatetoyounggeneration.Thisvaluemustbebetween 5 and 83 .Bydefault,thenewsizeis2GBor10%ofheap,whicheverissmaller.

ThisexampleenablesTLSwithinthecluster:

$cfcreate-servicep-cloudcachesmallTLS-cluster-c'{"tls":true}'

Thisexamplecreatestheservicewithfiveserviceinstancesinthecluster:

$cfcreate-servicep-cloudcachesmallmy-cloudcache-c'{"num_servers":5}'

EnableSessionStateCachingwiththeJavaBuildpackWhenthe session-replication tagisspecified,theJavabuildpackdownloadsalltherequiredresourcesforsessionstatecaching.ThisfeatureisavailableinJavabuildpackversion3.19andhigher,uptobutnotincludingversion4.Itisthenavailableagaininversion4.3.

Toenablesessionstatecaching,dooneofthefollowingitems:

Option1:Whencreatingyourserviceinstancename,specifythe session-replication tag.Forexample:

$cfcreate-servicep-cloudcachesmall-planmy-service-instance-tsession-replication

Option2:Updateyourserviceinstance,specifyingthe session-replication tag:

$cfupdate-servicenew-service-instance-tsession-replication

Option3:Whencreatingtheservice,nametheserviceinstancenamebyappendingitwiththestring -

session-replication ,forexample my-service-instance-session-replication .

EnableSessionStateCachingUsingSpringSessionTouseSpringSession forsessionstatecachingforappswithPCC,followthestepsbelow:

©CopyrightPivotalSoftwareInc,2013-present 49 1.5

Page 50: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

1. Makethefollowingchangestotheapp:

ReplaceexistingSpringSession @EnableXXXHttpSession annotationwith@EnableGemFireHttpSession(maxInactiveIntervalInSeconds = N) where N isseconds.

Addthe spring-session-data-geode and spring-data-geode dependenciestothebuild.AddbeanstotheSpringappconfig.

Formoreinformation,seethespring-session-data-gemfire-example repository.

2. Createaregionnamed ClusteredSpringSessions ingfshusingthe cluster_operator_XXX credentials:createregion--name=ClusteredSpringSessions--type=PARTITION_HEAP_LRU

DevPlansTheDevPlanisatypeofserviceplanthatisusefulfordevelopmentandtesting.ThisexamplecreatesaDevPlanserviceinstance:

$cfcreate-servicep-cloudcachedev-planmy-dev-cloudcache

TheplanprovidesasinglelocatorandasingleservercolocatedwithinasingleVM.BecausetheVMisrecycledwhentheserviceinstanceisupdatedorupgraded,alldatawithintheregionislostuponupdateorupgrade.

Whenpost-deployscriptsareenabledforOpsManager,theserviceinstanceiscreatedwithasinglesampleregioncalled example_partition_region .Theregionisoftype PARTITION_REDUNDANT_HEAP_LRU ,asdescribedinPartitionedRegionTypesforCreatingRegionsontheServer.

If example_partition_region hasnotbeencreated,itisprobablybecausepost-deployscriptsarenotenabledforOpsManager,asdescribedinConfigureaDevPlan.

©CopyrightPivotalSoftwareInc,2013-present 50 1.5

Page 51: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

SetUpWAN-SeparatedServiceInstancesTwoserviceinstancesmayformasingledistributedsystemacrossaWAN.TheinteractionofthetwoserviceinstancesmayfollowoneofthepatternsdescribedwithinthesectiononDesignPatterns.

CallthetwoserviceinstancesAandB.TheGemFireclusterwithineachserviceinstanceusesanidentifiercalleda distributed_system_id .Thisexampleassigns distributed_system_id=

1toclusterAand

distributed_system_id=2

toclusterB.GemFiregatewaysendersprovidethecommunicationpathand

constructthatpropagatesregionoperationsfromoneclustertoanother.OnthereceivingendareGemFiregatewayreceivers.Creatingaserviceinstancealsocreatesgatewayreceivers.

Note:TosetupmorethantwoserviceinstancesacrossaWAN,setuptheinteractionbetweenthefirsttwoserviceinstancesAandBfollowingthedirectionsineitherSetUpaBidirectionalSystemorSetUpaUnidirectionalSystem,asappropriate.Afterthat,setuptheinteractionbetweenserviceinstanceAandanotherserviceinstance(calledC)followingthedirectionsineitherSetUpanAdditionalBidirectionalInteractionorSetUpanAdditionalUnidirectionalInteraction,asappropriate.

©CopyrightPivotalSoftwareInc,2013-present 51 1.5

Page 52: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

SetUpaBidirectionalSystemThissequenceofstepssetsupabidirectionaltransfer,aswillbeneededforanactive-activepattern,asdescribedinBidirectionalReplicationAcrossaWAN.

1. CreatetheclusterAserviceinstanceusingtheclusterACloudFoundrycredentials.Thisexampleexplicitlysetsthedistributed_system_id ofclusterAusinga -c optionwithacommandoftheform:

cfcreate-servicep-cloudcachePLAN-NAMESERVICE-INSTANCE-NAME-c'{"distributed_system_id":ID-VALUE}'

HereisaclusterAexampleofthe create-service command:

$cfcreate-servicep-cloudcachewan-clusterwan1-c'{"distributed_system_id":1}'

Verifythecompletionofservicecreationpriortocontinuingtothenextstep.Outputfromthe cfservices commandwillshowthe lastoperation as createsucceeded whenservicecreationiscompleted.

2. CreateaservicekeyforclusterA.TheservicekeywillcontaingeneratedcredentialsthatthisexamplewilluseinthecreationoftheclusterBserviceinstance:

$cfcreate-service-keywan1k1

Withintheservicekey,each username isgeneratedwithauniquestringappendedsotherewillbeuniqueusernamesforthedifferentroles.Theusernamesinthisexamplehavebeenmodifiedtobeeasytounderstand,andtheyarenotrepresentativeoftheusernamesthatwillbegenerateduponservicekeycreation.Passwordsgeneratedfortheservicekeyareoutputincleartext.Thepasswordsshowninthisexamplehavebeenmodifiedtobeeasytounderstand,andtheyarenotrepresentativeofthepasswordsthatwillbegenerateduponservicekeycreation.Hereissampleoutputfrom cfservice-keywan1k1 :

Gettingkeyk1forserviceinstancewan1asadmin...

{"distributed_system_id":"1","locators":["10.0.16.21[55221]""10.0.16.22[55221]""10.0.16.23[55221]"],

©CopyrightPivotalSoftwareInc,2013-present 52 1.5

Page 53: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

"urls":{"gfsh":"https://cloudcache-1.example.com/gemfire/v1","pulse":"https://cloudcache-1.example.com/pulse"},"users":[{"password":"cl-op-ABC-password","roles":["cluster_operator"],"username":"cluster_operator_ABC"},{"password":"dev-DEF-password","roles":["developer"],"username":"developer_DEF"}],"wan":{"sender_credentials":{"active":{"password":"gws-GHI-password","username":"gateway_sender_GHI"}}}}

3. CommunicatetheclusterAlocators’IPandportaddressesand sender_credentials totheclusterBCloudFoundryadministrator.

4. CreatetheclusterBserviceinstanceusingtheclusterBCloudFoundrycredentials.Thisexampleexplicitlysetsthedistributed_system_id .Usea -c optionwiththecommandtospecifythe distributed_system_id ,theclusterAservice

instance’slocators,andtheclusterA sender_credentials :

$cfcreate-servicep-cloudcachewan-clusterwan2-c'{"distributed_system_id":2,"remote_clusters":[{"remote_locators":["10.0.16.21[55221]","10.0.16.22[55221]","10.0.16.23[55221]"],"trusted_sender_credentials":[{"username":"gateway_sender_GHI","password":"gws-GHI-password"}]}]}'

Verifythecompletionofservicecreationpriortocontinuingtothenextstep.Outputfromthe cfservices commandwillshowthe lastoperation as createsucceeded whenservicecreationiscompleted.

©CopyrightPivotalSoftwareInc,2013-present 53 1.5

Page 54: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

showthe lastoperation as createsucceeded whenservicecreationiscompleted.

5. CreatetheservicekeyofclusterB:

$cfcreate-service-keywan2k2

Hereissampleoutputfrom cfservice-keywan2k2 ,whichoutputsdetailsoftheclusterBservicekey:

Gettingkeyk2forserviceinstancedestinationasadmin...

{"distributed_system_id":"2","locators":["10.0.24.21[55221]""10.0.24.22[55221]""10.0.24.23[55221]"],"urls":{"gfsh":"https://cloudcache-2.example.com/gemfire/v1","pulse":"https://cloudcache-2.example.com/pulse"},"users":[{"password":"cl-op-JKL-password","roles":["cluster_operator"],"username":"cluster_operator_JKL"},{"password":"dev-MNO-password","roles":["developer"],"username":"developer_MNO"}],

©CopyrightPivotalSoftwareInc,2013-present 54 1.5

Page 55: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

],"wan":{"remote_clusters":[{"remote_locators":["10.0.16.21[55221]","10.0.16.21[55221]","10.0.16.21[55221]"],"trusted_sender_credentials":["gateway_sender_GHI"]}],"sender_credentials":{"active":{"password":"gws-PQR-password","username":"gateway_sender_PQR"}}}}

6. CommunicatetheclusterBlocators’IPandportaddressesand sender_credentials totheclusterACloudFoundryadministrator.

7. UpdatetheclusterAserviceinstanceusingtheclusterACloudFoundrycredentialstoincludetheclusterBlocatorsandtheclusterB sender_credentials :

$cfupdate-servicewan1-c'{"remote_clusters":[{"remote_locators":["10.0.24.21[55221]","10.0.24.22[55221]","10.0.24.23[55221]"],"trusted_sender_credentials":[{"username":"gateway_sender_PQR","password":"gws-PQR-password"}]}]}'Updatingserviceinstancewan1asadmin

8. ToobserveandverifythattheclusterAserviceinstancehasbeencorrectlyupdated,itisnecessarytodeleteandrecreatetheclusterAservicekey.Asdesigned,therecreatedservicekeywillhavethesameuseridentifiersandpasswords;newuniquestringsandpasswordsarenotgenerated.UsetheclusterACloudFoundrycredentialsinthesecommands:

$cfdelete-service-keywan1k1

$cfcreate-service-keywan1k1

TheclusterAservicekeywillnowappearas:

©CopyrightPivotalSoftwareInc,2013-present 55 1.5

Page 56: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Gettingkeyk1forserviceinstancewan1asadmin...

{"distributed_system_id":"1","locators":["10.0.16.21[55221]","10.0.16.22[55221]","10.0.16.23[55221]"],"urls":{"gfsh":"https://cloudcache-1.example.com/gemfire/v1","pulse":"https://cloudcache-1.example.com/pulse"},"users":[{"password":"cl-op-ABC-password","roles":["cluster_operator"],"username":"cluster_operator_ABC"},{"password":"dev-DEF-password","roles":["developer"],"username":"developer_DEF"}],"wan":{"remote_clusters":[{"remote_locators":["10.0.24.21[55221]","10.0.24.22[55221]","10.0.24.23[55221]"],"trusted_sender_credentials":["gateway_sender_PQR"]}],"sender_credentials":{"active":{"password":"gws-GHI-password","username":"gateway_sender_GHI"}}}

©CopyrightPivotalSoftwareInc,2013-present 56 1.5

Page 57: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

}}

9. UsegfshtocreatetheclusterAgatewaysenderandtheregion.AnyregionoperationsthatoccuraftertheregioniscreatedonclusterA,butbeforetheregioniscreatedonclusterBwillbelost.

ConnectusinggfshandtheclusterA cluster_operator credentials,whichareneededtobeauthorizedforthegatewaysendercreationoperation:

gfsh>connect--url=https://cloudcache-1.example.com/gemfire/v1--use-http--user=cluster_operator_ABC--password=cl-op-ABC-password

CreatetheclusterAgatewaysender.Therequired remote-distributed-system-id optionidentifiesthe distributed-system-

id ofthedestinationcluster.Itis2forthisexample:

gfsh>creategateway-sender--id=send_to_2--remote-distributed-system-id=2--enable-persistence=true

CreatetheclusterAregion.The gateway-sender-id associatesregionoperationswithaspecificgatewaysender.TheregionmusthaveanassociatedgatewaysenderinordertopropagateregioneventsacrosstheWAN.

gfsh>createregion--name=regionX--gateway-sender-id=send_to_2--type=PARTITION_REDUNDANT

10. UsegfshtocreatetheclusterBgatewaysenderandregion.

ConnectusinggfshandtheclusterB cluster_operator credentials,whichareneededtobeauthorizedforthegatewaysendercreationoperation:

gfsh>connect--url=https://cloudcache-2.example.com/gemfire/v1--use-http--user=cluster_operator_JKL--password=cl-op-JKL-password

CreatetheclusterBgatewaysender:

gfsh>creategateway-sender--id=send_to_1--remote-distributed-system-id=1--enable-persistence=true

CreatetheclusterBregion:

gfsh>createregion--name=regionX--gateway-sender-id=send_to_1--type=PARTITION_REDUNDANT

©CopyrightPivotalSoftwareInc,2013-present 57 1.5

Page 58: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

SetUpaUnidirectionalSystemThissequenceofstepssetsupaunidirectionaltransfer,suchthatalloperationsinclusterAarereplicatedinclusterB.TwodesignpatternsthatuseunidirectionalreplicationaredescribedinBlue-GreenDisasterRecoveryandCQRSPatternAcrossaWAN.

1. CreatetheclusterAserviceinstanceusingtheclusterACloudFoundrycredentials.Thisexampleexplicitlysetsthedistributed_system_id ofclusterAusinga -c optionwithacommandoftheform:

cfcreate-servicep-cloudcachePLAN-NAMESERVICE-INSTANCE-NAME-c'{"distributed_system_id":ID-VALUE}'

HereisaclusterAexampleofthe create-service command:

$cfcreate-servicep-cloudcachewan-clusterwan1-c'{"distributed_system_id":1}'

Verifythecompletionofservicecreationpriortocontinuingtothenextstep.Outputfromthe cfservices commandwillshowthe lastoperation as createsucceeded whenservicecreationcompletes.

2. CreateaservicekeyforclusterA.TheservicekeywillcontaingeneratedcredentialsthatthisexamplewilluseinthecreationoftheclusterBserviceinstance:

$cfcreate-service-keywan1k1

Withintheservicekey,each username isgeneratedwithauniquestringappendedsotherewillbeuniqueusernamesforthedifferentroles.Theusernamesinthisexamplehavebeenmodifiedtobeeasytounderstand,andtheyarenotrepresentativeoftheusernamesthatwillbegenerateduponservicekeycreation.Passwordsgeneratedfortheservicekeyareoutputincleartext.Thepasswordsshowninthisexamplehavebeenmodifiedtobeeasytounderstand,andtheyarenotrepresentativeofthepasswordsthatwillbegenerateduponservicekeycreation.Hereissampleoutputfrom cfservice-keywan1k1 :

Gettingkeyk1forserviceinstancewan1asadmin...

{"distributed_system_id":"1","locators":["10.0.16.21[55221]""10.0.16.22[55221]""10.0.16.23[55221]"],

©CopyrightPivotalSoftwareInc,2013-present 58 1.5

Page 59: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

"urls":{"gfsh":"https://cloudcache-1.example.com/gemfire/v1","pulse":"https://cloudcache-1.example.com/pulse"},"users":[{"password":"cl-op-ABC-password","roles":["cluster_operator"],"username":"cluster_operator_ABC"},{"password":"dev-DEF-password","roles":["developer"],"username":"developer_DEF"}],"wan":{"sender_credentials":{"active":{"password":"gws-GHI-password","username":"gateway_sender_GHI"}}}}

3. CommunicatetheclusterAlocators’IPandportaddressesand sender_credentials totheclusterBCloudFoundryadministrator.

4. CreatetheclusterBserviceinstanceusingtheclusterBCloudFoundrycredentials.Thisexampleexplicitlysetsthedistributed_system_id .Usea -c optionwiththecommandtospecifythe distributed_system_id ,theclusterAservice

instance’slocators,andtheclusterA sender_credentials :

$cfcreate-servicep-cloudcachewan-clusterwan2-c'{"distributed_system_id":2,"remote_clusters":[{"remote_locators":["10.0.16.21[55221]","10.0.16.22[55221]","10.0.16.23[55221]"],"trusted_sender_credentials":[{"username":"gateway_sender_GHI","password":"gws-GHI-password"}]}]}'

Verifythecompletionofservicecreationpriortocontinuingtothenextstep.Outputfromthe cfservices commandwillshowthe lastoperation as createsucceeded whenservicecreationiscompleted.

©CopyrightPivotalSoftwareInc,2013-present 59 1.5

Page 60: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

showthe lastoperation as createsucceeded whenservicecreationiscompleted.

5. CreatetheservicekeyofclusterB:

$cfcreate-service-keywan2k2

NotethattheclusterBservicekeywillcontainunneeded(fortheunidirectionalsetup)butautomaticallycreatedsender_credentials .Hereissampleoutputfrom cfservice-keywan2k2 ,whichoutputsdetailsoftheclusterBservicekey:

Gettingkeyk2forserviceinstancedestinationasadmin...

{"distributed_system_id":"2","locators":["10.0.24.21[55221]""10.0.24.22[55221]""10.0.24.23[55221]"],"urls":{"gfsh":"https://cloudcache-2.example.com/gemfire/v1","pulse":"https://cloudcache-2.example.com/pulse"},"users":[{"password":"cl-op-JKL-password","roles":["cluster_operator"],"username":"cluster_operator_JKL"},{"password":"dev-MNO-password","roles":["developer"],"username":"developer_MNO"}],

©CopyrightPivotalSoftwareInc,2013-present 60 1.5

Page 61: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

],"wan":{"remote_clusters":[{"remote_locators":["10.0.16.21[55221]","10.0.16.21[55221]","10.0.16.21[55221]"],"trusted_sender_credentials":["gateway_sender_GHI"]}],"sender_credentials":{"active":{"password":"gws-PQR-password","username":"gateway_sender_PQR"}}}}

6. CommunicatetheclusterBlocators’IPandportaddressestotheclusterACloudFoundryadministrator.

7. UpdatetheclusterAserviceinstanceusingtheclusterACloudFoundrycredentialstoincludetheclusterBlocators:

$cfupdate-servicewan1-c'{"remote_clusters":[{"remote_locators":["10.0.24.21[55221]","10.0.24.22[55221]","10.0.24.23[55221]"]}]}'Updatingserviceinstancewan1asadmin

8. ToobserveandverifythattheclusterAserviceinstancehasbeencorrectlyupdated,itisnecessarytodeleteandrecreatetheclusterAservicekey.Asdesigned,therecreatedservicekeywillhavethesameuseridentifiersandpasswords;newuniquestringsandpasswordsarenotgenerated.UsetheclusterACloudFoundrycredentialsinthesecommands:

$cfdelete-service-keywan1k1

$cfcreate-service-keywan1k1

TheclusterAservicekeywillnowappearas:

©CopyrightPivotalSoftwareInc,2013-present 61 1.5

Page 62: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Gettingkeyk1forserviceinstancewan1asadmin...

{"distributed_system_id":"1","locators":["10.0.16.21[55221]","10.0.16.22[55221]","10.0.16.23[55221]"],"urls":{"gfsh":"https://cloudcache-1.example.com/gemfire/v1","pulse":"https://cloudcache-1.example.com/pulse"},"users":[{"password":"cl-op-ABC-password","roles":["cluster_operator"],"username":"cluster_operator_ABC"},{"password":"dev-DEF-password","roles":["developer"],"username":"developer_DEF"}],"wan":{"remote_clusters":[{"remote_locators":["10.0.24.21[55221]","10.0.24.22[55221]","10.0.24.23[55221]"]]}],"sender_credentials":{"active":{"password":"gws-GHI-password","username":"gateway_sender_GHI"}}}}

©CopyrightPivotalSoftwareInc,2013-present 62 1.5

Page 63: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

9. UsegfshtocreatetheclusterAgatewaysenderandtheregion.AnyregionoperationsthatoccuraftertheregioniscreatedonclusterA,butbeforetheregioniscreatedonclusterBwillbelost.

ConnectusinggfshandtheclusterA cluster_operator credentials,whichareneededtobeauthorizedforthegatewaysendercreationoperation:

gfsh>connect--url=https://cloudcache-1.example.com/gemfire/v1--use-http--user=cluster_operator_ABC--password=cl-op-ABC-password

CreatetheclusterAgatewaysender.Therequired remote-distributed-system-id optionidentifiesthe distributed-system-

id ofthedestinationcluster.Itis2forthisexample:

gfsh>creategateway-sender--id=send_to_2--remote-distributed-system-id=2--enable-persistence=true

CreatetheclusterAregion.The gateway-sender-id associatesregionoperationswithaspecificgatewaysender.TheregionmusthaveanassociatedgatewaysenderinordertopropagateregioneventsacrosstheWAN.

gfsh>createregion--name=regionX--gateway-sender-id=send_to_2--type=PARTITION_REDUNDANT

10. UsegfshtocreatetheclusterBregion.

ConnectusinggfshandtheclusterB cluster_operator credentials,whichareneededtobeauthorizedforthecreateoperation:

gfsh>connect--url=https://cloudcache-2.example.com/gemfire/v1--use-http--user=cluster_operator_JKL--password=cl-op-JKL-password

CreatetheclusterBregion:

gfsh>createregion--name=regionX--type=PARTITION_REDUNDANT

©CopyrightPivotalSoftwareInc,2013-present 63 1.5

Page 64: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

SetUpanAdditionalBidirectionalInteractionFollowthissequenceofstepstosetupabidirectionaltransferoverWANbetweentwoPCCserviceinstances,onceaninitialsetupisinplaceforafirstpairofPCCserviceinstances.

CallthefirstpairofPCCserviceinstancesAandB.ThissetofdirectionssetsupaninteractionbetweenserviceinstanceAandserviceinstanceC.ServiceinstanceAisalreadycreatedandhasaservicekey.

TheGemFireclusterwithineachserviceinstanceusesanidentifiercalleda distributed_system_id .Thisexampleassumestheassignmentof distributed_system_id=

1forclusterA, distributed_system_id=

2forclusterB,and distributed_system_id=

3forcluster

C.

1. CommunicatetheclusterAlocators’IPandportaddressesand sender_credentials totheclusterCCloudFoundryadministrator.

2. CreatetheclusterCserviceinstanceusingtheclusterCCloudFoundrycredentials.Thisexampleexplicitlysetsthedistributed_system_id .Usea -c optionwiththecommandtospecifythe distributed_system_id ,theclusterAservice

instance’slocators,andtheclusterA sender_credentials :

$cfcreate-servicep-cloudcachewan-clusterwan3-c'{"distributed_system_id":3,"remote_clusters":[{"remote_locators":["10.0.16.21[55221]","10.0.16.22[55221]","10.0.16.23[55221]"],"trusted_sender_credentials":[{"username":"gateway_sender_GHI","password":"gws-GHI-password"}]}]}'

Verifythecompletionofservicecreationpriortocontinuingtothenextstep.Outputfromthe cfservices commandwillshowthe lastoperation as createsucceeded whenservicecreationcompletes.

3. CreatetheservicekeyofclusterC:

$cfcreate-service-keywan3k3

Hereissampleoutputfrom cfservice-keywan3k3 ,whichoutputsdetailsoftheclusterCservicekey:

©CopyrightPivotalSoftwareInc,2013-present 64 1.5

Page 65: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Gettingkeyk3forserviceinstancedestinationasadmin...

{"distributed_system_id":"3","locators":["10.0.32.21[55221]""10.0.32.22[55221]""10.0.32.23[55221]"],"urls":{"gfsh":"https://cloudcache-3.example.com/gemfire/v1","pulse":"https://cloudcache-3.example.com/pulse"},"users":[{"password":"cl-op-STU-password","roles":["cluster_operator"],

©CopyrightPivotalSoftwareInc,2013-present 65 1.5

Page 66: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

],"username":"cluster_operator_STU"},{"password":"dev-VWX-password","roles":["developer"],"username":"developer_VWX"}],"wan":{"remote_clusters":[{"remote_locators":["10.0.16.21[55221]","10.0.16.21[55221]","10.0.16.21[55221]"],"trusted_sender_credentials":["gateway_sender_GHI"]}],"sender_credentials":{"active":{"password":"gws-YZA-password","username":"gateway_sender_YZA"}}}}

4. CommunicatetheclusterClocators’IPandportaddressesand sender_credentials totheclusterACloudFoundryadministrator.

5. UpdatetheclusterAserviceinstanceusingtheclusterACloudFoundrycredentialstoincludetheclusterClocatorsandtheclusterC sender_credentials .TheclusterAserviceinstancemustspecifyas remote_locators and trusted_sender_credentials

thedetailsforallclustersitinteractswith.Forthisexample,thatisbothclustersBandC:

$cfupdate-servicewan1-c'{"remote_clusters":[{"remote_locators":["10.0.24.21[55221]","10.0.24.22[55221]","10.0.24.23[55221]","10.0.32.21[55221]","10.0.32.22[55221]","10.0.32.23[55221]"],"trusted_sender_credentials":[{"username":"gateway_sender_PQR","password":"gws-PQR-password"},{"username":"gateway_sender_YZA","password":"gws-YZA-password"}]}]

©CopyrightPivotalSoftwareInc,2013-present 66 1.5

Page 67: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

}]}'Updatingserviceinstancewan1asadmin

6. ToobserveandverifythattheclusterAserviceinstancehasbeencorrectlyupdated,itisnecessarytodeleteandrecreatetheclusterAservicekey.Asdesigned,therecreatedservicekeywillhavethesameuseridentifiersandpasswords;newuniquestringsandpasswordsarenotgenerated.UsetheclusterACloudFoundrycredentialsinthesecommands:

$cfdelete-service-keywan1k1

$cfcreate-service-keywan1k1

TheclusterAservicekeywillnowappearas:

Gettingkeyk1forserviceinstancewan1asadmin...

{"distributed_system_id":"1","locators":["10.0.16.21[55221]","10.0.16.22[55221]","10.0.16.23[55221]"],"urls":{"gfsh":"https://cloudcache-1.example.com/gemfire/v1","pulse":"https://cloudcache-1.example.com/pulse"},"users":[{"password":"cl-op-ABC-password","roles":["cluster_operator"],"username":"cluster_operator_ABC"},{"password":"dev-DEF-password","roles":["developer"],"username":"developer_DEF"}],"wan":{"remote_clusters":[{"remote_locators":["10.0.24.21[55221]","10.0.24.22[55221]","10.0.24.23[55221]","10.0.32.21[55221]","10.0.32.22[55221]","10.0.32.23[55221]"],"trusted_sender_credentials":["gateway_sender_PQR","gateway_sender_YZA"]

©CopyrightPivotalSoftwareInc,2013-present 67 1.5

Page 68: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

]}],"sender_credentials":{"active":{"password":"gws-GHI-password","username":"gateway_sender_GHI"}}}}

7. UsegfshtocreatetheclusterAgatewaysenderandaltertheexistingregion.

ConnectusinggfshandtheclusterA cluster_operator credentials,whichareneededtobeauthorizedforthegatewaysendercreationoperation:

gfsh>connect--url=https://cloudcache-1.example.com/gemfire/v1--use-http--user=cluster_operator_ABC--password=cl-op-ABC-password

CreatetheclusterAgatewaysender.Therequired remote-distributed-system-id optionidentifiesthe distributed-system-

id ofthedestinationcluster.Itis3forthisexample:

gfsh>creategateway-sender--id=send_to_3--remote-distributed-system-id=3--enable-persistence=true

AltertheexistingclusterAregionsothatitspecifiesallgatewaysendersassociatedwiththeregion.Therearetwogatewaysendersinthisexample,onethatgoestoclusterBandasecondthatgoestoclusterC.

gfsh>alterregion--name=regionX--gateway-sender-id=send_to_2,send_to_3

8. UsegfshtocreatetheclusterCgatewaysenderandregion.

ConnectusinggfshandtheclusterC cluster_operator credentials,whichareneededtobeauthorizedforthegatewaysendercreationoperation:

gfsh>connect--url=https://cloudcache-3.example.com/gemfire/v1--use-http--user=cluster_operator_STU--password=cl-op-STU-password

CreatetheclusterCgatewaysender:

gfsh>creategateway-sender--id=send_to_1--remote-distributed-system-id=1--enable-persistence=true

CreatetheclusterCregion:

gfsh>createregion--name=regionX--gateway-sender-id=send_to_1--type=PARTITION_REDUNDANT

©CopyrightPivotalSoftwareInc,2013-present 68 1.5

Page 69: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

SetUpanAdditionalUnidirectionalInteractionFollowthissequenceofstepstosetupanadditionalunidirectionaltransferoverWANbetweentwoPCCserviceinstances,onceaninitialsetupisinplaceforafirstpairofPCCserviceinstances.

CallthefirstpairofPCCserviceinstancesAandB.ThissetofdirectionssetsupaunidirectionalinteractionfromserviceinstanceAtoserviceinstanceC.ServiceinstanceAisalreadycreatedandhasaservicekey.

TheGemFireclusterwithineachserviceinstanceusesanidentifiercalleda distributed_system_id .Thisexampleassumestheassignmentof distributed_system_id=

1forclusterA, distributed_system_id=

2forclusterB,and distributed_system_id=

3forcluster

C.

1. CommunicatetheclusterAlocators’IPandportaddressesand sender_credentials totheclusterCCloudFoundryadministrator.

2. CreatetheclusterCserviceinstanceusingtheclusterCCloudFoundrycredentials.Thisexampleexplicitlysetsthedistributed_system_id .Usea -c optionwiththecommandtospecifythe distributed_system_id ,theclusterAservice

instance’slocators,andtheclusterA sender_credentials :

$cfcreate-servicep-cloudcachewan-clusterwan3-c'{"distributed_system_id":3,"remote_clusters":[{"remote_locators":["10.0.16.21[55221]","10.0.16.22[55221]","10.0.16.23[55221]"],"trusted_sender_credentials":[{"username":"gateway_sender_GHI","password":"gws-GHI-password"}]}]}'

Verifythecompletionofservicecreationpriortocontinuingtothenextstep.Outputfromthe cfservices commandwillshowthe lastoperation as createsucceeded whenservicecreationcompletes.

3. CreatetheservicekeyofclusterC:

$cfcreate-service-keywan3k3

NotethattheclusterCservicekeywillcontainunneeded(fortheunidirectionalsetup)butautomaticallycreatedsender_credentials .Hereissampleoutputfrom cfservice-keywan3k3 ,whichoutputsdetailsoftheclusterCservicekey:

©CopyrightPivotalSoftwareInc,2013-present 69 1.5

Page 70: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Gettingkeyk3forserviceinstancedestinationasadmin...

{"distributed_system_id":"3","locators":["10.0.32.21[55221]""10.0.32.22[55221]""10.0.32.23[55221]"],"urls":{"gfsh":"https://cloudcache-3.example.com/gemfire/v1","pulse":"https://cloudcache-3.example.com/pulse"},"users":[{"password":"cl-op-STU-password","roles":["cluster_operator"],

©CopyrightPivotalSoftwareInc,2013-present 70 1.5

Page 71: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

],"username":"cluster_operator_STU"},{"password":"dev-VWX-password","roles":["developer"],"username":"developer_VWX"}],"wan":{"remote_clusters":[{"remote_locators":["10.0.16.21[55221]","10.0.16.21[55221]","10.0.16.21[55221]"],"trusted_sender_credentials":["gateway_sender_GHI"]}],"sender_credentials":{"active":{"password":"gws-YZA-password","username":"gateway_sender_YZA"}}}}

4. CommunicatetheclusterClocators’IPandportaddressestotheclusterACloudFoundryadministrator.

5. UpdatetheclusterAserviceinstanceusingtheclusterACloudFoundrycredentialstoincludetheclusterClocators.TheclusterAserviceinstancemustspecifyas remote_locators thedetailsforallclustersitinteractswith.Forthisexample,thatisbothclustersBandC:

$cfupdate-servicewan1-c'{"remote_clusters":[{"remote_locators":["10.0.24.21[55221]","10.0.24.22[55221]","10.0.24.23[55221]","10.0.32.21[55221]","10.0.32.22[55221]","10.0.32.23[55221]"]}]}'Updatingserviceinstancewan1asadmin

6. ToobserveandverifythattheclusterAserviceinstancehasbeencorrectlyupdated,itisnecessarytodeleteandrecreatetheclusterAservicekey.Asdesigned,therecreatedservicekeywillhavethesameuseridentifiersandpasswords;newuniquestringsandpasswordsarenotgenerated.UsetheclusterACloudFoundrycredentialsinthesecommands:

©CopyrightPivotalSoftwareInc,2013-present 71 1.5

Page 72: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

$cfdelete-service-keywan1k1

$cfcreate-service-keywan1k1

TheclusterAservicekeywillnowappearas:

Gettingkeyk1forserviceinstancewan1asadmin...

{"distributed_system_id":"1","locators":["10.0.16.21[55221]","10.0.16.22[55221]","10.0.16.23[55221]"],"urls":{"gfsh":"https://cloudcache-1.example.com/gemfire/v1","pulse":"https://cloudcache-1.example.com/pulse"},"users":[{"password":"cl-op-ABC-password","roles":["cluster_operator"],"username":"cluster_operator_ABC"},{"password":"dev-DEF-password","roles":["developer"],"username":"developer_DEF"}],"wan":{"remote_clusters":[{"remote_locators":["10.0.24.21[55221]","10.0.24.22[55221]","10.0.24.23[55221]","10.0.32.21[55221]","10.0.32.22[55221]","10.0.32.23[55221]"

©CopyrightPivotalSoftwareInc,2013-present 72 1.5

Page 73: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

"10.0.32.23[55221]"]]}],"sender_credentials":{"active":{"password":"gws-GHI-password","username":"gateway_sender_GHI"}}}}

7. UsegfshtocreatetheclusterAgatewaysenderandaltertheexistingregion.

ConnectusinggfshandtheclusterA cluster_operator credentials,whichareneededtobeauthorizedforthegatewaysendercreationoperation:

gfsh>connect--url=https://cloudcache-1.example.com/gemfire/v1--use-http--user=cluster_operator_ABC--password=cl-op-ABC-password

CreatetheclusterAgatewaysender.Therequired remote-distributed-system-id optionidentifiesthe distributed-system-

id ofthedestinationcluster.Itis3forthisexample:

gfsh>creategateway-sender--id=send_to_3--remote-distributed-system-id=3--enable-persistence=true

AltertheexistingclusterAregionsothatitspecifiesallgatewaysendersassociatedwiththeregion.Therearetwogatewaysendersinthisexample,onethatgoestoclusterBandasecondthatgoestoclusterC.

gfsh>alterregion--name=regionX--gateway-sender-id=send_to_2,send_to_3

8. UsegfshtocreatetheclusterCregion.

ConnectusinggfshandtheclusterC cluster_operator credentials,whichareneededtobeauthorizedforthecreateoperation:

gfsh>connect--url=https://cloudcache-3.example.com/gemfire/v1--use-http--user=cluster_operator_STU--password=cl-op-STU-password

CreatetheclusterBregion:

gfsh>createregion--name=regionX--type=PARTITION_REDUNDANT

©CopyrightPivotalSoftwareInc,2013-present 73 1.5

Page 74: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

SettingUpServersforanInlineCacheInthistopic

ImplementaCacheLoaderforReadMisses

ImplementanAsynchronousEventQueueandCacheListenerforWriteBehind

ImplementaCacheWriterforWriteThrough

ConfigureUsinggfshforWriteBehind

ConfigureUsinggfshforWriteThrough

SeeTheInlineCacheforanintroductorydescriptionofaninlinecache.TheimplementationofaninlinecacherequirescustomcodedeployedontheGemFireserverstointeractwiththebackenddatastoreforreadmissesandforwrites.

Thecustomcodealwaysimplementsacacheloaderforreadmisses.Thecustomcodeandconfigurationsetupdiffersforwrites.Awrite-behindimplementationusesanasynchronouseventqueue(AEQ)andanAEQlistener.Awrite-throughimplementationusesacachewriter.

ImplementaCacheLoaderforReadMissesAnapp’sgetoperationisacacheread.Ifthedesiredentryisintheregion,itisacachehit,andthevalueisquicklyreturnedtotheapp.Ifthedesiredentryisnotintheregion,itisacachemiss.Foraninlinecache,thatvalueisacquiredfromthebackenddatastore.Youimplementthe CacheLoader interfacetohandlecachemisses.Eachcachemissinvokesthe CacheLoader.load method.The CacheLoader.load methodmustacquireandreturnthevalueforthespecifiedkey.SeethePivotalGemFireAPIDocumentation fortheinterface’sdetails.

©CopyrightPivotalSoftwareInc,2013-present 74 1.5

Page 75: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Thevaluereturnedfromthe CacheLoader.load methodwillbeputintotheregionandthenreturnedtothewaitingapp,completingtheapp’sgetoperation.Sincetheappblockswhilewaitingfortheresultofthegetoperation,designthe CacheLoader.load methodtoacquirethevalueasquicklyaspossible.

The CacheLoader implementationmustbethread-safe.Youwilldeploytheimplementationtotheserversduringconfiguration.

The CacheLoader.load methodqueriesthebackenddatastoreforthedesiredentry.Thatcommunicationbetweentheserverprocessandthebackenddatastorerequiresaconnection,andestablishingaconnectionislikelytouseasetofcredentials.YouprovideacustomimplementationoftheCacheLoader.initialize methodtoestablishtheconnection.

Youspecifythecredentialsduringconfigurationwiththegfsh createregion commandbyaddingtheJSONdescriptiontothe --cache-loader option.ThecredentialswillbepassedasparameterstotheinvokedCacheLoader.initialize methodaspartofthe CacheLoader instanceconstruction.

ImplementanAsynchronousEventQueueandCacheListenerforWriteBehindAnapp’sputoperationisacachewrite.Forawrite-behindimplementation,thevalueisplacedintotheregion,anditwillalsobeasynchronouslywrittentothebackenddatastore,allowingtheapp’swriteoperationtocompletewithoutwaitingforthebackend-data-storewritetocomplete.

©CopyrightPivotalSoftwareInc,2013-present 75 1.5

Page 76: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Anasynchronouseventqueue(AEQ)toqueuethewriteeventstogetherwithanimplementationoftheAsyncEventListener interfaceprovidesthedesiredbehavior.SeethePivotalGemFireAPIDocumentationfortheinterface’sdetails.

WithaconfiguredAEQ,allputoperationsfirstcreateorupdatetheentryinthehostedregionontheserverandthenaddtheeventtotheAEQ.

Youprovideacustomimplementationofthe AsyncEventListener interface.YourAsyncEventListener.processEvents method’staskistoiteratethroughtheeventsintheAEQ,writingeach

newlycreatedorupdatedentryintheAEQtothebackenddatastore.The AsyncEventListener.processEvents

methodisinvokedwheneithertheAEQholdsaconfiguredquantityofevents,oraconfiguredquantityoftimehaselapsedsincetheearliestentryenteredtheAEQ.

Thecommunicationbetweentheserverprocessandthebackenddatastoretodothewritesrequiresaconnection,andestablishingaconnectionislikelytouseasetofcredentials.Youprovideacustomimplementationofthe AsyncEventListener.initialize methodtoestablishtheconnection.

Youspecifythecredentialsduringconfigurationinthegfsh createasync-event-queue commandwiththe--listener-param optionasdescribedinConfigureUsinggfshforWriteBehind.Thecredentialswillbe

passedasparameterstotheinvoked AsyncEventListener.initialize methodaspartof AsyncEventListener

instanceconstruction.

©CopyrightPivotalSoftwareInc,2013-present 76 1.5

Page 77: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

YourconfigurationwillspecifytheAEQaspersistent,suchthatitdoesnotlosequeuedbackend-data-storewritesacrossunexpectedserverrestarts.

ImplementaCacheWriterforWriteThroughAnapp’sputoperationisacachewrite.Forawrite-throughimplementation,thevaluewillbewrittentothebackenddatastorepriortobeingplacedintotheregion.Afterbothwrites,theapp’sputoperationcompletes.

Animplementationofthe CacheWriter interfaceimplementationprovidesthecorrectbehaviorforwritethrough.SeethePivotalGemFireAPIDocumentation fortheinterface’sdetails.Youprovideacustomimplementationofthe CacheWriter.beforeCreate methodtohandlebackend-data-storewritesforputoperationsthataddanewentrytotheregion.YouprovideacustomimplementationoftheCacheWriter.beforeUpdate methodtohandlebackend-data-storewritesforputoperationsthatmodifyan

existingentryintheregion.Youprovideacustomimplementationof CacheWriter.beforeDestroy ,asappropriate,tohandleanupdateofthebackenddatastoreforaregionoperationthatremovesanentry.

The CacheWriter implementationmustbethread-safe.Youwilldeploytheimplementationtotheserversduringconfiguration.

©CopyrightPivotalSoftwareInc,2013-present 77 1.5

Page 78: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Communicationbetweentheserverprocessandthebackenddatastoretodothewritesrequiresaconnection,andestablishingaconnectionislikelytouseasetofcredentials.Youprovideacustomimplementationofthe CacheWriter.initialize methodtoestablishtheconnection.

Specifythecredentialsinthegfsh createregion commandduringconfigurationasdescribedinConfigureUsinggfshforWriteThrough.AddtheJSONdescriptiontothe --cache-writer option.Thecredentialswillbepassedasparameterstotheinvoked CacheWriter.initialize methodaspartofthe CacheWriter instanceconstruction.

ConfigureUsinggfshforWriteBehindFollowthisproceduretodeployyourcustomimplementationsoftheinterfacestotheservers,createtheAEQ,andconfiguretheregiontousetheAEQandthedeployedinterfaceimplementations.

1. FollowthedirectionsinConnectwithgfshoverHTTPStoconnecttotheclusterwiththecluster-operatorcredentialsfromtheservicekey.

©CopyrightPivotalSoftwareInc,2013-present 78 1.5

Page 79: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

2. DeploythecacheloaderandtheAEQlistenercodetotheserverswithinthePCCserviceinstance:

gfsh>deploy--jars=/path/to/MyLoader.jar,/path/to/MyListener.jar

3. CreatetheAEQ,assigninganamefortheAEQ(called WB-AEQ inthisexample),specifyingtheAEQlistener,andspecifyingtheAEQlistener’sparameters:

gfsh>createasync-event-queue--id=WB-AEQ\--parallel=true--persistent\--listener=com.myCompany.MyListener\--listener-param=url#jdbc:db2:SAMPLE,username#admin,password#gobbledeegook

ThepersistenceoftheAEQusesthedefaultdiskstore,sincenodiskstoreisspecifiedinthiscommand.

4. Createtheregion,specifyingthecacheloader,theAEQlistener,andtheassignedAEQname.

gfsh>createregion--name=myRegion--type=PARTITION_REDUNDANT\--cache-loader=com.myCompany.MyLoader{'url':'jdbc:db2:SAMPLE','username':'admin',password:'gobbledeegook'}--cache-listener=com.myCompany.MyListener--async-event-queue-id=WB-AEQ

ConfigureUsinggfshforWriteThroughFollowthisproceduretodeployyourcustomimplementationsoftheinterfacestotheservers,andconfiguretheregiontousethedeployedinterfaceimplementations.

1. FollowthedirectionsinConnectwithgfshoverHTTPStoconnecttotheclusterwiththecluster-operatorcredentialsfromtheservicekey.

2. DeploythecacheloaderandthecachewritercodetotheserverswithinthePCCserviceinstance:

gfsh>deploy--jars=/path/to/MyLoader.jar,/path/to/MyWriter.jar

3. Createtheregion,specifyingthecacheloaderandthecachewriter:

gfsh>createregion--name=myRegion--type=PARTITION_REDUNDANT\--cache-loader=com.myCompany.MyLoader{'url':'jdbc:db2:SAMPLE','username':'admin',password:'gobbledeegook'}--cache-writer=com.myCompany.MyWriter{'url':'jdbc:db2:SAMPLE','username':'admin',password:'gobbledeegook'}

©CopyrightPivotalSoftwareInc,2013-present 79 1.5

Page 80: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

©CopyrightPivotalSoftwareInc,2013-present 80 1.5

Page 81: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

DeletingaServiceInstanceYoucandeleteserviceinstancesusingthecfCLI.Beforedoingso,youmustremoveanyexistingservicekeysandappbindings.

1. Run cf delete-service-key SERVICE-INSTANCE-NAME KEY-NAME todeletetheservicekey.

2. Run cf unbind-service APP-NAME SERVICE-INSTANCE-NAME tounbindyourappfromtheserviceinstance.

3. Run cf delete-service SERVICE-INSTANCE-NAME todeletetheserviceinstance.

$cfdelete-service-keymy-cloudcachemy-service-key$cfunbind-servicemy-appmy-cloudcache$cfdelete-servicemy-cloudcache

Deletionsareasynchronous.Run cfservices toviewthecurrentstatusoftheserviceinstancedeletion.

©CopyrightPivotalSoftwareInc,2013-present 81 1.5

Page 82: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

UpdatingaPivotalCloudCacheServiceInstanceInthistopic

RebalancingaCluster

RestartingaCluster

AboutChangestotheServicePlan

Youcanapplyalloptionalparameterstoanexistingserviceinstanceusingthe cfupdate-service command.Youcan,forexample,scaleupaclusterbyincreasingthenumberofservers.

Previouslyspecifiedoptionalparametersarepersistedthroughsubsequentupdates.Toreturntheserviceinstancetodefaultvalues,youmustexplicitlyspecifythedefaultsasoptionalparameters.

Forexample,ifyoucreateaserviceinstancewithfiveserversusingaplanthathasadefaultvalueoffourservers:

$cfcreate-servicep-cloudcachesmallmy-cloudcache-c'{"num_servers":5}'

Andyousetthe new_size_percentage to50%:

$cfupdate-servicemy-cloudcache-c'{"new_size_percentage":50}'

Thentheresultingserviceinstancehas 5 serversand new_size_percentage of50%ofheap.

RebalancingaClusterWhenupdatingaclustertoincreasethenumberofservers,theavailableheapsizeisincreased.Whenthishappens,PCCautomaticallyrebalancesdatainthecachetodistributedataacrossthecluster.

Thisautomaticrebalancingdoesnotoccurwhenaserverleavestheclusterandlaterrejoins,forexamplewhenaVMisre-created,ornetworkconnectivitylostandrestored.Inthiscase,youmustmanuallyrebalancetheclusterusingthegfsh rebalance command whileauthenticatedasaclusteroperator.

RestartingaClusterRestartingaclusterstopsandrestartseachclustermemberinturn,issuingarebalanceaseachrestartedserverjoinsthecluster.

Thereisapotentialfordatalosswhenrestartingacluster;theregiontypeandnumberofserversintheclusterdeterminewhetherornotdataislost.

Alldataislostwhenrestartingaclusterwiththeseregiontypesandnumberofservers:

Partitionedregionswithoutredundancyorpersistence.Aseachserverisstopped,theregionentrieshostedinbucketsonthatstoppedserverarepermanentlylost.Replicatedregionswithoutpersistenceonaclusterthathasasingleserver.ADevPlanclusterlosesalldata,asthereisasingleserverandnoregionpersistence.

Nodataislostwhenrestartingtheclusterwiththeseregiontypesandnumberofservers:

Replicatedregionsforclusterswithmorethanoneserver.

Note:Youmustfirstconnectwithgfshbeforeyoucanusethe rebalance command.

warning:Restartofaclustermaycausedataloss.

©CopyrightPivotalSoftwareInc,2013-present 82 1.5

Page 83: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Replicatedregionsforclusterswithmorethanoneserver.Persistentregionswillnotlosedata,asalldataisonthediskandavailableuponrestartofaserver.Partitionedregionswithredundancy.Whentheserverwiththeprimarycopyofanentryisstopped,theredundantcopystillexistsonarunningserver.

Torestartacluster,usetheclusteroperatorcredentialstorunthecommand:

cfupdate-serviceSERVICE-INSTANCE-NAME-c'{"restart":true}'

Forexample:

$cfupdate-servicemy-cluster-c'{"restart":true}'

AboutChangestotheServicePlanYourPCFoperatorcanchangedetailsoftheserviceplanavailableontheMarketplace.Ifyouroperatorchangesthedefaultvalueofoneoftheoptionalparameters,thisdoesnotaffectexistingserviceinstances.

However,ifyouroperatorchangestheallowedvaluesofoneoftheoptionalparameters,existinginstancesthatexceedthenewlimitsarenotaffected,butanysubsequentserviceupdatesthatchangetheoptionalparametermustadheretothenewlimits.

Forexample,ifthePCFoperatorchangestheplanbydecreasingthemaximumvaluefor num_servers ,anyfutureserviceupdatesmustadheretothenew num_servers valuelimit.Youmightseethefollowingerrormessagewhenattemptingtoupdateaserviceinstance:

$cfupdate-servicemy-cloudcache-c'{"num_servers":5}'Updatingserviceinstancemy-cloudcacheasadmin...FAILEDServererror,statuscode:502,errorcode:10001,message:Servicebrokererror:Servicecannotbeupdatedatthistime,pleasetryagainlaterorcontactyouroperatorformoreinformation

Thiserrormessageindicatesthattheoperatorhasmadeanupdatetotheplanusedbythisserviceinstance.Youmustwaitfortheoperatortoapplyplanchangestoallserviceinstancesbeforeyoucanmakefurtherserviceinstanceupdates.

©CopyrightPivotalSoftwareInc,2013-present 83 1.5

Page 84: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

gfshCommandRestrictionsDevelopersmayinvokeall gfsh commands.Givencredentialswithsufficientpermissions,those gfsh

commandwillbeexecuted.However,notall gfsh commandsaresupported.Aninvocationofanunsupportedcommandmayleadtoincorrectresults.Thoseresultsrangefromineffectiveresultstoinconsistentregionentries.Donotusetheselisted gfsh commands;eachhasanexplanationwhyitmustnotbeused.

These gfshstart

commandswillbringupmemberscontrarytotheconfiguredplan.Theirconfiguration

willbewrong,andtheirexistenceislikelytocontributetodataloss.Sincetheyarenotpartoftheconfiguredplan,anyupgradewillnotincludethem,andiftheyweretostoporcrash,theBOSHDirectorwillnotrestartthem.

gfshstartlocator

gfshstartserver

Theseclusterstopcommandswilltemporarilystopthememberorcluster.However,theBOSHDirectorwillnoticethatmembersarenotrunningandrestartthem.So,thesecommandswillbeineffective:

gfshstoplocator

gfshstopserver

gfshshutdown

TheseLucene-relatedcommandsarenotsupported:

gfshcreateluceneindex

gfshdescribeluceneindex

gfshdestroyluceneindex

gfshlistluceneindexes

gfshsearchlucene

TheseJNDIbinding-relatedcommandsarenotsupported:

gfshcreatejndi-binding

gfshdescribejndi-binding

gfshdestroyjndi-binding

gfshlistjndi-binding

©CopyrightPivotalSoftwareInc,2013-present 84 1.5

Page 85: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Thisconfigurecommandwillinstillconfigurationcontrarytothealready-configuredplan.Sinceitisnotpartoftheconfiguredplan,anyupgradewillnotincludeit.Therefore,donotuse:

gfshconfigurepdx

Thecreateofagatewayreceiverwillneverbeappropriateforanysituation.ThePCCclusterwillalreadyhavegatewayreceivers,andthereisnosituationinwhichtheclustercanbenefitfromcreatingmore.Therefore,donotuse:

gfshcreategatewayreceiver

DoNotExportfromaGemFireClustertoaPCCClusterWhiletheexpectationisthatconfigurationanddatacanbeexportedfromaGemFireclusterandthenimportedintoaPCCcluster,thisdoesnotwork.Usingexportandimportcommandswillnothavethedesiredeffectofmigrationfromoneclustertoanother.TheimportofclusterconfigurationrequiresastatethatcannotbeprovidedbyaPCCcluster.ThePCCclusterwillalreadyhaveitsconfiguration,anduponrestartorupgrade,thatsameconfigurationwillbeused.Giventhattheconfigurationcannotbeimported,dataimportisproblematic.Therefore,donotuse:

gfshimportcluster-configuration

gfshimportdata

Note:Therestrictionhereontheuseofthe gfshimportdata doesnotapplytotheprocedureformigratingfromanexistingPCCclusterthatdoesnotuseTLSforencryptiontoaPCCclusterthatdoesuseTLSforencryption.SeeMigratingtoaTLS-EnabledClusterforthatprocedure.

©CopyrightPivotalSoftwareInc,2013-present 85 1.5

Page 86: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

AccessingaServiceInstanceInthistopic

CreateServiceKeys

ConnectwithgfshoverHTTPSCreateaTruststore

EstablishtheConnectionwithHTTPS

EstablishtheConnectionwithHTTPSinaDevelopmentEnvironment

DetermineYourTLSTermination

Afteryouhavecreatedaserviceinstance,youcanstartaccessingit.Usually,yousetupcacheregionsbeforeusingyourserviceinstancefromadeployedCFapp.Youcandothiswiththegfshcommandlinetool.Toconnect,youmustsetupaservicekey.

CreateServiceKeysServicekeysprovideawaytoaccessyourserviceinstanceoutsidethescopeofadeployedCFapp.Runcfcreate-service-keySERVICE-INSTANCE-NAMEKEY-NAME

tocreateaservicekey.Replace

SERVICE-INSTANCE-NAME withthenameyouchoseforyourserviceinstance.Replace KEY-NAME withanameofyourchoice.Youcanusethisnametorefertoyourservicekeywithothercommands.

$cfcreate-service-keymy-cloudcachemy-service-key

Run cfservice-keySERVICE-INSTANCE-NAMEKEY-NAME

toviewthenewlycreatedservicekey.

$cfservice-keymy-cloudcachemy-service-key

The cfservice-key returnsoutputinthefollowingformat:

©CopyrightPivotalSoftwareInc,2013-present 86 1.5

Page 87: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

{"distributed_system_id":"0","locators":["10.244.0.66[55221]","10.244.0.4[55221]","10.244.0.3[55221]"],"urls":{"gfsh":"https://cloudcache-1.example.com/gemfire/v1","pulse":"https://cloudcache-1.example.com/pulse"},"users":[{"password":"developer-password","roles":["developer"],"username":"developer_XXX"},{"password":"cluster_operator-password","roles":["cluster_operator"],"username":"cluster_operator_XXX"}],"wan":{"sender_credentials":{"active":{"password":"gws-XXX-password","username":"gateway_sender_XXX"}}}}

TheservicekeyspecifiestheuserrolesandURLsthatarepredefinedforinteractingwithandwithinthecluster:

Theclusteroperatoradministersthepool,performingoperationssuchascreatinganddestroyingregions,andcreatinggatewaysenders.Theidentifierassignedforthisroleisoftheformcluster_operator_XXX ,where XXX isauniquestringgenerateduponserviceinstancecreation

andincorporatedinthisuserrole’sname.

Thedeveloperdoeslimitedclusteradministrationsuchasregioncreation,andthedeveloperroleisexpectedtobeusedbyapplicationsthatareinteractingwithregionentries.ThedeveloperdoesCRUDoperationsonregions.Theidentifierassignedforthisroleisoftheform developer_XXX ,whereXXX isauniquestringgenerateduponserviceinstancecreationandincorporatedinthisuserrole’s

©CopyrightPivotalSoftwareInc,2013-present 87 1.5

Page 88: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

name.

Thegatewaysenderwritesdatathatissenttoanothercluster.Theidentifierassignedforthisroleisoftheform gateway_sender_XXX ,where XXX isauniquestringgenerateduponserviceinstancecreationandincorporatedinthisuserrole’sname.

AURLusedtoconnectthegfshclienttotheserviceinstance

AURLusedtoviewthePulsedashboardinawebbrowser,whichallowsmonitoringoftheserviceinstancestatus.Usethedevelopercredentialstoauthenticate.

ConnectwithgfshoverHTTPSWhenconnectingoverHTTPS,youmustusethesamecertificateyouusetosecuretrafficintoPivotalApplicationService(PAS);thatis,thecertificateyouusewhereyourTLSterminationoccurs.SeeDetermineYourTLSTermination.

Beforeyoucanconnect,youmustcreateatruststore.

CreateaTruststore

Tocreateatruststore,usethesamecertificateyouusedtoconfigureTLStermination.Wesuggestusingthe keytool commandlineutilitytocreateatruststorefile.

1. LocatethecertificateyouusetoconfigureTLStermination.SeeDetermineYourTLSTermination.

2. Usingyourcertificate,runthe keytool command:keytool-import-fileCERTIFICATE.CER-keystoreTRUSTSTORE-FILE-PATH-storetypeJKS

where

CERTIFICATE.CER isyourcertificatefileTRUSTSTORE-FILE-PATH isthepathtothelocationwhereyouwanttocreatethetruststore

file,includingthenameyouwanttogivethefile

3. Whenyourunthiscommand,youarepromptedtoenterakeystorepassword.Createapasswordandrememberit!

4. Whenpromptedforthecertificatedetails,enteryestotrustthecertificate.

Thefollowingexampleshowshowtorun keytool andwhattheoutputlookslike:

©CopyrightPivotalSoftwareInc,2013-present 88 1.5

Page 89: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

$keytool-import-file/tmp/loadbalancer.cer-keystore/tmp/truststore/prod.myTrustStore-storetypeJKSEnterkeystorepassword:Re-enternewpassword:Owner:CN=*.url.example.com,OU=CloudFoundry,O=Pivotal,L=NewYork,ST=NewYork,C=USIssuer:CN=*.url.example.com,OU=CloudFoundry,O=Pivotal,L=NewYork,ST=NewYork,C=USSerialnumber:bd84912917b5b665Validfrom:SatJul2909:18:43EDT2017until:MonApr0709:18:43EDT2031Certificatefingerprints:MD5:A9:17:B1:C9:6C:0A:F7:A3:56:51:6D:67:F8:3E:94:35SHA1:BA:DA:23:09:17:C0:DF:37:D9:6F:47:05:05:00:44:6B:24:A1:3D:77SHA256:A6:F3:4E:B8:FF:8F:72:92:0A:6D:55:6E:59:54:83:30:76:49:80:92:52:3D:91:4D:61:1C:A1:29:D3:BD:56:57Signaturealgorithmname:SHA256withRSAVersion:3

Extensions:

#1:ObjectId:2.5.29.10Criticality=trueBasicConstraints:[CA:truePathLen:0]

#2:ObjectId:2.5.29.11Criticality=falseSubjectAlternativeName[DNSName:*.sys.url.example.comDNSName:*.apps.url.example.comDNSName:*.uaa.sys.url.example.comDNSName:*.login.sys.url.example.comDNSName:*.url.example.comDNSName:*.ws.url.example.com]

Trustthiscertificate?[no]:yesCertificatewasaddedtokeystore

EstablishtheConnectionwithHTTPS

Afteryouhavecreatedthetruststore,youcanusethePivotalGemFirecommandlineinterface, gfsh ,toconnecttotheclusteroverHTTPS.

1. Acquirethecorrect gfsh bydownloadingthecorrectPivotalGemFireZIParchivefromPivotalNetwork .ThecorrectversionofPivotalGemFiretodownloadisanypatchversionofthePivotalGemFireversionlistedinthePCCreleasenotes.AlinktothePCCreleasenotesisonPivotalNetworkintheReleaseDetailsforyourPCCversion.NotethataJDKorJREwillalsoberequired,asspecifiedinthereleasenotes.

Note:Anattempttousethewrong gfsh versionwillresultinanerrormessageindicating

©CopyrightPivotalSoftwareInc,2013-present 89 1.5

Page 90: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

2. UnzipthePivotalGemFireZIParchive. gfsh iswithinthe bin directoryintheexpandedPivotalGemFire.Use gfsh withUnixor gfsh.bat withWindows.

3. Run gfsh ,andthenissuea connect commandthatspecifiesanHTTPSgfshURLoftheform:

connect--use-http=true--url=HTTPS-gfsh-URL--trust-store=TRUSTSTORE-FILE-PATH--trust-store-password=PASSWORD--user=CLUSTER-OPERATOR-XXX--password=CLUSTER-OPERATOR-PASSWORD

TheHTTPS-gfsh-URL,theclusteroperatorusername,anditspasswordareintheservicekey.SeeCreateServiceKeysforinstructionsonhowtoviewtheservicekey.TRUSTSTORE-FILE-PATHisthepathtothetruststorefileyoucreatedinCreateaTruststore,andPASSWORDistheassociatedtruststorepasswordyoucreated.Ifyouomitthe --trust-store-password optionfromthecommandline,youwillbepromptedtoenterthepassword.

EstablishtheConnectionwithHTTPSinaDevelopmentEnvironment

Whenworkinginanon-production,developmentenvironment,adevelopermaychoosetoworkinalesssecuremannerbyeliminatingthetruststoreandSSLmutualauthentication.

Thestepstoestablishthe gfsh connectionbecome:

1. Acquire gfsh bydownloadingthecorrectPivotalGemFireZIParchivefromPivotalNetwork .ThecorrectversionofPivotalGemFiretodownloadisanypatchversionofthePivotalGemFireversionlistedinthePCCreleasenotes.AlinktothePCCreleasenotesisonPivotalNetworkintheReleaseDetailsforyourPCCversion.NotethataJDKorJREwillalsoberequired,asspecifiedinthereleasenotes.

2. UnzipthePivotalGemFireZIParchive. gfsh iswithinthe bin directoryintheexpandedPivotalGemFire.Use gfsh withUnixor gfsh.bat withWindows.

3. Run gfsh ,andthenissuea connect commandthatspecifiesanHTTPSURLoftheform:

connect--use-http=true--use-ssl--skip-ssl-validation=true--url=<HTTPS-gfsh-URL>--user=<cluster_operator_XXX>--password=<cluster_operator-password>

Theclusteroperatorusernameandpasswordareintheservicekey.SeeCreateServiceKeysforinstructionsonhowtoviewtheservicekey.

thatthereisaversionmismatch.

©CopyrightPivotalSoftwareInc,2013-present 90 1.5

Page 91: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Ateachofthenine gfsh promptsthataskforkeystore,truststore,andSSLdetails,hit Enter tostepthroughthepromptsandconnect.

DetermineYourTLSTerminationToconnectyourPCCserviceinstanceusing gfsh ,youwillneedthecertificatefromwhereyourTLSterminationoccurs.TheTLSterminationmaybeattheGorouter,attheHAProxy,oratyourloadbalancer.RequesttheneededcertificatefromyourPivotalCloudFoundry(PCF)operator.

ThePCFoperatordeterminesthelocationofyourTLStermination:

1. BringuptheOpsManagerdashboard.

2. ClickonthePASproducttile.

3. ClickontheNetworkingsectionundertheSettingstab.

ThechoiceofTLSterminationislabeledwithConfiguresupportfortheX-Forwarded-Client-Cert.

IfthechoicenamestheRouterorHAProxy,thecertificateisinthesamesection,labeledwithCertificateandPrivateKeyforHAProxyandRouter.

Ifthechoicenamestheinfrastructureloadbalancer,thenthePCFoperatorcanretrievethecertificatefromtheloadbalancer.

©CopyrightPivotalSoftwareInc,2013-present 91 1.5

Page 92: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

UsingPivotalCloudCacheInthistopic

CreateRegionswithgfsh

WorkingwithDiskStoresCreateaDiskStore

DestroyaDiskStore

JavaBuildPackRequirements

BindanApptoaServiceInstance

UsethePulseDashboard

AccessServiceInstanceMetrics

AccessServiceBrokerMetrics

ExportgfshLogs

DeployanAppJARFiletotheServers

UsetheGemFire-GreenplumConnector

CreateRegionswithgfshAfterconnectingwithgfshasa cluster_operator_XXX ,youcandefineanewcacheregion.

Thefollowingcommandcreatesapartitionedregionwithasingleredundantcopy:

gfsh>createregion--name=my-cache-region--type=PARTITION_REDUNDANT_HEAP_LRUMember|Status----------------|-------------------------------------------------------cacheserver-z2-1|Region"/my-cache-region"createdon"cacheserver-z2-1"cacheserver-z3-2|Region"/my-cache-region"createdon"cacheserver-z3-2"cacheserver-z1-0|Region"/my-cache-region"createdon"cacheserver-z1-0"cacheserver-z1-3|Region"/my-cache-region"createdon"cacheserver-z1-3"

SeeRegionDesignforguidelinesonchoosingaregiontype.

Youcantestthenewlycreatedregionbywritingandreadingvalueswithgfsh:

©CopyrightPivotalSoftwareInc,2013-present 92 1.5

Page 93: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

gfsh>put--region=/my-cache-region--key=test--value=thevalueResult:trueKeyClass:java.lang.StringKey:testValueClass:java.lang.StringOldValue:NULL

gfsh>get--region=/my-cache-region--key=testResult:trueKeyClass:java.lang.StringKey:testValueClass:java.lang.StringValue:thevalue

Inpractice,youshouldperformtheseget/putoperationsfromadeployedPCFapp.Todothis,youmustbindtheserviceinstancetotheseapps.

WorkingwithDiskStoresPersistentregionsandregionsthatoverflowuponevictionusediskstores.Use gfsh tocreateordestroyadiskstore.

CreateaDiskStore

Tocreateadiskstoreforusewithapersistentoroverflowtypeofregion:

1. UsethedirectionsinConnectwithgfshoverHTTPStoconnecttothePCCserviceinstanceusingtheclusteroperatorcredentials.

2. Createthediskstorewithagfshcommandoftheform:

createdisk-store--name=<name-of-disk-store>--dir=<relative/path/to/diskstore/directory>

Specifyarelativepathforthediskstorelocation.Thatrelativepathwillbecreatedwithin/var/vcap/store/gemfire-server/ .Formoredetailsonfurtheroptions,seethePivotalGemFirecreatedisk-

storeCommandReferencePage .

DestroyaDiskStore

Todestroyadiskstore:

©CopyrightPivotalSoftwareInc,2013-present 93 1.5

Page 94: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

1. UsethedirectionsinConnectwithgfshoverHTTPStoconnecttothePCCserviceinstanceusingtheclusteroperatorcredentials.

2. Destroythediskstorewithagfshcommandoftheform:

destroydisk-store--name=<name-of-disk-store>

Formoredetailsonfurtheroptions,seethePivotalGemFiredestroydisk-storeCommandReferencePage .

JavaBuildPackRequirementsToensurethatyourappcanuseallthefeaturesfromPCC,usethelatestbuildpack.ThebuildpackisavailableonGitHubatcloudfoundry/java-buildpack .

BindanApptoaServiceInstanceBindingyourappstoaserviceinstanceenablestheappstoconnecttotheserviceinstanceandreadorwritedatatotheregion.Run cfbind-serviceAPP-NAMESERVICE-INSTANCE-

NAMEtobindanapptoyour

serviceinstance.Replace APP-NAME withthenameoftheapp.Replace SERVICE-INSTANCE-NAME withthenameyouchoseforyourserviceinstance.

$cfbind-servicemy-appmy-cloudcache

Bindinganapptotheserviceinstanceprovidesconnectioninformationthroughthe VCAP_SERVICES

environmentvariable.Yourappcanusethisinformationtoconfigurecomponents,suchastheGemFireclientcache,tousetheserviceinstance.

Thefollowingisasample VCAP_SERVICES environmentvariable:

©CopyrightPivotalSoftwareInc,2013-present 94 1.5

Page 95: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

{"p-cloudcache":[{"credentials":{"locators":["10.244.0.4[55221]","10.244.1.2[55221]","10.244.0.130[55221]"],"urls":{"gfsh":"https://cloudcache-1.example.com/gemfire/v1","pulse":"https://cloudcache-1.example.com/pulse"},"users":[{"password":"some_developer_password","username":"developer_XXX"},{"password":"some_password","username":"cluster_operator_XXX"}]},"label":"p-cloudcache","name":"test-service","plan":"caching-small","provider":null,"syslog_drain_url":null,"tags":[],"volume_mounts":[]}]}

UsethePulseDashboardYoucanaccessthePulsedashboardforaserviceinstancebyaccessingthepulse-urlyouobtainedfromaservicekeyinawebbrowser.

Useeitherthe cluster_operator_XXX or developer_XX credentialstoauthenticate.

AccessServiceInstanceMetricsToaccessservicemetrics,youmusthaveEnablePlanselectedunderServicePlanAccessonthepagewhereyouconfigureyourtileproperties.(Fordetails,seetheConfigureServicePlanspage.)

©CopyrightPivotalSoftwareInc,2013-present 95 1.5

Page 96: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

PCCserviceinstancesoutputmetricstotheLoggregatorFirehose.YoucanusetheFirehoseplugin toviewmetricsoutputonthecfCLIdirectlyorconnecttheoutputtoanyotherFirehosenozzle ;forexample,thenozzleforDatadog .

PCCsupportsmetricsforthewholeclusterandmetricsforeachmember.Eachserverandlocatorintheclusteroutputsmetrics.

ServiceInstance(Cluster-wide)Metrics

serviceinstance.MemberCount:thenumberofVMsinthecluster

serviceinstance.TotalHeapSize:thetotalMBsofheapavailableinthecluster

serviceinstance.UsedHeapSize:thetotalMBsofheapinuseinthecluster

Member(per-VM)Metrics

member.GarbageCollectionCount:thenumberofJVMgarbagecollectionsthathaveoccurredonthismembersincestartup

member.CpuUsage:thepercentageofCPUtimeusedbytheGemFireprocess

member.GetsAvgLatency:theavglatencyofGETrequeststothisGemFiremember

member.PutsAvgLatency:theavglatencyofPUTrequeststothisGemFiremember

member.JVMPauses:thenumberofJVMpausesthathaveoccurredonthismembersincestartup

member.FileDescriptorLimit:thenumberoffilesthismemberallowstobeopenatonce

member.TotalFileDescriptorOpen:thenumberoffilesthismemberhasopennow

member.FileDescriptorRemaining:thenumberoffilesthatthismembercouldopenbeforehittingitslimit

member.TotalHeapSize:thenumberofmegabytesallocatedfortheheap

member.UsedHeapSize:thenumberofmegabytescurrentlyinusefortheheap

member.UnusedHeapSizePercentage:thepercentageofthetotalheapsizethatisnotcurrentlybeingused

AccessServiceBrokerMetricsServicebrokermetricsareonbydefaultandcanbeaccessedthroughtheFirehosenozzleplugin .Formoreinformationonbrokermetrics,seeOnDemandBrokerMetrics .

©CopyrightPivotalSoftwareInc,2013-present 96 1.5

Page 97: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

ExportgfshLogsYoucangetlogsand .gfs statsfilesfromyourPCCserviceinstancesusingthe exportlogs commandingfsh.

1. UsetheConnectwithgfshoverHTTPSproceduretoconnecttotheserviceinstanceforwhichyouwanttoseelogs.

2. Run export logs .

3. FindtheZIPfileinthedirectorywhereyoustartedgfsh.Thisfilecontainsafolderforeachmemberofthecluster.Thememberfoldercontainstheassociatedlogfilesandstatsfilesforthatmember.

Formoreinformationaboutthegfshexportcommand,seethegfshexportdocumentation .

DeployanAppJARFiletotheServersYoucandeployorredeployanappJARfiletotheserversinthecluster.

TodoaninitialdeployofanappJARfileafterconnectingwithingfshusingtheclusteroperatorcredentials,runthisgfshcommand:

deploy--jar=PATH-TO-JAR/FILENAME.jar

Forexample,

gfsh>deploy--jar=working-directory/myJar.jar

ToredeployanappJARfileafterconnectingwithingfshusingtheclusteroperatorrole,dothefollowing:

1. RunthisgfshcommandtodeploytheupdatedJARfile:gfsh>deploy--jar=PATH-TO-UPDATED-JAR/FILENAME.jar

Forexample,

gfsh>deploy--jar=newer-jars/myJar.jar

2. RunthiscommandtorestarttheclusterandloadtheupdatedJARfile:cfupdate-serviceSERVICE-INSTANCE-NAME-c'{"restart":true}'

Forexample,

©CopyrightPivotalSoftwareInc,2013-present 97 1.5

Page 98: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

$cfupdate-servicemy-service-instance-c'{"restart":true}'

UsetheGemFire-GreenplumConnectorTheGemFire-GreenplumconnectorpermitsthetransferofaPCCregionouttoaGreenplumdatabasetableorthetransferofaGreenplumdatabasetableintoaPCCregion. gfsh commandssetuptheconfigurationandinitiatetransfers.SeetheGemFire-GreenplumConnector documentationfordetails.

Connectin gfsh withtheclusteroperatorroletohavethenecessarypermissionstousetheconnector.

©CopyrightPivotalSoftwareInc,2013-present 98 1.5

Page 99: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

DevelopinganAppUnderTLSAppsthatconnecttoaTLS-enabledPCCserviceinstancerequireatruststorecontainingtheServicesCAcertificatefromCredHub,andtheymustsetpropertiestoconfigurethecommunicationwiththePivotalGemFirecomponentswithinthePCCserviceinstance.

HaveyourPCFoperatorfollowthisproceduretoacquireandprovideyouwiththeServicesCAcertificate:

1. FromtheOpsManagerVM,settheAPItargetoftheCredHubCLItoyourCredHubserver.

Runthefollowingcommand:

credhubapihttps://BOSH-DIRECTOR:8844--ca-cert=/var/tempest/workspaces/default/root_ca_certificate

where BOSH-DIRECTOR istheIPaddressoftheBOSHDirectorVM.

Forexample:

$credhubapihttps://10.0.0.5:8844--ca-cert=/var/tempest/workspaces/default/root_ca_certificate

2. LogintoCredHub.

Runthefollowingcommand:

credhublogin--client-name=credhub--client-secret=CLIENT-SECRET

where CLIENT-SECRET istheclientsecretsetinthecreationoftheUAAClient.

Forexample:

$credhublogin\--client-name=credhub\--client-secret=abcdefghijklm123456789

3. RunthiscommandtoprinttheServicesCAcertificate:

$credhubget--name="/services/tls_ca"-j|jq-r.value.certificate

©CopyrightPivotalSoftwareInc,2013-present 99 1.5

Page 100: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Followthisproceduretosetupthetruststore:

1. AddtheServicesCAcertificatetoanexistingtruststoreorcreateanewtruststoreintheapp’ssrc/main/resources folder.SeeCreateaTruststoreforinstructions.Thelocationforthis

truststoreisfixed.Iftheappusesatruststorelocatedinadifferentspotthanthesrc/main/resources folder,createanewtruststoreinthisrequiredlocation.

FourGemFirepropertiesmustbesettoconfigurecommunication:

1. Set ssl-enabled-components to all .

2. Set ssl-truststore totheabsolutepathandfilenameofthetruststoreasitwillexistwithintheexpandedJARfileofthedeployedapp.

3. Set ssl-truststore-password tothepasswordchosenwhenthetruststorewascreated.

4. Set ssl-require-authentication to false ,suchthattherewillbeone-wayauthenticationoftheGemFirecomponenttotheapp.

ForaSpringDataGemFireappthatplacesitstruststorein src/main/resources ,thesepropertiesmapto

spring.data.gemfire.security.ssl.truststore=/home/vcap/app/BOOT-INF/classes/truststore.jksspring.data.gemfire.security.ssl.truststore.password=TRUSTSTORE-PASSWORDspring.data.gemfire.security.ssl.require.authentication=false

where TRUSTSTORE-PASSWORD isthepasswordchosenduringtruststorecreation.

Forotherapps,theGemFirepropertiesshouldbe

ssl-enabled-components=allssl-truststore=/home/vcap/app/BOOT-INF/classes/truststore.jksssl-truststore-password=TRUSTSTORE-PASSWORDssl-require-authentication=false

where TRUSTSTORE-PASSWORD isthepasswordchosenduringtruststorecreation.Anappmaysetthesepropertieswiththe ClientCacheFactory.set() method,priortocreatinga ClientCache instance.

Thebuildand cfpush oftheappdoesnotrequireanychangestoworkwithaTLS-enabledPCCserviceinstance.

©CopyrightPivotalSoftwareInc,2013-present 100 1.5

Page 101: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

©CopyrightPivotalSoftwareInc,2013-present 101 1.5

Page 102: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

ConnectingaSpringBootApptoPivotalCloudCachewithSessionStateCachingInthistopic

UsetheTomcatApp

UseaSpringSessionDataGemFireAppUpgradePCCandSpringSessionDataGemFire

ThissectiondescribesthetwowaysinwhichyoucanconnectaSpringBootapptoPCC:

UsingaTomcatappwithaWARfile.ThisisthedefaultmethodforTomcatapps.

Usingthespring-session-data-gemfirelibrary.Thismethodrequiresthatyouusethecorrectversionoftheselibraries.

UsetheTomcatAppInPCCv1.1andlater,togetaSpringBootapprunningwithsessionstatecaching(SSC)onPCC,youmustcreateaWARfileusingthe spring-boot-starter-tomcat plugininsteadofthe spring-boot-maven plugintocreateaJARfile.

Forexample,ifyouwantyourapptouseSSC,youcannotuse spring-boot-maven tobuildaJARfileandpushyourapptoPCF,becausetheJavabuildpackdoesnotpullinthenecessaryJARfilesforSSCwhenitdetectsaSpringJARfile.

TobuildyourWARfile,addthisdependencytoyour pom.xml :

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency>

ForafullexampleofrunningaSpringBootappthatconnectswithSSC,runthisapp andusethisfollowingforyour pom.xml :

©CopyrightPivotalSoftwareInc,2013-present 102 1.5

Page 103: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion>

<groupId>io.pivotal.gemfire.demo</groupId><artifactId>HttpSessionCaching-Webapp</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging>

<name>HttpSessionCaching-Webapp</name><description>DemoprojectforGemFireHttpSessionStatecaching</description>

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.3.RELEASE</version><relativePath/><!--lookupparentfromrepository--></parent>

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties>

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency>

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

</project>

UseaSpringSessionDataGemFireAppYoucanconnectyourSpringapptoPCCtodosessionstatecaching.Usethecorrectversionofthe

©CopyrightPivotalSoftwareInc,2013-present 103 1.5

Page 104: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

spring-session-data-gemfire library;appsbuiltforPCCv1.3.0andlaterversionsarecompatiblewithSpringSessionDataGemFirev2.0.0.M2andlaterversions.

UpgradePCCandSpringSessionDataGemFire

1. BeforeyouroperatorupgradesPCC,stopyourapp.Thisavoidsbreakingtheappinthisupgradeprocess.

2. UpgradePCC.SeeUpgradingPivotalCloudCachefordetails.

3. Rebuildyourappusinga build.gradle filethatdependsonthecorrectversionofPivotalGemFire.Hereisanexample build.gradle file:

©CopyrightPivotalSoftwareInc,2013-present 104 1.5

Page 105: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

version='0.0.1-SNAPSHOT'

buildscript{ext{springBootVersion='2.0.0.M3'}repositories{mavenCentral()maven{url"https://repo.spring.io/snapshot"}maven{url"https://repo.spring.io/milestone"}}dependencies{classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")}}

applyplugin:'java'applyplugin:'org.springframework.boot'applyplugin:'idea'

idea{module{downloadSources=truedownloadJavadoc=true}}

sourceCompatibility=1.8targetCompatibility=1.8

repositories{mavenCentral()maven{url"https://repo.spring.io/libs-milestone"}maven{url"https://repo.spring.io/milestone"}maven{url"http://repo.springsource.org/simple/ext-release-local"}maven{url"http://repo.spring.io/libs-release/"}maven{url"https://repository.apache.org/content/repositories/snapshots"}}

dependencies{compile("org.springframework.boot:spring-boot-starter-web:2.0.0.M3")compile("org.springframework.session:spring-session-data-gemfire:2.0.0.M2")compile("io.pivotal.spring.cloud:spring-cloud-gemfire-spring-connector:1.0.0.RELEASE")compile("io.pivotal.spring.cloud:spring-cloud-gemfire-cloudfoundry-connector:1.0.0.RELEASE")}

4. Clearthesessionstateregion.

5. Starttherebuiltapp.

©CopyrightPivotalSoftwareInc,2013-present 105 1.5

Page 106: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

©CopyrightPivotalSoftwareInc,2013-present 106 1.5

Page 107: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

CreatingContinuousQueriesUsingSpringDataGemFire

TocreatecontinuousquerieswiththeSpringDataGemFirelibrary,youmusthavethefollowing:

SpringDataGemFirev2.0.1release

SpringBootv2.0.0+

Tocreatecontinuousqueries,dothefollowingitems:

Specifyattributes subscriptionEnabled and readyForEvents forthe ClientCacheApplication annotation.ApplythisannotationtotheSpringBootclientapplicationclass:

@ClientCacheApplication(name="GemFireSpringApplication",readyForEvents=true,subscriptionEnabled=true)

Theannotationforadurableeventqueueforcontinuousqueriesalsosetsthe durableClientId andkeepAlive attributes.Forexample:

@ClientCacheApplication(name="GemFireSpringApplication",durableClientId="durable-client-id",keepAlive=true,readyForEvents=true,subscriptionEnabled=true)

Annotatethemethodthathandlestheeventstospecifythequery.Tomaketheeventqueuedurableacrossserverfailuresandrestarts,includethe durable=true attributeintheannotation,asisdoneintheexample:

@ComponentpublicclassContinuousQuery{

@ContinuousQuery(name="yourQuery",query="SELECT*FROM/yourRegionWHEREsomeAttribute==true",durable=true)publicvoidhandleChanges(CqEventevent){//PERFORMSOMEACTION}}

Theclassthatcontainsthemethodwiththe@ContinuousQueryannotationmusthavethe@Componentannotation,suchthatthecontinuousqueryiswiredupcorrectlyfortheserver.

©CopyrightPivotalSoftwareInc,2013-present 107 1.5

Page 108: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Formoreinformation,seetheSpringDataGemFiredocumentation .

©CopyrightPivotalSoftwareInc,2013-present 108 1.5

Page 109: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

ApplicationDevelopmentAnappthatinteractswithaPCCserviceinstancewillusethePivotalGemFire®clusterwithinthatserviceinstance.ArchitectingthedatastoragefortheapprequiressomefamiliaritywithGemFire.

Thissectionintroducesdesignpatternsforstructuringappdesign.ItpresentsaminimalviewofGemFiredataorganizationtohelpwithdataarchitecturedesign.AcompletepresentationofGemFire’scapabilitiesisinthePivotalGemFireDocumentation .

Inthistopic:

DesignPatterns

TheInlineCacheTheLook-AsideCacheBidirectionalReplicationAcrossaWANBlue-GreenDisasterRecoveryCQRSPatternAcrossaWANHub-and-SpokeTopologywithWANReplicationFollow-the-SunPattern

RegionDesign

KeysPartitionedRegionsReplicatedRegionsPersistenceOverflowRegionsasUsedbytheAppAnExampletoDemonstrateRegionDesign

ExampleApplications

ASimpleJavaApp

©CopyrightPivotalSoftwareInc,2013-present 109 1.5

Page 110: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

DesignPatternsInthistopic

TheInlineCache

TheLook-AsideCache

BidirectionalReplicationAcrossaWAN

Blue-GreenDisasterRecovery

CQRSPatternAcrossaWAN

Hub-and-SpokeTopologywithWANReplication

Follow-the-SunPattern

TheInlineCacheAninlinecacheplacesthecachinglayerbetweentheappandthebackenddatastore.

TheappwillwanttoaccomplishCRUD(create,read,update,delete)operationsonitsdata.Theapp’simplementationoftheCRUDoperationsresultincacheoperationsthatbreakdownintocachelookups(reads)and/orcachewrites.

Thealgorithmforacachelookupquicklyreturnsthecacheentrywhentheentryisinthecache.Thisisacachehit.Iftheentryisnotinthecache,itisacachemiss,andcodeonthecacheserverretrievestheentryfromthebackenddatastore.Inthetypicalimplementation,theentryreturnedfromthebackenddatastoreonacachemissiswrittentothecache,suchthatsubsequentcachelookupsofthatsameentryresultincachehits.

Theimplementationforacachewritetypicallycreatesorupdatestheentrywithinthecache.Italso

©CopyrightPivotalSoftwareInc,2013-present 110 1.5

Page 111: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

createsorupdatesthedatastoreinoneofthefollowingways:

Synchronously,inawrite-throughmanner.Eachwriteoperationfromtheappissentontobewrittentothebackenddatastore.Afterthebackenddatastorewritefinishes,thevalueisalsowrittentothecache.Theappblocksuntilthewritestoboththebackenddatastoreandthecachecomplete.

Asynchronously,inawrite-behindmanner.Thecachegetsupdated,andthevaluetobewrittentothebackenddatastoregetsqueued.Controlthenreturnstotheapp,whichcontinuesindependentofthewritetothebackenddatastore.

Developersdesigntheservercodetoimplementthisinline-cachingpattern.SeeSettingUpServersforanInlineCachefordetailsaboutthecustomservercodeandhowtoconfigureaninlinecache.

TheLook-AsideCacheThelook-asidepatternofcachingplacestheappinchargeofcommunicationwithboththecacheandthebackenddatastore.

TheappwillwanttoaccomplishCRUD(CREATE,READ,UPDATE,DELETE)operationsonitsdata.Thatdatamaybe

inboththedatastoreandthecache

inthedatastore,butnotinthecache

©CopyrightPivotalSoftwareInc,2013-present 111 1.5

Page 112: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

notineitherthedatastoreorthecache

Theapp’simplementationoftheCRUDoperationsresultincacheoperationsthatbreakdownintocachelookups(reads)and/orcachewrites.

Thealgorithmforacachelookupreturnsthecacheentrywhentheentryisinthecache.Thisisacachehit.Iftheentryisnotinthecache,itisacachemiss,andtheappattemptstoretrievetheentryfromthedatastore.Inthetypicalimplementation,theentryreturnedfromthebackenddatastoreiswrittentothecache,suchthatsubsequentcachelookupsofthatsameentryresultincachehits.

Thelook-asidepatternofcachingleavestheappfreetoimplementwhateveritchoosesifthedatastoredoesnothavetheentry.

Thealgorithmforacachewriteimplementsoneofthese:

Theentryiseitherupdatedorcreatedwithinthedatastore,andtheentryisupdatedwithinorwrittentothecache.

Theentryiseitherupdatedorcreatedwithinthebackenddatastore,andthecopycurrentlywithinthecacheisinvalidated.

BidirectionalReplicationAcrossaWANTwoPCCserviceinstancesmaybeconnectedacrossaWANtoformasingledistributedsystemwithasynchronouscommunication.TheclusterwithineachofthePCCserviceinstanceswillhostthesameregion.UpdatestoeitherPCCserviceinstancearepropagatedacrosstheWANtotheotherPCCserviceinstance.ThedistributedsystemimplementsaneventualconsistencyoftheregionthatalsohandleswriteconflictswhichoccurwhenasingleregionentryismodifiedinbothPCCserviceinstancesatthesametime.

Inthisactive-activesystem,anexternalentityimplementsload-balancingbydirectingappconnectionstooneofthetwoserviceinstances.IfoneofthePCCserviceinstancesfails,appsmayberedirectedtotheremainingserviceinstance.

ThisdiagramshowsmultipleinstancesofanappinteractingwithoneofthetwoPCCserviceinstances,clusterAandclusterB.AnychangemadeinclusterAissenttoclusterB,andanychangemadeinclusterBissenttoclusterA.

Note:SDG(SpringDataGemFire)supportsthelook-asidepattern,asdetailedatConfiguringSpring’sCacheAbstraction .

©CopyrightPivotalSoftwareInc,2013-present 112 1.5

Page 113: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Blue-GreenDisasterRecoveryTwoPCCserviceinstancesmaybeconnectedacrossaWANtoformasingledistributedsystemwithasynchronouscommunication.Anexpectedusecasepropagatesallchangestoaregion’sdatafromtheclusterwithinoneserviceinstance(theprimary)totheother.Thereplicateincreasesthefaulttoleranceofthesystembyactingasahotspare.Inthescenarioofthefailureofanentiredatacenteroranavailabilityzone,appsconnectedtothefailedsitecanberedirectedbyanexternalload-balancingentitytothereplicate,whichtakesoverastheprimary.

Inthisdiagram,clusterAisprimary,anditreplicatesalldataacrossaWANtoclusterB.

©CopyrightPivotalSoftwareInc,2013-present 113 1.5

Page 114: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

IfclusterAfails,clusterBtakesover.

CQRSPatternAcrossaWANTwoPCCserviceinstancesmaybeconnectedacrossaWANtoformasingledistributedsystemthat

©CopyrightPivotalSoftwareInc,2013-present 114 1.5

Page 115: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

implementsaCQRS(CommandQueryResponsibilitySegregation)pattern.Withinthispattern,commandsarethosethatchangethestate,wherestateisrepresentedbyregioncontents.AllregionoperationsthatchangestatearedirectedtotheclusterwithinonePCCserviceinstance.ThechangesarepropagatedasynchronouslytotheclusterwithintheotherPCCserviceinstanceviaWANreplication,andthatotherclusterprovidesonlyqueryaccesstotheregiondata.

ThisdiagramshowsanappthatmayupdatetheregionwithinthePCCserviceinstanceofclusterA.ChangesarepropagatedacrosstheWANtoclusterB.TheappboundtoclusterBmayonlyquerytheregiondata;itwillnotcreateentriesorupdatetheregion.

Hub-and-SpokeTopologywithWANReplicationMultiplePCCserviceinstancesconnectedacrossaWANformasinglehubandasetofspokes.ThisdiagramshowsPCCserviceinstanceAisthehub,andPCCserviceinstancesB,C,andDarespokes.

©CopyrightPivotalSoftwareInc,2013-present 115 1.5

Page 116: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Acommonimplementationthatusesthistopologydirectsallappoperationsthatwriteorupdateregioncontentstothehub.WritesandupdatesarethenpropagatedasynchronouslyacrosstheWANfromthehubtothespokes.

Follow-the-SunPatternPerformanceimproveswhenoperationrequestsoriginateincloseproximitytotheserviceinstancethathandlesthoserequests.Yetmanydatasetsarerelevantandusedallovertheworld.Ifthemostactivelocationforwriteandupdateoperationsmovesoverthecourseofaday,thenaperformantdesignpatternisavariationonthehub-and-spokeimplementationthatchangeswhichPCCserviceinstanceisthehubtothemostactivelocation.

FormaringthatcontainseachPCCserviceinstancethatwillactasthehub.Defineatokentoidentifythehub.Overtime,passthetokenfromonePCCserviceinstancetothenext,aroundthering.

©CopyrightPivotalSoftwareInc,2013-present 116 1.5

Page 117: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

ThisdiagramshowsPCCserviceinstanceAisthehub,asithasthetoken,representedinthisdiagramasastar.PCCserviceinstancesB,C,andDarespokes.Writeandupdateoperationsaredirectedtothehub.

ThisdiagramshowsthatthetokenhaspassedfromAtoB,andBhasbecomethehub.

©CopyrightPivotalSoftwareInc,2013-present 117 1.5

Page 118: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

©CopyrightPivotalSoftwareInc,2013-present 118 1.5

Page 119: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

RegionDesignInthistopic

Keys

PartitionedRegionsPartitionedRegionTypesforCreatingRegionsontheServer

ReplicatedRegionsReplicatedRegionTypesforCreatingRegionsontheServer

Persistence

Overflow

RegionsasUsedbytheApp

AnExampletoDemonstrateRegionDesign

CacheddataareheldinGemFireregions.Eachentrywithinaregionisakey/valuepair.Thechoiceofkeyandregiontypeaffecttheperformanceofthedesign.Therearetwobasictypesofregions:partitionedandreplicated.Thedistinctionbetweenthetwotypesisbasedonhowentriesaredistributedamongserversthathosttheregion.

KeysEachregionentrymusthaveauniquekey.Useawrappedprimitivetypeof String , Integer ,or Long .Experienceddesignershaveaslightpreferenceof String over Integer or Long .Usinga String keyenhancesthedevelopmentanddebuggingenvironmentbypermittingtheuseofaRESTAPI(SwaggerUI),asitonlyworkswith String types.

PartitionedRegionsApartitionedregiondistributesregionentriesacrossserversbyusinghashing.Thehashofakeymapsanentrytoabucket.Afixednumberofbucketsaredistributedacrosstheserversthathosttheregion.

Hereisadiagramthatshowsasinglepartitionedregion(highlighted)withveryfewentriestoillustratepartitioning.

©CopyrightPivotalSoftwareInc,2013-present 119 1.5

Page 120: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Apartitionedregionisthepropertypeofregiontousewhenoneorbothofthesesituationsexist:

Theregionholdsvastquantitiesofdata.Theremaybesomuchdatathatyouneedtoaddmoreserverstoscalethesystemup.PCCcanbescaledupwithoutdowntime;tolearnmore,seeUpdatingaPivotalCloudCacheServiceInstance.

Operationsontheregionarewrite-heavy,meaningthattherearealotofentryupdates.

Redundancyaddsfaulttolerancetoapartitionedregion.Hereisthatsameregion,butwiththeadditionofasingleredundantcopyofeacheachentry.Thebucketsdrawnwithdashedlinesareredundantcopies.Withinthediagram,thepartitionedregionishighlighted.

©CopyrightPivotalSoftwareInc,2013-present 120 1.5

Page 121: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

Withoneredundantcopy,theGemFireclustercantolerateasingleserverfailureoraserviceupgradewithoutlosinganyregiondata.Withonelessserver,GemFirereviseswhichserverholdstheprimarycopyofanentry.

Apartitionedregionwithoutredundancypermanentlylosesdataduringaserviceupgradeorifaservergoesdown.Allentrieshostedinthebucketsonthefailedserverarelost.

PartitionedRegionTypesforCreatingRegionsontheServer

Regiontypesassociateanamewithaparticularregionconfiguration.Thetypeisusedwhencreatingaregion.Althoughmoreregiontypesthantheseexist,useoneofthesetypestoensurethatnoregiondataislostduringserviceupgradesorifaserverfails.Thesepartitionedregiontypesaresupported:

PARTITION_REDUNDANT Regionentriesareplacedintothebucketsthataredistributedacrossallservershostingtheregion.Inaddition,GemFirekeepsandmaintainsadeclarednumberofredundantcopiesofallentries.Thedefaultnumberofredundantcopiesis1.

PARTITION_REDUNDANT_HEAP_LRU Regionentriesareplacedintothebucketsthataredistributedacrossallservershostingtheregion.GemFirekeepsandmaintainsadeclarednumberofredundantcopies.Thedefaultnumberofredundantcopiesis1.Asaserver(JVM)reachesaheapusageof65%ofavailableheap,theserverdestroysentriesasspaceisneededforupdates.Theoldestentryinthebucketwhereanewentrylivesistheonechosenfordestruction.

PARTITION_PERSISTENT Regionentriesareplacedintothebucketsthataredistributedacrossallservershostingtheregion,andallserverspersistallentriestodisk.

PARTITION_REDUNDANT_PERSISTENT Regionentriesareplacedintothebucketsthataredistributed

©CopyrightPivotalSoftwareInc,2013-present 121 1.5

Page 122: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

acrossallservershostingtheregion,andallserverspersistallentriestodisk.Inaddition,GemFirekeepsandmaintainsadeclarednumberofredundantcopiesofallentries.Thedefaultnumberofredundantcopiesis1.

PARTITION_REDUNDANT_PERSISTENT_OVERFLOW Regionentriesareplacedintothebucketsthataredistributedacrossallservershostingtheregion,andallserverspersistallentriestodisk.Inaddition,GemFirekeepsandmaintainsadeclarednumberofredundantcopiesofallentries.Thedefaultnumberofredundantcopiesis1.Asaserver(JVM)reachesaheapusageof65%ofavailableheap,theserveroverflowsentriestodiskwhenitneedstomakespaceforupdates.

PARTITION_PERSISTENT_OVERFLOW Regionentriesareplacedintothebucketsthataredistributedacrossallservershostingtheregion,andallserverspersistallentriestodisk.Asaserver(JVM)reachesaheapusageof65%ofavailableheap,theserveroverflowsentriestodiskwhenitneedstomakespaceforupdates.

ReplicatedRegionsHereisareplicatedregionwithveryfewentries(four)toillustratethedistributionofentriesacrossservers.Forareplicatedregion,allserversthathosttheregionhaveacopyofeveryentry.

GemFiremaintainscopiesofallregionentriesonallservers.GemFiretakescareofdistributionandkeepstheentriesconsistentacrosstheservers.

Areplicatedregionisthepropertypeofregiontousewhenoneormoreofthesesituationsexist:

Theregionentriesdonotchangeoften.Eachwriteofanentrymustbepropagatedtoallserversthathosttheregion.Asaconsequence,performancesufferswhenmanyconcurrentwriteaccessescausesubsequentwritestoallotherservershostingtheregion.

Theoverallquantityofentriesisnotsolargeastopushthelimitsofmemoryspaceforasingleserver.

©CopyrightPivotalSoftwareInc,2013-present 122 1.5

Page 123: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

ThePCFserviceplansetstheservermemorysize.

Theentriesofaregionarefrequentlyaccessedtogetherwithentriesfromotherregions.Theentriesinthereplicatedregionarealwaysavailableontheserverthatreceivestheaccessrequest,leadingtobetterperformance.

ReplicatedRegionTypesforCreatingRegionsontheServer

Regiontypesassociateanameaparticularregionconfiguration.Thesereplicatedregiontypesaresupported:

REPLICATE Allservershostingtheregionhaveacopyofallentries.

REPLICATE_HEAP_LRU Allservershostingtheregionhaveacopyofallentries.Asaserver(JVM)reachesaheapusageof65%ofavailableheap,theserverdestroysentriesasitneedstomakespaceforupdates.

REPLICATE_PERSISTENT Allservershostingtheregionhaveacopyofallentries,andallserverspersistallentriestodisk.

REPLICATE_PERSISTENT_OVERFLOW Allservershostingtheregionhaveacopyofallentries.Asaserver(JVM)reachesaheapusageof65%ofavailableheap,theserveroverflowsentriestodiskasitneedtomakespaceforupdates.

PersistencePersistenceaddsaleveloffaulttolerancetoaPCCserviceinstancebywritingallregionupdatestolocaldisk.Diskdata,henceregiondata,isnotlostuponclusterfailuresthatexceedredundancyfailuretolerances.Uponclusterrestart,regionsarereloadedfromthedisk,avoidingtheslowermethodofrestartthatreacquiresdatausingadatabaseofrecord.

Creatingaregionwithoneoftheregiontypesthatincludes PERSISTENT initsnamecausestheinstantiationoflocaldiskresourceswiththesedefaultproperties:

Synchronouswrites.Allupdatestotheregiongenerateoperatingsystemdiskwritestoupdatethediskstore.

Thedisksizeispartoftheinstanceconfiguration.SeeConfigureServicePlansfordetailsonsettingthepersistentdisktypesfortheserver.Chooseasizethatisatleasttwiceaslargeastheexpectedmaximumquantityofregiondata,withanabsoluteminimumsizeof2GB.Regiondataincludesboththekeysandtheirvalues.

Warningmessagesareissuedwhena90%diskusagethresholdiscrossed.

©CopyrightPivotalSoftwareInc,2013-present 123 1.5

Page 124: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

OverflowRegionoverflowisanevictionactionthatkeepsheapmemoryspaceusagebelowafixedthresholdof65%ofavailableheapmemoryspace.Foraregionthatpushesatthelimitsofmemoryusage,overflowreducesthenumberoforeliminatespausesforstop-the-worldgarbagecollection.

Theactionofoverflowwritesoneormoreleastrecentlyusedregionentriestodisktomakeroominmemoryforanotherentry.Theleastrecentlyusedentrywithinthebuckettowhichnewentrymapsisthechosenoverflowvictim.Thekeyofthevictimremainsinmemory,butthevalueoftheentryiswrittentodisk.Anoperationonanentrythathasoverflowedtodiskcausestheentrytobeswappedbackintomemory.

Ifusingaregiontypewithoverflow,besuretoconfigureaplanwithsufficientdiskspacefortheServerVM,allocatingatleasttheminimumsgivenforthePersistentdisktypefortheServerVMs,asdescribedinConfigureTileProperties.

Ifnodiskstoreiscreated,regioncreationwitharegiontypethatusesadiskstorewillcausethecreationofonecalled DEFAULT withadefaultsize(2Gbyte).Alternatively,createthediskstoreusing gfsh ,asdescribedinWorkingwithDiskStores.Then,createtheregionusingthe --disk-store optiontospecifythecreateddiskstore.Ifthediskstorehasbeencreated,butthegfshregioncreationcommandneglectstospecifyadiskstore,anew DEFAULT diskstorewillbecreatedandused.Formoredetailsonregioncreationoptions,seethePivotalGemFirecreateregionCommandReferencePage .

RegionsasUsedbytheAppTheclientaccessesregionshostedontheserversbycreatingacacheandtheregions.Thetypeoftheclientregiondeterminesifdataisonlyontheserversorifitisalsocachedlocallybytheclientinadditiontobeingontheservers.Locallycacheddatacanintroduceconsistencyissues,becauseregionentriesupdatedonaserverarenotautomaticallypropagatedtotheclient’slocalcache.

Clientregiontypesassociateanamewithaparticularclientregionconfiguration.

PROXY forwardsallregionoperationstotheservers.Noentriesarelocallycached.Usethisclientregiontypeunlessthereisacompellingreasontouseoneoftheothertypes.UsethistypeforallTwelve-Factorappsinordertoassurestatelessprocessesareimplemented.Notcachinganyentrieslocallypreventstheappfromaccidentallycachingstate.

CACHING_PROXY forwardsallregionoperationstotheservers,andentriesarelocallycached.

CACHING_PROXY_HEAP_LRU forwardsallregionoperationstotheservers,andentriesarelocallycached.Locallycachedentriesaredestroyedwhentheapp’susageofcachespacecausesitsJVMtohitthethresholdofbeinglowonmemory.

©CopyrightPivotalSoftwareInc,2013-present 124 1.5

Page 125: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

AnExampletoDemonstrateRegionDesignAssumethatonservers,aregionholdsentriesrepresentingcustomerdata.Eachentryrepresentsasinglecustomer.Withanever-increasingnumberofcustomers,thisregiondataisagoodcandidateforapartitionedregion.

Perhapsanotherregionholdscustomerorders.Thisdataalsonaturallymapstoapartitionedregion.Thesamecouldapplytoaregionthatholdsordershipmentdataorcustomerpayments.Ineachcase,thenumberofregionentriescontinuestogrowovertime,andupdatesareoftenmadetothoseentries,makingthedatasomewhatwriteheavy.

Agoodcandidateforareplicatedregionwouldbethedataassociatedwiththecompany’sproducts.Eachregionentryrepresentsasingleproduct.Therearealimitednumberofproducts,andthoseproductsdonotoftenchange.

Considerthatastheclientappgoesbeyondthemostsimplisticofcasesfordatarepresentation,thePCCinstancehostsalloftheseregionssuchthattheappcanaccessalloftheseregions.Operationsoncustomerorders,shipments,andpaymentsallrequireproductinformation.Theproductregionbenefitsfromaccesstoallitsentriesavailableonallthecluster’sservers,againpointingtoaregiontypechoiceofareplicatedregion.

©CopyrightPivotalSoftwareInc,2013-present 125 1.5

Page 126: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

ExampleApplications

TheseexampleapplicationsprovideinsightintoaspectsofappdesignforPCC.

Inthistopic:

ASimpleJavaApp

©CopyrightPivotalSoftwareInc,2013-present 126 1.5

Page 127: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

ASimpleJavaApp

ThesampleJavaclientappathttps://github.com/cf-gemfire-org/cloudcache-sample-app.git

demonstrateshowtoconnectanapptoaserviceinstance.

Theseinstructionsassume:

APCCserviceinstanceisrunning.

YouhaveCloudFoundrycredentialsforaccessingthePCCserviceinstance.

YouhaveaservicekeyforthePCCserviceinstance.

YouhavealoginonthePivotalCommercialMavenRepositoryathttps://commercial-repo.pivotal.io.

Youhavea gfsh clientofthesameversionasisusedwithinyourPCCserviceinstance.

Followtheseinstructionstoruntheapp.

1. ClonethesampleJavaappfromhttps://github.com/cf-gemfire-org/cloudcache-sample-app.git .

2. UpdateyourcloneofthesampleJavaapptoworkwithyourPCCserviceinstance:

Modifythemanifestin manifest.yml byreplacing service0 withthenameofyourPCCserviceinstance.Replacetheusernameandpasswordinthe gradle.properties filewithyourusernameandpasswordforthePivotalCommercialMavenRepository.UpdatetheGemFireversioninthedependenciessectionofthe build.gradle filetobethesameastheversionwithinyourPCCserviceinstance.

3. Buildtheappwith

$./gradlewcleanbuild

4. Inasecondshell,run gfsh .

5. Use gfsh toconnecttothePCCserviceinstanceasdescribedinConnectwithgfshoverHTTPS.

6. Use gfsh tocreatearegionnamed test asdescribedinCreateRegionswithgfsh.Thissampleappplacesasingleentryintotheregion,sotheregiontypeisnotimportant. PARTITION_REDUNDANT

©CopyrightPivotalSoftwareInc,2013-present 127 1.5

Page 128: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

isagoodchoice.

7. Intheshellwheretheappwasbuilt,deployandruntheappwith

cfpush-fmanifest.yml

8. Aftertheappstarts,therewillbeanentryof(“1”,“one”)inthe test region.youcanseethatthereisoneentryintheregionwiththe gfsh command:

gfsh>describeregion--name=test

Forthisverysmallregion,youcanprintthecontentsoftheentireregionwitha gfsh query:

gfsh>query--query='SELECT*FROM/test'

©CopyrightPivotalSoftwareInc,2013-present 128 1.5

Page 129: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

TroubleshootingHereareproblemsandfixesrelatedtousingPCC.

Problem:Anerroroccurswhencreatingaserviceinstanceorwhenrunningasmoketest.Theservicecreationissuesanerrormessagethatstartswith

Instanceprovisioningfailed:Therewasaproblemcompletingyourrequest.

GemFireserverlogsat /var/vcap/sys/log/gemfire-server/gemfire/server-<N>.log willcontainadisk-accesserrorwiththestring

ADiskAccessExceptionhasoccurred

andastacktracesimilartothisonethatbeginswith

org.apache.geode.cache.persistence.ConflictingPersistentDataExceptionatorg.apache.geode.internal.cache.persistence.PersistenceAdvisorImpl.checkMyStateOnMembers(PersistenceAdvisorImpl.java:743)atorg.apache.geode.internal.cache.persistence.PersistenceAdvisorImpl.getInitialImageAdvice(PersistenceAdvisorImpl.java:819)atorg.apache.geode.internal.cache.persistence.CreatePersistentRegionProcessor.getInitialImageAdvice(CreatePersistentRegionProcessor.java:52)atorg.apache.geode.internal.cache.DistributedRegion.getInitialImageAndRecovery(DistributedRegion.java:1178)atorg.apache.geode.internal.cache.DistributedRegion.initialize(DistributedRegion.java:1059)atorg.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3089)

CauseoftheProblem:ThePCCVMsareunderprovisioned;thequantityofdiskspaceistoosmall.Solution:UseOpsManagertoprovisionVMsofatleasttheminimumsize.SeeConfigureServicePlansforminimum-sizedetails.

©CopyrightPivotalSoftwareInc,2013-present 129 1.5

Page 130: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

PivotalCloudCacheReleaseNotesInthistopic

v1.5.4

v1.5.3

v1.5.2

v1.5.1

v1.5.0

KnownIssues

v1.5.4ReleaseDate:May8,2019

Featuresincludedinthisrelease:

PCC1.5.4usesPivotalGemFire9.6.2 .

v1.5.3ReleaseDate:April10,2019

Featuresincludedinthisrelease:

IfaClamAVorFileIntegrityMonitorisdetected,availablememoryforGemFireserversisreducedtoallowenoughmemoryforthesePCFadd-ons.ThispreventsafailureduringPCCserviceinstancecreation.

PCC1.5.3usesPivotalGemFire9.6.1.

v1.5.2

BreakingChange:ThispatchreleaseincreasessystemsecuritybyrequiringTLSencryptionforusinggfshandPulse.FollowthestepswithinPreparingforTLSpriortoinstallingthePCCtile.

©CopyrightPivotalSoftwareInc,2013-present 130 1.5

Page 131: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

ReleaseDate:January9,2019

Featuresincludedinthisrelease:

PCCnowshipswithOpenJDK1.8_192insteadoftheequivalentOracleJDK.

PCC1.5.2usesPivotalGemFire9.6.

v1.5.1ReleaseDate:November27,2018

Featuresincludedinthisrelease:

SecurityVulnerability:PCCdependsuponthePivotalCloudFoundryOnDemandServicesBroker,whichaddressedthefollowingsecurityvulnerability:

CVE-2018-15759 :OnDemandServicesSDKtimingattackvulnerability

SecurityVulnerability:PCCdependsuponanincludedJavaSE,whichaddressedthefollowingsecurityvulnerabilities:

CVE-2018-3149

CVE-2018-3180

CVE-2018-3183

CVE-2018-3214

PCC1.5.1usesPivotalGemFire9.6.0.

PCCnowrunswithaXenialstemcell,version170.9oramorerecentversion.

v1.5.0ReleaseDate:October22,2018

Featuresincludedinthisrelease:

TLSauthenticationandencryptionmaybeenabledforallcommunicationwithinaPCCserviceinstance.Theauthenticationisoneway,withappsauthenticatingservers.

APCCserviceinstancestorescredentialsinCredHubwhensharingthecredentialswithapplications.

Theupgradeofserviceinstancescanbeexecutedinparallel,aftertryingtheupgradeonasetofcanaryinstancesfirst.

©CopyrightPivotalSoftwareInc,2013-present 131 1.5

Page 132: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

BOSHerrandsarecolocatedwiththeBrokerVM,whichdecreasestheinstallationtimeforthetile.

Thedevplanmaybeselectedforuseinsmoketests.

PCC1.5.0usesPivotalGemFire9.6.0.Using gfsh withthisGemFireversionrequiresaJDKorJREwithJava8release121oramorerecentversion8update.

TheGemFire-GreenplumConnectorv3.3.0makesitpossibletoimportandexportPCC’sregionentriesfromandtoaGreenplumdatabasetable.SeeUsetheGemFire-GreenplumConnector.

PCCnowsupportsPivotalApplicationService(PAS)2.3.

UsersupgradingfromthePCClimitedavailabilityv1.3.2releasewillautomaticallyupgradetothisPCCv1.5.0releasewithoutupgradingtov1.4.MakesuretoupgradetoPAS/OpsManagerv2.2priortodoingtheupgradefromPCClimitedavailabilityv1.3.2toPCCv1.5.0.

KnownIssuesInstallationsusingHTTPsessionstatereplicationhaveaknownissueissueandworkaroundtocorrecttheissue.TheHTTPsessionmodulecreatesitsregionthatholdsmetadataononlyoneserverwithinacluster.Theregionneedstobehostedonalltheservers.Tocorrecttheissueonarunningcluster,connecttotheclusterusingtheGemFireclusteroperatorcredentials,andrunasingle gfsh commandtocreatethemetadataregiononallservers.Thecommandhastheform:

createregion--name=REGION-NAME--type=REGION-SHORTCUT\--enable-statistics\--entry-idle-time-custom-expiry=org.apache.geode.modules.util.SessionCustomExpiry

Ifthemetadataregion’snameortypehavenotbeenchangedfromtheirdefault,usethis gfsh

command:

gfsh>createregion--name=gemfire_modules_sessions--type=PARTITION_REDUNDANT\--enable-statistics\--entry-idle-time-custom-expiry=org.apache.geode.modules.util.SessionCustomExpiry

Forinstallationsthathavechangedthemetadataregion’snameortype,substitutethechangedvaluesfor REGION-NAME and REGION-SHORTCUT inthecommand.Youcanverifythattheregionishostedonallserverswiththe gfsh command:

gfsh>describeregion--name=gemfire_modules_sessions

ThelocatorlogofaTLS-enabledclusterwillgrowovertimewithrepeatedloggingofthisexceptionat10-secondintervals:

©CopyrightPivotalSoftwareInc,2013-present 132 1.5

Page 133: Pivotal Cloud Cache 1 · Redis for PCF Redis Yes Yes (shared-VM plan). Only recommended for test environments. MySQL for PCF MySQL Yes No Pivotal Cloud Cache (PCC) Pivotal GemFire

[info2018/08/1423:28:41.343UTClocator-ID<locatorrequestthread[3]>tid=0x75]Exceptioninprocessingrequestfrom127.0.0.1javax.net.ssl.SSLHandshakeException:Remotehostclosedconnectionduringhandshakeatsun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1002)atsun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)atsun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)atsun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)atorg.apache.geode.internal.net.SocketCreator.configureServerSSLSocket(SocketCreator.java:1013)atorg.apache.geode.distributed.internal.tcpserver.TcpServer.lambda$processRequest$0(TcpServer.java:367)atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)atjava.lang.Thread.run(Thread.java:748)Causedby:java.io.EOFException:SSLpeershutdownincorrectlyatsun.security.ssl.InputRecord.read(InputRecord.java:505)atsun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:983)...8more

Thisexceptionfromthemonitportcheckofthelocatorprocessmaybeignored.

IfyouupgradetoPCCv1.3aspartoftheprocessofupgradingtothis1.5release,andyoucreatedservicekeysonPCCbeforeyouinstalledv1.3:deleteandrecreatetheservicekeyssothatusersareproperlyassignedrolesforauthenticationandauthorizationwithinthecluster.Then,rebindallyourapps.Forinformationabouthowtoperformthesetasks,seeDeleteaServiceKey ,CreateServiceKeys,andBindanApptoaServiceInstance.

CurrentversionsoftheCloudFoundryCommandLineInterface(CLI)toolhaveaknownbugthatomitsthedocumentationURLwhenusingthe cfservice command.

©CopyrightPivotalSoftwareInc,2013-present 133 1.5


Recommended