Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

Code Block
titleAn example of a cache key
399820,userLayoutRootNode,system1activeTab=1userLayoutRoot=rootnewNodeID=authenticated=true(folder:s10087:
50%,)(folder:s10057:50%,)(folder:s10083:50%,)(folder:s10101:50%,)(folder:s10080:50%,)(folder:s10075:50%,)(
folder:s10099:50%,)(folder:s10097:50%,)(folder:s10070:50%,)(folder:s10095:50%,)(folder:s10064:50%,)(folder:
s10091:50%,)userName=JohnDoeskin=spring(channel:n10077:false,)(channel:n10058:false,)7885417921252830597 
Code Block
xmlxml
titleCache Key, made up of 4 top-level components
xml
<person-id><comma><req-method-node-id><comma><upref-cache-key><ulayout-mgr-cache-key> 

...

How each value is obtained:

1. <person-id>: 399820

  • an integer identifier - obtained from the UserInstance instance:
    getPerson().getID()

2. <req-method-node-id>: userLayoutRootNode

  • obtained as follows:
    (new UPFileSpec(req)).getMethodNodeId()

where the req is the HttpServletRequest. For example:

...

3. <upref-cache-key>: system1activeTab=1userLayoutRoot=rootnewNodeID=authenticated=true(folder:s10087:50%,)(folder:s10057:50%,)(fold
er:s10083:50%,)(folder:s10101:50%,)(folder:s10080:50%,)(folder:s10075:50%,)(folder:s10099:50%,)(folder:s10097:
50%,)(folder:s10070:50%,)(folder:s10095:50%,)(folder:s10064:50%,)(folder:s10091:50%,)userName=John Doeskin=spring(channel:n10077:false,)(channel:n10058:false,)

  • definition in UserPreferences.java, obtained by:
    uPreferencesManager.getUserPreferences().getCacheKey()

defined as follows:
[UPC:system]<profile-id><structure-upref><theme-upref>

...

a. [UPC:system] an optional String value ("system") prepended to System profiles

b. <profile-id>

  • integer defined in UserProfile.getProfileId()

c. <structure-upref>

  • a concatentation of cache keys from StructureStylesheetUserPreferences.getCacheKey()
    and it's super-classes:

<str-stylesh-upref><str-theme-stylesh-upref><str-struct-stylesh-upref>

i. <str-stylesh-upref>: activeTab=1userLayoutRoot=rootnewNodeID=authenticated=true

  • defined in: StylesheetUserPreferences.getCacheKey()

ii. <str-theme-stylesh-upref>: (None found in example: otherwise, would look like (channel:nnnnn:false,)

  • defined in: ThemeStylesheetUserPreferences.getCacheKey()

iii. <str-struct-stylesh-upref>:
(folder:s10087:50%,)(folder:s10057:50%,)(folder:s10083:50%,)(folder:s10101:50%,)(folder:s10080:50%,)(folder:
s10075:50%,)(folder:s10099:50%,)(folder:s10097:50%,)(folder:s10070:50%,)(folder:s10095:50%,)(folder:s10064:
50%,)(folder:s10091:50%,)

  • defined in: StructureStylesheetUserPreferences.getCacheKey()

d. <theme-upref>

  • a concatenation of cache keys from ThemeStylesheetUserPreferences.getCacheKey()

<thm-stylesh-upref><thm-theme-stylesh-upref>

i. <thm-stylesh-upref>: userName=John Doeskin=spring

  • defined in: StylesheetUserPreferences.getCacheKey()

ii. <thm-theme-stylesh-upref>: (channel:n10077:false,)(channel:n10058:false,)

  • defined in: ThemeStylesheetUserPreferences.getCacheKey()

4. <ulayout-mgr-cache-key>: 7885417921252830597

  • defined in SimpleUserLayoutManager.getCacheKey() - it is a random long

Notes

I believe there are thread contention issues with these two variables (systemCache UP-1145 and systemCharacterCache) since both are not synchronized and reads and updates are not made within the synchronized blocks either.

xml
Code Block
xml
titleExample systemCharacterCache markup
xml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en"><head><title>myRutgers</title><meta content="text/html; charset=iso-8859-1" http-equiv="content-type" /><link type="image/x-icon" href="favicon.ico" rel="Shortcut Icon" /><link type="text/css" href="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/skin/myrutgers1.css" rel="stylesheet" /></head><body><div id="portal-page-header"><div id="logo"><img alt="myRutgers Logo" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/institutional/uportal_logo_grid.gif" height="60" width="255" /></div>

<div id="tabs"><ul><li><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=root&amp;uP_sparam=activeTab&amp;activeTab=1"><span>Everyday</span></a></li><li><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=root&amp;uP_sparam=activeTab&amp;activeTab=2"><span>Libraries</span></a></li><li id="active-tab"><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=root&amp;uP_sparam=activeTab&amp;activeTab=3"><span>Campus Life</span></a></li><li><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=root&amp;uP_sparam=activeTab&amp;activeTab=4"><span>Administration</span></a></li><li><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=root&amp;uP_sparam=activeTab&amp;activeTab=5"><span>Reporting Tools</span></a></li><li><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=root&amp;uP_sparam=activeTab&amp;activeTab=6"><span>myTab</span></a></li></ul></div></div><div id="portal-page-body"><table width="100%" cellspacing="15" cellpadding="0"><tr><td valign="top" width="50%"><div class="portlet-toolbar"><div><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_tcattr=minimized&amp;minimized_channelId=n10081&amp;minimized_n10081_value=true#n10081"><img title="shade" alt="shade" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/max.gif" /></a><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=n10081"><img title="maximize" alt="maximize" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/focus.gif" /></a><a onclick="return confirm('Are you sure you want to remove this channel?')" href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_remove_target=n10081"><img title="remove" alt="remove" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/remove.gif" /></a></div><a name="n10081"><h2 id="n10081">Maps and Buildings</h2></a></div><div class="portlet clearfix">
</div><div class="portlet-toolbar"><div><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_tcattr=minimized&amp;minimized_channelId=n10082&amp;minimized_n10082_value=true#n10082"><img title="shade" alt="shade" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/max.gif" /></a><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=n10082"><img title="maximize" alt="maximize" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/focus.gif" /></a><a onclick="return confirm('Are you sure you want to remove this channel?')" href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_remove_target=n10082"><img title="remove" alt="remove" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/remove.gif" /></a></div><a name="n10082"><h2 id="n10082">Athletics</h2></a></div><div class="portlet clearfix">
</div></td><td valign="top" width="50%"><div class="portlet-toolbar"><div><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_tcattr=minimized&amp;minimized_channelId=n10084&amp;minimized_n10084_value=true#n10084"><img title="shade" alt="shade" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/max.gif" /></a><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=n10084"><img title="maximize" alt="maximize" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/focus.gif" /></a><a onclick="return confirm('Are you sure you want to remove this channel?')" href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_remove_target=n10084"><img title="remove" alt="remove" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/remove.gif" /></a></div><a name="n10084"><h2 id="n10084">Parking/Transportation</h2></a></div><div class="portlet clearfix">
</div><div class="portlet-toolbar"><div><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_tcattr=minimized&amp;minimized_channelId=n10085&amp;minimized_n10085_value=true#n10085"><img title="shade" alt="shade" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/max.gif" /></a><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=n10085"><img title="maximize" alt="maximize" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/focus.gif" /></a><a onclick="return confirm('Are you sure you want to remove this channel?')" href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_remove_target=n10085"><img title="remove" alt="remove" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/remove.gif" /></a></div><a name="n10085"><h2 id="n10085">Buses/Shuttles</h2></a></div><div class="portlet clearfix">

</div></td></tr></table></div><div id="portal-page-footer"><div><a href="http://www.rutgers.edu/" target="_blank"><img src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers/institutional/rutgers_footer_logo.gif" title="Go to Rutgers home page" alt="Rutgers Logo" height="30" width="99" /></a></div><p>
					Links to campus web sites:
					<a href="http://camden-www.rutgers.edu/" target="_blank">Camden</a>,
					<a href="http://rutgers-newark.rutgers.edu/" target="_blank">Newark</a>,
					<a href="http://nbp.rutgers.edu/" target="_blank">New Brunswick/Piscataway</a>,
					<a href="http://www.rutgers.edu/" target="_blank">Rutgers University</a>.
					<br />
					For assistance, contact the Help Desks in:
					<a href="http://rucs.camden.rutgers.edu/" target="_blank">Camden</a>,
					<a href="http://www.ncs.rutgers.edu/helpdesk/" target="_blank">Newark</a>, or
					<a href="http://www.nbcs.rutgers.edu/helpdesk/hdnew/" target="_blank">New Brunswick/Piscataway</a>.
				</p></div></body></html>