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. Linux shell入门基础(三)

    三.输入输出重定向及管道 01.过滤器   Linux过滤器分三种:     1.过滤器(重定向只对过滤器有作用) #gzip a(将a作为输入源,涉及到输入输出)     2.编辑器     3.交 ...

  2. mongodb入门教程二

    title: mongodb入门教程二 date: 2016-04-07 10:33:02 tags: --- 上一篇文章说了mongodb最基本的东西,这边博文就在深入一点,说一下mongo的一些高 ...

  3. 使用socket实现聊天功能

    public class Service { //服务器 public static void main(String[] args) { ServerSocket serverSocket=null ...

  4. ASP.NET-FineUI开发实践-3

    1.参照模拟数据库分页通过缓存重写内存分页,优化页面响应速度 Grid的响应速度是硬伤,我写了个通用方法把所有数据放在缓存中模拟数据库分页,比自带的缓存分页快很多,这里贴上实体类的通用方法,DataT ...

  5. 从零基础入门JavaScript(2)

    在上次的学习当中,我已经对JavaScript有了一定基础上的理解,比如:JavaScript的发展史,JavaScript中变量的命名,各种运算符,以及数据的类型与它们之间的转化.还有就是一些最基本 ...

  6. CSS选择符详解之关系选择符篇

    原文:http://www.chinaz.com/web/2012/1017/278553.shtml 相信大家都对CSS选择符都不陌生,选择符包含:元素选择符.关系选择符.属性选择符.伪类选择符.伪 ...

  7. android 检查网络是否可用,如果不可用弹出设置,让用户改变

    /** * 校验网络,如果没有网络,返回true * * @return boolean */ @Override public boolean hasInternetConnected() { Co ...

  8. sql - 修改结构

    1,修改表名 语法: sp_rename old_table_name, new_table_name 例如: sp_rename t_review, t_business 2,修改字段: MySQL ...

  9. cocoapods出现Diff: /../Podfile.lock: No such file or directory错误

    第一种解决方法: 关闭Xcode,重新执行pod install,之后再重新打开Xcode运行. 第二种解决方法: 删除以下文件: xcworkspacePodfile.lockPods文件夹~/Li ...

  10. jsp中的动作元素:<jsp:plugin>

    <jsp:plugin>用来产生客户端浏览器的特别标签(object或embed),可以使用它来插入Applet或JavaBean. 当jsp文件被编译把结果发给浏览器是,<jsp: ...