精华内容
下载资源
问答
  • 在set SERVER_NAME=myserver和@REM Call WebLogic Server之间添加set HIBERNATE_HOME=d:/project/newbxb/bjinfosys/WEB-INF/lib/set PRE_CLASSPATH=%WL_HOME%/server/lib/antlr-2.7.4.jar;%HIBERNATE_HOME%/...
    在set SERVER_NAME=myserver和@REM Call WebLogic Server之间添加
    set HIBERNATE_HOME=d:/project/newbxb/bjinfosys/WEB-INF/lib/

    set PRE_CLASSPATH=%WL_HOME%/server/lib/antlr-2.7.4.jar;%HIBERNATE_HOME%/hibernate3.jar;%HIBERNATE_HOME%/commons-logging.jar;%HIBERNATE_HOME%/log4j.jar;%HIBERNATE_HOME%/dom4j-1.5.2.jar;%HIBERNATE_HOME%/commons-collections.jar;%HIBERNATE_HOME%/cglib-full-2.0.2.jar;%HIBERNATE_HOME%/ehcache-1.1.jar

    set CLASSPATH=%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%;%JAVA_HOME%/jre/lib/rt.jar;%WL_HOME%/server/lib/webservices.jar;%CLASSPATH%

    set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH%
    展开全文
  • 密切关注OTN 架构师社区 使用 Oracle WebLogic如何启动和停止 Java EE 环境作者:René van Wijk 简化 Java EE 环境的生命周期管理2014 年 2 月搭建 Java EE 环境时,我们需要一个应用服务器(如 ...

    为 OTN 撰稿

    为 Oracle 技术网撰写技术文章,获得报酬的同时可提升技术技能。

    密切关注

    OTN 架构师社区

    format,pngformat,pngformat,pngformat,pngformat,png

    使用 Oracle WebLogic 时如何启动和停止 Java EE 环境

    作者:René van Wijk format,png

    简化 Java EE 环境的生命周期管理

    2014 年 2 月

    搭建 Java EE 环境时,我们需要一个应用服务器(如 Oracle WebLogic Server),这样可以通过配置跨多台计算机的服务器集群,轻松搭建高可用性环境。在这种环境中,我们还必须考虑生命周期管理:如何启动和停止所有受管服务器?如何停止必须停机维护的计算机上的受管服务器?管理服务器不可用时该怎么办?如何从容恢复崩溃的计算机?

    本文将对研究这些问题,并使用 WebLogic Scripting Tool (WLST) 和 Linux Bash 开发可以简化复杂 Java EE 环境生命周期管理的脚本。首先,我们将看看 WebLogic 配置提供的基本脚本,了解如何启动 WebLogic Server 以及如何设置 Java 虚拟机 (JVM) 参数。接下来,我们将介绍 Node Manager 的作用以及如何启动和停止管理服务器。然后,我们将讨论如何停止和启动受管服务器(如果管理服务器不可用或计算机需要停机维护)以及设置崩溃恢复。最后将总结最佳实践。

    要事第一

    下面是 WebLogic Server 环境中的各种组件: 域:WebLogic Server 管理域是逻辑上相关的一组 WebLogic Server 资源。域包括一个被称作管理服务器的特殊 WebLogic Server 实例,用于集中配置和管理域中的所有资源。通常,我们会配置一个域,包括被称作受管服务器的其他 WebLogic Server 实例。我们将 Web 应用程序、Enterprise JavaBeans (EJB)、Web 服务和其他资源部署到受管服务器上,管理服务器仅用于配置和管理目的。

    管理服务器:管理服务器是用于配置整个域的中央控制实体。它维护域的配置文档,并将配置文档中的更改分发到受管服务器;它还充当中枢,用于监视域中的所有资源。

    受管服务器:受管服务器承载业务应用程序、应用程序组件、Web 服务及其关联资源。为了优化性能,受管服务器维护域配置文档的一个只读副本。受管服务器启动时,会连接到域的管理服务器,使其配置文档与管理服务器维护的文档同步。

    除了管理服务器和受管服务器,域还包含受管服务器和部署的应用程序所需的资源和服务。受管服务器可以使用以下资源: 机器定义:机器定义识别一个特定的物理硬件,用于将计算机与其所托管的受管服务器相关联。此信息供节点管理器在重新启动故障的受管服务器时使用,也供集群受管服务器在选择存储复制的会话数据的最佳位置时使用。

    Node Manager 是一个 WebLogic Server 实用程序,可用于从远程位置启动、关闭以及重新启动管理服务器和受管服务器实例。此处记载了有关 Node Manager 在 WebLogic 环境中的工作方式的详细信息。

    在以下展示的 WLST 脚本中,我们将使用 Node Manager 管理 WebLogic Server 生命周期。我们可以使用 WLST 连接到正在运行的管理服务器,管理活动的 WebLogic 域的配置,或者查看有关域中资源的性能数据。WLST Online 是一个 Java 管理扩展 (JMX) 客户端。它与服务器的内存中受管 bean(MBean,为底层资源提供管理界面的 Java 对象)集合交互。可以根据 MBean 是监视还是配置服务器和资源,将所有 WebLogic Server MBean 组织成以下通用类型之一: 运行时 MBean:包含有关服务器及其资源的运行时状态的信息。它们通常只包含服务器或资源的当前状态,并不持久保存此数据。关闭服务器实例时,将销毁来自运行时 MBean 的所有运行时统计信息和指标。

    配置 MBean:包含有关服务器和资源配置的信息。它们代表域的 XML 配置文档中存储的信息。

    特别是,为了控制 WebLogic Server 生命周期,我们将使用 ServerLifeCycleRuntimeMBean(提供将服务器从一种状态转换到另一种状态的方法)和 ServerRuntimeMBean(提供用于检索有关服务器实例的运行时信息和将服务器从一种状态转换到另一种状态的方法)。使用这些 MBean,我们可以创建所有环境均可以使用的通用脚本。此处记载了有关 WLST(和 Node Manager)如何管理服务器生命周期的详细信息。

    继 WLST 之后,WebLogic Server 还提供了一个管理控制台,部署在管理服务器上。管理控制台提供了一个与 WebLogic Server MBean 交互的图形界面,在此界面上可以:

    对 WebLogic Server 生命周期的工作方式有了基本了解之后,我们将看看现成脚本如何设置实际创建 WebLogic 运行时 — 换句话说,启动(或停止)拥有主类 weblogic.Server 的 JVM — 所需的参数。为了运行此类,我们需要告知 JVM 加载哪些类 (CLASSPATH) 和使用哪些原生库 (PATH)。因为这些变量由现成脚本设置,(通常)无需在此级别进行更改。不过,我们通常会更改 JVM 参数(例如内存和垃圾收集方案)。接下来,我们继续设置 Node Manager,并看看如何创建 Node Manager 服务。之后,我们将展示用于管理服务器的脚本,然后是用于受管服务器的脚本。

    现成脚本

    已经安装了 WebLogic 并配置了 WebLogic 域后,我们将得到以下目录结构:

    ${DOMAIN_HOME}

    /bin

    setDomainEnv.sh (sets some java options and memory

    parameters, calls ${WEBLOGIC_HOME}/common/bin/commEnv.sh and

    ${DOMAIN_HOME}/bin/setUserOverrides.sh)

    setUserOverrides.sh

    startManagedWebLogic.sh

    startWebLogic.sh (calls setDomainEnv.sh)

    startWebLogic.sh (calls /bin/startWebLogic.sh)

    ${WEBLOGIC_HOME}

    /common/bin

    commEnv.sh (calls ${FUSION_MIDDLEWARE_HOME}/common/bin/commEnv.sh)

    ${FUSION_MIDDLEWARE_HOME}

    /common/bin

    commEnv.sh (sets among others the ${LD_LIBRARY_PATH} and

    ${CLASSPATH} variables that are used in setDomainEnv.sh)

    要启动管理服务器,我们运行 startWebLogic.sh 脚本,它将使用以下代码行启动服务器:

    ${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -

    Dweblogic.Name=${SERVER_NAME} -

    Djava.security.policy=${WLS_POLICY_FILE} ${JAVA_OPTIONS}

    ${PROXY_SETTINGS} ${SERVER_CLASS}

    查看脚本时,我们看到 setDomainEnv.sh 脚本中已经设置了内存参数。我们可以在 setUserOverrides.sh 文件中提供更改。可以使用 ${USER_MEM_ARGS} 变量覆盖内存参数 — 例如:

    #!/bin/sh

    ADMIN_SERVER_MEM_ARGS="-Xms'${ADMIN_SERVER_HEAP_SIZE}' -

    Xmx'${ADMIN_SERVER_HEAP_SIZE}' -

    XX:PermSize='${ADMIN_SERVER_PERM_SIZE}' -

    XX:MaxPermSize='${ADMIN_SERVER_PERM_SIZE}'"

    SERVER_MEM_ARGS="-Xms'${MANAGED_SERVER_HEAP_SIZE}' -

    Xmx'${MANAGED_SERVER_HEAP_SIZE}' -

    XX:PermSize='${MANAGED_SERVER_PERM_SIZE}' -

    XX:MaxPermSize='${MANAGED_SERVER_PERM_SIZE}'"

    COHERENCE_SERVER_MEM_ARGS="-Xms'${COHERENCE_SERVER_HEAP_SIZE}' -

    Xmx'${COHERENCE_SERVER_HEAP_SIZE}' -

    XX:PermSize='${COHERENCE_SERVER_PERM_SIZE}' -

    XX:MaxPermSize='${COHERENCE_SERVER_PERM_SIZE}'"

    MONITORING_ARGS="-XX:+UnlockCommercialFeatures -

    XX:+FlightRecorder"

    COHERENCE_MONITORING_ARGS="-Dtangosol.coherence.management=all -

    Dtangosol.coherence.management.remote=true"

    GARBAGE_COLLECTOR_ARGS="-XX:NewRatio=3 -XX:SurvivorRatio=128 -

    XX:MaxTenuringThreshold=0 -XX:+UseParallelGC -XX:MaxGCPauseMillis=200 -

    XX:GCTimeRatio=19 -XX:+UseParallelOldGC

    -XX:+UseTLAB"

    LARGE_PAGES_ARGS="-XX:LargePageSizeInBytes=2048k -XX:+UseLargePages"

    if [ "${ADMIN_URL}" = "" ] ; then

    USER_MEM_ARGS="${ADMIN_SERVER_MEM_ARGS} ${GARBAGE_COLLECTOR_ARGS}"

    else

    case ${SERVER_NAME} in

    server_*)

    USER_MEM_ARGS="${SERVER_MEM_ARGS} ${GARBAGE_COLLECTOR_ARGS}

    ${MONITORING_ARGS}"

    ;;

    coherence_server_1)

    USER_MEM_ARGS="${COHERENCE_SERVER_MEM_ARGS}

    ${GARBAGE_COLLECTOR_ARGS} ${COHERENCE_MONITORING_ARGS}"

    ;;

    coherence_server_*)

    USER_MEM_ARGS="${COHERENCE_SERVER_MEM_ARGS}

    ${GARBAGE_COLLECTOR_ARGS}"

    ;;

    esac

    fi

    export USER_MEM_ARGS

    #if [ "${WEBLOGIC_EXTENSION_DIRS}" != "" ] ; then

    # WEBLOGIC_EXTENSION_DIRS="${WEBLOGIC_EXTENSION_DIRS}

    ${CLASSPATHSEP}${DOMAIN_HOME}/lib"

    #else

    # WEBLOGIC_EXTENSION_DIRS="${DOMAIN_HOME}/lib"

    #fi

    #export WEBLOGIC_EXTENSION_DIRS'

    如上所述,要启动管理服务器,可以使用 ${DOMAIN_HOME}/startWebLogic.sh。要启动受管服务器,可以使用 ${DOMAIN_HOME}/bin startManagedWebLogic.sh ${MANAGED_SERVER_NAME} ${ADMIN_URL}(注,${ADMIN_URL} 变量已在脚本中设置)。如果在管理服务器不可用的情况下启动受管服务器,将在日志中看到以下警告:

    [weblogic@machine1 bin]$ ./startManagedWebLogic.sh coherence_server_1

    ...

    starting weblogic with Java version:

    java version "1.7.0_25"

    Java(TM) SE Runtime Environment (build 1.7.0_25-b15)

    Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

    Starting WLS with line:

    /u01/app/oracle/weblogic12.1.2/jdk1.7.0_25/bin/java -server -

    Xms512m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=256m -

    XX:NewRatio=3 -XX:SurvivorRatio=128 -XX:MaxTenuringThreshold=0 -

    XX:+UseParallelGC -XX:MaxGCPauseMillis=200 -XX:GCTimeRatio=19 -

    XX:+UseParallelOldGC -XX:+UseTLAB

    -Dtangosol.coherence.management=all

    -Dtangosol.coherence.management.remote=true

    -Dweblogic.Name=coherence_server_1

    -Djava.security.policy=/u01/app/oracle/weblogic12.1.2/installation/

    wlserver/server/lib/weblogic.policy

    -Dweblogic.ProductionModeEnabled=true

    -Dweblogic.security.SSL.trustedCAKeyStore=/u01/app/oracle/weblogic12.1.2/installation/

    wlserver/server/lib/cacerts -Xverify:none

    -Djava.endorsed.dirs=/u01/app/oracle/weblogic12.1.2/jdk1.7.0_25/jre/lib/endorsed:/

    u01/app/oracle/weblogic12.1.2/installation/wlserver/../oracle_common/modules/

    endorsed -da

    -Dwls.home=/u01/app/oracle/weblogic12.1.2/installation/wlserver/server

    -Dweblogic.home=/u01/app/oracle/weblogic12.1.2/installation/wlserver/server

    -Dweblogic.management.server=http://machine1.com:7001

    weblogic.Server

    ...

    ...

    在本例中,受管服务器将以受管服务器独立模式运行。

    为基于以共识为基础的租赁的单一服务配置迁移策略时,只能通过 Node Manager 启动受管服务器。

    Node Manager

    Node Manager 概述提供了 Node Manager 的启动脚本:

    ${DOMAIN_HOME}

    /bin

    startNodeManager.sh (sets ${NODEMGR_HOME} and calls

    ${WEBLOGIC_HOME}/server/bin/startNodeManager.sh)

    ${WEBLOGIC_HOME}

    /server/bin

    startNodeManager.sh (calls calls

    ${FUSION_MIDDLEWARE_HOME}/common/bin/commEnv.sh)

    这些脚本的核心是下面的启动行:

    "${JAVA_HOME}/bin/java" ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} -

    Djava.security.policy="${WL_HOME}/server/lib/weblogic.policy" -

    Dweblogic.nodemanager.JavaHome="${JAVA_HOME}" -

    DListenAddress="${LISTEN_ADDRESS}" -

    DListenPort="${LISTEN_PORT}" weblogic.NodeManager -v

    使用 WebLogic Scripting Tool 时,使用以下语句启动 Node Manager:

    import socket;

    node_manager_listen_address = socket.gethostname();

    print 'CREATE PATHS';

    domain_name=os.getenv('DOMAIN_NAME');

    java_home=os.getenv('JAVA_HOME');

    middleware_home=os.getenv('MIDDLEWARE_HOME');

    weblogic_home=os.getenv('WEBLOGIC_HOME');

    fusion_middleware_home=os.getenv('FUSION_MIDDLEWARE_HOME');

    configuration_home = os.getenv('CONFIGURATION_HOME');

    domain_home=configuration_home + '/domains/' + domain_name;

    domain_application_home=configuration_home + '/applications/' + domain_name;

    node_manager_home=domain_home + '/nodemanager';

    print 'STARTING NODE MANAGER';

    startNodeManager(verbose='true',

    NodeManagerHome=node_manager_home,

    ListenPort=node_manager_listen_port,

    ListenAddress=node_manager_listen_address);

    要运行此脚本,请使用:

    #!/bin/sh

    SCRIPT=$(readlink -f $0)

    SCRIPT_PATH=$(dirname $SCRIPT)

    . ${SCRIPT_PATH}/../SetEnvironmentVariables.sh

    ${WEBLOGIC_HOME}/common/bin/wlst.sh -loadProperties

    ${SCRIPT_PATH}/../environment.properties

    ${SCRIPT_PATH}/startNodeManager.py

    所用环境变量由名为 SetEnvironmentVariables.sh 的脚本设置:

    #!/bin/sh

    # Name of the domain

    DOMAIN_NAME="base_domain"

    export DOMAIN_NAME

    # Directory where the software to be installed is located

    SOFTWARE_DIRECTORY="/u01/software/weblogic/12.1.2"

    export SOFTWARE_DIRECTORY

    # The scripts create files that are placed in this directory

    TEMPORARY_DIRECTORY="${SOFTWARE_DIRECTORY}/files"

    export TEMPORARY_DIRECTORY

    # Name of JVM file

    JVM_FILE_NAME="jdk-7u25-linux-x64.tar.gz"

    export JVM_FILE_NAME

    # Name of the WebLogic file

    WEBLOGIC_FILE_NAME="wls_121200.jar"

    export WEBLOGIC_FILE_NAME

    # Base directory

    BASE_DIRECTORY="/u01/app/oracle"

    export BASE_DIRECTORY

    # Directory that will used for the installation and configuration

    RUNTIME_HOME="${BASE_DIRECTORY}/weblogic12.1.2"

    export RUNTIME_HOME

    # Directory where the JVM will be installed

    JAVA_HOME="${RUNTIME_HOME}/jdk1.7.0_25"

    export JAVA_HOME

    # Directory that will be used as the middleware home

    (holds software binaries)

    MIDDLEWARE_HOME="${RUNTIME_HOME}/installation"

    export MIDDLEWARE_HOME

    # Depending on the WebLogic version to be installed,

    edit the wlserver_major.minor version

    WEBLOGIC_HOME="${MIDDLEWARE_HOME}/wlserver"

    export WEBLOGIC_HOME

    # Depending on the Coherence version to be installed,

    edit the coherence_major.minor version

    COHERENCE_HOME="${MIDDLEWARE_HOME}/coherence"

    export COHERENCE_HOME

    # Directory where the fusion middleware software will be installed

    FUSION_MIDDLEWARE_HOME="${MIDDLEWARE_HOME}/oracle_common"

    export FUSION_MIDDLEWARE_HOME

    # Location of the Oracle inventory

    ORACLE_INVENTORY_HOME="${BASE_DIRECTORY}/oraInventory"

    export ORACLE_INVENTORY_HOME

    # Group under which the software needs to be installed

    ORACLE_INSTALL_GROUP="javainstall"

    export ORACLE_INSTALL_GROUP

    # Directory where the configuration will be placed

    CONFIGURATION_HOME="${RUNTIME_HOME}/configuration"

    export CONFIGURATION_HOME

    这对应于先前所述的目录结构。使用 WebLogic Scripting Tool 时,通过以下属性文件 (environment.properties) 设置用户名、密码等:

    node_manager_username=nodemanager

    node_manager_password=magic12c

    node_manager_listen_port=5556

    node_manager_mode=plain

    admin_server_name=AdminServer

    admin_username=weblogic

    admin_password=magic12c

    admin_server_listen_port=7001

    下面是如何对密码进行加密的例子。如果要在其他环境中使用该脚本,只需更改文件 SetEnvironmentVariables.sh 和 environment.properties。

    一般来说,应在计算机启动时启动 Node Manager。本例中,我们需要了解在何处放置系统启动时将调用的自定义命令。Linux 有一个 /etc/rc.d/rc.local 文件,可以在其中放置自定义命令。

    我们采用推荐的基于脚本的方式来完成此操作。基于 Unix 的系统指定所谓的运行级别;对于每个运行级别,可以定义启动某个服务的脚本。这些脚本位于 /etc/rc.d/init.d 目录下。可在系统启动时启动服务,或在系统关闭时停止服务。由 /etc/rc.d 目录中的特定目录指定不同运行级别: rc0.d — 系统关闭时执行的脚本

    rc1.d — 单用户模式脚本

    rc2.d — 多用户模式脚本

    rc3.d — 多用户模式和联网的脚本

    rc4.d — 未使用

    rc5.d — 与 rc3.d 相同,增加了一些图形元素

    rc6.d — 系统重新启动时执行的脚本

    启动序列如下所示:在 /etc/inittab 文件中,定义启动运行级别,调用脚本 /etc/rc.d/rc.sysinit,然后运行 /etc/rc.d/rc。rc 脚本查看 /etc/rc.d/rc.d,以 stop 选项执行 K** 脚本。之后,使用 start 选项执行 S** 脚本。(注意:脚本按数字顺序启动,即 S10network 脚本在 S80sendmail 脚本之前执行。)

    要创建 Node Manager“服务”,请使用以下脚本:

    #!/bin/sh

    #

    # chkconfig: - 91 35

    #

    # description: Node Manager controls the WebLogic Server runtime

    lifecycle

    # processname: nodemanager

    #

    # Source function library.

    . /etc/rc.d/init.d/functions

    RETVAL=0

    SERVICE="nodemanager"

    USER="weblogic"

    SCRIPTS_LOCATION="/u01/software/weblogic/12.1.2/scripts

    /lifecycle"

    LOCK_FILE="/var/lock/subsys/${SERVICE}"

    start() {

    echo "Starting Node Manager"

    su - ${USER} -c "${SCRIPTS_LOCATION}/NodeManagerStartService.sh" >

    /dev/null 2>&1

    RETVAL=$?

    [ $RETVAL -eq 0 ] && success || failure

    echo

    [ $RETVAL -eq 0 ] && touch ${LOCK_FILE}

    return $RETVAL

    }

    stop() {

    echo "Stopping Node Manager"

    su - ${USER} -c "${SCRIPTS_LOCATION}/NodeManagerStopService.sh" >

    /dev/null 2>&1

    RETVAL=$?

    [ $RETVAL -eq 0 ] && success || failure

    echo

    [ $RETVAL -eq 0 ] && rm -r ${LOCK_FILE}

    return $RETVAL

    }

    case "$1" in

    start)

    start

    ;;

    stop)

    stop

    ;;

    restart)

    stop

    start

    ;;

    *)

    echo $"Usage: $0 {start|stop|restart}"

    exit 1

    esac

    exit $?

    将此脚本放在 /etc/rc.d/init.d 目录中。使用 chkconfig 命令更新系统服务的运行级别信息(例如 chkconfig --add nodemanager and chkconfig nodemanager on)。要测试设置,请关闭系统,然后再重新启动。要检查 Node Manager 是否在运行,请使用 ps -ef|grep java 或 netstat -anp|grep :5556(假定Node Manager 监听端口 5556)。

    还可以考虑将 CrashRecoveryEnabled 属性设置为“true”(允许 Node Manager 在系统崩溃后重新启动服务器),因为默认情况下此属性未启用。系统重启之后,Node Manager 检查 nodemanager.domains 文件中指定的每个受管域,以确定是否有任何服务器实例未彻底关闭。判断的依据是看是否存在任何锁定文件,这种文件在创建 WebLogic Server 进程时由 Node Manager 创建。此锁定文件包含 WebLogic Server 启动脚本的进程标识符。如果存在锁定文件,但进程 ID 未在运行,Node Manager 会尝试自动重新启动服务器。如果进程在运行,Node Manager 会执行额外的检查,访问进程中运行的管理 servlet,以验证与进程 ID 对应的进程是否为 WebLogic Server 实例。要测试进程,请启动所有服务器,然后重新启动主机。服务器重新运行之后,状态文件 (${DOMAIN_HOME}/server/${SERVER_NAME}/data/nodemanager/${SERVER_NAME}.state) 中会包含一个 FORCE_SHUTTING_DOWN 条目。在本例中,对于控制台或 WebLogic Scripting Tool 启动的服务器,服务器会处于不兼容状态。CrashRecoveryEnabled 设置为 true,因此 Node Manager 将检测锁定文件并自动启动服务器;我们可以手动编辑状态文件并将状态设置为 SHUTDOWN,这非常适合在具有多台服务器的环境中运行。

    ...

    # reboot

    /u01/app/oracle/weblogic12.1.2/configuration/domains/base_domain/nodemanager/

    nodemanager.domains>

    configuration properties from '/u01/app/oracle/weblogic12.1.2/configuration/domains/

    base_domain/nodemanager/nodemanager.properties'>

    WLS_12.1.2.0.0_GENERIC_130607.1100>

    ...

    ...

    /u01/app/oracle/weblogic12.1.2/configuration/domains/base_domain/bin/

    startWebLogic.sh >

    ...

    ...

    as part of crash recovery>

    ...

    /u01/app/oracle/weblogic12.1.2/configuration/domains/base_domain/bin/

    startWebLogic.sh >

    ...

    process as part of crash recovery>

    ...

    /u01/app/oracle/weblogic12.1.2/configuration/domains/base_domain/bin/

    startWebLogic.sh >

    ...

    process as part of crash recovery>

    ...

    /u01/app/oracle/weblogic12.1.2/configuration/domains/base_domain/bin/

    startWebLogic.sh >

    ...

    ...

    要停止 Node Manager,我们可以使用:

    import socket;

    node_manager_listen_address = socket.gethostname();

    print 'CREATE PATHS';

    domain_name=os.getenv('DOMAIN_NAME');

    java_home=os.getenv('JAVA_HOME');

    middleware_home=os.getenv('MIDDLEWARE_HOME');

    weblogic_home=os.getenv('WEBLOGIC_HOME');

    fusion_middleware_home=os.getenv('FUSION_MIDDLEWARE_HOME');

    configuration_home = os.getenv('CONFIGURATION_HOME');

    domain_home=configuration_home + '/domains/' + domain_name;

    domain_application_home=configuration_home + '/applications/'

    + domain_name;

    node_manager_home=domain_home + '/nodemanager';

    print 'STOPPING NODE MANAGER';

    nmConnect(node_manager_username, node_manager_password,

    node_manager_listen_address, node_manager_listen_port,

    domain_name, domain_home, node_manager_mode);

    stopNodeManager();

    对于 nmConnect,我们可以选择两种方式提供用户名和密码 — 通过属性(如以上示例),或者使用用户配置和密钥文件。对于后一种情况,必须使用 storeUserConfig。例如:

    import socket;

    node_manager_listen_address = socket.gethostname();

    admin_server_listen_address = node_manager_listen_address;

    print 'CREATE PATHS';

    domain_name=os.getenv('DOMAIN_NAME');

    java_home=os.getenv('JAVA_HOME');

    middleware_home=os.getenv('MIDDLEWARE_HOME');

    weblogic_home=os.getenv('WEBLOGIC_HOME');

    fusion_middleware_home=os.getenv('FUSION_MIDDLEWARE_HOME');

    configuration_home = os.getenv('CONFIGURATION_HOME');

    domain_home=configuration_home + '/domains/' + domain_name;

    domain_application_home=configuration_home + '/applications/' + domain_name;

    node_manager_home=configuration_home + '/nodemanagers/' + domain_name;

    print 'CONNECT TO NODE MANAGER';

    nmConnect(node_manager_username, node_manager_password, node_manager_listen_address,

    node_manager_listen_port, domain_name, domain_home, node_manager_mode);

    print 'CREATE NODE MANAGER USER CONFIG FILES';

    storeUserConfig(domain_home +'/node_manager_config_file.properties', domain_home +

    '/node_manager_key_file.properties', 'true');

    print 'DISCONNECT FROM NODE MANAGER';

    nmDisconnect();

    print 'CONNECT TO ADMIN SERVER';

    admin_server_url = 't3://' + admin_server_listen_address + ':'

    + admin_server_listen_port;

    connect(admin_username, admin_password, admin_server_url);

    print 'CREATE ADMIN SERVER USER CONFIG FILES';

    storeUserConfig(domain_home +'/admin_server_config_file.properties',

    domain_home + '/admin_server_key_file.properties', 'false');

    print 'DISCONNECT FROM THE ADMIN SERVER';

    disconnect();

    脚本运行时,可以观察到以下输出:

    [weblogic@machine1 basicconfiguration]$ ./StoreUserConfigService.sh

    Initializing WebLogic Scripting Tool (WLST) ...

    Welcome to WebLogic Server Administration Scripting Shell

    Type help() for help on available commands

    CREATE PATHS

    CONNECT TO NODE MANAGER

    Connecting to Node Manager ...

    Successfully Connected to Node Manager.

    CREATE NODE MANAGER USER CONFIG FILES

    Currently connected to Node Manager to monitor the domain base_domain.

    Creating the key file can reduce the security of your system if it is

    not kept in a secured location after it is created. Do you want to create

    the key file? y or ny

    The username and password that were used for this WebLogic NodeManager

    connection are stored in /u01/app/oracle/weblogic12.1.2/configuration/domains

    /base_domain/node_manager_config_file.properties and

    /u01/app/oracle/weblogic12.1.2/configuration/domains/base_domain

    /node_manager_key_file.properties.

    DISCONNECT FROM NODE MANAGER

    Successfully disconnected from Node Manager.

    CONNECT TO ADMIN SERVER

    Connecting to t3://machine1.com:7001 with userid weblogic ...

    Successfully connected to Admin Server "AdminServer" that belongs to

    domain "base_domain".

    Warning: An insecure protocol was used to connect to the

    server. To ensure on-the-wire security, the SSL port or

    Admin port should be used instead.

    CREATE ADMIN SERVER USER CONFIG FILES

    Creating the key file can reduce the security of your system if it is not

    kept in a secured location after it is created. Do you want to create the

    key file? y or ny

    The username and password that were used for this WebLogic Server connection

    are stored in /u01/app/oracle/weblogic12.1.2/configuration/domains/base_domain

    /admin_server_config_file.properties and /u01/app/oracle/weblogic12.1.2

    /configuration/domains/base_domain

    /admin_server_key_file.properties.

    DISCONNECT FROM THE ADMIN SERVER

    Disconnected from weblogic server: AdminServer

    可以这样使用存储的配置文件:

    import socket;

    node_manager_listen_address = socket.gethostname();

    print 'CREATE PATHS';

    domain_name=os.getenv('DOMAIN_NAME');

    java_home=os.getenv('JAVA_HOME');

    middleware_home=os.getenv('MIDDLEWARE_HOME');

    weblogic_home=os.getenv('WEBLOGIC_HOME');

    fusion_middleware_home=os.getenv('FUSION_MIDDLEWARE_HOME');

    configuration_home = os.getenv('CONFIGURATION_HOME');

    domain_home=configuration_home + '/domains/' + domain_name;

    domain_application_home=configuration_home + '/applications/' + domain_name;

    node_manager_home=domain_home + '/nodemanager';

    print 'STOPPING NODE MANAGER';

    #nmConnect(node_manager_username, node_manager_password,

    node_manager_listen_address, node_manager_listen_port, domain_name,

    domain_home, node_manager_mode);

    nmConnect(userConfigFile=domain_home +'/node_manager_config_file.properties',

    userKeyFile=domain_home + '/node_manager_key_file.properties',

    host=node_manager_listen_address, port=node_manager_listen_port,

    domainName=domain_name, domainDir=domain_home, nmType=node_manager_mode);

    stopNodeManager();

    Node Manager 运行时,我们可以启动管理服务器。

    管理服务器

    要通过 Node Manager 启动管理服务器,请使用 nmStart。例如:

    import socket;

    node_manager_listen_address = socket.gethostname();

    print 'CREATE PATHS';

    domain_name=os.getenv('DOMAIN_NAME');

    java_home=os.getenv('JAVA_HOME');

    middleware_home=os.getenv('MIDDLEWARE_HOME');

    weblogic_home=os.getenv('WEBLOGIC_HOME');

    fusion_middleware_home=os.getenv('FUSION_MIDDLEWARE_HOME');

    configuration_home = os.getenv('CONFIGURATION_HOME');

    domain_home=configuration_home + '/domains/' + domain_name;

    domain_application_home=configuration_home + '/applications/' + domain_name;

    node_manager_home=domain_home + '/nodemanager';

    print 'CONNECT TO NODE MANAGER';

    nmConnect(node_manager_username, node_manager_password, node_manager_listen_address,

    node_manager_listen_port, domain_name, domain_home, node_manager_mode);

    print 'START ADMIN SERVER';

    nmStart(admin_server_name);

    print 'DISCONNECT FROM NODE MANAGER';

    nmDisconnect();

    注: 要想使用 nmStart 启动服务器,boot.properties(在 ${DOMAIN_HOME}/servers/${ADMIN_SERVER_NAME}/security 中)必须存在。要停止管理服务器,我们可以使用:

    import socket;

    node_manager_listen_address = socket.gethostname();

    admin_server_listen_address = node_manager_listen_address;

    print 'CREATE PATHS';

    domain_name=os.getenv('DOMAIN_NAME');

    java_home=os.getenv('JAVA_HOME');

    middleware_home=os.getenv('MIDDLEWARE_HOME');

    weblogic_home=os.getenv('WEBLOGIC_HOME');

    fusion_middleware_home=os.getenv('FUSION_MIDDLEWARE_HOME');

    configuration_home = os.getenv('CONFIGURATION_HOME');

    domain_home=configuration_home + '/domains/' + domain_name;

    domain_application_home=configuration_home + '/applications/' + domain_name;

    node_manager_home=domain_home + '/nodemanager';

    print 'CONNECT TO ADMIN SERVER';

    admin_server_url = 't3://' + admin_server_listen_address + ':'

    + admin_server_listen_port;

    connect(admin_username, admin_password, admin_server_url);

    print 'CONNECT TO NODE MANAGER';

    nmConnect(node_manager_username, node_manager_password, node_manager_listen_address,

    node_manager_listen_port, domain_name, domain_home, node_manager_mode);

    print 'STOPPING ADMIN SERVER';

    shutdown(admin_server_name,'Server','true',1000,'true');

    print 'DISCONNECT FROM NODE MANAGER';

    nmDisconnect();

    虽然我们也可以使用 nmKill 而不是 shutdown 来停止管理服务器,但使用 shutdown 命令关闭服务器时,可以更细微地进行控制,如设置一个超时,从容地关闭服务器。

    通常,启动 WebLogic Server 实例时,会启动所有服务,包括 Enterprise JavaBeans (EJB)、Java 消息服务 (JMS)、Java EE Connector Architecture (JCA)、集群、部署、管理等等。但 WebLogic Server 提供了一个启动选项 (-DserverType="wlx"),通过从启动名单中排除一部分服务,可以减少运行时的资源占用。这种启动模式可以提高 WebLogic Server 的启动速度,并减少主机上资源的占用空间。WebLogic Server 实例中启动的服务名单由服务器类型启动命令决定,它可以接受服务器类型选项。有两个服务器类型选项: wls — 启动所有服务(默认值)

    wlx — 启动除以下服务外的所有服务: Enterprise JavaBeans (EJB)

    Java EE Connector Architecture (JCA)

    Java 消息服务 (JMS)

    如果 WebLogic Server 实例不需要使用这些服务,就可以运行轻型运行时,从而提高性能。

    受管服务器

    为了停止和启动域中的受管服务器,我们将使用 ServerLifeCycleRuntimeMBean,它提供将服务器从一种状态转换到另一种状态的方法。此类只在管理服务器上实例化,可用于转换受管服务器的状态(不能用于启动管理服务器)。若要用它来启动受管服务器,必须先在每个受管服务器的主机上安装 Node Manager。要启动受管服务器,可以使用:

    import socket;

    print 'CONNECT TO ADMIN SERVER';

    admin_server_listen_address = socket.gethostname();

    admin_server_url = 't3://' + admin_server_listen_address + ':'

    + admin_server_listen_port;

    connect(admin_username, admin_password, admin_server_url);

    print 'STARTING SERVERS';

    domainRuntime();

    server_lifecycles = cmo.getServerLifeCycleRuntimes();

    for server_lifecycle in server_lifecycles:

    if (server_lifecycle.getState() == 'SHUTDOWN' and server_lifecycle.getName()

    != admin_server_name):

    print 'START SERVER ' + server_lifecycle.getName();

    task = server_lifecycle.start();

    java.lang.Thread.sleep(1000);

    print task.getStatus() + ', ' + server_lifecycle.getState();

    else:

    print 'SERVER ' + server_lifecycle.getName() + ' is in '

    + server_lifecycle.getState() + ' state and will not be started';

    print 'DISCONNECT FROM THE ADMIN SERVER';

    disconnect();

    要停止受管服务器,可以使用:

    import socket;

    print 'CONNECT TO ADMIN SERVER';

    admin_server_listen_address = socket.gethostname();

    admin_server_url = 't3://' + admin_server_listen_address + ':'

    + admin_server_listen_port;

    connect(admin_username, admin_password, admin_server_url);

    print 'STOPPING SERVERS';

    domainRuntime();

    server_lifecycles = cmo.getServerLifeCycleRuntimes();

    for server_lifecycle in server_lifecycles:

    if (server_lifecycle.getState() == 'RUNNING' and server_lifecycle.getName()

    != admin_server_name):

    print 'STOP SERVER ' + server_lifecycle.getName();

    task = server_lifecycle.shutdown(1000, java.lang.Boolean('true'));

    java.lang.Thread.sleep(1000);

    print task.getStatus() + ', ' + server_lifecycle.getState();

    else:

    print 'SERVER ' + server_lifecycle.getName() + ' is in ' +

    server_lifecycle.getState() + ' state and will not be stopped';

    print 'DISCONNECT FROM THE ADMIN SERVER';

    disconnect();

    使用存储的用户配置文件,还可以采用以下方式连接到管理服务器:

    connect(userConfigFile=domain_home +'/admin_server_config_file.properties',

    userKeyFile=domain_home + '/admin_server_key_file.properties',

    url=admin_server_url);

    以上脚本将启动和停止域中的所有受管服务器。如果只想停止某个主机上的服务器,我们需要了解 WebLogic 实例实际运行在哪个主机上。这种情况下,可以使用 ServerRuntimeMBean,它提供了用于检索有关服务器实例的运行时信息的方法,以及用于将服务器从一种状态转换到另一种状态的方法。使用以下方式在本地停止受管服务器实例:

    import socket;

    node_manager_listen_address=socket.gethostname();

    node_manager_listen_ip_address=socket.gethostbyname(node_manager_listen_address);

    print 'CREATE PATHS';

    domain_name=os.getenv('DOMAIN_NAME');

    java_home=os.getenv('JAVA_HOME');

    middleware_home=os.getenv('MIDDLEWARE_HOME');

    weblogic_home=os.getenv('WEBLOGIC_HOME');

    fusion_middleware_home=os.getenv('FUSION_MIDDLEWARE_HOME');

    configuration_home = os.getenv('CONFIGURATION_HOME');

    domain_home=configuration_home + '/domains/' + domain_name;

    domain_application_home=configuration_home + '/applications/' + domain_name;

    node_manager_home=configuration_home + '/nodemanagers/' + domain_name;

    print 'CONNECT TO ADMIN SERVER';

    command_output = os.popen('find ' + domain_home + ' -name startup.properties');

    output = command_output.readline();

    command_output.close();

    loadProperties(output.rstrip());

    admin_server_url = AdminURL.replace('http','t3');

    connect(admin_username, admin_password, admin_server_url);

    print 'CONNECT TO NODE MANAGER ON ' + node_manager_listen_address + ':'

    + repr(node_manager_listen_port);

    nmConnect(node_manager_username, node_manager_password, node_manager_listen_address,

    node_manager_listen_port, domain_name, domain_home, node_manager_mode);

    domainRuntime();

    cd('ServerRuntimes');

    server_runtimes = ls(returnMap='true');

    for server_runtime in server_runtimes:

    cd(server_runtime);

    if (cmo.getName() != admin_server_name):

    host = cmo.getListenAddress().split('/');

    if (node_manager_listen_address == host[0] or node_manager_listen_ip_address

    == host[1]):

    print 'STOP SERVER ' + cmo.getName();

    shutdown(cmo.getName(),'Server','true',1000,'true');

    else:

    print 'SERVER ' + cmo.getName() + ' runs on a different host and will

    not be stopped';

    else:

    print 'SERVER ' + cmo.getName() + ' is the Admin Server and will not be

    stopped';

    cd('..');

    print 'DISCONNECT FROM NODE MANAGER ON ' + node_manager_listen_address + ':'

    + repr(node_manager_listen_port);

    nmDisconnect();

    print 'DISCONNECT FROM THE ADMIN SERVER';

    disconnect();

    在此,我们使用首次通过 Node Manager 启动服务器时创建的 startup.properties 文件 (${DOMAIN_HOME}/servers/${SERVER_NAME}/data/nodemanager) 检索管理服务器 URL。startup.properties 中的 AdminURL 属性包含管理服务器的 URL。脚本运行时,可以观察到以下输出:

    [weblogic@machine2 lifecycle]$ ./LocalStopService.sh

    Initializing WebLogic Scripting Tool (WLST) ...

    Welcome to WebLogic Server Administration Scripting Shell

    Type help() for help on available commands

    CREATE PATHS

    CONNECT TO ADMIN SERVER

    Connecting to t3://192.168.1.155:7001 with userid weblogic ...

    Successfully connected to Admin Server "AdminServer" that belongs to domain "base_domain".

    Warning: An insecure protocol was used to connect to the

    server. To ensure on-the-wire security, the SSL port or

    Admin port should be used instead.

    CONNECT TO NODE MANAGER ON machine2.com:'5556'

    Connecting to Node Manager ...

    Successfully Connected to Node Manager.

    Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root.

    For more help, use help('domainRuntime')

    dr-- AdminServer

    dr-- coherence_server_1

    dr-- coherence_server_2

    dr-- server_machine1.com_9001

    dr-- server_machine1.com_9002

    dr-- server_machine2.com_9001

    dr-- server_machine2.com_9002

    SERVER AdminServer is the Admin Server and will not be stopped

    SERVER coherence_server_1 runs on a different host and will not be stopped

    STOP SERVER coherence_server_2

    Shutting down the server coherence_server_2 with force=true while connected to AdminServer ...

    SERVER server_machine1.com_9001 runs on a different host and will not be stopped

    SERVER server_machine1.com_9002 runs on a different host and will not be stopped

    STOP SERVER server_machine2.com_9001

    Shutting down the server server_machine2.com_9001 with force=true while connected to

    AdminServer ...

    STOP SERVER server_machine2.com_9002

    Shutting down the server server_machine2.com_9002 with force=true while connected to

    AdminServer ...

    DISCONNECT FROM NODE MANAGER ON machine2.com:'5556'

    Successfully disconnected from Node Manager.

    DISCONNECT FROM THE ADMIN SERVER

    Disconnected from weblogic server: AdminServer

    在以上所示脚本中,我们连接到管理服务器以检索运行时信息。若遇管理服务器不可用,但我们又希望停止和启动受管服务器,则必须分别转而使用 nmKill 和 nmStart。要以独立模式启动受管服务器,可以使用:

    nmConnect(node_manager_username, node_manager_password, node_manager_listen_address,

    node_manager_listen_port, domain_name, domain_home, node_manager_mode);

    nmStart(managed_server_name);

    示例如下:

    wls:/offline> nmConnect(node_manager_username, node_manager_password,

    node_manager_listen_address, node_manager_listen_port, domain_name, domain_home,

    node_manager_mode);

    Connecting to Node Manager ...

    Successfully Connected to Node Manager.

    wls:/nm/base_domain> nmStart('coherence_server_2');

    Starting server coherence_server_2 ...

    Successfully started server coherence_server_2 ...

    要使用 nmStart,我们需要获得服务器名称。${DOMAIN_HOME}/servers 包含以服务器名称命名的目录,例如,本例中为:

    ${DOMAIN_HOME}

    /servers

    /AdminServer

    /coherence_server_1

    /domain_bak

    /server_machine1.com_9001

    /server_machine2.com_9002

    使用 File API 获得目录的名称。要将此与 WLST 命令 nmConnect 和 nmStart(或 nmKill)组合,请创建如下脚本:

    import socket;

    import java.io.File;

    import java.util.ArrayList;

    import java.util.Arrays;

    print 'CREATE PATHS';

    domain_name=os.getenv('DOMAIN_NAME');

    java_home=os.getenv('JAVA_HOME');

    middleware_home=os.getenv('MIDDLEWARE_HOME');

    weblogic_home=os.getenv('WEBLOGIC_HOME');

    fusion_middleware_home=os.getenv('FUSION_MIDDLEWARE_HOME');

    configuration_home = os.getenv('CONFIGURATION_HOME');

    domain_home=configuration_home + '/domains/' + domain_name;

    domain_application_home=configuration_home + '/applications/' + domain_name;

    node_manager_home=domain_home + '/nodemanager';

    print 'OBTAIN SERVER NAMES';

    defiles = java.io.File(domain_home + '/servers');

    delist = java.util.Arrays.asList(defiles.list());

    denames = java.util.ArrayList(delist);

    print 'CONNECT TO NODE MANAGER';

    node_manager_listen_address = socket.gethostname();

    nmConnect(node_manager_username, node_manager_password, node_manager_listen_address,

    node_manager_listen_port, domain_name, domain_home, node_manager_mode);

    print 'STARTING SERVERS';

    for dename in denames:

    if (dename != admin_server_name and dename != 'domain_bak'):

    nmStart(dename);

    # nmKill(dename);

    print 'DISCONNECT FROM NODE MANAGER';

    nmDisconnect();

    执行此脚本时,可以观察到以下输出:

    # nmStart

    [weblogic@machine1 lifecycle]$ ./tryout.sh

    Initializing WebLogic Scripting Tool (WLST) ...

    Welcome to WebLogic Server Administration Scripting Shell

    Type help() for help on available commands

    CREATE PATHS

    OBTAIN SERVER NAMES

    CONNECT TO NODE MANAGER

    Connecting to Node Manager ...

    Successfully Connected to Node Manager.

    STARTING SERVERS

    Starting server server_machine1.com_9002 ...

    Successfully started server server_machine1.com_9002 ...

    Starting server server_machine1.com_9001 ...

    Successfully started server server_machine1.com_9001 ...

    Starting server coherence_server_1 ...

    Successfully started server coherence_server_1 ...

    DISCONNECT FROM NODE MANAGER

    Successfully disconnected from Node Manager.

    #nmKill

    [weblogic@machine1 lifecycle]$ ./tryout.sh

    Initializing WebLogic Scripting Tool (WLST) ...

    Welcome to WebLogic Server Administration Scripting Shell

    Type help() for help on available commands

    CREATE PATHS

    OBTAIN SERVER NAMES

    CONNECT TO NODE MANAGER

    Connecting to Node Manager ...

    Successfully Connected to Node Manager.

    STARTING SERVERS

    Killing server server_machine1.com_9002 ...

    Successfully killed server server_machine1.com_9002

    Killing server server_machine1.com_9001 ...

    Successfully killed server server_machine1.com_9001

    Killing server coherence_server_1 ...

    Successfully killed server coherence_server_1

    DISCONNECT FROM NODE MANAGER

    Successfully disconnected from Node Manager.

    注意文档中的注释:“若要使用 nmStart 启动服务器,boot.properties 必须存在。如果您是首次启动服务器或首次使用 Node Manager,必须手动创建该文件,或运行 nmGenBootStartupProps 命令为服务器生成 boot.properties 和 startup.properties 文件。”例如:

    wls:/base_domain/serverConfig> nmGenBootStartupProps('coherence_server_1');

    Successfully generated boot.properties at

    /u01/software/weblogic/12.1.2/scripts/servers/coherence_server_1/data/nodemanager/

    boot.properties.

    Successfully generated startup.properties at

    /u01/software/weblogic/12.1.2/scripts/servers/coherence_server_1/data/nodemanager/

    startup.properties. 在启动 WLST 的目录(因此仍然需要将这些文件复制到 ${DOMAIN_HOME}/servers/${SERVER_NAME}/data/nodemanager 目录)中创建文件。

    总结

    为 Node Manager 创建一个“服务”是很好的做法,这样就可以在计算机启动时启动 Node Manager。可以考虑将 CrashRecoveryEnabled 设置为“true”,这样计算机重启时就不会有问题了。还可以考虑让 Node Manager 使用明文(而不是 ssl)通信(如果网络实在不安全,也可以使用 ssl 并创建自己的密钥库)。为每个域设置一个 Node Manager,而不是每台计算机。通过 Node Manager 启动管理服务器,并通过管理服务器启动受管服务器。为确保 Node Manager 能够在系统崩溃后正常重启服务器,还必须启用 CrashRecoveryEnabled。这种情况下,计算机的启动序列中只需有 Node Manager 即可。

    参考资料

    关于作者

    René van Wijk

    sml-twitter.gifblog-icon-box-orange-16.gifsml_linkedin_icon.giffacebook-icon.jpgformat,png

    Oracle ACE 总监 René van Wijk 使用众多技术,包括 Oracle Coherence、Oracle WebLogic、Hibernate、Java 虚拟机、JBoss 和 Spring。他毕业于代尔夫特理工大学,经常通过培训、出版物以及研讨会和各种会议上的演讲活动传授知识和经验。

    您将需要 Skype Credit免费通过 Skype

    展开全文
  • 如何将 Oracle WebLogic Server 使用的 JDK 升级到不同的版本(Doc ID 1600832.1)Last updated on JUNE 01, 2020适用于:Oracle WebLogic Server - 版本 8.1 和更高版本本文档所含信息适用于所有平台目标本文的主要...

    8f4694ad83688a3b086e0b65a72a0864.png

    如何将 Oracle WebLogic Server 使用的 JDK 升级到不同的版本

    (Doc ID 1600832.1)

    Last updated on JUNE 01, 2020

    适用于:

    Oracle WebLogic Server - 版本 8.1 和更高版本

    本文档所含信息适用于所有平台

    目标

    本文的主要目标是说明将 Oracle WebLogic Server 安装所用的 JDK 升级到更新版本的步骤。

    必须注意,支持将 Java SE(或分为 JDK/JRE)更新到最新版本的前提是,这样做仍然能得到认证。因此,用户应检查目标 JDK版本是否已经过相应 Weblogic Server 版本的认证,然后自行实施以下说明中的事项。

    免责声明

    Oracle WebLogic Server 可以作为独立产品使用,也可以作为许多其它多层产品的核心,例如对于 Oracle Fusion Middleware 11g 安装。本文不会考虑新 JDK 能否得到特定 Fusion Middleware 版本认证这一点,因此,用户应自己负责查看产品认证表,以确认您的安装类型是否支持所需的 JDK 版本。

    1) 对于 Oracle Fusion Middleware 11g,查看以下两个文档中的认证信息:

    -  How to Maintain the Java SE Installed or Used with FMW 11g Products

    - How to Find Certification Details for Oracle Application Server 10g and Oracle Fusion Middleware.

    2) 对于个别的 Oracle Weblogic Server 配置,涉及 10.3.0 之前版本的,查看以下位置的认证信息:

    3) 对于 Weblogic Server 12.1.2 ,请参阅

    如果安装的是 Oracle Fusion Middleware 11g,请参阅以下文档:

     -  How to Maintain the Java SE Installed or Used with FMW 11g Products

    本文未涉及的两种情况:

    1) 如果您的目标不是升级,而是从 Java SUN JDK 转换到 Oracle JRockit JDK,请参阅:  - How To Change Type of JDK (Sun / JRockit) for FMW 11g Domain.

    2) 如果您的目标是将 32 位 JDK 版本替换为新的 64 位 JDK 版本,本文不适用。请参阅:  - How Re-Create, Copy, or Re-Use Existing WLS Domains from 32 bit to 64 bit Architecture

    本文中的步骤通常适用于从安装过程中默认使用的 JDK 转换到更高的版本,甚至也可以同样地用来降低版本。

    解决方案To view full details, sign in with your My Oracle Support account.

    Don't have a My Oracle Support account? Click to get started!

    文档内容

    My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.

    Oracle offers a comprehensive and fully integrated stack of cloud applications and platform services. For more information about Oracle (NYSE:ORCL), visit oracle.com.

    © Oracle | Contact and Chat | Support | Communities | Connect with us | 49b66c3c850039e43e743c59ca4d4d68.png | 08c3a0fcc551beef4d932cfbc2e4dbc8.png | bc5a093e29e9ce7e90a2c4fbcd363cbf.png | Legal Notices | Terms of Use

    展开全文
  • 在上一篇文章中 ,您已经了解了如何启动WebLogic管理员和多个托管服务器。 该指令的一个缺点是这些进程将从前台开始,而STDOUT则打印在终端上。 如果打算将这些服务器作为后台服务运行,则可能需要尝试使用WebLogic...

    一篇文章中 ,您已经了解了如何启动WebLogic管理员和多个托管服务器。 该指令的一个缺点是这些进程将从前台开始,而STDOUT则打印在终端上。 如果打算将这些服务器作为后台服务运行,则可能需要尝试使用WebLogic节点管理器wlscontrol.sh工具。 我将向您展示如何从此处启动Node Manager。

    最简单的方法仍然是使用临时运行的管理服务器来创建域目录,然后按照上一篇文章中的说明通过/ console应用程序创建所有服务器。 一旦创建了这些,就可以关闭所有这些进程,并使用节点管理器启动它。

    cd $WL_HOME/server/bin && startNodeManager.sh &
    $WL_HOME/common/bin/wlscontrol.sh -d mydomain -r $HOME/domains/mydomain -c -f startWebLogic.sh -s myserver START
    $WL_HOME/common/bin/wlscontrol.sh -d mydomain -r $HOME/domains/mydomain -c -f startManagedWebLogic.sh -s appserver1 START

    上面的第一步是启动并运行节点管理器。 建议您将其作为完整的守护程序服务运行,以便即使OS重新启动也可以自行重新启动。 但是出于演示目的,您可以运行它并发送到后台。 然后,使用节点管理器,我们可以在步骤2中启动管理员,然后在步骤3中启动受管服务器。

    NodeManager不仅可以为您启动WebLogic服务器,还可以监视它们并在由于任何原因终止它们时自动重新启动它们。 如果要手动关闭服务器,则也可以通过节点管理器使用此命令:

    上面的第一步是启动并运行节点管理器。 建议您将其作为完整的守护程序服务运行,以便即使OS重新启动也可以自行重新启动。 但是出于演示目的,您可以运行它并发送到后台。 然后,使用节点管理器,我们可以在步骤2中启动管理员,然后在步骤3中启动受管服务器。

    NodeManager不仅可以为您启动WebLogic服务器,还可以监视它们并在由于任何原因终止它们时自动重新启动它们。 如果要手动关闭服务器,则也可以通过节点管理器使用此命令:

    $WL_HOME/common/bin/wlscontrol.sh -d mydomain -s appserver1 KILL

    节点管理器还可以用于通过多台计算机上的SSH远程启动服务器。 有效地使用此工具可以帮助管理整个网络中的服务器。 您可以在此处阅读更多详细信息:http://docs.oracle.com/cd/E23943_01/web.1111/e13740/toc.htm

    提示1:如果启动服务器时出现问题,您可以通过wnat来查看日志文件。 一个日志文件是您尝试启动的服务器的<domain> / servers / <server> / logs / <server> .out。 或者,您可以在$ WL_HOME / common / nodemanager / nodemanager.log中查看节点管理器日志本身。

    TIPS2:从节点管理器开始,将启动JVM参数添加到每个服务器。 您需要在<domain> / servers / <server> /data/nodemanager/startup.properties下创建一个文件,并添加以下键值对:Arguments = -Dmyapp = / foo / bar

    TIPS3:如果要浏览Windows版本的NodeManager,可能需要在没有本机库的情况下启动NodeManager,以免造成麻烦。 尝试将NativeVersionEnabled = false添加到$ WL_HOME / common / nodemanager / nodemanager.properties
    文件。

    翻译自: https://www.javacodegeeks.com/2014/03/how-to-use-nodemanager-to-control-weblogic-servers.html

    展开全文
  • weblogic如何创建域

    千次阅读 2018-07-17 16:13:04
    使用默认选项,下一步 域名和域的位置可以自己修改,下一步 填写安装weblogic时的账户名和密码,下一步 选择默认,下一步 这一块,我不选,下一步 选中AdminServer,点击创建 点击创建...
  • 这个值以分钟为单位,并覆盖weblogic.xml中的TimeoutSecs属性60此例表示Session将在60分钟后过期当设置为-2,表示将使用weblogic.xml中设置的TimeoutSecs这个属性值。当设置为-1,表示Session将永不过期,而忽略...
  • 使用32位JDK时,JVM一般设置最大设置为1.7G,而现在服务器普遍内存都很大,当然可以通过多个server建立垂直集群来更好的利用资源,但不妨使用64位JDK。虽然WebLogic可以直接在setDomainEnv里指定JAVA_HOME来更改JDK...
  • 分类:Linux ...How to tell Our WebLogic to use JRockit JVM ? Step-1).Set the JAVA_HOME environmental variable in < MIDDLEWARE_HOME>/common/bin/commEnv.cmd (commEnv.sh) to t...
  • WebLogic如何设置session超时时间 1 web.xml 设置WEB应用程序描述符web.xml里的session-timeout>元素。这个值以分钟为 单位,并覆盖weblogic.xml中的TimeoutSecs属性  54 此例表示Session将在54...
  • 如何使用NodeManager管理WebLogic集群 1. 首先,要确认在安装Weblogic Server的过程中,勾选NodeManager选项,如下图,默认是不选中的,为了后期能简单的使用节点管理器,这里需要选择Yes,然后完成软件安装。 2...
  • 在上一篇文章中 ,您已经了解了如何启动WebLogic管理员和多个托管服务器。 该指令的一个缺点是这些进程将从前台开始,而STDOUT则打印在终端上。 如果打算将这些服务器作为后台服务运行,则可能需要尝试使用WebLogic...
  • WebLogic如何配置SSL

    千次阅读 2016-09-21 13:04:56
    私钥、数字证书和可信证书颁发机构 私钥、数字证书和可信证书颁发机构可建立和验证服务器标识和信任。...使用公钥加密时,将为一台服务器生成一个公钥和一个私钥。对于用公钥加密的数据,只能用相应的私钥解密;对于
  • 1-./startWebLogic.sh。---用cd命令进入startWebLogic.sh所在的目录然后敲上面的命令,如果配置了环境变量,则直接敲startWebLogic.sh命令即可。2-输入用户名和密码。3-启动之后输入ctrl+z---这时会显示一个以数字...
  • Weblogic如何调用TUXDEO服务

    千次阅读 2009-06-25 10:53:00
    1.如何Weblogic下调用一个来自同一Server端TUXDEO服务WebLogic Tuxedo Connector (WTC) 是一个兼容 JCA ( J2EE 连接器架构)的软件组件,它提供 Tuxedo 服务和 WebLogic Server 部署的企业应用程序之间的互操作...
  • 如何使用opatch给WebLogic打补丁中文社区 (MOSC)中间件 (MOSC)0 RepliesLast updated on July 25, 2016This question is Not Answered.在WebLogic 12.1.2版本以后,给WebLogic打补丁不再使用bsu工具(Smart Updater)...
  • 介绍如何配置weblogic使用PKI数字证书认证
  • 如题,我想实现: 在WebLogic上运行某应用,使用双向https认证Client,但是...在Tomcat上可以通过开发自定义SecurityProvider提供一个自定义的TrustManager来实现,那么在WebLogic(9.2或以上版本)上如何实现?
  • [b]一、[/b]下载jakarta-taglibs-standard-1.0.6.zip; [b]二、[/b]解压缩后将lib/*.jar 拷贝到WEB-INF/lib下; [b]三、[/b]拷贝tld/*.tld 到WEB-INF下面; [b]四、web.xml文件如下[/b] ... ...
  • WebLogic Builder使用简介

    千次阅读 2007-01-23 15:59:00
    WebLogic Builder使用简介在DEV2DEV论坛上有网友会问类似于这样的问题“如何为EJB写那些部署描述文件如ejb-jar.xml以及WebLogic-ejb- jar.xml呢?”,对初学EJB的朋友来说,是一个比较困难的问题,如果不想手写的话...
  • WebLogic如何更换64位JDK

    千次阅读 2013-04-16 17:17:07
    使用32位JDK时,JVM一般设置最大设置为1.7G,而现在服务器普遍内存都很大,当然可以通过多个server建立垂直集群来更好的利用资源,但不妨使用64位JDK。虽然WebLogic可以直接在setDomainEnv里指定JAVA_HOME来更改JDK...
  • weblogic webapp 使用https

    千次阅读 2009-02-13 10:26:00
    如果使webapp项目可以使用https访问.需要在weblogic控制进行设置...本blog有文章介绍如何生成导入. 启动weblogic 进入控制台 user_domain->Environment->Servers->Configuration->General SSL Listen Port Enabled上

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 731
精华内容 292
关键字:

weblogic如何使用