以前遇到的一个问题,解决过程如下:
集群系统,有2个节点,前端通过apache代理,后台总是报下面的告警,好像是session持久性的问题,
表现在应用上是这样的:当我执行一个查询生成一个临时文件,然后我再去下载这个临时文件时,会话转向另外一个server去查找文件,由于静态的文件不能被failover,所以会发生找不到文件的情况。
<Jan 14, 2007 5:11:33 PM CST> <Warning> <HTTP Session> <BEA-100074> <Primary session was removed during our attempt to retrieve secondary information from the session in the local server for the session: roid: -3937880596723352109 , rsid: [ID: 9LQnFpbPxTjJ1DVGF19hBT947L1vHvBQ2ZrztvQtfPykGRDTht0R Primary: -90604744:192.168.80.10:8004:-1 Secondary: 1696053682:192.168.80.11:8002:-1] , primaryURL: t3://192.168.80.10:8004.>
java.io.FileNotFoundException: /data/cncbss/cncBssCluster/mserver2/applications/DefaultWebApp/DefaultWebApp/account/temp/yMcgF0NBy1zh8hbqCTw41GGWZGYnVYjhJjd2bWvzc2b3stZK3n0j!-90604744!1696053682!1169460641300.dat (No such file or directory)
由于文件是不能被WebLogic集群的,同时也没有采用共享目录的方式使两个节点都访问同一个文件系统,我的想法是让同一个会话的所有请求都发送到同一个节点上,而不要发送到另外一个节点上,这样,上述问题就迎刃而解(不过会带来其他问题,如,负载不是很均衡)。
上网求助,某版主要我设置WebLogic cluster的算法是affinity的,我选择了round-robin affinity.
设置后,会话请求按照我的想法发送了,但是又出现了另一个问题,页面打开相当缓慢,开始以为是算法的问题。
后来发现apache的日志里出现很多[error] CONNECTION_REFUSED [os error=0, line 1730 of ../nsapi/URL.cpp]: Error connecting to host错误,于是又上网找资料,没找到什么有用的,又去查看bea的文档,改了KeepAlive On、增大了WebLogic的Accept BackLog大小,又改了系统TCP的参数,好像也没什么用处。最后在文档中看到下面一段话:
The Dynamic Server List
When you use the WebLogicCluster
parameter in your httpd.conf
orweblogic.conf
file to specify a list of WebLogic Servers, the plug-in uses that list as a starting point for load balancing among the members of the cluster. After the first request is routed to one of these servers, a dynamic server list is returned containing an updated list of servers in the cluster. The updated list adds any new servers in the cluster and deletes any that are no longer part of the cluster or that have failed to respond to requests. This list is updated automatically with the HTTP response when a change in the cluster occurs.
试着关闭了DynamicServerList,重启apache,系统页面响应飞快。
我是这样认为的,WebLogic使用了round-robin affinity算法,同时关闭了DynamicServerList就意味着apache不再将请求路由到别的server上。
虚拟主机的配置如下:
<VirtualHost 192.168.0.8:9999>
ServerName 192.168.0.8:9999
DocumentRoot /CNC/
CustomLog "|/usr/local/sbin/cronolog /CNC/ApacheLog/bssCluster/%w/access_9999_log" combined
<IfModule mod_weblogic.c>
WebLogicCluster 192.168.0.17:8002,192.168.0.18:8004
MatchExpression *.jsp
MatchExpression *.htm
MatchExpression *.html
Idempotent ON
KeepAliveEnabled ON
DynamicServerList OFF
</IfModule>
</VirtualHost>
分享到:
相关推荐
WebLogic 设置 Session 超时时间 WebLogic 是一个功能强大且流行的 Java 企业级应用服务器,支持多种方式来设置 Session 的超时时间。在本文中,我们将介绍如何在 WebLogic 中设置 Session 超时时间。 Method 1: ...
WebLogic 集群配置及 Session 共享 WebLogic 集群配置是指在多台服务器上部署相同的应用程序,以提高系统的可用性和可扩展性。 Session 共享是指在集群环境中,多台服务器之间共享用户的会话信息,以便在用户在不同...
weblogic session共享的sql语句_mysql 官方网站提供了DB2、oracle、sqlserver、 如果想要那些数据库,就去官网上看吧, 我这个是mysql的。 都别下错了!
然而,"weblogic session丢失"的问题是一个常见的挑战,可能会影响用户体验和系统稳定性。 问题描述中提到的"NULL"可能意味着在实际运行过程中,WebLogic服务器突然清空或无法识别用户的session,导致用户在操作...
测试weblogic 集群环境(session replication)
Weblogic_10.3集群配置及session共享,
本文主要探讨的是在Windows环境下如何配置WebLogic Server 11g的集群以及实现Session复制,这对于构建高可用性和负载均衡的Web应用程序至关重要。 首先,集群是将多个独立的WebLogic Server实例组织在一起,它们看...
【WebLogic集群Session复制详解】 1. **简介** WebLogic集群是Oracle公司提供的一个高可用性和可扩展性的企业级Java EE应用服务器平台。在集群环境中,session复制是确保用户会话在不同节点之间无缝迁移的关键技术...
在现代Web应用中,Session管理是至关重要的,它允许服务器保持与客户端的会话状态。然而,当应用部署在多台服务器上时,单个服务器的Session无法在其他服务器之间共享,导致用户在不同服务器之间切换时需要重新登录...
NULL 博文链接:https://best0247.iteye.com/blog/2337855
3.1. 集群定义 一个集群就是一组协同工作的WebLogic服务器实例。 集群提供:高可用性、负载均衡、扩展性。 集群图示:图2、图3都是集群在应用环境中的示例。
【标题】WebLogic之Session 在Java Web应用中,Session是一种服务器端的会话跟踪机制,用于在HTTP无状态协议中存储用户特定的信息。WebLogic Server作为一款强大的Java EE应用服务器,提供了对Session管理的强大...
WebLogic_SessionBean应用模板是基于Java EE平台,特别是Enterprise JavaBeans (EJB)技术的一个典型应用实例,主要用于在Oracle WebLogic Server上构建和部署会话Bean。会话Bean是Java EE中的一个核心组件,它提供了...
Weblogic 10.3 集群配置与Session持久化是企业级应用部署的关键环节,它涉及到多个方面的知识,包括Weblogic的基础概念、集群架构、安装配置以及Session的管理和持久化。 1. **Weblogic集群名词解释** - **Domain*...
配置WebLogic Server 11g集群、Session复制、定时任务(Windows&Linux)
WebLogic 11g 集群 负载均衡 Session复制 Windows
主要介绍weblogic管理以及在J2EE上的应用,如WebLogic如何设置session超时时间 1 web.xml 设置WEB应用程序描述符web.xml里的<session-timeout>元素。这个值以分钟为 单位,并覆盖weblogic.xml中的TimeoutSecs属性 ...
weblogic集群与Session共享,图文并茂,可视化配置,步骤详细,保姆级教程