WebLogic Server 12c中的Restful管理服务

环境:WebLogic Server 12.1.1(下载)

测试工具:REST Console (下载)

基础知识

支持资源类型:JSON、XML、HTML

单资源展示格式(以JSON举例)

{
  "body": {
    "item": {
      // attributes for the item, e.g.
      // "name": "adminserver"
      // "state": "RUNNING",
      // …
    }
  },
  "messages": [
    // an array of messages
  ]
}

集合资源展标格式

{
 "body": {
  "items": [
    {
      // attributes for item 1
      // "name": "adminserver"
      // "state": "RUNNING",
      // …
     },
    {
      // attributes for item 2
     },
     …
    {
      // attributes for item n
     }
    ],
   "messages": [
    ]
}

REST资源列表

监控所有服务器

http(s)://host:port/management/tenant-monitoring/servers

监控指定服务器

http(s)://host:port/management/tenant-monitoring/servers/{servername}

监控服务器所有集群

http(s)://host:port/management/tenant-monitoring/clusters

监控指定集群

http(s)://host:port/management/tenant-monitoring/clusters/{clustername}

监控所有应用

http(s)://host:port/management/tenant-monitoring/applications

监控指定应用

http(s)://host:port/management/tenant-monitoring/applications/{applicationname}

监控所有数据源

http(s)://host:port/management/tenant-monitoring/datasources

监控指定数据源

http(s)://host:port/management/tenant-monitoring/datasources/{datasourcename}

配置过程

1. 激活RESTful服务

进入控制台->[Your Domain]->Configuration->Advanced->Enable RESTful Management Services

2. 使用REST Console进行测试

参考资料

Overview OTN: http://www.oracle.com/technetwork/middleware/weblogic/documentation/index.html

WLS 12c  Data sheet: http://www.oracle.com/us/products/middleware/application-server/oracle-weblogic-server-ds-1391360.pdf

WLS 12c online Documentation Library: http://docs.oracle.com/cd/E24329_01/index.htm

Usind RESTful Services  With WLS 12c: http://docs.oracle.com/cd/E24329_01/web.1211/e26722/toc.htm

Fusion Middleware 11g R1 PS4 发布

下载地址汇总

WebLogic Server  & JVM下载
JDeveloper下载
WebCenter Suite下载
UCM下载
SOA Suite下载
Service Bus下载
Web Tier下载
Data Integrator下载
在线文档下载

 

产品更新情况

据产品部门的同事说,这一版主要是修正了很多Bug,例如:WebCenter就修正了100多个Bug。并没有很多产品新特性。

WebCenter:
•  Overall performance and stress tolerance improvements
•  Activity Stream performance enhancements
•  Document approval work flow fixes
•  JSF Portlet Bridge bug fixes
•  Accessibility bug fixes
•  Pagelet Producer enhancements

UCM:
•  IRM Desktop support for Windows 7 64-bit
•  Internet Explorer 9 certification

What’s New

(完)

通过JRockit Mission Control追踪JDBC执行情况

先决条件

  • 已安装了Oracle JRockit 虚拟机
  • 安装WebLogic Server时也安装了随时示例,因为下面我们将用medrec示例程序测试

配置脚本

找到%WL_HOME%\samples\domains\medrec\bin目录下的setDomainEnv.cmd脚本,做如下修改:

1. 确认使用JRockit作为Java虚拟机

将BEA_JAVA_HOME指向JRockit安装目录,例如:

set BEA_JAVA_HOME=S:\jdk\64\jrockit-jdk1.6.0_22-R28.1.1-4.0.1

在set SUN_JAVA_HOME下方加入:

set JAVA_VENDOR=Oracle

2. 在脚本未端加入如下代码:

if “%JAVA_VENDOR%”==”Oracle” (
    set JAVA_VM=%JAVA_VM% -Xmanagement:ssl=false,authenticate=false,port=7091,autodiscovery=true
)

配置Mission Control

1. 执行%JAVA_HOME%\jrmc.exe

2. 创建“连接器”

conn

3. 右键点击刚刚创建的连接“localhost”,选择:启动飞行记录

rec

点击“高级”,去掉“仅显示模板设置”,然后左边选择WebLogic,右侧去掉“已启用”,然后在左边找到“JDBC”,在右侧选择“已启动”,如下图:

rec2

点击确认

模拟测试

打开浏览器,输入网址:http://localhost:7011/medrec/,根据页面提示,反复操作。

查看追踪结果

左边只选择“JDBC”,右边选择“WebLogic Server / JDBC /JDBC Statement Execute –SQL”,我们可以清楚地看到执行了哪些SQL语句以及执行时间等信息。

ret

(完)

Java与64位架构

硬件、操作系统、Java虚拟机关系

64bit

如图所示,底层是64位的,上层可以选择32位的;反过来则不行。可以看出,要想安装64位的JVM,操作系统和硬件必须都是64位的才行。

Heap Size与GC的关系

64bit_2

可以看出,Heap=1.5G时的GC所占用的时间几乎是Heap=13.5G的5倍。也就是说,Heap=13.5G时的吞吐率是Heap=1.5G时的5倍。
但是,评估GC好坏的另一个指标是GC暂停时间,而GC暂停时间与两个因素有关:Heap大小和“活对象“的数量。一方面,Heap越大,GC暂停时间越长;另一方面,Heap越大,“活对象“的数量越小,数据访问集中在内存中,访问硬盘的几率很小,因此GC暂停时间越小。

32位到64位移植问题

从32位移植到64位的主要问题是JNI native code。如果使用了32位的JNI native code,则移植到64位上会有问题,因为32位的JNI native code无法运行在64位的操作系统中。你需要在64位平台上重新编译32位的JNI native code,如果你有源代码。如果没有源代码,则无法移植。

参考资料

(完)

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>

(完)