This is an automated email from the ASF dual-hosted git repository.

dbarnes pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-native.git


The following commit(s) were added to refs/heads/develop by this push:
     new 2918ff4  GEODE-8593: Update geode-native examples to use builder 
pattern: C++ (#675)
2918ff4 is described below

commit 2918ff44b0d3ee6d914f6b31a9fac4465e7f203a
Author: Dave Barnes <dbar...@apache.org>
AuthorDate: Fri Oct 16 13:30:33 2020 -0700

    GEODE-8593: Update geode-native examples to use builder pattern: C++ (#675)
    
    * GEODE-8593: Update geode-native examples to use builder pattern: C++ 
examples and docs
---
 .../source/subnavs/geode-nc-nav.erb                | 40 +++----------
 .../about-connection-pools.html.md.erb             | 37 ------------
 .../about-server-locators.html.md.erb              | 34 -----------
 .../client-load-balancing.html.md.erb              | 38 ------------
 .../connection-pools/configuring-pools.html.md.erb |  4 --
 .../connection-pools/connection-pools.html.md.erb  | 32 ----------
 .../discovering-locators-dynamically.html.md.erb   | 34 -----------
 .../running-connection-pool-code.html.md.erb       | 70 ----------------------
 .../getting-started-nc-client.html.md.erb          | 31 +++++-----
 .../getting-started/put-get-example.html.md.erb    | 16 ++---
 .../regions/regions.html.md.erb                    | 31 ++++++----
 .../security/authentication.html.md.erb            | 45 ++++----------
 .../pdx-serializable-examples.html.md.erb          | 16 ++---
 .../geode-native-docs-cpp/transactions.html.md.erb | 42 +++++--------
 examples/cpp/authinitialize/README.md              | 12 ++--
 examples/cpp/continuousquery/README.md             | 22 +++----
 examples/cpp/continuousquery/main.cpp              | 18 +++---
 examples/cpp/dataserializable/README.md            | 21 +++----
 examples/cpp/dataserializable/main.cpp             | 15 ++---
 examples/cpp/functionexecution/README.md           | 10 ++--
 examples/cpp/pdxserializable/README.md             | 20 ++++---
 examples/cpp/pdxserializable/main.cpp              | 15 ++---
 examples/cpp/pdxserializer/README.md               | 12 ++--
 examples/cpp/pdxserializer/main.cpp                | 14 +++--
 examples/cpp/putgetremove/README.md                | 14 +++--
 examples/cpp/putgetremove/main.cpp                 | 14 +++--
 examples/cpp/remotequery/README.md                 | 20 ++++---
 examples/cpp/remotequery/main.cpp                  | 15 ++---
 examples/cpp/sslputget/README.md                   | 18 +++---
 examples/cpp/transaction/README.md                 |  2 +
 examples/cpp/transaction/main.cpp                  | 12 ++--
 31 files changed, 235 insertions(+), 489 deletions(-)

diff --git 
a/docs/geode-native-book-cpp/master_middleman/source/subnavs/geode-nc-nav.erb 
b/docs/geode-native-book-cpp/master_middleman/source/subnavs/geode-nc-nav.erb
index eb0f076..5b442d6 100644
--- 
a/docs/geode-native-book-cpp/master_middleman/source/subnavs/geode-nc-nav.erb
+++ 
b/docs/geode-native-book-cpp/master_middleman/source/subnavs/geode-nc-nav.erb
@@ -66,43 +66,21 @@ limitations under the License.
     </li>
 
     <li class="has_submenu">
-        <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/connection-pools.html">Using
 Connection Pools</a>
+        <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/configuring-pools.html">Configuring
 Pools</a>
         <ul>
-            <li class="has_submenu">
-                <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/client-load-balancing.html">How
 Client Load Balancing Works</a>
-                <ul>
-                    <li>
-                        <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/about-server-locators.html">Server
 Locators</a>
-                    </li>
-                    <li>
-                        <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/about-connection-pools.html">Connection
 Pools</a>
-                    </li>
-                    <li>
-                        <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/discovering-locators-dynamically.html">Discovering
 Locators Dynamically</a>
-                    </li>
-                </ul>
+            <li>
+                <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/client-pool-api.html">Native
 Client Pool API</a>
             </li>
-            <li class="has_submenu">
-                <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/configuring-pools.html">Configuring
 Pools</a>
-                <ul>
-                    <li>
-                        <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/client-pool-api.html">Native
 Client Pool API</a>
-                    </li>
-                    <li>
-                        <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/configuring-pools-attributes-example.html">Pool
 Configuration Example and Settings</a>
-                    </li>
-                    <li>
-                        <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/subscription-properties.html">Subscription
 Properties</a>
-                    </li>
-                    <li>
-                        <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/running-connection-pool-code.html">Running
 the Connection Pool Code</a>
-                    </li>
-                </ul>
+            <li>
+                <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/configuring-pools-attributes-example.html">Pool
 Configuration Example and Settings</a>
+            </li>
+            <li>
+                <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/subscription-properties.html">Subscription
 Properties</a>
             </li>
         </ul>
     </li>
 
-<li class="has_submenu">
+    <li class="has_submenu">
       <a 
href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/serialization/data-serialization.html">Serializing
 Data</a>
       <ul>
         <li class="has_submenu">
diff --git 
a/docs/geode-native-docs-cpp/connection-pools/about-connection-pools.html.md.erb
 
b/docs/geode-native-docs-cpp/connection-pools/about-connection-pools.html.md.erb
deleted file mode 100644
index 2f66e68..0000000
--- 
a/docs/geode-native-docs-cpp/connection-pools/about-connection-pools.html.md.erb
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title:  Connection Pools
----
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-
-Clients contain connection pools. Each region is associated with a connection 
pool using a region attribute, and operations on the region use connections 
from the respective pools.
-
-The server connectivity options are specified in the connection pool 
configuration. Each pool has a minimum and maximum number of connections.
-
-Each cache operation that requires server connectivity obtains a connection 
from the pool for the server group that the operation affects, performs the 
operation using the connection, and returns the connection to the pool. If the 
pool size is less than the maximum number of connections and all connections 
are in use, the connection pool creates a new connection and returns it. If the 
pool is at the maximum number of connections, that thread blocks until a 
connection becomes available or [...]
-
-The connection pool has a configurable timeout period that is used to expire 
idle connections. The idle connections are expired until the pool has the 
minimum number of connections. A monitoring thread expires idle connections, 
adds sufficient connections to bring up the count to minimum, and closes 
connections whose lifetime has been exceeded. See the 
`load-conditioning-interval` and `idle-timeout` attributes of the 
[&lt;pool&gt;](../../reference/topics/client-cache.html#cc-pool) elemen [...]
-
-<a id="client-load-balancing__fig_226964BAA1464DBA9F5CEDC2CB7B3585"></a>
-<span class="figtitleprefix">Figure: </span>Logical Architecture of 
Client/Server Connections
-
-<img src="../images/client-server-arch.gif" 
id="client-load-balancing__image_1E8316666E1B4CC2ADE4D927B629E49F" 
class="image" />
-
-When a connection receives an exception, the operation is failed over to 
another connection from the pool. The failover mechanism obtains the endpoint 
to failover to from the locator or from the specified endpoint list in the pool.
-
-
diff --git 
a/docs/geode-native-docs-cpp/connection-pools/about-server-locators.html.md.erb 
b/docs/geode-native-docs-cpp/connection-pools/about-server-locators.html.md.erb
deleted file mode 100644
index d637df3..0000000
--- 
a/docs/geode-native-docs-cpp/connection-pools/about-server-locators.html.md.erb
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title:  Server Locators
----
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-
-Server locators continuously monitor server availability and server load 
information. The client is configured with a list of server locators and 
consults a server locator to request a connection to a server in the 
distributed system.
-
-Locators provide clients with dynamic server discovery and server load 
balancing. They give clients connection information for the server with the 
least load at any given time.
-
-Server locators provide these main features:
-
--   **Automated discovery of servers and locators**. Adding and removing 
servers or locators is made easy as each client does not require a list of 
servers to be configured at the time of pool creation.
--   **Client load rebalancing**. Server locators give clients dynamic server 
information and provide server load rebalancing after servers depart or join 
the system.
--   **High availability**. When a client/server connection receives an 
exception, the connection is automatically failed over to another available 
connection in the pool. Redundancy is also provided for client subscriptions.
-
-Alternatively, you can configure a pool statically with a list of endpoints. 
When the pools are statically configured, a round-robin load balancing policy 
is used to distribute connections across the servers.
-
-
diff --git 
a/docs/geode-native-docs-cpp/connection-pools/client-load-balancing.html.md.erb 
b/docs/geode-native-docs-cpp/connection-pools/client-load-balancing.html.md.erb
deleted file mode 100644
index 7f5cebf..0000000
--- 
a/docs/geode-native-docs-cpp/connection-pools/client-load-balancing.html.md.erb
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title:  How Client Load Balancing Works
----
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-
-In a distributed system, servers can be added or removed and their capacity to 
service new client connections may vary. The server connectivity options are 
specified in the connection pool configuration.
-
-The connection pool API supports connecting to servers through server locators 
or directly connecting to servers.
-
--   **[Server Locators](about-server-locators.html)**
-
-    Server locators continuously monitor server availability and server load 
information. The client is configured with a list of server locators and 
consults a server locator to request a connection to a server in the 
distributed system.
-
--   **[Connection Pools](about-connection-pools.html)**
-
-    Clients contain connection pools. Each region is associated with a 
connection pool using a region attribute, and operations on the region use 
connections from the respective pools.
-
--   **[Discovering Locators 
Dynamically](discovering-locators-dynamically.html)**
-
-    A background thread periodically queries the locator for any other 
locators joining the distributed system.
-
-
diff --git 
a/docs/geode-native-docs-cpp/connection-pools/configuring-pools.html.md.erb 
b/docs/geode-native-docs-cpp/connection-pools/configuring-pools.html.md.erb
index 848c27a..5934b27 100644
--- a/docs/geode-native-docs-cpp/connection-pools/configuring-pools.html.md.erb
+++ b/docs/geode-native-docs-cpp/connection-pools/configuring-pools.html.md.erb
@@ -35,8 +35,4 @@ You configure locator, server, and pool settings 
declaratively in the client's `
 
     Each connection pool has a single subscription connection that can be to 
any server that matches the requirements of the connection pool.
 
--   **[Running the Connection Pool Code](running-connection-pool-code.html)**
-
-    Examples demonstrate a simple procedure to create a pool factory and then 
create a pool instance in C++ and C\#. They also help you to execute a query.
-
 
diff --git 
a/docs/geode-native-docs-cpp/connection-pools/connection-pools.html.md.erb 
b/docs/geode-native-docs-cpp/connection-pools/connection-pools.html.md.erb
deleted file mode 100644
index e57778d..0000000
--- a/docs/geode-native-docs-cpp/connection-pools/connection-pools.html.md.erb
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title:  Using Connection Pools
----
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-
-*Using Connection Pools* describes how connection pools achieve load balancing 
for the client and describes how to configure connection pools as server 
locators or as a list of servers.
-
--   **[How Client Load Balancing Works](client-load-balancing.html)**
-
-    In a distributed system, servers can be added or removed and their 
capacity to service new client connections may vary. The server connectivity 
options are specified in the connection pool configuration.
-
--   **[Configuring Pools](configuring-pools.html)**
-
-    A pool can be configured as locators or as a list of servers.
-
-
diff --git 
a/docs/geode-native-docs-cpp/connection-pools/discovering-locators-dynamically.html.md.erb
 
b/docs/geode-native-docs-cpp/connection-pools/discovering-locators-dynamically.html.md.erb
deleted file mode 100644
index e00bed0..0000000
--- 
a/docs/geode-native-docs-cpp/connection-pools/discovering-locators-dynamically.html.md.erb
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title:  Discovering Locators Dynamically
----
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-
-A background thread periodically queries the locator for any other locators 
joining the distributed system.
-
-However, if locator A (to which the client is connected) goes down before it 
discovers locator B, locator B is never discovered even though it is alive and 
the client receives a `NoLocatorsAvailable` exception.
-
-One connection is attached to every application thread that is `local` to the 
respective thread. This is known as a thread local connection.
-
-In this case, to perform any cache operation the client is not required to 
obtain a connection from pool. Instead the thread local connection of the 
client is used.
-
-A thread local connection can be released by invoking the 
`Pool::releaseThreadLocalConnection()` method. The released connection is 
returned to the pool. If the number of threads is larger than the number of 
`max-connections`, the client throws an `AllConnectionsInUseException` after 
the `free-connection-timeout` lapses, unless the 
`Pool::releaseThreadLocalConnection()` method is used judiciously.
-
-If a connection expires or the server goes down on which the connection was 
established, a thread local connection is immediately replaced with a good 
connection obtained from the pool.
-
-
diff --git 
a/docs/geode-native-docs-cpp/connection-pools/running-connection-pool-code.html.md.erb
 
b/docs/geode-native-docs-cpp/connection-pools/running-connection-pool-code.html.md.erb
deleted file mode 100644
index de7e3bd..0000000
--- 
a/docs/geode-native-docs-cpp/connection-pools/running-connection-pool-code.html.md.erb
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title:  Running the Connection Pool Code
----
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-
-Examples demonstrate a simple procedure to create a pool factory and then 
create a pool instance in C++. They also help you to execute a query.
-
-Ensure that you create a pool with locators or endpoints, but not both. The 
first example demonstrates creating a pool by adding locators. The second 
example demonstrates creating a pool by adding servers.
-
-## C++ Connection Pool Creation and Execution Using Locators
-
-``` cpp
-PropertiesPtr prptr = Properties::create();
-systemPtr = CacheFactory::createCacheFactory(prptr);
-
-cachePtr = systemPtr->create();
-PoolFactoryPtr poolFacPtr = PoolManager::createFactory();
-// Add pool with locator to create pool factory
-poolFacPtr->addLocator("localhost", 34756 /*port number*/);
-PoolPtr pptr = NULLPTR;
-if ((PoolManager::find("examplePool")) == NULLPTR) {
-  // Pool with this name does not exist
-  pptr = poolFacPtr->create("examplePool");
-}
-RegionFactoryPtr regionFactory =
-    cachePtr->createRegionFactory(CACHING_PROXY);
-regionPtr = regionFactory
-    ->setPoolName("examplePool")
-    ->create("regionName");
-QueryServicePtr qs = cachePtr->getQueryService("examplePool");
-```
-
-## C++ Connection Pool Creation and Execution Using Servers
-
-``` cpp
-PropertiesPtr prptr = Properties::create();
-systemPtr = CacheFactory::createCacheFactory(prptr);
-
-cachePtr = systemPtr->create();
-PoolFactoryPtr poolFacPtr = PoolManager::createFactory();
-// Add pool with endpoint to create pool factory
-poolFacPtr->addServer("localhost", 12345 /*port number*/);
-PoolPtr pptr = NULLPTR;
-if ((PoolManager::find("examplePool")) == NULLPTR) {
-  // Pool with this name does not exist
-  pptr = poolFacPtr->create("examplePool");
-}
-RegionFactoryPtr regionFactory =
-    cachePtr->createRegionFactory(CACHING_PROXY);
-regionPtr = regionFactory
-    ->setPoolName("examplePool")
-    ->create("regionName");
-QueryServicePtr qs = cachePtr->getQueryService("examplePool");
-```
diff --git 
a/docs/geode-native-docs-cpp/getting-started/getting-started-nc-client.html.md.erb
 
b/docs/geode-native-docs-cpp/getting-started/getting-started-nc-client.html.md.erb
index a192d84..9d19505 100644
--- 
a/docs/geode-native-docs-cpp/getting-started/getting-started-nc-client.html.md.erb
+++ 
b/docs/geode-native-docs-cpp/getting-started/getting-started-nc-client.html.md.erb
@@ -37,36 +37,37 @@ To connect to a server, your application must follow these 
steps:
 1. Instantiate a `CacheFactory`, setting characteristics of interest (for 
example, `log-level`).
 1. Create a cache and use it to instantiate a `PoolFactory`, specifying the 
hostname and port for the server locator.
 1. Create a named pool of network connections.
-1. Instantiate a region of the desired type (usually CACHING_PROXY or PROXY) 
and connect it by name to its counterpart on the server.
+1. Instantiate a region of the desired type (usually PROXY, sometimes 
CACHING_PROXY) and connect it by name to its counterpart on the server.
 
 Once the connection pool and the shared region are in place, your client 
application is ready to share data with the server.
 
 **Server Connection: C++ Example**
 
-This example of connecting to the server is taken from the C++ 
`put-get-remove` example.
-
-Instantiate a `CacheFactory` and set its characteristics:
+Create a cache and use it to instantiate a `CacheFactory` and set its 
characteristics:
 
 ``` cpp
-  auto cacheFactory = CacheFactory();             // instantiate cache factory
-  cacheFactory.set("log-level", "none");          // set cache log-level 
characteristics
+auto cache = CacheFactory()
+    .set("log-level", "debug")
+    .set("ssl-enabled", "true")
+    .set("ssl-truststore", clientTruststore.string())
+    .create();
 ```
 
-Create a cache and use it to instantiate a `PoolFactory`:
+Create a pool of network connections:
 
-``` cpp
-  auto cache = cacheFactory.create();                         // create cache
-  auto poolFactory = cache.getPoolManager().createFactory();  // instantiate 
pool factory
 
-  poolFactory.addLocator("localhost", 10334);                 // add locator 
to pool factory
+``` cpp
+cache.getPoolManager()
+      .createFactory()
+      .addLocator("localhost", 10334)
+      .create("pool");
 ```
 
-Create a named pool of network connections, and instantiate a region of the 
desired type:
+Instantiate a region of the desired type and connect to the pool by name::
 
 ``` cpp
-  auto pool = poolFactory.create("pool");                     // create a pool 
called "pool" that knows where the server is
-  auto regionFactory = cache.createRegionFactory(RegionShortcut::PROXY); // 
instantiate region factory with PROXY characteristics
-  auto region = regionFactory.setPoolName("pool").create("example_userinfo"); 
// create a connection to the region "example_userinfo" on the server
+auto regionFactory = cache.createRegionFactory(RegionShortcut::PROXY);
+auto region = regionFactory.setPoolName("pool").create("exampleRegion");
 ```
 
 See the _<%=vars.product_name%> User Guide_ section [Configuring a 
Client/Server 
System](serverman/topologies_and_comm/cs_configuration/setting_up_a_client_server_system.html)
diff --git 
a/docs/geode-native-docs-cpp/getting-started/put-get-example.html.md.erb 
b/docs/geode-native-docs-cpp/getting-started/put-get-example.html.md.erb
index e292ec5..a0b3763 100644
--- a/docs/geode-native-docs-cpp/getting-started/put-get-example.html.md.erb
+++ b/docs/geode-native-docs-cpp/getting-started/put-get-example.html.md.erb
@@ -46,13 +46,15 @@ For the complete source, see the example source directory.
 The C++ example creates a cache, then uses it to create a connection pool and 
a region object (of class `Region`).
 
 ```cpp
-  auto cacheFactory = CacheFactory();
-  cacheFactory.set("log-level", "none");
-  auto cache = cacheFactory.create();
-  auto poolFactory = cache.getPoolManager().createFactory();
-
-  poolFactory.addLocator("localhost", 10334);
-  auto pool = poolFactory.create("pool");
+  auto cache = CacheFactory()
+      .set("log-level", "none")
+      .create();
+
+  cache.getPoolManager()
+      .createFactory()
+      .addLocator("localhost", 10334)
+      .create("pool");
+  
   auto regionFactory = cache.createRegionFactory(RegionShortcut::PROXY);
   auto region = regionFactory.setPoolName("pool").create("example_userinfo");
 ```
diff --git a/docs/geode-native-docs-cpp/regions/regions.html.md.erb 
b/docs/geode-native-docs-cpp/regions/regions.html.md.erb
index 4b6b0bb..357d499 100644
--- a/docs/geode-native-docs-cpp/regions/regions.html.md.erb
+++ b/docs/geode-native-docs-cpp/regions/regions.html.md.erb
@@ -37,27 +37,36 @@ Region creation is subject to attribute consistency checks.
 
 To create a region:
 
-1. Instantiate a `CacheFactory` and use it to create a cache.
+1. Create a cache using `CacheFactory` to set its characteristics.
 1. The cache includes an instance of `PoolManager`&mdash;use it to create a 
connection pool.
-1. Use cache to instantiate a `RegionFactory` and use it to create a region, 
specifying any desired attributes
+1. Use the cache to instantiate a `RegionFactory` and use it to create a 
region, specifying any desired attributes
 and an association with the connection pool.
 
 ### C++ Region Creation Example
 
-The following example illustrates how to create two regions using C++.
+The following example illustrates how to create two regions with different 
characteristics using C++.
 
 ``` cpp
-auto cache = CacheFactory().create();
+auto cache = CacheFactory()
+    .set("log-level", "none")
+    .create();
 
-auto examplePool = cache.getPoolManager()
+cache.getPoolManager()
     .createFactory()
-    .addLocator("localhost", 40404)
-    .setSubscriptionEnabled(true)
-    .create("examplePool");
+    .addLocator("localhost", 10334)
+    .create("pool");
 
-auto clientRegion1 = cache.createRegionFactory(RegionShortcut::PROXY)
-  .setPoolName("examplePool")
-  .create("clientRegion1");
+auto regionFactory = cache.createRegionFactory(RegionShortcut::PROXY);
+auto regionFactory2 = cache.createRegionFactory(RegionShortcut::CACHING_PROXY);
+
+auto region = regionFactory
+    .setPoolName("pool")
+    .create("example_userinfo");
+
+auto region2 = regionFactory2
+    .setPoolName("pool")
+    .setEntryTimeToLive(ExpirationAction::INVALIDATE, 
std::chrono::seconds(120))
+    .create("example_userinfo2");
 ```
 
 ## <a id="declarative-region-creation"></a>Declarative Region Creation
diff --git a/docs/geode-native-docs-cpp/security/authentication.html.md.erb 
b/docs/geode-native-docs-cpp/security/authentication.html.md.erb
index 483e566..6e19aa6 100644
--- a/docs/geode-native-docs-cpp/security/authentication.html.md.erb
+++ b/docs/geode-native-docs-cpp/security/authentication.html.md.erb
@@ -30,43 +30,22 @@ this means setting the authentication credentials when you 
create the CacheFacto
 In this C++ authentication example, the `CacheFactory` creation process sets 
the authentication callback:
 
 ```cpp
-  auto cacheFactory = CacheFactory(config);
-  auto authInitialize = std::make_shared<UserPasswordAuthInit>();
-  cacheFactory.set("log-level", "none");
-  cacheFactory.setAuthInitialize(authInitialize);
+  auto cache = CacheFactory()
+      .set("log-level", "none")
+      .setAuthInitialize(std::unique_ptr<ExampleAuthInitialize>(new 
ExampleAuthInitialize()))
+      .create();
 ```
 
-Credentials are implemented in the `getCredentials` member function of the 
`AuthInitialize` abstract class.
+Credentials are implemented in the `getCredentials` member function of the 
`ExampleAuthInitialize`, which is derived from the `AuthInitialize` abstract 
class.
 
 ```cpp
-class UserPasswordAuthInit : public AuthInitialize {
-public:
-  UserPasswordAuthInit() = default;
-  
-  ~UserPasswordAuthInit() noexcept override = default;
-  
-  std::shared_ptr<Properties> getCredentials(
-    const std::shared_ptr<Properties> &securityprops,
-    const std::string &) override {
-    std::shared_ptr<Cacheable> userName;
-    if (securityprops == nullptr ||
-      (userName = securityprops->find(SECURITY_USERNAME)) == nullptr) {
-      throw AuthenticationFailedException(
-      "UserPasswordAuthInit: user name "
-      "property [SECURITY_USERNAME] not set.");
-    }
-  
-    auto credentials = Properties::create();
-    credentials->insert(SECURITY_USERNAME, userName->toString().c_str());
-    auto passwd = securityprops->find(SECURITY_PASSWORD);
-    if (passwd == nullptr) {
-      passwd = CacheableString::create("");
-    }
-    credentials->insert(SECURITY_PASSWORD, passwd->value().c_str());
-    return credentials;
-  }
+std::shared_ptr<Properties> ExampleAuthInitialize::getCredentials(
+    const std::shared_ptr<Properties>& securityprops,
+    const std::string& /*server*/) {
 
-  void close() override { return; }
-};
+  securityprops->insert("security-username", "root");
+  securityprops->insert("security-password", "root");
 
+  return securityprops;
+}
 ```
diff --git 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/pdx-serializable-examples.html.md.erb
 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/pdx-serializable-examples.html.md.erb
index bd0607d..ae99fa5 100644
--- 
a/docs/geode-native-docs-cpp/serialization/cpp-serialization/pdx-serializable-examples.html.md.erb
+++ 
b/docs/geode-native-docs-cpp/serialization/cpp-serialization/pdx-serializable-examples.html.md.erb
@@ -108,13 +108,15 @@ std::shared_ptr<PdxSerializable> 
Order::createDeserializable() {
 The C++ example mainline creates a cache, then uses it to create a connection 
pool and a region object (of class `Region`).
 
 ```cpp
-  auto cacheFactory = CacheFactory();
-  cacheFactory.set("log-level", "none");
-  auto cache = cacheFactory.create();
-  auto poolFactory = cache.getPoolManager().createFactory();
-
-  poolFactory.addLocator("localhost", 10334);
-  auto pool = poolFactory.create("pool");
+  auto cache = CacheFactory()
+      .set("log-level", "none")
+      .create();
+
+  cache.getPoolManager()
+      .createFactory()
+      .addLocator("localhost", 10334)
+      .create("pool");
+  
   auto regionFactory = cache.createRegionFactory(RegionShortcut::PROXY);
   auto region = regionFactory.setPoolName("pool").create("custom_orders");
 ```
diff --git a/docs/geode-native-docs-cpp/transactions.html.md.erb 
b/docs/geode-native-docs-cpp/transactions.html.md.erb
index f223e73..94e8c52 100644
--- a/docs/geode-native-docs-cpp/transactions.html.md.erb
+++ b/docs/geode-native-docs-cpp/transactions.html.md.erb
@@ -88,48 +88,38 @@ For the complete source, see the example source directory.
 The C++ example creates a cache, then uses it to create a connection pool.
 
 ```cpp
-  auto cache = CacheFactory().set("log-level", "none").create();
-  auto poolFactory = cache.getPoolManager().createFactory();
+  auto cache = CacheFactory()
+      .set("log-level", "none")
+      .create();
+
+  cache.getPoolManager()
+      .createFactory()
+      .addLocator("localhost", 10334)
+      .create("pool");
 
-  poolFactory.addLocator("localhost", 10334);
-  auto pool = poolFactory.create("pool");
   auto regionFactory = cache.createRegionFactory(RegionShortcut::PROXY);
   auto region = regionFactory.setPoolName("pool").create("exampleRegion");
 ```
 
-The example application gets a transaction manager from the cache and begins a 
transaction.
-
-```cpp
-  auto transactionManager = cache.getCacheTransactionManager();
-
-  transactionManager->begin();
-```
-
-Within the transaction, the client populates data store with 10 values 
associated with Key1 - Key10.
-
-```cpp
-      for (auto& key : keys) {
-        auto value = getValueFromExternalSystem();
-        region->put(key, value);
-      }
-```
-
+The example application gets a transaction manager from the cache and a 
five-attempt retry loop.
 If all `put` operations succeed, the application commits the transaction. 
Otherwise, it retries up to 5 times if necessary.
 
 ```cpp
+  auto transactionManager = cache.getCacheTransactionManager();
   auto retries = 5;
   while (retries--) {
     try {
       transactionManager->begin();
-       ... // PUT OPERATIONS ...
+      for (auto& key : keys) {
+        auto value = getValueFromExternalSystem();
+        region->put(key, value);
+      }
       transactionManager->commit();
       std::cout << "Committed transaction - exiting" << std::endl;
       break;
-    } catch ( ... ) {
+
+        } catch ( ... ) {
       if (transactionManager->exists()){
         transactionManager->rollback();
       }
-      std::cout << "Rolled back transaction - retrying(" << retries << ")" << 
std::endl;
-    }
-  }
 ```
diff --git a/examples/cpp/authinitialize/README.md 
b/examples/cpp/authinitialize/README.md
index b732b13..aaae460 100644
--- a/examples/cpp/authinitialize/README.md
+++ b/examples/cpp/authinitialize/README.md
@@ -37,11 +37,13 @@ handler on the client that authenticates against a server 
that was started with
   
 1. Execute `cpp-authinitialize`, expect the following output:
 
-       ExampleAuthInitialize::ExampleAuthInitialize called
-       ExampleAuthInitialize::getCredentials called
-       a = 1
-       b = 2
-
+    ```
+    ExampleAuthInitialize::ExampleAuthInitialize called
+    ExampleAuthInitialize::getCredentials called
+    a = 1
+    b = 2
+    ```
+    
 1. Run the `stopserver` script to gracefully shutdown the Geode cluster.
 
    For Windows cmd:
diff --git a/examples/cpp/continuousquery/README.md 
b/examples/cpp/continuousquery/README.md
index 379d860..94a923f 100644
--- a/examples/cpp/continuousquery/README.md
+++ b/examples/cpp/continuousquery/README.md
@@ -36,16 +36,18 @@ This is a simple example showing how to create a continuous 
query.
   
 1. Execute `cpp-continuousquery`, expect the following output:
 
-       Executing continuous query
-       Create orders
-       Putting and changing Order objects in the region
-       MyCqListener::OnEvent called with CREATE, key[Order2], value(2, product 
y, 37)
-       MyCqListener::OnEvent called with CREATE, key[Order4], value(4, product 
z, 102)
-       MyCqListener::OnEvent called with CREATE, key[Order6], value(6, product 
z, 42)
-       MyCqListener::OnEvent called with UPDATE, key[Order2], value(2, product 
y, 45)
-       MyCqListener::OnEvent called with DESTROY, key[Order2], value(2, 
product y, 29)
-       MyCqListener::OnEvent called with DESTROY, key[Order6], value is nullptr
-       close called
+    ```
+    Executing continuous query
+    Create orders
+    Putting and changing Order objects in the region
+    MyCqListener::OnEvent called with CREATE, key[Order2], value(2, product y, 
37)
+    MyCqListener::OnEvent called with CREATE, key[Order4], value(4, product z, 
102)
+    MyCqListener::OnEvent called with CREATE, key[Order6], value(6, product z, 
42)
+    MyCqListener::OnEvent called with UPDATE, key[Order2], value(2, product y, 
45)
+    MyCqListener::OnEvent called with DESTROY, key[Order2], value(2, product 
y, 29)
+    MyCqListener::OnEvent called with DESTROY, key[Order6], value is nullptr
+    close called
+    ```
 
 1. Run the `stopserver` script to gracefully shutdown the Geode cluster.
 
diff --git a/examples/cpp/continuousquery/main.cpp 
b/examples/cpp/continuousquery/main.cpp
index 93924ef..d93e920 100644
--- a/examples/cpp/continuousquery/main.cpp
+++ b/examples/cpp/continuousquery/main.cpp
@@ -76,14 +76,16 @@ public:
 };
 
 int main(int argc, char** argv) {
-  auto cacheFactory = CacheFactory();
-  cacheFactory.set("log-level", "none");
-  auto cache = cacheFactory.create();
-  auto poolFactory = cache.getPoolManager().createFactory();
-  auto pool = poolFactory.addLocator("localhost", 10334)
-                  .setSubscriptionEnabled(true)
-                  .create("pool");
-
+  auto cache = CacheFactory()
+      .set("log-level", "none")
+      .create();
+
+  auto pool = cache.getPoolManager()
+      .createFactory()
+      .addLocator("localhost", 10334)
+      .setSubscriptionEnabled(true)
+      .create("pool");
+  
   auto regionFactory = cache.createRegionFactory(RegionShortcut::PROXY);
 
   auto region = regionFactory.setPoolName("pool").create("custom_orders");
diff --git a/examples/cpp/dataserializable/README.md 
b/examples/cpp/dataserializable/README.md
index 4eecb3b..75d8c35 100644
--- a/examples/cpp/dataserializable/README.md
+++ b/examples/cpp/dataserializable/README.md
@@ -36,16 +36,17 @@ This is a simple example showing how to register for 
serialization of custom obj
   
 1. Execute `cpp-dataserializable`, expect the following output:
 
-       Create orders
-       Storing orders in the region
-       Getting the orders from the region
-       OrderID: 1
-       Product Name: product x
-       Quantity: 23
-       OrderID: 2
-       Product Name: product y
-       Quantity: 37
-
+    ```
+    Create orders
+    Storing orders in the region
+    Getting the orders from the region
+    OrderID: 1
+    Product Name: product x
+    Quantity: 23
+    OrderID: 2
+    Product Name: product y
+    Quantity: 37
+    ```
 
 1. Run the `stopserver` script to gracefully shutdown the Geode cluster.
 
diff --git a/examples/cpp/dataserializable/main.cpp 
b/examples/cpp/dataserializable/main.cpp
index c3e57c2..de66050 100644
--- a/examples/cpp/dataserializable/main.cpp
+++ b/examples/cpp/dataserializable/main.cpp
@@ -30,14 +30,15 @@ using namespace apache::geode::client;
 using namespace customserializable;
 
 int main(int argc, char** argv) {
-  auto cacheFactory = CacheFactory();
-  cacheFactory.set("log-level", "none");
-  auto cache = cacheFactory.create();
-
-  auto poolFactory = cache.getPoolManager().createFactory();
-  poolFactory.addLocator("localhost", 10334);
-  auto pool = poolFactory.create("pool");
+  auto cache = CacheFactory()
+      .set("log-level", "none")
+      .create();
 
+  cache.getPoolManager()
+      .createFactory()
+      .addLocator("localhost", 10334)
+      .create("pool");
+  
   auto regionFactory = cache.createRegionFactory(RegionShortcut::PROXY);
   auto region = regionFactory.setPoolName("pool").create("custom_orders");
 
diff --git a/examples/cpp/functionexecution/README.md 
b/examples/cpp/functionexecution/README.md
index a2d0c22..50e4cae 100644
--- a/examples/cpp/functionexecution/README.md
+++ b/examples/cpp/functionexecution/README.md
@@ -40,11 +40,13 @@ the example app executes those functions and prints out the 
result set(s).
   
 1. Execute `cpp-functionexecution`, expect the following output:
 
-       Result count = 3
+    ```
+    Result count = 3
 
-       Result[0]=VALUE--1
-       Result[1]=VALUE--2
-       Result[2]=VALUE--3
+    Result[0]=VALUE--1
+    Result[1]=VALUE--2
+    Result[2]=VALUE--3
+    ```
 
 1. Run the `stopserver` script to gracefully shutdown the Geode cluster.
 
diff --git a/examples/cpp/pdxserializable/README.md 
b/examples/cpp/pdxserializable/README.md
index bd3dd2e..14a9045 100644
--- a/examples/cpp/pdxserializable/README.md
+++ b/examples/cpp/pdxserializable/README.md
@@ -36,15 +36,17 @@ This is a simple example showing how to register for 
serialization of custom obj
   
 1. Execute `cpp-pdxserializable`, expect the following output:
 
-       Create orders
-       Storing orders in the region
-       Getting the orders from the region
-       OrderID: 1
-       Product Name: product x
-       Quantity: 23
-       OrderID: 2
-       Product Name: product y
-       Quantity: 373
+    ```
+    Create orders
+    Storing orders in the region
+    Getting the orders from the region
+    OrderID: 1
+    Product Name: product x
+    Quantity: 23
+    OrderID: 2
+    Product Name: product y
+    Quantity: 37
+    ```
 
 1. Run the `stopserver` script to gracefully shutdown the Geode cluster.
 
diff --git a/examples/cpp/pdxserializable/main.cpp 
b/examples/cpp/pdxserializable/main.cpp
index ec14839..391c913 100644
--- a/examples/cpp/pdxserializable/main.cpp
+++ b/examples/cpp/pdxserializable/main.cpp
@@ -30,14 +30,15 @@ using namespace apache::geode::client;
 using namespace customserializable;
 
 int main(int argc, char** argv) {
-  auto cacheFactory = CacheFactory();
-  cacheFactory.set("log-level", "none");
-  auto cache = cacheFactory.create();
-
-  auto poolFactory = cache.getPoolManager().createFactory();
-  poolFactory.addLocator("localhost", 10334);
-  auto pool = poolFactory.create("pool");
+  auto cache = CacheFactory()
+      .set("log-level", "none")
+      .create();
 
+  cache.getPoolManager()
+      .createFactory()
+      .addLocator("localhost", 10334)
+      .create("pool");
+  
   auto regionFactory = cache.createRegionFactory(RegionShortcut::PROXY);
   auto region = regionFactory.setPoolName("pool").create("custom_orders");
 
diff --git a/examples/cpp/pdxserializer/README.md 
b/examples/cpp/pdxserializer/README.md
index 37cf822..1a07b6c 100644
--- a/examples/cpp/pdxserializer/README.md
+++ b/examples/cpp/pdxserializer/README.md
@@ -36,11 +36,13 @@ This is a simple example showing how to register for 
serialization of custom obj
   
 1. Execute `cpp-pdxserializer`, expect the following output:
 
-       Storing orders in the region
-       Getting the orders from the region
-       OrderID: 1
-       Product Name: product x
-       Quantity: 42
+    ```
+    Storing orders in the region
+    Getting the orders from the region
+    OrderID: 1
+    Product Name: product x
+    Quantity: 42
+    ```
 
 1. Run the `stopserver` script to gracefully shutdown the Geode cluster.
 
diff --git a/examples/cpp/pdxserializer/main.cpp 
b/examples/cpp/pdxserializer/main.cpp
index c5ad221..6691e0a 100644
--- a/examples/cpp/pdxserializer/main.cpp
+++ b/examples/cpp/pdxserializer/main.cpp
@@ -32,13 +32,15 @@ using namespace apache::geode::client;
 using namespace customserializer;
 
 int main(int argc, char **argv) {
-  auto cacheFactory = CacheFactory();
-  cacheFactory.set("log-level", "none");
-  auto cache = cacheFactory.create();
-  auto poolFactory = cache.getPoolManager().createFactory();
+  auto cache = CacheFactory()
+      .set("log-level", "none")
+      .create();
 
-  poolFactory.addLocator("localhost", 10334);
-  auto pool = poolFactory.create("pool");
+  cache.getPoolManager()
+      .createFactory()
+      .addLocator("localhost", 10334)
+      .create("pool");
+  
   auto regionFactory = cache.createRegionFactory(RegionShortcut::PROXY);
   auto region = regionFactory.setPoolName("pool").create("custom_orders");
 
diff --git a/examples/cpp/putgetremove/README.md 
b/examples/cpp/putgetremove/README.md
index b2a5cbb..69c905c 100644
--- a/examples/cpp/putgetremove/README.md
+++ b/examples/cpp/putgetremove/README.md
@@ -38,12 +38,14 @@ We then put, get, and remove some primitive data in the 
region.
   
 1. Execute `cpp-putgetremove`, expect the following output:
 
-       Storing id and username in the region
-       Getting the user info from the region
-         rtimmons = Robert Timmons
-         scharles = Sylvia Charles
-       Removing rtimmons info from the region
-       rtimmons's info successfully deleted3
+    ```
+    Storing id and username in the region
+    Getting the user info from the region
+       rtimmons = Robert Timmons
+       scharles = Sylvia Charles
+    Removing rtimmons info from the region
+    rtimmons's info successfully deleted
+    ```
 
 1. Run the `stopserver` script to gracefully shutdown the Geode cluster.
 
diff --git a/examples/cpp/putgetremove/main.cpp 
b/examples/cpp/putgetremove/main.cpp
index 8005682..95cecc8 100644
--- a/examples/cpp/putgetremove/main.cpp
+++ b/examples/cpp/putgetremove/main.cpp
@@ -25,13 +25,15 @@
 using namespace apache::geode::client;
 
 int main(int argc, char** argv) {
-  auto cacheFactory = CacheFactory();
-  cacheFactory.set("log-level", "none");
-  auto cache = cacheFactory.create();
-  auto poolFactory = cache.getPoolManager().createFactory();
+  auto cache = CacheFactory()
+      .set("log-level", "none")
+      .create();
 
-  poolFactory.addLocator("localhost", 10334);
-  auto pool = poolFactory.create("pool");
+  cache.getPoolManager()
+      .createFactory()
+      .addLocator("localhost", 10334)
+      .create("pool");
+  
   auto regionFactory = cache.createRegionFactory(RegionShortcut::PROXY);
   auto region = regionFactory.setPoolName("pool").create("example_userinfo");
 
diff --git a/examples/cpp/remotequery/README.md 
b/examples/cpp/remotequery/README.md
index a70affe..a347f83 100644
--- a/examples/cpp/remotequery/README.md
+++ b/examples/cpp/remotequery/README.md
@@ -34,15 +34,17 @@ This is a simple example showing how to create and execute 
a remote query.
     $ ./startserver.sh
     ```
   
-1. Execute `cpp-remotequery`, expect the following output:
-
-       Create orders
-       Storing orders in the region
-       Getting the orders from the region
-       The following orders have a quantity greater than 30:
-       OrderID: 2 Product Name: product y Quantity: 37
-       OrderID: 4 Product Name: product z Quantity: 102
-       OrderID: 6 Product Name: product z Quantity: 4
+1. Execute `cpp-remotequery`, expect the following output (quantities and 
order of presentation may differ):
+
+    ```
+    Create orders
+    Storing orders in the region
+    Getting the orders from the region
+    The following orders have a quantity greater than 30:
+    OrderID: 2 Product Name: product y Quantity: 37
+    OrderID: 4 Product Name: product z Quantity: 102
+    OrderID: 6 Product Name: product z Quantity: 4
+    ```
 
 1. Run the `stopserver` script to gracefully shutdown the Geode cluster.
 
diff --git a/examples/cpp/remotequery/main.cpp 
b/examples/cpp/remotequery/main.cpp
index 7bdd051..8e329c5 100644
--- a/examples/cpp/remotequery/main.cpp
+++ b/examples/cpp/remotequery/main.cpp
@@ -31,14 +31,15 @@ using namespace apache::geode::client;
 using namespace remotequery;
 
 int main(int argc, char** argv) {
-  auto cacheFactory = CacheFactory();
-  cacheFactory.set("log-level", "none");
-  auto cache = cacheFactory.create();
-
-  auto poolFactory = cache.getPoolManager().createFactory();
-  poolFactory.addLocator("localhost", 10334);
-  auto pool = poolFactory.create("pool");
+  auto cache = CacheFactory()
+      .set("log-level", "none")
+      .create();
 
+  auto pool = cache.getPoolManager()
+      .createFactory()
+      .addLocator("localhost", 10334)
+      .create("pool");
+  
   auto regionFactory = cache.createRegionFactory(RegionShortcut::PROXY);
   auto region = regionFactory.setPoolName("pool").create("custom_orders");
 
diff --git a/examples/cpp/sslputget/README.md b/examples/cpp/sslputget/README.md
index ca1469e..6fc4178 100644
--- a/examples/cpp/sslputget/README.md
+++ b/examples/cpp/sslputget/README.md
@@ -35,18 +35,22 @@ This example illustrates how to use SSL encryption for all 
traffic between a cli
     $ ./startserver.sh
     ```
   
-3. Execute `cpp-sslputget ./ClientSslKeys/`
+3. Execute (for Bash)
 
-   For Windows:
+     `./cpp-sslputget ./ClientSslKeys/`
+
+   Or, for Windows:
 
      `<build-type>/cpp-sslputget ./ClientSslKeys (where <build-type> = Debug 
or Release)`
 
-   Expec the following output:
+   Expect the following output:
 
-       Storing id and username in the region
-       Getting the user info from the region
-       rtimmons = Robert Timmons
-       scharles = Sylvia Charles
+    ```
+    Storing id and username in the region
+    Getting the user info from the region
+    rtimmons = Robert Timmons
+    scharles = Sylvia Charles
+    ```
 
 4. Run the `stopserver` script to gracefully shutdown the Geode cluster.
 
diff --git a/examples/cpp/transaction/README.md 
b/examples/cpp/transaction/README.md
index cea019b..b0b38c5 100644
--- a/examples/cpp/transaction/README.md
+++ b/examples/cpp/transaction/README.md
@@ -64,6 +64,8 @@ Example execution ends when the transaction is successfully 
committed, or when t
        Rolled back transaction - retrying(1)
        Rolled back transaction - retrying(0)       
     ```
+    
+    You can execute `cpp-transaction` more than once, if you wish to see a 
variety of results.
 
 4. Run the `stopserver` script to gracefully shutdown the Geode cluster.
 
diff --git a/examples/cpp/transaction/main.cpp 
b/examples/cpp/transaction/main.cpp
index 846a43e..d4bf8b6 100644
--- a/examples/cpp/transaction/main.cpp
+++ b/examples/cpp/transaction/main.cpp
@@ -55,13 +55,17 @@ int getValueFromExternalSystem() {
 }
 
 int main(int argc, char** argv) {
-  auto cache = CacheFactory().set("log-level", "none").create();
-  auto poolFactory = cache.getPoolManager().createFactory();
+  auto cache = CacheFactory()
+      .set("log-level", "none")
+      .create();
 
   std::cout << "Created cache" << std::endl;
 
-  poolFactory.addLocator("localhost", 10334);
-  auto pool = poolFactory.create("pool");
+  cache.getPoolManager()
+      .createFactory()
+      .addLocator("localhost", 10334)
+      .create("pool");
+  
   auto regionFactory = cache.createRegionFactory(RegionShortcut::PROXY);
   auto region = regionFactory.setPoolName("pool").create("exampleRegion");
 

Reply via email to