TeamMate Operational Utility
TeamMate Operational Utility
ii
Overview
This document applies to TeamMate+ Audit, TeamMate+ Controls, TeamMate+ Public Sector
and are herein referred to as TeamMate+.
This document covers the TeamMate Operational Utility, which provides tools to facilitate the
management of TeamMate+ Multitenancy, Federated Security, and the Global Database
Converter for on-premises (On-Prem) installations only. The functional areas that are currently
supported are:
l Realm database discovery
l Routing database population
l Routing database administration
l Diagnostic and troubleshooting tools to verify correct configuration
l Background service status
Routing
A realm is a synonym for a tenant, which is comprised of the online transaction processing
(OLTP) DB and reporting DB for that realm. Each realm has a unique name.
The realm name may contain letters, numbers, and hyphens. Spaces or dots are not
supported. The name needs to be valid as an Internet host subdomain name. Realm names
are not case-sensitive.
TeamMate supports multitenancy through its routing engine, which resolves a realm name to
its corresponding realm databases and ensures that each realm is separate, independent, and
cannot be accessed from other realms. In TeamMate data centers, multitenancy is the norm,
and each realm belongs to a specific organization. On-premises TeamMate deployments are
typically single-tenant but multitenancy may be appropriate in some scenarios.
There may be multiple separate environments, each with their own routing database. Routing
databases for different environments (e.g. DEV, QA, PROD) can be on different servers;
however, if they are on the same server, suffix each database name to clarify the environment
to which they belong.
At present, it is unnecessary to create a routing report database.
3. (Optional) If you need to login as a different user for any reason, choose File | Login As
from the menu, specify the requisite information, and click OK. You will be logged out of
your current session and commence a new session with the new credentials.
4. Claims are key/value pairs that are gathered when you login and are used throughout
your session. You may view the claims for the currently logged in user or other users by
selecting File | Claims from the menu. This can be helpful for diagnosing issues.
5. To close the application, select File | Exit.
3. (Optional) Sort the data in ascending or descending order by clicking on any column
heading.
4. (Optional) Filter the data by typing in the filter text box.
NOTE: The count text box displays the number of items and the number of
matches.
Realms
Select Routing | Realms from the menu to display the Realm Add tool. This tool lists the
realms and contains the following key options:
l Dedicated Routing Database checkbox: Indicates whether the routing database is
exclusively used for routing purposes (dedicated) or if it has business data in it (shared).
Multitenant environments should have a dedicated routing database, whereas single-ten-
ant environments should have a shared routing/realm database. The TeamMate Worker
Service, which performs background processing for each realm (such as sending out
notifications), will skip the system realm (which is the routing database in a multitenant
environment). A warning icon appears next to this checkbox if it is configured differently
than expected.
l Details checkbox: Gathers additional details about each realm and display that inform-
ation in the grid, if checked.
l Realm Add tool: Allows you to create new or link to existing OLTP, Report, or Archive
databases and populate the corresponding routing information. You may specify altern-
ate data and log directories for the database files. The champion password may be over-
ridden from its default. To link to an existing database, choose a Database Server and
the existing Database Names will be listed.
l Realm Update tool: Provides functionality to administer the various aspects of Realms,
including supporting aspects such as Realm Databases, Realm Database Associations,
and Realm Aliases.
Add Realm
When adding a realm, specify the required information including:
Realm Aliases
Select Routing | Realm Aliases from the menu to display the Realm Aliases tool. This tool
lists the realm aliases and their corresponding realms.
Realm aliases are useful to map DNS subdomain names to realm names since the subdomain
names are captured from the host in the URL and may differ from the underlying realm name.
For example, gizmo = gamma.
Database Servers
Select Routing | Database Servers from the menu to display the Database Servers tool
available only in large multitenant configurations. This tool lists the database servers in the
environment. Defining the database servers in the environment is a prerequisite to other tools
in this utility. For example, the Routing Population tool discovers realm databases on the
servers in this list.
Web Servers
Select Routing | Web Servers from the menu to display the Web Servers tool. This tool lists
the web servers in the environment. If there is only one web server, then it is not necessary to
specify it; however, if there are multiple web servers, then each of them needs to be listed for
the configuration engine to work correctly.
2. Click Test to verify that the web server is running and accessible.
Routing Population
Select Routing | Routing Population from the menu to display the Routing Population tool
available only in large multitenant configurations. This tool allows you to discover existing
realm databases on the list of Database Servers and add their information into the routing
database, if not already there.
See "Discover Existing Realm Databases" on page 12 for more information.
3. If the standard naming conventions have been followed, the default values of the LIKE
and Suffix fields are correct. The Optional OLTP database Suffix, if specified, is
excluded from the base OLTP database name that is used to correlate with its cor-
responding report and archive databases.
NOTE: You may specify multiple suffixes for report and archive DBs by
delimiting them with a vertical bar (|).
NOTE: The realm database server may contain other databases that are
not TeamMate+ databases. The tool will perform minimal schema checks to
identify such databases and skip them from processing.
5. Once you are ready to proceed, click Find Realms. This searches all databases that
match the criteria specified on each defined database server. It then associates OLTP,
report, and archive databases together for each realm, analyzes if routing information is
missing, and displays these realms in a grid.
6. Indicate the realms for which you would like to populate the routing information by
pressing Ctrl+ click, Shift+ click, or click and drag to make your selections.
7. Click Populate Realms. This populates routing information for the selected realms.
8. Once you are ready to proceed, click Find Realms. This searches all databases that
match the criteria specified on each defined database server. It then associates OLTP,
report, and archive databases together for each realm, analyzes if routing information is
missing, and displays these realms in a grid.
9. Use the splitter to adjust the amount of space for the grid compared to the output win-
dow.
3. Modify the Name to the organization name, then click OK. The description is optional. If
you want to disable this realm, uncheck the Active checkbox. Disabling a realm will
make it inaccessible for users of that realm to login to TM+.
4. Repeat this process until all realms have a valid name representing the organization.
Federated Security
To configure Federated Security for on-premises installations, refer to the Federated Security:
On-Prem: https://tmplus.teammatedocs.com/fedsec-onprem/TMPlus_OnPrem_Federated-
Security.pdf
2. Click Find Duplicates to refresh the list. This displays a grid of databases with their
Realm, DatabaseServer, DatabaseName, Routing GUID, and Realm GUID.
3. Select one or more rows at a time, and then click Fix GUIDs.
4. Each selected mismatch will be resolved by taking the GUID in the TM_Setting table in
the realm database and updating the NG_RealmDatabase table in the routing data-
base.
5. The grid will automatically refresh to show any remaining wrong database GUIDs.
1. Select Troubleshooting | Duplicate Database GUID from the menu. The tool displays
and automatically checks for duplicates.
2. Click Find Duplicates to refresh the list. This displays a grid of databases with their
DatabaseGUID, DatabaseServer, DatabaseName, RealmName, and DatabaseType.
3. Before you can change a database GUID, the GUID must be added to a realm. If the
RealmName column of the database you want to change is blank, then select Routing |
Realm and either:
Create a new realm with this database in it.
-OR-
Add the database to an existing realm.
See "Realms" on page 6 for more information.
4. Once the database has a RealmName, select it and click Fix Duplicate.
Unlicensed Realms
Each realm needs to be licensed for features to be available to users. Any unlicensed realms
display with this tool, which is accessed from Troubleshooting | Unlicensed Realms. You can
refresh the list by clicking Find Unlicensed.
Realms that have never been licensed and realms that do not have valid licenses can be
resolved with this tool.
To verify routing
1. Choose Troubleshooting | Routing Verification from the menu. The Routing Veri-
fication window displays the realm databases matching the filter criteria.
2. Click Refresh, as necessary. The output shows the filter criteria and the matching
realm databases along with all their details.
3. You can change the filter values for database Type, Version, and Active status.
To verify configuration
1. Select Troubleshooting | Configuration Verification from the menu.
2. Click Display All and review the information. The active configuration values are
cached in each web site and are interrogated constantly.
3. If you need to change a configuration value in web.config, click Reset All. Each web-
site flushes its cached values. They can then be reloaded on demand to obtain and use
the latest values.
4. (Optional) You may Copy and paste the result into Excel for further analysis.
NOTE: Administrative privileges are required for this tool to run properly.
For example, if you get an error that a path does not exist, which you know
to exist, check that you have logged into Windows with an account with
administrative privileges and then check the tool again.
2. Specify the UNC path to the root folder of the TeamMate website. Even if you are run-
ning this tool locally, specify the UNC path (i.e. instead of C:\, use \\machine\c$).
3. Click Analyze. This may take up to a minute or so to run.
l Green: Indicates no problems were found.
l Red: Review the output to understand the details of the errors that were detected.
4. Resolve the problems and re-run the tool until all results are successful with no errors
detected.
Active Realms
The Active Realms tool allows you to specify filter criteria and display realms that match the
criteria.
TeamMate+ performs background processing that relies on information in the routing
database. For example, the notifications service requests the list of active realms from the
routing database and then loops through each realm database to send out scheduled and
reminder emails. The routing engine verifies that it can connect to each realm database and
that the GUID in the routing database and the realm database matches. The realms in the
routing database should be the same version. The version defaults to the current code version
and is passed onto the request. The list of active realms that return only match that version.
2. Click Refresh, if needed. The output displays the filter criteria and the matching realm
databases along with their Version, database Type, and database Name.
3. You can change filter values for database Type and Version. By default, most back-
ground services perform processing on the active current version OLTP Realms.
Service Status
Select Troubleshooting | Service Status to view the status of the TeamMate background
services. The Service Status tool displays services running on machines, whether they are
currently running or not, and when the last heartbeat occurred.
This tool contains the following items broken down by area on the screen:
Example: Move Database tool: ETL Job Creation area for SQL Authentication.
n OLTP Username: Specify the OLTP DB login. It is the SQL user with permissions
over the OLTP database. It can be a sysadmin or a non-sysadmin user.
n OLTP Password: Specify the OLTP DB password.
n Report Username: Specify the Reporting DB login. Leave blank if same as OLTP
Username. It is the SQL user with permissions over the Reporting database. It can
be a sysadmin or a non-sysadmin user. This can be leave as blank if the user is
the same as the OLTP database.
n Report Password: The password for the Report database user. Leave blank if
same as OLTP Password.
n Job Owner: Specify the login for the job owner. This should typically be “sa” or
another sysadmin. It is the user with sysadmin role for the Reporting database,
and who will be the owner of the ETL job.
n SSIS Location: Specify the folder where the TeamMate SSIS files are located.
The Reporting DB SQL Server instance needs to be granted read permissions to
Example: Move Database tool: ETL Job Creation area for Windows Authentication.
NOTE: When the server is selected, the grid is refreshed leaving all the
databases to be moved available to be selected with a checkbox and all the
databases that cannot be moved to that server are greyed out and disabled.
Caveats
Estimating how long the Move Database operation will take to run is difficult and will vary
widely because it is dependent on DB size, hardware performance (RAM, CPU, I/O, storage
subsystem, etc.), and network bandwidth. Internal testing of various sizes of OLTP and Report
DBs with mainstream hardware suggest that you may estimate between 30-60 seconds per
GB for the size of the DB being moved. For example, moving a 10 GB DB may take between 5-
10 minutes, but again, the actual time will vary based on your environment.
The converter contains the following items broken down by area on the screen:
l Routing Database information: This displays the routing database selected during
login.
l Select DB Pairs (OLTP & Report): Select to check the matching pair for the selected
database pairs.
l Load Routing DB: Click to query the Realm database for all Realms and their asso-
ciated databases.
l Conversion Operations: This is only enabled/available when at least one database is
checked.
o CPU Utilization: Adjust the amount of CPU saturation across all CPUs on a given sys-
tem. The application automatically determines the number of CPUs and sets the
value to the maximum available.
n Concurrent: Select to convert the databases at the same time, up to the given
available CPUs.
n Sequential: Select to convert the databases one after the other.
n Clear: Click to reset any changes made to CPU Utilization. (This button applies to
both Conversion Options and Filters.)
n Convert: Click to start the conversion process.
n Cancel: Click to cancel all remaining selected (checked) databases not yet con-
verted.
l Filters:
o Checked: Select to list databases that are checked to be converted. This is disabled
until at least one row has been checked.
o Converted: Select to list databases that have been converted successfully.
o Not Converted: Select to list databases that have not been converted, which includes
any that have previously failed.
o Failed: Select to list databases that have failed during a previous conversion.
o Type Realm: Enter any portion of a given realm name, then press Enter to limit the
list of databases matching the Realm name filter condition entered here.
o Expand Log List: Select to increase the size of the log window for easier viewing.
o Copy: Click to copy the displayed log text to the clipboard.
o Clear: Click to clear the log window.
o Date Calendar: Use in coordination with the CSV export to determine the beginning
date of the exported log data. Future Dates cannot be selected.
o Auto-Open: Use in coordination with the CSV export, which will automatically open
the saved CSV file. If Excel is installed on the system, then this launches Excel.
o CSV: Click to save the exported log data.
NOTE: When CSV controls are disabled, no SQL Log table is available.
Logs go to Windows Application Event.
NOTE: When loading a Routing Database that has not been converted, only
the Load Routing DB button and the Routing option in the table are available
for selection.
After a successful conversion, the screen refreshes and becomes locked/disabled. All
other databases are now unlocked/enabled to allow queuing of converting multiple
databases.
3. Select any checkbox for a database row. The selected database is placed in a queue to
be converted.
4. Click Convert. The batch conversion begins.
To filter databases
1. Select the desired filter option to limit the list of databases.
2. When finished, press Clear to return to the original non-filtered list, including addi-
tionally checked rows.
Examples
NOTE: Failed is included, since it has not been converted. The Failed result
includes the day it failed and shows when re-loading the data from the
server using the Load Routing DB button.
Logging
Logging consists of writing to the Windows Application Event Log by default. Logs are
persisted in a SQL table for conversions history.
l Added Add Realm section. See "Add Realm" on page 6 for more
information.
l Added ETL Job Settings section. See "ETL Job Settings" on
page 11 for more information.
April 2022 Document updates: