<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=windows-1252"
 http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Instead of keeping sessions, and lists of sessions, how about this:<br>
<br>
Create a "start solution.aspx" that the anonymous users get a link to.<br>
In this file, simply log in as the anonymous user on MapGuide (or
whatever user you want to pose as anonymous).<br>
Redirect to the MapGuide viewer, passing SESSION=xxx to the solution,
using the session id you just created.<br>
<br>
You can then keep track of how many sessions there are active, using
the .Net session events:<br>
<a class="moz-txt-link-freetext" href="http://msdn.microsoft.com/en-us/library/ms178583.aspx">http://msdn.microsoft.com/en-us/library/ms178583.aspx</a><br>
<br>
I recommend that you maintain a short session timeout, and "ping" an
aspx page to keep the session alive.<br>
<br>
The number of active users depend on hardware, the dataset, the user
behavior, etc.<br>
You can only determine this through testing. <br>
On an infinitely fast machine, MapGuide can serve an infinite number of
users.<br>
<br>
If you want something really fancy, MapGuide has some performance
counters you can poll.<br>
<br>
Yes, you should call dispose, and yes, it is annoying that you cannot
use using().<br>
You can create a trac ticket, stating what you want changed,<br>
to give a better .Net experience when acessing MapGuide:<br>
<a class="moz-txt-link-freetext" href="http://trac.osgeo.org/mapguide/wiki/SubmitTicket">http://trac.osgeo.org/mapguide/wiki/SubmitTicket</a><br>
<br>
Due to this problem (and other similar) problems, I have built the
MaestroAPI:<br>
<a class="moz-txt-link-freetext" href="http://trac.osgeo.org/mapguide/wiki/maestro/MaestroAPI">http://trac.osgeo.org/mapguide/wiki/maestro/MaestroAPI</a><br>
<br>
You cannot reference a class directly without referencing the dll (eg
MgException).<br>
You can use a more generic try/catch to read the description without
knowing the type:<br>
try<br>
{<br>
    //Bad code here<br>
}<br>
catch (Execption ex)<br>
{<br>
    //Also catches MgExceptions and the like<br>
    Console.Writeline(ex.Message);<br>
}<br>
<br>
Btw., your attachment did not make it.<br>
<pre class="moz-signature" cols="72">Regards, Kenneth Skovhede, GEOGRAF A/S
</pre>
On 22-02-2010 16:41, Pietro Ianniello wrote:
<blockquote
 cite="mid:98da27e31002220741s4967442ei9ebda378f18354ba@mail.gmail.com"
 type="cite">
  <meta http-equiv="Content-Type"
 content="text/html; charset=windows-1252">
  <meta name="ProgId" content="Word.Document">
  <meta name="Generator" content="Microsoft Word 11">
  <meta name="Originator" content="Microsoft Word 11">
  <link rel="File-List"
 href="file:///C:%5CDOCUME%7E1%5Croot%5CIMPOST%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml">
  <style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {mso-style-parent:"";
        margin:0cm;
        margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:12.0pt;
        font-family:"Times New Roman";
        mso-fareast-font-family:"Times New Roman";}
@page Section1
        {size:595.3pt 841.9pt;
        margin:70.85pt 2.0cm 2.0cm 2.0cm;
        mso-header-margin:35.4pt;
        mso-footer-margin:35.4pt;
        mso-paper-source:0;}
div.Section1
        {page:Section1;}
-->
  </style>
  <p class="MsoNormal"><span style="" lang="EN-US">Dear list,</span></p>
  <p class="MsoNormal"><span style="" lang="EN-US"> </span></p>
  <p class="MsoNormal"><span style="" lang="EN-US">This
question is for those who have knowledge of MagGuide internals.</span></p>
  <p class="MsoNormal"><span style="" lang="EN-US"> </span></p>
  <p class="MsoNormal"><span style="" lang="EN-US">I want to
be able to give access to some maps to anonymous users, in a way
transparent to
their session [I mean that session seems not to expire to such users].</span></p>
  <p class="MsoNormal"><span style="" lang="EN-US">My idea is
to maintain a list of session ID on server side, let’s say 10. Then on
every
request I pick one of my sessions, check if it’s expired, if it is
recreate the
session, and then use it to serve the map.</span></p>
  <p class="MsoNormal"><span style="" lang="EN-US">NOTE: this
only for anonymous users, obviously!</span></p>
  <p class="MsoNormal"><span style="" lang="EN-US"> </span></p>
  <p class="MsoNormal"><span style="" lang="EN-US">I would like
to know:</span></p>
  <p class="MsoNormal"><span style="" lang="EN-US"><span style="">     
  </span>- What do you think of such a solution?</span></p>
  <p class="MsoNormal"><span style="" lang="EN-US"><span style="">     
  </span>- How can I calculate a good number of
server side maintained sessions?</span></p>
  <p class="MsoNormal"><span style="" lang="EN-US"> </span></p>
  <p class="MsoNormal"><span style="" lang="EN-US">The second
question can be reformulated: How many concurrent request is a SINGLE
MapGuide
server able to serve in a reasonable time…for a typical map, let’s say
for "<i>Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition</i>",
because it depends from the complexity of the map.</span></p>
  <p class="MsoNormal"><span style="" lang="EN-US"> </span></p>
  <p class="MsoNormal"><span style="" lang="EN-US">Then I
would like to pose some problems I have encountered using MapGide with <a
 moz-do-not-send="true" href="http://ASP.NET">ASP.NET</a>,
witch are related to how managed classes are generated (using SWIG, I
suppose).</span></p>
  <p class="MsoNormal"><span style="" lang="EN-US"> </span></p>
  <p class="MsoNormal"><span style="" lang="EN-US">The first
is that Exceptions are not [Serializable] decorated, and don’t
implement the “Iserializable”
interface. So if someone uses MapGuide classes inside an assembly (as I
do), she
cannot catch OSGeo.MapGuide.ManagedException, OSGeo.MapGuide.</span><span
 style="" lang="EN-US"> </span><span style="" lang="EN-US">MgException,
etc….</span></p>
  <p class="MsoNormal"><span style="" lang="EN-US"> </span></p>
  <p class="MsoNormal"><span style="" lang="EN-US">The second
is releted to Dispose: all classes expose a Dispose function but don’t
expose
IDisposable interface, so we cannot use “using()”, but must always use
try/finally, wich, when there are many variables, can bring to ugly
code.</span></p>
  <p class="MsoNormal"><br>
  <span style="" lang="EN-US"></span></p>
  <p class="MsoNormal"><span style="" lang="EN-US">This brigs me to the
following question: I always try to Dispose ALL AND EVERYTHING. Is it
correct? In my opinion if a class exposes a Dispose member, I MUST CALL
Dispose.</span></p>
  <p class="MsoNormal"><span style="" lang="EN-US"> </span></p>
  <p class="MsoNormal"><span style="" lang="EN-US">A have
attached an <a moz-do-not-send="true" href="http://ASP.NET">ASP.NET</a>
site with an example implementation of the server side
maintained sessions. It’s a little bit spaghetti, because it’s a
rewrite of a
different implementation… for example in the method
MgSheboyganCacheHelper.GetMgMapAnonymous
the MgSite is not disposed… but… should it be or when disposing the
related
Mgmap it will be automatically disposed [this relates to the Dispose
question
above]?</span></p>
  <p class="MsoNormal"><span style="" lang="EN-US"> </span></p>
  <p class="MsoNormal"><span style="" lang="EN-US">Regards,</span></p>
  <p class="MsoNormal"><span style="" lang="EN-US"><span style="">   </span>Pietro
Ianniello </span></p>
  <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
mapguide-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:mapguide-users@lists.osgeo.org">mapguide-users@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="http://lists.osgeo.org/mailman/listinfo/mapguide-users">http://lists.osgeo.org/mailman/listinfo/mapguide-users</a>
  </pre>
</blockquote>
</body>
</html>