was可以正常启动但是浏览器上server状态不可用

was可以正常启动但是浏览器上server状态不可用,第1张

首先,请检查WAS服务是否正常启动,确认服务是否可以正常访问。如果服务无法正常访问,可以尝试重新启动WAS服务;如果服务正常,可以尝试检查服务器上的防火墙设置是否正确,并且要确认浏览器能够正确访问WAS服务端口。

was服务无法保持会话
部署到一台已有的was服务器上。登录时被拦截器拦截,不断报session超时,重定向到登录首页。
在tomcat及新建的was服务器下安装,都可以正常运行。
根据这个思路,打印日志,已有的was服务器显示为每次请求都新建了session,导致会话不能够保持住。
排查was配置,发现在was设置里,已经设置了cookie的path路径为 /imanager 。而我的应用上下文为mpay-manage。客户端浏览器的会话通过cookie来记录,登录时候因读取不到cookie导致session为空,服务器认为是新的请求,故而新建session。从使用者角度来看,就是页面不断跳转到登录页面,无法正常登录进应用系统。
所以,针对以上情况,当时的处理方式是将was服务器的cookie的 路径path设置为 /。重新启动was服务器实例。登录运行成功。
故此,特针对cookie重新学习下。
---------------------------------以下摘自互联网-----------------------------------------
Cookie 概述
Cookie是什么? Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。
为什么需要Cookie? 因为>使用LinuxWAS服务器,可以通过主机监控管理控制台里的“启停”应用进行服务器启停 *** 作。点击“启动”即可启动所有服务器,点击“停止”即可停止所有服务器,实现一键启停整合菜单的功能。

满足玩家需求。魔兽世界会部署多个服务器以满足全球玩家的游戏需求,这些服务器分为多个区域,包括美洲、欧洲、亚洲等地区,每个区域都会设置多个不同的服务器列表。魔兽世界是一款非常受欢迎的MMORPG游戏。

1WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的软件。

2was是websphere的简称。

使用 WebSphere® Application Server 加速交付新应用程序和服务,它可以通过快速交付创新的应用程序来帮助企业提供富用户体验。从基于开放标准的丰富的编程模型中进行选择,以便更好地协调项目需求与编程模型功能和开发人员技能。

一、对外表现
1应用访问速度慢、应用报错(WAS性能差)
2应用(server)停止对外服务无法访问(WAS服务挂起或者服务器宕机)
二、xxx系统我们发现过的问题
1WAS内存处理大对象内存分配bug(大报文(20M)-小报文(20M)-20M)
2内存回收碎片(java heap free memory很多,一个很小的报文都申请不到内存)
3WAS MDB侦听MQ队列问题
三、排查思路
思路:
1查看收集服务器性能指标,内存使用、CPU使用包括磁盘I/O等。
2查看收集 *** 作系统级日志。
3根据服务器的性能指标以及 *** 作系统级日志,基本定位是否存在影响性能的瓶颈,通过排除那些不是导致问题发生的因素,以缩小问题的范围,可以使问题简单化,并且避免浪费时间。举例:
CPU使用不高,用户感觉交易响应时间很长,可以断定是由于系统的某一小部分造成了瓶颈,导致了所有的请求都在等待。我们可以考虑,线程池的数量开的太小,导致所有的请求都在排队等待进入线程池,因为没有可用的线程使用,所以这个交易请求一直在排队,导致交易响应时间很长。数据库连接池开的太小,也会有同样的表现。
CPU使用很高,用户感觉交易响应时间很长,比较复杂。可能的根源之一是硬件资源不够。 根源之二是应用系统中产生了多个大对象。根源之三是程序算法有问题。 解决思路如下:用性能分析器, 对运行环境进行分析,分析哪个类甚至于哪个函数消耗了这么多的CPU,并找到相应的解决方案。
4收集分析WAS日志
当应用服务器发生挂起、或者发生out-of-memory等现象时,为了更好的全面分析问题,则需要收集一定的日志信息,一般情况下我们需要收集以下这些日志:
1)收集垃圾回收日志native_stderrlog或者native_stdoutlog。
2)收集应用服务器(install_root/profiles/profile_name/logs/server_name)下所有的日志(systemout)。
3)收集install_root/profiles/profile_name/目录下的JavaCore文件和Heapdump文件,如果没有这些文件,可以在服务器没有响应的时候,运行命令来生成这些文件,对于IBM JDK中可以运行kill -3 PID_Java_jvm,然后每隔两分钟,重复执行该命令,至少3次,通过该命令生成的JavaCore文件会在install_root/ profiles目录下。
4)收集首个故障数据捕捉日志/logs/ffdc。
5)收集Web server服务器,插件Plug-in(plugin-cfgxml and >网站访问量比较小,但是有个问题一直困扰着我们,就是was服务器隔一段时间就报线程挂起,时间有长有短,短的重启5分钟内就报。
一般情况是:
1开应用服务器——用户下载——报线程挂起——下载量下降——报线程N长时间没活动,超过was设置的阀值,释放掉。
2开应用服务器——用户下载——报线程挂起——下载量继续或者上升,挂起线程越来越多——was自动调整线程阀值——调不过来,挂。
经过查找,基本确定问题:是因为用户在用浏览器下载文件时,网络瞬断或其他原因,导致抛出异常,但是下载的线程并未释放。可打开浏览器下载,下到一半直接关掉浏览器来模拟这个现象。
byte[] b = new byte[1024];

while ((len = inread(b)) != -1) {
outwrite(b, 0, len);
}

登录后复制
修改为
byte[] b = new byte[1024];

while ((len = inread(b)) != -1) {
Threadsleep(50);
Threadyield();
outwrite(b, 0, len);
}

登录后复制
一些人建议的方法是,在服务器端给线程做个时间限制,超过时间的就关掉;但是这样做,较低网速下载大文件的用户,又会受到影响。因此用上面的做法是:线程处理一段时间,停一会,让出CPU控制权,不至于造成堵塞。
这个方法可能不是最好的,但是至少是比较合适的,现在服务器上线程挂起的现象已经大大减少,并且额外加了一句
if (requestgetHeader("Range") != null) {
ErrShow(request, response, "不支持多线程!");
return;
}
登录后复制
这样避免掉用下载工具的多线程下载。
哪位有更优解,请提出来,一起讨论一下。
刚才看到用守护线程来处理超时线程的解决方案,但另外一个技术主管极力反对,哪位能解释一下,为什么不可用?守护线程在什么情况下可用?谢谢


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10665366.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存