发布新日志

  • Websphere - 配置Oracle数据源(转)

    2009-07-15 10:54:31

    Websphere 6.0下Oracle数据源配置
    一、配置Oracle数据库
    打开Oracle Enterprise Manager Console,右键点击数据库FLOW—〉查看/编辑详细资料—〉所有初始化参数—〉找到processes(进程和会话),将该连接数最大值设置为150,设置好后,数据库配置完毕。

    二、Websphere6.0下创建Oracle数据源
    1. 启动Websphere6.0服务

    2. 打开IE浏览器,在地址栏中输入:http://localhost:9060/ibm/console/,登陆Websphere6.0管理控制台

    3. 在导航栏左侧选择:环境-〉Websphere变量

    找到ORACLE_JDBC_DRIVER_PATH ,输入ORACLE_JDBC_DRIVER_PATH 的值,指定ORACLE数据库驱动jar包的位置,确定,保存。

    4. 在导航栏左侧选择:资源-〉JDBC提供者
     
    5. 在右侧JDBC提供者新建页面点击“新建”按钮 

    6. 按照下图选择ORACLE数据库相关类型设置,点击下一步,完成第一步设置:

    7. 配置页面的设置全部默认,不用修改,点击确定,保存。

    8.点击刚才新建的ORACLE JDBC DRIVER,进入配置页面,点击右侧的“数据源
    9.点击“新建”,新建数据源:

    10. 输入名称:inforflowDS;JNDI名称:jdbc/inforflowDS;数据存储 helper 类名;

    Oracle 数据源属性中输入URL:

    jdbc:oracle:thin:@数据库服务器IP:1521:oracle             

    点击“确定”保存。

    11. 点击“inforflowDS”数据源,点击右侧的相关项:J2EE 连接器体系结构(J2C)认证数据条目

    12. 点击“新建”,输入用户别名flow_oracle,用户标识:system 密码:admin,点击确定,保存

    13. 打开inforflowDS数据源配置页面,在组件管理的认证别名下拉框中选择上面刚刚新建好的J2EE 连接器体系结构(J2C)认证数据条目——flow_oracle点击确定,保存设置

    14. 在数据源页面点击“测试连接”

    15. 测试连接成功即可。

    三、Websphere6.0下ORACLE数据源最大连接数配置
    在数据源配置页面,点击“连接池属性”     

    设置最大连接数为100,

    确定,保存,配置结束。

    四、Oracle初始数据备份与还原
    1. 备份:

    开始->运行 cmd

    在cmd中输入EXP SYSTEM/ADMIN@FLOW

    然后按照提示进行下面接下来的步骤既可,备份文件保存在当前目录下。

    2. 恢复:

    将oracle数据库中相应的流程定义表删除;

    开始->运行 cmd

    在cmd中输入IMP SYSTEM/ADMIN@FLOW

    然后按照提示进行下面接下来的步骤既可,将当前目录下的备份文件恢复到Oracle数据库;

    重新创建索引

  • WebSphere中流行数据库连接池的配置

    2008-12-08 11:49:36

    WebSphere中流行数据库连接池的配置
  • Websphere内存溢出的日志

    2008-12-08 11:32:12

    项目中碰到Websphere内存溢出的情况。原因可能:出现过多内存泄漏,或者分配过多大内存等。解决方法:
    1、进入was管理控制台,选择 应用程序服务器 > server1 > 进程定义 > Java 虚拟机,将"最大堆大小"改为768或1024以上(跟机器内存相关,你的机器最好有较大内存)。保存。
    2、优化你的程序,减少要求分配较大内存的设计,优化数据连接池。
    3、给was打补丁。ibm网站上有相关补丁下载,不过最好升级到同系列的最新版本
    4、修改启动文件,使之不产生这些文件,设置如下:
        export IBM_HEAP_DUMP=false
        export IBM_HEAPDUMP=false
        export IBM_HEAPDUMP_OUTOFMEMORY=false
        export IBM_JAVACORE_OUTOFMEMORY=false
    分析以上4中方法,只有方法2才是根本解决之道。
    针对4,IBM网站上有详细阐述,特附如下:
    http://www-1.ibm.com/support/docview.wss?uid=swg21140641


    用于故障诊断的工具:
    http://www.ibm.com/developerworks/cn/websphere/techjournal/0702_supauth/0702_supauth.html

    在您对 WebSphere Application Server 进行故障诊断时,日志记录工具很可能是您使用的第一项问题确定功能。这一工具集向用户和 IBM Support 提供深入了解运行时的能力,这种能力在确定基本问题时是必需的。

    WebSphere Application Server 日志记录基础结构是基于标准 Java 的日志记录基础结构(即java.util.logging)建立的。在一个典型的 WebSphere Application Server 配置中,日志记录被设置为将普通和严重的日志消息分别写入两个文件,即SystemOut.log 和 SystemErr.log。
       
    其他日志
    WebSphere Application Server 中还有其他两个日志文件:JVM native_stdout 和 native_stderr 文件。与 SystemOut.log 和 SystemErr.log 不同,这两个文件实际上是由 JVM 本身处理的,只包含与该 JVM 的操作有关的消息,而不包含来自 WebSphere Application Server 运行时的消息。


    假设在native_stderr.log里有这么一段日志:
    <AF[3160]: Allocation Failure. need 2621456 bytes, 195 ms since last AF>
    <AF[3160]: managing allocation failure, action=2 (5049520/1073740288)>
      <GC(3538): GC cycle started Wed Jul 30 17:41:02 2008
      <GC(3538): freed 4619080 bytes, 0% free (9668600/1073740288), in 6135 ms>
      <GC(3538): mark: 992 ms, sweep: 28 ms, compact: 5115 ms>
      <GC(3538): refs: soft 0 (age >= 32), weak 0, final 7, phantom 3>
      <GC(3538): moved 6184798 objects, 298397088 bytes, reason=1, used 101520 more bytes>
    <AF[3160]: managing allocation failure, action=3 (9668600/1073740288)>
    <AF[3160]: managing allocation failure, action=4 (9668600/1073740288)>
    <AF[3160]: managing allocation failure, action=6 (9668600/1073740288)>
    JVMDG217: Dump Handler is Processing OutOfMemory - Please Wait.
    JVMDG315: JVM Requesting Heap dump file
    JVMDG318: Heap dump file written to C:\Program Files\IBM\WebSphere\AppServer\profiles\default\heapdump.20080730.174102.3784.phd
    JVMDG303: JVM Requesting Java core file
    JVMDG304: Java core file written to C:\Program Files\IBM\WebSphere\AppServer\profiles\default\javacore.20080730.174149.3784.txt
    JVMDG274: Dump Handler has Processed OutOfMemory.
    <AF[3160]: Insufficient space in Javaheap to satisfy allocation request>
    <AF[3160]: completed in 92673 ms>


    第一行是说需要2621456 bytes内存,分配失败;
    然后第二行告知可用内存只有5049520 bytes;
    第三行GC开始回收内存;
    第四行回收了4619080 bytes,总的可用内存变为9668600bytes。0% free是指当前可用/总内存大小,9668600/1073740288=0.0090,被约等于0了。
    第五行开始不知道在干什么,猜测是移动数据以获取连续空间?
    第十一行终于报内存不足了,然后会记录两个日志文件,heapdump、javacore.log。
    根据这两个日志的时间,可以到sysetemOut.log中查看当时在做什么操作。

    再看一段:
    <AF[2]: Allocation Failure. need 524 bytes, 383 ms since last AF>
    <AF[2]: managing allocation failure, action=0 (528723272/536869376)>
      <GC(2): GC cycle started Sat Apr 05 21:40:31 2008
      <GC(2): freed 3529224 bytes, 99% free (532252496/536869376), in 10 ms>
      <GC(2): mark: 7 ms, sweep: 3 ms, compact: 0 ms>
      <GC(2): refs: soft 0 (age >= 32), weak 0, final 7, phantom 0>
    <AF[2]: completed in 11 ms>


    这段应该说明,可用内存很大,但申请连续内存时可能还是不足。这段日志记录的是gc回收后就正好够了,所以没有了上一段日志中的move。

    嗯,仅仅是猜测。
  • WebSphere Application Server v6中的问题诊断以及日志策略(转摘)

    2008-12-08 11:21:22

       WebSphere Application Server 是一个基于 Java 的 Web 应用程序服务器,它构建在开放标准的基础之上,能帮助您部署与管理从简单的 Web 站点到强大的电子商务解决方案的诸多应用程序。它遵循 J2EE 并为 Java 组件、XML 和 Web 服务提供了一个可移植的 Web 部署平台,这个平台能够与数据库交互并提供动态 Web 内容。

       随着WebSphere Application Server产品在中间市场的份额不断增加,使用WebSphere Application Server作为IT基础产品的企业越来越多,作为我们企业的IT部门,很重要的一部分工作就是管理WebSphere Application Server。由于业务系统的复杂性,以及IT系统的庞大等多种原因,我们的系统不可避免的会出现这样那样的问题,要定定位和解决这些问题,WebSphere Application Server的日志将起了很关键作用。怎么管理以及查看这些日志呢?

        本文作者所一直从事WebSphere Application Server的相关服务工作,积累了许多WebSphere Application Server的管理经验。我们希望能够通过一系列的文章与读者分享这些经验想,帮助您更好管理好你的WebSphere Application Server。

        本文将从问题诊断入手,在解决一系列具体问题的过程中,介绍配置日志的策略以及具体参数的用法,为您提供诊断问题的途经以及指定日志策略的方式和方法。

    问题诊断的方法

       在我们基于J2EE的应用程序中,问题的出现可能在各个相关的环节出现。所以首先要明确问题是发生在哪个组建上的,我们可以通过测试单个组件,检查他们成功或者失败来把问题进行一个隔离。从而分析相关日志来定位问题。下图是一些常用的测试方法以及相关日志的位置。

     

     

    当我们的系统出现不能访问现象时,我们一般按照一下步骤进行分析:

    1.使用浏览器通过80端口访问应用(例如:http://localhost/myWeb/)

    2.使用浏览器通过9080(根据实际端口而定)端口访问应用(例如:http://localhost:9080/myWeb)如果访问正常,说明HTTP server的请求没有正常转发,这时候通过http://localhost来验证HTTP 服务器是否正常启动,如果正常说明HTTP server 运行正常,此时请检查http_plugin.log查看插件日志,并且查看HTTP server 的配置文件httpd.conf,查找WebSpherePluginConfig 所加载的plugin-cfg.xml文件是否正确。

    3.如果通过9080(根据实际端口而定)端口不能访问应用程序,可以通过http://localhost:9080/snoop 验证应用服务器是否存活。如存活则如图:

     

     

    一般说明应用程序存在问题,查看分析相关日志:System.Out.log 、SystemErr.log、activity.log定位应用程序引起的问题。

    日志介绍

    System.Out.log 、SystemErr.log 属于JVM 日志,。WebSphere Application Server 写格式化的消息到 System.out日志。另外,应用程序和其他代码可以写入这些日志,通过print() 和 println() 方法实现。有些开发工具箱(Developer Kit)内置如 Throwable 类的 printStackTrace() 方法也可以写入这些日志。通常,System.out 日志用于监控应用程序服务器的运行是否正常。System.out 日志可用于问题确定,但建议改为使用 IBM 服务日志和日志分析器的高级能力。System.err 日志包含异常堆栈跟踪信息,这在执行问题分析时很有用。

    因为每个应用程序服务器都代表 JVM,所以每个应用程序服务器和它的所有应用程序都有一组 JVM 日志,缺省情况下该日志位于 installation_root/profiles/profile_name/logs/server_name 目录。在 WebSphere Application Server Network Deployment 配置的情况下,也为 Deployment Manager 和每个节点管理器创建 JVM 日志,因为它们也代表 JVM。

    activity.log为IBM 日志,应用程序服务器从各种 WebSphere Application Server 组件的活动创建服务或活动日志文件。服务或活动日志文件(activity.log)是二进制文件,它位于 install_root 的 logs 目录中,我们可以使用日志分析器用于查看服务或活动日志文件。

    查看 JVM 日志

    JVM 日志是作为纯文本文件写的。因此,查看这些日志没有特殊的要求。它们位于 installation_directory/profiles/profile_name/logs/server_name 目录中,并在缺省情况下命名为 SystemOut.log 和 SystemErr.log。

    有两种技术可用于查看应用程序服务器的 JVM 日志。

    l         使用管理控制台。它支持从远程机器查看 JVM 日志。

    l         使用存储日志的机器上的文本编辑器。

    此任务的步骤

    1.从管理控制台查看 JVM 日志。

    启动管理控制台。

    在控制台导航树中单击故障诊断 > 日志和跟踪。要查看特定服务器的日志,单击服务器名以选择它,然后单击 JVM 日志

    选择运行时选项卡。

    单击与您要查看的日志相应的查看。

    2.在服务器硬盘查看JVM 日志。

    转至存储日志的机器。

    在文本编辑器中打开文件或将文件拖放到编辑和查看程序中。

    日志格式:

    根据 JVM 日志配置的不同,格式化的消息可以用基本或高级格式写入 JVM 日志。

    消息格式 格式化的消息可以使用这两种格式中的一种写入 JVM 日志:

    基本格式 这是 WebSphere Application Server 的较早版本中使用的格式。

    高级格式 如果可能,则通过添加有关事件的信息来扩展基本格式。

    下面是一些日志常用格式,可以帮助我们更好的查看日志,可能找到的采用这些格式的各种字段如下:

    TimeStamp

    时间戳记是使用其被格式化所处于的进程语言环境格式化的。它包含标准日期(例如,YYMMDD),以毫秒为精度的 24 小时时间和时区。

    ThreadId

    从发出消息的线程的散列代码生成的 8 个字符的十六进制值。

    ThreadName

    发出消息或跟踪事件的 Java 线程名。

    ShortName

    发出消息或跟踪事件的记录组件的缩写名称。这通常是 WebSphere Application Server 内部组件的类名,但也可以是一些用户应用程序的其他标识。

    LongName

    发出消息或跟踪事件的记录组件的全名。这通常是 WebSphere Application Server 内部组件的标准类名,但也可以是一些用户应用程序的其他标识。

    EventType

    表明消息或跟踪事件类型的一个字符字段。消息类型是大写的。可能值包括:

    F

    致命消息。

    E

    错误消息。

    W

    警告消息。

    A

    审计消息。

    I

    参考消息。

    C

    配置消息。

    D

    详细信息消息。

    O

    通过用户应用程序或内部组件直接写入 System.out 的消息。

    R

    通过用户应用程序或内部组件直接写入 System.err 的消息。

    Z

    表明不可识别的类型的占位符。

    类名

    发出消息或跟踪事件的类。

    方法名称

    发出消息或跟踪事件的方法。

    组织

    拥有发出消息或跟踪事件的应用程序的组织。

    产品

    发出消息或跟踪事件的产品。

    组件

    发出消息或跟踪事件的产品内的组件。

    基本格式

    以基本格式显示的消息事件使用下列格式。符号 <name> 表明将总是在基本格式消息中出现的必需字段。符号 [name] 表明将被包括的可选的或有条件的字段,如果可以确定它们的话。

     

    <timestamp><threadId><shortName><eventType>[className][methodName]<message>

    高级格式

    以高级格式显示的消息事件使用下列格式。表示法 <name> 用于表明将总是以消息条目的高级格式出现的必需字段。表示法 [name] 用于表明将被包括的可选的或有条件的字段(如果可以确定它们的话)。

    <timestamp><threadId><eventType><UOW><source=longName>[className][methodName]<Organization><Product><Component>[thread=threadName]

    <message>

     

    配置 JVM 日志

    使用管理控制台配置应用程序服务器的 JVM 日志。直到下一次重新启动应用程序服务器,才应用为了运行应用程序服务器而对 JVM 日志进行的配置更改。

    此任务的步骤

    启动管理控制台

    单击故障诊断 > 记录和跟踪,然后单击服务器 > JVM 日志

    选择“配置”选项卡。

    滚动通过面板以显示要配置的日志的属性。

    更改相应的配置属性并单击应用。

    保存您的配置更改。

    Java 虚拟机(JVM)日志设置

    使用此页面查看和修改 Java 虚拟机(JVM)System.out 和 System.err 日志的设置。

    要查看此管理控制台页面,单击故障诊断 > 日志和跟踪 > server name > JVM 日志。

    查看和修改此受管进程的 Java 虚拟机(JVM)System.out 和 System.err 日志的设置。通过将 JVM 的 System.out 和 System.err 流重定向到独立日志文件来创建 JVM 日志。System.out 日志用于监控运行应用程序服务器的运行状况。System.err 日志包含执行问题分析时有用的异常堆栈跟踪信息。每个应用程序服务器及其所有应用程序有一组 JVM 日志。还为 Deployment Manager 和每个节点管理器创建 JVM 日志。“配置”面板上的更改将在重新启动服务器时应用。“运行时”面板上的更改将立即应用。

    “配置”选项卡

    文件名

    指定此页面中描述的某个日志文件的名称。

    第一个文件名字段指定 System.out 日志的名称。第二个文件名字段指定 System.err 文件的名称。

    按下“运行时”选项卡上的查看按钮查看所选日志文件的内容。

    为 System.out 日志或 System.err 日志指定的文件名必须具有以下某个值:

    文件名

    文件系统中的文件的名称。建议您使用标准文件名。如果该文件名不是标准文件名,则认为它相对于服务器的当前工作目录。每个日志必须配置一个专用文件。例如,我们无法将 System.out 和 System.err 重定向到同一物理文件。

    如果包含文件的目录已经存在,则正在运行的服务器所使用的用户标识需要该目录的读/写访问权限。如果该目录不存在,将会用适当的许可权创建它。正在运行的服务器所使用的用户标识必须有创建该目录的权限。

    控制台

    这是用于将流重定向到关联进程流的特殊文件名。如果为 System.out 指定了此值,则文件重定向到 stdout。如果为 System.err 指定了此值,则文件重定向到 stderr。

    废弃写入流的所有数据。指定无等于将流重定向到 UNIX 系统上的 dev/null。

    filename 的缺省路径是变量 SERVER_LOG_ROOT 的值。要查看 SERVER_LOG_ROOT 变量的值:

    1.在管理控制台上,选择环境 > WebSphere 变量

    2.单击服务器单选按钮,然后单击应用。在显示的列表中出现 SERVER_LOG_ROOT 变量的值。

    要更改 SERVER_LOG_ROOT 的值:

    1.选择 SERVER_LOG_ROOT

    2.在值字段中输入新的路径

    3.单击“应用”

    4.保存此配置。您必须重新启动服务器以使更改生效。

    当然我们还可以以将 ${SERVER_LOG_ROOT}/和 ${SERVER_LOG_ROOT}/SystemErr.log 文件的位置和名称更改为任何其他绝对路径和文件名(例如,/tmp/myLogfile.log)。

    文件格式

    指定用于保存 System.out 文件的格式。

    日志文件滚动(保留旧的日志文件生成新的日志文件)

    应用服务器有日志自管理功能,通过使用这一组配置属性将 System.out 或 System.err 日志文件配置为自我管理。

    自我管理日志文件将消息写入文件,直到达到时间或大小条件。当达到指定时间或文件达到指定大小时,日志文件将滚动(包括关闭文件并重命名保存的文件),同时记录将临时挂起。新保存的文件名是原始文件名加上表明文件重命名时间的时间戳记限定符。一旦完成重命名,则重新打开具有原始名称的新的空日志文件,并恢复记录。虽然日志文件滚动后一条消息可能会分割在保存的文件和当前文件中,但全部消息都将保留。

    如果关联流重定向到文件,则仅可以将一个日志配置为自我管理。

    文件大小

    单击日志文件的此属性以让它根据其文件大小管理它自己。当文件达到最大大小字段中指定的大小时,发生自动滚动。

    最大大小

    指定文件的最大大小(以兆字节为单位)。当文件达到此大小时,它就滚动。

    此属性仅当您单击“文件大小”后才有效。

     

    时间

    单击日志文件的此属性以让它根据一天中的时间管理它自己。文件在启动时间字段中指定的时间滚动。

    启动时间

    指定应用程序服务器重新启动后第一次启动周期滚动算法的时间,即,一天中的几点(从 1 到 24)。算法在应用程序服务器启动时装入。一旦滚动算法在启动时间字段指定的钟点启动后,它将每隔一定的时间(重复时间字段指定的小时数)滚动文件。此滚动模式将继续使用不作调整,直到应用程序服务器停止。

    注:滚动总是在一天中指定钟点开始时发生。一天的第一个小一天的第一个小时(自 00:00:00(午夜)起)是 1 点,而一天的最后一个小时(自 23:00:00 起)是 24 点。因此,如果您希望日志文件在午夜滚动,则将启动时间设置为 1。

    重复时间

    指定隔多少小时(从 1 到 24)发生周期滚动。

    重复时间

    指定每隔多少小时日志文件滚动一次。有效值范围是从 1 到 24。

    配置日志文件按时间、按大小或按时间和大小滚动。单击文件大小和时间以在首次匹配条件时滚动文件。例如,如果重复时间字段是 5 小时,而最大文件大小是 2 MB,则文件将每 5 小时滚动一次,除非时间间隔未到而文件大小已达 2 MB。按文件大小滚动后,文件将继续按时间间隔滚动。

    历史日志文件的最大大小

    指定要保存的历史(已滚动)文件数。流将写入当前文件,直到它滚动。滚动时,关闭当前文件,并以当前名称加上滚动时间戳记组成的新名称保存该文件。然后流将以原始名称重新打开一个新文件以继续写入。历史文件数从零增长到最大历史文件数字段的值。下一次滚动删除最旧的历史文件。

    已安装应用程序的输出

    指定是否记录和格式化应用程序代码发出的 System.out 或 System.err 打印语句。

    显示应用程序打印语句

    单击此字段以显示应用程序使用 print 和 println 流方法写入流的消息。总是出现 WebSphere Application Server 系统消息。

    格式化打印语句

    单击此字段以格式化应用程序打印语句(如 WebSphere Application Server 系统消息)。

    “运行时”选项卡

     

    文件名

    指定此页面中描述的某个日志文件的名称。

     

    第一个文件名字段指定 System.out 日志的名称。第二个文件名字段指定 System.err 文件的名称。

     

    按下“运行时”选项卡上的查看按钮查看所选日志文件的内容。

     

    为 System.out 日志或 System.err 日志指定的文件名必须具有以下某个值:

    文件名

    文件系统中的文件的名称。建议您使用标准文件名。如果该文件名不是标准文件名,则认为它相对于服务器的当前工作目录。每个流必须配置一个专用文件。例如,您无法将 System.out 和 System.err 重定向到同一物理文件。

    如果包含文件的目录已经存在,则正在运行的服务器所使用的用户标识需要该目录的读/写访问权限。如果该目录不存在,将会用适当的许可权创建它。正在运行的服务器所使用的用户标识必须有创建该目录的权限。

     

    控制台

    这是用于将流重定向到关联进程流的特殊文件名。如果为 System.out 指定了此值,则文件重定向到 stdout。如果为 System.err 指定了此值,则文件重定向到 stderr。

    废弃写入流的所有数据。指定无等于将流重定向到 UNIX 系统上的 dev/null。

    filename 的缺省路径是变量 SERVER_LOG_ROOT 的值。要查看 SERVER_LOG_ROOT 变量的值:

    1.在管理控制台上,选择环境 > WebSphere 变量

    2.单击服务器单选按钮,然后单击应用。在显示的列表中出现 SERVER_LOG_ROOT 变量的值。

    要更改 SERVER_LOG_ROOT 的值:

    1.选择 SERVER_LOG_ROOT

    2.在值字段中输入新的路径

    3.单击“应用”

    保存此配置。您必须重新启动服务器以使更改生效。当然我们还可以以将${SERVER_LOG_ROOT}/SystemOut.log 和 ${SERVER_LOG_ROOT}/SystemErr.log 文件的位置和名称更改为任何其他绝对路径和文件名(例如,/tmp/myLogfile.log)。

    结束语

    JVM 日志对我们对问题的的分析和跟踪是非常重要的。WebSphere Application Server 强大的日志自管理功能,使我们的日常工作更方便更简单,学习和掌握这些功能对我们管理人员来说受益非浅。

Open Toolbar