OPENNTF WEBINARS
October, 2022
DQL, Compare DBs Report tool and Document Properties
PluginAGENDA• Welcome• Presentation:• Document Properties Plugin – Julian Robichaux• Compare DBs Reports Tool – Andre Guirard• Create Views from Other DBs – John Curtis• Q and A - All

THANKS TO THE OPENNTF SPONSORS• HCL made a contribution to help our organization• Funds these webinars!
• Contests like Hackathons• Running the organization• Prominic donates all IT related services• Cloud Hosting for OpenNTF• Infrastructure management for HCL Domino and AtlassianServers• System Administration for day-to-day operation

THIS IS OUR COMMUNITY• Join us and get involved!
• We are all volunteers• No effort is too small• If your idea is bigger than you can do on your own, we
can connect you to a team to work on it• Test or help or modify an existing project• Write guides or documentation• Add reviews on projects / stars on Snippets

NEXT WEBINAR• November OpenNTF Webinar - Integrate Keycloak with
Domino for identity management with Heiko Voigt• Register at :• https://www.openntf.org/webinars

DECEMBER HAPPY HOUR
• Join us in December for a virtual Happy Hour!

ASKING QUESTIONS• First Question – Will this be recorded?

• Yes, view on YouTube!!!
• https://www.youtube.com/user/OpenNTF• Use the Questions Pane in GoToWebinar• We will get to your questions at the end of
the webinar• The speakers will respond to your questions
verbally• (not in the Questions pane)• Please keep all questions related to the
topics that our speakers are discussing!!!
• Unrelated Question => post at:• https://openntf.org/discord

PRESENTATIONSDocument Properties Plugin – Julian RobichauxCompare DBs Reports Tool – Andre Guirard
Create Views from Other DBs – John Curtis

presentation by Julian

Make Your Data Work For You

What is the Document Properties Plugin?
• Alternative to the “classic”
document properties box• Many quality of life improvements••••

Resizable
Sortable
Searchable
and so much more!

• Created because we wanted it
internally, and…

2

Other People Wanted It TooOther People Wanted It Too

The Basics
Document Properties Plugin

5The Basics: How Do You Open It?

6

The Basics: How Do You Open It?

7

The Basics: How Do You Open It?

8

The Basics: How Do You Open It?

9The Basics: How Do You Open It?

10What Does It Look Like?
Document Properties Plugin

11Default Tab: All The Fields

if the document
is open in a tab,you also get
computed text

12

Info Tab

select, copy, and paste anyof this to the clipboard

13

Attachments Tab

14

Resizable Window, Panel, and Columns

15

Playing With Fields
Document Properties Plugin

16

Sort Columns By Clicking The Header

17Search Field Names + Values (even dates)18

Easily Copy Field Values

19Export Some/All Fields As CSV

selected row
names, values,
and info new in
Notes 12.0.2!

20Comparing Documents
Document Properties Plugin

21Select Two Documents In A View And…

22

Select Two Documents In A View And…

green == field doesn’t

exist in other document

yellow == field isdifferent

white == field isthe same

23

Or Select One Doc For ‘Compare Later’…

24

…Then Choose Another Doc And ‘Compare With’

the two docs can be indifferent views or databases
25Bonus Features
Document Properties Plugin

26

Profile Documents

27

Multiple Dialogs At Once28

Follow Document Selections

fields and info change
when you select a
different document29

Administration Options
Document Properties Plugin30

Hide Menus From Users
notes.ini value

AdvProp_MenuVisible

AdvProp_MenuVisibleInMailView

AdvProp_CompareLaterMenuVisible

AdvProp_ProfileMenuVisible

31

default
value
1

1

1

1

possiblevalues0, 1

0, 1

description
If this value is 1 (default) the Advanced Properties
menu will be visible. Set this to 0 to hide the entire
menu and all submenus.
If this value is 1 (default) the Advanced Properties
menu will be visible in the right-click menu in folders
and views in the mail database. Set this to 0 to hide
the entire menu and all submenus in this situation.
This does not affect the top-level menus, and it only
affects right-click behavior in mail views.

0, 1

If this value is 1 (default) the Compare Later andCompare With 'Compare Later' menus will be visible.
Set this to 0 to hide these menus.

0, 1

If this value is 1 (default) the Profile Documents
menu will be visible. Set this to 0 to hide the Profile
Documents menu.

Profile Document Options
notes.ini value

AdvProp_ProfileAllowDelete

AdvProp_ProfileShowAll

32

defaultvalue
00

possiblevalues0, 1

0, 1

description
If this value is 0 (default) the Delete button on theProfile Document list dialog will be hidden. Set this to
1 to display the Delete button on the dialog, whichallows you to delete a selected profile document in
the list.
If this value is 0 (default) only public profile
documents and profile documents with the current
user's name as a key will be available for deleting or
viewing. Set this to 1 to list all profile documents,
including documents that are assigned to otherusers.

Disable Hotkey
notes.ini value

AdvProp_HotkeyEnabled

defaultvalue
1

possiblevalues0, 1

description
Version 12.0.8 (or Notes 12.0.1 FP1) and higher: If
this value is 1 (default) the CTRL-ALT-L key
combination (CMD-ALT-L on MacOS) can be used tolaunch a Document Properties dialog when adocument is the current selection. Setting this to 0
will disable the hotkey.

All these notes.ini entries, and other admin topics are at:https://www.panagenda.com/kbase/display/mc/Administration+Options+and+Troubleshooting

33

How Do I Get Me Some Of This?
Document Properties Plugin

34Supported Clients• Included with Notes 12.0.1 and later (nothing to install!)• For older clients, download from:https://info.panagenda.com/en/document-properties• Windows and Mac• including Win64 client• Tested all the way back to Notes 9.0.1 on Windows

35

Installing On Older Clients• Download the zip file fromhttps://info.panagenda.com/en/document-properties• Do one of the following:• Drag-and-drop the zip file to your “My Widgets” panel in the sidebar• Extract the zip file and import into a Domino Update Site database• More detailed instructions here:
https://www.panagenda.com/kbase/display/mc/
Installing+the+Document+Properties+Plugin

36Document Properties PRO
Document Properties Plugin

37

Document Properties PRO• When you download the zip file from the panagenda website, it also
includes Document Properties PRO as an option install• Installs on Notes 12.0.1+ right next to the built-in Document Properties
plugin• Installs on older clients all by itself• no previous Document Properties install required• What does that give me…?

38

Edit Fields!

or copy fields
from one doc
and paste
to another39Some Caveats• This doesn’t bypass Notes ACL• If you couldn’t edit a document before, you still can’t• $Revisions and $UpdatedBy get updated when you add/change/delete• No extra privileges in Full Admin Access Mode
• Sorry, just a limitation of the Notes API• Only certain field types• WITH GREAT POWER COMES
GREAT RESPONSIBILITY!

40

Prevent Users From Using PRO• Wait, I don’t want my users to have this!
• notes.ini setting: AdvProp_NoPro=1• even if the plugin is installed, the Edit menu won’t appear• Also use policies to prevent users from installing plugins as widgets• probably a good idea anyway

41Questions?
julian.robichaux@panagenda.com
https://info.panagenda.com/en/document-properties
42

Slide 1

CompareDBs Reports
Andre Guirard
HCL (Retired)Slide 2

AGENDA
What is CompareDBs Reports?
Modes of operation
DEMO
Integration with SCCS & task trackers
Useful option settings
Q &A

Slide 3

Presentation title

3• Used internally by HCL.
• Outputs DXL (Domino-XML) modified for readability• Not re-importable

CompareDBs is…
A tool combining design synopsis anddesign comparison, for use in code
reviews.

• Comparison report highlights differences• Strips useless information• Stores reports for searching• Intended for:• Code reviews• Record of changes• Porting template customizations• Translation checking

Slide 4

In this example difference report between two versions of an application, the view Sightings by
Date has the action bar background color slightly different, and the view Sightings by Species
selection formula was changed to select only Sighting documents instead of all documents.
The parts that are the same are the full screen width, while the different parts are split left andright. If the two sides aren’t very different, the changed words are also highlighted.
Notice the “…” at the end of the first table. The report shows only the parts that are different,with a few lines before and after for context.

Slide 5

5 CompareDBs Cleaned-up DXL
Raw DXL<?xml version='1.0' encoding='utf-8'?><!DOCTYPE helpaboutdocument SYSTEM 'xmlschemas/domino_12_0_2.dtd'><helpaboutdocument xmlns='http://www.lotus.com/dxl' version='12.0'
maintenanceversion='2.0'
replicaid='862588D60049471A' publicaccess='false' designerversion='8.5.3'
default='true' renderpassthrough='true'><noteinfo noteid='1b6' unid='257C38F16B77C24F862588D9005F4C41' sequence='2'><created><datetime dst='true'>20221012T122054,41-05</datetime></created><modified><datetime dst='true'>20221012T122203,46-05</datetime></modified><revised><datetime dst='true'>20221012T122203,45-05</datetime></revised><lastaccessed><datetime dst='true'>20221012T122203,4505</datetime></lastaccessed><addedtofile><datetime dst='true'>20221012T122054,4605</datetime></addedtofile></noteinfo><updatedby><name>CN=Admin/O=PJF</name></updatedby><wassignedby><name>CN=Admin/O=PJF</name></wassignedby><body><richtext><pardef id='1'/><par def='1'><run><font size='20pt' style='bold' color='purple'/>About Cryptid
Catalog</run></par><pardef id='2' spacebefore='1.5'/><par def='2'><run><font size='12pt'/>Tell us about your sightings </run><run><font size='12pt' style='bold'/>here</run><run><fontsize='12pt'/>!</run></par></richtext></body></helpaboutdocument>

CompareDBs Synopsis<helpaboutdocument default='true' version='12.0' publicaccess='false'
renderpassthrough='true' maintenanceversion='2.0'><noteinfo/><body><richtext><par def='FFFFFFFF'><run font='20pt color=purple bold'>About Cryptid Catalog</run></par><par def='2F1C0550'><run font='12pt'>Tell us about your sightings </run><run font='12pt bold'>here</run><run font='12pt'>!</run></par></richtext><pardef id='2F1C0550' spacebefore='1.5'/><pardef id='FFFFFFFF'/></body></helpaboutdocument>

Among the information we consider useless for purposes of code review are various
timestamps, note ID, who updated it last – anything that doesn’t affect functionality.
A code review report, shouldn’t have a lot of differences you don’t care about.
We also prettify the XML.
This is intended for people to read – it isn’t valid DXL (or even valid XML).

Slide 6

6 CompareDBs Cleaned-up DXL
Raw DXL<run><font size='12pt'/>Tell us about
your sightings …

CompareDBs Synopsis<run font='12pt'>Tell us about yoursightings…

Modified for compactness(e.g. no font element).

Besides just deleting unwanted information, the tool also reformats some things to make them
shorter. For instance, the “font” element is removed and any information in it moved to acontaining “run” element.

Slide 7

7 CompareDBs Cleaned-up DXL
Raw DXL<run><font size='12pt' style='bold'/>Full </run><run><font size='12pt' style='bold'/>description:</run>CompareDBs Synopsis<run font='12pt bold'>Full description:</run>Merge identically styled text runs (by default).

In rich text, a piece of text that’s formatted all the same can get divided into multiple “runs”
behind the scenes. By default, CompareDBs merges these into a single element. Shorter, morereadable.
This is an option because sometimes you do care about these breaks – they affect translation
using DGW, and can cause unwanted line breaks in the middle of a word, so sometimes you’dwant to turn this feature off so your difference report shows you merged the text into a singlerun.

Slide 8

8 CompareDBs Cleaned-up DXL
Raw DXL<pardef id='2' spacebefore='1.5'/><par def='2'><run><font size='12pt'/>Tell
us about your sightings …

Sequential pardef ID (2) canchange when editing rich text.

CompareDBs Synopsis<par def='2F1C0550'><run font='12pt'>Tell us about yoursightings</run>…
<pardef id='2F1C0550' spacebefore='1.5’/>…

Hashed ID (2F1C0550) onlychanges if paragraph attributeschange.

When you save rich text, the “pardef” elements that describe such things as line spacing andindentation, are turned into sequentially numbered “pardef” elements. That means if youchange the formatting of one paragraph, all the “pardef” elements get new numbers, and eachparagraph that uses that formatting refers to it by the new number. So you see dozens ofdifferences to the “par” elements where actually nothing has changed.
To get around this, CompareDBs replaces the sequential numbers with a hash code based on
the paragraph options. The “def” value is only different if the formatting has changed.
These are just a few of many changes made to simplify the output and mask irrelevant changes.

Slide 9

Operational Modes• Code review compares versions of an
application• Update review compares your custom
template with new version of original
template• Design synopsis exports design
description to an NSF• Add custom reports, e.g. compare notdesign, but documents that use a specified
form• You can also customize the default modes

Slide 10

















For my example I’m using a simple Notes application, and I have two versions I want to compare.
Design reports DB was created from CompareDBs Reports template on Domino server.
To start running a comparison or a design synopsis, we choose an option in the navigation.
There’s a view where an administrator can configure these options. The outline on the left is built
on the fly based on the documents in this view, so if you add your own, it’ll show up just like theones that come from the template.
Let’s run a design synopsis first.
The forms remember what you last exported.
You can re-export a synopsis to an existing synopsis NSF.
The design synopsis output is an NSF with a document for each design element.
You can export multiple databases to the same synopsis NSF. That’s why the view is categorized
by application title.
The Database note contains a summary of how the design elements were signed – so you canconfirm there aren’t ECL issues without looking at every design element.
For file-type design elements, header information is given – so you can see whether it inherits
from a template or whatever. And the file data is also included.
Embedded, if CompareDBs can figure out how to display it.
Attached, if not
Or in some cases, where the data is a BLOB we know can’t be opened, like a JAR file, as alength and hash value so you can at least tell it’s changed.
Images are displayed twice, on different colored backgrounds to make sure there’s enoughcontrast to see one of them. These are too small – I’m reporting that as a bug.
As much as possible we try to make every setting into a human-readable description.
Back to the Design Reports database.




















Let’s look at code reviews next. The database saves a copy of a difference report for each fix in the
SCCS. We can search the database for which fix included a particular change.
These aren’t automatically created as part of an SCCS submission – that’s a possible future thing.
Currently the developers are required to create them manually.
Really, as a developer you want to look at them before submitting anyway, because it’s an
excellent way to find mistakes or changes you made without meaning to. You can view the report
without saving, until you’re ready to do your submission and save the final version.
This report shows differences associated with a past submission.
There’s a link to view the fix record in your default web browser (e.g. in GIT).
These’s also links to view the bug reports or tasks the fix was intended to address. This
works for bug tracking systems that are Notes client applications, or anything with a webbased UI, such as JIRA.
Configuring SCCS integration is optional; the application is still useful without that.
Direct integration with SCCS wasn’t possible for the first release of this application. We couldn’t
get GIT to use our tool to run a report comparing two arbitrary versions of an NTF in its repository.
However there’s a web-based UI for Design Reports. At HCL, we required developers to get the
URL of the relevant design report and paste it into the GIT fix record associated with thesubmission.
Let’s see how to create the report.
I click Code Review and tell it what to compare. I can compose a report like the one we werelooking at, or export the DXL files to temporary folders and use my preferred file system compare
tool to view their differences. Let’s do that.
Here I’m using Beyond Compare. Individual users can choose which tool to use. There’s a file foreach design element, and the two NSFs were exported into two different folders so we cancompare those folders recursively.
Looking at the database settings, we can see the new version is set to launch in a frameset, among
other things.
In the Profile form, some text was set to indent a quarter inch.
And so on.
I can instead create a report of the differences. I don’t have to save it, but if I do, I can specify thetask ID and fix ID of the submission.
To configure the integration with outside systems, an administrator uses Configuration –Application.
In HCL’s case we had change requests coming from two different sources – a Notes-based bug
reporting system and JIRA, so we had a formula to look at the task ID and decide which one to
open. This example just uses JIRA.
For mapping records to an SCCS, you can define a list of projects and associated URLs, plugging in
the fix identifier as part of the URL.
Again, you don’t have to configure this, and you don’t have to put all your projects in one
database. Use the template to create as many as you need for different teams.

Slide 11

Useful options• Merge text runs or not (as mentioned earlier)• Flag all strings in source code and static text (to highlight possible translation issues)• Export documents• Specify which documents via formula or view.
• Handy because sometimes documents are part of a template design.
• Specify how to construct a unique document ID for matching purposes (in case the UNIDs don’t match).

• Have reports show new design elements inline, vs as attachments, vs just listing the design element names (forcases where the report’s excessively long)• Ignore case differences• Compare UNIDs (for versions of a template, so a changed UNID doesn’t create duplicate design elements
during replication)• The default options are good for nearly all cases – don’t mess unless there’s a problem,• Create new custom compare configurations for specific exceptions in your environment

Slide 12

There’s more to this…
• Read the Help Using document.

Slide 13

Scavenge for useful code
• CompareDBs has LotusScript libraries for many advanced functions:• Find differences between strings• Extract file data from a design element (e.g. the JPG file in an Image design element)• Compose a nice rich text report• Manage temporary folders• In-memory data structures (queues, massive arrays, …)• Call C API functions on all supported client OS• Parse rich text CD records• Fancy XML processing• Parse LotusScript code to identify module names, variable names…
• Examples of MVC implementation for Notes forms• UI operations such as “don’t show this message again” checkboxes• I of course don’t suggest you swipe copyrighted code, but it may be instructive to see how these things aredone.
• Several of these are available in the OpenNTF project “LotusScript Gold Collection”

What’s new in Domino Core
Application Development… where Application Development Features Never Stop!
John Curtis
Software architectHCL Digital Solutions

Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

1Agenda• Domino Query Language• Query Results Processing• Core Domino improvements• Backend (Lotusscript, Java) features

Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

2

DQL in v12.0x• Embedded formula language• Named document sets
• Design document queries• Embedded full text search query syntax

Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

3

DQL Embedded Formula Language▪
▪

v12.01
Syntax▪ @FL or @formula (case insensitive)▪ Embedded syntax enclosed in single quotes@fl(‘@length’) > 2430
@FORMULA(‘@left(fld1;3) = "abl" or @left(fld2;2) = "ab“’)▪

Provides▪ Intra-document terms (between different fields)▪ Full expression support▪ HUGE library of existing functionality
Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

4

DQL Embedded Formula Language▪

Combines with ANY other syntactic element@fl(‘@length’) > 2430 or ‘my view’.column1 = ‘Juliet’ and contains (‘Capulet’)▪

2 modes –@fl(‘@length’) > ?val1@fl(‘@length>2430’)→ allows for ?substitution→ allows for multiple terms in formula language▪ Always uses NSF scanning (not views or full text)▪ 256 byte max per term
▪ Further completes search options in DQL▪ Should I be using DQL? → burning question
Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

5DQL Named result sets▪
▪
▪

v12.01
DQL in clause – uses collected sets of documents in views
and/or folders (these have always been results!!!)Expanded to use custom-created, named DQL results

In all (‘myset’, ‘Important View’, ‘Less important folder’)
In (‘myset’) or @ModifiedInThisFile < @dt('2014-01-01’)

where ‘myset’ could be created from a long-running query, like
@ModifiedInThisFile >= @dt('2014-01-01’) or Lastname = ‘Jones’(‘Albuquerque’, ‘Hoboken’) and shoesize >= 10

and city in(No need for views of FT indexes – filtered nsf scanning)
Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

6

Using Named result sets
▪ Gain in performance – 100x to 1000x faster▪ Usage details▪ Use cases – reporting, daily/hourly documents
searched for constantly▪ Static sets – do NOT refresh automatically (yet)▪ They do NOT replicate (yet)▪ Database limits (500 per database, 50MB in total storedsize) – can be overridden▪ They expire – discarded automatically by updall – but
settable (8760 is one year)
Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

7How to create named result sets
• New (v12.01) Java and Lotusscript(Notes)DominoQuery execute method arguments
DocumentCollection execute(String query, String resultname, boolean replace)throws NotesException
DocumentCollection execute(String query, String resultname, boolean replace, int
expirehours) throws NotesException

resultname - unique name for this document set – for use in DQL “in”
replace – replaces the current document set saved with that nameexpirehours – how many hours until the document set is discarded (default
24)

Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

8Managing named result sets
• Using updall -j
updall <dbpath> -j <opt> manages named named document sets, with options:deleteOne
deleteAlldeleteOld
report<name> deletes one named document set
deletes all named document sets
deletes old, expired named named document sets
generates a report of named named document sets

• deleteOne overrides expiration date
• deleteAll destroys all named document sets in a database –powerful, use carefully• More controls using backend classes:• (Notes)Database .RemoveAllQueryNamedResults
Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

9DQL Design Document Queries▪
▪
▪

v12.03
Query-level setting (either data or design
documents)
Allows for internal $field access – where values
are strings, numbers or timedates@fl('@matches($flags; \"?F*\")') → finds all folders$title = 'new view’→ matches view name or foldername▪ Only nsf scan terms allowed (no views or FT
searching)
Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

10DQL Embedded Full Text Search▪
▪
▪

v12.03Use FTSearch syntax you already have
Full support of the GTR syntax, optimized execution@ftsearch(‘[name] = Jones* and [date_of_birth] is present’)@fts(‘field delivery_date > 1/1/2022 and field area_code = 2?233?’)▪ FORCES full text index to be used
▪ Integrates existing searches with full DQL Booleanfunctionality▪ CONTAINS operator is unchanged
Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

11

DQL Formula Language
and Named Results Demo

Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

12

(Notes)QueryResultsProcessor (QRP)
▪

DQL
▪
▪
▪

▪

As a Domino search service, finds documents from a single
database
Allows traversal using DocumentCollection
Does NOT▪
Fetch viewable/presentable data from the database▪
Sort data by anything other than NoteID▪
Get results from multiple databases▪
Do that all on the fly, with discardable results

So .. The QRP was built▪

Delivered in multiple parts across v12 and point releases

Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

13

How to think about QRP views▪ Consider how you create views in Designer, youneed▪ Selection criteria▪ Columns to compute view data, sort it, etc.

▪ Same with QRP views but they allow separate▪ Selection criteria for each set of documents▪ Computed column rules for each set of documents▪ QRP views are different in that
▪ Their data spans databases and sets of documents▪ Query results, not refreshable or replicable design elements▪ Created to expire, be programmatically rebuilt and populated
Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

14

QRP view copy
▪ V12.03▪ Will allow for QRP views with custom design▪ All graphics and rich text attributes retained▪ Additive and modified input data, you can:
▪ Add columns (always to the right)▪ Override column titles▪ Change column sort, categorization and hidden attributes
Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

15

QueryResultsProcessor Flow
Input (Notes)DocumentCollections

Quick fetch
including DQL executes
v12.0.3(uses formula
Input View
overrides)

doccol1

DQL1
ftdoccolv12.0.0

designCombine

Fetch

Sort

Specified
outputv12.0.x

Dbsearch
doccolView

DQL2

Optional join/lookup(TBD)

Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

Domino sort service

16

QRP reading materials
https://help.hcltechsw.com/dom_designer/12.0.0/basic/H_NOTESQUERYRE
SULTSPROCESSOR_CLASS.html
https://help.hcltechsw.com/dom_designer/12.0.0/basic/H_QUERYRESULTS
PROCESSOR_CLASS_JAVA.html
https://jdcurtis.blog/2021/11/29/the-query-results-processor-part-one/
https://jdcurtis.blog/2021/11/30/the-query-results-processor-part-two/
https://jdcurtis.blog/2021/12/02/the-queryresultsprocessor-part-three/https://frostillic.us/blog/posts/2022/1/13/dql-queryresultsprocessor-and-jnosql

Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

17

QRP Copy View Demo

Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

18

Core Domino Improvements
Classic view refresh logjam

T12 (read)T7 (read)

T11 (read)T3 (read)

T6 (read)

T10 (read)

T2 (read)

T5 (read)

T9 (read)T1(refresh)

T4(refresh)

T8(refresh)

10:49:05

10:49:10

10:49:01

10:49:02

v12.01 and prior. Refresh threads
do NOT lose their place in thequeue. (read threads wait behindmore threads → refresh threads) (!)

10:49:14

10:49:16

10:49:19

10:49:22

10:49:24

10:49:27= Database last modified (update time) when the user/thread placed into the queue= Database last modified (update time) of changes the user/thread with which the thread updated the view

Tx (read)= Thread waiting to read the view

Ty (refresh)= Thread waiting to refresh (update) the view

Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

19Core Domino Improvements
View refresh logjam relief!!
v12.02 - Each thread only applies
the updates it needs to

T12 (read)T7 (read)

T11 (read)T3 (read)

T6 (read)

T10 (read)

T2 (read)

T5 (read)

T9 (read)T1(refresh)

T4(refresh)

T8(refresh)

10:49:05

10:49:10

10:49:01

10:49:02

More threads →10:49:14

10:49:16

10:49:19

10:49:22

10:49:27

10:49:24▪ Many, MANY more refreshes can happen in a given timeframe▪ MAJOR▪ response time improvement▪ throughput increase
Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

20Core Domino Improvements▪ 100K+ view opens versus relentless 20+ doc updates/second

Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

21Core Domino Improvements▪ 12.03 (or later)▪ NSF sharding▪ To improve compact, backup, etc▪ Optimized Reader Lists▪ Greatly improved scanning and traversal of documents andviews when access is sparse

Copyright © 2022 HCL Technologies Limited | www.hcltechsw.com

22

Lotusscript/Java Large Summaries Support▪ To enable, per database
Create_R12_Databases=1 (notes.ini)
Compact <dbname> -ls on -c▪ Turns on large summaries and moves db to ODS 55▪ New limit in document summary data:▪ 16MB total document summary and that’s it!
(cumulative maximum size of all summary fields)

Lotusscript/Java Large Summaries Support▪ What you get▪ Read and write large text fields and long field lists▪ Lists still have a max of 64k ENTRIES but total list data
size is only bounded by maximum summary size

▪ Works with Summary and Non-summary fields▪ All (Notes)Item methods “just work” seamlessly▪ Overall size also supported by▪ Dynamic array type (Lotusscript)▪ Vector (Java)

Lotusscript/Java Large Summaries Support▪ What you get▪ Read and write large text fields and long field lists▪ Lists still have a max of 64k ENTRIES but total list data
size is only bounded by maximum summary size

▪ Works with Summary and Non-summary fields▪ All (Notes)Item methods “just work” seamlessly▪ Overall size also supported by▪ Dynamic array type (Lotusscript)▪ Vector (Java)

(Notes)Database Encrypt/Decrypt methods▪ (Notes)Database encrypt and decrypt:
db.encrypt(strength, deferred)db.decrypt(deferred)▪ If deferred (most common and useful) – next time it’s
opened, compact run enqueued▪ If “while you wait” it will take time
▪ Local databases only

▪ Encryption strength is same asdb.(get)EncryptionStrength()$10 BILLION ENTERPRISE | 159,000 IDEAPRENEURS | 50 COUNTRIESWATCH THE FILMQUESTIONS?
Use the GoToWebinar Questions Pane
Please keep all questions related to the
topics that our speakers are discussing!!!
Unrelated Question => post at:https://openntf.org/discord