WL 7.0 sp4 session replication problem
These are the configuration:
* BEA WebLogic Server 7.0 SP4
* Domain : mydomain
* Machine:
machine1 (Windows 2003)
machine2 (Windows 2000)
* Admin Server :
myserver (on "machine1")
* Managed Server :
server1 (on "machine1") , replication group: groupA , prefered secondary replication
group: groupB
server2 (on "machine2") , replication group: groupB , prefered secondary replication
group: groupA
proxy (on "machine2")
* Cluster :
cluster-1 (contains "server1" and "server2")
I've deployed an application (one EJB and some JSP, just for testing purpose)
to "cluster-1".
And I also deployed a "weblogic.servlet.proxy.HttpClusterServlet" application
to "proxy",
which is configured to connect "server1" and "server2".
Now I open a browser and browse to "proxy" and I can see th result from "server1"
or "server2".
But when I shutdown the server which my current session is on, I was redirected
to another server
but the session is not replicated.
Did you set the replicated option for your webapp. Did you change the
cookiename by anychance?
sree
"patrick" <[email protected]> wrote in message news:40e53734$1@mktnews1...
>
> These are the configuration:
>
> * BEA WebLogic Server 7.0 SP4
> * Domain : mydomain
> * Machine:
> machine1 (Windows 2003)
> machine2 (Windows 2000)
> * Admin Server :
> myserver (on "machine1")
> * Managed Server :
> server1 (on "machine1") , replication group: groupA , prefered
secondary replication
> group: groupB
> server2 (on "machine2") , replication group: groupB , prefered
secondary replication
> group: groupA
> proxy (on "machine2")
> * Cluster :
> cluster-1 (contains "server1" and "server2")
>
> I've deployed an application (one EJB and some JSP, just for testing
purpose)
> to "cluster-1".
> And I also deployed a "weblogic.servlet.proxy.HttpClusterServlet"
application
> to "proxy",
> which is configured to connect "server1" and "server2".
>
> Now I open a browser and browse to "proxy" and I can see th result from
"server1"
> or "server2".
> But when I shutdown the server which my current session is on, I was
redirected
> to another server
> but the session is not replicated.
Similar Messages
-
Apache + 2 Tomcats session replication problem.
Greetings everyone.
Before stating the problem, let me explain how my environment is set.
I have two machines. One (PC1) running Apache (HTTP server 2.0.58)
and one instance of Tomcat (5.0.28) and another machine (PC2) with
another instance of Tomcat(5.0.28).
The Apache server
It is configured to handle static content, to redirect dynamic content to a
Tomcat instance through AJP 1.3 connector.
This process is done through the mod_jk and the workers.properties
The workers.properties file is configured to have sticky_session = True
so it assigns a SESSION_ID to the same Tomcat it was first assigned.
The workers.properties file is configured to have
sticky_session_force = True so if the Tomcat the SESSION_ID was
assigned is not available, the server answers with a 500 error.
The Tomcat servers
Both have only the AJP 1.3 connector enabled
Both have the Cluster tag from the server.xml file uncommented
and the useDirtyFlag flag set to false, for not to allow SESSION
replication between Tomcats.
The workers.properties file
workers.apache_log=C:/Apache2/logs
workers.tomcat_home=C:/Tomcat5
workers.java_home=C:/j2sdk1.4.2_13
ps=/
#Defining workers -----------------------------
worker.list=balancer,jkstatus
#Defining balancer ---------------------------
worker.balancer.type=lb
worker.balancer.balance_workers=tel1, tel2
worker.balancer.sticky_session=True
worker.balancer.sticky_session_force=True
worker.balancer.method=B
worker.balancer.lock=O
#Defining status -----------------------------
worker.jkstatus.type=status
worker.jkstatus.css=/jk_status/StatusCSS.css
#Workers properties ---------------------------
worker.tel1.type=ajp13
worker.tel1.port=8009
worker.tel1.host=127.0.0.1
worker.tel1.lbfactor=1
worker.tel1.socket_keepalive=False
worker.tel1.socket_timeout=30
worker.tel1.retries=20
worker.tel1.connection_pool_timeout = 20
#worker.tel1.redirect=tel2
worker.tel1.disabled=False
worker.tel2.type=ajp13
worker.tel2.port=8009
worker.tel2.host=199.147.52.181
worker.tel2.lbfactor=1
worker.tel2.socket_keepalive=False
worker.tel2.socket_timeout=30
worker.tel2.retries=20
worker.tel2.connection_pool_timeout = 20
#worker.tel2.redirect=tel1
worker.tel2.disabled=False
THE PROBLEM
I open a browser in the jk-status page to see how the Tomcat instances are
working, and both are working fine: Stat -> OK, now as the
loadbalancing factor is 1 on both Tomcats, an even alternating session
distribution is set.
While this browser is open to keep an eye on the status, I open a new
browser (B1)to connect to my Web Application, Apache answers
correctly and gives me a SESSION_ID for Tomcat instance 1 [both
instances are OK], if I make a simple refresh, my SESSION_ID is still the
same so I'm assigned to Tomcat instance 1 but this time I get an
ERROR 503 - Service unavailable but looking at the status of the
Tomcat instances both instances are still OK, no-one is down. And it
stays throwing this error for as many refreshes i do.
Now, I open a new browser (B2)and do the same process as before,
as expected, Apache now gives me a SESSION_ID for Tomcat instance 2,
repeating the same refreshing process, the error is thrown again, but still at
the jk-status page, both instances are fine.
Without closing these windows, I make a new refresh try on B1 and
even though the jk-status says both Tomcat instances are OK, the error
is still thrown. I open a third one (B3), and Apache again, correctly
gives me a new SESSION_ID for Tomcat instance 1 and answers
correctly on the first call. But once again if i repeat the refreshing process, the
error is thrown again.
Note: Using a different resolution to always keep and eye on the
instances status and using a refresh rate of 1 second for status, both
servers always were OK.
So the main problem is that somehow when the session is replicated
to the same tomcat, Apache confuses and thinks it is not available, when
asking it through the jk-status it tells it is OK
I've been trying different configurations with both Apache and Tomcat,
but there must be something missing since I don't get it to work correctly
Thanks in advance for all your helping comments.
- @alphazygmaWhew... that was quite an answer... definitely is going to help him a lot. Yeah any n00b by now should know how to use google, but that's not the point in this forums, here we are to help each other. and wether you like it or not many of us deploy applications to tomcat and stumble on this. So dont try to be cool posting this kind of answers like google this or google that if you dont have an answer please dont comment you will appear to be more noobish than you aparently are.
Well enough talking.
I found the following useful: (it comes in the server.xml of the tomcat configuration)
<!-- You should set jvmRoute to support load-balancing via JK/JK2 ie :
<Engine name="Standalone" defaultHost="localhost" debug="0" jvmRoute="jvm1">
-->
Enabling that entry on both machines should be enough.
Aparently the problem is not with apache. is with tomcat since it can't retain the session apache gives.
more information in the Tomcat help at:
http://tomcat.apache.org/tomcat-5.0-doc/balancer-howto.html#Using%20Apache%202%20with%20mod_proxy%20and%20mod_rewrite -
HTTP Session replication problem
Hi all,
After 3 days trying to make the http session replication work in my cluster is time to ask some help.
I´m trying to make a simple application (only a servlet) simulate a http session replication.
I´ve investigated all the possible problems that i encountered in google :
Here is my multicast tests :
SERVER 1
D:\>java -cp d:\bea\weblogic92\server\lib\weblogic.jar utils.MulticastTest -N SE
RVER1 -A 237.0.0.1 -p 12809
***** WARNING ***** WARNING ***** WARNING *****
Do NOT use the same multicast address as a running WLS cluster.
Starting test. Hit any key to abort
Using multicast address 237.0.0.1:12809
Will send messages under the name SERVER1 every 2 seconds
Will print warning every 600 seconds if no messages are received
I (SERVER1) sent message num 1
I (SERVER1) sent message num 2
Received message 2 from SERVER1
I (SERVER1) sent message num 3
Received message 3 from SERVER1
I (SERVER1) sent message num 4
Received message 4 from SERVER1
I (SERVER1) sent message num 5
Received message 5 from SERVER1
I (SERVER1) sent message num 6
Received message 6 from SERVER1
I (SERVER1) sent message num 7
Received message 7 from SERVER1
I (SERVER1) sent message num 8
Received message 8 from SERVER1
I (SERVER1) sent message num 9
Received message 9 from SERVER1
I (SERVER1) sent message num 10
Received message 10 from SERVER1
Received message 11 from SERVER1
I (SERVER1) sent message num 11
I (SERVER1) sent message num 12
Received message 12 from SERVER1
I (SERVER1) sent message num 13
Received message 13 from SERVER1
Received message 14 from SERVER1
I (SERVER1) sent message num 14
I (SERVER1) sent message num 15
Received message 15 from SERVER1
I (SERVER1) sent message num 16
Received message 16 from SERVER1
SERVER 2
D:\>java -cp d:\bea\weblogic92\server\lib\weblogic.jar utils.MulticastTest -N SE
RVER2 -A 237.0.0.1 -p 12809
***** WARNING ***** WARNING ***** WARNING *****
Do NOT use the same multicast address as a running WLS cluster.
Starting test. Hit any key to abort
Using multicast address 237.0.0.1:12809
Will send messages under the name SERVER2 every 2 seconds
Will print warning every 600 seconds if no messages are received
I (SERVER2) sent message num 1
I (SERVER2) sent message num 2
Received message 2 from SERVER2
I (SERVER2) sent message num 3
Received message 3 from SERVER2
I (SERVER2) sent message num 4
Received message 4 from SERVER2
I (SERVER2) sent message num 5
Received message 5 from SERVER2
I (SERVER2) sent message num 6
Received message 6 from SERVER2
I (SERVER2) sent message num 7
Received message 7 from SERVER2
I (SERVER2) sent message num 8
Received message 8 from SERVER2
I (SERVER2) sent message num 9
Received message 9 from SERVER2
I (SERVER2) sent message num 10
Received message 10 from SERVER2
I (SERVER2) sent message num 11
Received message 11 from SERVER2
I (SERVER2) sent message num 12
Received message 12 from SERVER2
Weblogic.XML descriptor
<session-descriptor>
<session-param>
<param-name>PersistentStoreType</param-name>
<param-value>replicated</param-value>
</session-param>
</session-descriptor>
CODE of the Servlet
HttpSession session = request.getSession();
String sessionIdentif = (String)session.getAttribute("SESSIONIDENTIF");
boolean boolNewSession = true;
if(sessionIdentif == null) {
session.setAttribute("SESSIONIDENTIF", "1234567890");
} else
boolNewSession = false;
As you can see the object that i put in session is a String, so Serializable....
All the requirements are validated (i think...) but it still not working ... i get the SESSION ID : WvHQMKzBh9T35BPhGJxyhQtGks5Q3qJmxnJwGn8mn7V24FM92cnh!949557342! NONE !1284141857480
And the NONE said that the session isn´t replicated.
Any idea what´s wrong with my try of getting http session replication working??
cheers,Hi,
Thanks for your help.
I´ve tried your application with your proxy application but still no work...
I´m getting :
####<13/Set/2010 15H59m BST> <Debug> <Replication> <DST01VS51> <VIACTT2> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1284389948055> <000000> <Creating primary 1678977133045201960>
####<13/Set/2010 15H59m BST> <Debug> <ReplicationDetails> <DST01VS51> <VIACTT2> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1284389948055> <000000> <Unable to create secondary for 1678977133045201960 on null>
####<13/Set/2010 15H59m BST> <Debug> <ReplicationDetails> <DST01VS51> <VIACTT2> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1284389948181> <000000> <Unable to create secondary for 1678977133045201960 on null>
In my early post i forgot to mention that i´m using an Apache 2.2 in the front-end with Weblogic 9.2 (cluster).
What is happening in this weblogic configuration so that this session replication don´t work.
cheers, -
In-memory http session replication problem
Hi All ,
I'm testing my cluster configuration with bea's example for session(http) replication,however
when my cluster runs in one machine everything works fine ,if I run managed server
from other host session replication does not occure.
(I hit the firs ManagedServer with my browser,create session and than hit directly
the second managed server)
I've made a test which show that multicast I've setup among hosts is available,so
this is not the case.
(bind multicast sockets from two hosts and than send some data to it to see if
both get the packag)
Info logs from managed server's console shows that everythings work fine when
startng the cluster - detects Peer Lost,and Peer Join.
My cluster addres was setup as ip1:port1,ip2:port2.
I will apricate any opinion, because we are stuck.
Vladislav
Hi All,
10x Sunna , I figured the problem which actually was a metter of blindness :-)
was that I did't make the request throught load-balancer and the coockies were
from different hosts,in view of browser they differs.
Sunna <[email protected]> wrote:
>Session replication uses IP sockets not multicast. Is there a firewall
>or something that could be blocking that? See:
>
>http://e-docs.bea.com/wls/docs81/cluster/features.html#1031598
-
Weblogic 7.0 sp1 cluster - session replication problem
Hi,
I have installed Weblogic 7.0 sp2 on Win NT. To test clustering
feature, I have installed one admin server and added two managed
servers. All are running on same box. I could deploy web application
to the cluster. Connection pools and every other resource is working
well with the cluster. However I couldn't get session replication to
work. I have modified web app descriptor, and set 'persistent store
type' to "replicated".
I accessed application from one managed server, in the middle of
session I modified the port number in the URL to point to other
managed server. It looks like second managed server has no idea of
that session, my app fails because of this.
Could you please help me out in this, Do I need to do any thing in
addition to the above. I couldn't find much in the BEA manual..
Thanks
Rao
For Web application like servlets/JSP, it is better to put one web server as proxy
plugin before your two managed servers and access your application through web
proxy. (You need set session as in-memory replicated either in weblogic.xml or
by console editor). Otherwise, you need record the session cookie from the first
serevr and send the cookie to the second server (not sure if it works). To access
EJB/JMS, use cluster URL like t3://server1:port1,server2:port2.
[email protected] (Rao) wrote:
>Hi,
>
>I have installed Weblogic 7.0 sp2 on Win NT. To test clustering
>feature, I have installed one admin server and added two managed
>servers. All are running on same box. I could deploy web application
>to the cluster. Connection pools and every other resource is working
>well with the cluster. However I couldn't get session replication to
>work. I have modified web app descriptor, and set 'persistent store
>type' to "replicated".
>
>I accessed application from one managed server, in the middle of
>session I modified the port number in the URL to point to other
>managed server. It looks like second managed server has no idea of
>that session, my app fails because of this.
>
>
>Could you please help me out in this, Do I need to do any thing in
>addition to the above. I couldn't find much in the BEA manual..
>
>
>Thanks
>Rao
-
Session in-memory replication problem
Hi,
I am running into some cluster HttpSession replication problems. Here is
the scenario where replication fails (all servers mentioned here are a
part of a cluster).
1a - 2 Weblogic servers (A&B) are running - no users logged in,
2a - user logs in and a new session in server A is created.
3a - after several interactions, server A is killed.
4a - after user makes susequent request, Weblogic correctly fails over
to server B
Problem: Not entire session data is replicated. The authentication info
seems to
be replicated correctly but there are some collections in the session of
server A
that did not make it to the session in server B.
The interesting part is this: If there is only one server A running to
begin with and a user
interacts with it for a while and only then server B is started, when
after server B starts up
server A dies - the entire session (which is exactly the same as in the
failing scenario) is
corretly replicated in B, including collections that were missing in the
failing scenario.
How can this be possible ????
Thanks for any info on this one - it really puzzles me.
Andrew
Yes, you are on the right track. Everytime you modify the object you should call
putValue. We will make it more clear in the docs.
- Prasad
Andrzej Porebski wrote:
> Everything is Serilizable. I get no exceptions. I did however read some old
> posts regarding
> session replication and I hope I found an answer. It basically seems to boil
> down to what
> triggers session sync-up between servers. In my case , I store an object into
> session and
> later on manipulate that object directly wihotu session involvment and the
> results of those manipulations
> are not replicated - no wonder if HttpSession's putValue method is the only
> trigger.
> Am i on the right track here?
>
> -Andrew
>
> Prasad Peddada wrote:
>
> > Do you have non serializable data by any chance?
> >
> > - Prasad
> >
> > Andrzej Porebski wrote:
> >
> > > Hi,
> > > I am running into some cluster HttpSession replication problems. Here is
> > > the scenario where replication fails (all servers mentioned here are a
> > > part of a cluster).
> > > 1a - 2 Weblogic servers (A&B) are running - no users logged in,
> > > 2a - user logs in and a new session in server A is created.
> > > 3a - after several interactions, server A is killed.
> > > 4a - after user makes susequent request, Weblogic correctly fails over
> > > to server B
> > >
> > > Problem: Not entire session data is replicated. The authentication info
> > > seems to
> > > be replicated correctly but there are some collections in the session of
> > > server A
> > > that did not make it to the session in server B.
> > >
> > > The interesting part is this: If there is only one server A running to
> > > begin with and a user
> > > interacts with it for a while and only then server B is started, when
> > > after server B starts up
> > > server A dies - the entire session (which is exactly the same as in the
> > > failing scenario) is
> > > corretly replicated in B, including collections that were missing in the
> > > failing scenario.
> > >
> > > How can this be possible ????
> > >
> > > Thanks for any info on this one - it really puzzles me.
> > >
> > > Andrew
> >
> > --
> > Cheers
> >
> > - Prasad
>
> --
> -------------------------------------------------------------
> Andrzej Porebski
> Sailfish Systems, Ltd. Phone 1 + (212) 607-3061
> 44 Wall Street, 17th floor Fax: 1 + (212) 607-3075
> New York, NY 10005
> -------------------------------------------------------------
-
Session Replication doesn't work when using a custom Unicast Channel
Hello!
After configure a WLS Cluster for an WebApp with session replication support enabled I faced some issues with cluster configuration.
My LAB env used for this configurations is:
One Solaris 10 SPARC box.
-- One WLS 11g (10.3.6) domain with:
---- 4 Managed servers:
---- Admin server
---- server-1
---- server-2
---- Proxy Server (HttpClusterServlet)
--- 1 Cluster composed by:
---- server-1
---- server-2In that setup I noticed if I define a custom network channel for servers ( server>protocols>channels ) in the cluster and set Cluster Messaging Mode as Unicast* in the Cluster config ( Cluster>Configuration>Messaging>Messaging Mode ), so the session state replication does not work.
When I enable the cluster replication debug for managed servers the following messages appears:
<> <> <1358966729933> <BEA-000000> <[roid:-1772481434088297851] Creating primary for application key /webapp>
####<Jan 23, 2013 4:45:29 PM BRST> <Debug> <ReplicationDetails> <de25503> <server-1> <[ACTIVE] ExecuteThread: '5' for queue: > 'weblogic.kernel.Default (self-tuning)'> <<ano
nymous>> <> <> <1358966729958> <BEA-000000> *<Has secondary servers? false>*
####<Jan 23, 2013 4:45:29 PM BRST> <Debug> <ReplicationDetails> <de25503> <server-1> <[ACTIVE] ExecuteThread: '5' for queue: >'weblogic.kernel.Default (self-tuning)'> <<ano
nymous>> <> <> <1358966729959> <BEA-000000> *<Current secondary server? null>*
####<Jan 23, 2013 4:45:29 PM BRST> <Debug> <Replication> <de25503> <server-1> <[ACTIVE] ExecuteThread: '5' for queue: >'weblogic.kernel.Default (self-tuning)'> <<anonymous>
<> <> <1358966729959> <BEA-000000> <[roid:-1772481434088297851] Unable to create secondary on null>
####<Jan 23, 2013 4:45:31 PM BRST> <Debug> <ReplicationDetails> <de25503> <server-1> <[ACTIVE] ExecuteThread: '5' for queue: >'weblogic.kernel.Default (self-tuning)'> After eliminate all possible issues with my webapp (serialization, weblogic descriptor configuration, etc) and try many cluster network configurations I noticed that this problem only occurs when I use Unicast for Cluster's Messaging.
At the end of the day I really would like to understand why the session replication only works for Cluster's Messaging using Multicast mode. I read a lot the WLS docs (specifically the cluster/network topics) [1][2], but I can't find an official explanation about this.
Can someone help me understand this behavior?
Many thanks.
[1] http://docs.oracle.com/cd/E15523_01/web.1111/e13701/network.htm
[2] http://docs.oracle.com/cd/E15523_01/web.1111/e13709/setup.htmI have Fluxbox started with Slim and .xinitrc. Dbus works only with:
exec ck-launch-session startfluxbox
you need run Openbox with ck-launch-session:
exec ck-launch-session openbox-session
Bye!! -
Session Replication and Session Timeout -- Urgent
WLS -4.5.1 SP 11
OS - both NT and Sol
HI All
The session does not seems to timeout when running the Weblogic servers in
clustered mode with in-memory session replication on.
This problem seems to be there in version5.1 too , as per another post , it
seems to be solved in WLS5.1 sp 8
Could anyone pls confirm in which patch in WLS 4.5.1 is the problem
addressed . I'm using patch 11 and am getting the problem.
Thanks in advance..
-Surya
Try SP13 and if the problem persists, contact [email protected]
-K
Surya B Maithani wrote:
> WLS -4.5.1 SP 11
> OS - both NT and Sol
>
> HI All
>
> The session does not seems to timeout when running the Weblogic servers in
> clustered mode with in-memory session replication on.
> This problem seems to be there in version5.1 too , as per another post , it
> seems to be solved in WLS5.1 sp 8
>
> Could anyone pls confirm in which patch in WLS 4.5.1 is the problem
> addressed . I'm using patch 11 and am getting the problem.
>
> Thanks in advance..
>
> -Surya
-
Failover is work, but Session replication doesn't work!
Dear all,
My Cluster can failover, but can't session replicate....
I start up the 2 WLS 6.0 and the Web Server, then I visit
http://web_server_ip/myWebApp/SessionServlet serveral times, then the
counter variable in the session raise up, then I down the "target" WLS, then
I try http://web_server_ip/myWebApp/SessionServlet now, I can call but the
counter restart.... so the session seems not yet replicated. what I can
do...?!
My Setup: I setup a Netscape Web Server 3.6.3 as the proxy using libproxy.so
with the cluster setting, and use 2 WLS 6.0 (both are running in 7001,7002)
as the Application Server Cluster (WLCluster). one WLS is on Unix Machine
and the other in on a NT. I set the 2 WLSs: the Primary Group is
"WL_rep_group1", and set the secondary is "WL_rep_group2".
Deployment: I deploy the application "myWebApp" (.war) on the servers unix
and nt, adn also deploy to the cluster WLCluster.
I deploy the examplesWebApp to my created domain "demo", and modify the
weblogic.xml:
<weblogic-web-app>
<session-descriptor>
<session-param>
<param-name>PersistentStoreType</param-name>
<param-value>replicated</param-value>
</session-param>
</session-descriptor>
<jsp-descriptor>
<jsp-param>
<param-name>
pageCheckSeconds
</param-name>
<param-value>
1
</param-value>
</jsp-param>
<jsp-param>
<param-name>
verbose
</param-name>
<param-value>
true
</param-value>
</jsp-param>
</jsp-descriptor>
</weblogic-web-app>
so ... anything I did wrong, so the WLS can't do Session replication??!!
Please Help or Comment!
Thanks in advance!
with thanks,
Alex Wong
Dear Vinod and Kevin,
Some more information that I think it may help.
First, I want to correct 1 point in my previous message, the Replication
Group is "WLRepGroup1" and the Preferred Secondary Group is "WLRepGroup2"
for the 2 machine WLSs.
Second, I found that the Multicast Communication is not functioning becoz
the switch of my office block the 224.0.0.1's communication, so now I added
a hub for this 2 machine, as a result the multicast is wokring... at least
pass the java utils.MulticastTest....
Thrid, after the mutlicast work, I try the SessionServlet, it is working at
beginning... but after some more clicks, one server will cause the following
error (this time crash on x.y.z.b--NT machine)....
-------- (a long list, the IPs are replaced: x.y.z.a UNIX machine, x.y.z.b
NT machine, x.y.z.c My PC)
Screen caption on demo>Servers>wlserver2 (monitoring> cluster)
Unexpected Error
Connected to x.y.z.a:7001 Active Domain: demo Jun 11, 2001 5:06:23 PM
GMT+08:00
An unexpected error was encountered in processing your request.
Exception
java.lang.NullPointerException
<>
Current Date
Mon Jun 11 17:06:23 GMT+08:00 2001
Console Release Build
6.0 Service Pack 2
Console Build
6.0 Service Pack 2 05/24/2001 11:55:28 #117037
Server Release Build
6.0 Service Pack 2
Server Build
6.0 Service Pack 2 05/24/2001 11:55:28 #117037
All Server Product Versions
WebLogic Server Build: 6.0 Service Pack 2 05/24/2001 11:55:28 #117037
WebLogic XML Module: 6.0 Service Pack 2 05/24/2001 12:34:27 #117037
Request Info
Protocol: HTTP/1.1
ServerName: x.y.z.a
ServerPort: 7001
Secure: false
ContextPath: /console
ServletPath: /panels/mbean/Server.jsp
QueryString:
mbean=demo%3AName%3Dwlserver2%2CType%3DServer
PathInfo: null
PathTranslated: null
RequestURI: /console/panels/mbean/Server.jsp
AuthType: null
ContentType: null
CharacterEncoding: null
Locale: zh_TW
Method: GET
Session:
weblogic.servlet.internal.session.MemorySessionData@661950
RequestedSessionId:
OyQxOz4LG0WnLjufYcZDkIGGXIVAhHNASdBLUs2seZnvoQ4RXekX/console
RequestedSessionIdFromCookie: true
RequestedSessionIdFromURL: false
UserPrincipal: system
RemoteUser: system
RemoteAddr: x.y.z.c
RemoteHost: x.y.z.c
Parameters
mbean = demo:Name=wlserver2,Type=Server
Attributes
console.original./console/panels/mbean/Server.jsp.ContextPath = /console
console.original./console/panels/mbean/Server.jsp.Method = GET
console.original./console/panels/mbean/Server.jsp.QueryString =
mbean=demo%3AName%3Dwlserver2%2CType%3DServer
console.original./console/panels/mbean/Server.jsp.RemoteUser = system
console.original./console/panels/mbean/Server.jsp.RequestURI =
/console/panels/mbean/Server.jsp
console.original./console/panels/mbean/Server.jsp.ServletPath =
/panels/mbean/Server.jsp
console.preferences.ContextKey =
/panels/mbean/Server.jsp
javax.servlet.include.context_path = /console
javax.servlet.include.request_uri =
/console/common/requestinfo.jsp
javax.servlet.include.servlet_path =
/common/requestinfo.jsp
javax.servlet.jsp.jspException =
java.lang.NullPointerException
weblogic.httpd.user = system
weblogic.management.console.tags.ContentTag =
java.lang.Object@545f89
weblogic.management.console.tags.HeaderTag =
java.lang.Object@4c5c6c
weblogic.management.console.tags.TabbedDialogTag =
java.lang.Object@7eafc
Headers
Accept = image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Accept-Encoding = gzip, deflate
Accept-Language = zh-tw
Connection = Keep-Alive
Cookie =
JSESSIONID=OyQxOz4LG0WnLjufYcZDkIGGXIVAhHNASdBLUs2seZnvoQ4RXekX!143710744761
7668081!-896735123!7001!7002!NONE
Host = x.y.z.a:7001
User-Agent = Mozilla/4.0 (compatible; MSIE 5.01; Windows 98)
BrowserInfo
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows 98)
IE: true
Netscape: false
Supported: true
JavscriptHrefs: false
TableCellClick: true
DocumentReloadedOnResize: false
DropdownStretchable: true
CellSpacingBlank: false
EmptyCellBlank: false
ImgOnclickSupported: true
TableBorderFancy: true
PartialToWideTables: false
Server System Properties
bea.home = /u0/weblogic
file.encoding = ISO8859-1
file.encoding.pkg = sun.io
file.separator = /
java.awt.fonts =
java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment
java.awt.printerjob = sun.awt.motif.PSPrinterJob
java.class.path =
/u0/weblogic/wlserver6.0:/u0/weblogic/wlserver6.0/lib/weblogic_sp.jar:/u0/we
blogic/wlserver6.0/lib/weblogic.jar:/opt/oracle/product/8.1.6/jdbc/lib/class
es12.zip
java.class.version = 47.0
java.ext.dirs = /u0/weblogic/jdk130/jre/lib/ext
java.home = /u0/weblogic/jdk130/jre
java.io.tmpdir = /var/tmp/
java.library.path =
/u0/weblogic/jdk130/jre/bin/../lib/sparc/hotspot:/u0/weblogic/jdk130/jre/bin
/../lib/sparc::/lib:/usr/local/easysoft/oob/client:/usr/local/easysoft/lib:/
u0/weblogic/wlserver6.0/lib/solaris:/u0/weblogic/wlserver6.0/lib/solaris/oci
816_8:/usr/lib
java.naming.factory.initial =
weblogic.jndi.WLInitialContextFactory
java.naming.factory.url.pkgs = weblogic.jndi.factories
java.protocol.handler.pkgs =
weblogic.utils|weblogic.utils|weblogic.net|weblogic.management|weblogic.net|
weblogic.net|weblogic.utils
java.runtime.name = Java(TM) 2 Runtime Environment,
Standard Edition
java.runtime.version = 1.3.0
java.security.policy =
=/u0/weblogic/wlserver6.0/lib/weblogic.policy
java.specification.name = Java Platform API Specification
java.specification.vendor = Sun Microsystems Inc.
java.specification.version = 1.3
java.vendor = Sun Microsystems Inc.
java.vendor.url = http://java.sun.com/
java.vendor.url.bug =
http://java.sun.com/cgi-bin/bugreport.cgi
java.version = 1.3.0
java.vm.info = mixed mode
java.vm.name = Java HotSpot(TM) Client VM
java.vm.specification.name = Java Virtual Machine
Specification
java.vm.specification.vendor = Sun Microsystems Inc.
java.vm.specification.version = 1.0
java.vm.vendor = Sun Microsystems Inc.
java.vm.version = 1.3.0
javax.rmi.CORBA.PortableRemoteObjectClass =
weblogic.iiop.PortableRemoteObjectDelegateImpl
javax.rmi.CORBA.UtilClass = weblogic.iiop.UtilDelegateImpl
javax.xml.parsers.DocumentBuilderFactory =
weblogic.xml.jaxp.RegistryDocumentBuilderFactory
javax.xml.parsers.SAXParserFactory =
weblogic.xml.jaxp.RegistrySAXParserFactory
jmx.implementation.name = JMX RI
jmx.implementation.vendor = Sun Microsystems
jmx.implementation.version = 1.0
jmx.specification.name = Java Management Extensions
jmx.specification.vendor = Sun Microsystems
jmx.specification.version = 1.0 Final Release
line.separator =
os.arch = sparc
os.name = SunOS
os.version = 5.6
path.separator = :
sun.boot.class.path =
/u0/weblogic/jdk130/jre/lib/rt.jar:/u0/weblogic/jdk130/jre/lib/i18n.jar:/u0/
weblogic/jdk130/jre/lib/sunrsasign.jar:/u0/weblogic/jdk130/jre/classes
sun.boot.library.path =
/u0/weblogic/jdk130/jre/lib/sparc
sun.cpu.endian = big
sun.cpu.isalist = sparcv8plus+vis sparcv8plus
sparcv8 sparcv8-fsmuld sparcv7 sparc
sun.io.unicode.encoding = UnicodeBig
user.dir = /u0/weblogic/wlserver6.0
user.home = /
user.language = en
user.name = root
user.region = US
user.timezone = Asia/Hong_Kong
weblogic.Domain = demo
weblogic.Name = wlserver1
weblogic.security.jaas.Configuration =
weblogic.security.internal.ServerConfig
weblogic.security.jaas.Policy =
/u0/weblogic/wlserver6.0/lib/Server.policy
---------- End of the message -----------
any comment?? is that I deploy on wlserver1, wlserver2, WLCluster cause
error??!! anything I did wrong??!
please help!! or Comment
with thanks,
Alex Wong
"Alex Wong" <[email protected]> ¼¶¼g©ó¶l¥ó
news:[email protected]...
> Hi Vinod and Kevin,
>
> Thanks Vinod first, and after I try the session.getClass(), I get the
> following output
> class weblogic.servlet.internal.session.ReplicatedSessionData
> I think that's means I am using "replicated" already, rite?!
>
> About the License, I cat the license.bea, there is a license to the
> "In-memory Replication - Servlet" and "In-memory Replication - EJB",
however
> it is a eval license but seems not yet expired, so I don't think that is
the
> problem, rite?
>
> And a quick question, you tell me "your configuration looks ok" means the
> H/W configuration, or the WLS configuration??!!
> Maybe I tell you more about my WLS configuration, so that, you can
> determinate where I go wrong. (thanks)
>
>
> Vinod and Kevin
> (Kevin, I am Alex Wong from ASL, if you have any comment, you can simply
> reply my personal email, thx)
>
> Steps I did to create the domain, WLS and Cluster and deploy the .war
> --- on Unix ---
> I create a demo domain and wlserver1 using port 7001 and 7002 by the
> installation program (ip x.y.z.a)
> --- on NT ---
> I create a demo domain and wlserver2 using port 7001 and 7002 by the
> installation program (ip x.y.z.b)
>
> --- on Unix ---
> start the wlserver1 with startWebLogic.sh
>
> --- My PC ---
> go http://x.y.z.a:7001/console
>
> create one more server named "wlserver2" using port 7001 and 7002
> create the cluster named "WLCluster" and fill the the cluster ip
> "x.y.z.a:7001,x.y.z.b:7001"
> fill the multi-cast ip 224.0.0.1
> add the "wlserver1" and "wlserver2" to the "WLCluster"
> stop the unix WLS
> start the unix WLS with startWebLogic.sh
>
> --- on NT ---
> start the WLS with startManagedWebLogic.sh wlserver2 http://x.y.z.a:7001
>
> --- on Unix ---
> install the NES 3.6.3 and create a WEB server instance and modify the
> obj.conf
>
> DETAIL
> ----- start of the obj.conf -----
> Init fn="load-modules" funcs="wl-proxy,wl-init"
> shlib="/opt/nes/plugins/weblogic/libproxy.so"
> Init fn="wl-init"
> .
> .
> .
> <Object name="weblogic" ppath="*">
> Service fn=wl-proxy \
> WebLogicCluster="x.y.z.a:7001,x.y.z.b:7001"
> </Object>
>
> <Object name=default>
> *NameTrans ...
> *NameTrans ...
> *NameTrans ...
> *NameTrans fn=document-root root="/opt/nes/docs"
> Service method="(GET|HEAD|POST|PUT)" type=text/jsp fn=wl-proxy \
> WebLogicCluster="x.y.z.a:7001,x.y.z.b:7001"
> .
> .
> .
> </Object>
>
> <Object name=cgi>
> .
> .
> .
> </Object>
> ----- End of the obj.conf ----- (I suppose will redirect all HTTP request
to
> WLS from NES)
>
> --- My PC ---
> go http://x.y.z.a:7001/console
> assign the DefaultWebApp_wlserver1 to wlserver1
> assign the DefaultWebApp_wlserver2 to wlserver2
> assign the console the wlserver1 only
> assign the certificate to wlserver1, wlserver2, WLCluster
> go SERVER-wlserver1 assign "WLRepGroup1" to Replication Group and
Preferred
> Secondary Group
> go SERVER-wlserver2 assign "WLRepGroup1" to Replication Group and
Preferred
> Secondary Group
>
> --- on Unix ---
> go to ./config/examples/applications/examplesWebApp/WEB-INF
> modify the weblogic.xml
> go to ./config/examples/applications/examplesWebApp
> jar cvf myWebApp.war *
> copy the myWebApp.war to ./config/demo/applications/.
> and ftp myWebApp.war ro (NT)./config/demo/applicaitons/.
>
> --- My PC ---
> And then now, I can visit http://x.y.z.a:7001/console
> now I can configuration the myWebApp.
> assign the myWebApp to wlserver1,wlserver2,WLCluster
>
> --- on Unix ---
> stop the WLS and start with startWebLogic.sh
>
> --- on NT ---
> stop the WLS and start with startManagedWebLogic.sh wlserevr2
> http://x.y.z.a:7001
>
> --- My PC ---
> visit http://x.y.z.a/myWebApp/SessionServlet (this time no port 7001,
becoz
> I want to use the NES web server to proxy the HTTP request)
>
> Finally... I can failover the SessionServlet, SnoopServlet and all the
other
> html, jsp, servlet, but seems can't load-balancing and Session
Persistence.
>
> Is that anything I did wrong, please comment!
>
>
> with thanks,
>
> Alex Wong
>
>
>
> "Vinod Mehra" <[email protected]> ¼¶¼g©ó¶l¥ó
> news:[email protected]...
> > Your configuration looks ok but I guess somehow your clustering is not
> setup
> > properly. Check if all the servers are listeniong on the same port and
> part
> > of
> > the same cluster. Also check if you have clustering license.
> >
> > Make sure your sessions are of type : "replicated". For that print
> > the value of session.getClass(), the name will give you an idea. Check
> > your logs if you got any error message.
> >
> > --Vinod.
> >
> >
> > "Alex Wong" <[email protected]> wrote in message
> > news:[email protected]...
> > > Dear all,
> > >
> > > My Cluster can failover, but can't session replicate....
> > >
> > > I start up the 2 WLS 6.0 and the Web Server, then I visit
> > > http://web_server_ip/myWebApp/SessionServlet serveral times, then the
> > > counter variable in the session raise up, then I down the "target"
WLS,
> > then
> > > I try http://web_server_ip/myWebApp/SessionServlet now, I can call but
> the
> > > counter restart.... so the session seems not yet replicated. what I
can
> > > do...?!
> > >
> > > My Setup: I setup a Netscape Web Server 3.6.3 as the proxy using
> > libproxy.so
> > > with the cluster setting, and use 2 WLS 6.0 (both are running in
> > 7001,7002)
> > > as the Application Server Cluster (WLCluster). one WLS is on Unix
> Machine
> > > and the other in on a NT. I set the 2 WLSs: the Primary Group is
> > > "WL_rep_group1", and set the secondary is "WL_rep_group2".
> > >
> > > Deployment: I deploy the application "myWebApp" (.war) on the servers
> unix
> > > and nt, adn also deploy to the cluster WLCluster.
> > >
> > > I deploy the examplesWebApp to my created domain "demo", and modify
the
> > > weblogic.xml:
> > > -------------------
> > > <weblogic-web-app>
> > >
> > > <session-descriptor>
> > > <session-param>
> > > <param-name>PersistentStoreType</param-name>
> > > <param-value>replicated</param-value>
> > > </session-param>
> > > </session-descriptor>
> > >
> > > <jsp-descriptor>
> > > <jsp-param>
> > > <param-name>
> > > pageCheckSeconds
> > > </param-name>
> > > <param-value>
> > > 1
> > > </param-value>
> > > </jsp-param>
> > > <jsp-param>
> > > <param-name>
> > > verbose
> > > </param-name>
> > > <param-value>
> > > true
> > > </param-value>
> > > </jsp-param>
> > > </jsp-descriptor>
> > >
> > > </weblogic-web-app>
> > > ---------------------
> > >
> > > so ... anything I did wrong, so the WLS can't do Session
replication??!!
> > >
> > >
> > > Please Help or Comment!
> > >
> > > Thanks in advance!
> > >
> > > with thanks,
> > >
> > > Alex Wong
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> >
> >
>
>
-
Strange errors in session replication
I get following errors in session replication :
weblogic.utils.NestedError: Tried to update secondary, but it thought
it was the primary
- with nested exception:
[weblogic.cluster.replication.BadStatusException: updateSecondary
found
-148099416498695151 but it is not the primary]
Using Weblogic451, SP7 on Solaris 2.6.
Any clues ??
-Kuntal Shah.
Hello,
> > Alteon is set to use "permanent hashing" to route the client into
> > the same server in each request.
>
> How do you expect the switch to know about the secondary node
> if the primary fails? This information is stored in the URL and
> parsed by a proxy.
It took a couple of days and fair amount of documentation to understand
the behaviour of the web cluster...;-)
We changed the configuration to include two proxy servers between the
Alteon switch and web cluster, but we ended up with a different problem.
The setup at the moment is:
- Sun Solaris 2.6, native threads, JDK 1.1.7B_008
- two WLS 4.51 SP7 running in cluster using in-memory replication
- only servlets deployed in the servers
- Two WLS proxies between the webcluster and alteon switch. Both proxies are
configured to use both of the web servers. they do not belong to the web
cluster.
The proxies are configured in the following way:
weblogic.httpd.session.enable=true
weblogic.httpd.session.timeoutSecs=1800
weblogic.httpd.session.invalidationIntervalSecs=600
weblogic.httpd.session.URLRewriting.enable=true
weblogic.httpd.session.cookies.enable=true
weblogic.httpd.session.cookie.maxAgeSecs=-1
weblogic.httpd.session.cookie.domain=some.domain.name
weblogic.httpd.register.cluster=weblogic.servlet.internal.HttpClusterServlet
weblogic.httpd.initArgs.cluster=defaultServers=x.y.z.a1:9001|x.y.z.a2:9001
weblogic.httpd.defaultServlet=cluster
weblogic.allow.execute.weblogic.servlet=everyone
Probably most of the configuration parameters are not necessary, can
somebody tell me which are
and which are not?
The servers in the web cluster are configured in the following way:
The following parameters are in the start-up script of the servers:
-Dweblogic.cluster.enable=true \
-Dweblogic.system.name=somehost \
-Dweblogic.cluster.name=someclustercluster \
-Dweblogic.cluster.multicastAddress=237.0.0.1 \
-Dweblogic.system.bindAddr=x.y.z.a1 \
-Dweblogic.system.nativeIO.enable=true \
-Dweblogic.debug.replication=1 \
And the following are in the cluster-wide properties file:
weblogic.httpd.clustering.enable=true
weblogic.httpd.session.persistence=true
weblogic.httpd.session.persistentStoreType=replicated
weblogic.httpd.session.enable=true
weblogic.httpd.session.timeoutSecs=1800
weblogic.httpd.session.invalidationIntervalSecs=600
weblogic.httpd.session.URLRewriting.enable=true
weblogic.httpd.session.cookies.enable=true
weblogic.httpd.session.cookie.domain=some.domain.name
The IP-address of the Alteon box in front of the proxies is bound to
'some.domain.name'.
The first problem seems to be very poor performance. The overall throughtput
is vveeeerrryyy slow, comparing
to the configuration where there is no proxy sitting in front of the
cluster. Furthermore, at some stage the proxy
starts to print out error messages: java.lang.InvalidStateException: broken
pipe [...] . After those exceptions no
client get any response anymore.
Could someone give some hints what are the most essential items in the
weblogic.properties -file for the
proxy server? Also, if someone has some experience from setting up a
configuration similar to ours: one hardware
load-balancer in front of two proxies, and eventually two web servers
running in a web cluster.
Cheers,
Jarno.
-
Hi,
CFMX 7.01 MULTISERVER:
I am facing a problem, session are not replicating on two CF
instances on same server. Below is Jrun log file error detail
30/05 17:18:10 error Setup of session replication failed.
[1]java.rmi.RemoteException: The web application
'cfusion.ear#cfusion.war' could not be found to accept sessions for
replication.
at
jrun.servlet.session.SessionReplicationService.replicate(SessionReplicationService.java:8 0)
at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown
Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native
Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown
Source)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown
Source)
at java.lang.Thread.run(Unknown Source)
CFMX 7.01 MULTISERVER:
My set-up, installed as multiserver. create new instance from
CF Admin. Cluster them from Jrun Admin. I followed almost all
instructions from live doc, and also help from other blogs.
So far i could not findout why session can not replicate on
same machine.
Is any body have idea about above error.
Thanks for your help in-advanceIn my config.xml, I have:
<cluster>
<name>MyCluster</name>
<cluster-address/>
<default-load-algorithm>round-robin</default-load-algorithm>
<cluster-messaging-mode>unicast</cluster-messaging-mode>
<frontend-host>192.168.6.6</frontend-host>
<frontend-http-port>80</frontend-http-port>
<frontend-https-port>443</frontend-https-port>
</cluster>
I already posted my weblogic.xml -
Clustering/Session Replication
Hi,
I know that's a fairly basic question, but I just want to make sure I am not missing anything here.
We have an application which runs on a cluster of WebLogics and the user sometimes is requested to sign in again (it seems like it hit another instance and the session is not there).
The admins from Weblogic say there is NO WAY to disable Session Replication when running Weblogic in a cluster, which makes total sense. They say, however, that if the application doesn't serialize its session, then Weblogic can't handle the serialization. In short, they say it's an application issue.
The developers say the application is written properly, and that the problem is in Weblogic's side.
Although I am still a developer (for my own projects), my role here doesn't allow me to look into the code, how can I show the developers that WebLogic is setup correctly and that they need to fix their code?
RegardsInformation about session replication can be found here: http://docs.oracle.com/cd/E21764_01/web.1111/e13709/failover.htm#i1024620
it contains a section 'Requirements for HTTP Session State Replication' that might be helpful to you.
Also important to note is, how the load balancer handles session binding and the WebLogic cookie
http://docs.oracle.com/cd/E21764_01/web.1111/e13709/load_balancing.htm#i1026939 -
Http session replication fails in cluster
Hello everybody.
I have some problems with HTTP session replication in WebLlogic cluster environment. I have a cluster with 2 nodes and application deployed there. Application is configured with:
<session-param>
<param-name>PersistentStoreType</param-name>
<param-value>replicated</param-value>
</session-param>
in weblogic.xml
WebLogic plug-in for Apache webserver is configured properly as described in documentation.
But when I try to make experiment to enter the application, make some activities, look in console where I was redirected by apache proxy and manually shut down the node where request was sent, I loose my HTTP session with all data there (all the beans stored in session are Serializable). Replication doesn't work correctly. May be I've missed something in configuration? How can I configure my application to provide correctness session replication?
Thanks for advice.
ThanksThanks for response!
I'm using WebLogic 8.1 SP 4 and configured Apache proxy as described in documentation for load balancing. The only section I have in httpd.conf is next:
<Location /HTTPClnt>
SetHandler weblogic-handler
</Location>
<IfModule mod_weblogic.c>
WebLogicCluster serv1:7541,serv2:7541
MatchExpression *.*
Debug ON
WLLogFile /www/tmp/global_proxy.log
WLTempDir "/www/tmp"
DebugConfigInfo On
KeepAliveEnabled ON
KeepAliveSecs 15
</IfModule>
<Location /myApp>
SetHandler weblogic-handler
WebLogicCluster serv1:7541,serv2:7541
</Location>and the string to include weblogic proxy module for apache:
LoadModule weblogic_module modules/mod_wl_20.soI've configured CookiesEnabled=true in weblogic.xml, but it didn't help. About session specification in httpd.conf - where can I read about that? I've just configured apache according to manual from here:
[url http://e-docs.bea.com/wls/docs92/plugins/apache.html]http://e-docs.bea.com/wls/docs92/plugins/apache.html
Thanks -
WS7 cluster session replication
Now that my WS7 cluster is up and running, I'm attempting to deploy a simple JSF webapp that incorporates session replication between the nodes in my cluster.
I've followed the instructions in the WS7 admin guide to enable session replication, and I've added the following to my sun-web.xml deployment descriptor:
<session-config>
<session-manager persistence-type="replicated"/>
</session-config>The first problem I discovered was that my JSF managed bean was not serializable, so I fixed that. Now, however, when I load the initial page in my app, I am getting an NPE that looks like it is coming from within the WS7 session replication code:
[23/Dec/2009:08:46:51] warning ( 3692): for host 172.16.2.47 trying to GET /sessionTest/index.jsf while trying to GET /sessionTest/, service-j2ee reports: executePhase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@2de69e99) threw exception
javax.faces.FacesException
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:135)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:398)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:255)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
at com.sun.web.replication.session.SessionLockingStandardPipeline.invoke(SessionLockingStandardPipeline.java:71)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:187)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
at com.sun.webserver.connector.nsapi.NSAPIProcessor.service(NSAPIProcessor.java:160)
Caused by: ClientAbortException: java.io.IOException: WEB8001: Write failed
at org.apache.coyote.tomcat5.OutputBuffer.realWriteBytes(OutputBuffer.java:385)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:404)
at org.apache.coyote.tomcat5.OutputBuffer.doFlush(OutputBuffer.java:334)
at org.apache.coyote.tomcat5.OutputBuffer.flush(OutputBuffer.java:313)
at org.apache.coyote.tomcat5.CoyoteResponse.flushBuffer(CoyoteResponse.java:622)
at com.sun.webserver.connector.nsapi.NSAPIResponse.flushBuffer(NSAPIResponse.java:127)
at org.apache.coyote.tomcat5.CoyoteResponseFacade.flushBuffer(CoyoteResponseFacade.java:291)
at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:203)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
... 14 more
Caused by: java.io.IOException: WEB8001: Write failed
at com.sun.webserver.connector.nsapi.NSAPIResponseStream.doWrite(NSAPIResponseStream.java:61)
at org.apache.coyote.Response.doWrite(Response.java:575)
at org.apache.coyote.tomcat5.OutputBuffer.realWriteBytes(OutputBuffer.java:380)
... 22 more
[23/Dec/2009:08:46:51] warning ( 3692): for host 172.16.2.47 trying to GET /sessionTest/index.jsf while trying to GET /sessionTest/, service-j2ee reports: REPL0080: Received exception while reading session from store [{0}]
java.lang.NullPointerException
at com.sun.web.replication.session.LWSFPersistentManager.doRead(LWSFPersistentManager.java:162)
at com.sun.web.replication.session.LWSFValve.invoke(LWSFValve.java:31)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
at com.sun.web.replication.session.SessionLockingStandardPipeline.invoke(SessionLockingStandardPipeline.java:71)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:187)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
at com.sun.webserver.connector.nsapi.NSAPIProcessor.service(NSAPIProcessor.java:160)I thought that perhaps once the session was created, I would stop seeing this error. It isn't exactly the same, but I am still seeing an NPE even after the session has been created:
[23/Dec/2009:08:47:33] warning ( 3692): for host 172.16.2.47 trying to POST /sessionTest/index.jsf, service-j2ee reports: REPL0080: Received exception while reading session from store [{0}]
java.lang.NullPointerException
at com.sun.web.replication.session.LWSFPersistentManager.doRead(LWSFPersistentManager.java:162)
at com.sun.web.replication.session.LWSFValve.invoke(LWSFValve.java:31)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
at com.sun.web.replication.session.SessionLockingStandardPipeline.invoke(SessionLockingStandardPipeline.java:71)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:187)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
at com.sun.webserver.connector.nsapi.NSAPIProcessor.service(NSAPIProcessor.java:160)Any idea what's going wrong? Is it something I've done?
I can give you the code for my webapp if you need it.
Thanks,
Bill1. First try deploying your application without having this parameter, This is need only when you need session replication at web application level not at web server level..
2. Try with this option as well:
<sun-web-app>
<session-config>
<session-manager persistence-type="replicated">
</session-manager>
</session-config>
</sun-web-app> -
CF7 Clustering - session replication broken
Further to my
earlier
thread on CF7 clustering and the "network error",
I think session replication is broken. True, I can't find any
documentation which explains how it is supposed to behave, but this
is what I'm seeing:
If you have a two node cluster, and person A has a session on
node 1 and person B a session on node 2, session variables for each
user DO NOT appear on both nodes
Sessions on one node will only appear on the other when the
first node fails over
Moreover, they will only appear when the user makes another
request
CFLOGIN, when using loginstorage="session" does not replicate.
This means you have to use sticky sessions, and if there is a node
failure, the user will have to login in again. This can be avoided
by using loginstorage = "cookie" but this means the username and
password are stored unencrypted in the cookie.
Problems I have with this:
It's impossible to have a cluster wide view of sessions. E.g.
you can't count how many sessions you have at any one time. Any
code that makes use of being able to dig in to multiple sessions -
made possible by J2EE sessions - will not work reliably.
CFLOGIN is broken. It would be better to not use it for sites
that have to be secure as keeping the unencrypted username and
password in a cookie is very insecure. The only way to protect the
username and password being stored in the cookie is SSL; and that
means that every single item on the site needs to be protected by
SSL to stop the browser from serving up the cookie over an
unprotected connection.
It's not clear what is responsible for replication. If sessions
are only replicated when an instance goes down, rather than
continously, then I assume that the master instance of CF on each
server is responsible for replication. What happens if the server
crashes?Information about session replication can be found here: http://docs.oracle.com/cd/E21764_01/web.1111/e13709/failover.htm#i1024620
it contains a section 'Requirements for HTTP Session State Replication' that might be helpful to you.
Also important to note is, how the load balancer handles session binding and the WebLogic cookie
http://docs.oracle.com/cd/E21764_01/web.1111/e13709/load_balancing.htm#i1026939
Maybe you are looking for
-
Adobe Bridge - Export - Manual Scale - Image Size Option
I would like to use Adobe Bridge to export a batch of images to a fixed height (e.g. 400px) where the width is dynamic. There are other software programs that would give me this option, but It would be wonderful if this "small feature" could somehow
-
One iPad2 is of my daughter the other is mine I put the same Game Center account, but when I installed the game app in my ipad2 it start in level 1!! when I check my achievements in GC I have them 24 of 61 but not in my level 30 but in level 1... He
-
Incredibly slow streaming of video from macbook pro to apple tv
Hi. We purchased an apple tv 3rd generation connected to wifi. our internet runs about 7mb/sec. no problem streaming movies purchased on itunes through apple tv but ridiculously slow streaming mp4 through itunes to apple tv over macbook. when i s
-
CrystalReportViewer throws NullReferenceException on parameter set
Hi experts, I really hope somebody can help. I am running out of ideas. I inherited a web site project with some CrystalReports in it and I should install it on two new customer servers. When trying to run the report I got the NullReferenceException
-
BRING BACK THE MUSIC Please Help me!
I just switched my music from my old computer to my new computer and now my old music wont play. it gives me some thingy that says i need to autorize the computer soo i autorize the computer. and still nothing soo i email apple. and still nothing aft