diff --git a/timesten/cache-introduction/00-novnc/images/novnc-launch-get-started-2.png b/timesten/cache-introduction/00-novnc/images/novnc-launch-get-started-2.png
index 16e3a6d7f..26671319e 100644
Binary files a/timesten/cache-introduction/00-novnc/images/novnc-launch-get-started-2.png and b/timesten/cache-introduction/00-novnc/images/novnc-launch-get-started-2.png differ
diff --git a/timesten/cache-introduction/00-novnc/novnc-livelabs.md b/timesten/cache-introduction/00-novnc/novnc-livelabs.md
index 3acf1fb5d..c1fa97fed 100644
--- a/timesten/cache-introduction/00-novnc/novnc-livelabs.md
+++ b/timesten/cache-introduction/00-novnc/novnc-livelabs.md
@@ -2,9 +2,7 @@
## Introduction
-This workshop can be accessed using a browser based graphical remote desktop (noVNC). It can also be accessed using SSH. You are free to use either method but we recommend SSH as for this workshop it provides a superior experience.
-
-This lab will show you how to get started with your workshop with a remote desktop session and how to enable SSH access.
+This workshop can be accessed using a browser based graphical remote desktop (noVNC). It can also be accessed using SSH. This lab will show you how to get started with your workshop with a remote desktop session, and how to enable SSH access.
**Estimated Lab Time**: 10 minutes
@@ -15,14 +13,14 @@ In this lab, you will:
- Enable fullscreen display of remote desktop session
- Enable remote clipboard integration
- Open the workshop guide from the remote desktop
-- Enable SSH access (optional but recommended)
+- Enable SSH access (optional)
### Prerequisites
This lab assumes you have:
- Launched the workshop in the LiveLabs environment
-- An RSA format SSH private/public key pair to use to access the OCI instance (optional)
+- An RSA format SSH private/public key pair to use to access the OCI instance using SSH (optional)
If you need help in generating a suitable SSH key pair, please consult [this tutorial](https://docs.oracle.com/en/learn/generate_ssh_keys/index.html).
@@ -50,19 +48,19 @@ During the execution of your labs you may need to copy text from your local PC/M

*Note:* Please make sure you initialize your clipboard with step [1] shown in the screenshot above before opening the target application in which you intend to paste the text. Otherwise will find the *paste* function in the context menu grayed out when attempting to paste for the first time.
+
+ **IMPORTANT:** Due to the slightly cumbesome nature of copying between your host system and the NoVNC session, we recommend that you perform all of the copy/paste actiosn within the NoVNC session. Alternatively, access the workshop's OCI instance via SSH and copy/paste between your host and your SSH session.
## Task 3: Open Your Workshop Guide
-1. If the *Web* browser window(s) is(are) not already open side-by-side, double-click on the *Get Started with your Workshop* icon from the remote desktop. This will launch one or two windows depending on the workshop.
+1. If the *Web* browser window is not already open, double-click on the *Get Started with your Workshop* icon from the remote desktop. This will open the workshop instructions within the NoVNC session (ideal for copy/paste).

-2. On the left windows is your workshop guide and depending on your workshop, you may also one or two browser tabs loaded with webapps. e.g. Weblogic console, Enterprise Manager Cloud Console, or a relevant application to your workshop such as SQL Developer, JDeveloper, etc.
+2. On the left is the browser window with your workshop guide

- 
-You may now proceed to the next lab.
## Task 4: Configure SSH access (optional).
@@ -118,6 +116,8 @@ This assumes that you already have an RSA type SSH key-pair available on the loc
```
For Putty, please refer to the guide [Generate SSH Keys](https://oracle-livelabs.github.io/common/labs/generate-ssh-key) on how to establish the connection using the *.ppk* private key.
+
+You can now *proceed to the next lab*.
## Acknowledgements
* **Author** - Rene Fontcha, LiveLabs Platform Lead, NA Technology
diff --git a/timesten/cache-introduction/00-novnc/novnc-owntenancy.md b/timesten/cache-introduction/00-novnc/novnc-owntenancy.md
index 396207b7f..3514a0444 100644
--- a/timesten/cache-introduction/00-novnc/novnc-owntenancy.md
+++ b/timesten/cache-introduction/00-novnc/novnc-owntenancy.md
@@ -1,12 +1,10 @@
-# Using noVNC Remote Desktop
+# Using noVNC Remote Desktop and enabling SSH access
## Introduction
-This workshop can be accessed using a browser based graphical remote desktop (noVNC) or via SSH. You are free to use either method, but we recommend SSH as for this workshop it provides a superior experience.
+This workshop can be accessed using a browser based graphical remote desktop (noVNC). It can also be accessed using SSH. This lab will show you how to get started with your workshop with a remote desktop session.
-This lab will show you how to get started with your workshop with a remote desktop session. SSH access was (optionally) provisioned when you created the OCI instance using the provided ORM stack file.
-
-If you prefer to use SSH access (recommended), and do not plan to use the graphical desktop, then you can skip the rest of this lab and *proceed to the next lab.*
+If you plan to only use SSH access then you can *proceed to the next lab*.
**Estimated Lab Time**: 5 minutes
@@ -22,7 +20,7 @@ In this lab, you will:
This lab assumes you have:
-- Launched the workshop in your own tenancy (paid or free trial)
+- Launched the workshop in your own tenancy using via the provided ORM stack
## Task 1: Enable Full-screen Display
For seamless desktop integration and to make the best use of your display, perform the following tasks to render your remote desktop session in fullscreen mode.
@@ -48,21 +46,22 @@ During the execution of your labs you may need to copy text from your local PC/M

*Note:* Please make sure you initialize your clipboard with step [1] shown in the screenshot above before opening the target application in which you intend to paste the text. Otherwise will find the *paste* function in the context menu grayed out when attempting to paste for the first time.
+
+ **IMPORTANT:** Due to the slightly cumbesome nature of copying between your host system and the NoVNC session, we recommend that you perform all of the copy/paste actions within the NoVNC session rather than between your host and the NoVNC session.
## Task 3: Open Your Workshop Guide
-1. If the *Web* browser window(s) is(are) not already open side-by-side, double-click on the *Get Started with your Workshop* icon from the remote desktop. This will launch one or two windows depending on the workshop.
+1. If the *Web* browser window is not already open, double-click on the *Get Started with your Workshop* icon from the remote desktop. This will open the workshop instructions within the NoVNC session (ideal for copy/paste).

-2. On the left windows is your workshop guide and depending on your workshop, you may also one or two browser tabs loaded with webapps. e.g. Weblogic console, Enterprise Manager Cloud Console, or a relevant application to your workshop such as SQL Developer, JDeveloper, etc.
+2. On the left is the browser window with your workshop guide

- 
-You may now *proceed to the next lab*.
+*You may now proceed to the next lab.*
## Acknowledgements
* **Author** - Rene Fontcha, LiveLabs Platform Lead, NA Technology
* **Contributors** - Arabella Yao, Database Product Management
-* **Last Updated By/Date** - Chris Jenkins, July 2022
\ No newline at end of file
+* **Last Updated By/Date** - Chris Jenkins, August 2022
\ No newline at end of file
diff --git a/timesten/cache-introduction/00-setup-compute/images/create-stack-novnc-2.png b/timesten/cache-introduction/00-setup-compute/images/create-stack-novnc-2.png
index c67d00a07..03509813f 100644
Binary files a/timesten/cache-introduction/00-setup-compute/images/create-stack-novnc-2.png and b/timesten/cache-introduction/00-setup-compute/images/create-stack-novnc-2.png differ
diff --git a/timesten/cache-introduction/00-setup-compute/images/create-stack-novnc-6.png b/timesten/cache-introduction/00-setup-compute/images/create-stack-novnc-6.png
index 60187b8a8..58804dd57 100644
Binary files a/timesten/cache-introduction/00-setup-compute/images/create-stack-novnc-6.png and b/timesten/cache-introduction/00-setup-compute/images/create-stack-novnc-6.png differ
diff --git a/timesten/cache-introduction/00-setup-compute/images/novnc-launch-get-started-2.png b/timesten/cache-introduction/00-setup-compute/images/novnc-launch-get-started-2.png
index 0b6716c49..1b3e8d99e 100644
Binary files a/timesten/cache-introduction/00-setup-compute/images/novnc-launch-get-started-2.png and b/timesten/cache-introduction/00-setup-compute/images/novnc-launch-get-started-2.png differ
diff --git a/timesten/cache-introduction/00-setup-compute/setup-compute.md b/timesten/cache-introduction/00-setup-compute/setup-compute.md
index f18150314..e67f07950 100644
--- a/timesten/cache-introduction/00-setup-compute/setup-compute.md
+++ b/timesten/cache-introduction/00-setup-compute/setup-compute.md
@@ -4,7 +4,7 @@
This lab will show you how to setup a Resource Manager stack that will generate the Oracle Cloud objects needed to run your workshop.
-*Estimated Lab Time:* 15 minutes
+**Estimated Lab Time:** 15 minutes
### About Terraform and Oracle Cloud Resource Manager
@@ -27,10 +27,13 @@ This lab assumes you have:
When using the downloaded ORM stack file to deploy the required OCI resources you have two options:
-- Allow the stack to create and configure a private, dedicated network (VNC and subnet) for you
+- Allow the stack to create and configure a private, dedicated network (VNC and subnet) for you (recommended)
+
- Specify an existing, suitably configured, network (VCN and subnet) to be used
-The rest of thi lab assumes that you will allow the stack to create the network for you. If you wish to use an existing network (see *Lab: Prepare Setup *for details of required Ingress rules) then consult the Appendix below for instructions.
+The rest of this lab assumes that you will allow the stack to create the network for you.
+
+If you wish to use an existing network (see *Lab: Prepare Setup* for details of required **Ingress** rules) then consult **Appendix 3** below for instructions.
## Task 2: Create Stack: Compute + Networking
@@ -58,81 +61,27 @@ The rest of thi lab assumes that you will allow the stack to create the network
7. Depending on the quota you have in your tenancy you can choose from standard Compute shapes or Flex shapes. Please visit the Appendix: Troubleshooting Tips for instructions on checking your quota
- **Use Flexible Instance Shape with Adjustable OCPU Count?:** Keep the default as checked (unless you plan on using a fixed shape)
- **Instance Shape:** Keep the default or select from the list of Flex shapes in the dropdown menu (e.g *VM.Standard.E4.Flex*).
- - **Instance OCPUS:** Accept the default shown. e.g. (**4**) will provision 4 OCPUs and 64GB of memory. You may also elect to reduce or increase the count by selecting from the dropdown. e.g. `[2-24]`. Please ensure you have the capacity available before increasing.
+ - **Instance OCPUS:** Accept the default shown. e.g. **4** will provision 4 OCPUs and 64GB of memory, which is the minimum for this workshop. Please ensure you have the capacity available before increasing the resources.
8. If don't have quota for Flex Shapes or you prefer to use fixed shapes, follow the instructions below. Otherwise skip to the next step.
- **Use Flexible Instance Shape with Adjustable OCPU Count?:** Unchecked
- - **Instance Shape:** Accept the default shown or select from the dropdown. e.g. VM.Standard2.2
+ - **Instance Shape:** Accept the default shown or select from the dropdown. e.g. VM.Standard2.4

-10. For this section we will provision a new VCN with all the appropriate ingress and egress rules needed to run this workshop. If you already have a VCN, make sure it has all of the correct ingress and egress rules and skip to the next section.
+10. In this section we are provisioning a new VCN with all the appropriate ingress and egress rules needed to run this workshop (recommended).
- **Use Existing VCN?:** Accept the default by leaving this unchecked. This will create a **new VCN**.
11. Click **Next**.
+
12. Select **Run Apply** and click **Create**.

-13. Your stack has is now created and the *Apply* action triggered is running to deploy your environment!
+13. Your stack has is now created and the *Apply* action is running to deploy your environment!

-You may now proceed to Task 2 (skip Task 1B).
-
-## Task 1B: Create Stack: Compute only
-If you just completed Task 1A, please proceed to Task 2. If you have an existing VCN and are comfortable updating VCN configurations, please ensure your VCN meets the minimum requirements. Refer to *Lab: Prepare Setup*
-
- *Note:* We recommend letting our stack create the VCN to reduce the potential for error.
-
-1. Identify the ORM stack zip file downloaded in *Lab: Prepare Setup*
-2. Login to Oracle Cloud
-3. Open up the hamburger menu in the left hand corner. Choose the compartment in which you would like to install. Choose **Resource Manager > Stacks**.
-
- 
-
- 
-
-4. Select **My Configuration**, click the **Browse** link and select the zip file (dbsec-lab-mkplc-freetier.zip) that you downloaded. Click **Select**.
-
- 
-
- Enter the following information:
- - **Name**: Enter a name or keep the prefilled default (*DO NOT ENTER ANY SPECIAL CHARACTERS HERE*, including periods, underscores, exclamation etc, it will mess up the configuration and you will get an error during the apply process)
- - **Description**: Same as above
- - **Create in compartment**: Select the correct compartment if not already selected
-
- *Note:* If this is a newly provisioned tenant such as freetier with no user created compartment, stop here and first create it before proceeding.
-
-5. Click **Next**.
-
- 
-
- Enter or select the following:
- - **Instance Count:** Keep the default to **1** to create only one instance. You may also choose to a higher number if you need more than one instance created.
- - **Select Availability Domain:** Select an availability domain from the dropdown list.
- - **Use Flexible Instance Shape with Adjustable OCPU Count?:** Keep the default as checked (unless you plan on using a fixed shape)
- - **Instance Shape:** Keep the default or select from the list of Flex shapes in the dropdown menu (e.g *VM.Standard.E4.Flex*).
- - **Instance OCPUS:** Accept the default shown. e.g. (**4**) will provision 4 OCPUs and 64GB of memory. You may also elect to reduce or increase the count by selecting from the dropdown. e.g. `[2-24]`. Please ensure you have the capacity available before increasing.
- - **Use Existing VCN?:** Check to select.
- - **Select Existing VCN?:** Select existing VCN with regional public subnet and required security list.
-
- *Note:* For an existing VCN Option to be used successful, review the details at the bottom of this section
-
-6. If you prefer to use fixed shapes, follow the instructions below. Otherwise skip to the next step.
- - **Use Flexible Instance Shape with Adjustable OCPU Count?:** Unchecked
- - **Instance Shape:** Accept the default shown or select from the dropdown. e.g. VM.Standard.E2.2
-
- 
-
-7. Review and click **Create**.
-
- 
-
-8. Your stack has is now created and the *Apply* action triggered is running to deploy your environment!
-
- 
-
-## Task 2: Terraform Apply
+## Task 3: Terraform Apply
In the prior steps we elected to trigger the *terraform apply action* on stack creation.
1. Review the job output.
@@ -143,7 +92,7 @@ In the prior steps we elected to trigger the *terraform apply action* on stack c
3. Your public IP address(es), instance name(s), and remote desktop URL are displayed.
-## Task 3: Access the Graphical Remote Desktop
+## Task 4: Access the Graphical Remote Desktop
For ease of execution of this workshop, your VM instance has been pre-configured with a remote graphical desktop accessible using any modern browser on your laptop or workstation. Proceed as detailed below to login.
1. Navigate to **Stack Details**, **Application Information** tab, and click on the remote desktop URL
@@ -161,6 +110,8 @@ For ease of execution of this workshop, your VM instance has been pre-configured
Public IP addresses used for LiveLabs provisioning comes from a pool of reusable addresses and this error is due to the fact that the address was previously used by a compute instance long terminated, but that wasn't properly secured, got bridged and was flagged. You can safely ignore and proceed by clicking on *Details*, and finally on *Visit this unsafe site*.

+
+You can now *proceed to the next lab*.
## Appendix 1: Terraform and Resource Manager
Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Configuration files describe to Terraform the components needed to run a single application or your entire datacenter. In this lab a configuration file has been created for you to build network and compute components. The compute component you will build creates an image out of Oracle's Cloud Marketplace. This image is running Oracle Linux 7.
@@ -251,7 +202,62 @@ Modify your stack to use fixed shapes instead.
1. Uncheck the option *"Use Flexible Instance Shape with Adjustable OCPU Count"* to use fixed shape instead

+## Appendix 3: Create Stack using an existing VCN
+
+If you have an existing VCN which you wish to use, and are comfortable updating VCN configurations, please ensure your VCN meets the minimum requirements. Refer to *Lab: Prepare Setup*
+
+*Note:* We recommend letting our stack create the VCN to reduce the potential for error.
+
+1. Identify the ORM stack zip file downloaded in *Lab: Prepare Setup*
+2. Login to Oracle Cloud
+3. Open up the hamburger menu in the left hand corner. Choose the compartment in which you would like to install. Choose **Resource Manager > Stacks**.
+
+ 
+
+ 
+
+4. Select **My Configuration**, click the **Browse** link and select the zip file (dbsec-lab-mkplc-freetier.zip) that you downloaded. Click **Select**.
+
+ 
+
+ Enter the following information:
+ - **Name**: Enter a name or keep the prefilled default (*DO NOT ENTER ANY SPECIAL CHARACTERS HERE*, including periods, underscores, exclamation etc, it will mess up the configuration and you will get an error during the apply process)
+ - **Description**: Same as above
+ - **Create in compartment**: Select the correct compartment if not already selected
+
+ *Note:* If this is a newly provisioned tenant such as freetier with no user created compartment, stop here and first create it before proceeding.
+
+5. Click **Next**.
+
+ 
+
+ Enter or select the following:
+ - **Instance Count:** Keep the default to **1** to create only one instance. You may also choose to a higher number if you need more than one instance created.
+ - **Select Availability Domain:** Select an availability domain from the dropdown list.
+ - **Use Flexible Instance Shape with Adjustable OCPU Count?:** Keep the default as checked (unless you plan on using a fixed shape)
+ - **Instance Shape:** Keep the default or select from the list of Flex shapes in the dropdown menu (e.g *VM.Standard.E4.Flex*).
+ - **Instance OCPUS:** Accept the default shown. e.g. **4** will provision 4 OCPUs and 64GB of memory, which is the minimum for this workshop. Please ensure you have the capacity available before increasing the resources.
+ - **Use Existing VCN?:** Check to select.
+ - **Select Existing VCN?:** Select existing VCN with regional public subnet and required security list.
+
+ *Note:* For an existing VCN Option to be used successful, review the details at the bottom of this section
+
+6. If you prefer to use fixed shapes, follow the instructions below. Otherwise skip to the next step.
+ - **Use Flexible Instance Shape with Adjustable OCPU Count?:** Unchecked
+ - **Instance Shape:** Accept the default shown or select from the dropdown. e.g. VM.Standard.E2.4
+
+ 
+
+7. Review and click **Create**.
+
+ 
+
+8. Your stack has is now created and the *Apply* action is running to deploy your environment!
+
+ 
+
+You may now return to **Task 3: Terraform Apply** above.
## Acknowledgements
* **Author** - Rene Fontcha, LiveLabs Platform Lead, NA Technology
-* **Last Updated By/Date** - Rene Fontcha, LiveLabs Platform Lead, NA Technology, August 2021
\ No newline at end of file
+* **Last Updated By/Date** - Chris Jenkins, August 2022
\ No newline at end of file
diff --git a/timesten/cache-introduction/01-introduction/introduction.md b/timesten/cache-introduction/01-introduction/introduction.md
index fb03b4f72..3d49984b4 100644
--- a/timesten/cache-introduction/01-introduction/introduction.md
+++ b/timesten/cache-introduction/01-introduction/introduction.md
@@ -6,15 +6,15 @@ In this workshop you will discover how deploying Oracle TimesTen In-Memory Datab
Setting up a TimesTen cache is quick and easy. This workshop leads you through the process step by step and uses a simple OLTP application and some example queries to demonstrate the incredibly low query latencies provided by TimesTen.
-**Estimated Workshop Time:** 90 minutes
+**Estimated Workshop Time:** 120 minutes
### About Oracle TimesTen In-Memory Database
Oracle TimesTen In-Memory Database (TimesTen) delivers real-time application performance (low response time and high throughput) by changing the assumptions around where data resides at runtime. By managing data in memory, and optimizing data structures and access algorithms accordingly, database operations execute with maximum efficiency achieving dramatic gains in responsiveness and throughput.
-TimesTen is a relational database, with SQL as its access language and PL/SQL as its procedural language so that you can leverage your existing Oracle Database skills. It supports many database APIs such as JDBC, ODBC, ODP.NET and Oracle Call Interface (OCI) and several Open Source languages, such as Python and Node.js, are supported via Open Source APIs. TimesTen provides full persistence and has built-in high availability.
+TimesTen is a relational database, with SQL as its access language and PL/SQL as its procedural language, so you can leverage your existing Oracle Database skills. It supports many database APIs, such as JDBC, ODBC, ODP.NET and Oracle Call Interface (OCI), and several Open Source languages, such as Python and Node.js, are supported via Open Source APIs. TimesTen provides full persistence and has built-in high availability.
-TimesTen can be deployed both as a database of record or as a high-performance relational cache in front of an Oracle database to accelerate Oracle database applications. This lab focuses on the cache deployment mode.
+TimesTen can be deployed both as a database of record or as a high-performance relational cache in front of an Oracle database to accelerate Oracle database applications. This lab focuses on the cache deployment mode of TimesTen Classic.

@@ -43,18 +43,18 @@ This workshop assumes that you have:
In order to run this workshop you need:
-* An active Oracle Cloud account
+* An active Oracle account or Oracle Cloud account
You can run this workshop:
-* In the LiveLabs sandbox
+* In the LiveLabs sandbox using a regular Oracle Account
* In your own tenancy using a paid Oracle Cloud account or a free-trial Oracle Cloud account
This workshop does _not_ support the Oracle Cloud 'Always Free' tier due to that tier's resource restrictions.
-**IMPORTANT:** This workshop requires an OCI comoute instance with at least **4 CPUs** and **32 GB RAM.** If you choose to run this workshop in your own tenancy, please ensure that you have sufficient resources available.
+**IMPORTANT:** This workshop requires an OCI compute instance with at least **4 CPUs** and **32 GB RAM.** If you choose to run this workshop in your own tenancy, please ensure that you have sufficient resources available.
-You may now ***proceed to the next lab***.
+You can now *proceed to the next lab*.
## Learn More
@@ -66,4 +66,4 @@ You may now ***proceed to the next lab***.
* **Author** - Chris Jenkins, Senior Director, TimesTen Product Management
* **Contributors** - Doug Hood & Jenny Bloom, TimesTen Product Management
-* **Last Updated By/Date** - Chris Jenkins, July 2022
+* **Last Updated By/Date** - Chris Jenkins, August 2022
diff --git a/timesten/cache-introduction/02-prepare-setup/prepare-setup.md b/timesten/cache-introduction/02-prepare-setup/prepare-setup.md
index 34a93a47f..847babbef 100644
--- a/timesten/cache-introduction/02-prepare-setup/prepare-setup.md
+++ b/timesten/cache-introduction/02-prepare-setup/prepare-setup.md
@@ -4,7 +4,7 @@
In this lab, you will download the Oracle Resource Manager (ORM) stack zip file needed to set up the resources needed to run this workshop. This workshop requires a compute instance and a Virtual Cloud Network (VCN) and subnet.
-**Estimated Lab Time:** 15 minutes
+**Estimated Lab Time:** 10 minutes
### Objectives
@@ -25,37 +25,43 @@ This lab assumes you have:
2. Save in your downloads folder.
-We strongly recommend using this stack to create a self-contained/dedicated VCN for your instance. If you would rather use an existing VCN, consult the appendix below to learn how to update an existing VCN with the required Ingress rules.
-## Task 2: Setup your OCI compute instance
-Using the details from the two steps above, proceed to the lab *Environment Setup* to set up your workshop environment using Oracle Resource Manager (ORM) using one of the following options:
+## Task 2: Prepare to setup your OCI compute instance
- - Create Stack: *Compute + Networking*
- - Create Stack: *Compute only* using an existing VCN where security lists have been updated as per *Task 2* above
+Using the ORM zip file from the previous step, you can setup your workshop environment in one of two ways:
+
+- Let the stack create both the compute and network resources (recommended)
+
+- Let the stack create the compute resources and connect them to an existing VNC.
+
+For simplicity, we recommend allowing the stack to create a self-contained, dedicated VCN for this workshop. If you would rather use an existing VCN, consult the appendix below to learn how to update an existing VCN with the required Ingress rules.
+
+The detailed steps for both options are covered in the next lab.
**IMPORTANT**
When deploying the workshop compute instance via the ORM stack, as described in the next lab:
-1. By default SSH access using a system generated SSH private key is enabled. SSH access is recommended for this workshop as it offers a better user experience, especially for copy/paste, than Remote Desktop access.
+1. By default SSH access using a system generated SSH private key is enabled.
2. If you wish to provide your own SSH public key, uncheck the option *Auto Generate SSH Key Pair* and follow the on-screen instructions to either upload or copy/paste your SSH public key.
-3. Unless you wish to customize SSH connectivity as described in (2), you can accept all the defaults provided by the ORM stack.
+3. Unless you wish to customize SSH connectivity as described in (2), you can accept all the other defaults provided by the ORM stack.
-You may now *proceed to the next lab*.
+You can now *proceed to the next lab*.
## Appendix: Adding security rules to an existing VCN
-This workshop requires a certain number of ports to be available, a requirement that can be met by using the default ORM stack execution that creates a dedicated VCN. In order to use an existing VCN/subnet, the following ports should be added to the Ingress rules.
+This workshop requires a certain number of ports to be available, a requirement that can be met by using the default ORM stack execution that creates a dedicated VCN. In order to use an existing VCN/subnet, the following ports should be added to the **Ingress** rules.
| Port |Description |
| :------------- | :------------------------------------ |
| 22 | SSH |
| 80 | Remote Desktop using noVNC |
+| 6080 | Remote Desktop using noVNC |
-**Note:** If you plan to only use SSH connectivity, or only Remote Desktop connectivity, then you only need to open the appropriate port.
+**Note:** If you plan to only use SSH connectivity, or only Remote Desktop connectivity, then you only need to open the appropriate port(s).
1. Go to *Networking >> Virtual Cloud Networks*
@@ -74,9 +80,8 @@ This workshop requires a certain number of ports to be available, a requirement
7. Click the **Add Ingress Rules** button
-
## Acknowledgements
* **Author** - Chris Jenkins, Senior Director, TimesTen Product Management
* **Contributors** - Doug Hood & Jenny Bloom, TimesTen Product Management
-* **Last Updated By/Date** - Chris Jenkins, July 2022
+* **Last Updated By/Date** - Chris Jenkins, August 2022
diff --git a/timesten/cache-introduction/03-connect-to-instance/connect-to-instance-desktop.md b/timesten/cache-introduction/03-connect-to-instance/connect-to-instance-desktop.md
new file mode 100644
index 000000000..1c060242d
--- /dev/null
+++ b/timesten/cache-introduction/03-connect-to-instance/connect-to-instance-desktop.md
@@ -0,0 +1,69 @@
+# Connect to the workshop compute instance
+
+## Introduction
+
+In this lab, you will learn the different ways to connect to the OCI compute instance that hosts the workshop.
+
+The workshop requires you to use a terminal session to run various commands and observe their output. Often you may need to copy and paste commands or text from the workshop instructions into the terminal session.
+
+In the LiveLabs sandbox, the only connection method available to you by default is a GUI session using the browser-based noVNC remote desktop mechanism. It is possible to set up SSH connectivity by adding your own SSH public key into the instance.
+
+If you wish to use the NoVNC remote desktop, we recommend that you perform all of your copy/paste activities completely within NoVNC.
+
+If you prefer, you can connect using SSH and copy/paste between the workshop instructions in your host's browser and your SSH session.
+
+**Estimated Lab Time:** 5 minutes
+
+### Objectives
+
+- Connect to the compute instance using noVNC remote desktop
+- Connect to the compute instance using SSH (optional)
+
+### Prerequisites
+
+This lab assumes that you have:
+
+- Completed all the previous labs in this workshop, in sequence.
+
+## Task 1: Connect using noVNC remote desktop
+
+When you launch the workshop by clicking the *Launch Workshop* link in the LiveLabs reservation page entry, these instructions open in your browser. Click on ***View Login Info*** at the tope left of the browser window and then click the Launch Remote Desktop button. You should then see the workshop desktop.
+
+
+
+You can use the **Terminal** option under the *Activities* menu, or double-click the *Terminal* icon on the desktop, to open a terminal session.
+
+## Task 2: Connect using SSH (optional)
+
+You can connect to the instance as the oracle user using an SSH private key.
+
+Follow the instructions in the lab *Using noVNC Remote Desktop* to add your SSH public key to the **oracle** user's SSH **authorized_keys** file. You can then connect to the workshop compute instance using the corresponding SSH private key.
+
+Assuming that the SSH private key is **~/.ssh/id_livelabs** and the public IP address of the workshop compute instance is **123.123.123.123** then you can connect using:
+
+```
+
+ssh -i ~/.ssh/id_livelabs oracle@123.123.123.123
+
+```
+
+```
+The authenticity of host '123.123.123.123 (123.123.123.123)' can't be established.
+ED25519 key fingerprint is SHA256:bm2wv3HgyBIhIRov6+EtId10rQHyq1LXpXglQMpqhqA.
+This key is not known by any other names
+Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
+Warning: Permanently added '140.238.69.118' (ED25519) to the list of known hosts.
+Last login: Mon Jun 27 09:12:52 2022 from aa.bb.cc.dd
+[oracle@ttlivelabvm ~]$
+```
+
+You can now *proceed to the next lab*.
+
+If you plan to use SSH then keep your terminal session open for use in the next lab.
+
+## Acknowledgements
+
+* **Author** - Chris Jenkins, Senior Director, TimesTen Product Management
+* **Contributors** - Doug Hood & Jenny Bloom, TimesTen Product Management
+* **Last Updated By/Date** - Chris Jenkins, August 2022
+
diff --git a/timesten/cache-introduction/03-connect-to-instance/connect-to-instance-freetier.md b/timesten/cache-introduction/03-connect-to-instance/connect-to-instance-freetier.md
index 864627345..cd00cf8e8 100644
--- a/timesten/cache-introduction/03-connect-to-instance/connect-to-instance-freetier.md
+++ b/timesten/cache-introduction/03-connect-to-instance/connect-to-instance-freetier.md
@@ -1,20 +1,15 @@
-# Connect to the workshop compute instance
+# Connect to the workshop compute instance using SSH (optional)
## Introduction
-In this lab, you will learn the different ways to connect to the OCI compute instance that hosts the workshop.
-
-The workshop requires you to use a terminal session to run various commands and observe their output. Often you may need to copy and paste commands or text from the workshop instructions into the terminal session.
-
-If you chose to run the workshop in the LiveLabs sandbox then the only connection method available to you by default is a GUI session using the browser-based VNC mechanism. It is possible to set up SSH connectivity by adding your own SSH key into the instance (follow the instructions provided in the noVNC lab).
-
-If you chose to run the workshop in your own tenancy, or in a free-trial Cloud account, then you can use the same browser-based GUI connection method. Also, if you selected the option during deployment via the ORM stack, you also have the option to use SSH connectivity (**strongly recommended)**.
+You always have the option to access the workshop host using the browser based NoVNC graphical desktop (covered in a previous lab). In addition, if you enabled the option when deploying the workshop, you also have direct SSH access to the workshop host.
+In this optional lab, you will learn how to connect to the workshop host using SSH. If you prefer to use the NoVNC remote Desktop rather than SSH then you can simply *proceed to the next lab*.
+
**Estimated Lab Time:** 5 minutes
### Objectives
-- Connect to the compute instance using noVNC
- Connect to the compute instance using SSH (optional)
### Prerequisites
@@ -23,58 +18,11 @@ This lab assumes that you have:
- Completed all the previous labs in this workshop, in sequence.
-## Task 1: Connect using noVNC remote desktop
-
-All environments support browser based noVNC connections. The lab *Using noVNC Remote Desktop* provides information on using the noVNC remote desktop.
-
-_LiveLabs sandbox_
-
-In the LiveLabs reservation page for your active reservation, you will see the URL to use for a noVNC connection to the workshop instance.
-
-_Own tenancy or free-trial Cloud account_
-
-At the end of the ORM stack 'apply' job execution log you will see the noVNC connection URL.
-
-```
-remote_desktop = [
- "http://140.238.65.52/livelabs/vnc.html?password=yO56MG6tnJ&resize=scale&quality=9&autoconnect=true&reconnect=true",
-]
-```
-The noVNC connection URL can also be viewed and copied on the Stack's Application Information tab:
-
-
-
-Copy/paste the URL from the log into your browser and you should then see the workshop desktop.
+## Task 1: Connect using SSH (optional)
-
+If you configured SSH access as part setting up the ORM stack then you can connect to the instance, as the oracle user, using an SSH private key.
-You can use the **Terminal** option under the *Activities* menu, or double-click the *Terminal* icon on the desktop, to open a terminal session.
-
-## Task 2: Connect using SSH (optional but recommended)
-
-You can connect to the instance as the oracle user using an SSH private key.
-
-_LiveLabs sandbox_
-
-Follow the instructions in the lab *Using noVNC Remote Desktop* to add your SSH public key to the **oracle** user's SSH **authorized_keys** file. You can then connect to the workshop compute instance using the corresponding SSH private key.
-
-_Own tenancy or free-trial Cloud account - user-provided public key_
-
-If you enabled SSH connectivity by providing your own SSH public key as part of the ORM stack deployment process then you can connect using the corresponding SSH private key.
-
-_Own tenancy or free-trial Cloud account - system-generated key pair_
-
-If you enabled SSH connectivity using a system generated key as part of the ORM stack deployment process, the SSH private key needed to connect is displayed at the end of the ORM stack 'apply' job execution log.
-
-```
-generated_instance_ssh_private_key = -----BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEAu8ta42Xs+O/JvkDfpjWo4c2uqb9xkR2IncidGFE1FO4GlMm6
-...
-2o0ssyrFUAo93fbkfdNfqojnnVJaMjGrpwaTS80Y7tbIrreex2R+9g==
------END RSA PRIVATE KEY-----
-```
-
-The generated SSH private key can also be viewed and copied on the Stack's Application Information tab:
+If you selected an automatically generated SSH private key, the key can be viewed and copied on the Stack's Application Information tab:

@@ -100,7 +48,9 @@ Last login: Mon Jun 27 09:12:52 2022 from aa.bb.cc.dd
[oracle@ttlivelabvm ~]$
```
-You can now *proceed to the next lab*. You can keep your terminal session open for use in the next lab.
+You can now *proceed to the next lab*.
+
+If you plan to use SSH for the rest of the workshop, keep your terminal session open for use in the next lab.
## Acknowledgements
diff --git a/timesten/cache-introduction/03-connect-to-instance/connect-to-instance-livelabs.md b/timesten/cache-introduction/03-connect-to-instance/connect-to-instance-livelabs.md
index d8faf6269..b506de994 100644
--- a/timesten/cache-introduction/03-connect-to-instance/connect-to-instance-livelabs.md
+++ b/timesten/cache-introduction/03-connect-to-instance/connect-to-instance-livelabs.md
@@ -6,14 +6,18 @@ In this lab, you will learn the different ways to connect to the OCI compute ins
The workshop requires you to use a terminal session to run various commands and observe their output. Often you may need to copy and paste commands or text from the workshop instructions into the terminal session.
-In the LiveLabs sandbox, the only connection method available to you by default is a GUI session using the browser-based noVNC remote desktop mechanism. It is possible to set up SSH connectivity by adding your own SSH key into the instance. Connecting via SSH will proviee a superiodu experience due to the amount of copy/paste needed between the lab instructions and the terminal session.
+In the LiveLabs sandbox, the only connection method available to you by default is a GUI session using the browser-based noVNC remote desktop mechanism. It is possible to set up SSH connectivity by adding your own SSH public key into the instance.
+
+If you wish to use the NoVNC remote desktop, we recommend that you perform all of your copy/paste activities completely within NoVNC.
+
+If you prefer, you can connect using SSH and copy/paste between the workshop instructions in your host's browser and your SSH session.
**Estimated Lab Time:** 5 minutes
### Objectives
- Connect to the compute instance using noVNC remote desktop
-- Connect to the compute instance using SSH (optional but recommended)
+- Connect to the compute instance using SSH (optional)
### Prerequisites
@@ -25,43 +29,17 @@ This lab assumes that you have:
When you launch the workshop by clicking the *Launch Workshop* link in the LiveLabs reservation page entry, these instructions open in your browser. Click on ***View Login Info*** at the tope left of the browser window and then click the Launch Remote Desktop button. You should then see the workshop desktop.
-
+
You can use the **Terminal** option under the *Activities* menu, or double-click the *Terminal* icon on the desktop, to open a terminal session.
-## Task 2: Connect using SSH (optional but recommended)
+## Task 2: Connect using SSH (optional)
You can connect to the instance as the oracle user using an SSH private key.
-_LiveLabs sandbox_
-
Follow the instructions in the lab *Using noVNC Remote Desktop* to add your SSH public key to the **oracle** user's SSH **authorized_keys** file. You can then connect to the workshop compute instance using the corresponding SSH private key.
-_Own tenancy or free-trial Cloud account - user-provided public key_
-
-If you enabled SSH connectivity by providing your own SSH public key as part of the ORM stack deployment process then you can connect using the corresponding SSH private key.
-
-_Own tenancy or free-trial Cloud account - system-generated key pair_
-
-If you enabled SSH connectivity using a system generated key as part of the ORM stack deployment process, the SSH private key needed to connect is displayed at the end of the ORM stack 'apply' job execution log.
-
-```
-generated_instance_ssh_private_key = -----BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEAu8ta42Xs+O/JvkDfpjWo4c2uqb9xkR2IncidGFE1FO4GlMm6
-...
-2o0ssyrFUAo93fbkfdNfqojnnVJaMjGrpwaTS80Y7tbIrreex2R+9g==
------END RSA PRIVATE KEY-----
-```
-
-The generated SSH private key can also be viewed and copied on the Stack's Application Information tab:
-
-
-
-Copy/paste the key into a file on your client computer, or import into your SSH client, and use it to connect via SSH.
-
-**NOTE:** On Linux and macOS systems, SSH private keys should be stored in your user's .ssh directory (**~/.ssh**) and must have permissions of **600 (rw-------)**.
-
-Assuming that the SSH private key is **~/.ssh/id_livelabs** and the public IP address of the workshop compute instance is **123.123.123.123** then you can connect using:
+Assuming that the corresponding SSH private key is **~/.ssh/id_livelabs** and the public IP address of the workshop compute instance is **123.123.123.123** then you can connect using:
```
@@ -79,11 +57,13 @@ Last login: Mon Jun 27 09:12:52 2022 from aa.bb.cc.dd
[oracle@ttlivelabvm ~]$
```
-You can now *proceed to the next lab*. You can keep your terminal session open for use in the next lab.
+You can now *proceed to the next lab*.
+
+If you plan to use SSH then keep your terminal session open for use in the next lab.
## Acknowledgements
* **Author** - Chris Jenkins, Senior Director, TimesTen Product Management
* **Contributors** - Doug Hood & Jenny Bloom, TimesTen Product Management
-* **Last Updated By/Date** - Chris Jenkins, July 2022
+* **Last Updated By/Date** - Chris Jenkins, August 2022
diff --git a/timesten/cache-introduction/03-connect-to-instance/images/workshop-homescreen.png b/timesten/cache-introduction/03-connect-to-instance/images/workshop-homescreen.png
new file mode 100644
index 000000000..af0e2014c
Binary files /dev/null and b/timesten/cache-introduction/03-connect-to-instance/images/workshop-homescreen.png differ
diff --git a/timesten/cache-introduction/04-initialize-environment/initialize-environment.md b/timesten/cache-introduction/04-initialize-environment/initialize-environment.md
index fc9961d87..a216e6a0a 100644
--- a/timesten/cache-introduction/04-initialize-environment/initialize-environment.md
+++ b/timesten/cache-introduction/04-initialize-environment/initialize-environment.md
@@ -14,21 +14,18 @@ The workshop uses an Oracle database which runs in its own container (**dbhost**
### Prerequisites
-This lab assumes that you have:
+This lab assumes that you:
-- Completed all the previous labs in this workshop, in sequence.
+- Have completed all the previous labs in this workshop, in sequence.
+- Have an open terminal session in the workshop compute instance, either via NoVNC or SSH.
### Starting over from the beginning
Once you have successfully completed this lab, if at any point you want to start the whole workshop again from the beginning, just go to the **~/lab** directory and run the script **labReset.sh**. That script will take 5-8 minutes to run and it will reset everything back to the way it will be after this lab is completed.
-## Task 1: Connect to the environment
+## Task 1: Initialize and startup the lab components
-Connect to the OCI compute instance and open a terminal session, as the user **oracle**, using an appropriate method as discussed in the previous lab.
-
-## Task 2: Initialize and startup the lab components
-
-Change to the **lab** directory:
+1. In the terminal session, change to the **lab** directory:
```
@@ -36,7 +33,7 @@ cd ~/lab
```
-Initialize the workshop:
+2. Initialize the workshop:
```
@@ -53,7 +50,9 @@ info: Oracle Database state successfully reset
info: starting Oracle Database: OK
```
-This command will take between 5 and 8 minutes to complete. Once the setup script has completed successfully, *proceed to the next lab*. You can keep your terminal session open ready for the next lab.
+This command will take between 5 and 8 minutes to complete. Once the setup script has completed successfully, *proceed to the next lab*.
+
+Keep your terminal session open ready for the next lab.
## Acknowledgements
diff --git a/timesten/cache-introduction/05-create-instance/create-instance.md b/timesten/cache-introduction/05-create-instance/create-instance.md
index c53162900..32a8f5016 100644
--- a/timesten/cache-introduction/05-create-instance/create-instance.md
+++ b/timesten/cache-introduction/05-create-instance/create-instance.md
@@ -14,17 +14,14 @@ In this lab, you will create a TimesTen instance to host our TimesTen cache data
### Prerequisites
-This lab assumes that you have:
+This lab assumes that you:
-- Completed all the previous labs in this workshop, in sequence.
+- Have completed all the previous labs in this workshop, in sequence.
+- Have an open terminal session in the workshop compute instance, either via NoVNC or SSH.
-## Task 1: Connect to the environment
+## Task 1: Connect to the TimesTen host
-If you do not already have an active terminal session, connect to the OCI compute instance and open a terminal session, as the user **oracle**.
-
-## Task 2: Connect to the TimesTen host
-
-Connect to the TimesTen host (tthost1) using ssh:
+1. In the terminal session, connect to the TimesTen host (tthost1) using ssh:
```
@@ -36,7 +33,7 @@ ssh tthost1
Your current directory is: /tt/livelab
[oracle@tthost1 livelab]$
```
-Take a look at the directory contents:
+2. Take a look at the directory contents:
```
@@ -53,7 +50,7 @@ drwxr-xr-x. 2 oracle oinstall 4096 May 26 13:10 scripts
-rw-r--r--. 1 oracle oinstall 3879 May 10 14:31 tables_oe.sql
```
-## Task 3: Create a TimesTen instance
+## Task 2: Create a TimesTen instance
A TimesTen _installation_ is comprised of the TimesTen software components. An installation is created by unzipping the TimesTen software distribution media into a suitable location. For this workshop, the TimesTen software distribution media has already been unzipped into the directory **/shared/sw** to create a TimesTen installation named **tt22.1.1.3.0**. Take a look at that:
@@ -134,7 +131,7 @@ cp scripts/sys.odbc.ini /tt/inst/ttinst/conf/sys.odbc.ini
```
-## Task 4: Start the instance
+## Task 3: Start the instance
Whenever you work with TimesTen, it is _essential_ that you have the correct environment settings for the instance that you are working with. The easiest and safest way to do this is to source the environment file provided within the instance:
@@ -172,7 +169,7 @@ TimesTen Daemon (PID: 706, port: 6624) startup OK.
You now have an operational TimesTen instance that can host TimesTen databases.
-## Task 5: View the database configuration file (sys.odbc.ini)
+## Task 4: View the database configuration file (sys.odbc.ini)
Examine the database configuration file sys.odbc.ini. This file is the main configuration file for the instance and defines all the databases that will be managed by the instance along with parameters used for connecting to them:
@@ -211,7 +208,7 @@ ConnectionCharacterSet=AL32UTF8
- All TimesTen APIs support both direct mode and client-server and, with some minor exceptions, the functionality is identical regardless of the type of connectivity that you are using.
-## Task 6: Run some simple TimesTen commands
+## Task 5: Run some simple TimesTen commands
One of the simplest TimesTen utilities is **ttVersion**. This provides basic information about the TimesTen instance:
@@ -251,7 +248,9 @@ End of report
Currently, there is not much to observe other than the process ids and port numbers used by the instance Daemon and Server processes.
-You can now *proceed to the next lab*. Keep your terminal session open for use in the next lab.
+You can now *proceed to the next lab*.
+
+Keep your terminal session to tthost1 open ready for the next lab.
## Acknowledgements
diff --git a/timesten/cache-introduction/06-prepare-oracle/prepare-oracle.md b/timesten/cache-introduction/06-prepare-oracle/prepare-oracle.md
index 0076ef62f..877dd8399 100644
--- a/timesten/cache-introduction/06-prepare-oracle/prepare-oracle.md
+++ b/timesten/cache-introduction/06-prepare-oracle/prepare-oracle.md
@@ -14,17 +14,12 @@ In this lab, we will prepare the Oracle database to support TimesTen caching.
### Prerequisites
-This lab assumes that you have:
+This lab assumes that you:
-- Completed all the previous labs in this workshop, in sequence.
+- Have completed all the previous labs in this workshop, in sequence.
+- Have an open terminal session in the workshop compute instance, either via NoVNC or SSH, and that session is logged into the TimesTen host (tthost1).
-## Task 1: Connect to the environment
-
-If you do not already have an active terminal session, connect to the OCI compute instance and open a terminal session, as the user **oracle**.
-
-In that terminal session, connect to the TimesTen host (tthost1) using ssh.
-
-## Task 2: Examine Oracle database schemas and tables
+## Task 1: Examine Oracle database schemas and tables
There are two separate schema users, **appuser** and **oe**, already defined in the Oracle Database. Each user has some tables, which have already been created, and example data has been pre-loaded into those tables.
@@ -111,9 +106,9 @@ _OE schema_
After the tables were created and populated with suitable example data, optimizer statistics were gathered using **dbms\_stats.gather\_schema\_stats**.
-## Task 3: Create tablespace and cache admin user
+## Task 2: Create tablespace and cache admin user
-Connect to the Oracle database (running on dbhost) using the **sqlplus** utility:
+1. In your session on tthost1, connect to the Oracle database (running on dbhost) using the **sqlplus** utility:
```
@@ -136,7 +131,7 @@ Version 19.3.0.0.0
SQL>
```
-Create a tablespace to hold the TimesTen Cache metadata:
+2. Create a tablespace to hold the TimesTen Cache metadata:
```
@@ -148,7 +143,7 @@ CREATE TABLESPACE cachetblsp DATAFILE '/opt/oracle/oradata/ORCLCDB/ORCLPDB1/ttca
Tablespace created.
```
-Create the TimesTen cache admin user (in this workshop we will name the user **ttcacheadm** with password **ttcacheadm**):
+3. Create the TimesTen cache admin user (in this workshop we will name the user **ttcacheadm** with password **ttcacheadm**):
```
@@ -160,7 +155,7 @@ CREATE USER ttcacheadm IDENTIFIED BY ttcacheadm DEFAULT TABLESPACE cachetblsp QU
User created.
```
-Grant CREATE SESSION privilege to the user:
+4. Grant CREATE SESSION privilege to the user:
```
@@ -172,11 +167,11 @@ GRANT CREATE SESSION TO ttcacheadm;
Grant succeeded.
```
-## Task 4: Grant required roles and privileges to the cache admin user
+## Task 3: Grant required roles and privileges to the cache admin user
The cache admin user needs various privileges. In order to simplify granting these, TimesTen includes a SQL script (**\$TIMESTEN_HOME/install/oraclescripts/grantCacheAdminPrivileges.sql**) that can be run to grant them.
-Run that script passing it the cache admin username (ttcacheadm):
+Run that script in SQL\*Plus, passing it the cache admin username (ttcacheadm):
```
@@ -228,73 +223,28 @@ PUBLIC
********* Initialization for cache admin user done successfully *********
```
-## Task 5: Grant table specific privileges to cache admin user
+## Task 4: Grant table specific privileges to the cache admin user
The cache admin user also needs specific privileges on each user table that will be cached in TimesTen. The exact privileges depend on the type of caching that will be used. In this workshop we are using READONLY caching, so the cache admin user needs SELECT privilege on all the user tables that will be cached,
-Grant those privileges:
+1. Grant those privileges (be sure to press 'Enter' after pasting this into SQL\*Plus):
```
GRANT SELECT ON oe.promotions TO ttcacheadm;
-
-```
-
-```
-
GRANT SELECT ON oe.product_information TO ttcacheadm;
-
-```
-
-```
-
GRANT SELECT ON oe.customers TO ttcacheadm;
-
-```
-
-```
-
GRANT SELECT ON oe.orders TO ttcacheadm;
-
-```
-
-```
-
GRANT SELECT ON oe.order_items TO ttcacheadm;
-
-```
-
-```
-
GRANT SELECT ON oe.inventories TO ttcacheadm;
-
-```
-
-```
-
GRANT SELECT ON oe.product_descriptions TO ttcacheadm;
-
-```
-
-```
-
GRANT SELECT ON appuser.vpn_users TO ttcacheadm;
-
-```
-
-```
-
GRANT SELECT ON appuser.parent TO ttcacheadm;
-
-```
-
-```
-
GRANT SELECT ON appuser.child TO ttcacheadm;
```
-Exit from SQL\*Plus:
+2. Exit from SQL\*Plus:
```
@@ -309,7 +259,9 @@ Version 19.3.0.0.0
The Oracle database is now set up to support a TimesTen cache for the specified tables.
-You can now *proceed to the next lab*. Keep your terminal session open for use in the next lab.
+You can now *proceed to the next lab*.
+
+Keep your terminal session to tthost1 open for use in the next lab.
## Acknowledgements
diff --git a/timesten/cache-introduction/07-prepare-cache/prepare-cache.md b/timesten/cache-introduction/07-prepare-cache/prepare-cache.md
index 41a31aa82..032b229de 100644
--- a/timesten/cache-introduction/07-prepare-cache/prepare-cache.md
+++ b/timesten/cache-introduction/07-prepare-cache/prepare-cache.md
@@ -16,17 +16,12 @@ These tasks are all accomplished using SQL statements, so they can be easily per
### Prerequisites
-This lab assumes that you have:
+This lab assumes that you:
-- Completed all the previous labs in this workshop, in sequence.
+- Have completed all the previous labs in this workshop, in sequence.
+- Have an open terminal session in the workshop compute instance, either via NoVNC or SSH, and that session is logged into the TimesTen host (tthost1).
-## Task 1: Connect to the environment
-
-If you do not already have an active terminal session, connect to the OCI compute instance and open a terminal session, as the user **oracle**.
-
-In that terminal session, connect to the TimesTen host (tthost1) using ssh.
-
-## Task 2: Create the TimesTen database and prepare it for caching
+## Task 1: Create the TimesTen database and prepare it for caching
A TimesTen database is implicitly created the first time the instance administrator user connects to it via its server DSN. In order to use the database as a cache, you must set the Oracle cache admin username and password and also start the TimesTen Cache Agent.
@@ -34,7 +29,7 @@ The Cache Agent is a TimesTen daemon process that manages many of the cache-rela
One of the most frequently used TimesTen utilities is the **ttIsql** utility. This is an interactive SQL utility that serves the same purpose for TimesTen as SQL*Plus does for Oracle Database.
-Connect to the **sampledb** DSN using **ttIsql**:
+1. Connect to the **sampledb** DSN using **ttIsql**:
```
@@ -51,7 +46,7 @@ connect "DSN=sampledb";
Connection successful: DSN=sampledb;UID=oracle;DataStore=/tt/db/sampledb;DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;LogFileSize=256;LogBufMB=256;PermSize=1024;TempSize=256;OracleNetServiceName=ORCLPDB1;
(Default setting AutoCommit=1)
```
-Set the Oracle cache administrator username and password (these are stored, encrypted, in the TimesTen database):
+2. Set the Oracle cache administrator username and password (these are stored, encrypted, in the TimesTen database):
```
@@ -59,7 +54,7 @@ call ttCacheUidPwdSet('ttcacheadm','ttcacheadm');
```
-Start the TimesTen Cache Agent for the cache database:
+3. Start the TimesTen Cache Agent for the cache database:
```
@@ -67,7 +62,7 @@ call ttCacheStart;
```
-Create application users for the **OE** and **APPUSER** schemas and grant them some necessary privileges:
+4. Create application users for the **OE** and **APPUSER** schemas and grant them some necessary privileges:
```
@@ -101,7 +96,7 @@ GRANT CREATE SESSION, CREATE CACHE GROUP, CREATE TABLE TO appuser;
```
-Exit from ttIsql:
+5. Exit from ttIsql:
```
@@ -114,7 +109,7 @@ Disconnecting...
Done.
```
-## Task 3: Create the cache groups
+## Task 2: Create the cache groups
Some useful definitions and concepts:
@@ -126,9 +121,9 @@ Some useful definitions and concepts:
- Normal SQL operations, such as SELECT, INSERT, UPDATE and DELETE, operate directly on the cache tables and the rows therein.
-Create the (multiple) cache groups for the **OE** schema tables. You will use a pre-prepared script to reduce the amount of typing or copying & pasting.
+Create the (multiple) cache groups for the **OE** schema tables. You will use a pre-prepared script to reduce the amount of typing, or copying & pasting.
-Use **ttIsql** to connect to the TimesTen cache as the **OE** user:
+1. Use **ttIsql** to connect to the TimesTen cache as the **OE** user:
```
@@ -145,7 +140,8 @@ Connection successful: DSN=sampledb;UID=oe;DataStore=/tt/db/sampledb;DatabaseCha
(Default setting AutoCommit=1)
Command>
```
-Run the script to create the OE cache groups:
+
+2. Run the script to create the OE cache groups:
```
@@ -180,7 +176,8 @@ CREATE INDEX oe.order_items_fk
ON oe.order_items (product_id);
```
-Display the cachegroups owned by the OE user:
+
+3. Display the cachegroups owned by the OE user:
```
@@ -247,7 +244,7 @@ Cache Group OE.CG_PROMOTIONS:
3 cache groups found.
```
-Display the tables owned by the OE user. These are the tables that make up the cache groups:
+4. Display the tables owned by the OE user. These are the tables that make up the cache groups:
```
@@ -299,7 +296,7 @@ select count(*) from promotions;
1 row found.
```
-Exit from ttIsql:
+5. Exit from ttIsql:
```
@@ -314,7 +311,9 @@ Done.
The user OE has 3 cache groups, some containing single tables and others containing multiple tables. Currently, all the tables are empty.
-Create the cache group for the **APPUSER.VPN\_USERS** table. This time you will type, or copy/paste, the individual commands:
+Create the cache group for the **APPUSER.VPN\_USERS** table. This time you will type, or copy/paste, the individual commands.
+
+6. Connect to the cache as the user **appuser**:
```
@@ -332,6 +331,8 @@ Connection successful: DSN=sampledb;UID=appuser;DataStore=/tt/db/sampledb;Databa
Command>
```
+7. Create the cache group.
+
```
CREATE READONLY CACHE GROUP appuser.cg_vpn_users
@@ -349,7 +350,7 @@ vpn_users
```
-Display the cachegroup and table:
+8. Display the cachegroup and table:
```
@@ -396,7 +397,7 @@ select count(*) from vpn_users;
1 row found.
```
-Exit from ttIsql:
+9. Exit from ttIsql:
```
@@ -416,7 +417,9 @@ Autorefresh State: Paused
```
In order to pre-populate the cache tables and activate the AUTOREFRESH mechanism, you must now load the cache groups, which you will do in the next lab.
-You can now *proceed to the next lab*. Keep your terminal session open for use in the next lab.
+You can now *proceed to the next lab*.
+
+Keep your terminal session to tthost1 open for use in the next lab.
## Acknowledgements
diff --git a/timesten/cache-introduction/08-load-cache/load-cache.md b/timesten/cache-introduction/08-load-cache/load-cache.md
index a7af259bd..078f26664 100644
--- a/timesten/cache-introduction/08-load-cache/load-cache.md
+++ b/timesten/cache-introduction/08-load-cache/load-cache.md
@@ -14,23 +14,20 @@ This task is accomplished using SQL statements, so can be easily performed from
### Prerequisites
-This lab assumes that you have:
+This lab assumes that you:
-- Completed all the previous labs in this workshop, in sequence.
+- Have completed all the previous labs in this workshop, in sequence.
+- Have an open terminal session in the workshop compute instance, either via NoVNC or SSH, and that session is logged into the TimesTen host (tthost1).
-## Task 1: Connect to the environment
-
-If you do not already have an active terminal session, connect to the OCI compute instance and open a terminal session, as the user **oracle**.
-
-In that terminal session, connect to the TimesTen host (tthost1) using ssh.
-
-## Task 2: Load the APPUSER cache group
+## Task 1: Load the APPUSER cache group
As you saw in the previous lab, when a READONLY cache group is first created its tables are empty and the autorefresh mechanism is in a paused state.
Loading the cache group populates the cache tables with the data from the Oracle database and also activates the autorefresh mechanism. The load occurs in such a manner that if any changes occur in Oracle while the load is in progress, those changes will be captured and then autorefreshed to TimesTen once the load is completed.
-Load the APPUSER.CG\_VPN\_USERS cache group (1 million rows) and then examine the cach group and table:
+Load the APPUSER.CG\_VPN\_USERS cache group (1 million rows) and then examine the cach group and table.
+
+1. Connect to the cache as the user **appuser**:
```
@@ -48,6 +45,8 @@ Connection successful: DSN=sampledb;UID=appuser;DataStore=/tt/db/sampledb;Databa
Command>
```
+2. Load the cache group:
+
```
LOAD CACHE GROUP appuser.cg_vpn_users COMMIT EVERY 1024 ROWS;
@@ -58,6 +57,8 @@ LOAD CACHE GROUP appuser.cg_vpn_users COMMIT EVERY 1024 ROWS;
1000000 cache instances affected.
```
+3. Display the cache group details:
+
```
cachegroups cg_vpn_users;
@@ -81,6 +82,8 @@ Cache Group APPUSER.CG_VPN_USERS:
1 cache group found.
```
+4. Display the cache group tables:
+
```
tables;
@@ -92,6 +95,8 @@ tables;
1 table found.
```
+5. Check the row count:
+
```
select count(*) from vpn_users;
@@ -102,7 +107,8 @@ select count(*) from vpn_users;
< 1000000 >
1 row found.
```
-Update optimizer statistics for all the tables in the APPUSER schema:
+
+6. Update optimizer statistics for all the tables in the APPUSER schema:
```
@@ -110,7 +116,7 @@ statsupdate;
```
-Exit from ttIsql:
+7. Exit from ttIsql:
```
@@ -129,7 +135,7 @@ Note that the status of autorefresh has now changed to **On**.
Autorefresh State: On
```
-## Task 3: Load the OE cache groups
+## Task 2: Load the OE cache groups
Now do the same for the OE schema cache groups:
@@ -290,7 +296,9 @@ Disconnecting...
Done.
```
-You can now *proceed to the next lab*. Keep your terminal session open for use in the next lab.
+You can now *proceed to the next lab*.
+
+Keep your terminal session to tthost1 open for use in the next lab.
## Acknowledgements
diff --git a/timesten/cache-introduction/09-cache-refresh/cache-refresh.md b/timesten/cache-introduction/09-cache-refresh/cache-refresh.md
index 59c1fcb4a..a18da2c50 100644
--- a/timesten/cache-introduction/09-cache-refresh/cache-refresh.md
+++ b/timesten/cache-introduction/09-cache-refresh/cache-refresh.md
@@ -15,21 +15,22 @@ In this lab you will execute some DML statements on the tables in Oracle and obs
### Prerequisites
-This lab assumes that you have:
+This lab assumes that you:
-- Completed all the previous labs in this workshop, in sequence.
+- Have completed all the previous labs in this workshop, in sequence.
+- Have an open terminal session in the workshop compute instance, either via NoVNC or SSH, and that session is logged into the TimesTen host (tthost1).
-## Task 1: Connect to the environment
+## Task 1: Open a second terminal session
**IMPORTANT:** This lab requires _two_ terminal sessions to the TimesTen host (tthost1).
-If you do not already have an active terminal session, connect to the OCI compute instance and open a terminal session, as the user **oracle**. In that terminal session, connect to the TimesTen host (tthost1) using ssh. This session, or your existing session if there was one, will be referred to as the **primary** session.
+Your existing terminal session to tthost1 will be referred to as the **primary** session.
-Connect to the OCI compute instance again (if required) and open a second terminal session. In this second session, connect to the TimesTen host (tthost1) using ssh. This session will be referred to as the **secondary** session.
+1. Open a _second_ terminal session, as the user **oracle**, in the workshop compute instance, either via NoVNC or SSH. In that terminal session, connect to the TimesTen host (tthost1) using ssh. This session will be referred to as the **secondary** session.
## Task 2: Verify the refresh of INSERT operations
-In your _primary_ SSH session, which is currently logged into the TimesTen host, connect to the TimesTen cache as the OE schema user:
+1. In your _primary_ session connect to the TimesTen cache as the OE schema user:
```
@@ -47,7 +48,7 @@ Connection successful: DSN=sampledb;UID=oe;DataStore=/tt/db/sampledb;DatabaseCha
Command>
```
-In your _secondary_ SSH session, which is already logged into the TimesTen host (tthost1), connect to the Oracle database as the OE schema user:
+2. In your _secondary_ session, connect to the Oracle database as the OE schema user:
```
@@ -70,7 +71,7 @@ Version 19.3.0.0.0
SQL>
```
-In your _primary_ SSH session (**ttIsql**), check the rows in the OE.PROMOTIONS table in TimesTen:
+3. In your _primary_ session (**ttIsql**), check the rows in the OE.PROMOTIONS table in TimesTen:
```
@@ -84,7 +85,7 @@ SELECT * FROM promotions ORDER BY promo_id;
2 rows found.
```
-In your _secondary_ SSH session (**sqlplus**), check the rows in the OE.PROMOTIONS table in Oracle, then insert a new row and commit:
+4. In your _secondary_ session (**sqlplus**), check the rows in the OE.PROMOTIONS table in Oracle, then insert a new row and commit:
```
@@ -133,7 +134,7 @@ SELECT * FROM promotions ORDER BY promo_id;
3 christmas sale
```
-Wait for 2 seconds (the cache refresh interval) and then in your _primary_ SSH session (**ttIsql**), check the rows in the OE.PROMOTIONS table in TimesTen:
+5. Wait for 2 seconds (the cache refresh interval) and then in your _primary_ session (**ttIsql**), check the rows in the OE.PROMOTIONS table in TimesTen:
```
@@ -152,7 +153,7 @@ The inserted row has been captured and propagated to the cached table in TimesTe
## Task 3: Verify the refresh of UPDATE operations
-In your _secondary_ SSH session (**sqlplus**), update a row in the OE.PROMOTIONS table in Oracle and commit:
+1. In your _secondary_ session (**sqlplus**), update a row in the OE.PROMOTIONS table in Oracle and commit:
```
@@ -188,7 +189,7 @@ SELECT * FROM promotions ORDER BY promo_id;
3 easter sale
```
-Wait for 2 seconds (the cache refresh interval) and then in your _primary_ SSH session (**ttIsql**), check the rows in the OE.PROMOTIONS table in TimesTen:
+2. Wait for 2 seconds (the cache refresh interval) and then in your _primary_ session (**ttIsql**), check the rows in the OE.PROMOTIONS table in TimesTen:
```
@@ -207,7 +208,7 @@ The update to the row has been captured and propagated to the cached table in Ti
## Task 4: Verify the refresh of DELETE operations
-In your _secondary_ SSH session (**sqlplus**), delete a row in the OE.PROMOTIONS table in Oracle and commit:
+1. In your _secondary_ session (**sqlplus**), delete a row in the OE.PROMOTIONS table in Oracle and commit:
```
@@ -242,7 +243,7 @@ SELECT * FROM promotions ORDER BY promo_id;
2 blowout sale
```
-Wait for 2 seconds (the cache refresh interval) and then in your _primary_ SSH session (**ttIsql**), check the rows in the OE.PROMOTIONS table in TimesTen:
+2. Wait for 2 seconds (the cache refresh interval) and then in your _primary_ session (**ttIsql**), check the rows in the OE.PROMOTIONS table in TimesTen:
```
@@ -258,7 +259,7 @@ SELECT * FROM promotions ORDER BY promo_id;
The row deletion has been captured and propagated to the cached table in TimesTen.
-In your _secondary_ SSH session (**sqlplus**), exit from SQL*Plus, disconnect from the TimesTen host and close the terminal session:
+3. In your _secondary_ session (**sqlplus**), exit from SQL*Plus, disconnect from the TimesTen host and close the terminal session:
```
@@ -283,7 +284,7 @@ exit
```
-In your _primary_ SSH session (**ttIsql**), exit from ttIsql:
+4. In your _primary_ session (**ttIsql**), exit from ttIsql:
```
@@ -296,7 +297,9 @@ Disconnecting...
Done.
```
-You can now *proceed to the next lab*. Keep your primary terminal session open for use in the next lab.
+You can now *proceed to the next lab*.
+
+Keep your primary session open for use in the next lab.
## Acknowledgements
diff --git a/timesten/cache-introduction/10-oltp-performance/oltp-performance.md b/timesten/cache-introduction/10-oltp-performance/oltp-performance.md
index 7fec4b2f6..f5c888d0d 100644
--- a/timesten/cache-introduction/10-oltp-performance/oltp-performance.md
+++ b/timesten/cache-introduction/10-oltp-performance/oltp-performance.md
@@ -135,15 +135,13 @@ SAMPLEDBCS =
### Prerequisites
-This lab assumes that you have:
+This lab assumes that you:
-- Completed all the previous labs in this workshop, in sequence.
+- Have completed all the previous labs in this workshop, in sequence.
+- Have an open terminal session in the workshop compute instance, either via NoVNC or SSH, and that session is logged into the TimesTen host (tthost1).
-## Task 1: Connect to the environment
-If you do not already have an active terminal session, connect to the OCI compute instance and open a terminal session, as the user **oracle**. In that terminal session, connect to the TimesTen host (tthost1) using ssh.
-
-## Task 2: Run the benchmark against the Oracle database
+## Task 1: Run the benchmark against the Oracle database
Run the program against the Oracle database and note the results:
@@ -164,7 +162,7 @@ Transaction rate: 19523.6 transactions/second
Transaction rate: 1171417.4 transactions/minute
```
-## Task 3: Run the benchmark against the TimesTen cache
+## Task 2: Run the benchmark against the TimesTen cache
Run the program against the TimesTen cache and note the results:
@@ -185,13 +183,15 @@ Transaction rate: 206739.7 transactions/second
Transaction rate: 12404382.9 transactions/minute
```
-## Task 4: Compare the results
+## Task 3: Compare the results
+
+In the example run above, TimesTen achieved a throughput that was **~10.6x greater** than Oracle database (your results _will_ vary).
-In this run, TimesTen achieved a throughput that was **~10.6x greater** than Oracle database (your results _will_ vary).
+As this was a single thread with a single connection it is easy to translate the throughput results to average latency values. In this case, the average latency for Oracle database was **~51 microseconds** and for TimesTen it was **~4.8 microseconds**.
-As this was a single connection/thread it is easy to translate the throughput results to average latency values. In this case, the average latency for Oracle database was **~51 microseconds** and for TimesTen it was **~4.8 microseconds**.
+You can now *proceed to the next lab*.
-You can now *proceed to the next lab*. Keep your primary terminal session open for use in the next lab.
+Keep your primary session open for use in the next lab.
## Acknowledgements
diff --git a/timesten/cache-introduction/11-query-performance/query-performance.md b/timesten/cache-introduction/11-query-performance/query-performance.md
index a8ab67c01..672886c58 100644
--- a/timesten/cache-introduction/11-query-performance/query-performance.md
+++ b/timesten/cache-introduction/11-query-performance/query-performance.md
@@ -98,15 +98,12 @@ We will use this script to investigate the performance of three different querie
### Prerequisites
-This lab assumes that you have:
+This lab assumes that you:
-- Completed all the previous labs in this workshop, in sequence.
+- Have completed all the previous labs in this workshop, in sequence.
+- Have an open terminal session in the workshop compute instance, either via NoVNC or SSH, and that session is logged into the TimesTen host (tthost1).
-## Task 1: Connect to the environment
-
-If you do not already have an active terminal session, connect to the OCI compute instance and open a terminal session, as the user **oracle**. In that terminal session, connect to the TimesTen host (tthost1) using ssh.
-
-## Task 2: Examine the test queries
+## Task 1: Examine the test queries
Examine the three queries that we will use for this exercise:
@@ -184,7 +181,7 @@ SELECT
There is also a file, **/tt/livelab/queries/query_all.sql**, that contains all three queries.
-## Task 3: Run the queries against the Oracle database
+## Task 2: Run the queries against the Oracle database
First run the queries against the Oracle database:
@@ -261,7 +258,7 @@ info: ========================================
info: disconnected from 'orclpdb1'
```
-## Task 4: Run the queries against the TimesTen cache
+## Task 3: Run the queries against the TimesTen cache
Now run the queries against the TimesTen cache:
@@ -338,9 +335,9 @@ info: ========================================
info: disconnected from 'sampledb'
```
-## Task 4: Compare the results
+## Task 3: Compare the results
-Here is a comparison of the results that were obtained from a previous run (your results _will_ differ):
+Here is a comparison of the results that were obtained from the example run above (your results _will_ differ):
| Query | Average Oracle Query Time (us) | Average TimesTen Query Time (us) | TimesTen Speedup |
@@ -350,7 +347,9 @@ Here is a comparison of the results that were obtained from a previous run (your
| 3 | 25688.2 | 1819.8 | 14.1x|
-You can now *proceed to the next lab*. Keep your primary terminal session open for use in the next lab.
+You can now *proceed to the next lab*.
+
+Keep your primary session open for use in the next lab.
## Acknowledgements
diff --git a/timesten/cache-introduction/12-dynamic-caching/dynamic-caching.md b/timesten/cache-introduction/12-dynamic-caching/dynamic-caching.md
index f6422cce6..6a259c685 100644
--- a/timesten/cache-introduction/12-dynamic-caching/dynamic-caching.md
+++ b/timesten/cache-introduction/12-dynamic-caching/dynamic-caching.md
@@ -24,17 +24,14 @@ As a result, a cache miss is significantly more expensive than a cache hit since
### Prerequisites
-This lab assumes that you have:
+This lab assumes that you:
-- Completed all the previous labs in this workshop, in sequence.
+- Have completed all the previous labs in this workshop, in sequence.
+- Have an open terminal session in the workshop compute instance, either via NoVNC or SSH, and that session is logged into the TimesTen host (tthost1).
-## Task 1: Connect to the environment
+## Task 1: Create a DYNAMIC READONLY cache group
-If you do not already have an active terminal session, connect to the OCI compute instance and open a terminal session, as the user **oracle**. In that terminal session, connect to the TimesTen host (tthost1) using ssh.
-
-## Task 2: Create a DYNAMIC READONLY cache group
-
-Use ttIsql to connect to the cache as the APPUSER user:
+1. Use ttIsql to connect to the cache as the APPUSER user:
```
@@ -51,7 +48,7 @@ Connection successful: DSN=sampledb;UID=appuser;DataStore=/tt/db/sampledb;Databa
(Default setting AutoCommit=1)
Command>
```
-Create a dynamic readonly cache group encompassing the **PARENT** and **CHILD** tables, which are related through a foreign key:
+2. Create a _dynamic_ readonly cache group encompassing the **PARENT** and **CHILD** tables, which are related through a foreign key:
```
@@ -76,7 +73,7 @@ AGING LRU ON;
```
-Display information about the cache group:
+3. Display information about the cache group:
```
@@ -111,7 +108,7 @@ Autorefresh State: On
This is because you do not need to perform an initial load for a dynamic cache group (though it is possible to do so).
-Check the state of the tables:
+4. Check the state of the tables:
```
@@ -137,9 +134,9 @@ select count(*) from appuser.child;
There is no data in the cached tables.
-## Task 3: Run some queries and observe the behaviour
+## Task 2: Run some queries and observe the behaviour
-First, run a query that references the root table's (PARENT table) primary key:
+1. First, run a query that references the root table's (PARENT table) primary key:
```
@@ -152,7 +149,9 @@ select * from parent where parent_id = 4;
1 row found.
```
-Even though the table was empty, the query returns a result! Now examine the contents of both tables again:
+Even though the table was empty, the query returns a result!
+
+2. Now examine the contents of both tables again:
```
@@ -182,7 +181,9 @@ Observe that the row that was queried now exists in the PARENT table and the thr
Now that these rows now exist in the cache they will satisfy future read requests. If any of these rows are modified in Oracle, the TimesTen autorefresh mechanism will capture the changes and propagate them to the cache.
-Let’s try something a little more sophisticated. Query a row in the CHILD table with a join back to the PARENT table:
+Let’s try something a little more sophisticated.
+
+3. Query a row in the CHILD table with a join back to the PARENT table:
```
@@ -195,7 +196,7 @@ select p.parent_id, p.parent_c1, c.child_c1 from parent p, child c where c.child
1 row found.
```
-Now check again to see the contents of both tables.
+4. Now check again to see the contents of both tables.
```
@@ -224,9 +225,9 @@ select * from child;
5 rows found.
```
-Here you queried against a specific child_id value and joined back to the parent table. TimesTen figured things out and dynamically loaded all the expected cache instances. Dynamic caching can be very useful for appropriate use cases.
+Here you queried against a specific *child_id* value and joined back to the parent table. TimesTen figured things out and dynamically loaded all the expected cache instances. Dynamic caching can be very useful for specific use cases.
-Disconnect from the cache.
+5. Disconnect from the cache.
```
@@ -240,7 +241,9 @@ Disconnecting...
Done.
```
-You can now *proceed to the next lab*. Keep your primary terminal session open for use in the next lab.
+You can now *proceed to the next lab*.
+
+Keep your primary session open for use in the next lab.
## Acknowledgements
diff --git a/timesten/cache-introduction/13-shutdown/shutdown.md b/timesten/cache-introduction/13-shutdown/shutdown.md
index 793710ebc..642360b99 100644
--- a/timesten/cache-introduction/13-shutdown/shutdown.md
+++ b/timesten/cache-introduction/13-shutdown/shutdown.md
@@ -13,17 +13,14 @@ In this final lab, you will cleanly shut down the TimesTen cache and the TimesTe
### Prerequisites
-This lab assumes that you have:
+This lab assumes that you:
-- Completed all the previous labs in this workshop, in sequence.
+- Have completed all the previous labs in this workshop, in sequence.
+- Have an open terminal session in the workshop compute instance, either via NoVNC or SSH, and that session is logged into the TimesTen host (tthost1).
-## Task 1: Connect to the environment
+## Task 1: Stop the cache agent
-If you do not already have an active terminal session, connect to the OCI compute instance and open a terminal session, as the user **oracle**. In that terminal session, connect to the TimesTen host (tthost1) using ssh.
-
-## Task 2: Stop the cache agent
-
-Check the current status of the TimesTen database:
+1. Check the current status of the TimesTen database:
```
@@ -77,7 +74,7 @@ End of report
The database is active and is loaded in memory because the cache agent is connected to it.
-Stop the cache agent:
+2. Stop the cache agent:
```
@@ -94,7 +91,7 @@ Cache Agent Manually Started : False
Database State : Open
```
-Check the status again:
+3. Check the status again:
```
@@ -124,7 +121,7 @@ End of report
The database has been unloaded from memory and is now shut down.
-## Task 3: Stop the TimesTen instance
+## Task 2: Stop the TimesTen instance
Stop the TimesTen instance (i.e. stop the main daemon):
@@ -138,7 +135,7 @@ ttDaemonAdmin -stop
TimesTen Daemon (PID: 190, port: 6624) stopped.
```
-## Task 4: Finally
+## Task 3: Finally
Log out of the TimesTen host:
@@ -153,7 +150,7 @@ logout
Connection to tthost1 closed.
```
-Congratulations, *you have completed the workshop*.
+You can now *proceed to the next lab*.
## Acknowledgements
diff --git a/timesten/cache-introduction/14-wrapup/wrapup.md b/timesten/cache-introduction/14-wrapup/wrapup.md
new file mode 100644
index 000000000..4a520dad1
--- /dev/null
+++ b/timesten/cache-introduction/14-wrapup/wrapup.md
@@ -0,0 +1,30 @@
+# Wrap Up
+
+## Summary
+
+Congratulations, *you have completed the workshop*.
+
+In this workshop you have learnt how to setup TimesTen Classic as a relational, in-memory, read-only cache for tables in an Oracle database. You have also seen the amazing performance benefits that can be achieved by using TimesTen.
+
+## Starting over
+
+If you want to redo this lab from the beginning using the same cloud instance then you can easily do so. Just go back to the lab titled **Initialize the workshop environment** and start from the step *Starting over from the beginning*.
+
+## Resource cleanup
+
+If you are running the workshop in the LiveLabs sandbox, the resources will be cleaned up automatically when the workshop time limit expires. No further action is required on your part.
+
+If you are running the workshop in your own tenancy, go to the stack that you used to deploy the environment and run the **Destroy** operation to cleanup all the resources. You can then delete the stack itself.
+
+## Learn More
+
+* [TimesTen Product Home](https://www.oracle.com/database/technologies/related/timesten.html)
+* [TimesTen Samples on GitHub](https://github.com/oracle-samples/oracle-timesten-samples)
+* [TimesTen Documentation](https://docs.oracle.com/en/database/other-databases/timesten/)
+
+## Acknowledgements
+
+* **Author** - Chris Jenkins, Senior Director, TimesTen Product Management
+* **Contributors** - Doug Hood & Jenny Bloom, TimesTen Product Management
+* **Last Updated By/Date** - Chris Jenkins, July 2022
+
diff --git a/timesten/cache-introduction/workshops/desktop/manifest.json b/timesten/cache-introduction/workshops/desktop/manifest.json
index 62f83c3fa..d88f1eb2c 100644
--- a/timesten/cache-introduction/workshops/desktop/manifest.json
+++ b/timesten/cache-introduction/workshops/desktop/manifest.json
@@ -9,14 +9,14 @@
"filename": "../../01-introduction/introduction.md"
},
{
- "title": "Lab 1: Connect to the workshop compute instance",
- "description": "How to connect to the Cloud Instance",
- "filename": "../../03-connect-to-instance/connect-to-instance.md"
+ "title": "Lab 1: Using noVNC Remote Desktop",
+ "description": "Using noVNC Remote Desktop",
+ "filename": "../../00-novnc/novnc-livelabs.md"
},
{
- "title": "Lab 2: Using noVNC Remote Desktop",
- "description": "Using noVNC Remote Desktop",
- "filename": "https://oracle-livelabs.github.io/common/labs/remote-desktop/using-novnc-remote-desktop.md"
+ "title": "Lab 2: Connect to the workshop compute instance using SSH",
+ "description": "How to connect to the Cloud Instance using SSH",
+ "filename": "../../03-connect-to-instance/connect-to-instance-desktop.md"
},
{
"title": "Lab 3: Initialize the workshop environment",
@@ -67,6 +67,11 @@
"description": "Perform an orderly shutdown of TimesTen",
"filename": "../../13-shutdown/shutdown.md"
},
+ {
+ "title": "Wrap-up",
+ "description": "Summary and resource cleanup",
+ "filename": "../../14-wrapup/wrapup.md"
+ },
{
"title": "Need Help?",
"description": "Solutions to Common Problems and Directions for Receiving Live Help",
diff --git a/timesten/cache-introduction/workshops/freetier/manifest.json b/timesten/cache-introduction/workshops/freetier/manifest.json
index c56b1d4e2..a298146de 100644
--- a/timesten/cache-introduction/workshops/freetier/manifest.json
+++ b/timesten/cache-introduction/workshops/freetier/manifest.json
@@ -21,17 +21,17 @@
{
"title": "Lab 2: Environment setup",
"description": "How to provision the workshop environment and connect to it",
- "filename": "https://oracle-livelabs.github.io/common/labs/setup-compute-generic/setup-compute-novnc.md"
+ "filename": "../../00-setup-compute/setup-compute.md"
},
{
"title": "Lab 3: Using noVNC Remote Desktop",
"description": "Using noVNC Remote Desktop",
- "filename": "https://oracle-livelabs.github.io/common/labs/remote-desktop/using-novnc-remote-desktop.md"
+ "filename": "../../00-novnc/novnc-owntenancy.md"
},
{
- "title": "Lab 4: Connect to the workshop compute instance",
+ "title": "Lab 4: Connect to the workshop compute instance using SSH (optional)",
"description": "How to connect to the Cloud Instance",
- "filename": "../../03-connect-to-instance/connect-to-instance.md"
+ "filename": "../../03-connect-to-instance/connect-to-instance-freetier.md"
},
{
"title": "Lab 5: Initialize the workshop environment",
@@ -82,6 +82,11 @@
"description": "Perform an orderly shutdown of TimesTen",
"filename": "../../13-shutdown/shutdown.md"
},
+ {
+ "title": "Wrap-up",
+ "description": "Summary and resource cleanup",
+ "filename": "../../14-wrapup/wrapup.md"
+ },
{
"title": "Need Help?",
"description": "Solutions to Common Problems and Directions for Receiving Live Help",
diff --git a/timesten/cache-introduction/workshops/livelabs/manifest.json b/timesten/cache-introduction/workshops/livelabs/manifest.json
index 6fd3b4536..2875bb5d2 100644
--- a/timesten/cache-introduction/workshops/livelabs/manifest.json
+++ b/timesten/cache-introduction/workshops/livelabs/manifest.json
@@ -14,14 +14,14 @@
"filename": "https://oracle-livelabs.github.io/common/labs/verify-compute/verify-compute-novnc.md"
},
{
- "title": "Lab 2: Using noVNC Remote Desktop",
- "description": "Using noVNC Remote Desktop",
- "filename": "https://oracle-livelabs.github.io/common/labs/remote-desktop/using-novnc-remote-desktop.md"
+ "title": "Lab 2: Connect to the workshop compute instance",
+ "description": "How to connect to the Cloud Instance",
+ "filename": "../../03-connect-to-instance/connect-to-instance-livelabs.md"
},
{
- "title": "Lab 3: Connect to the workshop compute instance",
- "description": "How to connect to the Cloud Instance",
- "filename": "../../03-connect-to-instance/connect-to-instance.md"
+ "title": "Lab 3: Using noVNC Remote Desktop",
+ "description": "Using noVNC Remote Desktop",
+ "filename": "../../00-novnc/novnc-livelabs.md"
},
{
"title": "Lab 4: Initialize the workshop environment",
@@ -72,6 +72,11 @@
"description": "Perform an orderly shutdown of TimesTen",
"filename": "../../13-shutdown/shutdown.md"
},
+ {
+ "title": "Wrap-up",
+ "description": "Summary and resource cleanup",
+ "filename": "../../14-wrapup/wrapup.md"
+ },
{
"title": "Need Help?",
"description": "Solutions to Common Problems and Directions for Receiving Live Help",