ORABPEL-30515与WebCenter Process Portal

现象描述:

配置完WebCenter Process Portal后,发现SOA Managed Server启动导常,报了很多错,截图如下:

error

BPM流程可以发布,但是不能创建实例。

解决方案:

打开%DOMAIN_HOME%\config\fmwconfig\system-jazn-data.xml文件,加入如下代码:

<grant>
    <grantee>
        <codesource>
            <url>file:${soa.oracle.home}/soa/modules/oracle.soa.workflow_11.1.1/bpm-services.jar
            </url>
        </codesource>
    </grantee>
    <permissions>
        <permission>
            <class>oracle.security.jps.JpsPermission</class>
            <name>VerificationService.createInternalWorkflowContext</name>
        </permission>
        <permission>
            <class>oracle.security.jps.service.policystore.PolicyStoreAccessPermission
            </class>
            <name>context=APPLICATION, name=*</name>
            <actions>getApplicationPolicy</actions>
        </permission>
        <permission>
            <class>oracle.security.jps.service.policystore.PolicyStoreAccessPermission
            </class>
            <name>context=SYSTEM, name=*</name>
            <actions>getConfiguredApplications</actions>
        </permission>
        <permission>
            <class>oracle.security.jps.service.policystore.PolicyStoreAccessPermission
            </class>
            <name>context=SYSTEM, name=*</name>
            <actions>getSystemPolicy</actions>
        </permission>
        <permission>
            <class>oracle.security.jps.service.credstore.CredentialAccessPermission
            </class>
            <name>context=SYSTEM, mapName=BPM-SERVICES, keyName=BPM-SERVICES
            </name>
            <actions>read</actions>
        </permission>
        <permission>
            <class>oracle.security.jps.service.credstore.CredentialAccessPermission
            </class>
            <name>context=SYSTEM, mapName=BPM-CRYPTO, keyName=BPM-CRYPTO</name>
            <actions>read,write</actions>
        </permission>
        <permission>
            <class>oracle.security.jps.JpsPermission</class>
            <name>IdentityAssertion</name>
            <actions>*</actions>
        </permission>
        <permission>
            <class>java.security.AllPermission</class>
        </permission>
    </permissions>
</grant>
<grant>
    <grantee>
        <codesource>
            <url>file:${ucm.oracle.home}/soa/modules/oracle.soa.workflow_11.1.1/bpm-services.jar
            </url>
        </codesource>
    </grantee>
    <permissions>
        <permission>
            <class>oracle.security.jps.JpsPermission</class>
            <name>VerificationService.createInternalWorkflowContext</name>
        </permission>
        <permission>
            <class>oracle.security.jps.service.policystore.PolicyStoreAccessPermission
            </class>
            <name>context=APPLICATION, name=*</name>
            <actions>getApplicationPolicy</actions>
        </permission>
        <permission>
            <class>oracle.security.jps.service.policystore.PolicyStoreAccessPermission
            </class>
            <name>context=SYSTEM, name=*</name>
            <actions>getConfiguredApplications</actions>
        </permission>
        <permission>
            <class>oracle.security.jps.service.policystore.PolicyStoreAccessPermission
            </class>
            <name>context=SYSTEM, name=*</name>
            <actions>getSystemPolicy</actions>
        </permission>
        <permission>
            <class>oracle.security.jps.service.credstore.CredentialAccessPermission
            </class>
            <name>context=SYSTEM, mapName=BPM-SERVICES, keyName=BPM-SERVICES
            </name>
            <actions>read</actions>
        </permission>
        <permission>
            <class>oracle.security.jps.service.credstore.CredentialAccessPermission
            </class>
            <name>context=SYSTEM, mapName=BPM-CRYPTO, keyName=BPM-CRYPTO</name>
            <actions>read,write</actions>
        </permission>
        <permission>
            <class>oracle.security.jps.JpsPermission</class>
            <name>IdentityAssertion</name>
            <actions>*</actions>
        </permission>
        <permission>
            <class>java.security.AllPermission</class>
        </permission>
    </permissions>
</grant>
<grant>
    <grantee>
        <codesource>
            <url>file:${wc.oracle.home}/soa/modules/oracle.soa.workflow_11.1.1/bpm-services.jar
            </url>
        </codesource>
    </grantee>
    <permissions>
        <permission>
            <class>oracle.security.jps.JpsPermission</class>
            <name>VerificationService.createInternalWorkflowContext</name>
        </permission>
        <permission>
            <class>oracle.security.jps.service.policystore.PolicyStoreAccessPermission
            </class>
            <name>context=APPLICATION, name=*</name>
            <actions>getApplicationPolicy</actions>
        </permission>
        <permission>
            <class>oracle.security.jps.service.policystore.PolicyStoreAccessPermission
            </class>
            <name>context=SYSTEM, name=*</name>
            <actions>getConfiguredApplications</actions>
        </permission>
        <permission>
            <class>oracle.security.jps.service.policystore.PolicyStoreAccessPermission
            </class>
            <name>context=SYSTEM, name=*</name>
            <actions>getSystemPolicy</actions>
        </permission>
        <permission>
            <class>oracle.security.jps.service.credstore.CredentialAccessPermission
            </class>
            <name>context=SYSTEM, mapName=BPM-SERVICES, keyName=BPM-SERVICES
            </name>
            <actions>read</actions>
        </permission>
        <permission>
            <class>oracle.security.jps.service.credstore.CredentialAccessPermission
            </class>
            <name>context=SYSTEM, mapName=BPM-CRYPTO, keyName=BPM-CRYPTO</name>
            <actions>read,write</actions>
        </permission>
        <permission>
            <class>oracle.security.jps.JpsPermission</class>
            <name>IdentityAssertion</name>
            <actions>*</actions>
        </permission>
        <permission>
            <class>java.security.AllPermission</class>
        </permission>
    </permissions>
</grant>

(完)

WebCenter Process Spaces

什么是WebCenter Process Spaces?

从业务上来讲,WebCenter Process Spaces就是将Oracle BPM(业务流程管理)与Oracle BPA(业务流程分析)产品的交互界面融入到WebCenter协作门户之中的桥梁。用户无需在不同的界面中切换即可访问相应服务,同时,还可以通过WebCenter强大的E2.0服务提高员工的工作效率与实现知识分享。从技术上讲WebCenter Process Spaces就是在WebCenter中预先配置好的两个Spaces:Modeling Space与Process Space以及其它配套服务。

为什么需要WebCenter Process Spaces?

那么她存在的意义是什么呢?我们可以设想,无论是业务流程的分析过程,还是业务流程参与过程的每个阶段,用户的工作并不是孤立的,不免要与人员、流程、非关系型数据发生关系。例如:员工处理待办时遇到问题,有的员工习惯打开即时聊天工具直接与其它员工即时交流沟通;有的员工喜欢在公司的论坛上与他人深入交流查找答案;也有的员工更习惯查找相关资料或查看维基自己解决问题。当问题解决了,员工可能希望借助博客分享自己的经验。所有这些服务这些都是为了增强员工间交流与实现企业的知识分享,最终实现提高员工的工作效率与企业的知识积累。我们发现,所有这些需求,通过单一的BPM产品很难完全解决问题,而以上所涉及的这些需求又恰恰是WebCenter的强项,因此,WebCenter Process Spaces应运而生,她象是胶水,将BPM与BPA胶合在一起,嵌入到WebCenter容器中,她更象是一个门面,让用户通过单一用户体验界面即可访问不同的服务。

如何配置WebCenter Process Spaces?

首先需要说明的是:

  • WebCenter 与BPM 可以配置在一个域中,也可以配置为各自的域。
  • WebCenter 域与BPM 域可以在一台物理机器也可以分布在不同的物理机器
  • 如果WebCenter 与BPM 配置在不同的域中,需要为这两个域配置信任域

由于硬件环境限制,以下示例以单域配置。

1. 创建域

注意在创建域之前应该先想清楚你需要哪些服务,例如:是否需要配置Paglet Producer服务器或Portlet Producer服务器,尽量避免配置不必要的产品。

运行域置向导,在“选择域源”页中选择以下产品(我的配置为例):

  • Basic WebLogic Server
  • Oracle BPM Suite
  • Oracle WebCenter Spaces
  • Oracle SOA Suite
  • Oracle Universal Content Management
  • Oracle Enterprise Manager
  • Oracle WebCenter Discussion Server
  • Oracle WSM Policy Manager
  • Oracle JRF

其它步骤略:参见《如何配置WebCenter Domain》

注:为避免带来后续配置不必要的麻烦,建议创建域时,为每个被管理服务器指定机器名或IP地址

2. 扩展域

在线文档中描述:

On the “Select Extension Source” screen, select Extend my domain
automatically to support the following added products and select Oracle
BPM Spaces
from the list of available products.

注:上文中指的Oracle BPM Spaces根本不存在,此处是个bug,通过以下步骤修正:

再次运行域配置向导,在“选择域源”页中,选择“将此域基于一个现有模板”,点击“浏览”选择:%WC_ORACLE_HOME”%\common\templates\applications\oracle.bpm.spaces_template_11.1.1.jar。

其它步骤略

3. 配置脚本

将目录%SOA_ORACLE_HOME”%\bpm\process_spaces复制到任意位置,例如:d:\process_spaces

修改目录中的配置文件:process-portal-install.properties,以我的配置文件为例:

################################################
# BPM Process Portal installation properties   #
################################################
#Flag to decide whether to extend existing BPM domain or create a new one.
extendSoa=true
#Flag to decide whether to prompt for passwords or read them from this file
promptForPasswords=false
#BPM Schema details
bpmDBUser=DEV_SOAINFRA
bpmDBPassword=welcome1
bpmDBType=ORACLE
bpmDBDriver=oracle.jdbc.OracleDriver
bpmDBUrl=jdbc:oracle:thin:localhost:1521:orcl
#BPM MDS details
bpmMDSUser=DEV_MDS
bpmMDSPassword=welcome1
#BPM Runtime details
bpmHost=gniu-cn
#Managed server port if BPM is installed on managed server. Else admin port
bpmRuntimePort=8001
bpmAdminUser=weblogic
bpmAdminPassword=welcome1
#webcenter spaces installation details
wcOracleHome=s:/fmw/wc
#If extendSoa flag is set to true, then configure the below two properties to point to BPM domain
wcDomainName=wc_domain
#Flag to control whether to set domain realm password or not
wcSetDomainRealmPassword=true
#This is the password to setup trusted domains. Same password should be set on BPM domain as well
wcDomainRealmPassword=welcome1
wc.server.port=8888
#Webcenter's weblogic installation details
wcHost=gniu-cn
wcAdminPort=7001
wcAdminUser=weblogic
wcAdminPwd=welcome1
wcManagedServerName=WC_Spaces
#Flag to control whether to configure services
wcConfigServices=false
#content server details
wcContentServerName=gniu-cn
wcContentServerPort=4444
wcContentSpacesRoot=/WebCenterSpaces-Root
wcContentAdminUser=weblogic
#discussion server details
wcDiscussionServerUrl=http://gniu-cn:8890/owc_discussions
wcDiscussionAdminUser=weblogic

注:修改install.xml,查找:

<handler classname=”oracle.bpm.processportal.util.AntPasswordInputHandler”

classpath=”${wcOracleHome}/soa/modules/oracle.bpm.processportal_11.1.1/oracle.bpm.processportal.util.jar”/>

将oracle.bpm.processportal_11.1.1换为oracle.bpm.spaces_11.1.1,些处是个bug

4. 执行脚本

首先执行%WL_HOME%\server\bin\setWLSEnv.cmd加载必要类,在process_spaces目录下执行:

ant -f install.xml -DpromptForPasswords=true

重新启动所有服务器,然后执行如下脚本:

ant -f install.xml post-install -DpiArgs –importGSOnly

再次提醒,如果WebCenter 与BPM 配置在不同的域中,需要为这两个域配置信任域

5. 查看结果

process_portal

(完)

IBM JDK OutOfMemoryError

一个客户使用的是Oracle BPM 10.3(即:以前的BEA AquaLogic BPM,其前身是Fuego)for WebSphere,最近出现每半小时重启一次的问题,经过分析最终定位是IBM JDK升级造成的,同时找到以下信息:

NOTE: Only for Java 5.0 Service Refresh 4 (build date:February 1st, 2007) and older. When you use delegated class loaders, the JVM can create a large number of ClassLoader objects. On IBM Java 5.0 Service Refresh 4 and older, the number of class loaders that are permitted is limited to 8192 by default and an OutOfMemoryError exception is thrown when this limit is exceeded. Use the -Xmxcl parameter to increase the number of class loaders allowed to avoid this problem, for example to 25000, by setting -Xmxcl25000, until the problem is resolved. Please examine the current thread stack trace to check whether a class loader is being loaded if there is an OutOfMemoryError. For example, the following stack trace indicates that a class loader is being loaded: at com/ibm/oti/vm/VM.initializeClassLoader(Native Method) at java/lang/ClassLoader. (ClassLoader.java:120)

……

这里至关重要的一个参数是:-Xmxcl。上面的意思就是Java 5.0 SR4及以前的版本,这个参数默认是8192,如果类加载器加载的类超过这一数值就会报OutofMemoryError。解决办法就是不断的增加些值,直到找到一个合理数值。

注:Oracle BPM 10.3平台认证信息参考:

《Release Notes for Oracle Business Process Management 10gR3》

(完)

如何修改Oracle WebCenter Space文件上传尺寸限制

在WebCenter Space中上传文件时,提示最大文件为2G,但是如果上专的文件超过2M就会报错,上传失败,估计这是个小Bug,修改步骤如下:

执行%WC_HOME%/common/bin/wlst.cmd,执行如下命令:

connect( 'weblogic','welcome1','t3://gniu-cn:7001')
exportMetadata(application='webcenter',server='WC_Spaces',toLocation='d:/temp',docs='/oracle/webcenter/webcenterapp/metadata/webcenter-config.xml')

修改webcenter-config.xml文件,根据需要修改如下值

<webcenter:uploadedFileMaxDiskSpace>209715200</webcenter:uploadedFileMaxDiskSpace>

再次执行WLST命令

connect( 'weblogic','welcome1','t3://gniu-cn:7001')
importMetadata(application='webcenter',server='WC_Spaces',fromLocation='d:/temp',docs='/oracle/webcenter/webcenterapp/metadata/webcenter-config.xml')

无需重启,即可生效

(完)