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.
Thanks
Thanks 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
Similar Messages
-
Hi!
I'm trying to setup a cluster between two managed servers located on the same server. The following configuration is about my cluster. I just removed the secutiry element:
*<?xml version='1.0' encoding='UTF-8'?>*
*<domain xmlns="http://xmlns.oracle.com/weblogic/domain" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/security/xacml http://xmlns.oracle.com/weblogic/security/xacml/1.0/xacml.xsd http://xmlns.oracle.com/weblogic/security/providers/passwordvalidator http://xmlns.oracle.com/weblogic/security/providers/passwordvalidator/1.0/passwordvalidator.xsd http://xmlns.oracle.com/weblogic/domain http://xmlns.oracle.com/weblogic/1.0/domain.xsd http://xmlns.oracle.com/weblogic/security http://xmlns.oracle.com/weblogic/1.0/security.xsd http://xmlns.oracle.com/weblogic/security/wls http://xmlns.oracle.com/weblogic/security/wls/1.0/wls.xsd">*
*<name>caim</name>*
*<domain-version>10.3.2.0</domain-version>*
*<server>*
*<name>AdminServer</name>*
*<machine></machine>*
*<listen-address></listen-address>*
*</server>*
*<server>*
*<name>ManagedServer_1</name>*
*<machine></machine>*
*<listen-port>7003</listen-port>*
*<cluster>Cluster_1</cluster>*
*<listen-address></listen-address>*
*<server-start>*
*<arguments>-Djava.endorsed.dirs=C:\endorsed</arguments>*
*<password-encrypted>{AES}7iyQ50j7+efCMMUTHrSPcELzY9wjcge0W0Gp/HH3j9E=</password-encrypted>*
*</server-start>*
*<jta-migratable-target>*
*<name>ManagedServer_1</name>*
*<user-preferred-server>ManagedServer_1</user-preferred-server>*
*<cluster>Cluster_1</cluster>*
*</jta-migratable-target>*
*</server>*
*<server>*
*<name>ManagedServer_2</name>*
*<machine></machine>*
*<listen-port>7004</listen-port>*
*<cluster>Cluster_1</cluster>*
*<listen-address></listen-address>*
*<server-start>*
*<arguments>-Djava.endorsed.dirs=C:\endorsed</arguments>*
*<password-encrypted>{AES}PC7yN6hCVA3N6lMn2AyZgJu0pGcv4K5XUDUMmWMNE5Q=</password-encrypted>*
*</server-start>*
*<jta-migratable-target>*
*<name>ManagedServer_2</name>*
*<user-preferred-server>ManagedServer_2</user-preferred-server>*
*<cluster>Cluster_1</cluster>*
*</jta-migratable-target>*
*</server>*
*<cluster>*
*<name>Cluster_1</name>*
*<cluster-messaging-mode>unicast</cluster-messaging-mode>*
*</cluster>*
*<production-mode-enabled>true</production-mode-enabled>*
*<embedded-ldap>*
*<name>caim</name>*
*<credential-encrypted>{AES}BQResE+Zs6gOOTGLqF3T70xcLs3AVw2F7+7sNKLdb2T+QE3cx+zHFlO0RQyBAZy1</credential-encrypted>*
*</embedded-ldap>*
*<configuration-version>10.3.2.0</configuration-version>*
*<app-deployment>*
*<name>app</name>*
*<target>ManagedServer_1</target>*
*<module-type>war</module-type>*
*<source-path>C:\WebLogic\app</source-path>*
*<deployment-order>100</deployment-order>*
*<security-dd-model>DDOnly</security-dd-model>*
*</app-deployment>*
*<app-deployment>*
*<name>app2</name>*
*<target>ManagedServer_2</target>*
*<module-type>war</module-type>*
*<source-path>C:\WebLogic\app2</source-path>*
*<security-dd-model>DDOnly</security-dd-model>*
*</app-deployment>*
*<machine>*
*<name></name>*
*<node-manager>*
*<name></name>*
*<listen-address></listen-address>*
*</node-manager>*
*</machine>*
*<migratable-target>*
*<name>ManagedServer_1 (migratable)</name>*
*<notes>This is a system generated default migratable target for a server. Do not delete manually.</notes>*
*<user-preferred-server>ManagedServer_1</user-preferred-server>*
*<cluster>Cluster_1</cluster>*
*</migratable-target>*
*<migratable-target>*
*<name>ManagedServer_2 (migratable)</name>*
*<notes>This is a system generated default migratable target for a server. Do not delete manually.</notes>*
*<user-preferred-server>ManagedServer_2</user-preferred-server>*
*<cluster>Cluster_1</cluster>*
*</migratable-target>*
*<admin-server-name>AdminServer</admin-server-name>*
*</domain>*
I do not see any log about http session replication and when I stop the managed server that is handling the requests, the application is redirected to the login page, i.e., there's no session replication.
Need I to do something more than create the cluster and add the managed servers to the cluster?
Is it possible to enable the logging to the session replication?
Best Regards,
A.Please refer to : http://jaysensharma.wordpress.com/2009/12/08/session-replication-issues/
To identify Session Replication requirements ...and Causes...
Like *"weblogic.xml"* should contain:
<persistance-type> Tag... Like following:
<font color=maroon>
<session-descriptor>
<persistent-store-type>replicated</persistent-store-type>
</session-descriptor>
</font>
Can you please enable SessionReplication related Debug Flags from AdminConsole....?
Are you using any kind of Proxy/LoadBalancer in front of your Cluster?
Have you ever tried changing default HttpSession Cookie Name from "*JSESSIONID"* to something else?
Thanks
Jay SenSharma -
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, -
I have multi server environment. Two phisical servers.
Balanced by a hardware load balancer. Each of the server have
multiple instances of ColdFusion. Main instance (cfusion), and
cf_instance_server1_id_1 and cf_instance_server2_2.
CFUSION instance is used as administrative instance only,
other two instances are hosting independent applications.
cf_instance_server1_id_1 is clustered with
cf_instance_server2_id_1, same applies for second instance.
jrun/logs folder is filling up fast with following error
jsession is on.
Please adviseMikkhait wrote:
> CFUSION instance is used as administrative instance
only, other two instances
> are hosting independent applications.
cf_instance_server1_id_1 is clustered
> with cf_instance_server2_id_1, same applies for second
instance.
> 11/07 10:16:39 error Setup of session replication
failed.
> [1]java.net.ConnectException: Connection refused:
connect
You have a network issue. Make sure there are no firewalls
between both
servers and your routing is set up correctly. If that doesn't
work, we
need a dump of the route table, the interface configuration
and the
overview of instances from the cluster manager.
Jochem
Jochem van Dieten
Adobe Community Expert for ColdFusion -
What are the steps to setup an HTTP Session replication clustering in oc4j9
what are the steps to setup an HTTP Session replication clustering in oc4j9.0.5
Are you sure you have the correct version number for OC4J? Is this a standalone OC4J instance, if it then the steps involved are different from the full stack. Please check the Higher Availibility guide in the documentation on OTN.
Deepak -
Remote handle caching error when using HTTP session replication
Using WL 7.0 Sp2 on Solaris, deployed apllication on a 2 instance wide cluster.Code
attached -
unzip testapp.zip to find a test.jar which is the stateless sesion ejb and test.war
which is the applicaiton.
I have this class - TestDelegate that looks up a stateless session EJB(TestEJB),
and puts the remote handle as a member variable(Test bean).Test.jsp instantiates
this delegate(TestDelegate ), and then via setAttribute puts the TestDelegate
in the HTTPSession.Then it calls a couple of methods via the TestDelegate which
has the remote handle of the TestEJB.
Scenario 1 : We deploy the WAR on cluster A which is 2 instance wide,we deploy
the TestEJB on
cluster B, which is also 2 instance wide. All works fine, the delegate is able
to lookup EJB and
can add the remote handle as a member variable.
Scenario 2: We deploy the WAR on cluster A which is 2 instance wide,we deploy
the TestEJB on
cluster B, which is also 2 instance wide. This time we put a weblogic.xml in the
WAR which has tag for in-memory session replication.This time we get class cast
exception for the same sequence that we have above.
<Mar 24, 2003 10:43:28 AM EST> <Error> <kernel> <000802> <ExecuteRequest failed
java.lang.ClassCastException: Assigning instance of class com.TestEJB_1jsmq_EOImpl_WLStub
to field com.bean.TestDelegate#bean
Start server side stack trace:
java.lang.ClassCastException: Assigning instance of class com.TestEJB_1jsmq_EOImpl_WLStub
to field com.bean.TestDelegate#bean
at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2266)
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:514)
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1407)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:231)
at java.util.Hashtable.readObject(Hashtable.java:794)
at java.lang.reflect.Method.invoke(Native Method)
at java.io.ObjectInputStream.invokeObjectReader(ObjectInputStream.java:2209)
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1406)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2258)
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:514)
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1407)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:231)
at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:140)
at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:91)
at weblogic.cluster.replication.ReplicationManager_WLSkel.invoke(Unknown
Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:362)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:821)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:308)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
End server side stack trace
[testapp.zip]
To see the list of session IDs in the cache you can iterate over the keys of the cache returned from the following code:
NamedCache cacheCatalog = CacheFactory.getReplicatedCacheService("$FilterService$").ensureCache("CoherenceSession.CATALOG", getClass().getClassLoader());Then to see the contents of a session you can take a look a the cache returned from the following code:
String sId = // keys from cacheCatalog
NamedCache cacheDetails = cacheCatalog.getCacheService().ensureCache(sId, getClass().getClassLoader());Hope this helps.
We have received your request for a development license and we hould have ti out to you today.
Later,
Rob Misek
Tangosol, Inc.
Coherence: Cluster your Work. Work your Cluster. -
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
-
hi all,
we have two weblogic servers 6.1 in a cluster (running under windows NT) proxied
by a apache webserver 1.3.12 with the bea plugin. (running under SUN solaris).
We try to test the failover behavier of the cluster and the session in-memory-replication
in particular.
We have implemented a little servlet which is just printing the session id on
the server console and stores some data in the session context. When we send multiple
request from a single client to this servlet, the proxy connects to the specific
server in which the session was originally established and the original session
id and the data in the session context keeps identical. But when we kill this
server (perssing CTRL+C) and the proxy connects to the other server in the cluster,
a new session-id is created and the session data is lost. It seems that the session
is not replicated.
May be this is a configuration problem. Our http.conf files includes the following
plugin-configuration:
AddModule mod_so.c
LoadModule weblogic_module libexec/mod_wl_ssl.so
AddModule mod_weblogic.c
<IfModule mod_weblogic.c>
WebLogicCluster ws110009:7001,ws110344:7001
MatchExpression *.jsp
Debug ALL
DebugConfigInfo ON
ConnectTimeoutSecs 3
ConnectRetrySecs 1
HungServerRecoverSecs 30
</IfModule>
<Location /hallo>
SetHandler weblogic-handler
</Location>
Our test servlet is very simple:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet
public void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, java.io.IOException
HttpSession session;
String strAttribute;
String strSessionAttribute = req.getRemoteHost();
PrintWriter out = resp.getWriter();
session = req.getSession(true);
resp.setContentType("text/html");
System.out.println("*************** im Servlet ***************");
System.out.println("Session "+session);
if(session != null)
System.out.println("SessionID "+session.getId());
strAttribute = (String)session.getAttribute("TEST");
System.out.println("Attribute aus Session "+strAttribute);
System.out.println("Attribute in Session gesetzt: "+strSessionAttribute);
if(strSessionAttribute != null)
session.setAttribute("TEST", strSessionAttribute);
}else
session.setAttribute("TEST", "war nix");
out.println("<html>");
out.println("<head><title>Hello World</title></head>");
out.println("<body>");
out.println("<h1>Hello World</h1>");
out.println("<a href='http://sunrise:8080/hallo'><h1>Klick hier</h1></a>");
out.println("</body></html>");
System.out.println("*************** ******* ***************");
and we use the following weblogic.xml for deployment:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 6.0//EN"
"http://www.bea.com/servers/wls600/dtd/weblogic-web-jar.dtd">
<weblogic-web-app>
<session-descriptor>
<session-param>
<param-name>
PersistentStoreType
</param-name>
<param-value>
replicated
</param-value>
</session-param>
<session-param>
<param-name>
URLRewritingEnabled
</param-name>
<param-value>
false
</param-value>
</session-param>
</session-descriptor>
</weblogic-web-app>
We call the servlet three times and the primary server console looks like this:
*************** im Servlet ***************
Session weblogic.servlet.internal.session.ReplicatedSessionData@2746
SessionID O4O2WnsI55wDt3aUkfxjYwTAWs2opiTCl4PAPjun4EMu2HaKB2T4!-8932999811214751
489!167772240!7001!7002!NONE!998489690052
Attribute aus Session null
Attribute in Session gesetzt: ws110341.pass-consulting.com
*************** im Servlet ***************
Session weblogic.servlet.internal.session.ReplicatedSessionData@2746
SessionID O4O2WnsI55wDt3aUkfxjYwTAWs2opiTCl4PAPjun4EMu2HaKB2T4!-8932999811214751
489!167772240!7001!7002!NONE!998489690052
Attribute aus Session ws110341.pass-consulting.com
Attribute in Session gesetzt: ws110341.pass-consulting.com
*************** im Servlet ***************
Session weblogic.servlet.internal.session.ReplicatedSessionData@2746
SessionID O4O2WnsI55wDt3aUkfxjYwTAWs2opiTCl4PAPjun4EMu2HaKB2T4!-8932999811214751
489!167772240!7001!7002!NONE!998489690052
Attribute aus Session ws110341.pass-consulting.com
Attribute in Session gesetzt: ws110341.pass-consulting.com
When we kill this server and the request goes to the second server the console
looks like this:
*************** im Servlet ***************
Session weblogic.servlet.internal.session.ReplicatedSessionData@4c678a
SessionID O4O2WnsI55wDt3aUkfxjYwTAWs2opiTCl4PAPjun4EMu2HaKB2T4!-1303983227923606
289!167772222!7001!7002!NONE!998489284083
Attribute aus Session null
Attribute in Session gesetzt: ws110341.pass-consulting.com
*************** im Servlet ***************
Session weblogic.servlet.internal.session.ReplicatedSessionData@4c678a
SessionID O4O2WnsI55wDt3aUkfxjYwTAWs2opiTCl4PAPjun4EMu2HaKB2T4!-1303983227923606
289!167772222!7001!7002!NONE!998489284083
Attribute aus Session ws110341.pass-consulting.com
Attribute in Session gesetzt: ws110341.pass-consulting.com
The session id has changed and the session-attribute is lost.
Have anyone an idea ?
Thanks
Frank
Make sure clustering is properly setup. Looks into the log file for any errors.
Check the plugin param docs DebugConfigInfo to see the dynamic cluster list,
which gives an indication of wether clustering is setup properly or not.
session.getClass() will give you idea which replication type is the server using
for the sessions.
--Vinod.
"Frank Möller" wrote:
> hi all,
>
> we have two weblogic servers 6.1 in a cluster (running under windows NT) proxied
> by a apache webserver 1.3.12 with the bea plugin. (running under SUN solaris).
> We try to test the failover behavier of the cluster and the session in-memory-replication
> in particular.
>
> We have implemented a little servlet which is just printing the session id on
> the server console and stores some data in the session context. When we send multiple
> request from a single client to this servlet, the proxy connects to the specific
> server in which the session was originally established and the original session
> id and the data in the session context keeps identical. But when we kill this
> server (perssing CTRL+C) and the proxy connects to the other server in the cluster,
> a new session-id is created and the session data is lost. It seems that the session
> is not replicated.
>
> May be this is a configuration problem. Our http.conf files includes the following
> plugin-configuration:
>
> AddModule mod_so.c
>
> LoadModule weblogic_module libexec/mod_wl_ssl.so
> AddModule mod_weblogic.c
>
> <IfModule mod_weblogic.c>
> WebLogicCluster ws110009:7001,ws110344:7001
> MatchExpression *.jsp
> Debug ALL
> DebugConfigInfo ON
> ConnectTimeoutSecs 3
> ConnectRetrySecs 1
> HungServerRecoverSecs 30
> </IfModule>
>
> <Location /hallo>
> SetHandler weblogic-handler
> </Location>
>
> Our test servlet is very simple:
>
> import java.io.*;
> import javax.servlet.*;
> import javax.servlet.http.*;
>
> public class HelloWorld extends HttpServlet
> {
>
> public void service(HttpServletRequest req, HttpServletResponse resp)
> throws ServletException, java.io.IOException
> {
>
> HttpSession session;
> String strAttribute;
> String strSessionAttribute = req.getRemoteHost();
>
>
> PrintWriter out = resp.getWriter();
> session = req.getSession(true);
>
>
> resp.setContentType("text/html");
>
> System.out.println("*************** im Servlet ***************");
> System.out.println("Session "+session);
> if(session != null)
> {
> System.out.println("SessionID "+session.getId());
>
> strAttribute = (String)session.getAttribute("TEST");
> System.out.println("Attribute aus Session "+strAttribute);
> System.out.println("Attribute in Session gesetzt: "+strSessionAttribute);
>
> if(strSessionAttribute != null)
> {
> session.setAttribute("TEST", strSessionAttribute);
> }else
> {
> session.setAttribute("TEST", "war nix");
> }
> }
> out.println("<html>");
> out.println("<head><title>Hello World</title></head>");
> out.println("<body>");
> out.println("<h1>Hello World</h1>");
> out.println("<a href='http://sunrise:8080/hallo'><h1>Klick hier</h1></a>");
> out.println("</body></html>");
> System.out.println("*************** ******* ***************");
>
> }
> }
>
> and we use the following weblogic.xml for deployment:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 6.0//EN"
> "http://www.bea.com/servers/wls600/dtd/weblogic-web-jar.dtd">
> <weblogic-web-app>
> <session-descriptor>
> <session-param>
> <param-name>
> PersistentStoreType
> </param-name>
> <param-value>
> replicated
> </param-value>
> </session-param>
> <session-param>
> <param-name>
> URLRewritingEnabled
> </param-name>
> <param-value>
> false
> </param-value>
> </session-param>
> </session-descriptor>
> </weblogic-web-app>
>
> We call the servlet three times and the primary server console looks like this:
>
> *************** im Servlet ***************
> Session weblogic.servlet.internal.session.ReplicatedSessionData@2746
> SessionID O4O2WnsI55wDt3aUkfxjYwTAWs2opiTCl4PAPjun4EMu2HaKB2T4!-8932999811214751
> 489!167772240!7001!7002!NONE!998489690052
> Attribute aus Session null
> Attribute in Session gesetzt: ws110341.pass-consulting.com
> *************** ******* ***************
> *************** im Servlet ***************
> Session weblogic.servlet.internal.session.ReplicatedSessionData@2746
> SessionID O4O2WnsI55wDt3aUkfxjYwTAWs2opiTCl4PAPjun4EMu2HaKB2T4!-8932999811214751
> 489!167772240!7001!7002!NONE!998489690052
> Attribute aus Session ws110341.pass-consulting.com
> Attribute in Session gesetzt: ws110341.pass-consulting.com
> *************** ******* ***************
> *************** im Servlet ***************
> Session weblogic.servlet.internal.session.ReplicatedSessionData@2746
> SessionID O4O2WnsI55wDt3aUkfxjYwTAWs2opiTCl4PAPjun4EMu2HaKB2T4!-8932999811214751
> 489!167772240!7001!7002!NONE!998489690052
> Attribute aus Session ws110341.pass-consulting.com
> Attribute in Session gesetzt: ws110341.pass-consulting.com
> *************** ******* ***************
>
> When we kill this server and the request goes to the second server the console
> looks like this:
>
> *************** im Servlet ***************
> Session weblogic.servlet.internal.session.ReplicatedSessionData@4c678a
> SessionID O4O2WnsI55wDt3aUkfxjYwTAWs2opiTCl4PAPjun4EMu2HaKB2T4!-1303983227923606
> 289!167772222!7001!7002!NONE!998489284083
> Attribute aus Session null
> Attribute in Session gesetzt: ws110341.pass-consulting.com
> *************** ******* ***************
> *************** im Servlet ***************
> Session weblogic.servlet.internal.session.ReplicatedSessionData@4c678a
> SessionID O4O2WnsI55wDt3aUkfxjYwTAWs2opiTCl4PAPjun4EMu2HaKB2T4!-1303983227923606
> 289!167772222!7001!7002!NONE!998489284083
> Attribute aus Session ws110341.pass-consulting.com
> Attribute in Session gesetzt: ws110341.pass-consulting.com
> *************** ******* ***************
>
> The session id has changed and the session-attribute is lost.
>
> Have anyone an idea ?
>
> Thanks
> Frank
-
How can I monitor the Session Cache when using HTTP Session-Replication?
I want to see the session cache content
To see the list of session IDs in the cache you can iterate over the keys of the cache returned from the following code:
NamedCache cacheCatalog = CacheFactory.getReplicatedCacheService("$FilterService$").ensureCache("CoherenceSession.CATALOG", getClass().getClassLoader());Then to see the contents of a session you can take a look a the cache returned from the following code:
String sId = // keys from cacheCatalog
NamedCache cacheDetails = cacheCatalog.getCacheService().ensureCache(sId, getClass().getClassLoader());Hope this helps.
We have received your request for a development license and we hould have ti out to you today.
Later,
Rob Misek
Tangosol, Inc.
Coherence: Cluster your Work. Work your Cluster. -
Http session replication is not working
I am using WLS6.1sp2. I have two instances in the cluster, and using HTTPClusterServlet
as the proxy for my web app which has been setup as in-memory replication. Here
is the problem:
1) I start both cluter instances up
2) login to my web app
3) shut down the inistance that handled my login
4) making another request
I was asked to login again before my request been filled,
can somebody tell me what I missed? thanks
Did you set persistentStoreType="replicated" in your webapp's
weblogic.xml?
Kumar
x zhou wrote:
> I am using WLS6.1sp2. I have two instances in the cluster, and using HTTPClusterServlet
> as the proxy for my web app which has been setup as in-memory replication. Here
> is the problem:
> 1) I start both cluter instances up
> 2) login to my web app
> 3) shut down the inistance that handled my login
> 4) making another request
> I was asked to login again before my request been filled,
>
> can somebody tell me what I missed? thanks
>
>
-
In-memory replication of http session is not working in BEA7 cluster
Hi everyone,
I have 3 managed servers in Bea7.0 SP4 in a cluster. The client requests are sent
through apache web server. I have given cluster address as URL in httpd.conf of
apache server which sends the client requests for dynamic pages such as JSPs and
servlets to the weblogic cluster.
Load balancing is working fine. I ensured this from the log files of all the 3
servers. All the 3 servers are getting different client requests and thus load
balancing is working.
Now, I wanted to achieve Fail-over. I do not think that i should use proxy plug-in
for this. I feel the cluster itself will handle fail-over provided i make the
http session as memory replicated.
I updated the weblogic.xml with the following entry :
<session-descriptor>
<param-name>PersistentStoreType</param-name>
<param-value>replicated</param-value>
</session-param>
</session-descriptor>
I guess this is sufficient to make the http session as cluster aware.
But when I shutdown server1, the user connected to server1 will be kicked out
of the session and come to login page through server2 or server3 which are running
fine.
Could anyone help me to achieve http session as cluster aware. Does it indicate
that I have to go for WLS proxy – HttpClusterServlet to achieve fail over for
http session ?
BTW, for your info, i am using setAttribute() and getAttribute() while manipulating
the session.
thanks in advance.
Hi Ryan,
Thanks for ur valuable input.
I can see failover working.
But, I can not continue with the same session in my application.
I printed session Ids before and after failover, I found both are different.
I guess session replication is a responsibility of weblogic/apache plugin.
If not please let me know which all settings I should do to make failover working?
Thanks again.
Plad
"ryan upton" <ryanjupton at learningvoyage dot com> wrote:
>Plad,
>
>Are you trying to gracefully shut down the server? If you are then the
>problem that you say you can't identify is simply the server's default
>behavior which is to wait for all non-replicated sessions to be dropped
>or
>timed out before killing the process. Try forcing the shutdown: kill
>-9 the
>PID or CTRL-C if you started the server from the command line. You can
>also
>check the ``Ignore Sessions During Shutdown" checkbox under the server's
>control tab in the admin console, this should allow you to shut down
>gracefully without waiting for session timeout. BTW your sequence is
>off
>in #5 below, the replication doesn't occur upon failure, the replication
>has
>already happened once you created the session object on the first server,
>I
>think maybe you're confusing replication with failover.
>
>~RU
>
>"Plad" <[email protected]> wrote in message
>news:[email protected]...
>>
>> Hi,
>> I have 2 managed servers in a cluster.
>>
>> 1. I have got a DNS name configured which maps to these 2 managed server's
>IP
>> addresses.
>> 2. I can browse my site using this DNS name.
>> In HTTPD.conf I have :
>>
>> ServerName dev.a.b.net
>>
>> <IfModule mod_weblogic.c>
>> WebLogicCluster 10.1.38.232:7023,10.1.34.51:7023
>> MatchExpression *.*
>> </IfModule>
>>
>> LoadModule weblogic_module modules/mod_wl_20.so
>>
>> 3. I have adeded session descriptor in weblogic.xml , also enabled
>proxy
>plugin
>> in weblogic console.
>>
>> 4. I tested accessing my application using DNS url after shutting down
>alternatively
>> each manaed server. I can access application.
>>
>> 5. Now, problem comes when I access a managed server1 , keeping server2
>down.
>> I am able to access my application.
>> Now, I start the server2.
>> (Here I am supposing that replication should occur)
>> Then I am shutting down server1.
>> But, this time the server log shows me following:
>>
>>
>> 9:58:51 AM GMT+05:30 NOTICE Web application(s) chlist still have
>non-replicated
>> sessions after 2 minutes of initiating SUSPEND. Waiting for non-replicated
>sessions
>> to finish.
>> 10:00:51 AM GMT+05:30 NOTICE Web application(s) chlist still have
>non-replicated
>> sessions after 4 minutes of initiating SUSPEND. Waiting for non-replicated
>sessions
>> to finish.
>>
>> I am unable to make out where the problem is?
>> Can it be a problem of Liecense? Is there any specialcluster liecense
>for
>weblogic8?
>>
>> Hoping to get replies.
>> Thanx.
>> Plad
>>
>> "ryan upton" <ryanjupton at learningvoyage dot com> wrote:
>> >See my reply to your first post, but I've also added a few comments
>here.
>> >
>> >"jyothi" <[email protected]> wrote in message
>> >news:[email protected]...
>> >>
>> >> I guess someone from bea support team only can answer both your
>question
>> >and mine.
>> >> As per my knowledge, we do not need to do any setup at Apache
>side
>> >regarding
>> >> cluster other than mentioning cluster address as URL while
>contacting
>> >WLS
>> >> from apache.
>> >>
>> >> I hope someone from Bea, will help us. I do not think that we
>> >go for
>> >WLS
>> >> proxy plug-in using HttpClusterServlet for making session replication.
>> > I
>> >strongly
>> >> feel that the cluster itself be able to manage the fail-over of
>> >http
>> >sessions
>> >> provided we put the entry "PersistentStoreType" in weblogic.xml
>> >regarding
>> >> the session replication.
>> >>
>> >
>> >The cluster does handle the management of Sessions. The clustered
>> >applications still create the Session objects and the cluster manages
>> >them
>> >as per your deployment descriptor settings (replicated, JDBC, File)
>however
>> >the proxy has to be aware of which server the client has an affinity
>> >for
>> >(only with replicated sessions) and it does that by reading a cookie
>> >passed
>> >back from the server that handled the initial request and created
>the
>> >primary session object. The proxy has a list of both the primary
>and
>> >secondary server locations from this cookie that it can use to failover
>> >the
>> >request if the primary server fails. Clusters _DO NOT_ failover nor
>> >do they
>> >load balance, that's the job of your proxy, whether you're using the
>> >HTTPClusterServlet, WLS Plug-in or a more sophisticated hardware load
>> >balancer like Big IPs F5
>> >
>> >> jyothi
>> >>
>> >
>> >~RU
>> >
>> >
>>
>
>
-
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 -
CF8 +session replication +stackoverflow
Good day
I'm running a CentOS cluster releas 5.3 64bit version. There are two servers in the cluster, each running 2 CF8.1 servers in a cluster mode.
I have a dedicated jvm config file for each server, so that I can set the mem specs per server. All 4 are running on 1Gig memory for the JVM.
The admin server process on each server is running with max 500M JVM space.
I'm "using weighted round robin" with "sticky sessions" and "replicate sessions" selected.
I have now started the jconsole and monitored one of the servers. With only 300Meg alocated in the JVM, I have this error.
11/09 08:06:05 Information [jrpp-4112] - Called include
11/09 08:06:05 error Setup of session replication failed.
java.lang.StackOverflowError
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1161)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
It is not effecting the rest of the applicatin (so it seems and nobody has complained yet), bit is not acceptable as it raises the alarm every time.
These are the CF parameters
Version
8,0,1,195765
Edition
Enterprise
Serial Number
Operating System
UNIX
OS Version
2.6.18-128.4.1.el5
JVM Details
Java Version
1.6.0_04
Java Vendor
Sun Microsystems Inc.
Java Vendor URL
http://java.sun.com/
Anybody with a solution/idea?
Tks
Andre
Message was edited by Jochem van Dieten to remive a serial numberOops - doing so many things simultanious at the time that I missed the serial no. Tks for editing.
I will go and have a serious look at the session variable usage.
The application is a restricted-access type with the majority of the the application (80%) running in the background.
The application uses session variables quite heavily for authentication and other access control mechanisms.
Maybee it is a better option to just disable the session replication. If a server fails, the user must simply re-authorize him/herself.
Tks
Andre -
JNDI replication within a cluster
Hi to all of you,
we successfully enabled HTTP Session replication and tested the failover. We would also like to setup a JNDI replication, so that we can use it as a storage for some shared data -- as stated in http://download.oracle.com/docs/cd/B10464_05/web.904/b10324/cluster.htm this should be enabled automatically, once EJB replication is enabled.
With some problems we finally enabled EJB replication (we configured it through orion-application.xml) and the required replication policy is propagated to our statful beans. Anyway, the JNDI is still not replicated over the machines.
We are running latest OAS 10g, cluster is MultiCast on RedHat Enterprise, replication policy for Stateful beans is set to 'onRequestEnd' (we tried all the options :), our application is normal ear with 1 ejb and 1 war archive and apart from JNDI replication, it works as expected.
Is there some trick that is not mentioned or that we may overlooked in documentation to enable JNDI replication?
Kind Regards,
MartinHopefully solved -- though the documentation explicitly mentions rebinding as not working, after any changes made to value stored in JNDI context you should just re-bind the value to the JNDI context; the value is replicated to other JNDI contexts.
m. -
Entity remote in clustered http session ?
we put a entity remote object into a http session which is replicated
across a cluster of 3 linux machines ( each with 1 weblogic 6.1 SP2).
http session replication works fine: the entity is accessible on every
machine in this cluster.
it seems that there is no failover for entity remote object in this
case: i kill the server where the entity was originally created. the
web application just reports an "10.5.1 500 Internal Server Error".
the server log of the machine where the current request was executed
says:
1.
Removing solarium jvmid:-995414765884053603S:192.168.145.41:
[2357,2357,7002,7002,2357,7002,-1]:beacluster.hybris.de:hybr
is:solarium from cluster view due to PeerGone
( solarium is the killed server; beacluster the cluster DNS name )
2.
Removing -995414765884053603S:192.168.145.41:[2357,2357,7002
,7002,2357,7002,-1]:beacluster.hybris.de:hybris:solarium to
the cluster
3.
[WebAppServletContext(729829,dummyweb,/dummyweb)] Servlet fa
iled with IOException
java.rmi.ConnectException: Unable to get direct or routed connection to:
'-995414765884053603S:192.168.145.41:[2357,2357,7002,7002,2357,7002,-1]:beacluster.hybris.de:hybris:solarium'
at
weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:85)
at
weblogic.rmi.cluster.EntityRemoteRef.privateInvoke(EntityRemoteRef.java:144)
at
weblogic.rmi.cluster.EntityRemoteRef.invoke(EntityRemoteRef.java:115)
at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
at $Proxy86.getText(Unknown Source)
at jsp_servlet.__dummyEntity._jspService(__dummyEntity.java:148)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2495)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2204)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
thanks in advance,
axel grossmann.
HTTP session is only replicated to the secondary server, not all servers in
the cluster.
Peace,
Cameron Purdy
Tangosol, Inc.
Clustering Weblogic? You're either using Coherence, or you should be!
Download a Tangosol Coherence eval today at http://www.tangosol.com/
"Axel Großmann" <[email protected]> wrote in message
news:[email protected]...
>
> we put a entity remote object into a http session which is replicated
> across a cluster of 3 linux machines ( each with 1 weblogic 6.1 SP2).
>
> http session replication works fine: the entity is accessible on every
> machine in this cluster.
>
> it seems that there is no failover for entity remote object in this
> case: i kill the server where the entity was originally created. the
> web application just reports an "10.5.1 500 Internal Server Error".
>
> the server log of the machine where the current request was executed
> says:
>
> 1.
> Removing solarium jvmid:-995414765884053603S:192.168.145.41:
>
> [2357,2357,7002,7002,2357,7002,-1]:beacluster.hybris.de:hybr
> is:solarium from cluster view due to PeerGone
>
> ( solarium is the killed server; beacluster the cluster DNS name )
>
> 2.
> Removing -995414765884053603S:192.168.145.41:[2357,2357,7002
> ,7002,2357,7002,-1]:beacluster.hybris.de:hybris:solarium to
> the cluster
>
> 3.
> [WebAppServletContext(729829,dummyweb,/dummyweb)] Servlet fa
> iled with IOException
> java.rmi.ConnectException: Unable to get direct or routed connection to:
>
'-995414765884053603S:192.168.145.41:[2357,2357,7002,7002,2357,7002,-1]:beac
luster.hybris.de:hybris:solarium'
> at
>
weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundRequest.
java:85)
> at
>
weblogic.rmi.cluster.EntityRemoteRef.privateInvoke(EntityRemoteRef.java:144)
> at
> weblogic.rmi.cluster.EntityRemoteRef.invoke(EntityRemoteRef.java:115)
> at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
> at $Proxy86.getText(Unknown Source)
> at jsp_servlet.__dummyEntity._jspService(__dummyEntity.java:148)
> at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
> at
>
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:265)
> at
>
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:200)
> at
>
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:2495)
> at
>
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:2204)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
>
> thanks in advance,
> axel grossmann.
Maybe you are looking for
-
My iPhone is using my work email to sign in to the cloud, but my apple id and password are with my "personal" email address. I can't get rid of my "work" email address on my iPhone 4S
-
Need help. I have AppStore gift card. And the AppStore does not recognized it. Tell me error message this card is not found
-
My bluetooth seems to have stopped working in my car. Both phone and car audio says it is connected but nothing comes through car speaker. I no longer have screen on iphone that says to choose audio source. How do I get that screen back?
-
For the last few days my HP Slate 7 2800 has not charged at all! I have tried several different micro usb cables connected to the wall adapter or to a computer or laptop and i also have the HP charging base! I have checked the micro usb port and do n
-
HP printer is in paused status and will not print. HP6520
How to remove the hp6520 printer out of paused status?