<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://m204wiki.rocketsoftware.com/index.php?action=history&amp;feed=atom&amp;title=Janus_Web_Server_login_caching</id>
	<title>Janus Web Server login caching - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://m204wiki.rocketsoftware.com/index.php?action=history&amp;feed=atom&amp;title=Janus_Web_Server_login_caching"/>
	<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Janus_Web_Server_login_caching&amp;action=history"/>
	<updated>2026-05-22T17:03:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Janus_Web_Server_login_caching&amp;diff=76472&amp;oldid=prev</id>
		<title>JAL: link repair</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Janus_Web_Server_login_caching&amp;diff=76472&amp;oldid=prev"/>
		<updated>2015-03-09T17:57:25Z</updated>

		<summary type="html">&lt;p&gt;link repair&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:57, 9 March 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l93&quot;&gt;Line 93:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 93:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if login caching is to be used.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if login caching is to be used.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For more information on&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For more information on&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;setting up sdaemon threads, see the [&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;//m204wiki.rocketsoftware.com/images/c/c9/&lt;/del&gt;SiriNew.pdf Sirius Mods Installation Guide].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;setting up sdaemon threads, see the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;var class=&quot;book&quot;&amp;gt;&lt;/ins&gt;[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[Media&lt;/ins&gt;:SiriNew.pdf&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|&lt;/ins&gt;Sirius Mods Installation Guide]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&amp;lt;/var&amp;gt;&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It is clear then, that login caching is no panacea, and in&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It is clear then, that login caching is no panacea, and in&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JAL</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Janus_Web_Server_login_caching&amp;diff=73893&amp;oldid=prev</id>
		<title>JAL: /* Limiting the number of cached login sessions */</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Janus_Web_Server_login_caching&amp;diff=73893&amp;oldid=prev"/>
		<updated>2014-12-04T17:25:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Limiting the number of cached login sessions&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:25, 4 December 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l93&quot;&gt;Line 93:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 93:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if login caching is to be used.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if login caching is to be used.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For more information on&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For more information on&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;setting up sdaemon threads, see the [http://&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;www&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sirius-software&lt;/del&gt;.com/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;maint&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;download&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;siri&lt;/del&gt;.pdf Sirius Mods Installation Guide].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;setting up sdaemon threads, see the [http://&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;m204wiki&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rocketsoftware&lt;/ins&gt;.com/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;images&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;c&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;c9/SiriNew&lt;/ins&gt;.pdf Sirius Mods Installation Guide].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It is clear then, that login caching is no panacea, and in&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It is clear then, that login caching is no panacea, and in&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JAL</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Janus_Web_Server_login_caching&amp;diff=48757&amp;oldid=prev</id>
		<title>JAL2 at 20:01, 17 October 2011</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Janus_Web_Server_login_caching&amp;diff=48757&amp;oldid=prev"/>
		<updated>2011-10-17T20:01:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:01, 17 October 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l121&quot;&gt;Line 121:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 121:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Since a single web page can contain many images, and since browsers often request images on a page in parallel, a single request for such a login-protected page can result in multiple simultaneous logins for a userid. Login caching would then hold these logins, tying up several sdaemons in the process.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Since a single web page can contain many images, and since browsers often request images on a page in parallel, a single request for such a login-protected page can result in multiple simultaneous logins for a userid. Login caching would then hold these logins, tying up several sdaemons in the process.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;var&amp;gt;WEBLOGMAX&amp;lt;/var&amp;gt; prevents more than the indicated number of sdaemons to be used for a single user&#039;s requests. All login-protected requests for a user are then threaded trough &amp;lt;var&amp;gt;WEBLOGMAX&amp;lt;/var&amp;gt; users. This is generally not a problem since the typical bottleneck for most requests is network bandwidth, and multi-threading requests for a single user does not alleviate network bandwidth problems.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;var&amp;gt;WEBLOGMAX&amp;lt;/var&amp;gt; prevents more than the indicated number of sdaemons to be used for a single user&#039;s requests. All login-protected requests for a user are then threaded trough &amp;lt;var&amp;gt;WEBLOGMAX&amp;lt;/var&amp;gt; users. This is generally not a problem since the typical bottleneck for most requests is network bandwidth, and multi-threading requests for a single user does not alleviate network bandwidth problems. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;var&amp;gt;WEBLM&amp;lt;/var&amp;gt; is a synonym for &amp;lt;var&amp;gt;WEBLOGMAX&amp;lt;/var&amp;gt;. &amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;var&amp;gt;WEBLM&amp;lt;/var&amp;gt; is a synonym for &amp;lt;var&amp;gt;WEBLOGMAX&amp;lt;/var&amp;gt;. &amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l159&quot;&gt;Line 159:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 159:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;simply not login protect images, since generally these&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;simply not login protect images, since generally these&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;do not contain secure information anyway.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;do not contain secure information anyway.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==WEBPUBLOG and login caching==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==WEBPUBLOG and login caching==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;lt;var&amp;gt;WEBPUBLOG&amp;lt;/var&amp;gt; parameter is used to force a &quot;real&quot; login&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;lt;var&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;WEBPUBLOG&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;&amp;lt;/var&amp;gt; parameter is used to force a &quot;real&quot; login&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;for the &amp;lt;var&amp;gt;WEBUSER&amp;lt;/var&amp;gt; userid for public URL requests.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;for the &amp;lt;var&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;WEBUSER&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;&amp;lt;/var&amp;gt; userid for public URL requests.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This means&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This means&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;that the &amp;lt;var&amp;gt;WEBUSER&amp;lt;/var&amp;gt; userid is validated either in CCASTAT or&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;that the &amp;lt;var&amp;gt;WEBUSER&amp;lt;/var&amp;gt; userid is validated either in CCASTAT or&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l202&quot;&gt;Line 202:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 203:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;browser sessions for the enforcement of &amp;lt;var&amp;gt;WEBLOGMAX&amp;lt;/var&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;browser sessions for the enforcement of &amp;lt;var&amp;gt;WEBLOGMAX&amp;lt;/var&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This problem can be solved by the use of the &amp;lt;var&amp;gt;WEBCOOKID&amp;lt;/var&amp;gt; parameter&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This problem can be solved by the use of the &amp;lt;var&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;WEBCOOKID&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;&amp;lt;/var&amp;gt; parameter&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;on the port definition, which instructs &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Janus Web Server&amp;lt;/var&amp;gt; to send browser&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;on the port definition, which instructs &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Janus Web Server&amp;lt;/var&amp;gt; to send browser&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;requests with cached login sessions a special session cookie&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;requests with cached login sessions a special session cookie&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l257&quot;&gt;Line 257:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 258:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;work files can be used.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;work files can be used.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Where it is desirable to save &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Where it is desirable to save &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;lists or found sets, &amp;lt;var class=&quot;product&quot;&amp;gt;Janus Web Server&amp;lt;/var&amp;gt; provides [[Janus Web Server Saved Record Set&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;lists or found sets, &amp;lt;var class=&quot;product&quot;&amp;gt;Janus Web Server&amp;lt;/var&amp;gt; provides [[Janus Web Server Saved Record Set Support|&quot;Saved Record Set Support&quot;]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Support|&quot;Saved Record Set Support&quot;]].&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Janus Web Server]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Janus Web Server]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JAL2</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Janus_Web_Server_login_caching&amp;diff=48756&amp;oldid=prev</id>
		<title>JAL2: Created page with &quot;While the connectionless nature of the web protocol (HTTP) makes it possible to have servers support communities of tens of thousands of end-users by eliminating the cost of &quot;hol...&quot;</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Janus_Web_Server_login_caching&amp;diff=48756&amp;oldid=prev"/>
		<updated>2011-10-14T22:45:59Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;While the connectionless nature of the web protocol (HTTP) makes it possible to have servers support communities of tens of thousands of end-users by eliminating the cost of &amp;quot;hol...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;While the connectionless nature of the web protocol (HTTP)&lt;br /&gt;
makes it possible to have servers support communities of&lt;br /&gt;
tens of thousands of end-users by eliminating the cost of&lt;br /&gt;
&amp;quot;holding down&amp;quot; open connections, it also presents some&lt;br /&gt;
special problems.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Where login security is required, the web protocol&lt;br /&gt;
results in a login for every page rather than once for a&lt;br /&gt;
user &amp;quot;session.&amp;quot;&lt;br /&gt;
While &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; login processing is fairly&lt;br /&gt;
inexpensive, this is not necessarily the case for&lt;br /&gt;
external-authorizer (RACF, ACF2 and Top Secret) login&lt;br /&gt;
validation.&lt;br /&gt;
It is possible that external authorizers&lt;br /&gt;
can be swamped with login requests from &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Janus Web Server&amp;lt;/var&amp;gt; for&lt;br /&gt;
login protected pages.&lt;br /&gt;
(In such cases with RACF,&lt;br /&gt;
a &amp;lt;var&amp;gt;[[WEBOPT parameter|WEBOPT]]&amp;lt;/var&amp;gt; system parameter setting improves performance.&lt;br /&gt;
&amp;lt;li&amp;gt;The ephemeral nature of connections &amp;amp;mdash; the&lt;br /&gt;
browser connects, the server logs in, the user sends the&lt;br /&gt;
output page and logs off &amp;amp;mdash; can make connection-based&lt;br /&gt;
tools such as &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[SirMon]]&amp;lt;/var&amp;gt; and &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[SirScan]]&amp;lt;/var&amp;gt; difficult to use.&lt;br /&gt;
For example, simply answering the question &amp;quot;who&amp;#039;s using our&lt;br /&gt;
system now&amp;quot; can be difficult with web users because they&lt;br /&gt;
never stay logged on for more than a few instants.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Janus Web Server&amp;lt;/var&amp;gt; login caching provides a solution to both of these&lt;br /&gt;
problems.&lt;br /&gt;
Here is how login caching works:&lt;br /&gt;
When a user&lt;br /&gt;
logs on for a web page, rather than logging&lt;br /&gt;
the user off after the page is sent, the user is left logged on.&lt;br /&gt;
If another login request is received for the same userid&lt;br /&gt;
from the same browser (with the same password), that request&lt;br /&gt;
is transferred to the held login session rather than issuing&lt;br /&gt;
a new login request.&lt;br /&gt;
 &lt;br /&gt;
This accomplishes two things.&lt;br /&gt;
First, by eliminating the need&lt;br /&gt;
to re-issue a login request, it eliminates the cost of doing&lt;br /&gt;
userid and password validation.&lt;br /&gt;
Second, it makes a web user&lt;br /&gt;
persist in the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; Online, so it is easier to monitor&lt;br /&gt;
and audit what individual users are doing.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
The userid&amp;#039;s password is never kept unencrypted in&lt;br /&gt;
the Online address space.&lt;br /&gt;
Instead, before the initial login&lt;br /&gt;
request, the password is one-way encrypted and stashed in virtual storage.&lt;br /&gt;
When a subsequent login request is received,&lt;br /&gt;
the password that comes with that request is one-way encrypted&lt;br /&gt;
and compared with the saved, one-way encrypted password.&lt;br /&gt;
If they match, the password must be correct and password validation&lt;br /&gt;
can be bypassed.&lt;br /&gt;
__TOC__&lt;br /&gt;
 &lt;br /&gt;
==Limiting the number of cached login sessions==&lt;br /&gt;
Cached login sessions have some real benefits, however, they also&lt;br /&gt;
have some disadvantages.&lt;br /&gt;
Like connection-based sessions, each cached login session&lt;br /&gt;
ties up a thread.&lt;br /&gt;
Furthermore, these threads are tied up&lt;br /&gt;
for a fairly long period of time.&lt;br /&gt;
This means that the number&lt;br /&gt;
of concurrent web threads might increase significantly if&lt;br /&gt;
the cached login facility is used.&lt;br /&gt;
 &lt;br /&gt;
For example, consider a site that typically has about 200 users&lt;br /&gt;
concurrently using a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Janus Web Server&amp;lt;/var&amp;gt; application.&lt;br /&gt;
Let&amp;#039;s say that while&lt;br /&gt;
they are using the application they are sending an average of&lt;br /&gt;
one page request every 20 seconds, and let&amp;#039;s say that each page&lt;br /&gt;
request takes one second to satisfy.&lt;br /&gt;
This translates to an&lt;br /&gt;
average of about 10 concurrent web threads active at a given&lt;br /&gt;
time (though realistically the values will range from 0 to 20&lt;br /&gt;
or higher).&lt;br /&gt;
If login caching were turned on, suddenly there would&lt;br /&gt;
be 200 concurrent web threads at any given instant.&lt;br /&gt;
While most of these would be inactive most of the time, there would&lt;br /&gt;
still be costs associated with them.&lt;br /&gt;
 &lt;br /&gt;
Most significantly for &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt;, each of these threads would&lt;br /&gt;
need a server.&lt;br /&gt;
This means that unless the Online had 200 or&lt;br /&gt;
more servers there would be server swapping for the web threads.&lt;br /&gt;
In the non-login caching case, 20 or so servers would probably&lt;br /&gt;
prevent any web thread server swapping because of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Janus Web Server&amp;lt;/var&amp;gt;&amp;#039;s&lt;br /&gt;
most-recently-used algorithm for using sdaemon threads.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Because all &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Janus Web Server&amp;lt;/var&amp;gt; applications run on [[Sdaemons|sdaemon]]&lt;br /&gt;
threads, the number of sdaemon threads must be increased&lt;br /&gt;
if login caching is to be used.&lt;br /&gt;
For more information on&lt;br /&gt;
setting up sdaemon threads, see the [http://www.sirius-software.com/maint/download/siri.pdf Sirius Mods Installation Guide].&lt;br /&gt;
 &lt;br /&gt;
It is clear then, that login caching is no panacea, and in&lt;br /&gt;
fact, steps should be taken to keep down the number of threads&lt;br /&gt;
used up by &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Janus Web Server&amp;lt;/var&amp;gt; login caching.&lt;br /&gt;
Unfortunately, the connectionless&lt;br /&gt;
nature of the web protocol makes this difficult.&lt;br /&gt;
There is no&lt;br /&gt;
such thing as a web logout, and there is no way to determine&lt;br /&gt;
when the end-user has gone to another web site, exited the&lt;br /&gt;
browser, or even turned off his or her workstation.&lt;br /&gt;
 &lt;br /&gt;
Because of these issues, control of login caching must&lt;br /&gt;
come through timeouts and system and user limits on cached&lt;br /&gt;
login sessions.&lt;br /&gt;
These controls are set with port parameters&lt;br /&gt;
that are specified on the &amp;lt;var&amp;gt;[[JANUS DEFINE]]&amp;lt;/var&amp;gt; command.&lt;br /&gt;
&amp;lt;table class=&amp;quot;syntaxTable&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&amp;lt;var&amp;gt;WEBLOGHOLD&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;/th&amp;gt;&amp;lt;td&amp;gt;You specify this parameter followed by the length of time (in seconds) that a cached login should be saved for re-use on a web connection. The default for &amp;lt;var&amp;gt;WEBLOGHOLD&amp;lt;/var&amp;gt; is 0, which means that login caching is not used for the port.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;var&amp;gt;WEBLH&amp;lt;/var&amp;gt; is a synonym for &amp;lt;var&amp;gt;WEBLOGHOLD&amp;lt;/var&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&amp;lt;var&amp;gt;WEBLOGMAX&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;/th&amp;gt;&amp;lt;td&amp;gt;You specify this parameter followed by a number that indicates the maximum number of cached login sessions to be held for a single user. This parameter has no effect unless the &amp;lt;var&amp;gt;WEBLOGHOLD&amp;lt;/var&amp;gt; parameter is set to something other than 0.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Since a single web page can contain many images, and since browsers often request images on a page in parallel, a single request for such a login-protected page can result in multiple simultaneous logins for a userid. Login caching would then hold these logins, tying up several sdaemons in the process.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;var&amp;gt;WEBLOGMAX&amp;lt;/var&amp;gt; prevents more than the indicated number of sdaemons to be used for a single user&amp;#039;s requests. All login-protected requests for a user are then threaded trough &amp;lt;var&amp;gt;WEBLOGMAX&amp;lt;/var&amp;gt; users. This is generally not a problem since the typical bottleneck for most requests is network bandwidth, and multi-threading requests for a single user does not alleviate network bandwidth problems.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;var&amp;gt;WEBLM&amp;lt;/var&amp;gt; is a synonym for &amp;lt;var&amp;gt;WEBLOGMAX&amp;lt;/var&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&amp;lt;var&amp;gt;WEBSDMAX&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;/th&amp;gt;&amp;lt;td&amp;gt;This parameter indicates the maximum number of sdaemons to be used for cached web logins. This parameter has no effect unless the &amp;lt;var&amp;gt;WEBLOGHOLD&amp;lt;/var&amp;gt; parameter is set to something other than 0.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Since there is no upper limit to the number of login requests that can come into a web port at a given instant, it is quite possible for a flurry of login requests to tie up every sdaemon, causing multiple problems including that it makes it impossible for people to connect to any Janus port. &amp;lt;var&amp;gt;WEBSDMAX&amp;lt;/var&amp;gt; limits the number of sdaemons that will be used by a port for cached logins.&lt;br /&gt;
If a new cached login is required, and &amp;lt;var&amp;gt;WEBSDMAX&amp;lt;/var&amp;gt; will be exceeded, the oldest cached login session will be discarded, even if &amp;lt;var&amp;gt;WEBLOGHOLD&amp;lt;/var&amp;gt; seconds has not been reached for that session.  &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The default for &amp;lt;var&amp;gt;WEBSDMAX&amp;lt;/var&amp;gt; is half the number of sdaemons defined to the Online. If sdaemons are used heavily for other purposes in the Online or there are multiple ports using the login caching facility, &amp;lt;var&amp;gt;WEBSDMAX&amp;lt;/var&amp;gt; should be adjusted down.  &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;var&amp;gt;WEBSM&amp;lt;/var&amp;gt; is a synonym for &amp;lt;var&amp;gt;WEBSDMAX&amp;lt;/var&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
The typical strategy in setting these parameters is to set&lt;br /&gt;
&amp;lt;var&amp;gt;WEBLOGHOLD&amp;lt;/var&amp;gt; high enough so that external authorizer logins&lt;br /&gt;
are avoided, but not so high that too many threads are&lt;br /&gt;
tied up with cached login sessions.&lt;br /&gt;
An alternate strategy&lt;br /&gt;
might be to set &amp;lt;var&amp;gt;WEBLOGHOLD&amp;lt;/var&amp;gt; arbitrarily high but to set&lt;br /&gt;
&amp;lt;var&amp;gt;WEBSDMAX&amp;lt;/var&amp;gt; fairly low (perhaps some number less than the&lt;br /&gt;
number of servers in the Online), limiting the number&lt;br /&gt;
of cached login sessions for the port.&lt;br /&gt;
This would have the&lt;br /&gt;
effect of allowing cached login sessions a longer lifetime&lt;br /&gt;
when the system is not busy than when it is.&lt;br /&gt;
This would also&lt;br /&gt;
have the effect of reducing the likelihood of login-caching&lt;br /&gt;
related server swapping.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var&amp;gt;WEBLOGMAX&amp;lt;/var&amp;gt; should also be used to limit the overhead associated&lt;br /&gt;
with simultaneous logins for the same browser, when a&lt;br /&gt;
browser requests several login-protected images on a page&lt;br /&gt;
in parallel.&lt;br /&gt;
Another way to combat this problem is to&lt;br /&gt;
simply not login protect images, since generally these&lt;br /&gt;
do not contain secure information anyway.&lt;br /&gt;
==WEBPUBLOG and login caching==&lt;br /&gt;
The &amp;lt;var&amp;gt;WEBPUBLOG&amp;lt;/var&amp;gt; parameter is used to force a &amp;quot;real&amp;quot; login&lt;br /&gt;
for the &amp;lt;var&amp;gt;WEBUSER&amp;lt;/var&amp;gt; userid for public URL requests.&lt;br /&gt;
This means&lt;br /&gt;
that the &amp;lt;var&amp;gt;WEBUSER&amp;lt;/var&amp;gt; userid is validated either in CCASTAT or&lt;br /&gt;
with an external authorizer for public URLs.&lt;br /&gt;
This type of&lt;br /&gt;
login is done as a trusted login so no password is required.&lt;br /&gt;
 &lt;br /&gt;
There are several reasons for setting the &amp;lt;var&amp;gt;WEBPUBLOG&amp;lt;/var&amp;gt; parameter&lt;br /&gt;
that have nothing to do with login caching, but this parameter&lt;br /&gt;
also has an interaction with the login caching facility.&lt;br /&gt;
Specifically, if &amp;lt;var&amp;gt;WEBPUBLOG&amp;lt;/var&amp;gt; is set for a port that is also&lt;br /&gt;
using login caching, login caching will also be used for&lt;br /&gt;
the &amp;lt;var&amp;gt;WEBUSER&amp;lt;/var&amp;gt; logins associated with public URLs.&lt;br /&gt;
This lets &amp;lt;var&amp;gt;WEBUSER&amp;lt;/var&amp;gt; logins get the same benefits: avoiding&lt;br /&gt;
repeated external authorizer calls, and improved monitoring&lt;br /&gt;
and auditing of &amp;lt;var&amp;gt;WEBUSER&amp;lt;/var&amp;gt; sessions.&lt;br /&gt;
 &lt;br /&gt;
One problem associated with using &amp;lt;var&amp;gt;WEBPUBLOG&amp;lt;/var&amp;gt; in conjunction&lt;br /&gt;
with the login caching facility occurs while trying to&lt;br /&gt;
enforce the &amp;lt;var&amp;gt;WEBLOGMAX&amp;lt;/var&amp;gt; parameter.&lt;br /&gt;
Since &amp;lt;var&amp;gt;WEBLOGMAX&amp;lt;/var&amp;gt; limits the&lt;br /&gt;
number of simultaneous cached login sessions for each user,&lt;br /&gt;
it becomes essential to be able to distinguish users&lt;br /&gt;
from each other to determine if requests originate from&lt;br /&gt;
the same place.&lt;br /&gt;
This is generally easy with login protected&lt;br /&gt;
URLs, since (generally) each user will be using a different&lt;br /&gt;
userid, and the userid uniquely identifies a browser session.&lt;br /&gt;
 &lt;br /&gt;
With cached &amp;lt;var&amp;gt;WEBUSER&amp;lt;/var&amp;gt; userid logins, however, the userid is&lt;br /&gt;
no help in distinguishing browser sessions.&lt;br /&gt;
Because of&lt;br /&gt;
this, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Janus Web Server&amp;lt;/var&amp;gt; also uses the browser&amp;#039;s IP address in distinguishing&lt;br /&gt;
browser sessions and so enforcing &amp;lt;var&amp;gt;WEBLOGMAX&amp;lt;/var&amp;gt;.&lt;br /&gt;
Unfortunately,&lt;br /&gt;
if several browsers are going through the same proxy server,&lt;br /&gt;
all the browsers&amp;#039; IP addresses appear to be that of the proxy&lt;br /&gt;
server.&lt;br /&gt;
In this case, it is impossible to distinguish the individual&lt;br /&gt;
browser sessions for the enforcement of &amp;lt;var&amp;gt;WEBLOGMAX&amp;lt;/var&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
This problem can be solved by the use of the &amp;lt;var&amp;gt;WEBCOOKID&amp;lt;/var&amp;gt; parameter&lt;br /&gt;
on the port definition, which instructs &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Janus Web Server&amp;lt;/var&amp;gt; to send browser&lt;br /&gt;
requests with cached login sessions a special session cookie&lt;br /&gt;
that uniquely identifies the browser.&lt;br /&gt;
Each browser would then&lt;br /&gt;
send this session cookie back to &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Janus Web Server&amp;lt;/var&amp;gt; on subsequent requests,&lt;br /&gt;
allowing it to be used to distinguish multiple browser sessions,&lt;br /&gt;
even if they are going through the same proxy server.&lt;br /&gt;
 &lt;br /&gt;
Using &amp;lt;var&amp;gt;WEBCOOKID&amp;lt;/var&amp;gt; can be problematic at sites where end-users&lt;br /&gt;
have browsers that don&amp;#039;t support cookies or where end-users have&lt;br /&gt;
turned off cookie support in their browsers.&lt;br /&gt;
Fortunately, neither&lt;br /&gt;
of these is likely in most cases, so &amp;lt;var&amp;gt;WEBCOOKID&amp;lt;/var&amp;gt; should be&lt;br /&gt;
a workable means of distinguishing browsers in most cases.&lt;br /&gt;
 &lt;br /&gt;
==Login caching and data persistence==&lt;br /&gt;
It might be tempting to use the login caching facility to&lt;br /&gt;
achieve data persistence, which is typically not available for&lt;br /&gt;
web threads.&lt;br /&gt;
That is, it might be tempting to use&lt;br /&gt;
global variables, images, foundsets, or lists that can be&lt;br /&gt;
retrieved on subsequent requests.&lt;br /&gt;
 &lt;br /&gt;
While tempting, this is not possible.&lt;br /&gt;
Even though web login caching&lt;br /&gt;
avoids doing a real logoff at the end of a request for a page, it&lt;br /&gt;
does &amp;#039;&amp;#039;&amp;#039;all&amp;#039;&amp;#039;&amp;#039; the normal cleanup that is part of a logoff.&lt;br /&gt;
This includes cleanup of global variables, images, lists, and foundsets.&lt;br /&gt;
There are several reasons for this:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;It eliminates the need for web applications to worry about&lt;br /&gt;
things that are &amp;quot;laying around&amp;quot;&lt;br /&gt;
in a server as the result of previous requests.&lt;br /&gt;
These include table sizes, parameter settings, global variables, etc.&lt;br /&gt;
&amp;lt;li&amp;gt;There is no way to ensure that a subsequent request will&lt;br /&gt;
find the old cached login session still there.&lt;br /&gt;
As such, even if&lt;br /&gt;
data were allowed to persist in cached login sessions, applications&lt;br /&gt;
would still have to cache the data elsewhere in case the old&lt;br /&gt;
session was not found.&lt;br /&gt;
This would have rendered this capability&lt;br /&gt;
somewhat pointless anyway.&lt;br /&gt;
&amp;lt;li&amp;gt;By setting tables back down to the (hopefully) low default&lt;br /&gt;
sizes, the amount of data that might need to be server-swapped for&lt;br /&gt;
the cached login session is significantly reduced.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
In any case, web technology provides several convenient ways&lt;br /&gt;
of stashing persistent data on a browser.&lt;br /&gt;
These include cookies, invisible form fields, and isindex data.&lt;br /&gt;
In cases where the&lt;br /&gt;
quantity of data is too great for this to be practical, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt;&lt;br /&gt;
work files can be used.&lt;br /&gt;
Where it is desirable to save &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt;&lt;br /&gt;
lists or found sets, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Janus Web Server&amp;lt;/var&amp;gt; provides [[Janus Web Server Saved Record Set&lt;br /&gt;
Support|&amp;quot;Saved Record Set Support&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Janus Web Server]]&lt;/div&gt;</summary>
		<author><name>JAL2</name></author>
	</entry>
</feed>