关于Weblogic线程数的几点使用

发表于3年前(Dec 24, 2014 11:05:58 AM)  阅读 797  评论 0

分类: 开发运维环境

标签: Weblogic threadpool 线程数

一、背景
最近负责做一个平台的poc测试,性能测试要求测试1000并发下平台的表现,web服务器采用的是weblogic,版本是11g,10.3.6,所有操作都是基于这个版本(因为以前修改线程数的操作有些基于这个版本不能生效)。在LoadRunner压1000并发下,发现应用表现并不好,响应时间明显增加。

二、分析
监控服务器资源,发现集群平台服务器负载并不高,而web应用服务器负载同样也不高,服务器性能并没达到瓶颈。进入weblogic控制台,查看线程池,发现在压1000并发的时候,请求积压队列明显较多,而线程数只有50左右。说明一下,weblogic产品模式下,默认初始线程数为25,开发模式下好像是15,weblogic11g采用的是自调整线程池,看名字就可以猜出,他会根据应用情况自动增加减少线程数,而实际情况下,在压力增大的情况下,weblogic也确实增加了线程数,但是增加的线程数不足以应付该需求,于是自然而然地想到了增加线程数。

三、解决
weblogic11g已经不支持在控制台修改线程数

......

Weblogic JRockit dump

发表于3年前(Dec 24, 2014 11:04:48 AM)  阅读 969  评论 0

分类: 开发运维环境

标签: Weblogic -Xnoopt dump Illegal memory access jrockit optimized 代码优化 服务器挂起

前天生产环境又挂了,幸好是下班时间,用的人不多,现场实施马上重启了。最近不忙,于是仔细分析了下日志文件,以前都没认真处理过,都是重启完事。生产环境用的redhat5.6,weblogic10.3,现在认真回查以前的日志文件,发现原来生产环境长的时候100多天,短的时候30多天就会挂一次,汗,原来这个问题这么严重,更加要重视。

开始网上查找资料,翻阅书籍。在《Weblogic 企业级运维实战》一书中找到了相关有用的信息。在常规的服务器挂起中有一项是“代码优化中服务器挂起”,见P164原文“ 这个模式比较简单,顾名思义,当JVM在进行代码优化时,比如JIT编译时,会占用大量的cpu资源,有时对外表现为暂时没有响应。一般情况下,优化做完了服务器即能自动恢复正常,所以这种情况顺其自然就可以,没有特别刻意地去处理。”而实际上,每次我们的代码优化都导致了JVM崩溃,无法自动恢复服务。既然这样,那么能不能禁用代码优化呢。答案是肯定的,书上也给出了答案。p216本地内存OOM解决方法:JVM如果使用本地内存,可能会发生运行时类加

......

清空weblogic日志文件nohup.out

发表于3年前(Dec 24, 2014 11:02:45 AM)  阅读 568  评论 0

分类: 开发运维环境

标签: nohup.out 清空日志

通常使用linux服务器,我们都是需要在使用nohup模式不挂断地运行命令。最近发现服务器磁盘空间满了,查了半天发现原来nohup.out文件原来达到了1.5g,运行了一年1.5g的日志其实也不算打,可是我的服务器出去安装程序,可用空间总共不到5g。由此可见,nohup.out文件是一直增量存在的,重启weblogic后,nohup.out文件内容并不会清除,会继续写下去。

如果weblogic服务是关闭的,我们可以直接删除nohup.out文件,但是如果服务器正在运行,而又不能现在关闭,我们可以使用cp /dev/null nohup.out命令来将日志清除,且不影响服务的运行。

如果磁盘空间不允许的话,需要定时清理日志,可以使用crontab命令来添加定时任务,定时进行清理。

安装Maven配置Eclipse插件

发表于3年前(Dec 24, 2014 10:51:04 AM)  阅读 361  评论 0

分类: Java 开发运维环境

标签: m2eclipse maven

文章格式不好调,我是现在word里面写的,贴上来样式都变了,把原稿提供给大家下载吧,转载的话,请大家提供出处,尊重一下我的劳动成果:/uploads/2014/11/24/Maven-Install.doc

工作前就听过maven,没用过,最近公司要用maven,买了本maven实战(在这里推荐这本书,入门简单),学习了一下,感觉确实很强大,马上就喜欢上了它,以后应该都会使用它了。

我简单讲下我主要使用的maven功能:
1、jar包管理。使用maven,不再需要将jar包引入项目,或者将jar包添

......

HQL分页sql遇到distinct时count总数不对

发表于3年前(Dec 24, 2014 10:45:17 AM)  阅读 806  评论 0

分类: Java 数据库

标签: countingsort count hql

项目中经常会有一个BaseDao,所有Dao都会继承这个BaseDao然后实现各自的Dao接口,BaseDao主要是封装了所有Dao通用的方法,其中就有分页查询。

分页查询每次会执行两个sql,首先一个sql用来统计总记录数,第二个sql才是分页查询指定数据。这是常用的一个方法,至少笔者所接触的项目基本都这么做的,至今还是没碰到过什么问题。

但如果hql语句包含distinct时,发现查询出来的记录总数不对,会大于实际记录数。

数据同步引发的一些思考

发表于3年前(Dec 24, 2014 10:39:16 AM)  阅读 586  评论 0

分类: Java 数据库 案例

标签: etl truncate 批量删除 数据同步

问题场景描述:
有Oracle数据库服务器A,有Oracle数据库服务器B,有第三方数据存储系统C,服务器A和C之间只能通过中间库B访问,现A定时产生大量数据,需要同步给C,C不只是简单的获取数据,还需做分析处理。这里没有采用第三方ETL工具,原因不赘叙,现在看如何自己编写代码完成同步过程。

分页的SQL一定要加上主键排序

发表于3年前(Dec 24, 2014 10:37:00 AM)  阅读 467  评论 0

分类: Java 数据库

标签: 分页sql 数据重复

换了一家新公司,做电商的,前两天经理交代一个任务,处理客户反馈的一个问题,问题很简单,是产品分页的时候,发现有两页竟然出现了同一个商品,我开始查代码。

系统数据持久层采用的是mybatis,之前没用过,听说过,一直用的hibernate。这里说句题外话,个人感觉hibernate还是好用点,hibernate配置要稍微简单点,配置映射关系就行,不需要写复杂sql,mybatis就要把sql写出来,写出来当然就麻烦点,我就看了我们系统里面的sql,一堆if,非常复杂,当然复杂的sql也有自身优势,实现的功能就更加灵活一点,有时使用hibernate碰到很复杂的裸机就发现无法配置,不过通常这时候我们会直接换成用jdbc直接查询,也不影响。耐着性子看了下sql,里面排序条件很多,都是根据商品价格,销量啊什么的,我把查询sql在后台打印出来,因为我不能直接连接正式库,我把sql稍微改了一下,一次查了10页的数据,发给现场人员让他帮忙把结果导出来。为什么一次查10页,当时是怕麻烦人家。导出的表格发现依然没有重复数据(之前已经查过产品表,没有录入重复数据)。我盯着那句sq

......

ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程

发表于3年前(Dec 24, 2014 10:35:37 AM)  阅读 807  评论 0

分类: 数据库

标签: ora ORA-12516

今天用plsql连接数据库时发现这么一个错误,造成无法连接,百度发现,应该是processes和sessions值超出了限制导致的。

启动cmd:
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 – Production on 星期三 11月 21 18:47:40 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn / as sysdba
已连接。
SQL> show parameter processes
NAME TYPE VALUE
———————————— &mda

......

ORA-01034 ORA-27101错误

发表于3年前(Dec 24, 2014 10:34:49 AM)  阅读 363  评论 0

分类: 数据库

标签: ora-01034 ora-27101

今天同事oracle服务器出问题,登录不上,但是服务都已正常启动,叫我帮忙看下。用sqlplus登录发现出现下列错误信息:
ORA-27101 Shared memory realm does not exist
ORA-01034 ORACLE not available

百度了一下,乱七八糟的什么都有,有位兄弟的解决方法我试了一下,没问题,现在贴出来一起分享:

总的来说是数据库在启动的时候出现了问题,启动时先启动实例,再mount数据库,再open数据库,原因复杂。但是我说的下面这个方法可以解决:

登录到安装数据库的这台电脑上,在运行中输入cmd,也就是你上面贴出来的这个界面,

输入sqlplus /nolog,回车,

这时出现了SQL>,然后再输入connect / as sysdba;回车,

再输入startup,回车,等待一会,等这个命令运行完之后,再连接数据库,就能进行查询、插入等正常操作了。