Top Banner
Pivotal GemFire® for Pivotal Cloud Foundry 1.7 © Copyright Pivotal Software Inc, 2013-2018
46

Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

Jun 17, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

PivotalGemFireregforPivotalCloudFoundry17

copyCopyrightPivotalSoftwareInc2013-2018

234

1215151516162023254040404141414244464646

TableofContents

TableofContentsPivotalGemFireforPivotalCloudFoundryReleaseNotesforGemFireforPivotalCloudFoundryOverviewInstallingGemFireforPivotalCloudFoundryPrerequisitesServiceConfigurationDefaultsInstallationStepsSelf-SignedandInternalSSLCertificatesCreatingGemFireServicePlansApplicationSecurityGroupsUsingGemFireforPivotalCloudFoundryUsingtheGemFireforCloudFoundryCLIPlug-inInstallationOverviewBrokerHTTPUsernameandPasswordexport-gemfirerestart-gemfireshow-wan-config-urlTroubleshootingUninstallingGemFireforPivotalCloudFoundryPrerequisitesUninstalling

copyCopyrightPivotalSoftwareInc2013-2018 2 17

PivotalGemFireforPivotalCloudFoundry

ThisdocumentationdescribeshowtoinstallconfigureanduseGemFireforPivotalCloudFoundry (PCF)

ProductSnapshotCurrentGemFireforPivotalCloudFoundryDetails

Version170ReleaseDate19thSeptember2016SoftwarecomponentversionGemFire821SpringDataGemFire182Java8(JDKJRE8u60)CompatibleOpsManagerVersion(s)17x18xCompatibleElasticRuntimeVersion(s)17x18xCompatibleJavaBuildpackVersion(s)36371vSpheresupportYesAWSsupportYesIPSecsupportYes

UpgradingtotheLatestVersionThisversionofPivotalGemFireforPivotalCloudFoundrysupportsupgradingfromallthepreviousversionsoftheproductRunningserviceinstancesareautomaticallyupgradedonenodeatatimeIfyouconfiguredyourclusterswithdataredundancythentheupgradeprocessrequiresnodowntimeandresultsinnodataloss

NoteUpgradesfromAlphaorBetaversionsofthesoftwarearenotsupported

DocumentationIndexThedocumentationcontainsthefollowingtopics

ReleaseNotes

Overview

InstallingGemFireforPivotalCloudFoundry

UsingGemFireforPivotalCloudFoundry

Troubleshooting

FormoreinformationaboutPivotalGemFireseethePivotalGemFireDocumentation

FormoreinformationaboutPivotalCloudFoundryseethePivotalCloudFoundryDocumentation

NOTEThisproducthasbeendiscontinued

copyCopyrightPivotalSoftwareInc2013-2018 3 17

ReleaseNotesforGemFireforPivotalCloudFoundry

OverviewGemFireforPivotalCloudFoundry (PCF)supportsthedeploymentofmultiplePivotalGemFireclusterconfigurationstoPCFtosupportGemFireapplicationdevelopmentanddeploymentGemFireforPCFenablesadministratorstocustomizethreedifferentclusterconfigurationstoprovidecoarsecontroloverthenumberoflocatorsandserversavailableineachGemFireinstanceInadditiondeveloperscancustomizetheGemFireinstancethatisboundtotheirappusingGemFireclusterconfigurationcommandsoranewCloudFoundryCLIinterface

YourfeedbackiswelcomePleaseprovideanybugsfeaturerequestsorquestionseithertoPivotalCustomerSupportathttpssupportpivotalio oremailpivotal-cf-feedbackpivotalio

v1720

ReleaseDate30thJanuary2017

NewinthisRelease

Securityfixes

Runsgfshprocessasthe vcap userinsteadofthe root user

v1660

ReleaseDate30thJanuary2017

NewinthisRelease

Securityfixes

Runsgfshprocessasthe vcap userinsteadofthe root user

v1710

ReleaseDate29thDecember2016

NewinthisRelease

StemcellAWS32336patchesUbuntuCVEs

StemcellAzure32337patchesUbuntuCVEs

Securityfixes

RemovepublicroutethatexposedWANreplicationcredentials[CVE-2016-8220]Addauthenticationtobrokerendpoints[CVE-2016-9880]

v1650

copyCopyrightPivotalSoftwareInc2013-2018 4 17

ReleaseDate29thDecember2016

NewinthisRelease

StemcellAWS32336patchesUbuntuCVEs

StemcellAzure32337patchesUbuntuCVEs

Securityfixes

RemovepublicroutethatexposedWANreplicationcredentials[CVE-2016-8220]Addauthenticationtobrokerendpoints[CVE-2016-9880]

v1640

ReleaseDate11thNovember2016

Newinthisrelease

Bugfixes

Upgradedgolangtov17

v1630

ReleaseDate28thOctober2016

Newinthisrelease

StemcellAWS323217patchesUbuntuCVEs

CompatibilityfixesforPCFv17runningonvSphereandAzure

v1700

ReleaseDate19thSeptember2016

NewinthisRelease

CompatibilityreleaseforPCFv17andPCFv18TheGemFireforPCFservicenowinstallsonbothPCFv17andPCFv18withoutsupportforspecificfeaturessuchasmultipleavailabilityzones

IPsecsupportTheGemFireforPCFtilenowsupportsIPsec

LogformatchangedfromfreetexttoJSON

Bugfixes

DBsynchissuesUpgradedgolangtov17UsecryptolibraryforcertificatechaindiscoveryUseofCF_DIAL_TIMEOUTServiceinstanceroutearenowuniqueacrossorgsandspaces

StemcellAWS323217patchesUbuntuCVEs

StemcellAzure323217patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xv35xToresolvethisusethelatestJavabuildpack

CurrentlytilesupportsonlyasingleAvailabilityZone(AZ)

copyCopyrightPivotalSoftwareInc2013-2018 5 17

v162

ReleaseDate28thJuly2016

NewinthisRelease

CompatibilityreleaseforPCFv17TheGemFireforPCFservicenowinstallsonPCFv17withoutsupportforPCFv17ndashspecificfeaturessuchasmultipleavailabilityzones

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacks34x35xToresolvethisusethelatestJavabuildpack

v161

ReleaseDate22ndJuly2016

NewinthisRelease

StemcellAWS323213patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacks34xand35xToresolvethisupdateJavabuildpackto36 InJavabuildpack34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1600

ReleaseDate31stMay2016

NewinthisRelease

StemcellAWS32324patchesUbuntuCVEs

StemcellAzure32325patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1500

ReleaseDate9thMay2016

NewinthisRelease

ThepackagedGemFireisupgradedfromv8205tov82014

The enable-network-partition-detection propertyisnowenabled topreventagainstdatacorruptioninsplit-brainscenarios

Clusterstabilityhasbeenimprovedduringrestartsandduringserviceinstancedeletions

Defaulttimeoutof cf restart-gemfire hasbeenincreasedfrom120secondsto900secondstoaccommodateslower-than-expectedstartupofserversandlocators

copyCopyrightPivotalSoftwareInc2013-2018 6 17

WhenrunningonAzureGemFireserverswillhaveredundancyzones tieddirectlytoAzurersquosfaultdomains sothatredundancyforpartitionedregionsissatisfiedacrossmultiplevirtualserverracks

The cf export-gemfire commandnowgivesfeedbackaboutmissingargumentsmakingiteasiertoexportyourGemFirelogsclusterconfigsandproperties

UpgradeWarningDowntimeRequired

Upgradingtov1500willrequiredowntimeforyourGemFireforPCFdeployment

Sincethe enable-network-partition-detection=true propertymustbesetontheentireclusteratthesametimeweareunabletodoarollingupgradePreviouslydeployedappsandserviceinstanceswillcontinuetofunctionnormallyaftertheupgradethoughGemFireforPCFwillbeunavailableduringtheupgrade

ForOpsManager-deployedtiles

1 Uploadthev1500GemFireforPCFtiletoOpsManager

2 UnderAvailableProductsgtPivotalGemFireclickAdd

3 boshtarget yourOpsManager-deployedboshdirector

4 boshstop yourpreviouslydeployedGemFireforPCFtileThiswillstoptheGemFireforPCFservicebrokerandallserviceinstances

5 InOpsManagerclickApplyChanges

Forbosh-deployedreleases

1 bosh upload thereleasescontainedinthistile

2 bosh stop yourexistingGemFiredeployment

3 bosh deploy themanifestcontainedinthistile

4 bosh start yournewdeployment

copyCopyrightPivotalSoftwareInc2013-2018 7 17

KnownIssuesandLimitations

Upgradingtov1500willrequiredowntimeforyourGemFireforPCFdeploymentasdetailedintheprevioussection

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1400

ReleaseDate4thApril2016

NewinthisRelease

AddssupportforusingCLIpluginwithahttpproxyToenableproxyusagefollowthesameinstructionsfortheCLI

EnablesbestpracticeOStuningsettingsforserverandlocatorVMsIncludessettingsfor

fsfile-max

vmswappiness

netcoresomaxconn

netcorenetdev_max_backlog

netcorermem_max

netcorewmem_max

netipv4tcp_wmem

netipv4tcp_rmem

netipv4tcp_syncookies

netipv4tcp_max_syn_backlog

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1300

ReleaseDate18thMarch2016

NewinthisRelease

Addsupportforasynchronousserviceinstanceallocationanddeallocation

AddbasicauthforGemfireagentendpoints

Improveerrorhandlingandreportingduringserviceinstancedeallocation

Includestacktracesinerrorlogsfortheservicebroker

IntroduceloglevelsfortheservicebrokerFornowtheyareonlyconfigurableatthereleaselevelandsetto info bydefaultTheyarenotexposedinthetileatthispoint

Increasethedefaultlimitforfiledescriptorsto32000fortheGemFireVM

EnsurethattheJVMis kill edwhenitisOutofMemory

Upgradestemcellto314610patchingUSN-2929-1

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

copyCopyrightPivotalSoftwareInc2013-2018 8 17

v1230

ReleaseDate4thFebruary2016

NewinthisRelease

Stemcell31466patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1220

ReleaseDate22ndJanuary2016

NewinthisRelease

Stemcell31465resolvesCVE-2016-0728

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1210

ReleaseDate12thJanuary2016

NewinthisRelease

Stemcell31462resolvesCVEUSN-2857-1

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1200

ReleaseDate1stDecember2015

NewinthisRelease

SupportforGemFiremulti-site(WAN)replication

SupportfortheldquoTrustedCertificatesrdquofeatureinOpsManagerThecertificatesfromldquoTrustedCertificatesrdquoaredeployedtoallGemFirenodesandtotheGemFireservicebrokerNoteonself-signedandinternalCAsignedcertificatesIfyouareusingaself-signedcertificateoracertificatesignedbyaninternalorothernotknowncertificateauthority(CA)youmustaddthecertificate(orcertificatechain)totheldquoTrustedCertificatesrdquoinOpsManager

GemFireupgradedtov8205

copyCopyrightPivotalSoftwareInc2013-2018 9 17

Drainscriptimprovements

BettererrorreportingforserviceinstanceallocationfailuresInsteadofreturningldquoThemaximumnumberofServiceInstancesalreadyexistrdquomessageforallfailuresduringaserviceinstanceallocationeachdifferenttypeoffailurereturnsadescriptiveerrormessage

Stemcell3144

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartofanupgradeThisproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofanupgradeanewVMhasbeencreatedwiththesameIPbutwithadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

v1110

ReleaseDate5thNovember2015

NewinthisRelease

SupportforOpsManagerv16andElasticRuntimev16ThisreleasedoesnotworkwiththepreviousreleasesofOpsManagerandElasticRuntime

Stemcell3100

KnownIssuesandLimitations

SeeKnownIssuesandLimitationsforv1100below

v1100

ReleaseDate22ndSeptember2015

NewinthisRelease

UpgradedPivotalGemFiretov82

UpgradedJavatov8andJREv18

Spring-relatedenhancements

SupportfordeployingaSpringXMLconfigurationandapplicationcodetoGemFireserviceinstances

IfyouuseSpringldquoallthewayrdquoyoucandosowithGemFireserviceinstancesaswellThereisnoneedtotranslatetheSpringconfigurationtoGemFireXMLSpringsupportisprovidedusingconfigurationoptionsoftheGemFireforPCFCLIplug-incommand cf restart-gemfire

SupportforusingSSLencryptiontoaccessGemFireServiceInstancesfromoutsideofPCF

GemFirePulseisnowaccessibleviaHTTPSGemFireRESTclientscanbeconfiguredtoaccessaserviceinstancersquosRESTAPIendpointviaHTTPSYoucanconfiguretheGemFireshell(gfsh)toaccessaserviceinstanceoverHTTPS

Additionalfixesandimprovements

DrainscriptimprovementsImprovedhandlingofself-signedcertificatesYAMLsyntaxvalidationforclusterpropertiesthatareprovidedviathe --properties optionofthe cf restart-gemfire CLIcommand

Stemcell3062

copyCopyrightPivotalSoftwareInc2013-2018 10 17

SupportfortheexperimentalfeatureHTTPStraffictoUAA

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartoftheupgradeTheproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofupgradeanewVMhasbeencreatedwiththesameIPbutadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

v1000

ReleaseDate10August2015

KnownIssuesandLimitations

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

copyCopyrightPivotalSoftwareInc2013-2018 11 17

OverviewGemFireforPivotalCloudFoundry (PCF)enablesyoutoeasilyconfigureandprovisioncompletePivotalGemFireclientserverclustersusingPivotalCloudFoundryACloudFoundryAdministratorcaneasilyconfigurethreedifferenttypesofGemFireclusters(serviceplans)usingdifferentnumbersoflocatorsandserversaswellasdifferentresourcesperclusternodeforeachserviceplanEachserviceplaninstanceusesGemFirebestpracticestoautomaticallyconfigureJVMresourceutilizationandgarbagecollectionsettingstakingintoconsiderationtheresourcesavailableontheclusternodeServiceinstancesarededicatednotmultitenantbydefaultbuttheycanbeusedbydifferentapplicationsifdesiredAllocatingaserviceinstanceprovisionsaGemFireclusterfromthepoolofavailableunallocatedGemFireclustersthatwereinstantiatedduringthetileinstallationGemFireprocesseslocatorsandserversrunindedicatedVMs

PivotalprovidestheGemFirePulseWebapplicationgfshcommand-lineutilitytohelpyoumonitormanagetheserviceinstancesthatyoudeployInadditionPivotalprovidesaCloudFoundryCLIplug-inthatdeveloperscanusetoperformthemostcommonGemFireclustermanagementoperationssuchas

Restartingthecluster

Downloadingclusterconfigurationfileslogfilesorstatistics

Uploadingcustomclusterconfigurations

FinallyGemFireforPivotalCloudFoundryprovidesacustomrestURLtohelpyoueasilyusetheGemFireRESTAPIwithaboundserviceinstanceRequeststotheURLautomaticallyround-robintoavailablecacheserverssothereisnoneedtoassociateRESTrequestswithaspecificserver

HowDoestheServiceWork

PCFAdministratorWorkflowThefollowingdiagramdepictsthehigh-levelworkflowfordeployingtheGemFireservice

Figure1InstallingandConfiguringtheService

copyCopyrightPivotalSoftwareInc2013-2018 12 17

1 PivotalCloudFoundryAdministratorimportstheGemFireserviceproductfileintoPivotalCloudFoundryOperationsManager

2 WhenaPivotalCloudFoundryAdministratorconfigurestheGemFireserviceforthefirsttimetheydefinethenumberofdiscreteserviceinstancesforeachGemFireServicePlanAserviceinstanceisaGemFireclusterGemFireforPivotalCloudFoundryenablesyoutoconfigureinstancesforthreedifferentGemFireclusterconfigurationswhereeachinstancecanprovideadifferentnumberoflocatorsandcacheserversaswellasmemoryanddiskspaceresources

3 AftermakingtheirconfigurationchoicesthePivotalCloudFoundryAdministratordeploystheservicecausingPivotalCloudFoundryOpsManagertocreateandsetuptheappropriatesetofvirtualmachines

4 OperationsManagerdeploysavirtualmachinetoruntheGemFireServiceBrokerwhichisresponsibleforallocatingGemFireClusterserviceinstancestoPivotalCloudFoundryusersandforpassingrelevantinformationintotheapplicationsthatareboundtoeachserviceinstance

5 OperationsManageralsodeploysthespecifiednumberofGemFireserviceinstances(clusters)asconfiguredbytheadministratorLastlythereareafewtemporaryVMsusedforinstallanduninstallerrands

AftertheservicehasbeendeployedinOperationsManageritisreadyforusebyapplicationdevelopersintheElasticRuntimeenvironmentThefollowingdiagramdepictsthehigh-levelworkflowthatanapplicationdeveloperwouldusetoconsumetheservice

PCFDeveloper(ServiceUser)WorkflowFigure2UsingtheService

copyCopyrightPivotalSoftwareInc2013-2018 13 17

1 PivotalCloudFoundryDeveloperusestheCLIorDeveloperConsoletocreateaGemFireserviceinstanceintheElasticRuntimespacewheretheyarepushingtherelevantapplications

2 CreatingaserviceinstancecausesElasticRuntimetocontacttheGemFireServiceBrokerwhichallocatesoneun-allocatedGemFireclusterofdedicatedvirtualmachinestotheGemFireserviceinstanceIntheresponsetoElasticRuntimetheServiceBrokerincludestheURLtoreachtheGemFirePulsemonitoringtoolfortheserviceinstanceTheElasticRuntimeexposesthisURLintheDeveloperConsolersquosmetadatafortheserviceinstance

3 PivotalCloudFoundryDeveloperpushestheirapplicationtoElasticRuntime

4 PivotalCloudFoundryDeveloperbindstheirapplicationtotheGemFireserviceinstanceTheGemFireServiceBrokerpopulatestheapplicationrsquosVCAP_SERVICESenvironmentvariablewiththemetadatarequiredtoaccesstheGemFireserviceinstancersquoslocatorsandcacheservers

5 PivotalCloudFoundrydevelopercanconfiguremonitorandmanagetheclusterusingPulseandortheGemFireforPivotalCloudFoundryCLIplug-in

AdditionalResourcesPivotalGemFireProductDocumentation

PivotalGemFireCommunityForum

PivotalGemFireKnowledgeBase

PivotalCloudFoundryDocumentation

copyCopyrightPivotalSoftwareInc2013-2018 14 17

InstallingGemFireforPivotalCloudFoundryPrerequisites

ServiceConfigurationDefaults

InstallationSteps

CreatingGemFireServicePlans

ApplicationSecurityGroups

PrerequisitesBeforeyoubeginyourGemFireforPivotalCloudFoundry (PCF)deploymentyoursystemneedstomeetthefollowingminimumrequirements

PivotalCloudFoundryOpsManagerforvSphereorPivotalCloudFoundryOpsManagerforvCloudAirorvCloudDirectororPivotalCloudFoundryOpsManagerforAWS

IPSec(optional)IfyouwishtouseIPSecinyourPivotalGemFireinstallationpleaseensureyouhavetheIPSecBOSHreleasedeployedbeforeinstallingtheElasticRuntimeandGemFiretileForinstructionsondeployingtheIPSecBOSHreleaseseetheinstructionshere

PivotalCloudFoundryElasticRuntime

NetworkaccessandcredentialsforthePivotalCloudFoundryOpsManagerWebConsole

CapacityinthevSphereclusterforserviceinstancesyouwanttodeployBydefaulttheGemFireserviceconfiguresthreedifferentGemFireserviceplansEachplandeploystheminimumof2locatorsbutdeploy35and7GemFirecacheserversrespectivelySeveralsupportingVMsarealsorequiredforservicedeploymentTheresourceallocationsforthedefaultGemFireserviceplaninstancesandcomponentsareasfollows

Table1DefaultResourceRequirementsforaGemFireServiceInstances

Service VirtualMachines CPU RAM(MB) EphemeralDisk(MB) PersistentDisk(MB)

GemFirelocator(Plan1)

2 1 1024 2048 1024

GemFirelocator(Plan2)

2 1 1024 2048 1024

GemFirelocator(Plan3)

2 1 1024 2048 1024

GemFireServer(Plan1)

3 2 4096 6144 8192

GemFireServer(Plan2)

3 2 4096 6144 8192

GemFireServer(Plan3)

3 2 4096 6144 8192

GemFireBroker 1 2 4096 4096 4096

BrokerRegistrar 1 1 2048 2048 0

BrokerDeregistrar 1 1 2048 2048 0

ClusterSmokeTest 1 1 512 2048 0

ClusterAgentSmokeTest

1 1 512 2048 0

ServiceOfferingSmokeTest

1 1 512 2048 0

Compilation 2 1 1024 4096 0

Totals 12 9 16384 24576 12800

RequiredforeachVM

ServiceConfigurationDefaults

copyCopyrightPivotalSoftwareInc2013-2018 15 17

TheGemFireforPivotalCloudFoundryserviceautomaticallyimplementsthebestpracticesanoperatorwouldnormallyemploywhendeployingGemFireTheseconfigurationsinclude

DynamicmemorymanagementDynamicallysettheJVMmaximumandminimummemoryutilizationforeachinstanceoftheGemFiresoftwareprocessbasedontheVMrsquostotalmemory

GarbagecollectionEnableandconfigurememorygarbagecollectionforeachinstanceoftheGemFiresoftwareprocess

LoggingconfigurationCreateandstorelogsattheconfigloglevelwithappropriatelimitationsonsizingandautomaticlogrotation

StatisticsmonitoringCreateandstorestatisticsfilesatasamplerateof1000whichcorrespondstoasamplingrateofoncepersecond

DataoverflowconfigurationOverflowdatatodiskwhencrossing70memoryutilization

MemoryoverutilizationprotectionPreventfurtherwritestomemorywhencrossing80memoryutilization

ClientauthenticationRequireclientstoauthenticatewhendirectlyaccessingcacheservers

Thedefaultconfigurationsettingscanbeadjustedifneededonaperserviceinstancebasis

InstallationSteps1 DownloadtheGemFireforPivotalCloudFoundrytilefromPivotalNetwork

2 UseaWebbrowsertologintothePivotalOpsManagerapplicationThePivotalCloudFoundryOpsManagerInstallationDashboarddisplays

3 ClickImportaProductTheAddProductsscreendisplays

4 ClickChooseFileandnavigatetothefileyoudownloadedThefileuploadstoyourPivotalCloudFoundrydeployment

5 ClickAddPivotalOpsManageraddsanewtileforGemFireforPivotalCloudFoundrytotheInstallationDashboard

Self-SignedandInternalSSLCertificatesInproductionenvironmentswerecommendthatyouuseanSSLcertificatesignedbyareputablecertificateauthority(CA)PleaseensureyourSSLcertificatehasalltheSubjectAlternativeNames(SANs)

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

IfyourcertificateissignedbyaknownauthorityandhasthecorrectSANspleasedisregardthissection

copyCopyrightPivotalSoftwareInc2013-2018 16 17

InternalCertificatesInthecaseofInternalCertificates(iecertificatessignedbyaninternalRootCA)youneedtoconfiguretheOpsManagerDirectortiletotrusttheinternalRootCAToachievethispleasefollowthestepsbelow

1 AddtheinternalRootCAistotheSecurityConfigsectionundertheOpsManagerDirectorTile

2 CopytheinternalcertificateandRootCA(certificatechain)totheElasticRuntimetilebynavigatingtoPivotalElasticRuntimegtNetworkinggtLoadBalancerwithTLSenabled(orHAProxy)

Self-SignedCertificatesWhenusingselfsignedcertificatesgeneratedbytheElasticRuntimeTileyouneedtoensurethatthiscertificateisprovidedtotheOpsManagerDirectorTile

GeneratingSelf-SignCertificatesusingtheElasticRuntimeTileTheElasticRuntimeTileallowsyoutogenerateself-signedcertificatesbynavigatingtoPivotalElasticRuntimegtNetworkinggtGenerateRSACertificatePleasespecifythefollowingwildcardsubdomains

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

OnceyouhavegeneratedyourcertificatecopythecertificatetotheOpsManagerDirectorTileandplaceitintheSecurityConfigsection

GeneratingSelf-SignedCertificatesusingOpenSSL1 TousetheOpenSSLCLIrunthefollowingcommands

a Generateaprivatekey openssl genrsa -des3 -out serverkey 1024b GenerateaCertificateSigningRequest(CSR)withthe subjectAltName entriesandeditthe subj flagasneeded

openssl req -new -key serverkey -out servercsr -subj C=USST=StateL=LocalityO=OrganizationOU=OrganizationUnitCN=wwwexamplecomemailAddress=exampleexamplecomsubjectAltName=DNS1=systemexamplecomDNS2=appsexamplecomDNS3=uaasystemexamplecomDNS4=loginsystemexamplecom

c RemovePassphrasefromKey cp serverkey serverkeyorg openssl rsa -in serverkeyorg -out serverkeyd GenerateaSelf-SignedCertificate openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt

2 UploadtheSSLcertificatetoyourloadbalancerInstructionsforAWS

a AuthenticatewiththeAWSCLI$ aws configure AWS Access Key ID [None] ltACCESS KEY GOES HEREgt AWS Secret Access Key [None] ltSECRET ACCESS KEY GOESHEREgt Default region name [None] us-east-1 Default output format [None] ENTER

b Uploadyourself-signedcertificateinIAMaws iam upload-server-certificate --server-certificate-name ltNAME OF CERTIFICATEgt --certificate-bodyfileservercrt --private-key fileserverkey

c Uploadyourself-signedcertificatetoyourElasticLoadBalancer(ELB)aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name ltELB NAMEgt --load-balancer-port ltPORTgt --ssl-certificate-id arnawsiamltIAM NUMBERgtserver-certificateltNAME OF CERTIFICATEgt

3 AddtheSSLcertificateasatrustedcertificatetoyourOpsManager-deployedVMs

a InOpsManagerontheDirectorTileundertheSecuritysectionpastethecertificateandsave

copyCopyrightPivotalSoftwareInc2013-2018 17 17

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 2: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

234

1215151516162023254040404141414244464646

TableofContents

TableofContentsPivotalGemFireforPivotalCloudFoundryReleaseNotesforGemFireforPivotalCloudFoundryOverviewInstallingGemFireforPivotalCloudFoundryPrerequisitesServiceConfigurationDefaultsInstallationStepsSelf-SignedandInternalSSLCertificatesCreatingGemFireServicePlansApplicationSecurityGroupsUsingGemFireforPivotalCloudFoundryUsingtheGemFireforCloudFoundryCLIPlug-inInstallationOverviewBrokerHTTPUsernameandPasswordexport-gemfirerestart-gemfireshow-wan-config-urlTroubleshootingUninstallingGemFireforPivotalCloudFoundryPrerequisitesUninstalling

copyCopyrightPivotalSoftwareInc2013-2018 2 17

PivotalGemFireforPivotalCloudFoundry

ThisdocumentationdescribeshowtoinstallconfigureanduseGemFireforPivotalCloudFoundry (PCF)

ProductSnapshotCurrentGemFireforPivotalCloudFoundryDetails

Version170ReleaseDate19thSeptember2016SoftwarecomponentversionGemFire821SpringDataGemFire182Java8(JDKJRE8u60)CompatibleOpsManagerVersion(s)17x18xCompatibleElasticRuntimeVersion(s)17x18xCompatibleJavaBuildpackVersion(s)36371vSpheresupportYesAWSsupportYesIPSecsupportYes

UpgradingtotheLatestVersionThisversionofPivotalGemFireforPivotalCloudFoundrysupportsupgradingfromallthepreviousversionsoftheproductRunningserviceinstancesareautomaticallyupgradedonenodeatatimeIfyouconfiguredyourclusterswithdataredundancythentheupgradeprocessrequiresnodowntimeandresultsinnodataloss

NoteUpgradesfromAlphaorBetaversionsofthesoftwarearenotsupported

DocumentationIndexThedocumentationcontainsthefollowingtopics

ReleaseNotes

Overview

InstallingGemFireforPivotalCloudFoundry

UsingGemFireforPivotalCloudFoundry

Troubleshooting

FormoreinformationaboutPivotalGemFireseethePivotalGemFireDocumentation

FormoreinformationaboutPivotalCloudFoundryseethePivotalCloudFoundryDocumentation

NOTEThisproducthasbeendiscontinued

copyCopyrightPivotalSoftwareInc2013-2018 3 17

ReleaseNotesforGemFireforPivotalCloudFoundry

OverviewGemFireforPivotalCloudFoundry (PCF)supportsthedeploymentofmultiplePivotalGemFireclusterconfigurationstoPCFtosupportGemFireapplicationdevelopmentanddeploymentGemFireforPCFenablesadministratorstocustomizethreedifferentclusterconfigurationstoprovidecoarsecontroloverthenumberoflocatorsandserversavailableineachGemFireinstanceInadditiondeveloperscancustomizetheGemFireinstancethatisboundtotheirappusingGemFireclusterconfigurationcommandsoranewCloudFoundryCLIinterface

YourfeedbackiswelcomePleaseprovideanybugsfeaturerequestsorquestionseithertoPivotalCustomerSupportathttpssupportpivotalio oremailpivotal-cf-feedbackpivotalio

v1720

ReleaseDate30thJanuary2017

NewinthisRelease

Securityfixes

Runsgfshprocessasthe vcap userinsteadofthe root user

v1660

ReleaseDate30thJanuary2017

NewinthisRelease

Securityfixes

Runsgfshprocessasthe vcap userinsteadofthe root user

v1710

ReleaseDate29thDecember2016

NewinthisRelease

StemcellAWS32336patchesUbuntuCVEs

StemcellAzure32337patchesUbuntuCVEs

Securityfixes

RemovepublicroutethatexposedWANreplicationcredentials[CVE-2016-8220]Addauthenticationtobrokerendpoints[CVE-2016-9880]

v1650

copyCopyrightPivotalSoftwareInc2013-2018 4 17

ReleaseDate29thDecember2016

NewinthisRelease

StemcellAWS32336patchesUbuntuCVEs

StemcellAzure32337patchesUbuntuCVEs

Securityfixes

RemovepublicroutethatexposedWANreplicationcredentials[CVE-2016-8220]Addauthenticationtobrokerendpoints[CVE-2016-9880]

v1640

ReleaseDate11thNovember2016

Newinthisrelease

Bugfixes

Upgradedgolangtov17

v1630

ReleaseDate28thOctober2016

Newinthisrelease

StemcellAWS323217patchesUbuntuCVEs

CompatibilityfixesforPCFv17runningonvSphereandAzure

v1700

ReleaseDate19thSeptember2016

NewinthisRelease

CompatibilityreleaseforPCFv17andPCFv18TheGemFireforPCFservicenowinstallsonbothPCFv17andPCFv18withoutsupportforspecificfeaturessuchasmultipleavailabilityzones

IPsecsupportTheGemFireforPCFtilenowsupportsIPsec

LogformatchangedfromfreetexttoJSON

Bugfixes

DBsynchissuesUpgradedgolangtov17UsecryptolibraryforcertificatechaindiscoveryUseofCF_DIAL_TIMEOUTServiceinstanceroutearenowuniqueacrossorgsandspaces

StemcellAWS323217patchesUbuntuCVEs

StemcellAzure323217patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xv35xToresolvethisusethelatestJavabuildpack

CurrentlytilesupportsonlyasingleAvailabilityZone(AZ)

copyCopyrightPivotalSoftwareInc2013-2018 5 17

v162

ReleaseDate28thJuly2016

NewinthisRelease

CompatibilityreleaseforPCFv17TheGemFireforPCFservicenowinstallsonPCFv17withoutsupportforPCFv17ndashspecificfeaturessuchasmultipleavailabilityzones

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacks34x35xToresolvethisusethelatestJavabuildpack

v161

ReleaseDate22ndJuly2016

NewinthisRelease

StemcellAWS323213patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacks34xand35xToresolvethisupdateJavabuildpackto36 InJavabuildpack34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1600

ReleaseDate31stMay2016

NewinthisRelease

StemcellAWS32324patchesUbuntuCVEs

StemcellAzure32325patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1500

ReleaseDate9thMay2016

NewinthisRelease

ThepackagedGemFireisupgradedfromv8205tov82014

The enable-network-partition-detection propertyisnowenabled topreventagainstdatacorruptioninsplit-brainscenarios

Clusterstabilityhasbeenimprovedduringrestartsandduringserviceinstancedeletions

Defaulttimeoutof cf restart-gemfire hasbeenincreasedfrom120secondsto900secondstoaccommodateslower-than-expectedstartupofserversandlocators

copyCopyrightPivotalSoftwareInc2013-2018 6 17

WhenrunningonAzureGemFireserverswillhaveredundancyzones tieddirectlytoAzurersquosfaultdomains sothatredundancyforpartitionedregionsissatisfiedacrossmultiplevirtualserverracks

The cf export-gemfire commandnowgivesfeedbackaboutmissingargumentsmakingiteasiertoexportyourGemFirelogsclusterconfigsandproperties

UpgradeWarningDowntimeRequired

Upgradingtov1500willrequiredowntimeforyourGemFireforPCFdeployment

Sincethe enable-network-partition-detection=true propertymustbesetontheentireclusteratthesametimeweareunabletodoarollingupgradePreviouslydeployedappsandserviceinstanceswillcontinuetofunctionnormallyaftertheupgradethoughGemFireforPCFwillbeunavailableduringtheupgrade

ForOpsManager-deployedtiles

1 Uploadthev1500GemFireforPCFtiletoOpsManager

2 UnderAvailableProductsgtPivotalGemFireclickAdd

3 boshtarget yourOpsManager-deployedboshdirector

4 boshstop yourpreviouslydeployedGemFireforPCFtileThiswillstoptheGemFireforPCFservicebrokerandallserviceinstances

5 InOpsManagerclickApplyChanges

Forbosh-deployedreleases

1 bosh upload thereleasescontainedinthistile

2 bosh stop yourexistingGemFiredeployment

3 bosh deploy themanifestcontainedinthistile

4 bosh start yournewdeployment

copyCopyrightPivotalSoftwareInc2013-2018 7 17

KnownIssuesandLimitations

Upgradingtov1500willrequiredowntimeforyourGemFireforPCFdeploymentasdetailedintheprevioussection

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1400

ReleaseDate4thApril2016

NewinthisRelease

AddssupportforusingCLIpluginwithahttpproxyToenableproxyusagefollowthesameinstructionsfortheCLI

EnablesbestpracticeOStuningsettingsforserverandlocatorVMsIncludessettingsfor

fsfile-max

vmswappiness

netcoresomaxconn

netcorenetdev_max_backlog

netcorermem_max

netcorewmem_max

netipv4tcp_wmem

netipv4tcp_rmem

netipv4tcp_syncookies

netipv4tcp_max_syn_backlog

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1300

ReleaseDate18thMarch2016

NewinthisRelease

Addsupportforasynchronousserviceinstanceallocationanddeallocation

AddbasicauthforGemfireagentendpoints

Improveerrorhandlingandreportingduringserviceinstancedeallocation

Includestacktracesinerrorlogsfortheservicebroker

IntroduceloglevelsfortheservicebrokerFornowtheyareonlyconfigurableatthereleaselevelandsetto info bydefaultTheyarenotexposedinthetileatthispoint

Increasethedefaultlimitforfiledescriptorsto32000fortheGemFireVM

EnsurethattheJVMis kill edwhenitisOutofMemory

Upgradestemcellto314610patchingUSN-2929-1

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

copyCopyrightPivotalSoftwareInc2013-2018 8 17

v1230

ReleaseDate4thFebruary2016

NewinthisRelease

Stemcell31466patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1220

ReleaseDate22ndJanuary2016

NewinthisRelease

Stemcell31465resolvesCVE-2016-0728

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1210

ReleaseDate12thJanuary2016

NewinthisRelease

Stemcell31462resolvesCVEUSN-2857-1

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1200

ReleaseDate1stDecember2015

NewinthisRelease

SupportforGemFiremulti-site(WAN)replication

SupportfortheldquoTrustedCertificatesrdquofeatureinOpsManagerThecertificatesfromldquoTrustedCertificatesrdquoaredeployedtoallGemFirenodesandtotheGemFireservicebrokerNoteonself-signedandinternalCAsignedcertificatesIfyouareusingaself-signedcertificateoracertificatesignedbyaninternalorothernotknowncertificateauthority(CA)youmustaddthecertificate(orcertificatechain)totheldquoTrustedCertificatesrdquoinOpsManager

GemFireupgradedtov8205

copyCopyrightPivotalSoftwareInc2013-2018 9 17

Drainscriptimprovements

BettererrorreportingforserviceinstanceallocationfailuresInsteadofreturningldquoThemaximumnumberofServiceInstancesalreadyexistrdquomessageforallfailuresduringaserviceinstanceallocationeachdifferenttypeoffailurereturnsadescriptiveerrormessage

Stemcell3144

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartofanupgradeThisproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofanupgradeanewVMhasbeencreatedwiththesameIPbutwithadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

v1110

ReleaseDate5thNovember2015

NewinthisRelease

SupportforOpsManagerv16andElasticRuntimev16ThisreleasedoesnotworkwiththepreviousreleasesofOpsManagerandElasticRuntime

Stemcell3100

KnownIssuesandLimitations

SeeKnownIssuesandLimitationsforv1100below

v1100

ReleaseDate22ndSeptember2015

NewinthisRelease

UpgradedPivotalGemFiretov82

UpgradedJavatov8andJREv18

Spring-relatedenhancements

SupportfordeployingaSpringXMLconfigurationandapplicationcodetoGemFireserviceinstances

IfyouuseSpringldquoallthewayrdquoyoucandosowithGemFireserviceinstancesaswellThereisnoneedtotranslatetheSpringconfigurationtoGemFireXMLSpringsupportisprovidedusingconfigurationoptionsoftheGemFireforPCFCLIplug-incommand cf restart-gemfire

SupportforusingSSLencryptiontoaccessGemFireServiceInstancesfromoutsideofPCF

GemFirePulseisnowaccessibleviaHTTPSGemFireRESTclientscanbeconfiguredtoaccessaserviceinstancersquosRESTAPIendpointviaHTTPSYoucanconfiguretheGemFireshell(gfsh)toaccessaserviceinstanceoverHTTPS

Additionalfixesandimprovements

DrainscriptimprovementsImprovedhandlingofself-signedcertificatesYAMLsyntaxvalidationforclusterpropertiesthatareprovidedviathe --properties optionofthe cf restart-gemfire CLIcommand

Stemcell3062

copyCopyrightPivotalSoftwareInc2013-2018 10 17

SupportfortheexperimentalfeatureHTTPStraffictoUAA

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartoftheupgradeTheproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofupgradeanewVMhasbeencreatedwiththesameIPbutadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

v1000

ReleaseDate10August2015

KnownIssuesandLimitations

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

copyCopyrightPivotalSoftwareInc2013-2018 11 17

OverviewGemFireforPivotalCloudFoundry (PCF)enablesyoutoeasilyconfigureandprovisioncompletePivotalGemFireclientserverclustersusingPivotalCloudFoundryACloudFoundryAdministratorcaneasilyconfigurethreedifferenttypesofGemFireclusters(serviceplans)usingdifferentnumbersoflocatorsandserversaswellasdifferentresourcesperclusternodeforeachserviceplanEachserviceplaninstanceusesGemFirebestpracticestoautomaticallyconfigureJVMresourceutilizationandgarbagecollectionsettingstakingintoconsiderationtheresourcesavailableontheclusternodeServiceinstancesarededicatednotmultitenantbydefaultbuttheycanbeusedbydifferentapplicationsifdesiredAllocatingaserviceinstanceprovisionsaGemFireclusterfromthepoolofavailableunallocatedGemFireclustersthatwereinstantiatedduringthetileinstallationGemFireprocesseslocatorsandserversrunindedicatedVMs

PivotalprovidestheGemFirePulseWebapplicationgfshcommand-lineutilitytohelpyoumonitormanagetheserviceinstancesthatyoudeployInadditionPivotalprovidesaCloudFoundryCLIplug-inthatdeveloperscanusetoperformthemostcommonGemFireclustermanagementoperationssuchas

Restartingthecluster

Downloadingclusterconfigurationfileslogfilesorstatistics

Uploadingcustomclusterconfigurations

FinallyGemFireforPivotalCloudFoundryprovidesacustomrestURLtohelpyoueasilyusetheGemFireRESTAPIwithaboundserviceinstanceRequeststotheURLautomaticallyround-robintoavailablecacheserverssothereisnoneedtoassociateRESTrequestswithaspecificserver

HowDoestheServiceWork

PCFAdministratorWorkflowThefollowingdiagramdepictsthehigh-levelworkflowfordeployingtheGemFireservice

Figure1InstallingandConfiguringtheService

copyCopyrightPivotalSoftwareInc2013-2018 12 17

1 PivotalCloudFoundryAdministratorimportstheGemFireserviceproductfileintoPivotalCloudFoundryOperationsManager

2 WhenaPivotalCloudFoundryAdministratorconfigurestheGemFireserviceforthefirsttimetheydefinethenumberofdiscreteserviceinstancesforeachGemFireServicePlanAserviceinstanceisaGemFireclusterGemFireforPivotalCloudFoundryenablesyoutoconfigureinstancesforthreedifferentGemFireclusterconfigurationswhereeachinstancecanprovideadifferentnumberoflocatorsandcacheserversaswellasmemoryanddiskspaceresources

3 AftermakingtheirconfigurationchoicesthePivotalCloudFoundryAdministratordeploystheservicecausingPivotalCloudFoundryOpsManagertocreateandsetuptheappropriatesetofvirtualmachines

4 OperationsManagerdeploysavirtualmachinetoruntheGemFireServiceBrokerwhichisresponsibleforallocatingGemFireClusterserviceinstancestoPivotalCloudFoundryusersandforpassingrelevantinformationintotheapplicationsthatareboundtoeachserviceinstance

5 OperationsManageralsodeploysthespecifiednumberofGemFireserviceinstances(clusters)asconfiguredbytheadministratorLastlythereareafewtemporaryVMsusedforinstallanduninstallerrands

AftertheservicehasbeendeployedinOperationsManageritisreadyforusebyapplicationdevelopersintheElasticRuntimeenvironmentThefollowingdiagramdepictsthehigh-levelworkflowthatanapplicationdeveloperwouldusetoconsumetheservice

PCFDeveloper(ServiceUser)WorkflowFigure2UsingtheService

copyCopyrightPivotalSoftwareInc2013-2018 13 17

1 PivotalCloudFoundryDeveloperusestheCLIorDeveloperConsoletocreateaGemFireserviceinstanceintheElasticRuntimespacewheretheyarepushingtherelevantapplications

2 CreatingaserviceinstancecausesElasticRuntimetocontacttheGemFireServiceBrokerwhichallocatesoneun-allocatedGemFireclusterofdedicatedvirtualmachinestotheGemFireserviceinstanceIntheresponsetoElasticRuntimetheServiceBrokerincludestheURLtoreachtheGemFirePulsemonitoringtoolfortheserviceinstanceTheElasticRuntimeexposesthisURLintheDeveloperConsolersquosmetadatafortheserviceinstance

3 PivotalCloudFoundryDeveloperpushestheirapplicationtoElasticRuntime

4 PivotalCloudFoundryDeveloperbindstheirapplicationtotheGemFireserviceinstanceTheGemFireServiceBrokerpopulatestheapplicationrsquosVCAP_SERVICESenvironmentvariablewiththemetadatarequiredtoaccesstheGemFireserviceinstancersquoslocatorsandcacheservers

5 PivotalCloudFoundrydevelopercanconfiguremonitorandmanagetheclusterusingPulseandortheGemFireforPivotalCloudFoundryCLIplug-in

AdditionalResourcesPivotalGemFireProductDocumentation

PivotalGemFireCommunityForum

PivotalGemFireKnowledgeBase

PivotalCloudFoundryDocumentation

copyCopyrightPivotalSoftwareInc2013-2018 14 17

InstallingGemFireforPivotalCloudFoundryPrerequisites

ServiceConfigurationDefaults

InstallationSteps

CreatingGemFireServicePlans

ApplicationSecurityGroups

PrerequisitesBeforeyoubeginyourGemFireforPivotalCloudFoundry (PCF)deploymentyoursystemneedstomeetthefollowingminimumrequirements

PivotalCloudFoundryOpsManagerforvSphereorPivotalCloudFoundryOpsManagerforvCloudAirorvCloudDirectororPivotalCloudFoundryOpsManagerforAWS

IPSec(optional)IfyouwishtouseIPSecinyourPivotalGemFireinstallationpleaseensureyouhavetheIPSecBOSHreleasedeployedbeforeinstallingtheElasticRuntimeandGemFiretileForinstructionsondeployingtheIPSecBOSHreleaseseetheinstructionshere

PivotalCloudFoundryElasticRuntime

NetworkaccessandcredentialsforthePivotalCloudFoundryOpsManagerWebConsole

CapacityinthevSphereclusterforserviceinstancesyouwanttodeployBydefaulttheGemFireserviceconfiguresthreedifferentGemFireserviceplansEachplandeploystheminimumof2locatorsbutdeploy35and7GemFirecacheserversrespectivelySeveralsupportingVMsarealsorequiredforservicedeploymentTheresourceallocationsforthedefaultGemFireserviceplaninstancesandcomponentsareasfollows

Table1DefaultResourceRequirementsforaGemFireServiceInstances

Service VirtualMachines CPU RAM(MB) EphemeralDisk(MB) PersistentDisk(MB)

GemFirelocator(Plan1)

2 1 1024 2048 1024

GemFirelocator(Plan2)

2 1 1024 2048 1024

GemFirelocator(Plan3)

2 1 1024 2048 1024

GemFireServer(Plan1)

3 2 4096 6144 8192

GemFireServer(Plan2)

3 2 4096 6144 8192

GemFireServer(Plan3)

3 2 4096 6144 8192

GemFireBroker 1 2 4096 4096 4096

BrokerRegistrar 1 1 2048 2048 0

BrokerDeregistrar 1 1 2048 2048 0

ClusterSmokeTest 1 1 512 2048 0

ClusterAgentSmokeTest

1 1 512 2048 0

ServiceOfferingSmokeTest

1 1 512 2048 0

Compilation 2 1 1024 4096 0

Totals 12 9 16384 24576 12800

RequiredforeachVM

ServiceConfigurationDefaults

copyCopyrightPivotalSoftwareInc2013-2018 15 17

TheGemFireforPivotalCloudFoundryserviceautomaticallyimplementsthebestpracticesanoperatorwouldnormallyemploywhendeployingGemFireTheseconfigurationsinclude

DynamicmemorymanagementDynamicallysettheJVMmaximumandminimummemoryutilizationforeachinstanceoftheGemFiresoftwareprocessbasedontheVMrsquostotalmemory

GarbagecollectionEnableandconfigurememorygarbagecollectionforeachinstanceoftheGemFiresoftwareprocess

LoggingconfigurationCreateandstorelogsattheconfigloglevelwithappropriatelimitationsonsizingandautomaticlogrotation

StatisticsmonitoringCreateandstorestatisticsfilesatasamplerateof1000whichcorrespondstoasamplingrateofoncepersecond

DataoverflowconfigurationOverflowdatatodiskwhencrossing70memoryutilization

MemoryoverutilizationprotectionPreventfurtherwritestomemorywhencrossing80memoryutilization

ClientauthenticationRequireclientstoauthenticatewhendirectlyaccessingcacheservers

Thedefaultconfigurationsettingscanbeadjustedifneededonaperserviceinstancebasis

InstallationSteps1 DownloadtheGemFireforPivotalCloudFoundrytilefromPivotalNetwork

2 UseaWebbrowsertologintothePivotalOpsManagerapplicationThePivotalCloudFoundryOpsManagerInstallationDashboarddisplays

3 ClickImportaProductTheAddProductsscreendisplays

4 ClickChooseFileandnavigatetothefileyoudownloadedThefileuploadstoyourPivotalCloudFoundrydeployment

5 ClickAddPivotalOpsManageraddsanewtileforGemFireforPivotalCloudFoundrytotheInstallationDashboard

Self-SignedandInternalSSLCertificatesInproductionenvironmentswerecommendthatyouuseanSSLcertificatesignedbyareputablecertificateauthority(CA)PleaseensureyourSSLcertificatehasalltheSubjectAlternativeNames(SANs)

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

IfyourcertificateissignedbyaknownauthorityandhasthecorrectSANspleasedisregardthissection

copyCopyrightPivotalSoftwareInc2013-2018 16 17

InternalCertificatesInthecaseofInternalCertificates(iecertificatessignedbyaninternalRootCA)youneedtoconfiguretheOpsManagerDirectortiletotrusttheinternalRootCAToachievethispleasefollowthestepsbelow

1 AddtheinternalRootCAistotheSecurityConfigsectionundertheOpsManagerDirectorTile

2 CopytheinternalcertificateandRootCA(certificatechain)totheElasticRuntimetilebynavigatingtoPivotalElasticRuntimegtNetworkinggtLoadBalancerwithTLSenabled(orHAProxy)

Self-SignedCertificatesWhenusingselfsignedcertificatesgeneratedbytheElasticRuntimeTileyouneedtoensurethatthiscertificateisprovidedtotheOpsManagerDirectorTile

GeneratingSelf-SignCertificatesusingtheElasticRuntimeTileTheElasticRuntimeTileallowsyoutogenerateself-signedcertificatesbynavigatingtoPivotalElasticRuntimegtNetworkinggtGenerateRSACertificatePleasespecifythefollowingwildcardsubdomains

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

OnceyouhavegeneratedyourcertificatecopythecertificatetotheOpsManagerDirectorTileandplaceitintheSecurityConfigsection

GeneratingSelf-SignedCertificatesusingOpenSSL1 TousetheOpenSSLCLIrunthefollowingcommands

a Generateaprivatekey openssl genrsa -des3 -out serverkey 1024b GenerateaCertificateSigningRequest(CSR)withthe subjectAltName entriesandeditthe subj flagasneeded

openssl req -new -key serverkey -out servercsr -subj C=USST=StateL=LocalityO=OrganizationOU=OrganizationUnitCN=wwwexamplecomemailAddress=exampleexamplecomsubjectAltName=DNS1=systemexamplecomDNS2=appsexamplecomDNS3=uaasystemexamplecomDNS4=loginsystemexamplecom

c RemovePassphrasefromKey cp serverkey serverkeyorg openssl rsa -in serverkeyorg -out serverkeyd GenerateaSelf-SignedCertificate openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt

2 UploadtheSSLcertificatetoyourloadbalancerInstructionsforAWS

a AuthenticatewiththeAWSCLI$ aws configure AWS Access Key ID [None] ltACCESS KEY GOES HEREgt AWS Secret Access Key [None] ltSECRET ACCESS KEY GOESHEREgt Default region name [None] us-east-1 Default output format [None] ENTER

b Uploadyourself-signedcertificateinIAMaws iam upload-server-certificate --server-certificate-name ltNAME OF CERTIFICATEgt --certificate-bodyfileservercrt --private-key fileserverkey

c Uploadyourself-signedcertificatetoyourElasticLoadBalancer(ELB)aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name ltELB NAMEgt --load-balancer-port ltPORTgt --ssl-certificate-id arnawsiamltIAM NUMBERgtserver-certificateltNAME OF CERTIFICATEgt

3 AddtheSSLcertificateasatrustedcertificatetoyourOpsManager-deployedVMs

a InOpsManagerontheDirectorTileundertheSecuritysectionpastethecertificateandsave

copyCopyrightPivotalSoftwareInc2013-2018 17 17

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 3: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

PivotalGemFireforPivotalCloudFoundry

ThisdocumentationdescribeshowtoinstallconfigureanduseGemFireforPivotalCloudFoundry (PCF)

ProductSnapshotCurrentGemFireforPivotalCloudFoundryDetails

Version170ReleaseDate19thSeptember2016SoftwarecomponentversionGemFire821SpringDataGemFire182Java8(JDKJRE8u60)CompatibleOpsManagerVersion(s)17x18xCompatibleElasticRuntimeVersion(s)17x18xCompatibleJavaBuildpackVersion(s)36371vSpheresupportYesAWSsupportYesIPSecsupportYes

UpgradingtotheLatestVersionThisversionofPivotalGemFireforPivotalCloudFoundrysupportsupgradingfromallthepreviousversionsoftheproductRunningserviceinstancesareautomaticallyupgradedonenodeatatimeIfyouconfiguredyourclusterswithdataredundancythentheupgradeprocessrequiresnodowntimeandresultsinnodataloss

NoteUpgradesfromAlphaorBetaversionsofthesoftwarearenotsupported

DocumentationIndexThedocumentationcontainsthefollowingtopics

ReleaseNotes

Overview

InstallingGemFireforPivotalCloudFoundry

UsingGemFireforPivotalCloudFoundry

Troubleshooting

FormoreinformationaboutPivotalGemFireseethePivotalGemFireDocumentation

FormoreinformationaboutPivotalCloudFoundryseethePivotalCloudFoundryDocumentation

NOTEThisproducthasbeendiscontinued

copyCopyrightPivotalSoftwareInc2013-2018 3 17

ReleaseNotesforGemFireforPivotalCloudFoundry

OverviewGemFireforPivotalCloudFoundry (PCF)supportsthedeploymentofmultiplePivotalGemFireclusterconfigurationstoPCFtosupportGemFireapplicationdevelopmentanddeploymentGemFireforPCFenablesadministratorstocustomizethreedifferentclusterconfigurationstoprovidecoarsecontroloverthenumberoflocatorsandserversavailableineachGemFireinstanceInadditiondeveloperscancustomizetheGemFireinstancethatisboundtotheirappusingGemFireclusterconfigurationcommandsoranewCloudFoundryCLIinterface

YourfeedbackiswelcomePleaseprovideanybugsfeaturerequestsorquestionseithertoPivotalCustomerSupportathttpssupportpivotalio oremailpivotal-cf-feedbackpivotalio

v1720

ReleaseDate30thJanuary2017

NewinthisRelease

Securityfixes

Runsgfshprocessasthe vcap userinsteadofthe root user

v1660

ReleaseDate30thJanuary2017

NewinthisRelease

Securityfixes

Runsgfshprocessasthe vcap userinsteadofthe root user

v1710

ReleaseDate29thDecember2016

NewinthisRelease

StemcellAWS32336patchesUbuntuCVEs

StemcellAzure32337patchesUbuntuCVEs

Securityfixes

RemovepublicroutethatexposedWANreplicationcredentials[CVE-2016-8220]Addauthenticationtobrokerendpoints[CVE-2016-9880]

v1650

copyCopyrightPivotalSoftwareInc2013-2018 4 17

ReleaseDate29thDecember2016

NewinthisRelease

StemcellAWS32336patchesUbuntuCVEs

StemcellAzure32337patchesUbuntuCVEs

Securityfixes

RemovepublicroutethatexposedWANreplicationcredentials[CVE-2016-8220]Addauthenticationtobrokerendpoints[CVE-2016-9880]

v1640

ReleaseDate11thNovember2016

Newinthisrelease

Bugfixes

Upgradedgolangtov17

v1630

ReleaseDate28thOctober2016

Newinthisrelease

StemcellAWS323217patchesUbuntuCVEs

CompatibilityfixesforPCFv17runningonvSphereandAzure

v1700

ReleaseDate19thSeptember2016

NewinthisRelease

CompatibilityreleaseforPCFv17andPCFv18TheGemFireforPCFservicenowinstallsonbothPCFv17andPCFv18withoutsupportforspecificfeaturessuchasmultipleavailabilityzones

IPsecsupportTheGemFireforPCFtilenowsupportsIPsec

LogformatchangedfromfreetexttoJSON

Bugfixes

DBsynchissuesUpgradedgolangtov17UsecryptolibraryforcertificatechaindiscoveryUseofCF_DIAL_TIMEOUTServiceinstanceroutearenowuniqueacrossorgsandspaces

StemcellAWS323217patchesUbuntuCVEs

StemcellAzure323217patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xv35xToresolvethisusethelatestJavabuildpack

CurrentlytilesupportsonlyasingleAvailabilityZone(AZ)

copyCopyrightPivotalSoftwareInc2013-2018 5 17

v162

ReleaseDate28thJuly2016

NewinthisRelease

CompatibilityreleaseforPCFv17TheGemFireforPCFservicenowinstallsonPCFv17withoutsupportforPCFv17ndashspecificfeaturessuchasmultipleavailabilityzones

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacks34x35xToresolvethisusethelatestJavabuildpack

v161

ReleaseDate22ndJuly2016

NewinthisRelease

StemcellAWS323213patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacks34xand35xToresolvethisupdateJavabuildpackto36 InJavabuildpack34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1600

ReleaseDate31stMay2016

NewinthisRelease

StemcellAWS32324patchesUbuntuCVEs

StemcellAzure32325patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1500

ReleaseDate9thMay2016

NewinthisRelease

ThepackagedGemFireisupgradedfromv8205tov82014

The enable-network-partition-detection propertyisnowenabled topreventagainstdatacorruptioninsplit-brainscenarios

Clusterstabilityhasbeenimprovedduringrestartsandduringserviceinstancedeletions

Defaulttimeoutof cf restart-gemfire hasbeenincreasedfrom120secondsto900secondstoaccommodateslower-than-expectedstartupofserversandlocators

copyCopyrightPivotalSoftwareInc2013-2018 6 17

WhenrunningonAzureGemFireserverswillhaveredundancyzones tieddirectlytoAzurersquosfaultdomains sothatredundancyforpartitionedregionsissatisfiedacrossmultiplevirtualserverracks

The cf export-gemfire commandnowgivesfeedbackaboutmissingargumentsmakingiteasiertoexportyourGemFirelogsclusterconfigsandproperties

UpgradeWarningDowntimeRequired

Upgradingtov1500willrequiredowntimeforyourGemFireforPCFdeployment

Sincethe enable-network-partition-detection=true propertymustbesetontheentireclusteratthesametimeweareunabletodoarollingupgradePreviouslydeployedappsandserviceinstanceswillcontinuetofunctionnormallyaftertheupgradethoughGemFireforPCFwillbeunavailableduringtheupgrade

ForOpsManager-deployedtiles

1 Uploadthev1500GemFireforPCFtiletoOpsManager

2 UnderAvailableProductsgtPivotalGemFireclickAdd

3 boshtarget yourOpsManager-deployedboshdirector

4 boshstop yourpreviouslydeployedGemFireforPCFtileThiswillstoptheGemFireforPCFservicebrokerandallserviceinstances

5 InOpsManagerclickApplyChanges

Forbosh-deployedreleases

1 bosh upload thereleasescontainedinthistile

2 bosh stop yourexistingGemFiredeployment

3 bosh deploy themanifestcontainedinthistile

4 bosh start yournewdeployment

copyCopyrightPivotalSoftwareInc2013-2018 7 17

KnownIssuesandLimitations

Upgradingtov1500willrequiredowntimeforyourGemFireforPCFdeploymentasdetailedintheprevioussection

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1400

ReleaseDate4thApril2016

NewinthisRelease

AddssupportforusingCLIpluginwithahttpproxyToenableproxyusagefollowthesameinstructionsfortheCLI

EnablesbestpracticeOStuningsettingsforserverandlocatorVMsIncludessettingsfor

fsfile-max

vmswappiness

netcoresomaxconn

netcorenetdev_max_backlog

netcorermem_max

netcorewmem_max

netipv4tcp_wmem

netipv4tcp_rmem

netipv4tcp_syncookies

netipv4tcp_max_syn_backlog

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1300

ReleaseDate18thMarch2016

NewinthisRelease

Addsupportforasynchronousserviceinstanceallocationanddeallocation

AddbasicauthforGemfireagentendpoints

Improveerrorhandlingandreportingduringserviceinstancedeallocation

Includestacktracesinerrorlogsfortheservicebroker

IntroduceloglevelsfortheservicebrokerFornowtheyareonlyconfigurableatthereleaselevelandsetto info bydefaultTheyarenotexposedinthetileatthispoint

Increasethedefaultlimitforfiledescriptorsto32000fortheGemFireVM

EnsurethattheJVMis kill edwhenitisOutofMemory

Upgradestemcellto314610patchingUSN-2929-1

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

copyCopyrightPivotalSoftwareInc2013-2018 8 17

v1230

ReleaseDate4thFebruary2016

NewinthisRelease

Stemcell31466patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1220

ReleaseDate22ndJanuary2016

NewinthisRelease

Stemcell31465resolvesCVE-2016-0728

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1210

ReleaseDate12thJanuary2016

NewinthisRelease

Stemcell31462resolvesCVEUSN-2857-1

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1200

ReleaseDate1stDecember2015

NewinthisRelease

SupportforGemFiremulti-site(WAN)replication

SupportfortheldquoTrustedCertificatesrdquofeatureinOpsManagerThecertificatesfromldquoTrustedCertificatesrdquoaredeployedtoallGemFirenodesandtotheGemFireservicebrokerNoteonself-signedandinternalCAsignedcertificatesIfyouareusingaself-signedcertificateoracertificatesignedbyaninternalorothernotknowncertificateauthority(CA)youmustaddthecertificate(orcertificatechain)totheldquoTrustedCertificatesrdquoinOpsManager

GemFireupgradedtov8205

copyCopyrightPivotalSoftwareInc2013-2018 9 17

Drainscriptimprovements

BettererrorreportingforserviceinstanceallocationfailuresInsteadofreturningldquoThemaximumnumberofServiceInstancesalreadyexistrdquomessageforallfailuresduringaserviceinstanceallocationeachdifferenttypeoffailurereturnsadescriptiveerrormessage

Stemcell3144

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartofanupgradeThisproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofanupgradeanewVMhasbeencreatedwiththesameIPbutwithadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

v1110

ReleaseDate5thNovember2015

NewinthisRelease

SupportforOpsManagerv16andElasticRuntimev16ThisreleasedoesnotworkwiththepreviousreleasesofOpsManagerandElasticRuntime

Stemcell3100

KnownIssuesandLimitations

SeeKnownIssuesandLimitationsforv1100below

v1100

ReleaseDate22ndSeptember2015

NewinthisRelease

UpgradedPivotalGemFiretov82

UpgradedJavatov8andJREv18

Spring-relatedenhancements

SupportfordeployingaSpringXMLconfigurationandapplicationcodetoGemFireserviceinstances

IfyouuseSpringldquoallthewayrdquoyoucandosowithGemFireserviceinstancesaswellThereisnoneedtotranslatetheSpringconfigurationtoGemFireXMLSpringsupportisprovidedusingconfigurationoptionsoftheGemFireforPCFCLIplug-incommand cf restart-gemfire

SupportforusingSSLencryptiontoaccessGemFireServiceInstancesfromoutsideofPCF

GemFirePulseisnowaccessibleviaHTTPSGemFireRESTclientscanbeconfiguredtoaccessaserviceinstancersquosRESTAPIendpointviaHTTPSYoucanconfiguretheGemFireshell(gfsh)toaccessaserviceinstanceoverHTTPS

Additionalfixesandimprovements

DrainscriptimprovementsImprovedhandlingofself-signedcertificatesYAMLsyntaxvalidationforclusterpropertiesthatareprovidedviathe --properties optionofthe cf restart-gemfire CLIcommand

Stemcell3062

copyCopyrightPivotalSoftwareInc2013-2018 10 17

SupportfortheexperimentalfeatureHTTPStraffictoUAA

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartoftheupgradeTheproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofupgradeanewVMhasbeencreatedwiththesameIPbutadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

v1000

ReleaseDate10August2015

KnownIssuesandLimitations

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

copyCopyrightPivotalSoftwareInc2013-2018 11 17

OverviewGemFireforPivotalCloudFoundry (PCF)enablesyoutoeasilyconfigureandprovisioncompletePivotalGemFireclientserverclustersusingPivotalCloudFoundryACloudFoundryAdministratorcaneasilyconfigurethreedifferenttypesofGemFireclusters(serviceplans)usingdifferentnumbersoflocatorsandserversaswellasdifferentresourcesperclusternodeforeachserviceplanEachserviceplaninstanceusesGemFirebestpracticestoautomaticallyconfigureJVMresourceutilizationandgarbagecollectionsettingstakingintoconsiderationtheresourcesavailableontheclusternodeServiceinstancesarededicatednotmultitenantbydefaultbuttheycanbeusedbydifferentapplicationsifdesiredAllocatingaserviceinstanceprovisionsaGemFireclusterfromthepoolofavailableunallocatedGemFireclustersthatwereinstantiatedduringthetileinstallationGemFireprocesseslocatorsandserversrunindedicatedVMs

PivotalprovidestheGemFirePulseWebapplicationgfshcommand-lineutilitytohelpyoumonitormanagetheserviceinstancesthatyoudeployInadditionPivotalprovidesaCloudFoundryCLIplug-inthatdeveloperscanusetoperformthemostcommonGemFireclustermanagementoperationssuchas

Restartingthecluster

Downloadingclusterconfigurationfileslogfilesorstatistics

Uploadingcustomclusterconfigurations

FinallyGemFireforPivotalCloudFoundryprovidesacustomrestURLtohelpyoueasilyusetheGemFireRESTAPIwithaboundserviceinstanceRequeststotheURLautomaticallyround-robintoavailablecacheserverssothereisnoneedtoassociateRESTrequestswithaspecificserver

HowDoestheServiceWork

PCFAdministratorWorkflowThefollowingdiagramdepictsthehigh-levelworkflowfordeployingtheGemFireservice

Figure1InstallingandConfiguringtheService

copyCopyrightPivotalSoftwareInc2013-2018 12 17

1 PivotalCloudFoundryAdministratorimportstheGemFireserviceproductfileintoPivotalCloudFoundryOperationsManager

2 WhenaPivotalCloudFoundryAdministratorconfigurestheGemFireserviceforthefirsttimetheydefinethenumberofdiscreteserviceinstancesforeachGemFireServicePlanAserviceinstanceisaGemFireclusterGemFireforPivotalCloudFoundryenablesyoutoconfigureinstancesforthreedifferentGemFireclusterconfigurationswhereeachinstancecanprovideadifferentnumberoflocatorsandcacheserversaswellasmemoryanddiskspaceresources

3 AftermakingtheirconfigurationchoicesthePivotalCloudFoundryAdministratordeploystheservicecausingPivotalCloudFoundryOpsManagertocreateandsetuptheappropriatesetofvirtualmachines

4 OperationsManagerdeploysavirtualmachinetoruntheGemFireServiceBrokerwhichisresponsibleforallocatingGemFireClusterserviceinstancestoPivotalCloudFoundryusersandforpassingrelevantinformationintotheapplicationsthatareboundtoeachserviceinstance

5 OperationsManageralsodeploysthespecifiednumberofGemFireserviceinstances(clusters)asconfiguredbytheadministratorLastlythereareafewtemporaryVMsusedforinstallanduninstallerrands

AftertheservicehasbeendeployedinOperationsManageritisreadyforusebyapplicationdevelopersintheElasticRuntimeenvironmentThefollowingdiagramdepictsthehigh-levelworkflowthatanapplicationdeveloperwouldusetoconsumetheservice

PCFDeveloper(ServiceUser)WorkflowFigure2UsingtheService

copyCopyrightPivotalSoftwareInc2013-2018 13 17

1 PivotalCloudFoundryDeveloperusestheCLIorDeveloperConsoletocreateaGemFireserviceinstanceintheElasticRuntimespacewheretheyarepushingtherelevantapplications

2 CreatingaserviceinstancecausesElasticRuntimetocontacttheGemFireServiceBrokerwhichallocatesoneun-allocatedGemFireclusterofdedicatedvirtualmachinestotheGemFireserviceinstanceIntheresponsetoElasticRuntimetheServiceBrokerincludestheURLtoreachtheGemFirePulsemonitoringtoolfortheserviceinstanceTheElasticRuntimeexposesthisURLintheDeveloperConsolersquosmetadatafortheserviceinstance

3 PivotalCloudFoundryDeveloperpushestheirapplicationtoElasticRuntime

4 PivotalCloudFoundryDeveloperbindstheirapplicationtotheGemFireserviceinstanceTheGemFireServiceBrokerpopulatestheapplicationrsquosVCAP_SERVICESenvironmentvariablewiththemetadatarequiredtoaccesstheGemFireserviceinstancersquoslocatorsandcacheservers

5 PivotalCloudFoundrydevelopercanconfiguremonitorandmanagetheclusterusingPulseandortheGemFireforPivotalCloudFoundryCLIplug-in

AdditionalResourcesPivotalGemFireProductDocumentation

PivotalGemFireCommunityForum

PivotalGemFireKnowledgeBase

PivotalCloudFoundryDocumentation

copyCopyrightPivotalSoftwareInc2013-2018 14 17

InstallingGemFireforPivotalCloudFoundryPrerequisites

ServiceConfigurationDefaults

InstallationSteps

CreatingGemFireServicePlans

ApplicationSecurityGroups

PrerequisitesBeforeyoubeginyourGemFireforPivotalCloudFoundry (PCF)deploymentyoursystemneedstomeetthefollowingminimumrequirements

PivotalCloudFoundryOpsManagerforvSphereorPivotalCloudFoundryOpsManagerforvCloudAirorvCloudDirectororPivotalCloudFoundryOpsManagerforAWS

IPSec(optional)IfyouwishtouseIPSecinyourPivotalGemFireinstallationpleaseensureyouhavetheIPSecBOSHreleasedeployedbeforeinstallingtheElasticRuntimeandGemFiretileForinstructionsondeployingtheIPSecBOSHreleaseseetheinstructionshere

PivotalCloudFoundryElasticRuntime

NetworkaccessandcredentialsforthePivotalCloudFoundryOpsManagerWebConsole

CapacityinthevSphereclusterforserviceinstancesyouwanttodeployBydefaulttheGemFireserviceconfiguresthreedifferentGemFireserviceplansEachplandeploystheminimumof2locatorsbutdeploy35and7GemFirecacheserversrespectivelySeveralsupportingVMsarealsorequiredforservicedeploymentTheresourceallocationsforthedefaultGemFireserviceplaninstancesandcomponentsareasfollows

Table1DefaultResourceRequirementsforaGemFireServiceInstances

Service VirtualMachines CPU RAM(MB) EphemeralDisk(MB) PersistentDisk(MB)

GemFirelocator(Plan1)

2 1 1024 2048 1024

GemFirelocator(Plan2)

2 1 1024 2048 1024

GemFirelocator(Plan3)

2 1 1024 2048 1024

GemFireServer(Plan1)

3 2 4096 6144 8192

GemFireServer(Plan2)

3 2 4096 6144 8192

GemFireServer(Plan3)

3 2 4096 6144 8192

GemFireBroker 1 2 4096 4096 4096

BrokerRegistrar 1 1 2048 2048 0

BrokerDeregistrar 1 1 2048 2048 0

ClusterSmokeTest 1 1 512 2048 0

ClusterAgentSmokeTest

1 1 512 2048 0

ServiceOfferingSmokeTest

1 1 512 2048 0

Compilation 2 1 1024 4096 0

Totals 12 9 16384 24576 12800

RequiredforeachVM

ServiceConfigurationDefaults

copyCopyrightPivotalSoftwareInc2013-2018 15 17

TheGemFireforPivotalCloudFoundryserviceautomaticallyimplementsthebestpracticesanoperatorwouldnormallyemploywhendeployingGemFireTheseconfigurationsinclude

DynamicmemorymanagementDynamicallysettheJVMmaximumandminimummemoryutilizationforeachinstanceoftheGemFiresoftwareprocessbasedontheVMrsquostotalmemory

GarbagecollectionEnableandconfigurememorygarbagecollectionforeachinstanceoftheGemFiresoftwareprocess

LoggingconfigurationCreateandstorelogsattheconfigloglevelwithappropriatelimitationsonsizingandautomaticlogrotation

StatisticsmonitoringCreateandstorestatisticsfilesatasamplerateof1000whichcorrespondstoasamplingrateofoncepersecond

DataoverflowconfigurationOverflowdatatodiskwhencrossing70memoryutilization

MemoryoverutilizationprotectionPreventfurtherwritestomemorywhencrossing80memoryutilization

ClientauthenticationRequireclientstoauthenticatewhendirectlyaccessingcacheservers

Thedefaultconfigurationsettingscanbeadjustedifneededonaperserviceinstancebasis

InstallationSteps1 DownloadtheGemFireforPivotalCloudFoundrytilefromPivotalNetwork

2 UseaWebbrowsertologintothePivotalOpsManagerapplicationThePivotalCloudFoundryOpsManagerInstallationDashboarddisplays

3 ClickImportaProductTheAddProductsscreendisplays

4 ClickChooseFileandnavigatetothefileyoudownloadedThefileuploadstoyourPivotalCloudFoundrydeployment

5 ClickAddPivotalOpsManageraddsanewtileforGemFireforPivotalCloudFoundrytotheInstallationDashboard

Self-SignedandInternalSSLCertificatesInproductionenvironmentswerecommendthatyouuseanSSLcertificatesignedbyareputablecertificateauthority(CA)PleaseensureyourSSLcertificatehasalltheSubjectAlternativeNames(SANs)

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

IfyourcertificateissignedbyaknownauthorityandhasthecorrectSANspleasedisregardthissection

copyCopyrightPivotalSoftwareInc2013-2018 16 17

InternalCertificatesInthecaseofInternalCertificates(iecertificatessignedbyaninternalRootCA)youneedtoconfiguretheOpsManagerDirectortiletotrusttheinternalRootCAToachievethispleasefollowthestepsbelow

1 AddtheinternalRootCAistotheSecurityConfigsectionundertheOpsManagerDirectorTile

2 CopytheinternalcertificateandRootCA(certificatechain)totheElasticRuntimetilebynavigatingtoPivotalElasticRuntimegtNetworkinggtLoadBalancerwithTLSenabled(orHAProxy)

Self-SignedCertificatesWhenusingselfsignedcertificatesgeneratedbytheElasticRuntimeTileyouneedtoensurethatthiscertificateisprovidedtotheOpsManagerDirectorTile

GeneratingSelf-SignCertificatesusingtheElasticRuntimeTileTheElasticRuntimeTileallowsyoutogenerateself-signedcertificatesbynavigatingtoPivotalElasticRuntimegtNetworkinggtGenerateRSACertificatePleasespecifythefollowingwildcardsubdomains

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

OnceyouhavegeneratedyourcertificatecopythecertificatetotheOpsManagerDirectorTileandplaceitintheSecurityConfigsection

GeneratingSelf-SignedCertificatesusingOpenSSL1 TousetheOpenSSLCLIrunthefollowingcommands

a Generateaprivatekey openssl genrsa -des3 -out serverkey 1024b GenerateaCertificateSigningRequest(CSR)withthe subjectAltName entriesandeditthe subj flagasneeded

openssl req -new -key serverkey -out servercsr -subj C=USST=StateL=LocalityO=OrganizationOU=OrganizationUnitCN=wwwexamplecomemailAddress=exampleexamplecomsubjectAltName=DNS1=systemexamplecomDNS2=appsexamplecomDNS3=uaasystemexamplecomDNS4=loginsystemexamplecom

c RemovePassphrasefromKey cp serverkey serverkeyorg openssl rsa -in serverkeyorg -out serverkeyd GenerateaSelf-SignedCertificate openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt

2 UploadtheSSLcertificatetoyourloadbalancerInstructionsforAWS

a AuthenticatewiththeAWSCLI$ aws configure AWS Access Key ID [None] ltACCESS KEY GOES HEREgt AWS Secret Access Key [None] ltSECRET ACCESS KEY GOESHEREgt Default region name [None] us-east-1 Default output format [None] ENTER

b Uploadyourself-signedcertificateinIAMaws iam upload-server-certificate --server-certificate-name ltNAME OF CERTIFICATEgt --certificate-bodyfileservercrt --private-key fileserverkey

c Uploadyourself-signedcertificatetoyourElasticLoadBalancer(ELB)aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name ltELB NAMEgt --load-balancer-port ltPORTgt --ssl-certificate-id arnawsiamltIAM NUMBERgtserver-certificateltNAME OF CERTIFICATEgt

3 AddtheSSLcertificateasatrustedcertificatetoyourOpsManager-deployedVMs

a InOpsManagerontheDirectorTileundertheSecuritysectionpastethecertificateandsave

copyCopyrightPivotalSoftwareInc2013-2018 17 17

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 4: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

ReleaseNotesforGemFireforPivotalCloudFoundry

OverviewGemFireforPivotalCloudFoundry (PCF)supportsthedeploymentofmultiplePivotalGemFireclusterconfigurationstoPCFtosupportGemFireapplicationdevelopmentanddeploymentGemFireforPCFenablesadministratorstocustomizethreedifferentclusterconfigurationstoprovidecoarsecontroloverthenumberoflocatorsandserversavailableineachGemFireinstanceInadditiondeveloperscancustomizetheGemFireinstancethatisboundtotheirappusingGemFireclusterconfigurationcommandsoranewCloudFoundryCLIinterface

YourfeedbackiswelcomePleaseprovideanybugsfeaturerequestsorquestionseithertoPivotalCustomerSupportathttpssupportpivotalio oremailpivotal-cf-feedbackpivotalio

v1720

ReleaseDate30thJanuary2017

NewinthisRelease

Securityfixes

Runsgfshprocessasthe vcap userinsteadofthe root user

v1660

ReleaseDate30thJanuary2017

NewinthisRelease

Securityfixes

Runsgfshprocessasthe vcap userinsteadofthe root user

v1710

ReleaseDate29thDecember2016

NewinthisRelease

StemcellAWS32336patchesUbuntuCVEs

StemcellAzure32337patchesUbuntuCVEs

Securityfixes

RemovepublicroutethatexposedWANreplicationcredentials[CVE-2016-8220]Addauthenticationtobrokerendpoints[CVE-2016-9880]

v1650

copyCopyrightPivotalSoftwareInc2013-2018 4 17

ReleaseDate29thDecember2016

NewinthisRelease

StemcellAWS32336patchesUbuntuCVEs

StemcellAzure32337patchesUbuntuCVEs

Securityfixes

RemovepublicroutethatexposedWANreplicationcredentials[CVE-2016-8220]Addauthenticationtobrokerendpoints[CVE-2016-9880]

v1640

ReleaseDate11thNovember2016

Newinthisrelease

Bugfixes

Upgradedgolangtov17

v1630

ReleaseDate28thOctober2016

Newinthisrelease

StemcellAWS323217patchesUbuntuCVEs

CompatibilityfixesforPCFv17runningonvSphereandAzure

v1700

ReleaseDate19thSeptember2016

NewinthisRelease

CompatibilityreleaseforPCFv17andPCFv18TheGemFireforPCFservicenowinstallsonbothPCFv17andPCFv18withoutsupportforspecificfeaturessuchasmultipleavailabilityzones

IPsecsupportTheGemFireforPCFtilenowsupportsIPsec

LogformatchangedfromfreetexttoJSON

Bugfixes

DBsynchissuesUpgradedgolangtov17UsecryptolibraryforcertificatechaindiscoveryUseofCF_DIAL_TIMEOUTServiceinstanceroutearenowuniqueacrossorgsandspaces

StemcellAWS323217patchesUbuntuCVEs

StemcellAzure323217patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xv35xToresolvethisusethelatestJavabuildpack

CurrentlytilesupportsonlyasingleAvailabilityZone(AZ)

copyCopyrightPivotalSoftwareInc2013-2018 5 17

v162

ReleaseDate28thJuly2016

NewinthisRelease

CompatibilityreleaseforPCFv17TheGemFireforPCFservicenowinstallsonPCFv17withoutsupportforPCFv17ndashspecificfeaturessuchasmultipleavailabilityzones

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacks34x35xToresolvethisusethelatestJavabuildpack

v161

ReleaseDate22ndJuly2016

NewinthisRelease

StemcellAWS323213patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacks34xand35xToresolvethisupdateJavabuildpackto36 InJavabuildpack34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1600

ReleaseDate31stMay2016

NewinthisRelease

StemcellAWS32324patchesUbuntuCVEs

StemcellAzure32325patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1500

ReleaseDate9thMay2016

NewinthisRelease

ThepackagedGemFireisupgradedfromv8205tov82014

The enable-network-partition-detection propertyisnowenabled topreventagainstdatacorruptioninsplit-brainscenarios

Clusterstabilityhasbeenimprovedduringrestartsandduringserviceinstancedeletions

Defaulttimeoutof cf restart-gemfire hasbeenincreasedfrom120secondsto900secondstoaccommodateslower-than-expectedstartupofserversandlocators

copyCopyrightPivotalSoftwareInc2013-2018 6 17

WhenrunningonAzureGemFireserverswillhaveredundancyzones tieddirectlytoAzurersquosfaultdomains sothatredundancyforpartitionedregionsissatisfiedacrossmultiplevirtualserverracks

The cf export-gemfire commandnowgivesfeedbackaboutmissingargumentsmakingiteasiertoexportyourGemFirelogsclusterconfigsandproperties

UpgradeWarningDowntimeRequired

Upgradingtov1500willrequiredowntimeforyourGemFireforPCFdeployment

Sincethe enable-network-partition-detection=true propertymustbesetontheentireclusteratthesametimeweareunabletodoarollingupgradePreviouslydeployedappsandserviceinstanceswillcontinuetofunctionnormallyaftertheupgradethoughGemFireforPCFwillbeunavailableduringtheupgrade

ForOpsManager-deployedtiles

1 Uploadthev1500GemFireforPCFtiletoOpsManager

2 UnderAvailableProductsgtPivotalGemFireclickAdd

3 boshtarget yourOpsManager-deployedboshdirector

4 boshstop yourpreviouslydeployedGemFireforPCFtileThiswillstoptheGemFireforPCFservicebrokerandallserviceinstances

5 InOpsManagerclickApplyChanges

Forbosh-deployedreleases

1 bosh upload thereleasescontainedinthistile

2 bosh stop yourexistingGemFiredeployment

3 bosh deploy themanifestcontainedinthistile

4 bosh start yournewdeployment

copyCopyrightPivotalSoftwareInc2013-2018 7 17

KnownIssuesandLimitations

Upgradingtov1500willrequiredowntimeforyourGemFireforPCFdeploymentasdetailedintheprevioussection

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1400

ReleaseDate4thApril2016

NewinthisRelease

AddssupportforusingCLIpluginwithahttpproxyToenableproxyusagefollowthesameinstructionsfortheCLI

EnablesbestpracticeOStuningsettingsforserverandlocatorVMsIncludessettingsfor

fsfile-max

vmswappiness

netcoresomaxconn

netcorenetdev_max_backlog

netcorermem_max

netcorewmem_max

netipv4tcp_wmem

netipv4tcp_rmem

netipv4tcp_syncookies

netipv4tcp_max_syn_backlog

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1300

ReleaseDate18thMarch2016

NewinthisRelease

Addsupportforasynchronousserviceinstanceallocationanddeallocation

AddbasicauthforGemfireagentendpoints

Improveerrorhandlingandreportingduringserviceinstancedeallocation

Includestacktracesinerrorlogsfortheservicebroker

IntroduceloglevelsfortheservicebrokerFornowtheyareonlyconfigurableatthereleaselevelandsetto info bydefaultTheyarenotexposedinthetileatthispoint

Increasethedefaultlimitforfiledescriptorsto32000fortheGemFireVM

EnsurethattheJVMis kill edwhenitisOutofMemory

Upgradestemcellto314610patchingUSN-2929-1

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

copyCopyrightPivotalSoftwareInc2013-2018 8 17

v1230

ReleaseDate4thFebruary2016

NewinthisRelease

Stemcell31466patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1220

ReleaseDate22ndJanuary2016

NewinthisRelease

Stemcell31465resolvesCVE-2016-0728

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1210

ReleaseDate12thJanuary2016

NewinthisRelease

Stemcell31462resolvesCVEUSN-2857-1

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1200

ReleaseDate1stDecember2015

NewinthisRelease

SupportforGemFiremulti-site(WAN)replication

SupportfortheldquoTrustedCertificatesrdquofeatureinOpsManagerThecertificatesfromldquoTrustedCertificatesrdquoaredeployedtoallGemFirenodesandtotheGemFireservicebrokerNoteonself-signedandinternalCAsignedcertificatesIfyouareusingaself-signedcertificateoracertificatesignedbyaninternalorothernotknowncertificateauthority(CA)youmustaddthecertificate(orcertificatechain)totheldquoTrustedCertificatesrdquoinOpsManager

GemFireupgradedtov8205

copyCopyrightPivotalSoftwareInc2013-2018 9 17

Drainscriptimprovements

BettererrorreportingforserviceinstanceallocationfailuresInsteadofreturningldquoThemaximumnumberofServiceInstancesalreadyexistrdquomessageforallfailuresduringaserviceinstanceallocationeachdifferenttypeoffailurereturnsadescriptiveerrormessage

Stemcell3144

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartofanupgradeThisproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofanupgradeanewVMhasbeencreatedwiththesameIPbutwithadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

v1110

ReleaseDate5thNovember2015

NewinthisRelease

SupportforOpsManagerv16andElasticRuntimev16ThisreleasedoesnotworkwiththepreviousreleasesofOpsManagerandElasticRuntime

Stemcell3100

KnownIssuesandLimitations

SeeKnownIssuesandLimitationsforv1100below

v1100

ReleaseDate22ndSeptember2015

NewinthisRelease

UpgradedPivotalGemFiretov82

UpgradedJavatov8andJREv18

Spring-relatedenhancements

SupportfordeployingaSpringXMLconfigurationandapplicationcodetoGemFireserviceinstances

IfyouuseSpringldquoallthewayrdquoyoucandosowithGemFireserviceinstancesaswellThereisnoneedtotranslatetheSpringconfigurationtoGemFireXMLSpringsupportisprovidedusingconfigurationoptionsoftheGemFireforPCFCLIplug-incommand cf restart-gemfire

SupportforusingSSLencryptiontoaccessGemFireServiceInstancesfromoutsideofPCF

GemFirePulseisnowaccessibleviaHTTPSGemFireRESTclientscanbeconfiguredtoaccessaserviceinstancersquosRESTAPIendpointviaHTTPSYoucanconfiguretheGemFireshell(gfsh)toaccessaserviceinstanceoverHTTPS

Additionalfixesandimprovements

DrainscriptimprovementsImprovedhandlingofself-signedcertificatesYAMLsyntaxvalidationforclusterpropertiesthatareprovidedviathe --properties optionofthe cf restart-gemfire CLIcommand

Stemcell3062

copyCopyrightPivotalSoftwareInc2013-2018 10 17

SupportfortheexperimentalfeatureHTTPStraffictoUAA

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartoftheupgradeTheproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofupgradeanewVMhasbeencreatedwiththesameIPbutadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

v1000

ReleaseDate10August2015

KnownIssuesandLimitations

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

copyCopyrightPivotalSoftwareInc2013-2018 11 17

OverviewGemFireforPivotalCloudFoundry (PCF)enablesyoutoeasilyconfigureandprovisioncompletePivotalGemFireclientserverclustersusingPivotalCloudFoundryACloudFoundryAdministratorcaneasilyconfigurethreedifferenttypesofGemFireclusters(serviceplans)usingdifferentnumbersoflocatorsandserversaswellasdifferentresourcesperclusternodeforeachserviceplanEachserviceplaninstanceusesGemFirebestpracticestoautomaticallyconfigureJVMresourceutilizationandgarbagecollectionsettingstakingintoconsiderationtheresourcesavailableontheclusternodeServiceinstancesarededicatednotmultitenantbydefaultbuttheycanbeusedbydifferentapplicationsifdesiredAllocatingaserviceinstanceprovisionsaGemFireclusterfromthepoolofavailableunallocatedGemFireclustersthatwereinstantiatedduringthetileinstallationGemFireprocesseslocatorsandserversrunindedicatedVMs

PivotalprovidestheGemFirePulseWebapplicationgfshcommand-lineutilitytohelpyoumonitormanagetheserviceinstancesthatyoudeployInadditionPivotalprovidesaCloudFoundryCLIplug-inthatdeveloperscanusetoperformthemostcommonGemFireclustermanagementoperationssuchas

Restartingthecluster

Downloadingclusterconfigurationfileslogfilesorstatistics

Uploadingcustomclusterconfigurations

FinallyGemFireforPivotalCloudFoundryprovidesacustomrestURLtohelpyoueasilyusetheGemFireRESTAPIwithaboundserviceinstanceRequeststotheURLautomaticallyround-robintoavailablecacheserverssothereisnoneedtoassociateRESTrequestswithaspecificserver

HowDoestheServiceWork

PCFAdministratorWorkflowThefollowingdiagramdepictsthehigh-levelworkflowfordeployingtheGemFireservice

Figure1InstallingandConfiguringtheService

copyCopyrightPivotalSoftwareInc2013-2018 12 17

1 PivotalCloudFoundryAdministratorimportstheGemFireserviceproductfileintoPivotalCloudFoundryOperationsManager

2 WhenaPivotalCloudFoundryAdministratorconfigurestheGemFireserviceforthefirsttimetheydefinethenumberofdiscreteserviceinstancesforeachGemFireServicePlanAserviceinstanceisaGemFireclusterGemFireforPivotalCloudFoundryenablesyoutoconfigureinstancesforthreedifferentGemFireclusterconfigurationswhereeachinstancecanprovideadifferentnumberoflocatorsandcacheserversaswellasmemoryanddiskspaceresources

3 AftermakingtheirconfigurationchoicesthePivotalCloudFoundryAdministratordeploystheservicecausingPivotalCloudFoundryOpsManagertocreateandsetuptheappropriatesetofvirtualmachines

4 OperationsManagerdeploysavirtualmachinetoruntheGemFireServiceBrokerwhichisresponsibleforallocatingGemFireClusterserviceinstancestoPivotalCloudFoundryusersandforpassingrelevantinformationintotheapplicationsthatareboundtoeachserviceinstance

5 OperationsManageralsodeploysthespecifiednumberofGemFireserviceinstances(clusters)asconfiguredbytheadministratorLastlythereareafewtemporaryVMsusedforinstallanduninstallerrands

AftertheservicehasbeendeployedinOperationsManageritisreadyforusebyapplicationdevelopersintheElasticRuntimeenvironmentThefollowingdiagramdepictsthehigh-levelworkflowthatanapplicationdeveloperwouldusetoconsumetheservice

PCFDeveloper(ServiceUser)WorkflowFigure2UsingtheService

copyCopyrightPivotalSoftwareInc2013-2018 13 17

1 PivotalCloudFoundryDeveloperusestheCLIorDeveloperConsoletocreateaGemFireserviceinstanceintheElasticRuntimespacewheretheyarepushingtherelevantapplications

2 CreatingaserviceinstancecausesElasticRuntimetocontacttheGemFireServiceBrokerwhichallocatesoneun-allocatedGemFireclusterofdedicatedvirtualmachinestotheGemFireserviceinstanceIntheresponsetoElasticRuntimetheServiceBrokerincludestheURLtoreachtheGemFirePulsemonitoringtoolfortheserviceinstanceTheElasticRuntimeexposesthisURLintheDeveloperConsolersquosmetadatafortheserviceinstance

3 PivotalCloudFoundryDeveloperpushestheirapplicationtoElasticRuntime

4 PivotalCloudFoundryDeveloperbindstheirapplicationtotheGemFireserviceinstanceTheGemFireServiceBrokerpopulatestheapplicationrsquosVCAP_SERVICESenvironmentvariablewiththemetadatarequiredtoaccesstheGemFireserviceinstancersquoslocatorsandcacheservers

5 PivotalCloudFoundrydevelopercanconfiguremonitorandmanagetheclusterusingPulseandortheGemFireforPivotalCloudFoundryCLIplug-in

AdditionalResourcesPivotalGemFireProductDocumentation

PivotalGemFireCommunityForum

PivotalGemFireKnowledgeBase

PivotalCloudFoundryDocumentation

copyCopyrightPivotalSoftwareInc2013-2018 14 17

InstallingGemFireforPivotalCloudFoundryPrerequisites

ServiceConfigurationDefaults

InstallationSteps

CreatingGemFireServicePlans

ApplicationSecurityGroups

PrerequisitesBeforeyoubeginyourGemFireforPivotalCloudFoundry (PCF)deploymentyoursystemneedstomeetthefollowingminimumrequirements

PivotalCloudFoundryOpsManagerforvSphereorPivotalCloudFoundryOpsManagerforvCloudAirorvCloudDirectororPivotalCloudFoundryOpsManagerforAWS

IPSec(optional)IfyouwishtouseIPSecinyourPivotalGemFireinstallationpleaseensureyouhavetheIPSecBOSHreleasedeployedbeforeinstallingtheElasticRuntimeandGemFiretileForinstructionsondeployingtheIPSecBOSHreleaseseetheinstructionshere

PivotalCloudFoundryElasticRuntime

NetworkaccessandcredentialsforthePivotalCloudFoundryOpsManagerWebConsole

CapacityinthevSphereclusterforserviceinstancesyouwanttodeployBydefaulttheGemFireserviceconfiguresthreedifferentGemFireserviceplansEachplandeploystheminimumof2locatorsbutdeploy35and7GemFirecacheserversrespectivelySeveralsupportingVMsarealsorequiredforservicedeploymentTheresourceallocationsforthedefaultGemFireserviceplaninstancesandcomponentsareasfollows

Table1DefaultResourceRequirementsforaGemFireServiceInstances

Service VirtualMachines CPU RAM(MB) EphemeralDisk(MB) PersistentDisk(MB)

GemFirelocator(Plan1)

2 1 1024 2048 1024

GemFirelocator(Plan2)

2 1 1024 2048 1024

GemFirelocator(Plan3)

2 1 1024 2048 1024

GemFireServer(Plan1)

3 2 4096 6144 8192

GemFireServer(Plan2)

3 2 4096 6144 8192

GemFireServer(Plan3)

3 2 4096 6144 8192

GemFireBroker 1 2 4096 4096 4096

BrokerRegistrar 1 1 2048 2048 0

BrokerDeregistrar 1 1 2048 2048 0

ClusterSmokeTest 1 1 512 2048 0

ClusterAgentSmokeTest

1 1 512 2048 0

ServiceOfferingSmokeTest

1 1 512 2048 0

Compilation 2 1 1024 4096 0

Totals 12 9 16384 24576 12800

RequiredforeachVM

ServiceConfigurationDefaults

copyCopyrightPivotalSoftwareInc2013-2018 15 17

TheGemFireforPivotalCloudFoundryserviceautomaticallyimplementsthebestpracticesanoperatorwouldnormallyemploywhendeployingGemFireTheseconfigurationsinclude

DynamicmemorymanagementDynamicallysettheJVMmaximumandminimummemoryutilizationforeachinstanceoftheGemFiresoftwareprocessbasedontheVMrsquostotalmemory

GarbagecollectionEnableandconfigurememorygarbagecollectionforeachinstanceoftheGemFiresoftwareprocess

LoggingconfigurationCreateandstorelogsattheconfigloglevelwithappropriatelimitationsonsizingandautomaticlogrotation

StatisticsmonitoringCreateandstorestatisticsfilesatasamplerateof1000whichcorrespondstoasamplingrateofoncepersecond

DataoverflowconfigurationOverflowdatatodiskwhencrossing70memoryutilization

MemoryoverutilizationprotectionPreventfurtherwritestomemorywhencrossing80memoryutilization

ClientauthenticationRequireclientstoauthenticatewhendirectlyaccessingcacheservers

Thedefaultconfigurationsettingscanbeadjustedifneededonaperserviceinstancebasis

InstallationSteps1 DownloadtheGemFireforPivotalCloudFoundrytilefromPivotalNetwork

2 UseaWebbrowsertologintothePivotalOpsManagerapplicationThePivotalCloudFoundryOpsManagerInstallationDashboarddisplays

3 ClickImportaProductTheAddProductsscreendisplays

4 ClickChooseFileandnavigatetothefileyoudownloadedThefileuploadstoyourPivotalCloudFoundrydeployment

5 ClickAddPivotalOpsManageraddsanewtileforGemFireforPivotalCloudFoundrytotheInstallationDashboard

Self-SignedandInternalSSLCertificatesInproductionenvironmentswerecommendthatyouuseanSSLcertificatesignedbyareputablecertificateauthority(CA)PleaseensureyourSSLcertificatehasalltheSubjectAlternativeNames(SANs)

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

IfyourcertificateissignedbyaknownauthorityandhasthecorrectSANspleasedisregardthissection

copyCopyrightPivotalSoftwareInc2013-2018 16 17

InternalCertificatesInthecaseofInternalCertificates(iecertificatessignedbyaninternalRootCA)youneedtoconfiguretheOpsManagerDirectortiletotrusttheinternalRootCAToachievethispleasefollowthestepsbelow

1 AddtheinternalRootCAistotheSecurityConfigsectionundertheOpsManagerDirectorTile

2 CopytheinternalcertificateandRootCA(certificatechain)totheElasticRuntimetilebynavigatingtoPivotalElasticRuntimegtNetworkinggtLoadBalancerwithTLSenabled(orHAProxy)

Self-SignedCertificatesWhenusingselfsignedcertificatesgeneratedbytheElasticRuntimeTileyouneedtoensurethatthiscertificateisprovidedtotheOpsManagerDirectorTile

GeneratingSelf-SignCertificatesusingtheElasticRuntimeTileTheElasticRuntimeTileallowsyoutogenerateself-signedcertificatesbynavigatingtoPivotalElasticRuntimegtNetworkinggtGenerateRSACertificatePleasespecifythefollowingwildcardsubdomains

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

OnceyouhavegeneratedyourcertificatecopythecertificatetotheOpsManagerDirectorTileandplaceitintheSecurityConfigsection

GeneratingSelf-SignedCertificatesusingOpenSSL1 TousetheOpenSSLCLIrunthefollowingcommands

a Generateaprivatekey openssl genrsa -des3 -out serverkey 1024b GenerateaCertificateSigningRequest(CSR)withthe subjectAltName entriesandeditthe subj flagasneeded

openssl req -new -key serverkey -out servercsr -subj C=USST=StateL=LocalityO=OrganizationOU=OrganizationUnitCN=wwwexamplecomemailAddress=exampleexamplecomsubjectAltName=DNS1=systemexamplecomDNS2=appsexamplecomDNS3=uaasystemexamplecomDNS4=loginsystemexamplecom

c RemovePassphrasefromKey cp serverkey serverkeyorg openssl rsa -in serverkeyorg -out serverkeyd GenerateaSelf-SignedCertificate openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt

2 UploadtheSSLcertificatetoyourloadbalancerInstructionsforAWS

a AuthenticatewiththeAWSCLI$ aws configure AWS Access Key ID [None] ltACCESS KEY GOES HEREgt AWS Secret Access Key [None] ltSECRET ACCESS KEY GOESHEREgt Default region name [None] us-east-1 Default output format [None] ENTER

b Uploadyourself-signedcertificateinIAMaws iam upload-server-certificate --server-certificate-name ltNAME OF CERTIFICATEgt --certificate-bodyfileservercrt --private-key fileserverkey

c Uploadyourself-signedcertificatetoyourElasticLoadBalancer(ELB)aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name ltELB NAMEgt --load-balancer-port ltPORTgt --ssl-certificate-id arnawsiamltIAM NUMBERgtserver-certificateltNAME OF CERTIFICATEgt

3 AddtheSSLcertificateasatrustedcertificatetoyourOpsManager-deployedVMs

a InOpsManagerontheDirectorTileundertheSecuritysectionpastethecertificateandsave

copyCopyrightPivotalSoftwareInc2013-2018 17 17

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 5: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

ReleaseDate29thDecember2016

NewinthisRelease

StemcellAWS32336patchesUbuntuCVEs

StemcellAzure32337patchesUbuntuCVEs

Securityfixes

RemovepublicroutethatexposedWANreplicationcredentials[CVE-2016-8220]Addauthenticationtobrokerendpoints[CVE-2016-9880]

v1640

ReleaseDate11thNovember2016

Newinthisrelease

Bugfixes

Upgradedgolangtov17

v1630

ReleaseDate28thOctober2016

Newinthisrelease

StemcellAWS323217patchesUbuntuCVEs

CompatibilityfixesforPCFv17runningonvSphereandAzure

v1700

ReleaseDate19thSeptember2016

NewinthisRelease

CompatibilityreleaseforPCFv17andPCFv18TheGemFireforPCFservicenowinstallsonbothPCFv17andPCFv18withoutsupportforspecificfeaturessuchasmultipleavailabilityzones

IPsecsupportTheGemFireforPCFtilenowsupportsIPsec

LogformatchangedfromfreetexttoJSON

Bugfixes

DBsynchissuesUpgradedgolangtov17UsecryptolibraryforcertificatechaindiscoveryUseofCF_DIAL_TIMEOUTServiceinstanceroutearenowuniqueacrossorgsandspaces

StemcellAWS323217patchesUbuntuCVEs

StemcellAzure323217patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xv35xToresolvethisusethelatestJavabuildpack

CurrentlytilesupportsonlyasingleAvailabilityZone(AZ)

copyCopyrightPivotalSoftwareInc2013-2018 5 17

v162

ReleaseDate28thJuly2016

NewinthisRelease

CompatibilityreleaseforPCFv17TheGemFireforPCFservicenowinstallsonPCFv17withoutsupportforPCFv17ndashspecificfeaturessuchasmultipleavailabilityzones

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacks34x35xToresolvethisusethelatestJavabuildpack

v161

ReleaseDate22ndJuly2016

NewinthisRelease

StemcellAWS323213patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacks34xand35xToresolvethisupdateJavabuildpackto36 InJavabuildpack34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1600

ReleaseDate31stMay2016

NewinthisRelease

StemcellAWS32324patchesUbuntuCVEs

StemcellAzure32325patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1500

ReleaseDate9thMay2016

NewinthisRelease

ThepackagedGemFireisupgradedfromv8205tov82014

The enable-network-partition-detection propertyisnowenabled topreventagainstdatacorruptioninsplit-brainscenarios

Clusterstabilityhasbeenimprovedduringrestartsandduringserviceinstancedeletions

Defaulttimeoutof cf restart-gemfire hasbeenincreasedfrom120secondsto900secondstoaccommodateslower-than-expectedstartupofserversandlocators

copyCopyrightPivotalSoftwareInc2013-2018 6 17

WhenrunningonAzureGemFireserverswillhaveredundancyzones tieddirectlytoAzurersquosfaultdomains sothatredundancyforpartitionedregionsissatisfiedacrossmultiplevirtualserverracks

The cf export-gemfire commandnowgivesfeedbackaboutmissingargumentsmakingiteasiertoexportyourGemFirelogsclusterconfigsandproperties

UpgradeWarningDowntimeRequired

Upgradingtov1500willrequiredowntimeforyourGemFireforPCFdeployment

Sincethe enable-network-partition-detection=true propertymustbesetontheentireclusteratthesametimeweareunabletodoarollingupgradePreviouslydeployedappsandserviceinstanceswillcontinuetofunctionnormallyaftertheupgradethoughGemFireforPCFwillbeunavailableduringtheupgrade

ForOpsManager-deployedtiles

1 Uploadthev1500GemFireforPCFtiletoOpsManager

2 UnderAvailableProductsgtPivotalGemFireclickAdd

3 boshtarget yourOpsManager-deployedboshdirector

4 boshstop yourpreviouslydeployedGemFireforPCFtileThiswillstoptheGemFireforPCFservicebrokerandallserviceinstances

5 InOpsManagerclickApplyChanges

Forbosh-deployedreleases

1 bosh upload thereleasescontainedinthistile

2 bosh stop yourexistingGemFiredeployment

3 bosh deploy themanifestcontainedinthistile

4 bosh start yournewdeployment

copyCopyrightPivotalSoftwareInc2013-2018 7 17

KnownIssuesandLimitations

Upgradingtov1500willrequiredowntimeforyourGemFireforPCFdeploymentasdetailedintheprevioussection

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1400

ReleaseDate4thApril2016

NewinthisRelease

AddssupportforusingCLIpluginwithahttpproxyToenableproxyusagefollowthesameinstructionsfortheCLI

EnablesbestpracticeOStuningsettingsforserverandlocatorVMsIncludessettingsfor

fsfile-max

vmswappiness

netcoresomaxconn

netcorenetdev_max_backlog

netcorermem_max

netcorewmem_max

netipv4tcp_wmem

netipv4tcp_rmem

netipv4tcp_syncookies

netipv4tcp_max_syn_backlog

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1300

ReleaseDate18thMarch2016

NewinthisRelease

Addsupportforasynchronousserviceinstanceallocationanddeallocation

AddbasicauthforGemfireagentendpoints

Improveerrorhandlingandreportingduringserviceinstancedeallocation

Includestacktracesinerrorlogsfortheservicebroker

IntroduceloglevelsfortheservicebrokerFornowtheyareonlyconfigurableatthereleaselevelandsetto info bydefaultTheyarenotexposedinthetileatthispoint

Increasethedefaultlimitforfiledescriptorsto32000fortheGemFireVM

EnsurethattheJVMis kill edwhenitisOutofMemory

Upgradestemcellto314610patchingUSN-2929-1

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

copyCopyrightPivotalSoftwareInc2013-2018 8 17

v1230

ReleaseDate4thFebruary2016

NewinthisRelease

Stemcell31466patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1220

ReleaseDate22ndJanuary2016

NewinthisRelease

Stemcell31465resolvesCVE-2016-0728

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1210

ReleaseDate12thJanuary2016

NewinthisRelease

Stemcell31462resolvesCVEUSN-2857-1

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1200

ReleaseDate1stDecember2015

NewinthisRelease

SupportforGemFiremulti-site(WAN)replication

SupportfortheldquoTrustedCertificatesrdquofeatureinOpsManagerThecertificatesfromldquoTrustedCertificatesrdquoaredeployedtoallGemFirenodesandtotheGemFireservicebrokerNoteonself-signedandinternalCAsignedcertificatesIfyouareusingaself-signedcertificateoracertificatesignedbyaninternalorothernotknowncertificateauthority(CA)youmustaddthecertificate(orcertificatechain)totheldquoTrustedCertificatesrdquoinOpsManager

GemFireupgradedtov8205

copyCopyrightPivotalSoftwareInc2013-2018 9 17

Drainscriptimprovements

BettererrorreportingforserviceinstanceallocationfailuresInsteadofreturningldquoThemaximumnumberofServiceInstancesalreadyexistrdquomessageforallfailuresduringaserviceinstanceallocationeachdifferenttypeoffailurereturnsadescriptiveerrormessage

Stemcell3144

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartofanupgradeThisproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofanupgradeanewVMhasbeencreatedwiththesameIPbutwithadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

v1110

ReleaseDate5thNovember2015

NewinthisRelease

SupportforOpsManagerv16andElasticRuntimev16ThisreleasedoesnotworkwiththepreviousreleasesofOpsManagerandElasticRuntime

Stemcell3100

KnownIssuesandLimitations

SeeKnownIssuesandLimitationsforv1100below

v1100

ReleaseDate22ndSeptember2015

NewinthisRelease

UpgradedPivotalGemFiretov82

UpgradedJavatov8andJREv18

Spring-relatedenhancements

SupportfordeployingaSpringXMLconfigurationandapplicationcodetoGemFireserviceinstances

IfyouuseSpringldquoallthewayrdquoyoucandosowithGemFireserviceinstancesaswellThereisnoneedtotranslatetheSpringconfigurationtoGemFireXMLSpringsupportisprovidedusingconfigurationoptionsoftheGemFireforPCFCLIplug-incommand cf restart-gemfire

SupportforusingSSLencryptiontoaccessGemFireServiceInstancesfromoutsideofPCF

GemFirePulseisnowaccessibleviaHTTPSGemFireRESTclientscanbeconfiguredtoaccessaserviceinstancersquosRESTAPIendpointviaHTTPSYoucanconfiguretheGemFireshell(gfsh)toaccessaserviceinstanceoverHTTPS

Additionalfixesandimprovements

DrainscriptimprovementsImprovedhandlingofself-signedcertificatesYAMLsyntaxvalidationforclusterpropertiesthatareprovidedviathe --properties optionofthe cf restart-gemfire CLIcommand

Stemcell3062

copyCopyrightPivotalSoftwareInc2013-2018 10 17

SupportfortheexperimentalfeatureHTTPStraffictoUAA

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartoftheupgradeTheproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofupgradeanewVMhasbeencreatedwiththesameIPbutadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

v1000

ReleaseDate10August2015

KnownIssuesandLimitations

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

copyCopyrightPivotalSoftwareInc2013-2018 11 17

OverviewGemFireforPivotalCloudFoundry (PCF)enablesyoutoeasilyconfigureandprovisioncompletePivotalGemFireclientserverclustersusingPivotalCloudFoundryACloudFoundryAdministratorcaneasilyconfigurethreedifferenttypesofGemFireclusters(serviceplans)usingdifferentnumbersoflocatorsandserversaswellasdifferentresourcesperclusternodeforeachserviceplanEachserviceplaninstanceusesGemFirebestpracticestoautomaticallyconfigureJVMresourceutilizationandgarbagecollectionsettingstakingintoconsiderationtheresourcesavailableontheclusternodeServiceinstancesarededicatednotmultitenantbydefaultbuttheycanbeusedbydifferentapplicationsifdesiredAllocatingaserviceinstanceprovisionsaGemFireclusterfromthepoolofavailableunallocatedGemFireclustersthatwereinstantiatedduringthetileinstallationGemFireprocesseslocatorsandserversrunindedicatedVMs

PivotalprovidestheGemFirePulseWebapplicationgfshcommand-lineutilitytohelpyoumonitormanagetheserviceinstancesthatyoudeployInadditionPivotalprovidesaCloudFoundryCLIplug-inthatdeveloperscanusetoperformthemostcommonGemFireclustermanagementoperationssuchas

Restartingthecluster

Downloadingclusterconfigurationfileslogfilesorstatistics

Uploadingcustomclusterconfigurations

FinallyGemFireforPivotalCloudFoundryprovidesacustomrestURLtohelpyoueasilyusetheGemFireRESTAPIwithaboundserviceinstanceRequeststotheURLautomaticallyround-robintoavailablecacheserverssothereisnoneedtoassociateRESTrequestswithaspecificserver

HowDoestheServiceWork

PCFAdministratorWorkflowThefollowingdiagramdepictsthehigh-levelworkflowfordeployingtheGemFireservice

Figure1InstallingandConfiguringtheService

copyCopyrightPivotalSoftwareInc2013-2018 12 17

1 PivotalCloudFoundryAdministratorimportstheGemFireserviceproductfileintoPivotalCloudFoundryOperationsManager

2 WhenaPivotalCloudFoundryAdministratorconfigurestheGemFireserviceforthefirsttimetheydefinethenumberofdiscreteserviceinstancesforeachGemFireServicePlanAserviceinstanceisaGemFireclusterGemFireforPivotalCloudFoundryenablesyoutoconfigureinstancesforthreedifferentGemFireclusterconfigurationswhereeachinstancecanprovideadifferentnumberoflocatorsandcacheserversaswellasmemoryanddiskspaceresources

3 AftermakingtheirconfigurationchoicesthePivotalCloudFoundryAdministratordeploystheservicecausingPivotalCloudFoundryOpsManagertocreateandsetuptheappropriatesetofvirtualmachines

4 OperationsManagerdeploysavirtualmachinetoruntheGemFireServiceBrokerwhichisresponsibleforallocatingGemFireClusterserviceinstancestoPivotalCloudFoundryusersandforpassingrelevantinformationintotheapplicationsthatareboundtoeachserviceinstance

5 OperationsManageralsodeploysthespecifiednumberofGemFireserviceinstances(clusters)asconfiguredbytheadministratorLastlythereareafewtemporaryVMsusedforinstallanduninstallerrands

AftertheservicehasbeendeployedinOperationsManageritisreadyforusebyapplicationdevelopersintheElasticRuntimeenvironmentThefollowingdiagramdepictsthehigh-levelworkflowthatanapplicationdeveloperwouldusetoconsumetheservice

PCFDeveloper(ServiceUser)WorkflowFigure2UsingtheService

copyCopyrightPivotalSoftwareInc2013-2018 13 17

1 PivotalCloudFoundryDeveloperusestheCLIorDeveloperConsoletocreateaGemFireserviceinstanceintheElasticRuntimespacewheretheyarepushingtherelevantapplications

2 CreatingaserviceinstancecausesElasticRuntimetocontacttheGemFireServiceBrokerwhichallocatesoneun-allocatedGemFireclusterofdedicatedvirtualmachinestotheGemFireserviceinstanceIntheresponsetoElasticRuntimetheServiceBrokerincludestheURLtoreachtheGemFirePulsemonitoringtoolfortheserviceinstanceTheElasticRuntimeexposesthisURLintheDeveloperConsolersquosmetadatafortheserviceinstance

3 PivotalCloudFoundryDeveloperpushestheirapplicationtoElasticRuntime

4 PivotalCloudFoundryDeveloperbindstheirapplicationtotheGemFireserviceinstanceTheGemFireServiceBrokerpopulatestheapplicationrsquosVCAP_SERVICESenvironmentvariablewiththemetadatarequiredtoaccesstheGemFireserviceinstancersquoslocatorsandcacheservers

5 PivotalCloudFoundrydevelopercanconfiguremonitorandmanagetheclusterusingPulseandortheGemFireforPivotalCloudFoundryCLIplug-in

AdditionalResourcesPivotalGemFireProductDocumentation

PivotalGemFireCommunityForum

PivotalGemFireKnowledgeBase

PivotalCloudFoundryDocumentation

copyCopyrightPivotalSoftwareInc2013-2018 14 17

InstallingGemFireforPivotalCloudFoundryPrerequisites

ServiceConfigurationDefaults

InstallationSteps

CreatingGemFireServicePlans

ApplicationSecurityGroups

PrerequisitesBeforeyoubeginyourGemFireforPivotalCloudFoundry (PCF)deploymentyoursystemneedstomeetthefollowingminimumrequirements

PivotalCloudFoundryOpsManagerforvSphereorPivotalCloudFoundryOpsManagerforvCloudAirorvCloudDirectororPivotalCloudFoundryOpsManagerforAWS

IPSec(optional)IfyouwishtouseIPSecinyourPivotalGemFireinstallationpleaseensureyouhavetheIPSecBOSHreleasedeployedbeforeinstallingtheElasticRuntimeandGemFiretileForinstructionsondeployingtheIPSecBOSHreleaseseetheinstructionshere

PivotalCloudFoundryElasticRuntime

NetworkaccessandcredentialsforthePivotalCloudFoundryOpsManagerWebConsole

CapacityinthevSphereclusterforserviceinstancesyouwanttodeployBydefaulttheGemFireserviceconfiguresthreedifferentGemFireserviceplansEachplandeploystheminimumof2locatorsbutdeploy35and7GemFirecacheserversrespectivelySeveralsupportingVMsarealsorequiredforservicedeploymentTheresourceallocationsforthedefaultGemFireserviceplaninstancesandcomponentsareasfollows

Table1DefaultResourceRequirementsforaGemFireServiceInstances

Service VirtualMachines CPU RAM(MB) EphemeralDisk(MB) PersistentDisk(MB)

GemFirelocator(Plan1)

2 1 1024 2048 1024

GemFirelocator(Plan2)

2 1 1024 2048 1024

GemFirelocator(Plan3)

2 1 1024 2048 1024

GemFireServer(Plan1)

3 2 4096 6144 8192

GemFireServer(Plan2)

3 2 4096 6144 8192

GemFireServer(Plan3)

3 2 4096 6144 8192

GemFireBroker 1 2 4096 4096 4096

BrokerRegistrar 1 1 2048 2048 0

BrokerDeregistrar 1 1 2048 2048 0

ClusterSmokeTest 1 1 512 2048 0

ClusterAgentSmokeTest

1 1 512 2048 0

ServiceOfferingSmokeTest

1 1 512 2048 0

Compilation 2 1 1024 4096 0

Totals 12 9 16384 24576 12800

RequiredforeachVM

ServiceConfigurationDefaults

copyCopyrightPivotalSoftwareInc2013-2018 15 17

TheGemFireforPivotalCloudFoundryserviceautomaticallyimplementsthebestpracticesanoperatorwouldnormallyemploywhendeployingGemFireTheseconfigurationsinclude

DynamicmemorymanagementDynamicallysettheJVMmaximumandminimummemoryutilizationforeachinstanceoftheGemFiresoftwareprocessbasedontheVMrsquostotalmemory

GarbagecollectionEnableandconfigurememorygarbagecollectionforeachinstanceoftheGemFiresoftwareprocess

LoggingconfigurationCreateandstorelogsattheconfigloglevelwithappropriatelimitationsonsizingandautomaticlogrotation

StatisticsmonitoringCreateandstorestatisticsfilesatasamplerateof1000whichcorrespondstoasamplingrateofoncepersecond

DataoverflowconfigurationOverflowdatatodiskwhencrossing70memoryutilization

MemoryoverutilizationprotectionPreventfurtherwritestomemorywhencrossing80memoryutilization

ClientauthenticationRequireclientstoauthenticatewhendirectlyaccessingcacheservers

Thedefaultconfigurationsettingscanbeadjustedifneededonaperserviceinstancebasis

InstallationSteps1 DownloadtheGemFireforPivotalCloudFoundrytilefromPivotalNetwork

2 UseaWebbrowsertologintothePivotalOpsManagerapplicationThePivotalCloudFoundryOpsManagerInstallationDashboarddisplays

3 ClickImportaProductTheAddProductsscreendisplays

4 ClickChooseFileandnavigatetothefileyoudownloadedThefileuploadstoyourPivotalCloudFoundrydeployment

5 ClickAddPivotalOpsManageraddsanewtileforGemFireforPivotalCloudFoundrytotheInstallationDashboard

Self-SignedandInternalSSLCertificatesInproductionenvironmentswerecommendthatyouuseanSSLcertificatesignedbyareputablecertificateauthority(CA)PleaseensureyourSSLcertificatehasalltheSubjectAlternativeNames(SANs)

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

IfyourcertificateissignedbyaknownauthorityandhasthecorrectSANspleasedisregardthissection

copyCopyrightPivotalSoftwareInc2013-2018 16 17

InternalCertificatesInthecaseofInternalCertificates(iecertificatessignedbyaninternalRootCA)youneedtoconfiguretheOpsManagerDirectortiletotrusttheinternalRootCAToachievethispleasefollowthestepsbelow

1 AddtheinternalRootCAistotheSecurityConfigsectionundertheOpsManagerDirectorTile

2 CopytheinternalcertificateandRootCA(certificatechain)totheElasticRuntimetilebynavigatingtoPivotalElasticRuntimegtNetworkinggtLoadBalancerwithTLSenabled(orHAProxy)

Self-SignedCertificatesWhenusingselfsignedcertificatesgeneratedbytheElasticRuntimeTileyouneedtoensurethatthiscertificateisprovidedtotheOpsManagerDirectorTile

GeneratingSelf-SignCertificatesusingtheElasticRuntimeTileTheElasticRuntimeTileallowsyoutogenerateself-signedcertificatesbynavigatingtoPivotalElasticRuntimegtNetworkinggtGenerateRSACertificatePleasespecifythefollowingwildcardsubdomains

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

OnceyouhavegeneratedyourcertificatecopythecertificatetotheOpsManagerDirectorTileandplaceitintheSecurityConfigsection

GeneratingSelf-SignedCertificatesusingOpenSSL1 TousetheOpenSSLCLIrunthefollowingcommands

a Generateaprivatekey openssl genrsa -des3 -out serverkey 1024b GenerateaCertificateSigningRequest(CSR)withthe subjectAltName entriesandeditthe subj flagasneeded

openssl req -new -key serverkey -out servercsr -subj C=USST=StateL=LocalityO=OrganizationOU=OrganizationUnitCN=wwwexamplecomemailAddress=exampleexamplecomsubjectAltName=DNS1=systemexamplecomDNS2=appsexamplecomDNS3=uaasystemexamplecomDNS4=loginsystemexamplecom

c RemovePassphrasefromKey cp serverkey serverkeyorg openssl rsa -in serverkeyorg -out serverkeyd GenerateaSelf-SignedCertificate openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt

2 UploadtheSSLcertificatetoyourloadbalancerInstructionsforAWS

a AuthenticatewiththeAWSCLI$ aws configure AWS Access Key ID [None] ltACCESS KEY GOES HEREgt AWS Secret Access Key [None] ltSECRET ACCESS KEY GOESHEREgt Default region name [None] us-east-1 Default output format [None] ENTER

b Uploadyourself-signedcertificateinIAMaws iam upload-server-certificate --server-certificate-name ltNAME OF CERTIFICATEgt --certificate-bodyfileservercrt --private-key fileserverkey

c Uploadyourself-signedcertificatetoyourElasticLoadBalancer(ELB)aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name ltELB NAMEgt --load-balancer-port ltPORTgt --ssl-certificate-id arnawsiamltIAM NUMBERgtserver-certificateltNAME OF CERTIFICATEgt

3 AddtheSSLcertificateasatrustedcertificatetoyourOpsManager-deployedVMs

a InOpsManagerontheDirectorTileundertheSecuritysectionpastethecertificateandsave

copyCopyrightPivotalSoftwareInc2013-2018 17 17

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 6: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

v162

ReleaseDate28thJuly2016

NewinthisRelease

CompatibilityreleaseforPCFv17TheGemFireforPCFservicenowinstallsonPCFv17withoutsupportforPCFv17ndashspecificfeaturessuchasmultipleavailabilityzones

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacks34x35xToresolvethisusethelatestJavabuildpack

v161

ReleaseDate22ndJuly2016

NewinthisRelease

StemcellAWS323213patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacks34xand35xToresolvethisupdateJavabuildpackto36 InJavabuildpack34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1600

ReleaseDate31stMay2016

NewinthisRelease

StemcellAWS32324patchesUbuntuCVEs

StemcellAzure32325patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1500

ReleaseDate9thMay2016

NewinthisRelease

ThepackagedGemFireisupgradedfromv8205tov82014

The enable-network-partition-detection propertyisnowenabled topreventagainstdatacorruptioninsplit-brainscenarios

Clusterstabilityhasbeenimprovedduringrestartsandduringserviceinstancedeletions

Defaulttimeoutof cf restart-gemfire hasbeenincreasedfrom120secondsto900secondstoaccommodateslower-than-expectedstartupofserversandlocators

copyCopyrightPivotalSoftwareInc2013-2018 6 17

WhenrunningonAzureGemFireserverswillhaveredundancyzones tieddirectlytoAzurersquosfaultdomains sothatredundancyforpartitionedregionsissatisfiedacrossmultiplevirtualserverracks

The cf export-gemfire commandnowgivesfeedbackaboutmissingargumentsmakingiteasiertoexportyourGemFirelogsclusterconfigsandproperties

UpgradeWarningDowntimeRequired

Upgradingtov1500willrequiredowntimeforyourGemFireforPCFdeployment

Sincethe enable-network-partition-detection=true propertymustbesetontheentireclusteratthesametimeweareunabletodoarollingupgradePreviouslydeployedappsandserviceinstanceswillcontinuetofunctionnormallyaftertheupgradethoughGemFireforPCFwillbeunavailableduringtheupgrade

ForOpsManager-deployedtiles

1 Uploadthev1500GemFireforPCFtiletoOpsManager

2 UnderAvailableProductsgtPivotalGemFireclickAdd

3 boshtarget yourOpsManager-deployedboshdirector

4 boshstop yourpreviouslydeployedGemFireforPCFtileThiswillstoptheGemFireforPCFservicebrokerandallserviceinstances

5 InOpsManagerclickApplyChanges

Forbosh-deployedreleases

1 bosh upload thereleasescontainedinthistile

2 bosh stop yourexistingGemFiredeployment

3 bosh deploy themanifestcontainedinthistile

4 bosh start yournewdeployment

copyCopyrightPivotalSoftwareInc2013-2018 7 17

KnownIssuesandLimitations

Upgradingtov1500willrequiredowntimeforyourGemFireforPCFdeploymentasdetailedintheprevioussection

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1400

ReleaseDate4thApril2016

NewinthisRelease

AddssupportforusingCLIpluginwithahttpproxyToenableproxyusagefollowthesameinstructionsfortheCLI

EnablesbestpracticeOStuningsettingsforserverandlocatorVMsIncludessettingsfor

fsfile-max

vmswappiness

netcoresomaxconn

netcorenetdev_max_backlog

netcorermem_max

netcorewmem_max

netipv4tcp_wmem

netipv4tcp_rmem

netipv4tcp_syncookies

netipv4tcp_max_syn_backlog

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1300

ReleaseDate18thMarch2016

NewinthisRelease

Addsupportforasynchronousserviceinstanceallocationanddeallocation

AddbasicauthforGemfireagentendpoints

Improveerrorhandlingandreportingduringserviceinstancedeallocation

Includestacktracesinerrorlogsfortheservicebroker

IntroduceloglevelsfortheservicebrokerFornowtheyareonlyconfigurableatthereleaselevelandsetto info bydefaultTheyarenotexposedinthetileatthispoint

Increasethedefaultlimitforfiledescriptorsto32000fortheGemFireVM

EnsurethattheJVMis kill edwhenitisOutofMemory

Upgradestemcellto314610patchingUSN-2929-1

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

copyCopyrightPivotalSoftwareInc2013-2018 8 17

v1230

ReleaseDate4thFebruary2016

NewinthisRelease

Stemcell31466patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1220

ReleaseDate22ndJanuary2016

NewinthisRelease

Stemcell31465resolvesCVE-2016-0728

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1210

ReleaseDate12thJanuary2016

NewinthisRelease

Stemcell31462resolvesCVEUSN-2857-1

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1200

ReleaseDate1stDecember2015

NewinthisRelease

SupportforGemFiremulti-site(WAN)replication

SupportfortheldquoTrustedCertificatesrdquofeatureinOpsManagerThecertificatesfromldquoTrustedCertificatesrdquoaredeployedtoallGemFirenodesandtotheGemFireservicebrokerNoteonself-signedandinternalCAsignedcertificatesIfyouareusingaself-signedcertificateoracertificatesignedbyaninternalorothernotknowncertificateauthority(CA)youmustaddthecertificate(orcertificatechain)totheldquoTrustedCertificatesrdquoinOpsManager

GemFireupgradedtov8205

copyCopyrightPivotalSoftwareInc2013-2018 9 17

Drainscriptimprovements

BettererrorreportingforserviceinstanceallocationfailuresInsteadofreturningldquoThemaximumnumberofServiceInstancesalreadyexistrdquomessageforallfailuresduringaserviceinstanceallocationeachdifferenttypeoffailurereturnsadescriptiveerrormessage

Stemcell3144

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartofanupgradeThisproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofanupgradeanewVMhasbeencreatedwiththesameIPbutwithadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

v1110

ReleaseDate5thNovember2015

NewinthisRelease

SupportforOpsManagerv16andElasticRuntimev16ThisreleasedoesnotworkwiththepreviousreleasesofOpsManagerandElasticRuntime

Stemcell3100

KnownIssuesandLimitations

SeeKnownIssuesandLimitationsforv1100below

v1100

ReleaseDate22ndSeptember2015

NewinthisRelease

UpgradedPivotalGemFiretov82

UpgradedJavatov8andJREv18

Spring-relatedenhancements

SupportfordeployingaSpringXMLconfigurationandapplicationcodetoGemFireserviceinstances

IfyouuseSpringldquoallthewayrdquoyoucandosowithGemFireserviceinstancesaswellThereisnoneedtotranslatetheSpringconfigurationtoGemFireXMLSpringsupportisprovidedusingconfigurationoptionsoftheGemFireforPCFCLIplug-incommand cf restart-gemfire

SupportforusingSSLencryptiontoaccessGemFireServiceInstancesfromoutsideofPCF

GemFirePulseisnowaccessibleviaHTTPSGemFireRESTclientscanbeconfiguredtoaccessaserviceinstancersquosRESTAPIendpointviaHTTPSYoucanconfiguretheGemFireshell(gfsh)toaccessaserviceinstanceoverHTTPS

Additionalfixesandimprovements

DrainscriptimprovementsImprovedhandlingofself-signedcertificatesYAMLsyntaxvalidationforclusterpropertiesthatareprovidedviathe --properties optionofthe cf restart-gemfire CLIcommand

Stemcell3062

copyCopyrightPivotalSoftwareInc2013-2018 10 17

SupportfortheexperimentalfeatureHTTPStraffictoUAA

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartoftheupgradeTheproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofupgradeanewVMhasbeencreatedwiththesameIPbutadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

v1000

ReleaseDate10August2015

KnownIssuesandLimitations

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

copyCopyrightPivotalSoftwareInc2013-2018 11 17

OverviewGemFireforPivotalCloudFoundry (PCF)enablesyoutoeasilyconfigureandprovisioncompletePivotalGemFireclientserverclustersusingPivotalCloudFoundryACloudFoundryAdministratorcaneasilyconfigurethreedifferenttypesofGemFireclusters(serviceplans)usingdifferentnumbersoflocatorsandserversaswellasdifferentresourcesperclusternodeforeachserviceplanEachserviceplaninstanceusesGemFirebestpracticestoautomaticallyconfigureJVMresourceutilizationandgarbagecollectionsettingstakingintoconsiderationtheresourcesavailableontheclusternodeServiceinstancesarededicatednotmultitenantbydefaultbuttheycanbeusedbydifferentapplicationsifdesiredAllocatingaserviceinstanceprovisionsaGemFireclusterfromthepoolofavailableunallocatedGemFireclustersthatwereinstantiatedduringthetileinstallationGemFireprocesseslocatorsandserversrunindedicatedVMs

PivotalprovidestheGemFirePulseWebapplicationgfshcommand-lineutilitytohelpyoumonitormanagetheserviceinstancesthatyoudeployInadditionPivotalprovidesaCloudFoundryCLIplug-inthatdeveloperscanusetoperformthemostcommonGemFireclustermanagementoperationssuchas

Restartingthecluster

Downloadingclusterconfigurationfileslogfilesorstatistics

Uploadingcustomclusterconfigurations

FinallyGemFireforPivotalCloudFoundryprovidesacustomrestURLtohelpyoueasilyusetheGemFireRESTAPIwithaboundserviceinstanceRequeststotheURLautomaticallyround-robintoavailablecacheserverssothereisnoneedtoassociateRESTrequestswithaspecificserver

HowDoestheServiceWork

PCFAdministratorWorkflowThefollowingdiagramdepictsthehigh-levelworkflowfordeployingtheGemFireservice

Figure1InstallingandConfiguringtheService

copyCopyrightPivotalSoftwareInc2013-2018 12 17

1 PivotalCloudFoundryAdministratorimportstheGemFireserviceproductfileintoPivotalCloudFoundryOperationsManager

2 WhenaPivotalCloudFoundryAdministratorconfigurestheGemFireserviceforthefirsttimetheydefinethenumberofdiscreteserviceinstancesforeachGemFireServicePlanAserviceinstanceisaGemFireclusterGemFireforPivotalCloudFoundryenablesyoutoconfigureinstancesforthreedifferentGemFireclusterconfigurationswhereeachinstancecanprovideadifferentnumberoflocatorsandcacheserversaswellasmemoryanddiskspaceresources

3 AftermakingtheirconfigurationchoicesthePivotalCloudFoundryAdministratordeploystheservicecausingPivotalCloudFoundryOpsManagertocreateandsetuptheappropriatesetofvirtualmachines

4 OperationsManagerdeploysavirtualmachinetoruntheGemFireServiceBrokerwhichisresponsibleforallocatingGemFireClusterserviceinstancestoPivotalCloudFoundryusersandforpassingrelevantinformationintotheapplicationsthatareboundtoeachserviceinstance

5 OperationsManageralsodeploysthespecifiednumberofGemFireserviceinstances(clusters)asconfiguredbytheadministratorLastlythereareafewtemporaryVMsusedforinstallanduninstallerrands

AftertheservicehasbeendeployedinOperationsManageritisreadyforusebyapplicationdevelopersintheElasticRuntimeenvironmentThefollowingdiagramdepictsthehigh-levelworkflowthatanapplicationdeveloperwouldusetoconsumetheservice

PCFDeveloper(ServiceUser)WorkflowFigure2UsingtheService

copyCopyrightPivotalSoftwareInc2013-2018 13 17

1 PivotalCloudFoundryDeveloperusestheCLIorDeveloperConsoletocreateaGemFireserviceinstanceintheElasticRuntimespacewheretheyarepushingtherelevantapplications

2 CreatingaserviceinstancecausesElasticRuntimetocontacttheGemFireServiceBrokerwhichallocatesoneun-allocatedGemFireclusterofdedicatedvirtualmachinestotheGemFireserviceinstanceIntheresponsetoElasticRuntimetheServiceBrokerincludestheURLtoreachtheGemFirePulsemonitoringtoolfortheserviceinstanceTheElasticRuntimeexposesthisURLintheDeveloperConsolersquosmetadatafortheserviceinstance

3 PivotalCloudFoundryDeveloperpushestheirapplicationtoElasticRuntime

4 PivotalCloudFoundryDeveloperbindstheirapplicationtotheGemFireserviceinstanceTheGemFireServiceBrokerpopulatestheapplicationrsquosVCAP_SERVICESenvironmentvariablewiththemetadatarequiredtoaccesstheGemFireserviceinstancersquoslocatorsandcacheservers

5 PivotalCloudFoundrydevelopercanconfiguremonitorandmanagetheclusterusingPulseandortheGemFireforPivotalCloudFoundryCLIplug-in

AdditionalResourcesPivotalGemFireProductDocumentation

PivotalGemFireCommunityForum

PivotalGemFireKnowledgeBase

PivotalCloudFoundryDocumentation

copyCopyrightPivotalSoftwareInc2013-2018 14 17

InstallingGemFireforPivotalCloudFoundryPrerequisites

ServiceConfigurationDefaults

InstallationSteps

CreatingGemFireServicePlans

ApplicationSecurityGroups

PrerequisitesBeforeyoubeginyourGemFireforPivotalCloudFoundry (PCF)deploymentyoursystemneedstomeetthefollowingminimumrequirements

PivotalCloudFoundryOpsManagerforvSphereorPivotalCloudFoundryOpsManagerforvCloudAirorvCloudDirectororPivotalCloudFoundryOpsManagerforAWS

IPSec(optional)IfyouwishtouseIPSecinyourPivotalGemFireinstallationpleaseensureyouhavetheIPSecBOSHreleasedeployedbeforeinstallingtheElasticRuntimeandGemFiretileForinstructionsondeployingtheIPSecBOSHreleaseseetheinstructionshere

PivotalCloudFoundryElasticRuntime

NetworkaccessandcredentialsforthePivotalCloudFoundryOpsManagerWebConsole

CapacityinthevSphereclusterforserviceinstancesyouwanttodeployBydefaulttheGemFireserviceconfiguresthreedifferentGemFireserviceplansEachplandeploystheminimumof2locatorsbutdeploy35and7GemFirecacheserversrespectivelySeveralsupportingVMsarealsorequiredforservicedeploymentTheresourceallocationsforthedefaultGemFireserviceplaninstancesandcomponentsareasfollows

Table1DefaultResourceRequirementsforaGemFireServiceInstances

Service VirtualMachines CPU RAM(MB) EphemeralDisk(MB) PersistentDisk(MB)

GemFirelocator(Plan1)

2 1 1024 2048 1024

GemFirelocator(Plan2)

2 1 1024 2048 1024

GemFirelocator(Plan3)

2 1 1024 2048 1024

GemFireServer(Plan1)

3 2 4096 6144 8192

GemFireServer(Plan2)

3 2 4096 6144 8192

GemFireServer(Plan3)

3 2 4096 6144 8192

GemFireBroker 1 2 4096 4096 4096

BrokerRegistrar 1 1 2048 2048 0

BrokerDeregistrar 1 1 2048 2048 0

ClusterSmokeTest 1 1 512 2048 0

ClusterAgentSmokeTest

1 1 512 2048 0

ServiceOfferingSmokeTest

1 1 512 2048 0

Compilation 2 1 1024 4096 0

Totals 12 9 16384 24576 12800

RequiredforeachVM

ServiceConfigurationDefaults

copyCopyrightPivotalSoftwareInc2013-2018 15 17

TheGemFireforPivotalCloudFoundryserviceautomaticallyimplementsthebestpracticesanoperatorwouldnormallyemploywhendeployingGemFireTheseconfigurationsinclude

DynamicmemorymanagementDynamicallysettheJVMmaximumandminimummemoryutilizationforeachinstanceoftheGemFiresoftwareprocessbasedontheVMrsquostotalmemory

GarbagecollectionEnableandconfigurememorygarbagecollectionforeachinstanceoftheGemFiresoftwareprocess

LoggingconfigurationCreateandstorelogsattheconfigloglevelwithappropriatelimitationsonsizingandautomaticlogrotation

StatisticsmonitoringCreateandstorestatisticsfilesatasamplerateof1000whichcorrespondstoasamplingrateofoncepersecond

DataoverflowconfigurationOverflowdatatodiskwhencrossing70memoryutilization

MemoryoverutilizationprotectionPreventfurtherwritestomemorywhencrossing80memoryutilization

ClientauthenticationRequireclientstoauthenticatewhendirectlyaccessingcacheservers

Thedefaultconfigurationsettingscanbeadjustedifneededonaperserviceinstancebasis

InstallationSteps1 DownloadtheGemFireforPivotalCloudFoundrytilefromPivotalNetwork

2 UseaWebbrowsertologintothePivotalOpsManagerapplicationThePivotalCloudFoundryOpsManagerInstallationDashboarddisplays

3 ClickImportaProductTheAddProductsscreendisplays

4 ClickChooseFileandnavigatetothefileyoudownloadedThefileuploadstoyourPivotalCloudFoundrydeployment

5 ClickAddPivotalOpsManageraddsanewtileforGemFireforPivotalCloudFoundrytotheInstallationDashboard

Self-SignedandInternalSSLCertificatesInproductionenvironmentswerecommendthatyouuseanSSLcertificatesignedbyareputablecertificateauthority(CA)PleaseensureyourSSLcertificatehasalltheSubjectAlternativeNames(SANs)

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

IfyourcertificateissignedbyaknownauthorityandhasthecorrectSANspleasedisregardthissection

copyCopyrightPivotalSoftwareInc2013-2018 16 17

InternalCertificatesInthecaseofInternalCertificates(iecertificatessignedbyaninternalRootCA)youneedtoconfiguretheOpsManagerDirectortiletotrusttheinternalRootCAToachievethispleasefollowthestepsbelow

1 AddtheinternalRootCAistotheSecurityConfigsectionundertheOpsManagerDirectorTile

2 CopytheinternalcertificateandRootCA(certificatechain)totheElasticRuntimetilebynavigatingtoPivotalElasticRuntimegtNetworkinggtLoadBalancerwithTLSenabled(orHAProxy)

Self-SignedCertificatesWhenusingselfsignedcertificatesgeneratedbytheElasticRuntimeTileyouneedtoensurethatthiscertificateisprovidedtotheOpsManagerDirectorTile

GeneratingSelf-SignCertificatesusingtheElasticRuntimeTileTheElasticRuntimeTileallowsyoutogenerateself-signedcertificatesbynavigatingtoPivotalElasticRuntimegtNetworkinggtGenerateRSACertificatePleasespecifythefollowingwildcardsubdomains

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

OnceyouhavegeneratedyourcertificatecopythecertificatetotheOpsManagerDirectorTileandplaceitintheSecurityConfigsection

GeneratingSelf-SignedCertificatesusingOpenSSL1 TousetheOpenSSLCLIrunthefollowingcommands

a Generateaprivatekey openssl genrsa -des3 -out serverkey 1024b GenerateaCertificateSigningRequest(CSR)withthe subjectAltName entriesandeditthe subj flagasneeded

openssl req -new -key serverkey -out servercsr -subj C=USST=StateL=LocalityO=OrganizationOU=OrganizationUnitCN=wwwexamplecomemailAddress=exampleexamplecomsubjectAltName=DNS1=systemexamplecomDNS2=appsexamplecomDNS3=uaasystemexamplecomDNS4=loginsystemexamplecom

c RemovePassphrasefromKey cp serverkey serverkeyorg openssl rsa -in serverkeyorg -out serverkeyd GenerateaSelf-SignedCertificate openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt

2 UploadtheSSLcertificatetoyourloadbalancerInstructionsforAWS

a AuthenticatewiththeAWSCLI$ aws configure AWS Access Key ID [None] ltACCESS KEY GOES HEREgt AWS Secret Access Key [None] ltSECRET ACCESS KEY GOESHEREgt Default region name [None] us-east-1 Default output format [None] ENTER

b Uploadyourself-signedcertificateinIAMaws iam upload-server-certificate --server-certificate-name ltNAME OF CERTIFICATEgt --certificate-bodyfileservercrt --private-key fileserverkey

c Uploadyourself-signedcertificatetoyourElasticLoadBalancer(ELB)aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name ltELB NAMEgt --load-balancer-port ltPORTgt --ssl-certificate-id arnawsiamltIAM NUMBERgtserver-certificateltNAME OF CERTIFICATEgt

3 AddtheSSLcertificateasatrustedcertificatetoyourOpsManager-deployedVMs

a InOpsManagerontheDirectorTileundertheSecuritysectionpastethecertificateandsave

copyCopyrightPivotalSoftwareInc2013-2018 17 17

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 7: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

WhenrunningonAzureGemFireserverswillhaveredundancyzones tieddirectlytoAzurersquosfaultdomains sothatredundancyforpartitionedregionsissatisfiedacrossmultiplevirtualserverracks

The cf export-gemfire commandnowgivesfeedbackaboutmissingargumentsmakingiteasiertoexportyourGemFirelogsclusterconfigsandproperties

UpgradeWarningDowntimeRequired

Upgradingtov1500willrequiredowntimeforyourGemFireforPCFdeployment

Sincethe enable-network-partition-detection=true propertymustbesetontheentireclusteratthesametimeweareunabletodoarollingupgradePreviouslydeployedappsandserviceinstanceswillcontinuetofunctionnormallyaftertheupgradethoughGemFireforPCFwillbeunavailableduringtheupgrade

ForOpsManager-deployedtiles

1 Uploadthev1500GemFireforPCFtiletoOpsManager

2 UnderAvailableProductsgtPivotalGemFireclickAdd

3 boshtarget yourOpsManager-deployedboshdirector

4 boshstop yourpreviouslydeployedGemFireforPCFtileThiswillstoptheGemFireforPCFservicebrokerandallserviceinstances

5 InOpsManagerclickApplyChanges

Forbosh-deployedreleases

1 bosh upload thereleasescontainedinthistile

2 bosh stop yourexistingGemFiredeployment

3 bosh deploy themanifestcontainedinthistile

4 bosh start yournewdeployment

copyCopyrightPivotalSoftwareInc2013-2018 7 17

KnownIssuesandLimitations

Upgradingtov1500willrequiredowntimeforyourGemFireforPCFdeploymentasdetailedintheprevioussection

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1400

ReleaseDate4thApril2016

NewinthisRelease

AddssupportforusingCLIpluginwithahttpproxyToenableproxyusagefollowthesameinstructionsfortheCLI

EnablesbestpracticeOStuningsettingsforserverandlocatorVMsIncludessettingsfor

fsfile-max

vmswappiness

netcoresomaxconn

netcorenetdev_max_backlog

netcorermem_max

netcorewmem_max

netipv4tcp_wmem

netipv4tcp_rmem

netipv4tcp_syncookies

netipv4tcp_max_syn_backlog

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1300

ReleaseDate18thMarch2016

NewinthisRelease

Addsupportforasynchronousserviceinstanceallocationanddeallocation

AddbasicauthforGemfireagentendpoints

Improveerrorhandlingandreportingduringserviceinstancedeallocation

Includestacktracesinerrorlogsfortheservicebroker

IntroduceloglevelsfortheservicebrokerFornowtheyareonlyconfigurableatthereleaselevelandsetto info bydefaultTheyarenotexposedinthetileatthispoint

Increasethedefaultlimitforfiledescriptorsto32000fortheGemFireVM

EnsurethattheJVMis kill edwhenitisOutofMemory

Upgradestemcellto314610patchingUSN-2929-1

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

copyCopyrightPivotalSoftwareInc2013-2018 8 17

v1230

ReleaseDate4thFebruary2016

NewinthisRelease

Stemcell31466patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1220

ReleaseDate22ndJanuary2016

NewinthisRelease

Stemcell31465resolvesCVE-2016-0728

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1210

ReleaseDate12thJanuary2016

NewinthisRelease

Stemcell31462resolvesCVEUSN-2857-1

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1200

ReleaseDate1stDecember2015

NewinthisRelease

SupportforGemFiremulti-site(WAN)replication

SupportfortheldquoTrustedCertificatesrdquofeatureinOpsManagerThecertificatesfromldquoTrustedCertificatesrdquoaredeployedtoallGemFirenodesandtotheGemFireservicebrokerNoteonself-signedandinternalCAsignedcertificatesIfyouareusingaself-signedcertificateoracertificatesignedbyaninternalorothernotknowncertificateauthority(CA)youmustaddthecertificate(orcertificatechain)totheldquoTrustedCertificatesrdquoinOpsManager

GemFireupgradedtov8205

copyCopyrightPivotalSoftwareInc2013-2018 9 17

Drainscriptimprovements

BettererrorreportingforserviceinstanceallocationfailuresInsteadofreturningldquoThemaximumnumberofServiceInstancesalreadyexistrdquomessageforallfailuresduringaserviceinstanceallocationeachdifferenttypeoffailurereturnsadescriptiveerrormessage

Stemcell3144

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartofanupgradeThisproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofanupgradeanewVMhasbeencreatedwiththesameIPbutwithadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

v1110

ReleaseDate5thNovember2015

NewinthisRelease

SupportforOpsManagerv16andElasticRuntimev16ThisreleasedoesnotworkwiththepreviousreleasesofOpsManagerandElasticRuntime

Stemcell3100

KnownIssuesandLimitations

SeeKnownIssuesandLimitationsforv1100below

v1100

ReleaseDate22ndSeptember2015

NewinthisRelease

UpgradedPivotalGemFiretov82

UpgradedJavatov8andJREv18

Spring-relatedenhancements

SupportfordeployingaSpringXMLconfigurationandapplicationcodetoGemFireserviceinstances

IfyouuseSpringldquoallthewayrdquoyoucandosowithGemFireserviceinstancesaswellThereisnoneedtotranslatetheSpringconfigurationtoGemFireXMLSpringsupportisprovidedusingconfigurationoptionsoftheGemFireforPCFCLIplug-incommand cf restart-gemfire

SupportforusingSSLencryptiontoaccessGemFireServiceInstancesfromoutsideofPCF

GemFirePulseisnowaccessibleviaHTTPSGemFireRESTclientscanbeconfiguredtoaccessaserviceinstancersquosRESTAPIendpointviaHTTPSYoucanconfiguretheGemFireshell(gfsh)toaccessaserviceinstanceoverHTTPS

Additionalfixesandimprovements

DrainscriptimprovementsImprovedhandlingofself-signedcertificatesYAMLsyntaxvalidationforclusterpropertiesthatareprovidedviathe --properties optionofthe cf restart-gemfire CLIcommand

Stemcell3062

copyCopyrightPivotalSoftwareInc2013-2018 10 17

SupportfortheexperimentalfeatureHTTPStraffictoUAA

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartoftheupgradeTheproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofupgradeanewVMhasbeencreatedwiththesameIPbutadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

v1000

ReleaseDate10August2015

KnownIssuesandLimitations

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

copyCopyrightPivotalSoftwareInc2013-2018 11 17

OverviewGemFireforPivotalCloudFoundry (PCF)enablesyoutoeasilyconfigureandprovisioncompletePivotalGemFireclientserverclustersusingPivotalCloudFoundryACloudFoundryAdministratorcaneasilyconfigurethreedifferenttypesofGemFireclusters(serviceplans)usingdifferentnumbersoflocatorsandserversaswellasdifferentresourcesperclusternodeforeachserviceplanEachserviceplaninstanceusesGemFirebestpracticestoautomaticallyconfigureJVMresourceutilizationandgarbagecollectionsettingstakingintoconsiderationtheresourcesavailableontheclusternodeServiceinstancesarededicatednotmultitenantbydefaultbuttheycanbeusedbydifferentapplicationsifdesiredAllocatingaserviceinstanceprovisionsaGemFireclusterfromthepoolofavailableunallocatedGemFireclustersthatwereinstantiatedduringthetileinstallationGemFireprocesseslocatorsandserversrunindedicatedVMs

PivotalprovidestheGemFirePulseWebapplicationgfshcommand-lineutilitytohelpyoumonitormanagetheserviceinstancesthatyoudeployInadditionPivotalprovidesaCloudFoundryCLIplug-inthatdeveloperscanusetoperformthemostcommonGemFireclustermanagementoperationssuchas

Restartingthecluster

Downloadingclusterconfigurationfileslogfilesorstatistics

Uploadingcustomclusterconfigurations

FinallyGemFireforPivotalCloudFoundryprovidesacustomrestURLtohelpyoueasilyusetheGemFireRESTAPIwithaboundserviceinstanceRequeststotheURLautomaticallyround-robintoavailablecacheserverssothereisnoneedtoassociateRESTrequestswithaspecificserver

HowDoestheServiceWork

PCFAdministratorWorkflowThefollowingdiagramdepictsthehigh-levelworkflowfordeployingtheGemFireservice

Figure1InstallingandConfiguringtheService

copyCopyrightPivotalSoftwareInc2013-2018 12 17

1 PivotalCloudFoundryAdministratorimportstheGemFireserviceproductfileintoPivotalCloudFoundryOperationsManager

2 WhenaPivotalCloudFoundryAdministratorconfigurestheGemFireserviceforthefirsttimetheydefinethenumberofdiscreteserviceinstancesforeachGemFireServicePlanAserviceinstanceisaGemFireclusterGemFireforPivotalCloudFoundryenablesyoutoconfigureinstancesforthreedifferentGemFireclusterconfigurationswhereeachinstancecanprovideadifferentnumberoflocatorsandcacheserversaswellasmemoryanddiskspaceresources

3 AftermakingtheirconfigurationchoicesthePivotalCloudFoundryAdministratordeploystheservicecausingPivotalCloudFoundryOpsManagertocreateandsetuptheappropriatesetofvirtualmachines

4 OperationsManagerdeploysavirtualmachinetoruntheGemFireServiceBrokerwhichisresponsibleforallocatingGemFireClusterserviceinstancestoPivotalCloudFoundryusersandforpassingrelevantinformationintotheapplicationsthatareboundtoeachserviceinstance

5 OperationsManageralsodeploysthespecifiednumberofGemFireserviceinstances(clusters)asconfiguredbytheadministratorLastlythereareafewtemporaryVMsusedforinstallanduninstallerrands

AftertheservicehasbeendeployedinOperationsManageritisreadyforusebyapplicationdevelopersintheElasticRuntimeenvironmentThefollowingdiagramdepictsthehigh-levelworkflowthatanapplicationdeveloperwouldusetoconsumetheservice

PCFDeveloper(ServiceUser)WorkflowFigure2UsingtheService

copyCopyrightPivotalSoftwareInc2013-2018 13 17

1 PivotalCloudFoundryDeveloperusestheCLIorDeveloperConsoletocreateaGemFireserviceinstanceintheElasticRuntimespacewheretheyarepushingtherelevantapplications

2 CreatingaserviceinstancecausesElasticRuntimetocontacttheGemFireServiceBrokerwhichallocatesoneun-allocatedGemFireclusterofdedicatedvirtualmachinestotheGemFireserviceinstanceIntheresponsetoElasticRuntimetheServiceBrokerincludestheURLtoreachtheGemFirePulsemonitoringtoolfortheserviceinstanceTheElasticRuntimeexposesthisURLintheDeveloperConsolersquosmetadatafortheserviceinstance

3 PivotalCloudFoundryDeveloperpushestheirapplicationtoElasticRuntime

4 PivotalCloudFoundryDeveloperbindstheirapplicationtotheGemFireserviceinstanceTheGemFireServiceBrokerpopulatestheapplicationrsquosVCAP_SERVICESenvironmentvariablewiththemetadatarequiredtoaccesstheGemFireserviceinstancersquoslocatorsandcacheservers

5 PivotalCloudFoundrydevelopercanconfiguremonitorandmanagetheclusterusingPulseandortheGemFireforPivotalCloudFoundryCLIplug-in

AdditionalResourcesPivotalGemFireProductDocumentation

PivotalGemFireCommunityForum

PivotalGemFireKnowledgeBase

PivotalCloudFoundryDocumentation

copyCopyrightPivotalSoftwareInc2013-2018 14 17

InstallingGemFireforPivotalCloudFoundryPrerequisites

ServiceConfigurationDefaults

InstallationSteps

CreatingGemFireServicePlans

ApplicationSecurityGroups

PrerequisitesBeforeyoubeginyourGemFireforPivotalCloudFoundry (PCF)deploymentyoursystemneedstomeetthefollowingminimumrequirements

PivotalCloudFoundryOpsManagerforvSphereorPivotalCloudFoundryOpsManagerforvCloudAirorvCloudDirectororPivotalCloudFoundryOpsManagerforAWS

IPSec(optional)IfyouwishtouseIPSecinyourPivotalGemFireinstallationpleaseensureyouhavetheIPSecBOSHreleasedeployedbeforeinstallingtheElasticRuntimeandGemFiretileForinstructionsondeployingtheIPSecBOSHreleaseseetheinstructionshere

PivotalCloudFoundryElasticRuntime

NetworkaccessandcredentialsforthePivotalCloudFoundryOpsManagerWebConsole

CapacityinthevSphereclusterforserviceinstancesyouwanttodeployBydefaulttheGemFireserviceconfiguresthreedifferentGemFireserviceplansEachplandeploystheminimumof2locatorsbutdeploy35and7GemFirecacheserversrespectivelySeveralsupportingVMsarealsorequiredforservicedeploymentTheresourceallocationsforthedefaultGemFireserviceplaninstancesandcomponentsareasfollows

Table1DefaultResourceRequirementsforaGemFireServiceInstances

Service VirtualMachines CPU RAM(MB) EphemeralDisk(MB) PersistentDisk(MB)

GemFirelocator(Plan1)

2 1 1024 2048 1024

GemFirelocator(Plan2)

2 1 1024 2048 1024

GemFirelocator(Plan3)

2 1 1024 2048 1024

GemFireServer(Plan1)

3 2 4096 6144 8192

GemFireServer(Plan2)

3 2 4096 6144 8192

GemFireServer(Plan3)

3 2 4096 6144 8192

GemFireBroker 1 2 4096 4096 4096

BrokerRegistrar 1 1 2048 2048 0

BrokerDeregistrar 1 1 2048 2048 0

ClusterSmokeTest 1 1 512 2048 0

ClusterAgentSmokeTest

1 1 512 2048 0

ServiceOfferingSmokeTest

1 1 512 2048 0

Compilation 2 1 1024 4096 0

Totals 12 9 16384 24576 12800

RequiredforeachVM

ServiceConfigurationDefaults

copyCopyrightPivotalSoftwareInc2013-2018 15 17

TheGemFireforPivotalCloudFoundryserviceautomaticallyimplementsthebestpracticesanoperatorwouldnormallyemploywhendeployingGemFireTheseconfigurationsinclude

DynamicmemorymanagementDynamicallysettheJVMmaximumandminimummemoryutilizationforeachinstanceoftheGemFiresoftwareprocessbasedontheVMrsquostotalmemory

GarbagecollectionEnableandconfigurememorygarbagecollectionforeachinstanceoftheGemFiresoftwareprocess

LoggingconfigurationCreateandstorelogsattheconfigloglevelwithappropriatelimitationsonsizingandautomaticlogrotation

StatisticsmonitoringCreateandstorestatisticsfilesatasamplerateof1000whichcorrespondstoasamplingrateofoncepersecond

DataoverflowconfigurationOverflowdatatodiskwhencrossing70memoryutilization

MemoryoverutilizationprotectionPreventfurtherwritestomemorywhencrossing80memoryutilization

ClientauthenticationRequireclientstoauthenticatewhendirectlyaccessingcacheservers

Thedefaultconfigurationsettingscanbeadjustedifneededonaperserviceinstancebasis

InstallationSteps1 DownloadtheGemFireforPivotalCloudFoundrytilefromPivotalNetwork

2 UseaWebbrowsertologintothePivotalOpsManagerapplicationThePivotalCloudFoundryOpsManagerInstallationDashboarddisplays

3 ClickImportaProductTheAddProductsscreendisplays

4 ClickChooseFileandnavigatetothefileyoudownloadedThefileuploadstoyourPivotalCloudFoundrydeployment

5 ClickAddPivotalOpsManageraddsanewtileforGemFireforPivotalCloudFoundrytotheInstallationDashboard

Self-SignedandInternalSSLCertificatesInproductionenvironmentswerecommendthatyouuseanSSLcertificatesignedbyareputablecertificateauthority(CA)PleaseensureyourSSLcertificatehasalltheSubjectAlternativeNames(SANs)

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

IfyourcertificateissignedbyaknownauthorityandhasthecorrectSANspleasedisregardthissection

copyCopyrightPivotalSoftwareInc2013-2018 16 17

InternalCertificatesInthecaseofInternalCertificates(iecertificatessignedbyaninternalRootCA)youneedtoconfiguretheOpsManagerDirectortiletotrusttheinternalRootCAToachievethispleasefollowthestepsbelow

1 AddtheinternalRootCAistotheSecurityConfigsectionundertheOpsManagerDirectorTile

2 CopytheinternalcertificateandRootCA(certificatechain)totheElasticRuntimetilebynavigatingtoPivotalElasticRuntimegtNetworkinggtLoadBalancerwithTLSenabled(orHAProxy)

Self-SignedCertificatesWhenusingselfsignedcertificatesgeneratedbytheElasticRuntimeTileyouneedtoensurethatthiscertificateisprovidedtotheOpsManagerDirectorTile

GeneratingSelf-SignCertificatesusingtheElasticRuntimeTileTheElasticRuntimeTileallowsyoutogenerateself-signedcertificatesbynavigatingtoPivotalElasticRuntimegtNetworkinggtGenerateRSACertificatePleasespecifythefollowingwildcardsubdomains

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

OnceyouhavegeneratedyourcertificatecopythecertificatetotheOpsManagerDirectorTileandplaceitintheSecurityConfigsection

GeneratingSelf-SignedCertificatesusingOpenSSL1 TousetheOpenSSLCLIrunthefollowingcommands

a Generateaprivatekey openssl genrsa -des3 -out serverkey 1024b GenerateaCertificateSigningRequest(CSR)withthe subjectAltName entriesandeditthe subj flagasneeded

openssl req -new -key serverkey -out servercsr -subj C=USST=StateL=LocalityO=OrganizationOU=OrganizationUnitCN=wwwexamplecomemailAddress=exampleexamplecomsubjectAltName=DNS1=systemexamplecomDNS2=appsexamplecomDNS3=uaasystemexamplecomDNS4=loginsystemexamplecom

c RemovePassphrasefromKey cp serverkey serverkeyorg openssl rsa -in serverkeyorg -out serverkeyd GenerateaSelf-SignedCertificate openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt

2 UploadtheSSLcertificatetoyourloadbalancerInstructionsforAWS

a AuthenticatewiththeAWSCLI$ aws configure AWS Access Key ID [None] ltACCESS KEY GOES HEREgt AWS Secret Access Key [None] ltSECRET ACCESS KEY GOESHEREgt Default region name [None] us-east-1 Default output format [None] ENTER

b Uploadyourself-signedcertificateinIAMaws iam upload-server-certificate --server-certificate-name ltNAME OF CERTIFICATEgt --certificate-bodyfileservercrt --private-key fileserverkey

c Uploadyourself-signedcertificatetoyourElasticLoadBalancer(ELB)aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name ltELB NAMEgt --load-balancer-port ltPORTgt --ssl-certificate-id arnawsiamltIAM NUMBERgtserver-certificateltNAME OF CERTIFICATEgt

3 AddtheSSLcertificateasatrustedcertificatetoyourOpsManager-deployedVMs

a InOpsManagerontheDirectorTileundertheSecuritysectionpastethecertificateandsave

copyCopyrightPivotalSoftwareInc2013-2018 17 17

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 8: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

KnownIssuesandLimitations

Upgradingtov1500willrequiredowntimeforyourGemFireforPCFdeploymentasdetailedintheprevioussection

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1400

ReleaseDate4thApril2016

NewinthisRelease

AddssupportforusingCLIpluginwithahttpproxyToenableproxyusagefollowthesameinstructionsfortheCLI

EnablesbestpracticeOStuningsettingsforserverandlocatorVMsIncludessettingsfor

fsfile-max

vmswappiness

netcoresomaxconn

netcorenetdev_max_backlog

netcorermem_max

netcorewmem_max

netipv4tcp_wmem

netipv4tcp_rmem

netipv4tcp_syncookies

netipv4tcp_max_syn_backlog

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1300

ReleaseDate18thMarch2016

NewinthisRelease

Addsupportforasynchronousserviceinstanceallocationanddeallocation

AddbasicauthforGemfireagentendpoints

Improveerrorhandlingandreportingduringserviceinstancedeallocation

Includestacktracesinerrorlogsfortheservicebroker

IntroduceloglevelsfortheservicebrokerFornowtheyareonlyconfigurableatthereleaselevelandsetto info bydefaultTheyarenotexposedinthetileatthispoint

Increasethedefaultlimitforfiledescriptorsto32000fortheGemFireVM

EnsurethattheJVMis kill edwhenitisOutofMemory

Upgradestemcellto314610patchingUSN-2929-1

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

copyCopyrightPivotalSoftwareInc2013-2018 8 17

v1230

ReleaseDate4thFebruary2016

NewinthisRelease

Stemcell31466patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1220

ReleaseDate22ndJanuary2016

NewinthisRelease

Stemcell31465resolvesCVE-2016-0728

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1210

ReleaseDate12thJanuary2016

NewinthisRelease

Stemcell31462resolvesCVEUSN-2857-1

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1200

ReleaseDate1stDecember2015

NewinthisRelease

SupportforGemFiremulti-site(WAN)replication

SupportfortheldquoTrustedCertificatesrdquofeatureinOpsManagerThecertificatesfromldquoTrustedCertificatesrdquoaredeployedtoallGemFirenodesandtotheGemFireservicebrokerNoteonself-signedandinternalCAsignedcertificatesIfyouareusingaself-signedcertificateoracertificatesignedbyaninternalorothernotknowncertificateauthority(CA)youmustaddthecertificate(orcertificatechain)totheldquoTrustedCertificatesrdquoinOpsManager

GemFireupgradedtov8205

copyCopyrightPivotalSoftwareInc2013-2018 9 17

Drainscriptimprovements

BettererrorreportingforserviceinstanceallocationfailuresInsteadofreturningldquoThemaximumnumberofServiceInstancesalreadyexistrdquomessageforallfailuresduringaserviceinstanceallocationeachdifferenttypeoffailurereturnsadescriptiveerrormessage

Stemcell3144

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartofanupgradeThisproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofanupgradeanewVMhasbeencreatedwiththesameIPbutwithadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

v1110

ReleaseDate5thNovember2015

NewinthisRelease

SupportforOpsManagerv16andElasticRuntimev16ThisreleasedoesnotworkwiththepreviousreleasesofOpsManagerandElasticRuntime

Stemcell3100

KnownIssuesandLimitations

SeeKnownIssuesandLimitationsforv1100below

v1100

ReleaseDate22ndSeptember2015

NewinthisRelease

UpgradedPivotalGemFiretov82

UpgradedJavatov8andJREv18

Spring-relatedenhancements

SupportfordeployingaSpringXMLconfigurationandapplicationcodetoGemFireserviceinstances

IfyouuseSpringldquoallthewayrdquoyoucandosowithGemFireserviceinstancesaswellThereisnoneedtotranslatetheSpringconfigurationtoGemFireXMLSpringsupportisprovidedusingconfigurationoptionsoftheGemFireforPCFCLIplug-incommand cf restart-gemfire

SupportforusingSSLencryptiontoaccessGemFireServiceInstancesfromoutsideofPCF

GemFirePulseisnowaccessibleviaHTTPSGemFireRESTclientscanbeconfiguredtoaccessaserviceinstancersquosRESTAPIendpointviaHTTPSYoucanconfiguretheGemFireshell(gfsh)toaccessaserviceinstanceoverHTTPS

Additionalfixesandimprovements

DrainscriptimprovementsImprovedhandlingofself-signedcertificatesYAMLsyntaxvalidationforclusterpropertiesthatareprovidedviathe --properties optionofthe cf restart-gemfire CLIcommand

Stemcell3062

copyCopyrightPivotalSoftwareInc2013-2018 10 17

SupportfortheexperimentalfeatureHTTPStraffictoUAA

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartoftheupgradeTheproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofupgradeanewVMhasbeencreatedwiththesameIPbutadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

v1000

ReleaseDate10August2015

KnownIssuesandLimitations

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

copyCopyrightPivotalSoftwareInc2013-2018 11 17

OverviewGemFireforPivotalCloudFoundry (PCF)enablesyoutoeasilyconfigureandprovisioncompletePivotalGemFireclientserverclustersusingPivotalCloudFoundryACloudFoundryAdministratorcaneasilyconfigurethreedifferenttypesofGemFireclusters(serviceplans)usingdifferentnumbersoflocatorsandserversaswellasdifferentresourcesperclusternodeforeachserviceplanEachserviceplaninstanceusesGemFirebestpracticestoautomaticallyconfigureJVMresourceutilizationandgarbagecollectionsettingstakingintoconsiderationtheresourcesavailableontheclusternodeServiceinstancesarededicatednotmultitenantbydefaultbuttheycanbeusedbydifferentapplicationsifdesiredAllocatingaserviceinstanceprovisionsaGemFireclusterfromthepoolofavailableunallocatedGemFireclustersthatwereinstantiatedduringthetileinstallationGemFireprocesseslocatorsandserversrunindedicatedVMs

PivotalprovidestheGemFirePulseWebapplicationgfshcommand-lineutilitytohelpyoumonitormanagetheserviceinstancesthatyoudeployInadditionPivotalprovidesaCloudFoundryCLIplug-inthatdeveloperscanusetoperformthemostcommonGemFireclustermanagementoperationssuchas

Restartingthecluster

Downloadingclusterconfigurationfileslogfilesorstatistics

Uploadingcustomclusterconfigurations

FinallyGemFireforPivotalCloudFoundryprovidesacustomrestURLtohelpyoueasilyusetheGemFireRESTAPIwithaboundserviceinstanceRequeststotheURLautomaticallyround-robintoavailablecacheserverssothereisnoneedtoassociateRESTrequestswithaspecificserver

HowDoestheServiceWork

PCFAdministratorWorkflowThefollowingdiagramdepictsthehigh-levelworkflowfordeployingtheGemFireservice

Figure1InstallingandConfiguringtheService

copyCopyrightPivotalSoftwareInc2013-2018 12 17

1 PivotalCloudFoundryAdministratorimportstheGemFireserviceproductfileintoPivotalCloudFoundryOperationsManager

2 WhenaPivotalCloudFoundryAdministratorconfigurestheGemFireserviceforthefirsttimetheydefinethenumberofdiscreteserviceinstancesforeachGemFireServicePlanAserviceinstanceisaGemFireclusterGemFireforPivotalCloudFoundryenablesyoutoconfigureinstancesforthreedifferentGemFireclusterconfigurationswhereeachinstancecanprovideadifferentnumberoflocatorsandcacheserversaswellasmemoryanddiskspaceresources

3 AftermakingtheirconfigurationchoicesthePivotalCloudFoundryAdministratordeploystheservicecausingPivotalCloudFoundryOpsManagertocreateandsetuptheappropriatesetofvirtualmachines

4 OperationsManagerdeploysavirtualmachinetoruntheGemFireServiceBrokerwhichisresponsibleforallocatingGemFireClusterserviceinstancestoPivotalCloudFoundryusersandforpassingrelevantinformationintotheapplicationsthatareboundtoeachserviceinstance

5 OperationsManageralsodeploysthespecifiednumberofGemFireserviceinstances(clusters)asconfiguredbytheadministratorLastlythereareafewtemporaryVMsusedforinstallanduninstallerrands

AftertheservicehasbeendeployedinOperationsManageritisreadyforusebyapplicationdevelopersintheElasticRuntimeenvironmentThefollowingdiagramdepictsthehigh-levelworkflowthatanapplicationdeveloperwouldusetoconsumetheservice

PCFDeveloper(ServiceUser)WorkflowFigure2UsingtheService

copyCopyrightPivotalSoftwareInc2013-2018 13 17

1 PivotalCloudFoundryDeveloperusestheCLIorDeveloperConsoletocreateaGemFireserviceinstanceintheElasticRuntimespacewheretheyarepushingtherelevantapplications

2 CreatingaserviceinstancecausesElasticRuntimetocontacttheGemFireServiceBrokerwhichallocatesoneun-allocatedGemFireclusterofdedicatedvirtualmachinestotheGemFireserviceinstanceIntheresponsetoElasticRuntimetheServiceBrokerincludestheURLtoreachtheGemFirePulsemonitoringtoolfortheserviceinstanceTheElasticRuntimeexposesthisURLintheDeveloperConsolersquosmetadatafortheserviceinstance

3 PivotalCloudFoundryDeveloperpushestheirapplicationtoElasticRuntime

4 PivotalCloudFoundryDeveloperbindstheirapplicationtotheGemFireserviceinstanceTheGemFireServiceBrokerpopulatestheapplicationrsquosVCAP_SERVICESenvironmentvariablewiththemetadatarequiredtoaccesstheGemFireserviceinstancersquoslocatorsandcacheservers

5 PivotalCloudFoundrydevelopercanconfiguremonitorandmanagetheclusterusingPulseandortheGemFireforPivotalCloudFoundryCLIplug-in

AdditionalResourcesPivotalGemFireProductDocumentation

PivotalGemFireCommunityForum

PivotalGemFireKnowledgeBase

PivotalCloudFoundryDocumentation

copyCopyrightPivotalSoftwareInc2013-2018 14 17

InstallingGemFireforPivotalCloudFoundryPrerequisites

ServiceConfigurationDefaults

InstallationSteps

CreatingGemFireServicePlans

ApplicationSecurityGroups

PrerequisitesBeforeyoubeginyourGemFireforPivotalCloudFoundry (PCF)deploymentyoursystemneedstomeetthefollowingminimumrequirements

PivotalCloudFoundryOpsManagerforvSphereorPivotalCloudFoundryOpsManagerforvCloudAirorvCloudDirectororPivotalCloudFoundryOpsManagerforAWS

IPSec(optional)IfyouwishtouseIPSecinyourPivotalGemFireinstallationpleaseensureyouhavetheIPSecBOSHreleasedeployedbeforeinstallingtheElasticRuntimeandGemFiretileForinstructionsondeployingtheIPSecBOSHreleaseseetheinstructionshere

PivotalCloudFoundryElasticRuntime

NetworkaccessandcredentialsforthePivotalCloudFoundryOpsManagerWebConsole

CapacityinthevSphereclusterforserviceinstancesyouwanttodeployBydefaulttheGemFireserviceconfiguresthreedifferentGemFireserviceplansEachplandeploystheminimumof2locatorsbutdeploy35and7GemFirecacheserversrespectivelySeveralsupportingVMsarealsorequiredforservicedeploymentTheresourceallocationsforthedefaultGemFireserviceplaninstancesandcomponentsareasfollows

Table1DefaultResourceRequirementsforaGemFireServiceInstances

Service VirtualMachines CPU RAM(MB) EphemeralDisk(MB) PersistentDisk(MB)

GemFirelocator(Plan1)

2 1 1024 2048 1024

GemFirelocator(Plan2)

2 1 1024 2048 1024

GemFirelocator(Plan3)

2 1 1024 2048 1024

GemFireServer(Plan1)

3 2 4096 6144 8192

GemFireServer(Plan2)

3 2 4096 6144 8192

GemFireServer(Plan3)

3 2 4096 6144 8192

GemFireBroker 1 2 4096 4096 4096

BrokerRegistrar 1 1 2048 2048 0

BrokerDeregistrar 1 1 2048 2048 0

ClusterSmokeTest 1 1 512 2048 0

ClusterAgentSmokeTest

1 1 512 2048 0

ServiceOfferingSmokeTest

1 1 512 2048 0

Compilation 2 1 1024 4096 0

Totals 12 9 16384 24576 12800

RequiredforeachVM

ServiceConfigurationDefaults

copyCopyrightPivotalSoftwareInc2013-2018 15 17

TheGemFireforPivotalCloudFoundryserviceautomaticallyimplementsthebestpracticesanoperatorwouldnormallyemploywhendeployingGemFireTheseconfigurationsinclude

DynamicmemorymanagementDynamicallysettheJVMmaximumandminimummemoryutilizationforeachinstanceoftheGemFiresoftwareprocessbasedontheVMrsquostotalmemory

GarbagecollectionEnableandconfigurememorygarbagecollectionforeachinstanceoftheGemFiresoftwareprocess

LoggingconfigurationCreateandstorelogsattheconfigloglevelwithappropriatelimitationsonsizingandautomaticlogrotation

StatisticsmonitoringCreateandstorestatisticsfilesatasamplerateof1000whichcorrespondstoasamplingrateofoncepersecond

DataoverflowconfigurationOverflowdatatodiskwhencrossing70memoryutilization

MemoryoverutilizationprotectionPreventfurtherwritestomemorywhencrossing80memoryutilization

ClientauthenticationRequireclientstoauthenticatewhendirectlyaccessingcacheservers

Thedefaultconfigurationsettingscanbeadjustedifneededonaperserviceinstancebasis

InstallationSteps1 DownloadtheGemFireforPivotalCloudFoundrytilefromPivotalNetwork

2 UseaWebbrowsertologintothePivotalOpsManagerapplicationThePivotalCloudFoundryOpsManagerInstallationDashboarddisplays

3 ClickImportaProductTheAddProductsscreendisplays

4 ClickChooseFileandnavigatetothefileyoudownloadedThefileuploadstoyourPivotalCloudFoundrydeployment

5 ClickAddPivotalOpsManageraddsanewtileforGemFireforPivotalCloudFoundrytotheInstallationDashboard

Self-SignedandInternalSSLCertificatesInproductionenvironmentswerecommendthatyouuseanSSLcertificatesignedbyareputablecertificateauthority(CA)PleaseensureyourSSLcertificatehasalltheSubjectAlternativeNames(SANs)

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

IfyourcertificateissignedbyaknownauthorityandhasthecorrectSANspleasedisregardthissection

copyCopyrightPivotalSoftwareInc2013-2018 16 17

InternalCertificatesInthecaseofInternalCertificates(iecertificatessignedbyaninternalRootCA)youneedtoconfiguretheOpsManagerDirectortiletotrusttheinternalRootCAToachievethispleasefollowthestepsbelow

1 AddtheinternalRootCAistotheSecurityConfigsectionundertheOpsManagerDirectorTile

2 CopytheinternalcertificateandRootCA(certificatechain)totheElasticRuntimetilebynavigatingtoPivotalElasticRuntimegtNetworkinggtLoadBalancerwithTLSenabled(orHAProxy)

Self-SignedCertificatesWhenusingselfsignedcertificatesgeneratedbytheElasticRuntimeTileyouneedtoensurethatthiscertificateisprovidedtotheOpsManagerDirectorTile

GeneratingSelf-SignCertificatesusingtheElasticRuntimeTileTheElasticRuntimeTileallowsyoutogenerateself-signedcertificatesbynavigatingtoPivotalElasticRuntimegtNetworkinggtGenerateRSACertificatePleasespecifythefollowingwildcardsubdomains

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

OnceyouhavegeneratedyourcertificatecopythecertificatetotheOpsManagerDirectorTileandplaceitintheSecurityConfigsection

GeneratingSelf-SignedCertificatesusingOpenSSL1 TousetheOpenSSLCLIrunthefollowingcommands

a Generateaprivatekey openssl genrsa -des3 -out serverkey 1024b GenerateaCertificateSigningRequest(CSR)withthe subjectAltName entriesandeditthe subj flagasneeded

openssl req -new -key serverkey -out servercsr -subj C=USST=StateL=LocalityO=OrganizationOU=OrganizationUnitCN=wwwexamplecomemailAddress=exampleexamplecomsubjectAltName=DNS1=systemexamplecomDNS2=appsexamplecomDNS3=uaasystemexamplecomDNS4=loginsystemexamplecom

c RemovePassphrasefromKey cp serverkey serverkeyorg openssl rsa -in serverkeyorg -out serverkeyd GenerateaSelf-SignedCertificate openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt

2 UploadtheSSLcertificatetoyourloadbalancerInstructionsforAWS

a AuthenticatewiththeAWSCLI$ aws configure AWS Access Key ID [None] ltACCESS KEY GOES HEREgt AWS Secret Access Key [None] ltSECRET ACCESS KEY GOESHEREgt Default region name [None] us-east-1 Default output format [None] ENTER

b Uploadyourself-signedcertificateinIAMaws iam upload-server-certificate --server-certificate-name ltNAME OF CERTIFICATEgt --certificate-bodyfileservercrt --private-key fileserverkey

c Uploadyourself-signedcertificatetoyourElasticLoadBalancer(ELB)aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name ltELB NAMEgt --load-balancer-port ltPORTgt --ssl-certificate-id arnawsiamltIAM NUMBERgtserver-certificateltNAME OF CERTIFICATEgt

3 AddtheSSLcertificateasatrustedcertificatetoyourOpsManager-deployedVMs

a InOpsManagerontheDirectorTileundertheSecuritysectionpastethecertificateandsave

copyCopyrightPivotalSoftwareInc2013-2018 17 17

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 9: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

v1230

ReleaseDate4thFebruary2016

NewinthisRelease

Stemcell31466patchesUbuntuCVEs

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1220

ReleaseDate22ndJanuary2016

NewinthisRelease

Stemcell31465resolvesCVE-2016-0728

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1210

ReleaseDate12thJanuary2016

NewinthisRelease

Stemcell31462resolvesCVEUSN-2857-1

KnownIssuesandLimitations

ThereisaknownissuewhereappsfailtostagewhenusingtheJavabuildpacksv34xandv35xToresolvethisupdateJavabuildpacktov36 InJavabuildpackv34GemFirewasupgradedfromv80tov82GemFirev81introducedadependencyonlog4jbutlog4jwasnotaddedtotheJavabuildpackv34ThisdependencyhasbeenincludedinJavabuildpackv36

v1200

ReleaseDate1stDecember2015

NewinthisRelease

SupportforGemFiremulti-site(WAN)replication

SupportfortheldquoTrustedCertificatesrdquofeatureinOpsManagerThecertificatesfromldquoTrustedCertificatesrdquoaredeployedtoallGemFirenodesandtotheGemFireservicebrokerNoteonself-signedandinternalCAsignedcertificatesIfyouareusingaself-signedcertificateoracertificatesignedbyaninternalorothernotknowncertificateauthority(CA)youmustaddthecertificate(orcertificatechain)totheldquoTrustedCertificatesrdquoinOpsManager

GemFireupgradedtov8205

copyCopyrightPivotalSoftwareInc2013-2018 9 17

Drainscriptimprovements

BettererrorreportingforserviceinstanceallocationfailuresInsteadofreturningldquoThemaximumnumberofServiceInstancesalreadyexistrdquomessageforallfailuresduringaserviceinstanceallocationeachdifferenttypeoffailurereturnsadescriptiveerrormessage

Stemcell3144

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartofanupgradeThisproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofanupgradeanewVMhasbeencreatedwiththesameIPbutwithadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

v1110

ReleaseDate5thNovember2015

NewinthisRelease

SupportforOpsManagerv16andElasticRuntimev16ThisreleasedoesnotworkwiththepreviousreleasesofOpsManagerandElasticRuntime

Stemcell3100

KnownIssuesandLimitations

SeeKnownIssuesandLimitationsforv1100below

v1100

ReleaseDate22ndSeptember2015

NewinthisRelease

UpgradedPivotalGemFiretov82

UpgradedJavatov8andJREv18

Spring-relatedenhancements

SupportfordeployingaSpringXMLconfigurationandapplicationcodetoGemFireserviceinstances

IfyouuseSpringldquoallthewayrdquoyoucandosowithGemFireserviceinstancesaswellThereisnoneedtotranslatetheSpringconfigurationtoGemFireXMLSpringsupportisprovidedusingconfigurationoptionsoftheGemFireforPCFCLIplug-incommand cf restart-gemfire

SupportforusingSSLencryptiontoaccessGemFireServiceInstancesfromoutsideofPCF

GemFirePulseisnowaccessibleviaHTTPSGemFireRESTclientscanbeconfiguredtoaccessaserviceinstancersquosRESTAPIendpointviaHTTPSYoucanconfiguretheGemFireshell(gfsh)toaccessaserviceinstanceoverHTTPS

Additionalfixesandimprovements

DrainscriptimprovementsImprovedhandlingofself-signedcertificatesYAMLsyntaxvalidationforclusterpropertiesthatareprovidedviathe --properties optionofthe cf restart-gemfire CLIcommand

Stemcell3062

copyCopyrightPivotalSoftwareInc2013-2018 10 17

SupportfortheexperimentalfeatureHTTPStraffictoUAA

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartoftheupgradeTheproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofupgradeanewVMhasbeencreatedwiththesameIPbutadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

v1000

ReleaseDate10August2015

KnownIssuesandLimitations

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

copyCopyrightPivotalSoftwareInc2013-2018 11 17

OverviewGemFireforPivotalCloudFoundry (PCF)enablesyoutoeasilyconfigureandprovisioncompletePivotalGemFireclientserverclustersusingPivotalCloudFoundryACloudFoundryAdministratorcaneasilyconfigurethreedifferenttypesofGemFireclusters(serviceplans)usingdifferentnumbersoflocatorsandserversaswellasdifferentresourcesperclusternodeforeachserviceplanEachserviceplaninstanceusesGemFirebestpracticestoautomaticallyconfigureJVMresourceutilizationandgarbagecollectionsettingstakingintoconsiderationtheresourcesavailableontheclusternodeServiceinstancesarededicatednotmultitenantbydefaultbuttheycanbeusedbydifferentapplicationsifdesiredAllocatingaserviceinstanceprovisionsaGemFireclusterfromthepoolofavailableunallocatedGemFireclustersthatwereinstantiatedduringthetileinstallationGemFireprocesseslocatorsandserversrunindedicatedVMs

PivotalprovidestheGemFirePulseWebapplicationgfshcommand-lineutilitytohelpyoumonitormanagetheserviceinstancesthatyoudeployInadditionPivotalprovidesaCloudFoundryCLIplug-inthatdeveloperscanusetoperformthemostcommonGemFireclustermanagementoperationssuchas

Restartingthecluster

Downloadingclusterconfigurationfileslogfilesorstatistics

Uploadingcustomclusterconfigurations

FinallyGemFireforPivotalCloudFoundryprovidesacustomrestURLtohelpyoueasilyusetheGemFireRESTAPIwithaboundserviceinstanceRequeststotheURLautomaticallyround-robintoavailablecacheserverssothereisnoneedtoassociateRESTrequestswithaspecificserver

HowDoestheServiceWork

PCFAdministratorWorkflowThefollowingdiagramdepictsthehigh-levelworkflowfordeployingtheGemFireservice

Figure1InstallingandConfiguringtheService

copyCopyrightPivotalSoftwareInc2013-2018 12 17

1 PivotalCloudFoundryAdministratorimportstheGemFireserviceproductfileintoPivotalCloudFoundryOperationsManager

2 WhenaPivotalCloudFoundryAdministratorconfigurestheGemFireserviceforthefirsttimetheydefinethenumberofdiscreteserviceinstancesforeachGemFireServicePlanAserviceinstanceisaGemFireclusterGemFireforPivotalCloudFoundryenablesyoutoconfigureinstancesforthreedifferentGemFireclusterconfigurationswhereeachinstancecanprovideadifferentnumberoflocatorsandcacheserversaswellasmemoryanddiskspaceresources

3 AftermakingtheirconfigurationchoicesthePivotalCloudFoundryAdministratordeploystheservicecausingPivotalCloudFoundryOpsManagertocreateandsetuptheappropriatesetofvirtualmachines

4 OperationsManagerdeploysavirtualmachinetoruntheGemFireServiceBrokerwhichisresponsibleforallocatingGemFireClusterserviceinstancestoPivotalCloudFoundryusersandforpassingrelevantinformationintotheapplicationsthatareboundtoeachserviceinstance

5 OperationsManageralsodeploysthespecifiednumberofGemFireserviceinstances(clusters)asconfiguredbytheadministratorLastlythereareafewtemporaryVMsusedforinstallanduninstallerrands

AftertheservicehasbeendeployedinOperationsManageritisreadyforusebyapplicationdevelopersintheElasticRuntimeenvironmentThefollowingdiagramdepictsthehigh-levelworkflowthatanapplicationdeveloperwouldusetoconsumetheservice

PCFDeveloper(ServiceUser)WorkflowFigure2UsingtheService

copyCopyrightPivotalSoftwareInc2013-2018 13 17

1 PivotalCloudFoundryDeveloperusestheCLIorDeveloperConsoletocreateaGemFireserviceinstanceintheElasticRuntimespacewheretheyarepushingtherelevantapplications

2 CreatingaserviceinstancecausesElasticRuntimetocontacttheGemFireServiceBrokerwhichallocatesoneun-allocatedGemFireclusterofdedicatedvirtualmachinestotheGemFireserviceinstanceIntheresponsetoElasticRuntimetheServiceBrokerincludestheURLtoreachtheGemFirePulsemonitoringtoolfortheserviceinstanceTheElasticRuntimeexposesthisURLintheDeveloperConsolersquosmetadatafortheserviceinstance

3 PivotalCloudFoundryDeveloperpushestheirapplicationtoElasticRuntime

4 PivotalCloudFoundryDeveloperbindstheirapplicationtotheGemFireserviceinstanceTheGemFireServiceBrokerpopulatestheapplicationrsquosVCAP_SERVICESenvironmentvariablewiththemetadatarequiredtoaccesstheGemFireserviceinstancersquoslocatorsandcacheservers

5 PivotalCloudFoundrydevelopercanconfiguremonitorandmanagetheclusterusingPulseandortheGemFireforPivotalCloudFoundryCLIplug-in

AdditionalResourcesPivotalGemFireProductDocumentation

PivotalGemFireCommunityForum

PivotalGemFireKnowledgeBase

PivotalCloudFoundryDocumentation

copyCopyrightPivotalSoftwareInc2013-2018 14 17

InstallingGemFireforPivotalCloudFoundryPrerequisites

ServiceConfigurationDefaults

InstallationSteps

CreatingGemFireServicePlans

ApplicationSecurityGroups

PrerequisitesBeforeyoubeginyourGemFireforPivotalCloudFoundry (PCF)deploymentyoursystemneedstomeetthefollowingminimumrequirements

PivotalCloudFoundryOpsManagerforvSphereorPivotalCloudFoundryOpsManagerforvCloudAirorvCloudDirectororPivotalCloudFoundryOpsManagerforAWS

IPSec(optional)IfyouwishtouseIPSecinyourPivotalGemFireinstallationpleaseensureyouhavetheIPSecBOSHreleasedeployedbeforeinstallingtheElasticRuntimeandGemFiretileForinstructionsondeployingtheIPSecBOSHreleaseseetheinstructionshere

PivotalCloudFoundryElasticRuntime

NetworkaccessandcredentialsforthePivotalCloudFoundryOpsManagerWebConsole

CapacityinthevSphereclusterforserviceinstancesyouwanttodeployBydefaulttheGemFireserviceconfiguresthreedifferentGemFireserviceplansEachplandeploystheminimumof2locatorsbutdeploy35and7GemFirecacheserversrespectivelySeveralsupportingVMsarealsorequiredforservicedeploymentTheresourceallocationsforthedefaultGemFireserviceplaninstancesandcomponentsareasfollows

Table1DefaultResourceRequirementsforaGemFireServiceInstances

Service VirtualMachines CPU RAM(MB) EphemeralDisk(MB) PersistentDisk(MB)

GemFirelocator(Plan1)

2 1 1024 2048 1024

GemFirelocator(Plan2)

2 1 1024 2048 1024

GemFirelocator(Plan3)

2 1 1024 2048 1024

GemFireServer(Plan1)

3 2 4096 6144 8192

GemFireServer(Plan2)

3 2 4096 6144 8192

GemFireServer(Plan3)

3 2 4096 6144 8192

GemFireBroker 1 2 4096 4096 4096

BrokerRegistrar 1 1 2048 2048 0

BrokerDeregistrar 1 1 2048 2048 0

ClusterSmokeTest 1 1 512 2048 0

ClusterAgentSmokeTest

1 1 512 2048 0

ServiceOfferingSmokeTest

1 1 512 2048 0

Compilation 2 1 1024 4096 0

Totals 12 9 16384 24576 12800

RequiredforeachVM

ServiceConfigurationDefaults

copyCopyrightPivotalSoftwareInc2013-2018 15 17

TheGemFireforPivotalCloudFoundryserviceautomaticallyimplementsthebestpracticesanoperatorwouldnormallyemploywhendeployingGemFireTheseconfigurationsinclude

DynamicmemorymanagementDynamicallysettheJVMmaximumandminimummemoryutilizationforeachinstanceoftheGemFiresoftwareprocessbasedontheVMrsquostotalmemory

GarbagecollectionEnableandconfigurememorygarbagecollectionforeachinstanceoftheGemFiresoftwareprocess

LoggingconfigurationCreateandstorelogsattheconfigloglevelwithappropriatelimitationsonsizingandautomaticlogrotation

StatisticsmonitoringCreateandstorestatisticsfilesatasamplerateof1000whichcorrespondstoasamplingrateofoncepersecond

DataoverflowconfigurationOverflowdatatodiskwhencrossing70memoryutilization

MemoryoverutilizationprotectionPreventfurtherwritestomemorywhencrossing80memoryutilization

ClientauthenticationRequireclientstoauthenticatewhendirectlyaccessingcacheservers

Thedefaultconfigurationsettingscanbeadjustedifneededonaperserviceinstancebasis

InstallationSteps1 DownloadtheGemFireforPivotalCloudFoundrytilefromPivotalNetwork

2 UseaWebbrowsertologintothePivotalOpsManagerapplicationThePivotalCloudFoundryOpsManagerInstallationDashboarddisplays

3 ClickImportaProductTheAddProductsscreendisplays

4 ClickChooseFileandnavigatetothefileyoudownloadedThefileuploadstoyourPivotalCloudFoundrydeployment

5 ClickAddPivotalOpsManageraddsanewtileforGemFireforPivotalCloudFoundrytotheInstallationDashboard

Self-SignedandInternalSSLCertificatesInproductionenvironmentswerecommendthatyouuseanSSLcertificatesignedbyareputablecertificateauthority(CA)PleaseensureyourSSLcertificatehasalltheSubjectAlternativeNames(SANs)

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

IfyourcertificateissignedbyaknownauthorityandhasthecorrectSANspleasedisregardthissection

copyCopyrightPivotalSoftwareInc2013-2018 16 17

InternalCertificatesInthecaseofInternalCertificates(iecertificatessignedbyaninternalRootCA)youneedtoconfiguretheOpsManagerDirectortiletotrusttheinternalRootCAToachievethispleasefollowthestepsbelow

1 AddtheinternalRootCAistotheSecurityConfigsectionundertheOpsManagerDirectorTile

2 CopytheinternalcertificateandRootCA(certificatechain)totheElasticRuntimetilebynavigatingtoPivotalElasticRuntimegtNetworkinggtLoadBalancerwithTLSenabled(orHAProxy)

Self-SignedCertificatesWhenusingselfsignedcertificatesgeneratedbytheElasticRuntimeTileyouneedtoensurethatthiscertificateisprovidedtotheOpsManagerDirectorTile

GeneratingSelf-SignCertificatesusingtheElasticRuntimeTileTheElasticRuntimeTileallowsyoutogenerateself-signedcertificatesbynavigatingtoPivotalElasticRuntimegtNetworkinggtGenerateRSACertificatePleasespecifythefollowingwildcardsubdomains

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

OnceyouhavegeneratedyourcertificatecopythecertificatetotheOpsManagerDirectorTileandplaceitintheSecurityConfigsection

GeneratingSelf-SignedCertificatesusingOpenSSL1 TousetheOpenSSLCLIrunthefollowingcommands

a Generateaprivatekey openssl genrsa -des3 -out serverkey 1024b GenerateaCertificateSigningRequest(CSR)withthe subjectAltName entriesandeditthe subj flagasneeded

openssl req -new -key serverkey -out servercsr -subj C=USST=StateL=LocalityO=OrganizationOU=OrganizationUnitCN=wwwexamplecomemailAddress=exampleexamplecomsubjectAltName=DNS1=systemexamplecomDNS2=appsexamplecomDNS3=uaasystemexamplecomDNS4=loginsystemexamplecom

c RemovePassphrasefromKey cp serverkey serverkeyorg openssl rsa -in serverkeyorg -out serverkeyd GenerateaSelf-SignedCertificate openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt

2 UploadtheSSLcertificatetoyourloadbalancerInstructionsforAWS

a AuthenticatewiththeAWSCLI$ aws configure AWS Access Key ID [None] ltACCESS KEY GOES HEREgt AWS Secret Access Key [None] ltSECRET ACCESS KEY GOESHEREgt Default region name [None] us-east-1 Default output format [None] ENTER

b Uploadyourself-signedcertificateinIAMaws iam upload-server-certificate --server-certificate-name ltNAME OF CERTIFICATEgt --certificate-bodyfileservercrt --private-key fileserverkey

c Uploadyourself-signedcertificatetoyourElasticLoadBalancer(ELB)aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name ltELB NAMEgt --load-balancer-port ltPORTgt --ssl-certificate-id arnawsiamltIAM NUMBERgtserver-certificateltNAME OF CERTIFICATEgt

3 AddtheSSLcertificateasatrustedcertificatetoyourOpsManager-deployedVMs

a InOpsManagerontheDirectorTileundertheSecuritysectionpastethecertificateandsave

copyCopyrightPivotalSoftwareInc2013-2018 17 17

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 10: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

Drainscriptimprovements

BettererrorreportingforserviceinstanceallocationfailuresInsteadofreturningldquoThemaximumnumberofServiceInstancesalreadyexistrdquomessageforallfailuresduringaserviceinstanceallocationeachdifferenttypeoffailurereturnsadescriptiveerrormessage

Stemcell3144

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartofanupgradeThisproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofanupgradeanewVMhasbeencreatedwiththesameIPbutwithadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

v1110

ReleaseDate5thNovember2015

NewinthisRelease

SupportforOpsManagerv16andElasticRuntimev16ThisreleasedoesnotworkwiththepreviousreleasesofOpsManagerandElasticRuntime

Stemcell3100

KnownIssuesandLimitations

SeeKnownIssuesandLimitationsforv1100below

v1100

ReleaseDate22ndSeptember2015

NewinthisRelease

UpgradedPivotalGemFiretov82

UpgradedJavatov8andJREv18

Spring-relatedenhancements

SupportfordeployingaSpringXMLconfigurationandapplicationcodetoGemFireserviceinstances

IfyouuseSpringldquoallthewayrdquoyoucandosowithGemFireserviceinstancesaswellThereisnoneedtotranslatetheSpringconfigurationtoGemFireXMLSpringsupportisprovidedusingconfigurationoptionsoftheGemFireforPCFCLIplug-incommand cf restart-gemfire

SupportforusingSSLencryptiontoaccessGemFireServiceInstancesfromoutsideofPCF

GemFirePulseisnowaccessibleviaHTTPSGemFireRESTclientscanbeconfiguredtoaccessaserviceinstancersquosRESTAPIendpointviaHTTPSYoucanconfiguretheGemFireshell(gfsh)toaccessaserviceinstanceoverHTTPS

Additionalfixesandimprovements

DrainscriptimprovementsImprovedhandlingofself-signedcertificatesYAMLsyntaxvalidationforclusterpropertiesthatareprovidedviathe --properties optionofthe cf restart-gemfire CLIcommand

Stemcell3062

copyCopyrightPivotalSoftwareInc2013-2018 10 17

SupportfortheexperimentalfeatureHTTPStraffictoUAA

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartoftheupgradeTheproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofupgradeanewVMhasbeencreatedwiththesameIPbutadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

v1000

ReleaseDate10August2015

KnownIssuesandLimitations

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

copyCopyrightPivotalSoftwareInc2013-2018 11 17

OverviewGemFireforPivotalCloudFoundry (PCF)enablesyoutoeasilyconfigureandprovisioncompletePivotalGemFireclientserverclustersusingPivotalCloudFoundryACloudFoundryAdministratorcaneasilyconfigurethreedifferenttypesofGemFireclusters(serviceplans)usingdifferentnumbersoflocatorsandserversaswellasdifferentresourcesperclusternodeforeachserviceplanEachserviceplaninstanceusesGemFirebestpracticestoautomaticallyconfigureJVMresourceutilizationandgarbagecollectionsettingstakingintoconsiderationtheresourcesavailableontheclusternodeServiceinstancesarededicatednotmultitenantbydefaultbuttheycanbeusedbydifferentapplicationsifdesiredAllocatingaserviceinstanceprovisionsaGemFireclusterfromthepoolofavailableunallocatedGemFireclustersthatwereinstantiatedduringthetileinstallationGemFireprocesseslocatorsandserversrunindedicatedVMs

PivotalprovidestheGemFirePulseWebapplicationgfshcommand-lineutilitytohelpyoumonitormanagetheserviceinstancesthatyoudeployInadditionPivotalprovidesaCloudFoundryCLIplug-inthatdeveloperscanusetoperformthemostcommonGemFireclustermanagementoperationssuchas

Restartingthecluster

Downloadingclusterconfigurationfileslogfilesorstatistics

Uploadingcustomclusterconfigurations

FinallyGemFireforPivotalCloudFoundryprovidesacustomrestURLtohelpyoueasilyusetheGemFireRESTAPIwithaboundserviceinstanceRequeststotheURLautomaticallyround-robintoavailablecacheserverssothereisnoneedtoassociateRESTrequestswithaspecificserver

HowDoestheServiceWork

PCFAdministratorWorkflowThefollowingdiagramdepictsthehigh-levelworkflowfordeployingtheGemFireservice

Figure1InstallingandConfiguringtheService

copyCopyrightPivotalSoftwareInc2013-2018 12 17

1 PivotalCloudFoundryAdministratorimportstheGemFireserviceproductfileintoPivotalCloudFoundryOperationsManager

2 WhenaPivotalCloudFoundryAdministratorconfigurestheGemFireserviceforthefirsttimetheydefinethenumberofdiscreteserviceinstancesforeachGemFireServicePlanAserviceinstanceisaGemFireclusterGemFireforPivotalCloudFoundryenablesyoutoconfigureinstancesforthreedifferentGemFireclusterconfigurationswhereeachinstancecanprovideadifferentnumberoflocatorsandcacheserversaswellasmemoryanddiskspaceresources

3 AftermakingtheirconfigurationchoicesthePivotalCloudFoundryAdministratordeploystheservicecausingPivotalCloudFoundryOpsManagertocreateandsetuptheappropriatesetofvirtualmachines

4 OperationsManagerdeploysavirtualmachinetoruntheGemFireServiceBrokerwhichisresponsibleforallocatingGemFireClusterserviceinstancestoPivotalCloudFoundryusersandforpassingrelevantinformationintotheapplicationsthatareboundtoeachserviceinstance

5 OperationsManageralsodeploysthespecifiednumberofGemFireserviceinstances(clusters)asconfiguredbytheadministratorLastlythereareafewtemporaryVMsusedforinstallanduninstallerrands

AftertheservicehasbeendeployedinOperationsManageritisreadyforusebyapplicationdevelopersintheElasticRuntimeenvironmentThefollowingdiagramdepictsthehigh-levelworkflowthatanapplicationdeveloperwouldusetoconsumetheservice

PCFDeveloper(ServiceUser)WorkflowFigure2UsingtheService

copyCopyrightPivotalSoftwareInc2013-2018 13 17

1 PivotalCloudFoundryDeveloperusestheCLIorDeveloperConsoletocreateaGemFireserviceinstanceintheElasticRuntimespacewheretheyarepushingtherelevantapplications

2 CreatingaserviceinstancecausesElasticRuntimetocontacttheGemFireServiceBrokerwhichallocatesoneun-allocatedGemFireclusterofdedicatedvirtualmachinestotheGemFireserviceinstanceIntheresponsetoElasticRuntimetheServiceBrokerincludestheURLtoreachtheGemFirePulsemonitoringtoolfortheserviceinstanceTheElasticRuntimeexposesthisURLintheDeveloperConsolersquosmetadatafortheserviceinstance

3 PivotalCloudFoundryDeveloperpushestheirapplicationtoElasticRuntime

4 PivotalCloudFoundryDeveloperbindstheirapplicationtotheGemFireserviceinstanceTheGemFireServiceBrokerpopulatestheapplicationrsquosVCAP_SERVICESenvironmentvariablewiththemetadatarequiredtoaccesstheGemFireserviceinstancersquoslocatorsandcacheservers

5 PivotalCloudFoundrydevelopercanconfiguremonitorandmanagetheclusterusingPulseandortheGemFireforPivotalCloudFoundryCLIplug-in

AdditionalResourcesPivotalGemFireProductDocumentation

PivotalGemFireCommunityForum

PivotalGemFireKnowledgeBase

PivotalCloudFoundryDocumentation

copyCopyrightPivotalSoftwareInc2013-2018 14 17

InstallingGemFireforPivotalCloudFoundryPrerequisites

ServiceConfigurationDefaults

InstallationSteps

CreatingGemFireServicePlans

ApplicationSecurityGroups

PrerequisitesBeforeyoubeginyourGemFireforPivotalCloudFoundry (PCF)deploymentyoursystemneedstomeetthefollowingminimumrequirements

PivotalCloudFoundryOpsManagerforvSphereorPivotalCloudFoundryOpsManagerforvCloudAirorvCloudDirectororPivotalCloudFoundryOpsManagerforAWS

IPSec(optional)IfyouwishtouseIPSecinyourPivotalGemFireinstallationpleaseensureyouhavetheIPSecBOSHreleasedeployedbeforeinstallingtheElasticRuntimeandGemFiretileForinstructionsondeployingtheIPSecBOSHreleaseseetheinstructionshere

PivotalCloudFoundryElasticRuntime

NetworkaccessandcredentialsforthePivotalCloudFoundryOpsManagerWebConsole

CapacityinthevSphereclusterforserviceinstancesyouwanttodeployBydefaulttheGemFireserviceconfiguresthreedifferentGemFireserviceplansEachplandeploystheminimumof2locatorsbutdeploy35and7GemFirecacheserversrespectivelySeveralsupportingVMsarealsorequiredforservicedeploymentTheresourceallocationsforthedefaultGemFireserviceplaninstancesandcomponentsareasfollows

Table1DefaultResourceRequirementsforaGemFireServiceInstances

Service VirtualMachines CPU RAM(MB) EphemeralDisk(MB) PersistentDisk(MB)

GemFirelocator(Plan1)

2 1 1024 2048 1024

GemFirelocator(Plan2)

2 1 1024 2048 1024

GemFirelocator(Plan3)

2 1 1024 2048 1024

GemFireServer(Plan1)

3 2 4096 6144 8192

GemFireServer(Plan2)

3 2 4096 6144 8192

GemFireServer(Plan3)

3 2 4096 6144 8192

GemFireBroker 1 2 4096 4096 4096

BrokerRegistrar 1 1 2048 2048 0

BrokerDeregistrar 1 1 2048 2048 0

ClusterSmokeTest 1 1 512 2048 0

ClusterAgentSmokeTest

1 1 512 2048 0

ServiceOfferingSmokeTest

1 1 512 2048 0

Compilation 2 1 1024 4096 0

Totals 12 9 16384 24576 12800

RequiredforeachVM

ServiceConfigurationDefaults

copyCopyrightPivotalSoftwareInc2013-2018 15 17

TheGemFireforPivotalCloudFoundryserviceautomaticallyimplementsthebestpracticesanoperatorwouldnormallyemploywhendeployingGemFireTheseconfigurationsinclude

DynamicmemorymanagementDynamicallysettheJVMmaximumandminimummemoryutilizationforeachinstanceoftheGemFiresoftwareprocessbasedontheVMrsquostotalmemory

GarbagecollectionEnableandconfigurememorygarbagecollectionforeachinstanceoftheGemFiresoftwareprocess

LoggingconfigurationCreateandstorelogsattheconfigloglevelwithappropriatelimitationsonsizingandautomaticlogrotation

StatisticsmonitoringCreateandstorestatisticsfilesatasamplerateof1000whichcorrespondstoasamplingrateofoncepersecond

DataoverflowconfigurationOverflowdatatodiskwhencrossing70memoryutilization

MemoryoverutilizationprotectionPreventfurtherwritestomemorywhencrossing80memoryutilization

ClientauthenticationRequireclientstoauthenticatewhendirectlyaccessingcacheservers

Thedefaultconfigurationsettingscanbeadjustedifneededonaperserviceinstancebasis

InstallationSteps1 DownloadtheGemFireforPivotalCloudFoundrytilefromPivotalNetwork

2 UseaWebbrowsertologintothePivotalOpsManagerapplicationThePivotalCloudFoundryOpsManagerInstallationDashboarddisplays

3 ClickImportaProductTheAddProductsscreendisplays

4 ClickChooseFileandnavigatetothefileyoudownloadedThefileuploadstoyourPivotalCloudFoundrydeployment

5 ClickAddPivotalOpsManageraddsanewtileforGemFireforPivotalCloudFoundrytotheInstallationDashboard

Self-SignedandInternalSSLCertificatesInproductionenvironmentswerecommendthatyouuseanSSLcertificatesignedbyareputablecertificateauthority(CA)PleaseensureyourSSLcertificatehasalltheSubjectAlternativeNames(SANs)

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

IfyourcertificateissignedbyaknownauthorityandhasthecorrectSANspleasedisregardthissection

copyCopyrightPivotalSoftwareInc2013-2018 16 17

InternalCertificatesInthecaseofInternalCertificates(iecertificatessignedbyaninternalRootCA)youneedtoconfiguretheOpsManagerDirectortiletotrusttheinternalRootCAToachievethispleasefollowthestepsbelow

1 AddtheinternalRootCAistotheSecurityConfigsectionundertheOpsManagerDirectorTile

2 CopytheinternalcertificateandRootCA(certificatechain)totheElasticRuntimetilebynavigatingtoPivotalElasticRuntimegtNetworkinggtLoadBalancerwithTLSenabled(orHAProxy)

Self-SignedCertificatesWhenusingselfsignedcertificatesgeneratedbytheElasticRuntimeTileyouneedtoensurethatthiscertificateisprovidedtotheOpsManagerDirectorTile

GeneratingSelf-SignCertificatesusingtheElasticRuntimeTileTheElasticRuntimeTileallowsyoutogenerateself-signedcertificatesbynavigatingtoPivotalElasticRuntimegtNetworkinggtGenerateRSACertificatePleasespecifythefollowingwildcardsubdomains

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

OnceyouhavegeneratedyourcertificatecopythecertificatetotheOpsManagerDirectorTileandplaceitintheSecurityConfigsection

GeneratingSelf-SignedCertificatesusingOpenSSL1 TousetheOpenSSLCLIrunthefollowingcommands

a Generateaprivatekey openssl genrsa -des3 -out serverkey 1024b GenerateaCertificateSigningRequest(CSR)withthe subjectAltName entriesandeditthe subj flagasneeded

openssl req -new -key serverkey -out servercsr -subj C=USST=StateL=LocalityO=OrganizationOU=OrganizationUnitCN=wwwexamplecomemailAddress=exampleexamplecomsubjectAltName=DNS1=systemexamplecomDNS2=appsexamplecomDNS3=uaasystemexamplecomDNS4=loginsystemexamplecom

c RemovePassphrasefromKey cp serverkey serverkeyorg openssl rsa -in serverkeyorg -out serverkeyd GenerateaSelf-SignedCertificate openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt

2 UploadtheSSLcertificatetoyourloadbalancerInstructionsforAWS

a AuthenticatewiththeAWSCLI$ aws configure AWS Access Key ID [None] ltACCESS KEY GOES HEREgt AWS Secret Access Key [None] ltSECRET ACCESS KEY GOESHEREgt Default region name [None] us-east-1 Default output format [None] ENTER

b Uploadyourself-signedcertificateinIAMaws iam upload-server-certificate --server-certificate-name ltNAME OF CERTIFICATEgt --certificate-bodyfileservercrt --private-key fileserverkey

c Uploadyourself-signedcertificatetoyourElasticLoadBalancer(ELB)aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name ltELB NAMEgt --load-balancer-port ltPORTgt --ssl-certificate-id arnawsiamltIAM NUMBERgtserver-certificateltNAME OF CERTIFICATEgt

3 AddtheSSLcertificateasatrustedcertificatetoyourOpsManager-deployedVMs

a InOpsManagerontheDirectorTileundertheSecuritysectionpastethecertificateandsave

copyCopyrightPivotalSoftwareInc2013-2018 17 17

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 11: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

SupportfortheexperimentalfeatureHTTPStraffictoUAA

KnownIssuesandLimitations

UpgradingtheGemFiretileonAWScanfailwhenthestemcellischangingaspartoftheupgradeTheproblemusuallymanifestsitselfduringtheinstallprocessrsquosmoketesterrandTheissueariseswhenaspartofupgradeanewVMhasbeencreatedwiththesameIPbutadifferentMACaddressBecauseAWSsuppressesunsolicitedARPsothermembersmaynotknowthattheirARPcachehasbecomeinvalid

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

v1000

ReleaseDate10August2015

KnownIssuesandLimitations

TheservicesupportsonlyasinglePCFavailabilityzone AlthoughtheserviceenablesGemFireHAfeaturessuchasredundancyandpersistenceafailureofthetargetedavailabilityzonecanresultinthelossofGemFireregiondataNoteIfthereismorethanoneavailablezoneyoumayseedeploymentfailuresorunevensizedclusters

TheexperimentalHTTPS-onlyfeatureinElasticRuntimev15isnotsupportedandmaycauseissueswiththisversionoftheproductPivotalisworkingtoprovidefullsupportforHTTPS-onlytrafficinafuturerelease

ElasticscalingisnotsupportedYoucannotchangethenumberofcacheserversandlocatorsinaserviceplanwithoutdestroyingandrecreatingthecurrentserviceplaninstances

Ifyoudeploytheserviceandthensubsequentlyreducethenumberofclustersallallocatedinstancesaredestroyed

GemFireWANreplicationisnotsupported

copyCopyrightPivotalSoftwareInc2013-2018 11 17

OverviewGemFireforPivotalCloudFoundry (PCF)enablesyoutoeasilyconfigureandprovisioncompletePivotalGemFireclientserverclustersusingPivotalCloudFoundryACloudFoundryAdministratorcaneasilyconfigurethreedifferenttypesofGemFireclusters(serviceplans)usingdifferentnumbersoflocatorsandserversaswellasdifferentresourcesperclusternodeforeachserviceplanEachserviceplaninstanceusesGemFirebestpracticestoautomaticallyconfigureJVMresourceutilizationandgarbagecollectionsettingstakingintoconsiderationtheresourcesavailableontheclusternodeServiceinstancesarededicatednotmultitenantbydefaultbuttheycanbeusedbydifferentapplicationsifdesiredAllocatingaserviceinstanceprovisionsaGemFireclusterfromthepoolofavailableunallocatedGemFireclustersthatwereinstantiatedduringthetileinstallationGemFireprocesseslocatorsandserversrunindedicatedVMs

PivotalprovidestheGemFirePulseWebapplicationgfshcommand-lineutilitytohelpyoumonitormanagetheserviceinstancesthatyoudeployInadditionPivotalprovidesaCloudFoundryCLIplug-inthatdeveloperscanusetoperformthemostcommonGemFireclustermanagementoperationssuchas

Restartingthecluster

Downloadingclusterconfigurationfileslogfilesorstatistics

Uploadingcustomclusterconfigurations

FinallyGemFireforPivotalCloudFoundryprovidesacustomrestURLtohelpyoueasilyusetheGemFireRESTAPIwithaboundserviceinstanceRequeststotheURLautomaticallyround-robintoavailablecacheserverssothereisnoneedtoassociateRESTrequestswithaspecificserver

HowDoestheServiceWork

PCFAdministratorWorkflowThefollowingdiagramdepictsthehigh-levelworkflowfordeployingtheGemFireservice

Figure1InstallingandConfiguringtheService

copyCopyrightPivotalSoftwareInc2013-2018 12 17

1 PivotalCloudFoundryAdministratorimportstheGemFireserviceproductfileintoPivotalCloudFoundryOperationsManager

2 WhenaPivotalCloudFoundryAdministratorconfigurestheGemFireserviceforthefirsttimetheydefinethenumberofdiscreteserviceinstancesforeachGemFireServicePlanAserviceinstanceisaGemFireclusterGemFireforPivotalCloudFoundryenablesyoutoconfigureinstancesforthreedifferentGemFireclusterconfigurationswhereeachinstancecanprovideadifferentnumberoflocatorsandcacheserversaswellasmemoryanddiskspaceresources

3 AftermakingtheirconfigurationchoicesthePivotalCloudFoundryAdministratordeploystheservicecausingPivotalCloudFoundryOpsManagertocreateandsetuptheappropriatesetofvirtualmachines

4 OperationsManagerdeploysavirtualmachinetoruntheGemFireServiceBrokerwhichisresponsibleforallocatingGemFireClusterserviceinstancestoPivotalCloudFoundryusersandforpassingrelevantinformationintotheapplicationsthatareboundtoeachserviceinstance

5 OperationsManageralsodeploysthespecifiednumberofGemFireserviceinstances(clusters)asconfiguredbytheadministratorLastlythereareafewtemporaryVMsusedforinstallanduninstallerrands

AftertheservicehasbeendeployedinOperationsManageritisreadyforusebyapplicationdevelopersintheElasticRuntimeenvironmentThefollowingdiagramdepictsthehigh-levelworkflowthatanapplicationdeveloperwouldusetoconsumetheservice

PCFDeveloper(ServiceUser)WorkflowFigure2UsingtheService

copyCopyrightPivotalSoftwareInc2013-2018 13 17

1 PivotalCloudFoundryDeveloperusestheCLIorDeveloperConsoletocreateaGemFireserviceinstanceintheElasticRuntimespacewheretheyarepushingtherelevantapplications

2 CreatingaserviceinstancecausesElasticRuntimetocontacttheGemFireServiceBrokerwhichallocatesoneun-allocatedGemFireclusterofdedicatedvirtualmachinestotheGemFireserviceinstanceIntheresponsetoElasticRuntimetheServiceBrokerincludestheURLtoreachtheGemFirePulsemonitoringtoolfortheserviceinstanceTheElasticRuntimeexposesthisURLintheDeveloperConsolersquosmetadatafortheserviceinstance

3 PivotalCloudFoundryDeveloperpushestheirapplicationtoElasticRuntime

4 PivotalCloudFoundryDeveloperbindstheirapplicationtotheGemFireserviceinstanceTheGemFireServiceBrokerpopulatestheapplicationrsquosVCAP_SERVICESenvironmentvariablewiththemetadatarequiredtoaccesstheGemFireserviceinstancersquoslocatorsandcacheservers

5 PivotalCloudFoundrydevelopercanconfiguremonitorandmanagetheclusterusingPulseandortheGemFireforPivotalCloudFoundryCLIplug-in

AdditionalResourcesPivotalGemFireProductDocumentation

PivotalGemFireCommunityForum

PivotalGemFireKnowledgeBase

PivotalCloudFoundryDocumentation

copyCopyrightPivotalSoftwareInc2013-2018 14 17

InstallingGemFireforPivotalCloudFoundryPrerequisites

ServiceConfigurationDefaults

InstallationSteps

CreatingGemFireServicePlans

ApplicationSecurityGroups

PrerequisitesBeforeyoubeginyourGemFireforPivotalCloudFoundry (PCF)deploymentyoursystemneedstomeetthefollowingminimumrequirements

PivotalCloudFoundryOpsManagerforvSphereorPivotalCloudFoundryOpsManagerforvCloudAirorvCloudDirectororPivotalCloudFoundryOpsManagerforAWS

IPSec(optional)IfyouwishtouseIPSecinyourPivotalGemFireinstallationpleaseensureyouhavetheIPSecBOSHreleasedeployedbeforeinstallingtheElasticRuntimeandGemFiretileForinstructionsondeployingtheIPSecBOSHreleaseseetheinstructionshere

PivotalCloudFoundryElasticRuntime

NetworkaccessandcredentialsforthePivotalCloudFoundryOpsManagerWebConsole

CapacityinthevSphereclusterforserviceinstancesyouwanttodeployBydefaulttheGemFireserviceconfiguresthreedifferentGemFireserviceplansEachplandeploystheminimumof2locatorsbutdeploy35and7GemFirecacheserversrespectivelySeveralsupportingVMsarealsorequiredforservicedeploymentTheresourceallocationsforthedefaultGemFireserviceplaninstancesandcomponentsareasfollows

Table1DefaultResourceRequirementsforaGemFireServiceInstances

Service VirtualMachines CPU RAM(MB) EphemeralDisk(MB) PersistentDisk(MB)

GemFirelocator(Plan1)

2 1 1024 2048 1024

GemFirelocator(Plan2)

2 1 1024 2048 1024

GemFirelocator(Plan3)

2 1 1024 2048 1024

GemFireServer(Plan1)

3 2 4096 6144 8192

GemFireServer(Plan2)

3 2 4096 6144 8192

GemFireServer(Plan3)

3 2 4096 6144 8192

GemFireBroker 1 2 4096 4096 4096

BrokerRegistrar 1 1 2048 2048 0

BrokerDeregistrar 1 1 2048 2048 0

ClusterSmokeTest 1 1 512 2048 0

ClusterAgentSmokeTest

1 1 512 2048 0

ServiceOfferingSmokeTest

1 1 512 2048 0

Compilation 2 1 1024 4096 0

Totals 12 9 16384 24576 12800

RequiredforeachVM

ServiceConfigurationDefaults

copyCopyrightPivotalSoftwareInc2013-2018 15 17

TheGemFireforPivotalCloudFoundryserviceautomaticallyimplementsthebestpracticesanoperatorwouldnormallyemploywhendeployingGemFireTheseconfigurationsinclude

DynamicmemorymanagementDynamicallysettheJVMmaximumandminimummemoryutilizationforeachinstanceoftheGemFiresoftwareprocessbasedontheVMrsquostotalmemory

GarbagecollectionEnableandconfigurememorygarbagecollectionforeachinstanceoftheGemFiresoftwareprocess

LoggingconfigurationCreateandstorelogsattheconfigloglevelwithappropriatelimitationsonsizingandautomaticlogrotation

StatisticsmonitoringCreateandstorestatisticsfilesatasamplerateof1000whichcorrespondstoasamplingrateofoncepersecond

DataoverflowconfigurationOverflowdatatodiskwhencrossing70memoryutilization

MemoryoverutilizationprotectionPreventfurtherwritestomemorywhencrossing80memoryutilization

ClientauthenticationRequireclientstoauthenticatewhendirectlyaccessingcacheservers

Thedefaultconfigurationsettingscanbeadjustedifneededonaperserviceinstancebasis

InstallationSteps1 DownloadtheGemFireforPivotalCloudFoundrytilefromPivotalNetwork

2 UseaWebbrowsertologintothePivotalOpsManagerapplicationThePivotalCloudFoundryOpsManagerInstallationDashboarddisplays

3 ClickImportaProductTheAddProductsscreendisplays

4 ClickChooseFileandnavigatetothefileyoudownloadedThefileuploadstoyourPivotalCloudFoundrydeployment

5 ClickAddPivotalOpsManageraddsanewtileforGemFireforPivotalCloudFoundrytotheInstallationDashboard

Self-SignedandInternalSSLCertificatesInproductionenvironmentswerecommendthatyouuseanSSLcertificatesignedbyareputablecertificateauthority(CA)PleaseensureyourSSLcertificatehasalltheSubjectAlternativeNames(SANs)

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

IfyourcertificateissignedbyaknownauthorityandhasthecorrectSANspleasedisregardthissection

copyCopyrightPivotalSoftwareInc2013-2018 16 17

InternalCertificatesInthecaseofInternalCertificates(iecertificatessignedbyaninternalRootCA)youneedtoconfiguretheOpsManagerDirectortiletotrusttheinternalRootCAToachievethispleasefollowthestepsbelow

1 AddtheinternalRootCAistotheSecurityConfigsectionundertheOpsManagerDirectorTile

2 CopytheinternalcertificateandRootCA(certificatechain)totheElasticRuntimetilebynavigatingtoPivotalElasticRuntimegtNetworkinggtLoadBalancerwithTLSenabled(orHAProxy)

Self-SignedCertificatesWhenusingselfsignedcertificatesgeneratedbytheElasticRuntimeTileyouneedtoensurethatthiscertificateisprovidedtotheOpsManagerDirectorTile

GeneratingSelf-SignCertificatesusingtheElasticRuntimeTileTheElasticRuntimeTileallowsyoutogenerateself-signedcertificatesbynavigatingtoPivotalElasticRuntimegtNetworkinggtGenerateRSACertificatePleasespecifythefollowingwildcardsubdomains

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

OnceyouhavegeneratedyourcertificatecopythecertificatetotheOpsManagerDirectorTileandplaceitintheSecurityConfigsection

GeneratingSelf-SignedCertificatesusingOpenSSL1 TousetheOpenSSLCLIrunthefollowingcommands

a Generateaprivatekey openssl genrsa -des3 -out serverkey 1024b GenerateaCertificateSigningRequest(CSR)withthe subjectAltName entriesandeditthe subj flagasneeded

openssl req -new -key serverkey -out servercsr -subj C=USST=StateL=LocalityO=OrganizationOU=OrganizationUnitCN=wwwexamplecomemailAddress=exampleexamplecomsubjectAltName=DNS1=systemexamplecomDNS2=appsexamplecomDNS3=uaasystemexamplecomDNS4=loginsystemexamplecom

c RemovePassphrasefromKey cp serverkey serverkeyorg openssl rsa -in serverkeyorg -out serverkeyd GenerateaSelf-SignedCertificate openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt

2 UploadtheSSLcertificatetoyourloadbalancerInstructionsforAWS

a AuthenticatewiththeAWSCLI$ aws configure AWS Access Key ID [None] ltACCESS KEY GOES HEREgt AWS Secret Access Key [None] ltSECRET ACCESS KEY GOESHEREgt Default region name [None] us-east-1 Default output format [None] ENTER

b Uploadyourself-signedcertificateinIAMaws iam upload-server-certificate --server-certificate-name ltNAME OF CERTIFICATEgt --certificate-bodyfileservercrt --private-key fileserverkey

c Uploadyourself-signedcertificatetoyourElasticLoadBalancer(ELB)aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name ltELB NAMEgt --load-balancer-port ltPORTgt --ssl-certificate-id arnawsiamltIAM NUMBERgtserver-certificateltNAME OF CERTIFICATEgt

3 AddtheSSLcertificateasatrustedcertificatetoyourOpsManager-deployedVMs

a InOpsManagerontheDirectorTileundertheSecuritysectionpastethecertificateandsave

copyCopyrightPivotalSoftwareInc2013-2018 17 17

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 12: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

OverviewGemFireforPivotalCloudFoundry (PCF)enablesyoutoeasilyconfigureandprovisioncompletePivotalGemFireclientserverclustersusingPivotalCloudFoundryACloudFoundryAdministratorcaneasilyconfigurethreedifferenttypesofGemFireclusters(serviceplans)usingdifferentnumbersoflocatorsandserversaswellasdifferentresourcesperclusternodeforeachserviceplanEachserviceplaninstanceusesGemFirebestpracticestoautomaticallyconfigureJVMresourceutilizationandgarbagecollectionsettingstakingintoconsiderationtheresourcesavailableontheclusternodeServiceinstancesarededicatednotmultitenantbydefaultbuttheycanbeusedbydifferentapplicationsifdesiredAllocatingaserviceinstanceprovisionsaGemFireclusterfromthepoolofavailableunallocatedGemFireclustersthatwereinstantiatedduringthetileinstallationGemFireprocesseslocatorsandserversrunindedicatedVMs

PivotalprovidestheGemFirePulseWebapplicationgfshcommand-lineutilitytohelpyoumonitormanagetheserviceinstancesthatyoudeployInadditionPivotalprovidesaCloudFoundryCLIplug-inthatdeveloperscanusetoperformthemostcommonGemFireclustermanagementoperationssuchas

Restartingthecluster

Downloadingclusterconfigurationfileslogfilesorstatistics

Uploadingcustomclusterconfigurations

FinallyGemFireforPivotalCloudFoundryprovidesacustomrestURLtohelpyoueasilyusetheGemFireRESTAPIwithaboundserviceinstanceRequeststotheURLautomaticallyround-robintoavailablecacheserverssothereisnoneedtoassociateRESTrequestswithaspecificserver

HowDoestheServiceWork

PCFAdministratorWorkflowThefollowingdiagramdepictsthehigh-levelworkflowfordeployingtheGemFireservice

Figure1InstallingandConfiguringtheService

copyCopyrightPivotalSoftwareInc2013-2018 12 17

1 PivotalCloudFoundryAdministratorimportstheGemFireserviceproductfileintoPivotalCloudFoundryOperationsManager

2 WhenaPivotalCloudFoundryAdministratorconfigurestheGemFireserviceforthefirsttimetheydefinethenumberofdiscreteserviceinstancesforeachGemFireServicePlanAserviceinstanceisaGemFireclusterGemFireforPivotalCloudFoundryenablesyoutoconfigureinstancesforthreedifferentGemFireclusterconfigurationswhereeachinstancecanprovideadifferentnumberoflocatorsandcacheserversaswellasmemoryanddiskspaceresources

3 AftermakingtheirconfigurationchoicesthePivotalCloudFoundryAdministratordeploystheservicecausingPivotalCloudFoundryOpsManagertocreateandsetuptheappropriatesetofvirtualmachines

4 OperationsManagerdeploysavirtualmachinetoruntheGemFireServiceBrokerwhichisresponsibleforallocatingGemFireClusterserviceinstancestoPivotalCloudFoundryusersandforpassingrelevantinformationintotheapplicationsthatareboundtoeachserviceinstance

5 OperationsManageralsodeploysthespecifiednumberofGemFireserviceinstances(clusters)asconfiguredbytheadministratorLastlythereareafewtemporaryVMsusedforinstallanduninstallerrands

AftertheservicehasbeendeployedinOperationsManageritisreadyforusebyapplicationdevelopersintheElasticRuntimeenvironmentThefollowingdiagramdepictsthehigh-levelworkflowthatanapplicationdeveloperwouldusetoconsumetheservice

PCFDeveloper(ServiceUser)WorkflowFigure2UsingtheService

copyCopyrightPivotalSoftwareInc2013-2018 13 17

1 PivotalCloudFoundryDeveloperusestheCLIorDeveloperConsoletocreateaGemFireserviceinstanceintheElasticRuntimespacewheretheyarepushingtherelevantapplications

2 CreatingaserviceinstancecausesElasticRuntimetocontacttheGemFireServiceBrokerwhichallocatesoneun-allocatedGemFireclusterofdedicatedvirtualmachinestotheGemFireserviceinstanceIntheresponsetoElasticRuntimetheServiceBrokerincludestheURLtoreachtheGemFirePulsemonitoringtoolfortheserviceinstanceTheElasticRuntimeexposesthisURLintheDeveloperConsolersquosmetadatafortheserviceinstance

3 PivotalCloudFoundryDeveloperpushestheirapplicationtoElasticRuntime

4 PivotalCloudFoundryDeveloperbindstheirapplicationtotheGemFireserviceinstanceTheGemFireServiceBrokerpopulatestheapplicationrsquosVCAP_SERVICESenvironmentvariablewiththemetadatarequiredtoaccesstheGemFireserviceinstancersquoslocatorsandcacheservers

5 PivotalCloudFoundrydevelopercanconfiguremonitorandmanagetheclusterusingPulseandortheGemFireforPivotalCloudFoundryCLIplug-in

AdditionalResourcesPivotalGemFireProductDocumentation

PivotalGemFireCommunityForum

PivotalGemFireKnowledgeBase

PivotalCloudFoundryDocumentation

copyCopyrightPivotalSoftwareInc2013-2018 14 17

InstallingGemFireforPivotalCloudFoundryPrerequisites

ServiceConfigurationDefaults

InstallationSteps

CreatingGemFireServicePlans

ApplicationSecurityGroups

PrerequisitesBeforeyoubeginyourGemFireforPivotalCloudFoundry (PCF)deploymentyoursystemneedstomeetthefollowingminimumrequirements

PivotalCloudFoundryOpsManagerforvSphereorPivotalCloudFoundryOpsManagerforvCloudAirorvCloudDirectororPivotalCloudFoundryOpsManagerforAWS

IPSec(optional)IfyouwishtouseIPSecinyourPivotalGemFireinstallationpleaseensureyouhavetheIPSecBOSHreleasedeployedbeforeinstallingtheElasticRuntimeandGemFiretileForinstructionsondeployingtheIPSecBOSHreleaseseetheinstructionshere

PivotalCloudFoundryElasticRuntime

NetworkaccessandcredentialsforthePivotalCloudFoundryOpsManagerWebConsole

CapacityinthevSphereclusterforserviceinstancesyouwanttodeployBydefaulttheGemFireserviceconfiguresthreedifferentGemFireserviceplansEachplandeploystheminimumof2locatorsbutdeploy35and7GemFirecacheserversrespectivelySeveralsupportingVMsarealsorequiredforservicedeploymentTheresourceallocationsforthedefaultGemFireserviceplaninstancesandcomponentsareasfollows

Table1DefaultResourceRequirementsforaGemFireServiceInstances

Service VirtualMachines CPU RAM(MB) EphemeralDisk(MB) PersistentDisk(MB)

GemFirelocator(Plan1)

2 1 1024 2048 1024

GemFirelocator(Plan2)

2 1 1024 2048 1024

GemFirelocator(Plan3)

2 1 1024 2048 1024

GemFireServer(Plan1)

3 2 4096 6144 8192

GemFireServer(Plan2)

3 2 4096 6144 8192

GemFireServer(Plan3)

3 2 4096 6144 8192

GemFireBroker 1 2 4096 4096 4096

BrokerRegistrar 1 1 2048 2048 0

BrokerDeregistrar 1 1 2048 2048 0

ClusterSmokeTest 1 1 512 2048 0

ClusterAgentSmokeTest

1 1 512 2048 0

ServiceOfferingSmokeTest

1 1 512 2048 0

Compilation 2 1 1024 4096 0

Totals 12 9 16384 24576 12800

RequiredforeachVM

ServiceConfigurationDefaults

copyCopyrightPivotalSoftwareInc2013-2018 15 17

TheGemFireforPivotalCloudFoundryserviceautomaticallyimplementsthebestpracticesanoperatorwouldnormallyemploywhendeployingGemFireTheseconfigurationsinclude

DynamicmemorymanagementDynamicallysettheJVMmaximumandminimummemoryutilizationforeachinstanceoftheGemFiresoftwareprocessbasedontheVMrsquostotalmemory

GarbagecollectionEnableandconfigurememorygarbagecollectionforeachinstanceoftheGemFiresoftwareprocess

LoggingconfigurationCreateandstorelogsattheconfigloglevelwithappropriatelimitationsonsizingandautomaticlogrotation

StatisticsmonitoringCreateandstorestatisticsfilesatasamplerateof1000whichcorrespondstoasamplingrateofoncepersecond

DataoverflowconfigurationOverflowdatatodiskwhencrossing70memoryutilization

MemoryoverutilizationprotectionPreventfurtherwritestomemorywhencrossing80memoryutilization

ClientauthenticationRequireclientstoauthenticatewhendirectlyaccessingcacheservers

Thedefaultconfigurationsettingscanbeadjustedifneededonaperserviceinstancebasis

InstallationSteps1 DownloadtheGemFireforPivotalCloudFoundrytilefromPivotalNetwork

2 UseaWebbrowsertologintothePivotalOpsManagerapplicationThePivotalCloudFoundryOpsManagerInstallationDashboarddisplays

3 ClickImportaProductTheAddProductsscreendisplays

4 ClickChooseFileandnavigatetothefileyoudownloadedThefileuploadstoyourPivotalCloudFoundrydeployment

5 ClickAddPivotalOpsManageraddsanewtileforGemFireforPivotalCloudFoundrytotheInstallationDashboard

Self-SignedandInternalSSLCertificatesInproductionenvironmentswerecommendthatyouuseanSSLcertificatesignedbyareputablecertificateauthority(CA)PleaseensureyourSSLcertificatehasalltheSubjectAlternativeNames(SANs)

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

IfyourcertificateissignedbyaknownauthorityandhasthecorrectSANspleasedisregardthissection

copyCopyrightPivotalSoftwareInc2013-2018 16 17

InternalCertificatesInthecaseofInternalCertificates(iecertificatessignedbyaninternalRootCA)youneedtoconfiguretheOpsManagerDirectortiletotrusttheinternalRootCAToachievethispleasefollowthestepsbelow

1 AddtheinternalRootCAistotheSecurityConfigsectionundertheOpsManagerDirectorTile

2 CopytheinternalcertificateandRootCA(certificatechain)totheElasticRuntimetilebynavigatingtoPivotalElasticRuntimegtNetworkinggtLoadBalancerwithTLSenabled(orHAProxy)

Self-SignedCertificatesWhenusingselfsignedcertificatesgeneratedbytheElasticRuntimeTileyouneedtoensurethatthiscertificateisprovidedtotheOpsManagerDirectorTile

GeneratingSelf-SignCertificatesusingtheElasticRuntimeTileTheElasticRuntimeTileallowsyoutogenerateself-signedcertificatesbynavigatingtoPivotalElasticRuntimegtNetworkinggtGenerateRSACertificatePleasespecifythefollowingwildcardsubdomains

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

OnceyouhavegeneratedyourcertificatecopythecertificatetotheOpsManagerDirectorTileandplaceitintheSecurityConfigsection

GeneratingSelf-SignedCertificatesusingOpenSSL1 TousetheOpenSSLCLIrunthefollowingcommands

a Generateaprivatekey openssl genrsa -des3 -out serverkey 1024b GenerateaCertificateSigningRequest(CSR)withthe subjectAltName entriesandeditthe subj flagasneeded

openssl req -new -key serverkey -out servercsr -subj C=USST=StateL=LocalityO=OrganizationOU=OrganizationUnitCN=wwwexamplecomemailAddress=exampleexamplecomsubjectAltName=DNS1=systemexamplecomDNS2=appsexamplecomDNS3=uaasystemexamplecomDNS4=loginsystemexamplecom

c RemovePassphrasefromKey cp serverkey serverkeyorg openssl rsa -in serverkeyorg -out serverkeyd GenerateaSelf-SignedCertificate openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt

2 UploadtheSSLcertificatetoyourloadbalancerInstructionsforAWS

a AuthenticatewiththeAWSCLI$ aws configure AWS Access Key ID [None] ltACCESS KEY GOES HEREgt AWS Secret Access Key [None] ltSECRET ACCESS KEY GOESHEREgt Default region name [None] us-east-1 Default output format [None] ENTER

b Uploadyourself-signedcertificateinIAMaws iam upload-server-certificate --server-certificate-name ltNAME OF CERTIFICATEgt --certificate-bodyfileservercrt --private-key fileserverkey

c Uploadyourself-signedcertificatetoyourElasticLoadBalancer(ELB)aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name ltELB NAMEgt --load-balancer-port ltPORTgt --ssl-certificate-id arnawsiamltIAM NUMBERgtserver-certificateltNAME OF CERTIFICATEgt

3 AddtheSSLcertificateasatrustedcertificatetoyourOpsManager-deployedVMs

a InOpsManagerontheDirectorTileundertheSecuritysectionpastethecertificateandsave

copyCopyrightPivotalSoftwareInc2013-2018 17 17

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 13: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

1 PivotalCloudFoundryAdministratorimportstheGemFireserviceproductfileintoPivotalCloudFoundryOperationsManager

2 WhenaPivotalCloudFoundryAdministratorconfigurestheGemFireserviceforthefirsttimetheydefinethenumberofdiscreteserviceinstancesforeachGemFireServicePlanAserviceinstanceisaGemFireclusterGemFireforPivotalCloudFoundryenablesyoutoconfigureinstancesforthreedifferentGemFireclusterconfigurationswhereeachinstancecanprovideadifferentnumberoflocatorsandcacheserversaswellasmemoryanddiskspaceresources

3 AftermakingtheirconfigurationchoicesthePivotalCloudFoundryAdministratordeploystheservicecausingPivotalCloudFoundryOpsManagertocreateandsetuptheappropriatesetofvirtualmachines

4 OperationsManagerdeploysavirtualmachinetoruntheGemFireServiceBrokerwhichisresponsibleforallocatingGemFireClusterserviceinstancestoPivotalCloudFoundryusersandforpassingrelevantinformationintotheapplicationsthatareboundtoeachserviceinstance

5 OperationsManageralsodeploysthespecifiednumberofGemFireserviceinstances(clusters)asconfiguredbytheadministratorLastlythereareafewtemporaryVMsusedforinstallanduninstallerrands

AftertheservicehasbeendeployedinOperationsManageritisreadyforusebyapplicationdevelopersintheElasticRuntimeenvironmentThefollowingdiagramdepictsthehigh-levelworkflowthatanapplicationdeveloperwouldusetoconsumetheservice

PCFDeveloper(ServiceUser)WorkflowFigure2UsingtheService

copyCopyrightPivotalSoftwareInc2013-2018 13 17

1 PivotalCloudFoundryDeveloperusestheCLIorDeveloperConsoletocreateaGemFireserviceinstanceintheElasticRuntimespacewheretheyarepushingtherelevantapplications

2 CreatingaserviceinstancecausesElasticRuntimetocontacttheGemFireServiceBrokerwhichallocatesoneun-allocatedGemFireclusterofdedicatedvirtualmachinestotheGemFireserviceinstanceIntheresponsetoElasticRuntimetheServiceBrokerincludestheURLtoreachtheGemFirePulsemonitoringtoolfortheserviceinstanceTheElasticRuntimeexposesthisURLintheDeveloperConsolersquosmetadatafortheserviceinstance

3 PivotalCloudFoundryDeveloperpushestheirapplicationtoElasticRuntime

4 PivotalCloudFoundryDeveloperbindstheirapplicationtotheGemFireserviceinstanceTheGemFireServiceBrokerpopulatestheapplicationrsquosVCAP_SERVICESenvironmentvariablewiththemetadatarequiredtoaccesstheGemFireserviceinstancersquoslocatorsandcacheservers

5 PivotalCloudFoundrydevelopercanconfiguremonitorandmanagetheclusterusingPulseandortheGemFireforPivotalCloudFoundryCLIplug-in

AdditionalResourcesPivotalGemFireProductDocumentation

PivotalGemFireCommunityForum

PivotalGemFireKnowledgeBase

PivotalCloudFoundryDocumentation

copyCopyrightPivotalSoftwareInc2013-2018 14 17

InstallingGemFireforPivotalCloudFoundryPrerequisites

ServiceConfigurationDefaults

InstallationSteps

CreatingGemFireServicePlans

ApplicationSecurityGroups

PrerequisitesBeforeyoubeginyourGemFireforPivotalCloudFoundry (PCF)deploymentyoursystemneedstomeetthefollowingminimumrequirements

PivotalCloudFoundryOpsManagerforvSphereorPivotalCloudFoundryOpsManagerforvCloudAirorvCloudDirectororPivotalCloudFoundryOpsManagerforAWS

IPSec(optional)IfyouwishtouseIPSecinyourPivotalGemFireinstallationpleaseensureyouhavetheIPSecBOSHreleasedeployedbeforeinstallingtheElasticRuntimeandGemFiretileForinstructionsondeployingtheIPSecBOSHreleaseseetheinstructionshere

PivotalCloudFoundryElasticRuntime

NetworkaccessandcredentialsforthePivotalCloudFoundryOpsManagerWebConsole

CapacityinthevSphereclusterforserviceinstancesyouwanttodeployBydefaulttheGemFireserviceconfiguresthreedifferentGemFireserviceplansEachplandeploystheminimumof2locatorsbutdeploy35and7GemFirecacheserversrespectivelySeveralsupportingVMsarealsorequiredforservicedeploymentTheresourceallocationsforthedefaultGemFireserviceplaninstancesandcomponentsareasfollows

Table1DefaultResourceRequirementsforaGemFireServiceInstances

Service VirtualMachines CPU RAM(MB) EphemeralDisk(MB) PersistentDisk(MB)

GemFirelocator(Plan1)

2 1 1024 2048 1024

GemFirelocator(Plan2)

2 1 1024 2048 1024

GemFirelocator(Plan3)

2 1 1024 2048 1024

GemFireServer(Plan1)

3 2 4096 6144 8192

GemFireServer(Plan2)

3 2 4096 6144 8192

GemFireServer(Plan3)

3 2 4096 6144 8192

GemFireBroker 1 2 4096 4096 4096

BrokerRegistrar 1 1 2048 2048 0

BrokerDeregistrar 1 1 2048 2048 0

ClusterSmokeTest 1 1 512 2048 0

ClusterAgentSmokeTest

1 1 512 2048 0

ServiceOfferingSmokeTest

1 1 512 2048 0

Compilation 2 1 1024 4096 0

Totals 12 9 16384 24576 12800

RequiredforeachVM

ServiceConfigurationDefaults

copyCopyrightPivotalSoftwareInc2013-2018 15 17

TheGemFireforPivotalCloudFoundryserviceautomaticallyimplementsthebestpracticesanoperatorwouldnormallyemploywhendeployingGemFireTheseconfigurationsinclude

DynamicmemorymanagementDynamicallysettheJVMmaximumandminimummemoryutilizationforeachinstanceoftheGemFiresoftwareprocessbasedontheVMrsquostotalmemory

GarbagecollectionEnableandconfigurememorygarbagecollectionforeachinstanceoftheGemFiresoftwareprocess

LoggingconfigurationCreateandstorelogsattheconfigloglevelwithappropriatelimitationsonsizingandautomaticlogrotation

StatisticsmonitoringCreateandstorestatisticsfilesatasamplerateof1000whichcorrespondstoasamplingrateofoncepersecond

DataoverflowconfigurationOverflowdatatodiskwhencrossing70memoryutilization

MemoryoverutilizationprotectionPreventfurtherwritestomemorywhencrossing80memoryutilization

ClientauthenticationRequireclientstoauthenticatewhendirectlyaccessingcacheservers

Thedefaultconfigurationsettingscanbeadjustedifneededonaperserviceinstancebasis

InstallationSteps1 DownloadtheGemFireforPivotalCloudFoundrytilefromPivotalNetwork

2 UseaWebbrowsertologintothePivotalOpsManagerapplicationThePivotalCloudFoundryOpsManagerInstallationDashboarddisplays

3 ClickImportaProductTheAddProductsscreendisplays

4 ClickChooseFileandnavigatetothefileyoudownloadedThefileuploadstoyourPivotalCloudFoundrydeployment

5 ClickAddPivotalOpsManageraddsanewtileforGemFireforPivotalCloudFoundrytotheInstallationDashboard

Self-SignedandInternalSSLCertificatesInproductionenvironmentswerecommendthatyouuseanSSLcertificatesignedbyareputablecertificateauthority(CA)PleaseensureyourSSLcertificatehasalltheSubjectAlternativeNames(SANs)

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

IfyourcertificateissignedbyaknownauthorityandhasthecorrectSANspleasedisregardthissection

copyCopyrightPivotalSoftwareInc2013-2018 16 17

InternalCertificatesInthecaseofInternalCertificates(iecertificatessignedbyaninternalRootCA)youneedtoconfiguretheOpsManagerDirectortiletotrusttheinternalRootCAToachievethispleasefollowthestepsbelow

1 AddtheinternalRootCAistotheSecurityConfigsectionundertheOpsManagerDirectorTile

2 CopytheinternalcertificateandRootCA(certificatechain)totheElasticRuntimetilebynavigatingtoPivotalElasticRuntimegtNetworkinggtLoadBalancerwithTLSenabled(orHAProxy)

Self-SignedCertificatesWhenusingselfsignedcertificatesgeneratedbytheElasticRuntimeTileyouneedtoensurethatthiscertificateisprovidedtotheOpsManagerDirectorTile

GeneratingSelf-SignCertificatesusingtheElasticRuntimeTileTheElasticRuntimeTileallowsyoutogenerateself-signedcertificatesbynavigatingtoPivotalElasticRuntimegtNetworkinggtGenerateRSACertificatePleasespecifythefollowingwildcardsubdomains

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

OnceyouhavegeneratedyourcertificatecopythecertificatetotheOpsManagerDirectorTileandplaceitintheSecurityConfigsection

GeneratingSelf-SignedCertificatesusingOpenSSL1 TousetheOpenSSLCLIrunthefollowingcommands

a Generateaprivatekey openssl genrsa -des3 -out serverkey 1024b GenerateaCertificateSigningRequest(CSR)withthe subjectAltName entriesandeditthe subj flagasneeded

openssl req -new -key serverkey -out servercsr -subj C=USST=StateL=LocalityO=OrganizationOU=OrganizationUnitCN=wwwexamplecomemailAddress=exampleexamplecomsubjectAltName=DNS1=systemexamplecomDNS2=appsexamplecomDNS3=uaasystemexamplecomDNS4=loginsystemexamplecom

c RemovePassphrasefromKey cp serverkey serverkeyorg openssl rsa -in serverkeyorg -out serverkeyd GenerateaSelf-SignedCertificate openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt

2 UploadtheSSLcertificatetoyourloadbalancerInstructionsforAWS

a AuthenticatewiththeAWSCLI$ aws configure AWS Access Key ID [None] ltACCESS KEY GOES HEREgt AWS Secret Access Key [None] ltSECRET ACCESS KEY GOESHEREgt Default region name [None] us-east-1 Default output format [None] ENTER

b Uploadyourself-signedcertificateinIAMaws iam upload-server-certificate --server-certificate-name ltNAME OF CERTIFICATEgt --certificate-bodyfileservercrt --private-key fileserverkey

c Uploadyourself-signedcertificatetoyourElasticLoadBalancer(ELB)aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name ltELB NAMEgt --load-balancer-port ltPORTgt --ssl-certificate-id arnawsiamltIAM NUMBERgtserver-certificateltNAME OF CERTIFICATEgt

3 AddtheSSLcertificateasatrustedcertificatetoyourOpsManager-deployedVMs

a InOpsManagerontheDirectorTileundertheSecuritysectionpastethecertificateandsave

copyCopyrightPivotalSoftwareInc2013-2018 17 17

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 14: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

1 PivotalCloudFoundryDeveloperusestheCLIorDeveloperConsoletocreateaGemFireserviceinstanceintheElasticRuntimespacewheretheyarepushingtherelevantapplications

2 CreatingaserviceinstancecausesElasticRuntimetocontacttheGemFireServiceBrokerwhichallocatesoneun-allocatedGemFireclusterofdedicatedvirtualmachinestotheGemFireserviceinstanceIntheresponsetoElasticRuntimetheServiceBrokerincludestheURLtoreachtheGemFirePulsemonitoringtoolfortheserviceinstanceTheElasticRuntimeexposesthisURLintheDeveloperConsolersquosmetadatafortheserviceinstance

3 PivotalCloudFoundryDeveloperpushestheirapplicationtoElasticRuntime

4 PivotalCloudFoundryDeveloperbindstheirapplicationtotheGemFireserviceinstanceTheGemFireServiceBrokerpopulatestheapplicationrsquosVCAP_SERVICESenvironmentvariablewiththemetadatarequiredtoaccesstheGemFireserviceinstancersquoslocatorsandcacheservers

5 PivotalCloudFoundrydevelopercanconfiguremonitorandmanagetheclusterusingPulseandortheGemFireforPivotalCloudFoundryCLIplug-in

AdditionalResourcesPivotalGemFireProductDocumentation

PivotalGemFireCommunityForum

PivotalGemFireKnowledgeBase

PivotalCloudFoundryDocumentation

copyCopyrightPivotalSoftwareInc2013-2018 14 17

InstallingGemFireforPivotalCloudFoundryPrerequisites

ServiceConfigurationDefaults

InstallationSteps

CreatingGemFireServicePlans

ApplicationSecurityGroups

PrerequisitesBeforeyoubeginyourGemFireforPivotalCloudFoundry (PCF)deploymentyoursystemneedstomeetthefollowingminimumrequirements

PivotalCloudFoundryOpsManagerforvSphereorPivotalCloudFoundryOpsManagerforvCloudAirorvCloudDirectororPivotalCloudFoundryOpsManagerforAWS

IPSec(optional)IfyouwishtouseIPSecinyourPivotalGemFireinstallationpleaseensureyouhavetheIPSecBOSHreleasedeployedbeforeinstallingtheElasticRuntimeandGemFiretileForinstructionsondeployingtheIPSecBOSHreleaseseetheinstructionshere

PivotalCloudFoundryElasticRuntime

NetworkaccessandcredentialsforthePivotalCloudFoundryOpsManagerWebConsole

CapacityinthevSphereclusterforserviceinstancesyouwanttodeployBydefaulttheGemFireserviceconfiguresthreedifferentGemFireserviceplansEachplandeploystheminimumof2locatorsbutdeploy35and7GemFirecacheserversrespectivelySeveralsupportingVMsarealsorequiredforservicedeploymentTheresourceallocationsforthedefaultGemFireserviceplaninstancesandcomponentsareasfollows

Table1DefaultResourceRequirementsforaGemFireServiceInstances

Service VirtualMachines CPU RAM(MB) EphemeralDisk(MB) PersistentDisk(MB)

GemFirelocator(Plan1)

2 1 1024 2048 1024

GemFirelocator(Plan2)

2 1 1024 2048 1024

GemFirelocator(Plan3)

2 1 1024 2048 1024

GemFireServer(Plan1)

3 2 4096 6144 8192

GemFireServer(Plan2)

3 2 4096 6144 8192

GemFireServer(Plan3)

3 2 4096 6144 8192

GemFireBroker 1 2 4096 4096 4096

BrokerRegistrar 1 1 2048 2048 0

BrokerDeregistrar 1 1 2048 2048 0

ClusterSmokeTest 1 1 512 2048 0

ClusterAgentSmokeTest

1 1 512 2048 0

ServiceOfferingSmokeTest

1 1 512 2048 0

Compilation 2 1 1024 4096 0

Totals 12 9 16384 24576 12800

RequiredforeachVM

ServiceConfigurationDefaults

copyCopyrightPivotalSoftwareInc2013-2018 15 17

TheGemFireforPivotalCloudFoundryserviceautomaticallyimplementsthebestpracticesanoperatorwouldnormallyemploywhendeployingGemFireTheseconfigurationsinclude

DynamicmemorymanagementDynamicallysettheJVMmaximumandminimummemoryutilizationforeachinstanceoftheGemFiresoftwareprocessbasedontheVMrsquostotalmemory

GarbagecollectionEnableandconfigurememorygarbagecollectionforeachinstanceoftheGemFiresoftwareprocess

LoggingconfigurationCreateandstorelogsattheconfigloglevelwithappropriatelimitationsonsizingandautomaticlogrotation

StatisticsmonitoringCreateandstorestatisticsfilesatasamplerateof1000whichcorrespondstoasamplingrateofoncepersecond

DataoverflowconfigurationOverflowdatatodiskwhencrossing70memoryutilization

MemoryoverutilizationprotectionPreventfurtherwritestomemorywhencrossing80memoryutilization

ClientauthenticationRequireclientstoauthenticatewhendirectlyaccessingcacheservers

Thedefaultconfigurationsettingscanbeadjustedifneededonaperserviceinstancebasis

InstallationSteps1 DownloadtheGemFireforPivotalCloudFoundrytilefromPivotalNetwork

2 UseaWebbrowsertologintothePivotalOpsManagerapplicationThePivotalCloudFoundryOpsManagerInstallationDashboarddisplays

3 ClickImportaProductTheAddProductsscreendisplays

4 ClickChooseFileandnavigatetothefileyoudownloadedThefileuploadstoyourPivotalCloudFoundrydeployment

5 ClickAddPivotalOpsManageraddsanewtileforGemFireforPivotalCloudFoundrytotheInstallationDashboard

Self-SignedandInternalSSLCertificatesInproductionenvironmentswerecommendthatyouuseanSSLcertificatesignedbyareputablecertificateauthority(CA)PleaseensureyourSSLcertificatehasalltheSubjectAlternativeNames(SANs)

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

IfyourcertificateissignedbyaknownauthorityandhasthecorrectSANspleasedisregardthissection

copyCopyrightPivotalSoftwareInc2013-2018 16 17

InternalCertificatesInthecaseofInternalCertificates(iecertificatessignedbyaninternalRootCA)youneedtoconfiguretheOpsManagerDirectortiletotrusttheinternalRootCAToachievethispleasefollowthestepsbelow

1 AddtheinternalRootCAistotheSecurityConfigsectionundertheOpsManagerDirectorTile

2 CopytheinternalcertificateandRootCA(certificatechain)totheElasticRuntimetilebynavigatingtoPivotalElasticRuntimegtNetworkinggtLoadBalancerwithTLSenabled(orHAProxy)

Self-SignedCertificatesWhenusingselfsignedcertificatesgeneratedbytheElasticRuntimeTileyouneedtoensurethatthiscertificateisprovidedtotheOpsManagerDirectorTile

GeneratingSelf-SignCertificatesusingtheElasticRuntimeTileTheElasticRuntimeTileallowsyoutogenerateself-signedcertificatesbynavigatingtoPivotalElasticRuntimegtNetworkinggtGenerateRSACertificatePleasespecifythefollowingwildcardsubdomains

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

OnceyouhavegeneratedyourcertificatecopythecertificatetotheOpsManagerDirectorTileandplaceitintheSecurityConfigsection

GeneratingSelf-SignedCertificatesusingOpenSSL1 TousetheOpenSSLCLIrunthefollowingcommands

a Generateaprivatekey openssl genrsa -des3 -out serverkey 1024b GenerateaCertificateSigningRequest(CSR)withthe subjectAltName entriesandeditthe subj flagasneeded

openssl req -new -key serverkey -out servercsr -subj C=USST=StateL=LocalityO=OrganizationOU=OrganizationUnitCN=wwwexamplecomemailAddress=exampleexamplecomsubjectAltName=DNS1=systemexamplecomDNS2=appsexamplecomDNS3=uaasystemexamplecomDNS4=loginsystemexamplecom

c RemovePassphrasefromKey cp serverkey serverkeyorg openssl rsa -in serverkeyorg -out serverkeyd GenerateaSelf-SignedCertificate openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt

2 UploadtheSSLcertificatetoyourloadbalancerInstructionsforAWS

a AuthenticatewiththeAWSCLI$ aws configure AWS Access Key ID [None] ltACCESS KEY GOES HEREgt AWS Secret Access Key [None] ltSECRET ACCESS KEY GOESHEREgt Default region name [None] us-east-1 Default output format [None] ENTER

b Uploadyourself-signedcertificateinIAMaws iam upload-server-certificate --server-certificate-name ltNAME OF CERTIFICATEgt --certificate-bodyfileservercrt --private-key fileserverkey

c Uploadyourself-signedcertificatetoyourElasticLoadBalancer(ELB)aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name ltELB NAMEgt --load-balancer-port ltPORTgt --ssl-certificate-id arnawsiamltIAM NUMBERgtserver-certificateltNAME OF CERTIFICATEgt

3 AddtheSSLcertificateasatrustedcertificatetoyourOpsManager-deployedVMs

a InOpsManagerontheDirectorTileundertheSecuritysectionpastethecertificateandsave

copyCopyrightPivotalSoftwareInc2013-2018 17 17

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 15: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

InstallingGemFireforPivotalCloudFoundryPrerequisites

ServiceConfigurationDefaults

InstallationSteps

CreatingGemFireServicePlans

ApplicationSecurityGroups

PrerequisitesBeforeyoubeginyourGemFireforPivotalCloudFoundry (PCF)deploymentyoursystemneedstomeetthefollowingminimumrequirements

PivotalCloudFoundryOpsManagerforvSphereorPivotalCloudFoundryOpsManagerforvCloudAirorvCloudDirectororPivotalCloudFoundryOpsManagerforAWS

IPSec(optional)IfyouwishtouseIPSecinyourPivotalGemFireinstallationpleaseensureyouhavetheIPSecBOSHreleasedeployedbeforeinstallingtheElasticRuntimeandGemFiretileForinstructionsondeployingtheIPSecBOSHreleaseseetheinstructionshere

PivotalCloudFoundryElasticRuntime

NetworkaccessandcredentialsforthePivotalCloudFoundryOpsManagerWebConsole

CapacityinthevSphereclusterforserviceinstancesyouwanttodeployBydefaulttheGemFireserviceconfiguresthreedifferentGemFireserviceplansEachplandeploystheminimumof2locatorsbutdeploy35and7GemFirecacheserversrespectivelySeveralsupportingVMsarealsorequiredforservicedeploymentTheresourceallocationsforthedefaultGemFireserviceplaninstancesandcomponentsareasfollows

Table1DefaultResourceRequirementsforaGemFireServiceInstances

Service VirtualMachines CPU RAM(MB) EphemeralDisk(MB) PersistentDisk(MB)

GemFirelocator(Plan1)

2 1 1024 2048 1024

GemFirelocator(Plan2)

2 1 1024 2048 1024

GemFirelocator(Plan3)

2 1 1024 2048 1024

GemFireServer(Plan1)

3 2 4096 6144 8192

GemFireServer(Plan2)

3 2 4096 6144 8192

GemFireServer(Plan3)

3 2 4096 6144 8192

GemFireBroker 1 2 4096 4096 4096

BrokerRegistrar 1 1 2048 2048 0

BrokerDeregistrar 1 1 2048 2048 0

ClusterSmokeTest 1 1 512 2048 0

ClusterAgentSmokeTest

1 1 512 2048 0

ServiceOfferingSmokeTest

1 1 512 2048 0

Compilation 2 1 1024 4096 0

Totals 12 9 16384 24576 12800

RequiredforeachVM

ServiceConfigurationDefaults

copyCopyrightPivotalSoftwareInc2013-2018 15 17

TheGemFireforPivotalCloudFoundryserviceautomaticallyimplementsthebestpracticesanoperatorwouldnormallyemploywhendeployingGemFireTheseconfigurationsinclude

DynamicmemorymanagementDynamicallysettheJVMmaximumandminimummemoryutilizationforeachinstanceoftheGemFiresoftwareprocessbasedontheVMrsquostotalmemory

GarbagecollectionEnableandconfigurememorygarbagecollectionforeachinstanceoftheGemFiresoftwareprocess

LoggingconfigurationCreateandstorelogsattheconfigloglevelwithappropriatelimitationsonsizingandautomaticlogrotation

StatisticsmonitoringCreateandstorestatisticsfilesatasamplerateof1000whichcorrespondstoasamplingrateofoncepersecond

DataoverflowconfigurationOverflowdatatodiskwhencrossing70memoryutilization

MemoryoverutilizationprotectionPreventfurtherwritestomemorywhencrossing80memoryutilization

ClientauthenticationRequireclientstoauthenticatewhendirectlyaccessingcacheservers

Thedefaultconfigurationsettingscanbeadjustedifneededonaperserviceinstancebasis

InstallationSteps1 DownloadtheGemFireforPivotalCloudFoundrytilefromPivotalNetwork

2 UseaWebbrowsertologintothePivotalOpsManagerapplicationThePivotalCloudFoundryOpsManagerInstallationDashboarddisplays

3 ClickImportaProductTheAddProductsscreendisplays

4 ClickChooseFileandnavigatetothefileyoudownloadedThefileuploadstoyourPivotalCloudFoundrydeployment

5 ClickAddPivotalOpsManageraddsanewtileforGemFireforPivotalCloudFoundrytotheInstallationDashboard

Self-SignedandInternalSSLCertificatesInproductionenvironmentswerecommendthatyouuseanSSLcertificatesignedbyareputablecertificateauthority(CA)PleaseensureyourSSLcertificatehasalltheSubjectAlternativeNames(SANs)

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

IfyourcertificateissignedbyaknownauthorityandhasthecorrectSANspleasedisregardthissection

copyCopyrightPivotalSoftwareInc2013-2018 16 17

InternalCertificatesInthecaseofInternalCertificates(iecertificatessignedbyaninternalRootCA)youneedtoconfiguretheOpsManagerDirectortiletotrusttheinternalRootCAToachievethispleasefollowthestepsbelow

1 AddtheinternalRootCAistotheSecurityConfigsectionundertheOpsManagerDirectorTile

2 CopytheinternalcertificateandRootCA(certificatechain)totheElasticRuntimetilebynavigatingtoPivotalElasticRuntimegtNetworkinggtLoadBalancerwithTLSenabled(orHAProxy)

Self-SignedCertificatesWhenusingselfsignedcertificatesgeneratedbytheElasticRuntimeTileyouneedtoensurethatthiscertificateisprovidedtotheOpsManagerDirectorTile

GeneratingSelf-SignCertificatesusingtheElasticRuntimeTileTheElasticRuntimeTileallowsyoutogenerateself-signedcertificatesbynavigatingtoPivotalElasticRuntimegtNetworkinggtGenerateRSACertificatePleasespecifythefollowingwildcardsubdomains

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

OnceyouhavegeneratedyourcertificatecopythecertificatetotheOpsManagerDirectorTileandplaceitintheSecurityConfigsection

GeneratingSelf-SignedCertificatesusingOpenSSL1 TousetheOpenSSLCLIrunthefollowingcommands

a Generateaprivatekey openssl genrsa -des3 -out serverkey 1024b GenerateaCertificateSigningRequest(CSR)withthe subjectAltName entriesandeditthe subj flagasneeded

openssl req -new -key serverkey -out servercsr -subj C=USST=StateL=LocalityO=OrganizationOU=OrganizationUnitCN=wwwexamplecomemailAddress=exampleexamplecomsubjectAltName=DNS1=systemexamplecomDNS2=appsexamplecomDNS3=uaasystemexamplecomDNS4=loginsystemexamplecom

c RemovePassphrasefromKey cp serverkey serverkeyorg openssl rsa -in serverkeyorg -out serverkeyd GenerateaSelf-SignedCertificate openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt

2 UploadtheSSLcertificatetoyourloadbalancerInstructionsforAWS

a AuthenticatewiththeAWSCLI$ aws configure AWS Access Key ID [None] ltACCESS KEY GOES HEREgt AWS Secret Access Key [None] ltSECRET ACCESS KEY GOESHEREgt Default region name [None] us-east-1 Default output format [None] ENTER

b Uploadyourself-signedcertificateinIAMaws iam upload-server-certificate --server-certificate-name ltNAME OF CERTIFICATEgt --certificate-bodyfileservercrt --private-key fileserverkey

c Uploadyourself-signedcertificatetoyourElasticLoadBalancer(ELB)aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name ltELB NAMEgt --load-balancer-port ltPORTgt --ssl-certificate-id arnawsiamltIAM NUMBERgtserver-certificateltNAME OF CERTIFICATEgt

3 AddtheSSLcertificateasatrustedcertificatetoyourOpsManager-deployedVMs

a InOpsManagerontheDirectorTileundertheSecuritysectionpastethecertificateandsave

copyCopyrightPivotalSoftwareInc2013-2018 17 17

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 16: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

TheGemFireforPivotalCloudFoundryserviceautomaticallyimplementsthebestpracticesanoperatorwouldnormallyemploywhendeployingGemFireTheseconfigurationsinclude

DynamicmemorymanagementDynamicallysettheJVMmaximumandminimummemoryutilizationforeachinstanceoftheGemFiresoftwareprocessbasedontheVMrsquostotalmemory

GarbagecollectionEnableandconfigurememorygarbagecollectionforeachinstanceoftheGemFiresoftwareprocess

LoggingconfigurationCreateandstorelogsattheconfigloglevelwithappropriatelimitationsonsizingandautomaticlogrotation

StatisticsmonitoringCreateandstorestatisticsfilesatasamplerateof1000whichcorrespondstoasamplingrateofoncepersecond

DataoverflowconfigurationOverflowdatatodiskwhencrossing70memoryutilization

MemoryoverutilizationprotectionPreventfurtherwritestomemorywhencrossing80memoryutilization

ClientauthenticationRequireclientstoauthenticatewhendirectlyaccessingcacheservers

Thedefaultconfigurationsettingscanbeadjustedifneededonaperserviceinstancebasis

InstallationSteps1 DownloadtheGemFireforPivotalCloudFoundrytilefromPivotalNetwork

2 UseaWebbrowsertologintothePivotalOpsManagerapplicationThePivotalCloudFoundryOpsManagerInstallationDashboarddisplays

3 ClickImportaProductTheAddProductsscreendisplays

4 ClickChooseFileandnavigatetothefileyoudownloadedThefileuploadstoyourPivotalCloudFoundrydeployment

5 ClickAddPivotalOpsManageraddsanewtileforGemFireforPivotalCloudFoundrytotheInstallationDashboard

Self-SignedandInternalSSLCertificatesInproductionenvironmentswerecommendthatyouuseanSSLcertificatesignedbyareputablecertificateauthority(CA)PleaseensureyourSSLcertificatehasalltheSubjectAlternativeNames(SANs)

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

IfyourcertificateissignedbyaknownauthorityandhasthecorrectSANspleasedisregardthissection

copyCopyrightPivotalSoftwareInc2013-2018 16 17

InternalCertificatesInthecaseofInternalCertificates(iecertificatessignedbyaninternalRootCA)youneedtoconfiguretheOpsManagerDirectortiletotrusttheinternalRootCAToachievethispleasefollowthestepsbelow

1 AddtheinternalRootCAistotheSecurityConfigsectionundertheOpsManagerDirectorTile

2 CopytheinternalcertificateandRootCA(certificatechain)totheElasticRuntimetilebynavigatingtoPivotalElasticRuntimegtNetworkinggtLoadBalancerwithTLSenabled(orHAProxy)

Self-SignedCertificatesWhenusingselfsignedcertificatesgeneratedbytheElasticRuntimeTileyouneedtoensurethatthiscertificateisprovidedtotheOpsManagerDirectorTile

GeneratingSelf-SignCertificatesusingtheElasticRuntimeTileTheElasticRuntimeTileallowsyoutogenerateself-signedcertificatesbynavigatingtoPivotalElasticRuntimegtNetworkinggtGenerateRSACertificatePleasespecifythefollowingwildcardsubdomains

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

OnceyouhavegeneratedyourcertificatecopythecertificatetotheOpsManagerDirectorTileandplaceitintheSecurityConfigsection

GeneratingSelf-SignedCertificatesusingOpenSSL1 TousetheOpenSSLCLIrunthefollowingcommands

a Generateaprivatekey openssl genrsa -des3 -out serverkey 1024b GenerateaCertificateSigningRequest(CSR)withthe subjectAltName entriesandeditthe subj flagasneeded

openssl req -new -key serverkey -out servercsr -subj C=USST=StateL=LocalityO=OrganizationOU=OrganizationUnitCN=wwwexamplecomemailAddress=exampleexamplecomsubjectAltName=DNS1=systemexamplecomDNS2=appsexamplecomDNS3=uaasystemexamplecomDNS4=loginsystemexamplecom

c RemovePassphrasefromKey cp serverkey serverkeyorg openssl rsa -in serverkeyorg -out serverkeyd GenerateaSelf-SignedCertificate openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt

2 UploadtheSSLcertificatetoyourloadbalancerInstructionsforAWS

a AuthenticatewiththeAWSCLI$ aws configure AWS Access Key ID [None] ltACCESS KEY GOES HEREgt AWS Secret Access Key [None] ltSECRET ACCESS KEY GOESHEREgt Default region name [None] us-east-1 Default output format [None] ENTER

b Uploadyourself-signedcertificateinIAMaws iam upload-server-certificate --server-certificate-name ltNAME OF CERTIFICATEgt --certificate-bodyfileservercrt --private-key fileserverkey

c Uploadyourself-signedcertificatetoyourElasticLoadBalancer(ELB)aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name ltELB NAMEgt --load-balancer-port ltPORTgt --ssl-certificate-id arnawsiamltIAM NUMBERgtserver-certificateltNAME OF CERTIFICATEgt

3 AddtheSSLcertificateasatrustedcertificatetoyourOpsManager-deployedVMs

a InOpsManagerontheDirectorTileundertheSecuritysectionpastethecertificateandsave

copyCopyrightPivotalSoftwareInc2013-2018 17 17

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 17: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

InternalCertificatesInthecaseofInternalCertificates(iecertificatessignedbyaninternalRootCA)youneedtoconfiguretheOpsManagerDirectortiletotrusttheinternalRootCAToachievethispleasefollowthestepsbelow

1 AddtheinternalRootCAistotheSecurityConfigsectionundertheOpsManagerDirectorTile

2 CopytheinternalcertificateandRootCA(certificatechain)totheElasticRuntimetilebynavigatingtoPivotalElasticRuntimegtNetworkinggtLoadBalancerwithTLSenabled(orHAProxy)

Self-SignedCertificatesWhenusingselfsignedcertificatesgeneratedbytheElasticRuntimeTileyouneedtoensurethatthiscertificateisprovidedtotheOpsManagerDirectorTile

GeneratingSelf-SignCertificatesusingtheElasticRuntimeTileTheElasticRuntimeTileallowsyoutogenerateself-signedcertificatesbynavigatingtoPivotalElasticRuntimegtNetworkinggtGenerateRSACertificatePleasespecifythefollowingwildcardsubdomains

systemexamplecom

appsexamplecom

uaasystemexamplecom

loginsystemexamplecom

OnceyouhavegeneratedyourcertificatecopythecertificatetotheOpsManagerDirectorTileandplaceitintheSecurityConfigsection

GeneratingSelf-SignedCertificatesusingOpenSSL1 TousetheOpenSSLCLIrunthefollowingcommands

a Generateaprivatekey openssl genrsa -des3 -out serverkey 1024b GenerateaCertificateSigningRequest(CSR)withthe subjectAltName entriesandeditthe subj flagasneeded

openssl req -new -key serverkey -out servercsr -subj C=USST=StateL=LocalityO=OrganizationOU=OrganizationUnitCN=wwwexamplecomemailAddress=exampleexamplecomsubjectAltName=DNS1=systemexamplecomDNS2=appsexamplecomDNS3=uaasystemexamplecomDNS4=loginsystemexamplecom

c RemovePassphrasefromKey cp serverkey serverkeyorg openssl rsa -in serverkeyorg -out serverkeyd GenerateaSelf-SignedCertificate openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt

2 UploadtheSSLcertificatetoyourloadbalancerInstructionsforAWS

a AuthenticatewiththeAWSCLI$ aws configure AWS Access Key ID [None] ltACCESS KEY GOES HEREgt AWS Secret Access Key [None] ltSECRET ACCESS KEY GOESHEREgt Default region name [None] us-east-1 Default output format [None] ENTER

b Uploadyourself-signedcertificateinIAMaws iam upload-server-certificate --server-certificate-name ltNAME OF CERTIFICATEgt --certificate-bodyfileservercrt --private-key fileserverkey

c Uploadyourself-signedcertificatetoyourElasticLoadBalancer(ELB)aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name ltELB NAMEgt --load-balancer-port ltPORTgt --ssl-certificate-id arnawsiamltIAM NUMBERgtserver-certificateltNAME OF CERTIFICATEgt

3 AddtheSSLcertificateasatrustedcertificatetoyourOpsManager-deployedVMs

a InOpsManagerontheDirectorTileundertheSecuritysectionpastethecertificateandsave

copyCopyrightPivotalSoftwareInc2013-2018 17 17

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 18: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

b OntheElasticRuntimeTileundertheNetworkingsectionpasteboththecertificateandtheprivatekeybesuretocheckDisableSSLcertificateverificationforthisenvironmentandsave

copyCopyrightPivotalSoftwareInc2013-2018 18 17

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 19: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

WANReplicationandSelf-SignedCertificates

AWANtopologyinGemFireisaclient-serverrelationshipWhenusingself-signedcertificateseachclientneedstotrusttheserverrsquosSSLcertificate

WhenusingWANreplicationwithself-signedcertificateswestronglyrecommendusingcertificatesthatweregeneratedwiththeOpenSSLCLIThisisbecauseOpsManagerself-signedcertificatesareactuallysignedbyOpsManagerrsquosinternalCAcertificateIfyoudouseacertificategeneratedbyOpsManageryoursquollneedtotrusttheOpsManagerrsquosinternalCAcertificateinstead

ForexamplewhensettingupWANreplicationacrosstwoPCFinstallationswhoeachusetheirownselfsignedcertificatesnamedWestandEast

1 InWestOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforEast(appendingifnecessary)andsave

copyCopyrightPivotalSoftwareInc2013-2018 19 17

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 20: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

2 InEastOpsManagerontheDirectorTileunderExperimentalFeaturesgtTrustedCertificatesaddthecertificateforWest(appendingifnecessary)andsave

3 InbothinstallationsyouneedtoredeploytheGemFireforPivotalCloudFoundrytileforthesechangestotakeeffectThesimplestwaytoforcearedeployistomakeasmallchangetoanyoftheconfigurationpropertiessuchastheServicePlanConfiguration

ThenproceedtoconfigureWANreplicationacrossyourmultiplesites

CreatingGemFireServicePlansConfigureGemFireserviceinstancestosetthemaximumcapacityforeachclusterprovidedinyourCloudFoundryenvironment

NoteIfyouhavealreadyconfiguredtheservicereducingthenumberofresourcesandreconfiguringtheservicecausesallallocatedinstancestobedestroyedSeetheReleaseNotesformoreinformationaboutknownproblemsandlimitations

copyCopyrightPivotalSoftwareInc2013-2018 20 17

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 21: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

FollowthesestepstoconfiguretheGemFireservice

1 SelecttheGemFireforPivotalCloudFoundrytiletodisplaytheconfigurationpage

2 (Optional)SelecttheAssignNetworkstabtospecifythevSphereNetworkwhereOpsManagerdeploystheGemFireServiceBrokerandrelatedvirtualmachinesSeeConfiguringNetworkIsolationOptionsinOpsManager inthePivotalCloudFoundrydocumentationformoreinformation

3 SelectAssignAvailabilityZonestospecifytheAvailabilityZoneintowhichOpsManagershoulddeploytheGemFireServiceBrokerandvirtualmachinesNotethatthecurrentversionoftheGemFireservicemustbedeployedtoasingleAvailabilityZoneSeeConfiguringOpsManagerDirectorforVMwarevSphere formoreinformationNoteThecurrentversionoftheserviceonlysupportsdeploymenttooneAvailabilityZoneevenifmultipleAvailabilityZonesareavailableDeployingtheservicetomorethanoneAZresultsinaninvalidinstallation

4 SelecttheConfigureServicePlan1-3tabstoconfiguretheeachofthethreeGemFireplansthatwillbeavailableintheElasticRuntimeCLIandWebConsoleGemFireforPivotalCloudFoundryprovidesthreedifferentserviceplansthatyoucanconfiguretoprovidedifferentGemFireclustersizesForeachofthethreeserviceplanconfigurations

a (Optional)AsabestpracticeusetheServicePlanNameServicePlanDescriptionandServicePlanFeatureBullet1-3fieldstodescribethesizeofeachclusterThisinformationwillappearintheMarketplacewhendevelopersarechoosingfromtheavailableplansForexample

2SpecifythenumberoflocatorsperclustertocreateintheGemFireclusterforthisplanaswellasthenumberofcacheserversperclusterForexample

copyCopyrightPivotalSoftwareInc2013-2018 21 17

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 22: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

NoteEachserviceplanmustspecifyaminimumoftwolocatorsandthreecacheserversperGemFireclusterRecordthenumberoflocatorsandserversusedineachplantohelpyouconfigurethetotalplanresourcesinthenextstepIfyouwouldliketodeferaplanconfigurationorallocationuntilalatertimeyoucandothatintheResourceConfigtab(seebelow)3ClickSavetosavethecurrentserviceplanconfiguration4RepeattheabovestepstoconfigureeachofthethreeGemFireserviceplans

5 (Optional)SelecttheResourceConfigtabtochangetheallocationofresourcesforofGemFiremembersineachserviceplan

a EnterthetotalnumberofGemFirelocatorandserverInstancesthatyouwanttocreateforeachoftheavailableserviceplansNoteThenumberoflocatororserverinstancesthatyouspecifyforaplanmustbeamultipleoftheperclusternumberlocatorsandserversthatyouconfiguredinthepreviousstepTheonlyexceptiontothisruleisifyouwanttodeferallocatingresourcesfortheplantoalatertimeinwhichcaseyoucansetthenumberoflocatorsandserverstozeroForexampleifyouconfiguredGemFireServicePlan1toprovideasmallGemFireclusterusingtheminimumof2locatorsand3serversbutyouwanttowantedtomake3instancesofthisplanavailableinthemarketplacethenyouwouldsetGemFirelocator(Plan1)to6instancesandGemFireserver(Plan1)to9instancesIfyouinsteadwantedtopostponeconfiguringtheplanandldquosaverdquoyourpendingchangestotheplanthensetthenumberoflocatorsandserverstozeroYoucanthenrevisittheplanconfigurationandresourceallocationatalatertimeBesuretosetvalidvaluesfortheclustersizeandresourcesunderResourceConfigbeforeyouapplyyourfinalchangestotheplan

b (Optional)ForGemFireserviceplancacheserversonlyentertheamountofCPURAM(MB)EPHEMERALDISK(MB)andPERSISTENTDISK

copyCopyrightPivotalSoftwareInc2013-2018 22 17

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 23: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

(MB)resourcestoallocateforeachserverVMbasedonyourcapacityrequirementsForproductiondeploymentsPivotalrecommendsincreasingthenumberofCPUstoatleast2Approximately1GBofconfiguredRAMisreservedfortheVMoperatingsystemallRAMabovethisamountisallocatedtotheJVMthatrunstheGemFireserverNoteTheresourcesallocationsforGemFirelocatorsandotherservicecomponentsareautomaticallyconfiguredtotheirrecommendedsettingsandtheycannotbechanged

6 ClickSave

7 ClicktheInstallationDashboardlinkTheInstallationDashboardscreendisplays

8 ClickApplyChanges

PivotalCloudFoundryOpsManagerdeploysasinglevirtualmachinetoruntheGemFireServiceBrokerpreallocatesalladditionalVMsrequiredforthethreeGemFireServiceplanclustersYoucanaccessinformationaboutthedeploymentsfromthePivotalCloudFoundryOpsManagerconsole

AftertheGemFireclusterserviceinstancesaredeployedtheGemFireServiceBrokerautomaticallyregisterstheserviceanditsserviceplansintheElasticRuntimeMarketplacePivotalCloudFoundryuserscannowcreateandbindtoinstancesoftheconfiguredserviceplansSeeUsingthePivotalGemFireServiceonPivotalCloudFoundry

DeferringServicePlanConfigurationAsmentionedintheprocedureaboveitispossibletoleaveaserviceplanunallocatedanddeferitsconfigurationandresourceallocationtoalatertimeTodothissetthenumberoflocatorsandserversfortheplantozerointheResourceConfigtab

WhenyouarereadytofinalizetheconfigurationfollowthesamestepsinCreatingGemFireServicePlanstosetanyrequiredpropertiesandallocateresourcesfortheplanintheResourceConfigtabFinallyclickApplychangesintheOpsManagertocreatetheserviceinstancesthatyouallocated

ApplicationSecurityGroupsToenableaccesstotheGemFireforPCFtileserviceyouneedtoensureyoursecuritygroupallowsaccesstotheGemfirelocatorandserverVMsconfiguredinyourdeploymentTheIPaddressesforthesecanbeobtainedfromOpsManagerbyclickingonGemFireTileandnavigatingtoStatustabAlltheIPSarementionedunderthecolumnIPSYoushouldensurethefollowingTCPportsareenabledfortheIPaddresses70714040455221MoredetailscanbefoundatApplicationSecurityGroups

protocoltcpdestinationltYOUR-GEMFIRE-LOCATORS-AND-SERVERS-IP-RANGEgtports70714040455221

WarningWerecommendupdatingyourPCFinstallationrsquosdefaultapplicationsecuritygroupasthedefaultapplicationsecuritygroupinPivotalCloudFoundryallowsallegresstraffic

Defaultapplicationsecuritygroup

[destination0000-169254169253protocolalldestination169254169255-255255255255protocolall]

AdditionalapplicationsecuritygrouprulesmaybenecessarytotoensureotherPCFservicescontinuetofunctioncorrectly

copyCopyrightPivotalSoftwareInc2013-2018 23 17

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 24: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

copyCopyrightPivotalSoftwareInc2013-2018 24 17

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 25: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

UsingGemFireforPivotalCloudFoundryAsyouwouldexpectwithanydataserviceonPivotalCloudFoundry (PCF)theGemFireservicesimplifiesthedeploymentandconfigurationofsoftwarethatsupportsyourapplicationsWhenyoucreateaGemFireserviceinstanceyouareinstantlyprovidedwithadedicatedclusterofGemFiremembersruningondedicatedVMsthatuseJVMandGemFiresettingsautomaticallytunedformostusecasesYoucanthenconfiguretheclusterbasedonyourapplicationneedsForexampleyoumightwanttouseanexistingGemFireconfigurationfromaGemFiredevelopmentenvironmentonyourlaptopInthatcaseyoucanexporttheclusterconfigurationusingGemFirersquos gfshexportcluster-configuration anduploadittoaGemFireserviceinstanceinyourPCFenvironmentusingtheGemFireserviceCLIforPCFGemFireCLIisprovidedasaCFCLIpluginthatincludescommandsforrestartingandconfiguringGemFireserviceinstancesaswellasdownloadingGemFireconfigurationandlogsonaperclusterbasis

CreatingaGemFireServiceInstance

ConfiguringaGemFireServiceInstance

WorkingwithaGemFireServiceInstance

AccessingGemFireServiceConnectionInformation(Binding)

DeployingApplicationsforUsewiththeGemFireService

BindinganApplicationtotheGemFireService

PushingorRestagingApplicationsAfterServiceChanges

ViewingBindingMetaDataandEnvironmentVariables

UnbindinganApplicationfromtheGemFireService

DeletingaGemFireServiceInstance

ConfiguringMulti-site(WAN)Connections

CreatingaGemFireServiceInstanceThefollowingproceduredescribeshowtocreateaGemFireserviceinstanceinthePivotalCloudFoundryElasticRuntimeenvironment

1 IfyouhavenotdonesoalreadyinstallthePivotalCloudFoundryCommandLineInterfaceSeeInstallingthePCFCLI Installationbinariesareavailablehere

2 LogintoPCFusingthePCFCLI$cflogin

3 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttocreatetheservice$cftarget-altapi-endpointgt-oltorganizationgt-sltspacenamegt

4 Runthefollowingcommandtoviewtheavailableserviceplans$cfmarketplace

Getting services from marketplace in org staging space staging as adminOKservice plans descriptionp-gemfire GemFireServicePlan1 Dedicated GemFire instanceTIP Use cf marketplace -s SERVICE to view descriptions of individual plans of agiven service

5 Typethefollowingcommandtocreatetheserviceplan$cfcreate-serviceGemFireServicePlan1ltservice-plan-namegtltservice-instance-namegt

whereisthenameoftheServicePlanyouseeinthemarketplacendashinthisexampleldquoGemFireServicePlan1rdquondashandisadescriptivenamethatyouwanttousefortheserviceForexample

$ cf create-service p-gemfire GemFireServicePlan1 my-gemfire-testCreating service my-gemfire-test in org staging space staging as adminOK

copyCopyrightPivotalSoftwareInc2013-2018 25 17

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 26: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

ConfiguringaGemFireServiceInstanceToconfigureaGemFireserviceinstance(cluster)withyourcacheconfigurationandgemfirepropertiesyouwillneedtousetheGemFireserviceCFCLIpluginIfyouhavenotinstalledthepluginyetfollowtheinstructionsforinstallationdescribedinUsingtheGemFireforCloudFoundryCLIPlug-in

ApplyingaclusterconfigurationinvolvesuploadingtheconfigurationzipfiletotheclusterandrestartingtheclusterTheconfigurationzipfileisintheformatusedbytheGemFiregfshcommandsforexportingandimportingclusterconfigurations(seeExportingandImportingClusterConfigurations inthePivotalGemFiredocumentation)ThatallowsforaclusterconfigurationtobeexportedfromanexistingdeploymentandusedforaGemFireserviceinstanceonPCFAlternativelyaclusterconfigurationzipfilecanbecreatedmanuallyfromanexistingGemFirecachexmlconfigurationGemFirepropertiesandanyaccompanyingimplementationandtheirdependencyjarsasfollows

Createadirectorycalled cluster

Copyyourcachexmlconfigurationfileintothedirectoryandrenameitto clusterxml

Ifthereareanygemfirepropertiesthatshouldbesetontheclustercopyyourgemfirepropertiesfileintothedirectoryandrenameittoclusterproperties

Ifthereareanyimplementationjarsandtheirdependencyjarsthatshouldbedeployedtotheservers

copytheimplementationjarsinto cluster directorycopyanydependencyjarsintoadirectorycalled lib under cluster directory

Createazipfilefrom cluster directory

Thefollowingexampleshowsthecontentsofaconfigurationzipfile

$unzip-tcluster_configzipArchivecluster_configziptestingclusterOKtestingclusterclusterpropertiesOKtestingclusterclusterxmlOKtestingclustermyCallbacksjarOKtestingclusterlibOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_configzip

Inthisexample myCallbacksjar containstheimplementationofthecallbacksreferencedinthecacheconfiguration clusterxml andthelibdirectorycontainsthejarsthatmyCalllbacksjardependson

Uploadandapplyyourconfigurationusing cfrestart-gemfire commandwith --cluster-config optionForexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzipBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

Intheaboveexampleaclusterconfigurationcontainedin cluster_configzip fileinthecurrentdirectoryisuploadedtotheserviceinstancemy-gemfire-cluster andappliedtoituponrestartingtheserviceinstance(applyingaclusterconfigurationrequiresthatalltheserversintheclusterberestarted)

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringaServiceInstanceUsingaSpringApplicationContextXMLIfyouuseSpringyoucanconfigureyourGemFireserviceinstancesusingaSpringApplicationContextXMLfileinsteadofGemFirecacheXMLconfigurationTousethisapproachyoumustincludeaSpringapplicationcontextXMLfileinajarthatisprovisionedinyourconfigurationzipfileundera lib subdirectoryofa cluster directoryInadditionyoumustplaceallimplementationanddependencyjarsinthe clusterlib directoryoftheconfigurationzipfileThefollowingaredetailedstepsforcreatingaSpringconfigurationzipfile

1 Createadirectorycalled cluster thenasubdirectoryunderitcalled lib

2 PlaceyourSpringapplicationcontextXMLfileinanimplementationjarandnotethefullclasspathtotheXMLfileasitappearsintheJARYouwillneedtoreferencethispathlaterinthe cf restart-gemfire command

copyCopyrightPivotalSoftwareInc2013-2018 26 17

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 27: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

3 CopyalloftheimplementationanddependencyJARsthatshouldbedeployedtotheserverstothe clusterlib directory

4 Createazipfileofthe cluster directory

Forexamplethefollowingcommandshowsthesamplecontentsofaconfigurationzipfile

$unzip-tcluster_spring_configzipArchivecluster_spring_configziptestingclusterOKtestingclusterlibOKtestingclusterlibmyImplementationjarOKtestingclusterlibmyDependency1jarOKtestingclusterlibmyDependency2jarOKNoerrorsdetectedincompresseddataofcluster_spring_configzip

IntheaboveexampleaSpringXMLfilecouldbeplacedinanyoftheJARfilesunderthe clusterlib directoryTheconfigurationwouldthenbeuploadedandappliedtoaserviceinstanceusingthe cfrestart-gemfire commandwith --cluster-config and --spring-xml optionsForexample

cfrestart-gemfiremy-gemfire-cluster--cluster-configcluster_spring_configzip--spring-xmlcommyCompanymyAppmyAppContextxmlBrokerHTTPUsernamegtBrokerHTTPPasswordgtClustersuccessfullyrestarted

Intheaboveexampletheclusterconfigurationfile cluster_spring_configzip isuploadedtothe my-gemfire-cluster serviceinstanceandthenappliedafterrestartingtheserviceinstanceThe --spring-xml optionreferencestheclasspathtoaSpringXMLconfigurationfileisincludedinoneoftheJARfilesincluster_spring_configzip

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

ConfiguringJVMandGemFirePropertiesTheGemFireclusterconfigurationlackstheabilitytosetanyJVMorGemFireimmutableproperties(thepropertiesthathavetobeprovidedattheJVMstartup)Thosepropertiescanbesetusinganoptional --properties argumentthattakesayamlfilecontainingoptionalJVMandGemFirepropertiesforlocatorsandserversForexample

$ cat propertiesymlproperties server jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m - -DgemfireOSProcessENABLE_OUTPUT_REDIRECTION=true gemfire statistic-sample-rate 3000 locator jvmargs - -XXPermSize=96m - -XXMaxPermSize=96m gemfire statistic-sample-rate 2000

Thesettingsprovidedinthiswaywillaugmenttheexisting(default)settingsThisallowsforthevaluesoftheexistingpropertiestobemodifiedandnewonestobeappliedThefollowingcommandforexample

$ cf restart-gemfire my-gemfire-cluster --cluster-config cluster_configzip --properties propertiesymlBroker HTTP UsernamegtBroker HTTP PasswordgtCluster successfully restarted

appliesthepropertiesfrom propertiesyml shownabovetotheserversandlocatorsinthecluster my-gemfire-cluster andtheclusterconfigurationprovidedin cluster_configzip FormoreinformationaboutalltheavailableCLIcommandsseeUsingtheGemFireforCloudFoundryCLIPlug-in

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

copyCopyrightPivotalSoftwareInc2013-2018 27 17

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 28: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

CloudDeploymentConsiderationsCertainGemFireconfigurationsettingsareaffectedbythecloudnatureofserviceinstancedeploymentsNotableexamplesareanyGemFirepropertiesthattakeanIPaddressorhostnameforvalueSuchpropertiesshouldnotbeusedAlsodiskdirectoriesforGemFireoverflowandpersistencediskstoresarenotsupportedDiskstoresmustbeconfiguredwithoutdiskdirectoriesAsaresultdiskstoresarecreatedintheworkingdirectory

NetworkPartitionDetectionAsofv1500theGemFireforPCFserviceshipswiththe enable-network-partition-detection propertyenabled

Thisbuilt-infunctionalityofGemFirehelpsdetectandresolveproblemsthatresultfromadversenetworkeventsWithoutthisfunctionalityyouruntheriskofenteringasplit-brainsituationwhereGemFirelocatorsandserverscannotcommunicatewiththerestoftheclusterleadingtodowntimeanddataloss

Sincethe enable-network-partition-detection propertycanonlybeenabledordisabledacrosstheentireclusteratoncetheclustermustbebroughtdowntogetherHenceupgradesfromanearlierversiontov1500cannothappeninarollingfashionFurtherinstructionscanbefoundinourreleasenotes

PleaserefertothePivotalGemFiredocumentation formoreinformationonNetworkPartitioning

WorkingwithaGemFireServiceInstanceFortheadministrationconfigurationandmonitoringofGemFireserviceinstancesthefollowingtoolsareavailable

GemFirePulse providesagraphicaldashboardformonitoringvitalreal-timehealthandperformanceofGemFireclustersmembersandregionsUsePulsetoexaminetotalmemoryCPUanddiskspaceusedbymembersuptimestatisticsclientconnectionsWANconnectionsandcriticalnotifications

GemFireservicepluginforCFCLIprovidesCLIcommandsforconfiguringandrestartingGemFireclustersaswellasaccessingtheGemFirelogsandstatistics

GemFiregfsh providesremoteaccesstoGemFireclustersandmanymanagementmonitoringandconfigurationfeatures

AccessingaClusterviaPulse

EachGemFireserviceinstance(cluster)hasitsownPulseinstancewhichcanbeaccessedviaaManagelinklocatedundertheserviceinstanceintheDeveloperConsole

RestartingaCluster

AGemFireclusterisrestartedusingtheGemFireCLIcommand cfrestart-gemfire Thiscommandhasmultipleoptions(useitwith -h toseeallofthem)thatcanbeusedinanycombinationtoaccomplishdesiredtasksduringarestart

ThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingGemFireLogsandStatisticsandClusterConfiguration

GemFirelogsandstatisticsfilesforaclustercanbedownloadedusingtheGemFireCLIcommand cfexport-gemfire Forexample

$ cf export-gemfire cluster1 --logs cluster1_logszipBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote logs and stats to `cluster1_logszip`

cluster1 isthenameoftheclustertogetthelogsfrom

copyCopyrightPivotalSoftwareInc2013-2018 28 17

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 29: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

cfexport-gemfire isusedtoaccesstheclusterconfigurationaswellForexample

$ cf export-gemfire demo1 --cluster-config demo1_configzip --properties demo1_propsyamlBroker HTTP UsernamegtBroker HTTP PasswordgtSuccessfully wrote cluster config to `demo1_configzip`Successfully wrote cluster properties to `demo1_propsyaml`

Inthisexample cfexport-gemfire isusedtodownloadtheclusterconfigurationtothefilenamed demo1_configzip andpropertiestothefilenameddemo1_propsyaml fortheclusternamed demo1

NotethattheGemFirelogfilesalsoincludethefullconfiguration

SeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPassword

AccessingaClusterviagfsh

GemFireclusterscanbeaccessedvia gfsh fromanymachinewithintheCloudFoundrynetwork

FirstidentifythelocatorIPaddressofyourclusterwithaservicekey

$cfcreate-service-keydemo1my-service-keyCreatingservicekeymy-service-keyforserviceinstancedemo1asadminOK$cfservice-keydemo1my-service-keyGettingkeymy-service-keyforserviceinstancedemo1asadminlocators[10244050[55221]10244051[55221]]passwordltCLUSTER_USERNAMEgtusernameltCLUSTER_PASSWORDgt

UsethelocatorIPaddressestoconnectwithgfshrunningonahostwithintheCloudFoundrynetwork

$gfshgfshgtconnect--locator=10244050[55221]ConnectingtoLocatorat[host=10244050port=55221]ConnectingtoManagerat[host=10244050port=1099]Successfullyconnectedto[host=10244050port=1099]

AccessingGemFireServiceConnectionInformation(Binding)AfteryoudeployaJavaBuildpackapplicationandbindittoaGemFireforPivotalCloudFoundryserviceinstanceyourapplicationreceivestheGemFireclusterlocatoraddressesandcredentialsintheVCAP_SERVICESenvironmentvariableIfyouhaveenabledtheGemFireRESTAPIthentheRESTURLisalsoprovidedasmetadatainVCAP_SERVICES

VCAP_SERVICESprovidesdataasaJSONdocumentsoyoucanuseavarietyoftechniquestoaccesstherelevantconnectioninformationSeeViewingBindingMetaDataforanexampleofthedataprovidedinVCAP_SERVICES

NoteGemFireforPivotalCloudFoundryonlysupportsdeployingGemFireclientapplicationsYoucannotdeployanapplicationthatparticipatesintheboundGemFireclusterasapeermember

UsingaJSONLibrarytoAcquireConnectionInformationBecauseVCAP_SERVICESprovidesaJSONdocumentyoucanalsouseaJavaJSONlibrarytoparsethedataforconnectioninformationThisexamplecodeusesthe Jackson librarytoparsethedocument

copyCopyrightPivotalSoftwareInc2013-2018 29 17

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 30: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

packagepivotal

importcomfasterxmljacksoncoreJsonParseExceptionimportcomfasterxmljacksondatabindJsonMappingExceptionimportcomfasterxmljacksondatabindObjectMapperimportpivotalGemFireClientLocator

importjavaioIOExceptionimportjavautilArrayListimportjavautilListimportjavautilMap

publicclassEnvParser

privatestaticEnvParserinstance

privateEnvParser()

publicstaticEnvParsergetInstance()if(instance=null)returninstancesynchronized(EnvParserclass)if(instance==null)instance=newEnvParser()returninstance

publicListltLocatorgtgetLocators()throwsJsonParseExceptionJsonMappingExceptionIOExceptionListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()Mapcredentials=getCredentials()ListltStringgtlocators=(ListltStringgt)credentialsget(locators)for(Stringlocatorlocators)StringlocatorIP=locatorsubstring(0locatorindexOf([))StringportString=locatorsubstring(locatorindexOf([)+1locatorindexOf(]))locatorListadd(newLocator(locatorIPIntegerparseInt(portString)))returnlocatorList

publicStringgetUsername()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringusername=nullMapcredentials=getCredentials()username=(String)credentialsget(username)returnusername

publicStringgetPasssword()throwsJsonParseExceptionJsonMappingExceptionIOExceptionStringpassword=nullMapcredentials=getCredentials()password=(String)credentialsget(password)returnpassword

privateMapgetCredentials()throwsJsonParseExceptionJsonMappingExceptionIOExceptionMapcredentials=nullStringenvContent=Systemgetenv()get(VCAP_SERVICES)ListltLocatorgtlocatorList=newArrayListltGemFireClientLocatorgt()ObjectMapperobjectMapper=newObjectMapper()Mapservices=objectMapperreadValue(envContentMapclass)ListgemfireService=getGemFireService(services)if(gemfireService=null)MapserviceInstance=(Map)gemfireServiceget(0)credentials=(Map)serviceInstanceget(credentials)returncredentials

privateListgetGemFireService(Mapservices)return(List)servicesget(p-gemfire)

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

copyCopyrightPivotalSoftwareInc2013-2018 30 17

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 31: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

packagepivotal

importcomgemstonegemfireLogWriterimportcomgemstonegemfiredistributedDistributedMemberimportcomgemstonegemfiresecurityAuthInitializeimportcomgemstonegemfiresecurityAuthenticationFailedException

importjavaioIOExceptionimportjavautilProperties

publicclassClientAuthInitializeimplementsAuthInitialize

privateEnvParserenv=EnvParsergetInstance()

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()tryStringusername=envgetUsername()Stringpassword=envgetPasssword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)catch(IOExceptione)thrownewAuthenticationFailedException(Exceptionreadingusernamepasswordfromenvvariablese)returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

TheauthenticatedapplicationcanthencreateaGemFireClientCache asfollows

Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)tryListltURIgtlocatorList=EnvParsergetInstance()getLocators()for(URIlocatorlocatorList)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCacheclient=ccfcreate()catch(IOExceptione)handle

Usingspring-cloudtoAcquireConnectionInformationAsanalternativetouseaJavaJSONlibraryyoucanuse spring-cloud withtheSpringCloudGemFireConnector toparsetheJSONdataNotethatthismethoddoesnotrequireyourapplicationtobeaSpringprojectortohave spring-core asadependencyYouonlyneedtospecify spring-cloud andspring-cloud-gemfire-cloudfoundry-connector asdependenciesasshowninthisexerpt

copyCopyrightPivotalSoftwareInc2013-2018 31 17

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 32: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

ltdependencygtltgroupIdgtcomgemstonegemfireltgroupIdgtltartifactIdgtgemfireltartifactIdgtltversiongt810ltversiongtltdependencygtltdependencygtltgroupIdgtiopivotalspringcloudltgroupIdgtltartifactIdgtspring-cloud-gemfire-cloudfoundry-connectorltartifactIdgtltversiongt100BUILD-SNAPSHOTltversiongtltdependencygtltdependencygtltgroupIdgtorgspringframeworkcloudltgroupIdgtltartifactIdgtspring-cloud-coreltartifactIdgtltversiongt120RC1ltversiongtltdependencygtltrepositorygtltidgtspring-milestonesltidgtlturlgthttprepospringiolibs-milestonelturlgtltrepositorygtltrepositorygtltidgtgemfire-repositoryltidgtltnamegtGemfireRepositoryltnamegtlturlgthttpdistgemstonecommavenreleaselturlgtltrepositorygt

ForanapplicationthatbindstoaGemFireservicenamed MyService youwouldthenusethe CloudFactory APItoobtainaserviceconnectionfromwhichyougetmetadatasuchastheavailablelocatorsusernameandpasswordForexample

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

URI[]locators=myServicegetLocators()StringuserName=myServicegetUsername()Stringpassword=myServicegetPassword()

ToauthenticateyourclientapplicationyoumustimplementtheGemFireAuthInitialize interfaceasshowninthisexample

publicclassClientAuthInitializeimplementsAuthInitialize

publicstaticfinalStringUSER_NAME=security-usernamepublicstaticfinalStringPASSWORD=security-password

publicGemfireServiceInfoserviceInfo

privateClientAuthInitialize()CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()serviceInfo=(GemfireServiceInfo)cloudgetServiceInfo(MyService)

publicstaticAuthInitializecreate()returnnewClientAuthInitialize()

Overridepublicvoidclose()

OverridepublicPropertiesgetCredentials(Propertiesarg0DistributedMemberarg1booleanarg2)throwsAuthenticationFailedExceptionPropertiesprops=newProperties()

Stringusername=serviceInfogetUsername()Stringpassword=serviceInfogetPassword()propsput(USER_NAMEusername)propsput(PASSWORDpassword)

returnprops

Overridepublicvoidinit(LogWriterarg0LogWriterarg1)throwsAuthenticationFailedException

copyCopyrightPivotalSoftwareInc2013-2018 32 17

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 33: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

ThecodetoinitializetheclientobtainauthorizationandfinallycreateaGemFireClientCache wouldresemble

CloudFactorycloudFactory=newCloudFactory()Cloudcloud=cloudFactorygetCloud()GemfireServiceInfomyService=(GemfireServiceInfo)cloudgetServiceInfo(MyService)Propertiesprops=newProperties()propssetProperty(security-client-auth-initpivotalClientAuthInitializecreate)ClientCacheFactoryccf=newClientCacheFactory(props)URI[]locators=myServicegetLocators()for(URIlocatorlocators)ccfaddPoolLocator(locatorgetHost()locatorgetPort())ClientCachecache=ccfcreate()

AcquiringaConnectionfromaSpringApplicationIfyouaredevelopingaSpringApplicationthenacquiringGemFireserviceconnectioninformationisasimpletwo-stepprocess

1 ConfigureGemFire spring-cloud and spring-cloud-gemfire-cloudfoundry-connector asdependenciesinyourproject

dependenciescompile(comgemstonegemfiregemfire810)compile(iopivotalspringcloudspring-cloud-gemfire-spring-connector100BUILD-SNAPSHOT)compile(iopivotalspringcloudspring-cloud-gemfire-cloudfoundry-connector100BUILD-SNAPSHOT)

2 Inyourapplicationauto-wiretheGemFireClientCache

ConfigurationServiceScanRestControllerpublicclassMyController

AutowiredClientCachecache

ConfiguringaJavaRESTClienttoAccessaServiceInstanceviaHTTPSTosupportJavaclientapplicationsaccessingaserviceinstanceRESTAPIendpointviaHTTPSyoumustmodifytheJavaBuildpacktoprovisionsecurityartifactsYouwillneedtoobtainthecorrectSSLcertificatefromyourCloudFoundryHAProxycredentialsandimportitintotheJREtruststoreoftheJavaBuildpackImportingthecertificatethenmakesitavailabletoyourJavaapplications

YouconfiguretheJREwithadditionalresourcesbyaddingtheresourcefilestotheappropriatelocationunderthe resources directoryofthebuildpackForSSLcertificatesthatshouldbeaddedtotheOpenJDKJREtruststorethecorrectlocationis resourcesopen_jdk_jrelibsecurity underthebuildpackrootToaddcustomSSLcertificatesaddyourcacertsfileto resourcesopen_jdk_jrelibsecuritycacerts ThisfileisoverlayedontotheOpenJDKdistributionTheexactproceduretofollowis

1 GettheSSLcertificatefromyourPCFOpsManagerbygoingtotheCredentialstabinElasticRuntimeandcopyingtheSSLRSAcertificatefromtheHAProxysectionSavethecertificatetoanewfile(forexample myCertcert )

2 Importthesavedcertificatefiletoyourtruststore

3 Clonethejavabuild-pack

4 CopyyourtruststorefromStep2aboveinto resourcesopen_jdk_jrelibsecuritycacerts underyourbuildpackrootdirectory

5 RebuildyourJavaBuildpackThisexampleusesofflinemode

$cd~projectsjava-buildpack$bundleinstall$bundleexecrakepackageOFFLINE=true

6 UploadthebuildpackForexample

copyCopyrightPivotalSoftwareInc2013-2018 33 17

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 34: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

$cfcreate-buildpacksecure-java-buildpackbuildjava-buildpack-offline-ltshagtzip1

7 MakesureclientapplicationsuseHTTPSwhenformingtheRESTAPIendpointURL

8 UsethenewbuildpackwhenpushingyourclientapplicationsForexample

$cfpush-fappyml-t30-bsecure-java-buildpack

DeployingApplicationsforUsewiththeGemFireServiceThissectionprovidestipsonpushingyourapplicationtothePivotalCloudFoundryElasticRuntimeenvironmentforusewiththeGemFireserviceSomeoftheapplicationdeploymentstepsmaydifferdependingonwhatkindofapplicationyouaredeploying

Re-deployingyourapplicationdoesnotaffectdatastoredinanyexistingserviceinstancesboundtotheapplication

SeeDeployanApplication inthePivotalCloudFoundryDocumentationfordetailedinformationonpushingCFapplications

UsingtheJavaBuildpackImportantPivotalrecommendsthatyouusethelatestJavaBuildpackwhenpushingyourapplicationsSpecifythelocationofthebuildpackusingthe-b parameter

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit

Toavoidhavingtorestageyourapplicationafterbindingtheserviceyoucanpushtheapplicationinitiallywiththe --no-start command

$cfpushltyour-app-namegt-pltlocation-of-your-app-filegt-bhttpsgithubcomcloudfoundryjava-buildpackgit--no-start

BindinganApplicationtotheGemFireServiceThefollowingproceduresdescribehowtobindaGemFireserviceinstancetoyourPivotalCloudFoundryapplication

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleftThisshouldbethesameOrgwhereyoucreatedtheserviceinstance

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouwishtobindtotheserviceApagedisplaysshowingthealreadyboundservicesandinstancesforthisapplication

5 ClickBindAlistofavailableservicesdisplays

6 ClicktheBindbuttonfortheGemFireserviceyouwanttobindtothisapplication

7 UsingthePivotalCloudFoundryCLIstartorrestageyourapplicationSeePushingorRestagingApplicationsAfterChanges

CLIInstructions

copyCopyrightPivotalSoftwareInc2013-2018 34 17

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 35: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

AlternatelyviatheCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 Runthefollowingcommandtotargetthespecificorgandspacewhereyouwanttocreatetheserviceplan$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommandtoviewrunningserviceinstances$cfservices

Getting services in org staging space staging as adminOKname service plan bound appsmy-gemfire-test gemfire GemFireSmallPlan

4 Runthefollowingcommandtobindtheapplicationtotheserviceinstance$cfbind-serviceltapplicationgtltservice-instance-namegt

Forexample

$ cf bind-service gfe-app my-gemfire-testBinding service my-gemfire-test to app gfe-appin org staging space staging as adminOKTIP Use cf restage to ensure your env variable changes take effect

5 Restageyourapplication$cfrestageltapplicationgt

PushingorRestagingApplicationsAfterServiceChangesToensurethatyourapplicationpicksupthecorrectenvironmentvariablesyoumustrestageorre-pushyourapplicationsafterbindingthemtotheGemFireserviceThiscancurrentlybedoneusingtheCLIInadditionifyoumakeanyotherchangestotheGemFireServicewhileitisboundtoyourapplication(forexampleaddmodifyordeletetheservice)youwillneedtore-pushorrestageyourapplicationafterwards

Pushingorre-stagingyourapplicationdoesnotaffectdatastoredintheexistingserviceinstance

Torestageorre-pushyourapplicationusingthePivotalCloudFoundryCLI

1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI$cflogin

2 RunthefollowingcommandtotargettheAPIendpointorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-altapi-endpointgt-oltorganizationgt-sltspace_namegt

3 Pushorrestageyourexistingapplication$cfpushltapplicationgt-pltlocation-of-your-app-filegt-bltbuildpack-locationgt

or$cfrestageltapplicationgt

Alternatelyifyoupushedyourapplicationwithoutstartingityoucanstartyourapplicationnowtopickupthenewlyboundservice$cfstartltapplicationgt

FormoredetailsondeployingapplicationsseeDeployanApplication inthePivotalCloudFoundrydocumentation

ViewingBindingMetaDataToviewthebindingvariablesusethefollowingprocedures

copyCopyrightPivotalSoftwareInc2013-2018 35 17

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 36: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

PCFDeveloperConsoleInstructions1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireservice

5 ClickontheEnvVariablestabTheenvironmentvariablesfortheservicebindingdisplay

AlternatelyyoucanalsoviewcredentialsusedbytheservicewhenbindingtotheapplicationbyclickingontheServicestabandclickingShowcredentialsServicecredentialsandlocatoraddressinformationdisplays

CLIInstructionsToviewthebindingvariablesintheCLItypethefollowingcommandafteryouhaveboundyourapplicationtotheGemFireservice

$cfenvltapplication-namegt

Ifsuccessfulyoushouldseesimilartothefollowinginthereturnedoutput

Getting env variables for app in org space as OKSystem-Provided VCAP_SERVICES p-gemfire [ credentials locators [ 100055[55221] 100056[55221] ] password 15587128842615488747 rest_url username dacaf950-1633-4741-7dc5-eb11ce5f33e2 label p-gemfire name MyService plan GemFireServicePlan1

copyCopyrightPivotalSoftwareInc2013-2018 36 17

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 37: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

tags [ gemfire ] ] No user-defined env variables have been setNo running env variables have been setNo staging env variables have been set

UnbindinganApplicationfromtheGemFireServiceWhenyoucreateaGemFireserviceinstancetheGemFireServiceBrokerallocatesaspecificclusterofGemFirelocatorsandserversYoucanbindunbindandthebindagaintothatparticularserviceinstanceasoftenasyouwantTheserviceinstancealwaysusesthesameclusterandtheServiceBrokerdoesnotdoanythingtothedatainthatserviceinstance

PCFDeveloperConsoleInstructionsTounbindtheapplicationfromtheGemFireservice

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 SelectthespacewhereyourGemFireserviceinstanceandboundapplicationhavebeendeployed

4 SelecttheapplicationthatyouhaveboundtotheGemFireserviceApagedisplaysthatshowtheboundservicesandinstancesforthisapplication

5 LocatetheboundserviceinstanceyouwanttounbindandclickUnbind

6 AconfirmationdialogboxdisplaysClickUnbindagain

7 Ifsuccessfulthefollowingmessagewillappearatthetopofthescreen

copyCopyrightPivotalSoftwareInc2013-2018 37 17

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 38: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

ServicesuccessfullyunboundfromtheapplicationTIPUselsquocfpushrsquotoensureyourenvvariablechangestakeeffect

8 UsethePivotalCloudFoundryCLItopushorrestageyourapplicationforthechangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfunbind-serviceltapplicationgtltservice-instance-namegt

whereisthenameoftheGemFireinstanceyouareunbindingfromthespecifiedForexample

$ cf unbind-service gfe-app my-gemfire-testUnbinding app gfe-app from service my-gemfire-test in org staging spacestaging as adminOK

4 Restageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

DeletingaGemFireServiceInstanceWhenyoudeleteaGemFireserviceinstanceallapplicationsthatareboundtothatserviceareautomaticallyunboundandanydataintheserviceinstanceisclearedInadditiontheallocatedserviceinstance(GemFirecluster)isreturnedtothepoolofavailableclustersandthoselocatorsandcacheserversarenowavailabletofutureapplications

PCFDeveloperConsoleInstructionsTodeleteaserviceinstanceusingthePivotalCloudFoundryDeveloperConsole

1 LogintothePivotalCloudFoundryDeveloperConsole

2 SelectyourOrgfromthedrop-downlistontheleft

3 LocatetherowunderServicesthatcontainstheserviceinstanceyouwanttodeleteandclickDelete

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

CLIInstructions1 LogintoyourPivotalCloudFoundryenvironmentusingthePivotalCloudFoundryCLI

$cflogin

2 RunthefollowingcommandtotargettheorgandspacewhereyouwanttopushorrestagetheapplicationForexample$cftarget-oltorganizationgt-sltspace_namegt

3 Runthefollowingcommand$cfdelete-serviceltservice-instance-namegt

whereisthenameoftheGemFireserviceyouaredeletingEnterlsquoyrsquowhenpromptedForexample

$ cf delete-service my-gemfire-testReally delete the service my-gemfire-testgt yDeleting service my-gemfire-test in org staging space staging as admin

copyCopyrightPivotalSoftwareInc2013-2018 38 17

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 39: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

OK

4 Ifyouhadapplicationsthatwereboundtothisserviceyoumayneedtorestageorre-pushyourapplicationfortheapplicationchangestotakeeffectSeePushingorRestagingApplicationsAfterChanges

ConfiguringMulti-site(WAN)ConnectionsBetweenTwoorMoreGemFireServiceInstancesYoucanconfigureGemFireserviceinstancesformulti-site(WAN)communicationForinformationaboutGemFiremulti-sitereplicationcapabilitiesseeMulti-site(WAN)Configuration intheGemFireUserrsquosGuide

Akeyprerequisiteformulti-sitereplicationisnetworkconnectivitybetweentheGemFireinstancestobeconfiguredformulti-siteconnectionsGemFirenodesontheoppositesidesofamulti-site(WAN)linkmustbeabletoestablishdirectconnectionstoeachother

TheGemFireserviceforPCFprovidesfunctionalitythatmakestheWANconfigurationprocesseasierforGemFireclustersinPCFTheserviceprovidessupportforconfiguringserviceinstancessothattheydiscovereachotherandestablishWANconnectionsYoumuststillcreateWANsendersandreceiversandconfiguredataregionsformulti-sitereplication

ThestepstoenableWANconnectionsbetweentwoGemFireserviceinstancesareasfollows

1 ForeachserviceinstanceobtaintheWANconfigurationURLusingthecommand

cfshow-wan-config-urlltservice_instancegt

2 WhenyoucreatetheclusterconfigurationforeachserviceinstanceconfiguretheWANsendersandreceiversanddataregionsthatshouldbereplicatedovertheWAN

3 SettheGemFireproperty distributed-system-id toauniqueintegervalueinthepropertiesymlfileforeachserviceinstance(seetheprevioussectionformoreinformationaboutconfiguringGemFirepropertiesforaserviceinstance)

4 RestarteachserviceinstancewiththeWANconfigurationURLsfortheotherinstancespassedasargumenttothe --enable-wan optionofthe cfrestart-gemfire commandForexample

cfrestart-gemfireltservice_instance_Agt--cluster-configltcluster_A_config_zipgt--propertiesltproperties_cluster_A_ymlgt--enable-wanltcluster_B_WAN_config_URLgt

TheabovecommandrestartsthelocatorsinadditiontotheserversThiscommandalsorequirestheBrokerHTTPUsernameandPasswordSeethesectiononBrokerCredentialsonhowtoobtaintheBrokerHTTPUsernameandPasswordAfterrestartingtheclustersareenabledforWANcommunicationtoeachother

copyCopyrightPivotalSoftwareInc2013-2018 39 17

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 40: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

UsingtheGemFireforCloudFoundryCLIPlug-in

InstallationFollowthisproceduretoinstalltheGemFireCLIplug-in

1 Downloadtheplug-inbinaryfromPivotalNetwork

2 EnableexecutepermissionsonthedownloadedfileForexample

$chmoda+xcf-gemfire-cli-darwin-amd64

3 Installtheplug-inbinary

$cfinstall-plugincf-gemfire-cli-darwin-amd64-120

Installingplugincf-gemfire-cli-darwin-amd64-120OKPluginGemFirev120successfullyinstalled

4 (Optional)Usethe cfplugins commandtoverifythatyouhavesuccessfullyinstalledtheGemFireplugin

$cfpluginsListingInstalledPluginsOK

PluginNameVersionCommandNameCommandHelpGemFire120gemfireGemFireplugincommandshelptextGemFire120restart-gemfireRestartGemFirecacheservers(Alsousedforapplyingconfigurationchanges)GemFire120export-gemfireRetrieveGemFireartifactssuchaslogsandstatsGemFire120show-wan-config-urlDisplaytheWANconfigurationURLfortheserviceinstance

SeeUsingcfCLIPlugins inthePivotalCloudFoundry (PCF)documentationforgeneralinformationaboutinstallinguninstallingorlistingavailableCloudFoundryCommandLineInterfaceplug-ins

OverviewUsethe cf

gemfirecommandtodisplaybasicusageinformationfortheplugin

$cfgemfireNAMEcf-CloudFoundryplugintointeractwithGemFireserviceinstances

USAGEcf[globaloptions]command[commandoptions][arguments]

VERSION120

AUTHOR(S)PivotalInc

COMMANDSrestart-gemfireSERVICE_INSTANCE--cluster-configCONFIGZIP|-cCONFIGZIPexport-gemfireSERVICE_INSTANCEshow-wan-config-urlSERVICE_INSTANCEhelphShowsalistofcommandsorhelpforonecommand

GLOBALOPTIONS--help-hshowhelp--version-vprinttheversion

Executeanyofthecommandswiththe -h argumenttodisplayusageinformationForexample

copyCopyrightPivotalSoftwareInc2013-2018 40 17

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 41: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

$cfexport-gemfire-hNAMEexport-gemfire-RetrieveGemFireartifactssuchaslogsandstats

USAGEcfexport-gemfireSERVICE_INSTANCE[commandoptions]

DESCRIPTIONRetrieveartifactsfromagivenserviceinstance(cluster)

OPTIONS--logs-lpathfordownloadedlogfilearchive--cluster-config-cpathfordownloadedclusterconfiguration--properties-ppathfordownloadedclusterproperties

BrokerHTTPUsernameandPasswordThefollowingcommandsrequireadditionalauthentication

export-gemfire

restart-gemfire

TheBrokerusernameandpasswordcanbefoundonyourPCFOpsManagerontheGemfireforPCFTileSeetheCredentialstabUnderthenameGemfireBrokerCredentialstheywillbeintheformof usernamepassword Thesecredentialswillberequiredwhenrunningthecommands export-gemfire amprestart-gemfire byacommandlineprompt

Optionallythesecommandscanberunnon-interactivelybyusingtheflags --broker-username or -U and --broker-password or -P

export-gemfirecfexport-gemfire enablesyoutoexportartifactsfromagivenserviceinstancesuchastheGemFirelogsandstatisticsandtheclusterconfigurationandpropertiesTheclusterconfigurationandpropertiesexportedinthiswaycanbeappliedtoanotherserviceinstanceusingthe restart-gemfire command

The cfexport-gemfire--cluster-config

commanddownloadstheconfigurationintheformatprovidedbytheGemFireClusterConfigurationserviceSee

OverviewoftheClusterConfigurationService inthePivotalGemFiredocumentationformoreinformation

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

Usage

cfexport-gemfireSERVICE_INSTANCE[commandoptions]

Optionalargumentsinclude

--logs PATH mdashDownloadstheGemFirelogsandstatisticsfilesfortheclustertothepathandzipfilegivenbyPATH

--cluster-config PATH mdashDownloadstheGemFireclusterconfigurationtothepathandzipfilegivenbyPATH

--properties PATH mdashDownloadstheclusterpropertiesyamlfiletothepathandyamlfilegivenbyPATH

Example

cfexport-gemfireclusterA--logsclusterA_logszip--propertiesclusterA_propsyml--cluster-configclusterA_configzip

restart-gemfirecfrestart-gemfire enablesyoutorestartaGemFireclusterandperformanumberofclustertasksthateitherrequireaclusterrestart(suchasapplyingaclustercacheconfiguration)orthatareconvenienttoperformduringarestart(suchasclearingoutlogfiles)Thecommandallowsforldquodaisy-chainingrdquo

copyCopyrightPivotalSoftwareInc2013-2018 41 17

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 42: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

optionssoyoucanperformmultipletaskswithasinglerestartForexampleyoucanuseasingleapplicationofthiscommandtoapplyanewclusterconfigurationclearthelogfilesandenabletheRESTAPI

NoteUsing --reset-defaults with --cluster-config firstcausestheclusterconfigurationtoberestoredtotheoriginalconfigurationThenewconfiguration(providedwith --cluster-config )isthenappliedBothoperationstaketakeplaceduringthesamerestart

Yoursquollbepromptedforcredentials BrokerHTTPUsername

amp BrokerHTTPPassword

whenthiscommandisinvokedPleaseseethenoteonhowtoobtainthe

credentialsTorunthiscommandnon-interactivelythebrokerusernameandpasswordcanbeprovidedwith --broker-username or -U and--broker-password or -P flags

TheonlyrequiredargumenttothiscommandisthenameofaGemFireforPivotalCloudFoundryserviceinstancethatyouhavedeployedAllotherargumentsareoptional

Usage

cfrestart-gemfireSERVICE_INSTANCE[--clear-logs][--clear-disks][--cluster-configPATH][--default-serverenable|disable][--enable-wanCOMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS][--include-locators][--spring-xmlCLASSPATH_TO_XML][--propertiesPATH][--reset-defaults][--rest-apienable|disable][--timeoutSECONDS]

Optionalargumentsinclude

--clear-logs mdashClearsalloftheGemFirelogsandstatisticsfilesforthecluster

--clear-disks mdashClearsallofthediskstoresremovingallpersisteddataCAUTIONThisoptionremovesallpersisteddatafromthecluster

--cluster-config PATH mdashUploadstheclusterconfigurationfilegivenbyPATH

--default-server=enable|disable mdashDetermineswhethertostartupthedefaultGemFirecacheserver

--enable-wan COMMA_SEPARATED_LIST_OF_WAN_CONFIG_URLS mdashEnablesaGemFireWANreplicationchanneltoeachoftheserviceinstancesidentifiedbytheWANconfigurationURLsyouprovideYoucanobtaintheWANconfigurationURLsbyinvoking cf show-wan-config-url oneachoftheserviceinstancestowhichyouwanttoenableaWANconnectionThenprovidetheconfigurationURLsascommaseparatedargumentlistSettingthisoptionrestartstheGemFirelocators

--include-locators mdashIncludesthelocatorsinallrequestedactionsIfyouomitthisoptionthecommandonlyappliestocacheservers

--spring-xml mdashSpecifiestheclasspathtoaSpringXMLfileinaclusterconfigurationJARThisoptionappliestheSpringXMLfileintheJARtotheclusterThisoptionmustbeusedalongwiththe --cluster-config optiontoprovisionthecontainingJARfile

--properties PATH mdashAppliesthepropertiesintheYAMLfileatthespecifiedPATHtotheGemFireclusterSeeConfiguringJVMandGemFirePropertiesinConfiguringaGemFireServiceInstanceformoreinformation

--reset-defaults mdashRestorestheoriginaldefaultconfigurationfortheclusterclearsarchivesanddiskstoresCAUTIONThisoptionremovesallpersisteddatafromthecluster

--rest-api=enable|disable mdashEnablesordisablestheGemFireRESTdeveloperAPIEnablingtheRESTAPIsetsupasinglefrontendURLforRESTconnectionsConnectionstotheURLareloadbalancedbetweenallavailableservers

--timeout SECONDS mdashProvidesthetimeoutvalueinsecondsfortherestartcommand

show-wan-config-urlcfshow-wan-config-url showstheWANconfigurationURLforthegivenserviceinstanceinHTTPAuthenticationformatwithplaceholdersforthebrokerusernameamppasswordReplacetheplaceholdersintheURLbeforepassingitasinputtothe --enable-wan optionof cfrestart-gemfire toconfigureotherserviceinstancesforWANcommunicationtothisinstance

Pleaseseethenoteonhowtoobtainthecredentialstoreplacetheplaceholders BROKER_USERNAME and BROKER_PASSWORD intheURL

Usage

cfshow-wan-config-urlSERVICE_INSTANCE

Example

$ cf show-wan-config-url instance_one=gt httpsBROKER_USERNAMEBROKER_PASSWORDgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

Change the placeholders BROKER_USERNAME and BROKER_PASSWORD in the cli output before passing it as input to `cf restart-gemfire --enable-wan`

copyCopyrightPivotalSoftwareInc2013-2018 42 17

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 43: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

$ cf restart-gemfire --enable-wan httpsmy-usernamemy-passwordgemfire-brokergf2pcf-gemfirecomadminwancredentials93f7add8-d077-4489-b16b-4905c51d3d46

copyCopyrightPivotalSoftwareInc2013-2018 43 17

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 44: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

Troubleshooting

ServiceInstallationTroubleshooting

ProblemCouldnotdeployaserviceinstanceintheElasticRuntimeIfyoutrytodeploy(andallocate)moreSessionStateCachingserviceinstancesthanareavailableasdefinedbyyourPivotalCloudFoundry (PCF)Administratoryoumayreceivethefollowingerrormessage

500ERRORYOUHAVEREACHEDTHISPAGEBECAUSEANERROROCCURREDPLEASECONTACTYOUROPERATOR

Youneedtodeleteexistingserviceinstancesorasktheadmintodeploymoreinstances

ProblemServiceplantiledoesnotshowupintheDeveloperConsoleMarketplaceVerifythattheregistererrandunderlifecycleerrandsisselectedintheOpsManagertileconfigurationscreen

ApplicationTroubleshooting

ProblemApplicationdoesnotpickupchangestotheserviceinstanceMakesureyourestage(orre-push)yourapplicationifyouhavemadeconfigurationchangestotheunderlyingserviceinstance

ServiceBrokerTroubleshootingTheServiceBrokerisresponsibleformanagingthelifecycleofserviceinstancesIfyouencounterissueswithserviceinstancemanagement(creatingdestroyingbindingunbindingetc)thebrokerlogsmaycontainsomeclues

ThelogscanbefoundonbrokerVMsat varvcapsyslogbrokerbrokerstdoutlog andareloggedinJSONformatYoucanuseautilitysuchasjq toparsetheselogsandextractinformation log_level ofeachmessageisnumber0-3correspondingtothefollowingloglevels DEBUG INFO ERROR andFATAL Herearesomeexamples(usingjq15)

DisplayallERRORlogs

jq|select(log_level==2)brokerstdout

Searchlogformessagescontainingasubstring

jq|select(message|contains(some-substring))brokerstdout

Checkoutthejqmanualformoreusagedetails

BrokerendpointsforadvancedtroubleshootingGET admincredentialslocator ip GivenanIPaddressofalocatorwillretrievethecredentialsfortheserversintheGemfirecluster

curl100161538080admincredentials10016155

copyCopyrightPivotalSoftwareInc2013-2018 44 17

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 45: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

credentials[passwordapasswordusernameausernamelocators[1001615410016155]]

GET adminwancredentialsservice instance GUID GiventheGUIDofaGemfireserviceinstancewillretrievetheWANcredentialsforthatserver

curl100161538080adminwancredentials7dd9446b-20c6-4fbc-a31f-8416fd96abbd

passwordapasswordusernameausernamelocators[10016154[55221]10016155[55221]]

GET admininstance_counts Displaysthenumberofavailableserviceinstancesassociatedwiththebroker

curl100161538080admininstance_counts

[count3statusAVAILABLE]

GET admincluster_configservice instance GUID Retrievestheclusterconfigasazipfilewhichcontainsclusterxmlandclusterproperties

curl100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38gtcluster_configzip

POST admincluster_configservice instance GUID Updatestheclusterconfigofthespecifiedserviceinstance

Options

reset-defaultsboolclear-logsboolclear-disk-storesboolcluster_configzipfile(clusterclusterxmlclusterclusterpropertiesandanycustomcodetobedeployedonGemFireserver)cluster_propertiesfileunsure

curl-v-Freset-defaults=true100161538080admincluster_config47574053-7050-4911-9277-5725b27e1e38

GET adminarchivesservice instance GUID Retrievesthelogfilesoftheclusterasazipfile

curl100161538080adminarchives47574053-7050-4911-9277-5725b27e1e38gtarchiveszip`

DELETE v2service_instancesservice instance GUID Deletesaserviceinstance

curl-v-XDELETEhttp100181518080v2service_instances608363f1-4811-480d-bd95-b2ad9833cac5

copyCopyrightPivotalSoftwareInc2013-2018 45 17

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling
Page 46: Pivotal GemFire® for Pivotal Cloud Foundry 1 · Installing GemFire for Pivotal Cloud Foundry Using GemFire for Pivotal Cloud Foundry Troubleshooting For more information about Pivotal

UninstallingGemFireforPivotalCloudFoundryPrerequisites

Uninstalling

PrerequisitesBeforeyoudeleteyourGemFireforPivotalCloudFoundrytilepleaseensureallGemFireserviceinstanceshavebeendeletedIfyoufailtodeleteallGemFireserviceinstancesbeforedeletingthetileitmaycauseissuesifyoueverwishtore-installtheGemFiretile

TocheckifthereareanyGemFireserviceinstancespresentinyourPivotalCloudFoundrydeploymentyoucanrunthesimpleshellscriptshownbelow

usrbinenvbash

fororgin$(cforgs|awkNRgt3)docftarget-o$orggtdevnullforspacein$(cfspaces|awkNRgt3)docftarget-s$spacegtdevnullcfservices|grepp-gemfiredonedone

UninstallingSeethefollowinginstructionsforuninstalling PivotalCloudFoundrytiles

copyCopyrightPivotalSoftwareInc2013-2018 46 17

  • Table of Contents
  • Pivotal GemFire for Pivotal Cloud Foundry
    • Product Snapshot
    • Upgrading to the Latest Version
    • Documentation Index
      • Release Notes for GemFire for Pivotal Cloud Foundry
        • Overview
        • v1720
          • Release Date 30th January 2017
            • v1660
              • Release Date 30th January 2017
                • v1710
                  • Release Date 29th December 2016
                    • v1650
                      • Release Date 29th December 2016
                        • v1640
                          • Release Date 11th November 2016
                            • v1630
                              • Release Date 28th October 2016
                                • v1700
                                  • Release Date 19th September 2016
                                    • v162
                                      • Release Date 28th July 2016
                                        • v161
                                          • Release Date 22nd July 2016
                                            • v1600
                                              • Release Date 31st May 2016
                                                • v1500
                                                  • Release Date 9th May 2016
                                                    • v1400
                                                      • Release Date 4th April 2016
                                                        • v1300
                                                          • Release Date 18th March 2016
                                                            • v1230
                                                              • Release Date 4th February 2016
                                                                • v1220
                                                                  • Release Date 22nd January 2016
                                                                    • v1210
                                                                      • Release Date 12th January 2016
                                                                        • v1200
                                                                          • Release Date 1st December 2015
                                                                            • v1110
                                                                              • Release Date 5th November 2015
                                                                                • v1100
                                                                                  • Release Date 22nd September 2015
                                                                                    • v1000
                                                                                      • Release Date 10 August 2015
                                                                                          • Overview
                                                                                            • How Does the Service Work
                                                                                              • PCF Administrator Workflow
                                                                                              • PCF Developer (Service User) Workflow
                                                                                                • Additional Resources
                                                                                                  • Installing GemFire for Pivotal Cloud Foundry
                                                                                                  • Prerequisites
                                                                                                  • Service Configuration Defaults
                                                                                                  • Installation Steps
                                                                                                  • Self-Signed and Internal SSL Certificates
                                                                                                    • Internal Certificates
                                                                                                    • Self-Signed Certificates
                                                                                                      • Generating Self-Sign Certificates using the Elastic Runtime Tile
                                                                                                      • Generating Self-SignedCertificates using OpenSSL
                                                                                                          • Creating GemFire Service Plans
                                                                                                            • Deferring Service Plan Configuration
                                                                                                              • Application Security Groups
                                                                                                                • Warning
                                                                                                                  • Using GemFire for Pivotal Cloud Foundry
                                                                                                                    • Creating a GemFire Service Instance
                                                                                                                    • Configuring a GemFire Service Instance
                                                                                                                      • Configuring a Service Instance Using a Spring Application Context XML
                                                                                                                      • Configuring JVM and GemFire Properties
                                                                                                                      • Cloud Deployment Considerations
                                                                                                                      • Network Partition Detection
                                                                                                                        • Working with a GemFire Service Instance
                                                                                                                          • Accessing a Cluster via Pulse
                                                                                                                          • Restarting a Cluster
                                                                                                                          • Accessing GemFire Logs and Statistics and Cluster Configuration
                                                                                                                          • Accessing a Cluster via gfsh
                                                                                                                            • Accessing GemFire Service Connection Information (Binding)
                                                                                                                              • Using a JSON Library to Acquire Connection Information
                                                                                                                              • Using spring-cloud to Acquire Connection Information
                                                                                                                              • Acquiring a Connection from a Spring Application
                                                                                                                              • Configuring a Java REST Client to Access a Service Instance via HTTPS
                                                                                                                                • Deploying Applications for Use with the GemFire Service
                                                                                                                                  • Using the Java Buildpack
                                                                                                                                    • Binding an Application to the GemFire Service
                                                                                                                                      • PCF Developer Console Instructions
                                                                                                                                      • CLI Instructions
                                                                                                                                        • Pushing or Restaging Applications After Service Changes
                                                                                                                                        • Viewing Binding Meta Data
                                                                                                                                          • PCF Developer Console Instructions
                                                                                                                                          • CLI Instructions
                                                                                                                                            • Unbinding an Application from the GemFire Service
                                                                                                                                              • PCF Developer Console Instructions
                                                                                                                                              • CLI Instructions
                                                                                                                                                • Deleting a GemFire Service Instance
                                                                                                                                                  • PCF Developer Console Instructions
                                                                                                                                                  • CLI Instructions
                                                                                                                                                    • Configuring Multi-site (WAN) Connections Between Two or More GemFire Service Instances
                                                                                                                                                      • Using the GemFire for Cloud Foundry CLI Plug-in
                                                                                                                                                      • Installation
                                                                                                                                                      • Overview
                                                                                                                                                      • Broker HTTP Username and Password
                                                                                                                                                      • export-gemfire
                                                                                                                                                      • restart-gemfire
                                                                                                                                                      • show-wan-config-url
                                                                                                                                                      • Troubleshooting
                                                                                                                                                        • Service Installation Troubleshooting
                                                                                                                                                          • Problem Could not deploy a service instance in the Elastic Runtime
                                                                                                                                                          • Problem Service plan tile does not show up in the Developer Console Marketplace
                                                                                                                                                            • Application Troubleshooting
                                                                                                                                                              • Problem Application does not pick up changes to the service instance
                                                                                                                                                                • Service Broker Troubleshooting
                                                                                                                                                                • Broker endpoints for advanced troubleshooting
                                                                                                                                                                  • Uninstalling GemFire for Pivotal Cloud Foundry
                                                                                                                                                                  • Prerequisites
                                                                                                                                                                  • Uninstalling