All,
The explanation below makes sense, but I'm tryiing to understand how do I grab
and extract the jsessionid
variable to I can prepend it to my session.cfid & session.cftoken in my URL
session management.
When I create a blank page within a directory that contains session management
and try to outout
the variable session.jsessionid, the variable won't part and I just get the
variable name.
<cfapplication name="id" sessionmanagement="yes" clientmanagement="yes"
setclientcookies="yes">
<cfset session.sessionID = session.cfid & session.cftoken>
EXPLANATION
If you have clustered JRun or ColdFusion running on JRun then you may have ran
into an issue with sticky sessions. This little technical tidbit may help you
out and you will better understand how JRun handles sticky sessions. Many
people think that the connector handles sticky sessions with a table of current
sessions. Well, it is much simpler than that and here is how it works.
Sticky sessions hinge off of the jsessionid but not the entire id. When you
create a JRun cluster the first time the server starts after it is added to a
cluster a file called
{cfusion}/servers/{servername}/SERVER-INF/connector.properties is created and
the file contents look something like this:
#Sat Nov 22 07:36:43 EST 2003
server.id=c830
The server.id is a 4 character string that is used to pre-pend on the front of
every jsessionid that is created by that server. The connector has a listing of
all server id's for all servers in a cluster and looks at the jsessionid and
determines which server to route the request to. So a jsessionid created by the
server with the id c830 will look something like this c830xxxxxxxxxxxxxxxx. By
default sticky sessions are set to on even though the JRun documentation states
otherwise. You can disable sticky sessions by modifying the jrun.xml with the
following XML.
<service class="jrun.servlet.jrpp.JRunProxyService" name="ProxyService">
.............
<attribute name="StickySessions">false</attribute>
.............
</service>
You should really leave sticky sessions on unless you are not using the session
scope at all. If you are using in-memory session replication you should leave
sticky sessions on as well.
If you run into a problem with sticky sessions the first thing to look at is
the users jsessionid, make sure it has the first four characters of a valid
server.id. If it does not all requests with that session id will be round
robined across all servers in the JRun cluster.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to
date
Get the Free Trial
http://ad.doubleclick.net/clk;203748912;27390454;j
Archive:
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:312825
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4