weblogic10之Failed to initialize the application 'wss-1-1' due to error weblogic.

错误信息:('wss-1-1' 是配置的jndi)

<Jan 14, 2011 3:42:09 PM CST> <Error> <Deployer>
<BEA-149205> <Failed to initialize the application 'wss-1-1'
due to error weblogic.application.ModuleException: .


weblogic.application.ModuleException:

at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:290)

at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)


at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:391)


at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:83)


at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:59)


Truncated. see log file for complete stacktrace



Caused By: weblogic.common.ResourceException: Io exception: Connection reset

at weblogic.jdbc.common.internal.XAConnectionEnvFactory.makeConnection(XAConnectionEnvFactory.java:472)


at weblogic.jdbc.common.internal.XAConnectionEnvFactory.createResource(XAConnectionEnvFactory.java:166)


at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1180)


at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1104)


at weblogic.common.resourcepool.ResourcePoolImpl.start(ResourcePoolImpl.java:244)


Truncated. see log file for complete stacktrace

>

提示:错误信息表示访问数据库异常,创建链接池失败。

因此肯定的是jndi配置有问题(即使配置的时候 测试连接成功)



解决:进入console/服务/JDBC/数据源/wss-1-1/配置/连接池/高级

其中有个“重试创建连接的频率:0(默认值)”需要修改成大于0的任意值。

weblogic对此值注释:尝试建立数据库连接的间隔秒数。



如果不设置此值,则在数据库不可用的情况下,创建数据源的操作将失败。如果已设置此值且在创建数据源时数据库不可用,则在您指定的秒数之后,WebLogic Server 将重新尝试在池中创建连接,并会不断尝试创建连接,直到创建成功。




如果设置为 0,则将禁用连接重试。



MBean 属性 (不适用于应用程序模块):

JDBCConnectionPoolParamsBean.ConnectionCreationRetryFrequencySeconds



最小值:0



最大值:2147483647
 
 

http://hi.baidu.com/wa0362/home

提供Oracle技术支持、故障排除、性能优化,IBM小机和存储、Linux、Netbackup技术支持
Weblogic 10.3配置db2连接池Cannot load driver: COM.ibm.db2.jdbc.app.DB2Driver
 

共两步

1)先要从下面目录

[db2inst@linux01 Java]$ pwd

/home/db2inst/sqllib/java

复制db2java.jar  ,db2jcc.jar  ,db2jcc_license_cu.jar 到

/weblogic/user_projects/domains/test_domain/lib

这个目录里的README.txt说的很清楚,这个目录里的.jar文件会在weblogic启动时自动加到CLASSPATH的最后。

这样,在Weblogic启动时可以看到下面的日志:

<Jan 25, 2011 1:56:07 AM CST>
<Notice> <WebLogicServer> <BEA-000395> <Following
extensions directory contents added to the end of the classpath:

/weblogic/user_projects/domains/test_domain/lib/db2java.jar:/weblogic/user_projects/domains/test_domain/lib/db2jcc.jar:/weblogic/user_projects/domains/test_domain/lib/db2jcc_license_cu.jar>

2)这个完了之后,按照标准做法仍然不行。在Test Configuration时会收到下面的错误提示:

Connection test failed.

Cannot load driver: COM.ibm.db2.jdbc.app.DB2Driver

很误导人的一个提示

如果创建JDBC时采用Other,来手动指定Driver Class Name等设定之后在Test Configuration时会提示

找不到 db2jcct2云云...

其实时找不到libdb2jcct2.so  
can't load db2jcct2(windows为db2jcct2.dll)

需要做的就是

]# export LD_LIBRARY_PATH=/home/db2inst/sqllib/lib:$LD_LIBRARY_PATH

然后重起Weblogic,再创建JDBC就没有任何问题了,无论Database Driver用DB2的还是Oracle(weblogic)的。

看来还是没有把/home/db2inst/sqllib/lib加到LD_LIBRARY_PATH里造成的。

针对不同操作系统

On Windows?:

Add the path that includes the db2jcct2.dll file to the PATH
variable. By default, the db2jcct2.dll file is located in %DB2HOME%\bin.

On UNIX:

DB2 Content Manager V8.4 and its APIs load libdb2jcct2.so from
DB2 instance library path defined in LD_LIBRARY_PATH or LIBPATH
variable.

32-bit DB2 Instance:

Make sure that the DB2 instance library path exists in LD_LIBRARY_PATH (Solaris? or Linux) or LIBPATH (AIX?). For example:


For Solaris: export LD_LIBRARY_PATH=/export/home/db2inst1/sqllib/lib:$LD_LIBRARY_PATH 

For Linux: export LD_LIBRARY_PATH=/home/db2inst1/sqllib/lib:$LD_LIBRARY_PATH

For AIX: export LIBPATH=/home/db2inst1/sqllib/lib:$LIBPATH

64-bit DB2 Instance:

For 64-bit DB2 instance, [DB2 Instance Dir]/sqllib/lib links to
64-bit library directory. The following is the link relationship of the
DB2 library directory on UNIX:

[DB2 Instance Dir]/sqllib/lib -> [DB2 Instance Dir]/sqllib/lib64 -> [DB2 Product Installation Dir]/lib64

[DB2 Instance Dir]/sqllib/lib32 -> [DB2 Product Installation Dir]/lib32

But DB2 Content Manager V8.4 supports only the 32-bit libdb2jcct2.so.
To make DB2 Content Manager V8.4 and its APIs work correctly, the path
to 32-bit libraries must be listed before the path to the 64-bit
libraries in LD_LIBRARY_PATH or LIBPATH.

For example:

For AIX?: export LIBPATH=/opt/IBM/db2/V9.1/lib32:$LIBPATH

weblogic热部署的几个疑问
首先感谢各位关注这个帖子。我的问题是这样的:

     据我所知,Weblogic能实现热部署功能,而且有自己的热部署机制,我看到在Weblogic的控制台中有如下三个配置的页面:

servlet-reload-check-secs

resource-reload-check-secs

JSP  page-check-seconds





然后在edocs.bea.com网站上查找到了weblogic.xml对于这三个设置选项的参数介绍:

servlet-reload-check-secs

<servlet-reload-check-secs> 元素定义 WebLogic Server 是否执行 servlet 检查以查看 servlet 是否已更改,如果已更改,是否重新加载。


        值 -1 表示永不检查 servlet。该值为生产环境中的默认值。

        值 0 表示总是检查 servlet。

        值 1 表示每秒检查一次 servlet。该值为开发环境中的默认值。





resource-reload-check-secs

使用 <resource-reload-check-secs> 元素针对 Web 应用程序范围内资源路径中发现的缓存资源执行元数据缓存。该参数标识 WebLogic Server 检查资源是否发生修改的频率,如果已修改,则重新加载。


        值 -1 表示元数据进行缓存,但从不对磁盘进行检查以便找出所做的更改。建议在生产环境中使用该值,以提升性能。

        值 0 表示不执行元数据缓存。持续更改文件的客户必须将该参数设置为大于或等于 0 的一个值。

        值 1 表示每秒重新加载一次。该值为开发环境中的默认值。





JSP  page-check-seconds

设置 WebLogic Server 检查 JSP 文件的时间间隔(秒),以便查看 JSP 文件是否已更改以及是否需要重新编译。如果已发生更改,还会检查依赖关系并递归重新加载。


        值 -1 表示永不检查页面。该值为生产环境中的默认值。

        值 0 表示总是检查页面。

        值 1 表示每秒检查一次页面。该值为开发环境中的默认值。







就我的理解,应该是分别配置Servlet、Resource和Jsp的来控制对应三类所控制的内容的热部署时间间隔,如果设置为-1的话那么这一项就不支持热部署。



我这边的问题是:

因为开发方在项目开发中,使用了开发方的框架产品AB对自己控制范围之内的内容也支持热部署,由于weblogic也支持热部署,担心两者的热部署功能同时启用,特别是对同样的内容进行热部署控制时,可能会造成冲突,所以开发方希望搞清楚Weblogic对三类热部署设置分别的控制范围是什么?也就是servlet、jsp、resource这三类,每一类下面可以包含哪些内容?!
 
 
 
weblogic内存占用过大调优
 
WebLogic Server Hang产生的原因一般为:

系统内存不足

系统cpu忙

系统文件描述符数目不足

线程死锁

JVM有GC方面的bug

对于一些特定的情况可以使用truss命令跟踪系统调用来进行分析





系统内存不足

出现OutOfMemoryError或是观察到内存吃紧

操作系统本身的剩余内存

通过top或是vmstat观察

操作系统的swap区

Swap区太小可能导致编译jsp时报“Not enough space”的错

操作系统kernel参数中maxdsiz的大小

如果观测到数据库连接池里的连接泄漏,极可能是内存泄漏的先兆





系统内存不足

JVM的heap区大小

通过java命令行中的-Xms,-Xmx指定,建议最小值和最大值设成一样

可以通过weblogic console上server/monitor/performance来观察其使用情况

建议生产系统最少256M,一般情况下可以设置为系统剩余物理内存的80%

Heap size太大在一些jvm上会有问题

对于sun和hp的jvm,permanent size太小也会出OutOfMemoryError

在java命令行上加-XX:MaxPermSize=128m





系统内存不足

尽量减少内存消耗

Session中不要放大的数据,并尽量在不再需要的时候remove掉;如果可以调整session timeout到较小的值

避免在J2EE server端应用里边调用awt/swing作图

调整ejb的cache/pool设置





系统内存不足

内存泄漏

可以通过weblogic console来观察jvm的heap memory使用情况来获知是否有内存泄漏情况

采用第三方辅助工具来获取更详细信息

Jprobe/OptimizeIt

有可能是weblogic的bug,但绝大部分情况是由用户的应用引起的

最常见的代码问题是数据库连接没正常关闭

比较好的写法是:

Connection conn = null;

Statement stmt = null;

ResultSet rset= null;

try

{

conn = getConnection()…

}

catch(SQLException sqle)

{

}

finally

{

try{rset.close();}catch(Exception e){}

try{stmt.close();}catch(Exception e){}

try{conn.close();}catch(Exception e){}

}







系统cpu忙

如果用户访问量很大,cpu占用很高(user态)并不是异常

如果是kernel态很多,需要OS厂商调整操作系统

采用top找到占用cpu很多的进程

如果是非weblogic进程,应该考虑将其移到另外的server上运行

如果是运行weblogic的java进程,通过做thread dump(详细信息后边会介绍到)来确认是那段代码导致了这么高的cpu使用(也有可能是os/jvm本身不正常)





系统文件描述符数目不足

Log中有“too many open files”的错误

表示达到了系统对一个进程能同时打开的文件数的限制

ulimit ?Ca ?CH 可以查看当前限制

ulimit ?Cn number可以来更改当前环境的设置,建议至少设到4096

Solaris上可以通过/usr/proc/bin/pfiles pid来查看指定进程的限制和当前使用的file descriptor数目

Solaris上root用户可以通过/usr/proc/bin/plimit -n soft,hard pid 来动态更改进程的文件描述符的限制







线程死锁

对于原因不明的hang或是响应慢,最根本的方法就是获取thread dump信息

对于windows系统,在运行java的窗口按Ctrl+Break

对于unix系统,首先用ps找到运行weblogic的java进程的pid,然后执行kill ?C3 pid

JVM将负责将所有java进程的状态、执行堆栈dump到其标准输出

为了方便获取thread dump信息,在weblogic启动的时候,最好将其标准输出重定向到一个文件

为了反映线程状态的动态变化,需要接连多次做thread dump,每次间隔10-20s





线程死锁

对于thread dump信息,主要关注的是线程的状态和其执行堆栈

线程的状态一般为三类

Runnable(R):当前可以运行的线程

Waiting on monitor(CW):线程主动wait

Waiting for monitor entry(MW):线程等锁

一般关注的都是第一和第三种状态的线程

Cpu很忙则关注runnable的线程

Cpu闲则关注waiting for monitor entry的线程

一种典型的死锁是由于在server端应用(比如servlet)中请求由同一weblogic实例serve的资源

解决办法就是将该servlet放到另外的执行队列里去执行





JVM有GC方面的bug

打开jvm的gc log

在java命令行上加上-verbose:gc

GC的log输出在java进程的标准输出里

在hp的jvm上,可以通过在java命令行上加

-Xverbosegc:file=gcfilename来将gc log写到指定的文件

其输出类似:

[GC 15639K->13700K(65280K), 0.0068439 secs]

调整jvm的内存设置和gc算法

升级jvm或是os patch





mit ?Cn number可以来更改当前环境的设置,建议至少设到4096

Solaris上可以通过/usr/proc/bin/pfiles pid来查看指定进程的限制和当前使用的file descriptor数目

Solaris上root用户可以通过/usr/proc/bin/plimit -n soft,hard pid 来动态更改进程的文件描述符的限制







线程死锁

对于原因不明的hang或是响应慢,最根本的方法就是获取thread dump信息

对于windows系统,在运行java的窗口按Ctrl+Break

对于unix系统,首先用ps找到运行weblogic的java进程的pid,然后执行kill ?C3 pid

JVM将负责将所有java进程的


java.net.SocketException: Too many open files
 
java.net.SocketException: Too many open files



linux tomcat socket

java.net.SocketException: Too many open files

at java.net.PlainSocketImpl.socketAccept(Native Method)

at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)

at java.net.ServerSocket.implAccept(ServerSocket.java:450)

at java.net.ServerSocket.accept(ServerSocket.java:421)

at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60)

at org.apache.tomcat.util.net.PoolTcpEndpoint.acceptSocket(PoolTcpEndpoint.java:407)

at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:70)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

at java.lang.Thread.run(Thread.java:595)



tomcat""



http://www.bea.com.cn/support_pattern/Too_Many_Open_Files_Pattern.html



1ulimit -a

   [root@test security]# umlimit -a

-bash: umlimit: command not found

[root@test security]# ulimit -a

core file size        (blocks, -c) 0

data seg size         (kbytes, -d) unlimited

file size             (blocks, -f) unlimited

max locked memory     (kbytes, -l) unlimited

max memory size       (kbytes, -m) unlimited

open files                    (-n) 1024

pipe size          (512 bytes, -p) 8

stack size            (kbytes, -s) 8192

cpu time             (seconds, -t) unlimited

max user processes            (-u) 7168

virtual memory        (kbytes, -v) unlimited

[root@test security]#

open files 1024



2. ulimit -n 4096

[root@test security]# ulimit -n 4096

[root@test security]# ulimit -a

core file size        (blocks, -c) 0

data seg size         (kbytes, -d) unlimited

file size             (blocks, -f) unlimited

max locked memory     (kbytes, -l) unlimited

max memory size       (kbytes, -m) unlimited

open files                    (-n) 4096

pipe size          (512 bytes, -p) 8

stack size            (kbytes, -s) 8192

cpu time             (seconds, -t) unlimited

max user processes            (-u) 7168

virtual memory        (kbytes, -v) unlimited
 
weblogic 9 生产模式

这两天在用weblogic 9 发布应用,有些体会。

在创建domain的时候,开发模式下,启动和发布服务是没有问题的。但是如果是生产模式,就遇到了一点问题。

当然如果是windows版本应该是没有什么太大问题的,我测试得还是比较顺利。这次应用是发布在HPUnix上的,选择生产模式,在启动服务的时候,提示输入用户名,输入默认的weblogic,

回车,不知道为什么就是不出来提示输入密码,而是直接shutdown了。原以为是版本的问题,特地从9.0升级到9.2,结果还是不行。于是查看了一下
startWebLogic.sh的教本,增加了两个环境变量WLS_USER和WLS_PW,其值就是用户名和密码,再启动服务就可以了。

在unix端启动服务,当然最好是放入后台运行,几年没有使用unix,有些命令都忘记了,问了之后才想起nohup命令。

nohup startWebLogic.sh >xxx.log &

停止weblogic最好使用stopWebLogic.sh,当然如果实在不行,就使用kill -9了,呵呵。

其实早些年,自己是写一个针对一个进程进行启动、停止、查看状态的脚步,还是不错的。

//----------------------------------------

今天和bea的支持做了接触,学到了一些weblogic的使用。

前面提到生产模式,输入用户名后就shutdown,是因为安装weblogic的时候,没有按照安装指南超作。其实只要完整地照着安装步骤来安装,应该是没有问题的。

主要是修改一个目录的可执行权

chmod -R +x ./bea/weblogic92/server/native

如果后台启动,还是要指定用户名和口令的,所以在应用的目录(startWebLogic.sh所在的目录),增加boot.properties文件,内容为:

username=weblogic

password=weblogic

启动weblgoic后,这个文件会被加密的。同时加密后的文件会被cache到servers/AdminServer/security目录,所以如果修改口令后,记得要先清空一下cache的文件。

还有一个比较重要的是,使用weblogic,最好到bea的网站上查看当前版本对应的操作系统的补丁信息,不打上操作系统的补丁,使用weblogic就有一定的不稳定性了。

内存管理:如果是4G内存的服务器,建议按如下配置。

修改 setDomainEnv.sh 文件

MEM_ARGS="-Xms1536m -Xmx1536m -Xss1m"

export MEM_ARGS

修改 MaxPermSize=256m

weblogic 的应用 常见问题处理 db2 链接不上(转载)的更多相关文章

  1. 宝塔控制面板创建ftp后链接不上的解决方法

    很多的新手在安装宝塔面板并且创建完ftp管理后链接ftp居然链接不上?有许多朋友都不知道本站q302博客也是基于宝塔控制面板管理的,本站在安装网站完成后也和你们一样ftp链接不上,后面经过多次测试之后 ...

  2. 手把手教你Chrome浏览器安装Postman(含下载云盘链接)【转载】

    转载自:http://www.ljwit.com/archives/php/278.html 说明: Postman不多介绍,是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.本文主要 ...

  3. cassandra运行出现了Unable to gossip with any seeds,cqlsh链接不上,提示connection refused处理办法

    cassandra运行出现了Unable to gossip with any seeds,cqlsh链接不上,提示connection refused处理办法 问题描述 当启动了cassandra之 ...

  4. sql developer链接不上oracle 报 The Network Adapter could not establish the connection

    安装时候报 : Oracle 支持在具有 DHCP 分配的公共 IP 地址的系统上进行安装.但应使用静态 IP 地址来配置系统的主网络接口, 以便 Oracle 软件正常工作.有关在配置有 DHCP ...

  5. mac 解决安卓模拟器链接不上网络

    方法1.临时方法,每次启动都要加114.114.114.114 1.进入到下面的目录 /Users/anxiaodong/Library/Android/sdk/emulator 2.执行以下命令 e ...

  6. Weblogic补丁升级常见问题

    转至:https://blog.csdn.net/weixin_44659716/article/details/106804177 常用企业级版本:Weblogic 11g(weblogic10.3 ...

  7. weblogic应用平台常见问题小结

    http://blog.sina.com.cn/s/blog_4aa08b7c010004yc.html 1.当以另一用户登录系统后,系统却显示的是前一用户的身份.    这是由于页面信息没有刷新造成 ...

  8. appium+python+iOS 环境搭建与使用中常见问题的解决方案链接

    (1)WebDriverAgent 安装入门篇:https://www.cnblogs.com/zhanggui/p/9239827.html 重点摘要: 在WDA的Github上也给出了WDA的特性 ...

  9. jquery改变链接移上光标时的颜色实例

    效果体验http://hovertree.com/texiao/jquery/18/ 完整代码如下: <!DOCTYPE html> <html> <head> & ...

随机推荐

  1. jQuery幻灯插件:Nivo Slider

    使用步骤 1.引入css文件 default.css 设置展示插件所需的样式,像控制导航键,导航按钮样式,当然你可以自己写个样式 nivo-slider控制图片样式,插件所需的CSS文件 <li ...

  2. requirejs和r.js的心得

    requirejs的GitHub:requirejs r.js的GitHub:r.js grunt-contrib-requirejs的GitHub:grunt-contrib-requirejs r ...

  3. JS类百度的动态提示框思路及完成

    参考的代码来自这里: http://www.jb51.net/article/28075.htm 不过说实话,这个网站太烂了,不适合看代码,另外写代码的人是个大牛,但是却没有模块化思想,所以朕不高兴直 ...

  4. java的@see注释

    @see注释用法 @see 类名 @see #方法名或属性名 @see 类名#方法名或属性名

  5. request.ServerVariables获取环境变量

    Request.ServerVariables("HTTP_X_FORWARDED_FOR")  透过代理服务器取得客户端的真实IP地址,有些用此方法读取到的仍然是代理服务器的IP ...

  6. (转)jquery.validator规则

      登录|注册     收藏成功 确定 收藏失败,请重新收藏 确定 标题 标题不能为空 网址 标签 摘要   公开 取消收藏             分享资讯 传PPT/文档 提问题 写博客 传资源 ...

  7. MTK Android 默认值修改笔记

    1.设置菜单: 1.1位置信息(Location)默认关闭: 请将 alps\frameworks\base\packages\SettingsProvider\res\values\default. ...

  8. 初级班 Linux使用

    ifconfig 查看IP地址 重新启动网卡服务 service network restart 笔记 1.通过远程工具登陆到linux后,所在的位置是当前登录用户的家目录(home director ...

  9. Linux ulimit 系统资源控制

    ulimit 的功能和用法 ulimit 功能简述 假设有这样一种情况,当一台 Linux 主机上同时登陆了 10 个人,在系统资源无限制的情况下,这 10 个用户同时打开了 500 个文档,而假设每 ...

  10. 用CALayer实现聚光灯效果

    效果图: 代码部分: #import "ViewController.h" @interface ViewController () @property (nonatomic, s ...