Portal 8.1 集群目标指定 (targeting)

问题描述
在 WebLogic Portal/WebLogic Platform 8.1 集群域中,如果 Portal 应用程序组件和/或资源目标指定 (targeting) 不正确,则应用程序的行为将不可预测。如果您正在集群环境中运行 WebLogic Portal 并遇到了问题,您应阅读此模式。不管应用程序是否遇到问题,目标指定 (targeting) 都要正确。实际上,应用程序在某一段时间内似乎可能运行良好,但是由于各应用程序的独特性质、应用程序的最终使用方式及其运行环境等因素,问题可能会随时出现并以多种方式表现出来。以下是可能因目标指定 (targeting) 不正确而引起的一些常见问题。请注意,下列问题决不是详细列表,而且也不意味着在您遇到其中的一个问题时,该问题就一定是由于目标指定 (targeting) 不正确所导致的。
  • 部署失败
  • 集群复制错误
  • Portal 管理工具功能丢失
  • 数据库错误
  • Portal 管理工具中的 Portal Web 应用程序不可用
  • 空指针异常
  • Desktop 创建问题
  • Datasync 问题
  • 会话问题
  • 数据破坏
故障排除
请注意,并非下面所有任务都需要完成。有些问题仅通过执行几项任务就可以解决。

首先,应该查看 config.xml 文件,以确保所有 Portal 资源和应用程序组件的目标指定 (targeting) 正确无误。可参阅下面的“组件目标指定 (targeting) 快速参考”和“示例 config.xml 文件条目”,以查看对哪些项目进行了目标定位、定位在何处。

如果确定目标指定 (targeting) 正确无误,但遇到了与特定集群有关的问题(如会话复制失败或广播错误),则应参阅 WebLogic 服务器集群/负载平衡支持模式。
快速链接:
常见错误/异常
以下是由于目标指定 (targeting) 不正确所导致的一些已知的常见错误/异常。请注意,这些特定错误不一定是由于目标指定 (targeting) 不正确所导致的,它们也可能是由其它问题造成的。
  1. 部署失败
<Emergency> <Deployer> <BEA-149229> <Server myServer in cluster myCluster is unable to initialize due to failed deployments.>

<Error> <Deployer> <BEA-149601> <The deployment framework was unable to resume accepting requests.>

<Emergency> <WebLogicServer> <BEA-000342> <Unable to initialize the server: [Deployer:149601]The deployment framework was unable to resume accepting requests.[Deployer:149229]Server myServer in cluster myCluster is unable to initialize due to failed deployments.
返回页首

  1. NullPointerException
<Error> <HTTP> <BEA-101017> <[ServletContext(id=3842495,name=xxxxxx,context-path=/xxxxxx)] Root cause of ServletException.
java.lang.NullPointerException
at weblogic.utils.FileUtils.remove(FileUtils.java:194)
at weblogic.management.mbeans.custom.Component.removeTempModule(Component.java:349)
at weblogic.management.mbeans.custom.Component.initializeTwoPhase(Component.java:431)
at weblogic.management.mbeans.custom.Component.initialize(Component.java:278)
at weblogic.management.mbeans.custom.WebAppComponent.findOrCreateWebDescriptor(WebAppComponent.java:109)
at sun.reflect.GeneratedMethodAccessor88.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:711)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:690)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:476)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
at weblogic.management.internal.RemoteMBeanServerImpl.private_invoke(RemoteMBeanServerImpl.java:947)
at weblogic.management.internal.RemoteMBeanServerImpl.invoke(RemoteMBeanServerImpl.java:908)
at weblogic.management.internal.RemoteMBeanServerImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:353)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:415)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
返回页首

  1. 启动时,Servlet 预加载失败
<Error> <HTTP> <BEA-101216> <Servlet: "xxxxxxServlet" failed to preload on startup in Web application: "xxxxxx".
javax.servlet.ServletException
at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:884)
at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:848)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:787)
at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:3252)
at weblogic.servlet.internal.WebAppServletContext.preloadServlets(WebAppServletContext.java:3209)
at weblogic.servlet.internal.WebAppServletContext.preloadServlets(WebAppServletContext.java:3195)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:3174)
at weblogic.servlet.internal.WebAppServletContext.setStarted(WebAppServletContext.java:5647)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:869)
at weblogic.j2ee.J2EEApplicationContainer.start(J2EEApplicationContainer.java:2022)
at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2063)
at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.activateContainer(SlaveDeployer.java:2592)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.doCommit(SlaveDeployer.java:2515)
at weblogic.management.deploy.slave.SlaveDeployer$Task.commit(SlaveDeployer.java:2317)
at weblogic.management.deploy.slave.SlaveDeployer.commitUpdate(SlaveDeployer.java:608)
at weblogic.drs.internal.SlaveCallbackHandler$2.execute(SlaveCallbackHandler.java:35)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
返回页首

  1. 无法部署 AsyncDispatcher EJB
<Error> <Deployer> <BEA-149231> <Unable to set the activation state to true for the application xxxxxx.
weblogic.management.ApplicationException: activate failed for .workshop/xxxxxx/EJB/ProjectBeans { Module Name: .workshop/xxxxxx/EJB/ProjectBeans, Error: Exception activating module:
EJBModule(.workshop/xxxxxx/EJB/ProjectBeans,status=PREPARED)

Unable to deploy EJB: AsyncDispatcher from .workshop/xxxxxx/EJB/ProjectBeans:

[EJB:011046]Unable to create EJBRuntimeMBean.
javax.management.InstanceAlreadyExistsException: portal:ApplicationRuntime=xxxxxx,EJBComponentRuntime=
xxxxxx.workshop/xxxxxx/EJB/ProjectBeans,Location=portalServer,Name=
xxxxxx.workshop/xxxxxx/EJB/xxxxxx.queue.AsyncDispatcher,ServerRuntime=portalServer,Type=MessageDrivenEJBRuntime
at com.sun.management.jmx.RepositorySupport.addMBean(RepositorySupport.java:134)
at com.sun.management.jmx.MBeanServerImpl.internal_addObject(MBeanServerImpl.java:2371)
at com.sun.management.jmx.MBeanServerImpl.registerMBean(MBeanServerImpl.java:876)
at weblogic.management.internal.RemoteMBeanServerImpl.private_registerMBean(RemoteMBeanServerImpl.java:582)
at weblogic.management.internal.RemoteMBeanServerImpl.registerMBean(RemoteMBeanServerImpl.java:524)
at weblogic.management.runtime.RuntimeMBeanDelegate.register(RuntimeMBeanDelegate.java:166)
at weblogic.management.runtime.RuntimeMBeanDelegate.(RuntimeMBeanDelegate.java:122)
at weblogic.management.runtime.RuntimeMBeanDelegate.(RuntimeMBeanDelegate.java:85)
at weblogic.ejb20.monitoring.EJBRuntimeMBeanImpl.(EJBRuntimeMBeanImpl.java:33)
at weblogic.ejb20.monitoring.MessageDrivenEJBRuntimeMBeanImpl.(MessageDrivenEJBRuntimeMBeanImpl.java:30)
at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.initPool(MessageDrivenBeanPoolInfoImpl.java:182)
at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.activate(MessageDrivenBeanPoolInfoImpl.java:245)
at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.activatePoolInfo(MessageDrivenBeanInfoImpl.java:474)
at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.deploy(MessageDrivenBeanInfoImpl.java:440)
at weblogic.ejb20.deployer.EJBDeployer.activate(EJBDeployer.java:1327)
at weblogic.ejb20.deployer.EJBModule.activate(EJBModule.java:610)
at weblogic.j2ee.J2EEApplicationContainer.activateModule(J2EEApplicationContainer.java:3127)
at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2081)
at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2062)
at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2010)
at weblogic.management.deploy.slave.SlaveDeployer$Application.setActivation(SlaveDeployer.java:3108)
at weblogic.management.deploy.slave.SlaveDeployer.setActivationStateForAllApplications(SlaveDeployer.java:1656)
at weblogic.management.deploy.slave.SlaveDeployer.resume(SlaveDeployer.java:372)
at weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.resume(DeploymentManagerServerLifeCycleImpl.java:229)
at weblogic.t3.srvr.SubsystemManager.resume(SubsystemManager.java:131)
at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:964)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:359)
at weblogic.Server.main(Server.java:32)
...
返回页首

  1. 无法部署 Deploy QueueTransport EJB
<Error> <Deployer> <BEA-149231> <Unable to set the activation state to true for the application JWSQueueTransport.
weblogic.management.ApplicationException: activate failed for QueueTransportEJB
{
Module Name: QueueTransportEJB, Error: Exception activating module: EJBModule(QueueTransportEJB,status=PREPARED)

Unable to deploy EJB: KNEX.bean.QueueTransport from QueueTransportEJB.jar:

[EJB:011046]Unable to create EJBRuntimeMBean.
javax.management.InstanceAlreadyExistsException: portal:ApplicationRuntime=xxxxxx_JWSQueueTransport,
EJBComponentRuntime=xxxxxx_JWSQueueTransport_QueueTransportEJB,Location=xxxxxx,Name=
xxxxxx_JWSQueueTransport_QueueTransportEJB_KNEX.bean.QueueTransport_jws.queue,ServerRuntime=xxxxxx,Type=MessageDrivenEJBRuntime
at com.sun.management.jmx.RepositorySupport.addMBean(RepositorySupport.java:134)
at com.sun.management.jmx.MBeanServerImpl.internal_addObject(MBeanServerImpl.java:2371)
at com.sun.management.jmx.MBeanServerImpl.registerMBean(MBeanServerImpl.java:876)
at weblogic.management.internal.RemoteMBeanServerImpl.private_registerMBean(RemoteMBeanServerImpl.java:582)
at weblogic.management.internal.RemoteMBeanServerImpl.registerMBean(RemoteMBeanServerImpl.java:524)
at weblogic.management.runtime.RuntimeMBeanDelegate.register(RuntimeMBeanDelegate.java:166)
at weblogic.management.runtime.RuntimeMBeanDelegate.(RuntimeMBeanDelegate.java:122)
at weblogic.management.runtime.RuntimeMBeanDelegate.(RuntimeMBeanDelegate.java:85)
at weblogic.ejb20.monitoring.EJBRuntimeMBeanImpl.(EJBRuntimeMBeanImpl.java:33)
at weblogic.ejb20.monitoring.MessageDrivenEJBRuntimeMBeanImpl.(MessageDrivenEJBRuntimeMBeanImpl.java:30)
at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.initPool(MessageDrivenBeanPoolInfoImpl.java:182)
at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.activate(MessageDrivenBeanPoolInfoImpl.java:245)
at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.activatePoolInfo(MessageDrivenBeanInfoImpl.java:474)
at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.deploy(MessageDrivenBeanInfoImpl.java:440)
at weblogic.ejb20.deployer.EJBDeployer.activate(EJBDeployer.java:1327)
at weblogic.ejb20.deployer.EJBModule.activate(EJBModule.java:610)
at weblogic.j2ee.J2EEApplicationContainer.activateModule(J2EEApplicationContainer.java:3127)
at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2081)
at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2062)
at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2010)
at weblogic.management.deploy.slave.SlaveDeployer$Application.setActivation(SlaveDeployer.java:3108)
at weblogic.management.deploy.slave.SlaveDeployer.setActivationStateForAllApplications(SlaveDeployer.java:1656)
at weblogic.management.deploy.slave.SlaveDeployer.resume(SlaveDeployer.java:372)
at weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.resume(DeploymentManagerServerLifeCycleImpl.java:229)
at weblogic.t3.srvr.SubsystemManager.resume(SubsystemManager.java:131)
at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:964)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:359)
at weblogic.Server.main(Server.java:32)
返回页首

  1. ClassNotFoundException
<Error> <HTTP> <machine> <server> <ExecuteThread: '0' for queue:
'weblogic.kernel.System'> <<WLS Kernel>> <> <BEA-101163> <Could not load user defined listener: com.bea.p13n.servlets.AnonymousProfileListener
java.lang.ClassNotFoundException: com.bea.p13n.servlets.AnonymousProfileListener
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:198)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:62)
at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code))
at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code))
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:223)
at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:41)
at weblogic.servlet.internal.WebAppServletContext.loadClass(WebAppServletContext.java:5574)
at weblogic.servlet.internal.WebAppServletContext.registerEventListener(WebAppServletContext.java:2804)
at weblogic.servlet.internal.WebAppServletContext.activateFromDescriptors(WebAppServletContext.java:2383)
at weblogic.servlet.internal.WebAppServletContext.activate(WebAppServletContext.java:5610)
at weblogic.servlet.internal.WebAppServletContext.setActive(WebAppServletContext.java:5588)
at weblogic.servlet.internal.WebAppModule.activate(WebAppModule.java:841)
at weblogic.j2ee.J2EEApplicationContainer.activateModule(J2EEApplicationContainer.java:3127)
at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2081)
at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2062)
at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.activateContainer(SlaveDeployer.java:2592
) at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.doCommit(SlaveDeployer.java:2515)
at weblogic.management.deploy.slave.SlaveDeployer$Task.commit(SlaveDeployer.java:2317)
at weblogic.management.deploy.slave.SlaveDeployer.commitUpdate(SlaveDeployer.java:608)
at weblogic.drs.internal.SlaveCallbackHandler$2.execute(SlaveCallbackHandler.java:35)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java(Compiled Code))
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java(Compiled Code))
返回页首

为什么发生此问题?
发生此问题是因为一些或所有的 Portal 应用程序组件和/或资源的目标定位不正确。对于集群域中的 Portal 应用程序,需要将多数组件和资源的目标定位到集群和管理服务器。这不同于其它 WebLogic 产品,它们的目标通常定位到集群。管理服务器和集群上的这种完整的部署是必需的,而且它还是唯一被支持的配置。有一些特定于集群的应用程序设计问题,WebLogic Portal 可解决这些问题以确保 Portal 应用程序在集群环境中以最佳方式正确执行。我们所描述的整个目标指定 (targeting) 方案是这些设计问题的解决办法的一部分。

返回页首

部署应用程序
以下是部署文档,它描述了 8.1 Platform(包括 Portal)和不同的 8.1 Portal Service Pack (SP) 的正确的集群目标指定 (targeting)。必须遵循这些步骤才能在 8.1 集群环境中进行正确的 Portal 部署。

在上述的 Portal 部署文档中,也引用了几个演示。如果您对创建域和部署应用程序不熟悉,则应仔细查看下列这些演示:

  • 配置生产环境
  • 部署 Portal 应用程序
  • 创建被管服务器

以下是来自最新 WLP 8.1 部署文档的一些关键的摘录,这些摘录描述了应用程序及其组件的目标指定 (targeting):

多数组件的目标必须定位到管理服务器及集群。以下是一些例外情况:

<管理服务器上不需要 AppName>Admin(尽管在管理服务器上部署 <AppName>Admin 不会造成任何问题)。
<目标服务器或集群上不需要 AppName>Datasync(尽管将 <AppName>Datasync 部署到目标服务器或集群不会造成任何问题)。

管理服务器和集群上的这种完整的部署是必需的,而且它还是唯一被支持的配置。有一些特定于集群的应用程序设计问题,WebLogic Portal 可解决这些问题以确保 Portal 应用程序在集群环境中以最佳方式正确执行。我们所描述的整个目标指定 (targeting) 方案是这些设计问题的解决办法的一部分。

如果要减少在管理服务器和集群上部署的模块数,请在部署步骤中单击 Target Each Module,并取消管理服务器的 <AppName>Admin 的目标定位以及集群的 <AppName>Datasync 的目标定位。

当需要将 Portal 应用程序部署到管理服务器时,通常不会使用管理服务器来为 Portal 应用程序提供页面服务。

使用目标部署
在前几步骤中,您为部署的整个应用程序进行了目标定位,而不是将各模块的目标指定 (targeting) 到管理服务器和集群。建议使用此种部署方法。由于几乎所有模块都必须部署到管理服务器和集群,所以如果您希望通过为各模块进行目标指定 (targeting) 来获得性能或磁盘空间方面的好处,则这种好处将不会很多。

但是,如果出于某种原因您要使用目标部署,则请使用下列按照从易到难顺序列出的建议。

  • 避免目标部署。将整个应用程序部署到管理服务器和集群。
  • 在 WebLogic 管理控制台中使用 Netscape 或 Mozilla 浏览器执行目标部署。
  • 执行多个目标部署。先部署模块的一半,然后再部署其余部分。
  • 在 Linux 或 UNIX 环境中运行 weblogic.Deployer 实用程序。有关使用 weblogic.Deployer 实用程序的信息,请参阅 http://e-docs.bea.com/wls/docs81/deployment/tools.html
  • 编写 Java 代码以调用 weblogic.Deployer main() 并在模块参数中传递。
  • 使用 WebLogic Server Scripting Tool (WLST)。此选项尚未在 WebLogic Portal 部署上进行测试。有关 WLST 的信息,请参阅 http://dev2dev.bea.com/codelibrary/code/wlst.jsp
返回页首

组件目标指定 (targeting) 快速参考
以下是快速参考摘要,用户在为构成完整 Portal 应用程序的各种应用程序、组件和资源进行目标指定 (targeting) 时将需要使用此摘要。

  • <AppName>Admin 仅目标定位到集群(但是对于 SP3 及更高版本的 Service Pack,可将其目标定位到集群和管理服务器)。对于 SP2,仅将管理应用程序的目标定位到群集!


  • <AppName>Datasync 仅目标定位到管理服务器(但是对于 SP3 及更高版本的 Service Pack,可将其目标定位到集群和管理服务器)。对于 SP2,仅将 DATASYNC 应用程序的目标定位到群集!


  • 将 Portal 应用程序中所有其它 EJBComponentWebAppComponent 组件的目标定位到集群和管理服务器。


  • Portal JDBC 连接池(cgJMSpool-nonXA、cgpool、portalPool)的目标定位到集群和管理服务器。


  • Portal JDBC 数据源(p13n_trackingDataSource、p13nDataSource)的目标定位到集群和管理服务器。


  • Portal JDBC Tx 数据源(cgDataSource、cgDataSource-nonXA、portalFrameworkPool)的目标定位到集群和管理服务器。


  • JMSServer-每个服务器有一个 JMSServer。将每个 JMSServer 的目标定位到与其关联的被管或管理服务器。


  • JMSConnectionFactory (cgQueue) 的目标定位到集群和管理服务器。


  • 仅将 JMSDistributedQueue 的目标定位到集群。


  • 仅将 JWSQueueTransport 的目标定位到集群。
返回页首

示例 config.xml 文件条目
以下是从 Configuration Wizard 和/或 WebLogic 服务器控制台为 8.1 Portal/Platform 集群域创建的示例 config.xml 文件条目。请注意,这“不”是一个完整的 config.xml 文件。此处仅显示相关的目标指定 (targeting) 示例,其目的是为了符合目标指定 (targeting) 主题并避免不必要的混乱。

请注意,切勿手动编辑 config.xml 文件! 目标指定 (targeting) 只能通过 Configuration Wizard(创建域时)然后再通过 WebLogic 服务器控制台(创建域之后)进行。

对下列这些示例来说:
AdminServer: Portal Admin Server
m1: Managed server 1
m2: Managed server 2
PortalCluster: Portal Cluster, comprised of m1 & m2
myEntApp: Enterprise Application
myWebApp: Web Application
返回页首

* Portal 应用程序,显示管理应用程序只目标定位到集群,Datasync 应用程序只目标定位到管理服务器,所有其它组件将目标定位到集群和管理服务器:

备注:对于 8.1 SP3 及更高版本的 SP,可将 <AppName>Admin 和 <AppName>Datasync 的目标定位到集群和管理服务器。 
<Application Deployed="true" Name="myEntApp"
Path="D:\bea814\user_projects\applications\myEntApp\myEntApp.ear"
StagedTargets="m2,m1,AdminServer" StagingMode="stage" TwoPhase="true">
<EJBComponent Name="content.jar"
Targets="AdminServer,PortalCluster" URI="content.jar"/>
<EJBComponent Name="content_repo.jar"
Targets="AdminServer,PortalCluster" URI="content_repo.jar"/>
<EJBComponent Name="netuix.jar"
Targets="AdminServer,PortalCluster" URI="netuix.jar"/>
<EJBComponent Name="p13n_ejb.jar"
Targets="AdminServer,PortalCluster" URI="p13n_ejb.jar"/>
<EJBComponent Name="prefs.jar"
Targets="AdminServer,PortalCluster" URI="prefs.jar"/>
<EJBComponent Name="wps.jar"
Targets="AdminServer,PortalCluster" URI="wps.jar"/>
<WebAppComponent Name="myAppAdmin"
Targets="PortalCluster" URI="adminPortal.war"/>
<WebAppComponent Name="myAppDatasync"
Targets="AdminServer" URI="datasync.war"/>
<WebServiceComponent Name="myAppTool"
Targets="AdminServer,PortalCluster" URI="wps-toolSupport.war"/>
<WebAppComponent Name="myWebApp"
Targets="AdminServer,PortalCluster" URI="myWebApp"/>
<ApplicationConfiguration Name="myEntApp"
Targets="PortalCluster,AdminServer"/>
</Application>
 
返回页首

* 将 Portal JDBC 连接池(cgPool、cgJMSPool-nonXA、portalPool)的目标定位到集群和管理服务器: 
<JDBCConnectionPool CapacityIncrement="1"
DriverName="com.pointbase.jdbc.jdbcUniversalDriver"
InitialCapacity="5" MaxCapacity="50" Name="cgPool"
PasswordEncrypted="{3DES}rPBskBR2sQlXTRFSuvkgyg=="
Properties="user=weblogic" RefreshMinutes="0"
ShrinkPeriodMinutes="15" ShrinkingEnabled="true"
SupportsLocalTransaction="true"
Targets="PortalCluster,AdminServer"
TestConnectionsOnRelease="false"
TestConnectionsOnReserve="false"
URL="jdbc:pointbase:server://localhost:9093/workshop"/>

<JDBCConnectionPool CapacityIncrement="1"
DriverName="com.pointbase.jdbc.jdbcUniversalDriver"
InitialCapacity="5" MaxCapacity="50" Name="cgJMSPool-nonXA"
PasswordEncrypted="{3DES}rPBskBR2sQlXTRFSuvkgyg=="
Properties="user=weblogic" RefreshMinutes="0"
ShrinkPeriodMinutes="15" ShrinkingEnabled="true"
SupportsLocalTransaction="true"
Targets="PortalCluster,AdminServer"
TestConnectionsOnRelease="false"
TestConnectionsOnReserve="false" URL="jdbc:pointbase:server://localhost:9093/workshop"/>

<JDBCConnectionPool CapacityIncrement="1"
DriverName="com.pointbase.jdbc.jdbcUniversalDriver"
InitialCapacity="5" MaxCapacity="50" Name="portalPool"
PasswordEncrypted="{3DES}rPBskBR2sQlXTRFSuvkgyg=="
Properties="user=weblogic" RefreshMinutes="0"
ShrinkPeriodMinutes="15" ShrinkingEnabled="true"
Targets="PortalCluster,AdminServer"
TestConnectionsOnRelease="false"
TestConnectionsOnReserve="false" URL="jdbc:pointbase:server://localhost:9093/workshop"/>
返回页首

* 将 Portal JDBC 数据源(p13n_trackingDataSource、p13nDataSource)的目标定位到集群和管理服务器:
?
<JDBCDataSource
JNDIName="p13n.trackingDataSource"
Name="p13n_trackingDataSource" PoolName="cgJMSPool-nonXA"
Targets="PortalCluster,AdminServer"/>

<JDBCDataSource
JNDIName="p13n.sequencerDataSource;p13n.dataSyncDataSource;p13n.entitlementsDataSource"
Name="p13nDataSource" PoolName="cgJMSPool-nonXA"
Targets="PortalCluster,AdminServer"/>
返回页首

* 将 Portal JDBC Tx 数据源(cgDataSource、cgDataSource-nonXA、portalFrameworkPool)的目标定位到集群和管理服务器:
<JDBCTxDataSource EnableTwoPhaseCommit="true"
JNDIName="cgDataSource;cgSampleDataSource" Name="cgDataSource"
PoolName="cgPool" Targets="PortalCluster,AdminServer"/>

<JDBCTxDataSource EnableTwoPhaseCommit="true"
JNDIName="cgDataSource-nonXA;weblogic.jdbc.jts.ebusinessPool"
Name="cgDataSource-nonXA" PoolName="cgJMSPool-nonXA" Targets="PortalCluster,AdminServer"/>

<JDBCTxDataSource EnableTwoPhaseCommit="false"
JNDIName="portalFrameworkPool;contentDataSource;weblogic.jdbc.jts.commercePool"
Name="portalFrameworkPool" PoolName="portalPool" Targets="PortalCluster,AdminServer"/
>
返回页首

* 仅将 JMSDistributedQueue 的目标定位到集群:
<JMSDistributedQueue JNDIName="jws.queue"
Name="dist_cgJWSQueue_auto" Targets="PortalCluster">
返回页首

* 将各服务器(包括管理服务器和每个被管服务器)的目标分别定位到 JMS Server:

<JMSServer Name="WSStoreForwardInternalJMSServerAdminServer"
Store="FileStore" Targets="AdminServer">

<JMSServer Name="cgJMSServer_auto_1" Store="cgJMSStore_auto_1" Targets="m1">
<JMSQueue JNDIName="jws.queue_auto_1" Name="cgJWSQueue_auto_1"
RedeliveryLimit="2" StoreEnabled="default"/>
<JMSServer>

<JMSServer Name="cgJMSServer_auto_2" Store="cgJMSStore_auto_2" Targets="m2">
<JMSQueue JNDIName="jws.queue_auto_2" Name="cgJWSQueue_auto_2"
RedeliveryLimit="2" StoreEnabled="default"/>
<JMSServer>

返回页首

* 仅将 JWS Queue Transport 的目标定位到集群:

<Application Deployed="true" LoadOrder="1000"
Name="JWSQueueTransport" Path="d:\bea814\weblogic81\server\lib"
StagedTargets="m1,m2" TwoPhase="true">
<EJBComponent Name="QueueTransportEJB" Targets="PortalCluster" URI="QueueTransportEJB.jar"/>
</Application>
 
返回页首

* 将 JMS Connection Factory (cgQueue) 的目标定位到集群和管理服务器:
?
<JMSConnectionFactory
JNDIName="weblogic.jws.jms.QueueConnectionFactory"
Name="cgQueue"
Notes="User transactions must be enabled to ensure transaction
coordination for persistence and asynchronous operations"
Targets="PortalCluster,AdminServer" UserTransactionsEnabled="true"/>

已知问题
您可定期查看您的 WLP 版本的“发行说明”以获得 Service Pack 中的“已知问题”或“已解决的问题”的详细信息,而且还可浏览与升级和补丁有关的问题。方便起见,下面提供了这些发行说明的链接:
搜索还将返回“发行说明”,以及其它“支持解决方法”和与 CR 相关的信息(在需要更多帮助?中说明)。如果客户签订了技术支持合同,则可以登录 http://support.bea.com/,登录后会看到为 Solutions 和 Bug Central 提供的 Browse portlet,可在其中按产品版本浏览最新提供的 CR。
返回页首
需要更多帮助?
如果您已经理解这个模式,但仍需要其它帮助,您可以:
  1. http://support.bea.com/ 上查询 AskBEA(例如,使用“Cluster Targeting in WebLogic Portal?”),以发现其它已发布的解决办法。技术支持合同客户:确保已经登录,可以访问提供的与 CR 有关的信息。
  2. http://newsgroups.bea.com/ 上,向 BEA 的某个新闻组提出更详细具体的问题。
如果这还不能解决您的问题,并且您拥有有效的技术支持合同,您可以通过登录以下网站来打开支持案例:http://support.bea.com/

反馈

请向我们提供您的意见,说明此支持诊断模式“Portal 8.1 集群目标指定 (targeting) 模式”一文是否有所帮助、您需要的任何解释,以及对支持诊断模式的新主题的任何要求。