在分布式应用中,单个业务应用的toplink运行在多个jvm上,同时开启了会话缓存,而这些在多个jvm上会话缓存中的domain对象就需要同步,这样可以及时拿到最新的信息而不需要每次都查询database,这大大减少了乐观锁冲突。在Oracle Application Server上Ormi端口是动态分配的,如果一个应用跑在多个jvm上,这些jvm的ormi服务端口也是不同的,所以在开发阶段无法确定这些信息,也不好采用多套toplink session的配置。庆幸的是opmn的request端口是固定的,我们可以使用opmn request端口来进行jndi的look up,然后用oc4j jms实现多jvm或者多OC4J instance之间toplink session缓存的同步, 因为经过测试OC4J in memory jms作为同步消息的传输和发现方式效率是最高的。
具体方法如下:
- 配置一个拥有
3个
jvm的
oc4j instance
2 toplink session cache 策略的配置
<toplink:caching>
<toplink:cache-invalidation-policy xsi:type="toplink:time-to-live-cache-invalidation-policy">
<toplink:time-to-live>36000000</toplink:time-to-live>
</toplink:cache-invalidation-policy>
</toplink:caching>
3.
配置
JMS topic connection factory
和
topic
具体每个配置参数代表什么意思,可参见
Oracle Containers for J2EE Services Guide
创建完毕后,在
instance level
的
config
目录下面打开
jms.xml
可看见所作的配置更改:
<topic
name="cachesyn"
location="jms/cachesyn"
>
</topic>
<!-- unified connection factories -->
<!-- queue connection factories -->
<!-- topic connection factories -->
<topic-connection-factory
location="TopicConnectionFactory"
/>
4 opmn
配置
查看
opmn.xml,
获得
request
端口
<port local="6101" remote="6201" request="6004"/>
|
Opmn
的
url
格式为:
opmn:ormi://
主机名
:opmn request
端口
:OC4J Instance Name /Application Name
5.配置toplink会话缓存同步策略
6.
权限设置
我们登录
console
的
server
的全局用户,并不一定有
instance level
的
rmi
等权限,所以不能实现
jndi
的
lookup. Oc4j
默认采用的是基于文件的认证和授权管理策略,用的是
JAAS
,通常称为:
jazn
,
Oracle's authorization/policy provider for JAAS
打开全局的
j2ee/config/ system-jazn-data.xml
文件,元素
<jazn-policy>
有下面这一段,
policy
主要就是为角色和用户分配具体权限的
<grantee>
<principals>
<principal>
<realm-name>jazn.com</realm-name>
<type>role</type>
<class>oracle.security.jazn.spi.xml.XMLRealmRole</class>
<name>jazn.com/oc4j-administrators</name>
</principal>
</principals>
</grantee>
只有
oc4j-administrators
角色才有这些权限。而
system team
分配给我们的用户并不拥有该角色,在
console
界面上也没找到为
server level
的用户也不能进行
oc4j-administrators
角色的交易,所以也没
jndi lookup
的权限,会报
javax.naming.AuthenticationException: Not authorized.
需要在
instance level
创建一个用户,用户名和密码和
server level
的相同或者也可以不同,然后为该用户分配权限,查看了一下
instance level
的
system-jazn-data.xml
发现
jazn.com/ascontrol_admin
和
jazn.com/oc4j-administrators
角色有完整
rmi
权限,内容如下:
<permission>
<class>com.evermind.server.rmi.RMIPermission</class>
<name>login</name>
</permission>
<permission>
<class>com.evermind.server.rmi.RMIPermission</class>
<name>subject.propagation</name>
</permission>
最简单的方法就是为该用户分配
jazn.com/ascontrol_admin
角色,
jazn.com
可以省略因为
jazn.com
是默认域,
oc4j
采用的是域,用户,角色,权限的层次授权策略。
当然我们也可以在
applciation level
做到最小权限控制,在
orion-application
和
applciation level
的
jazn-data.xml
中进行设置和分配。具体方法可参见
Oracle® Containers for J2EE Security Guide
http://download-east.oracle.com/docs/cd/B25221_04/web.1013/b14429/toc.htm
7.Deploy
应用到
application server
这下可以享受
toplink cluster
带来的高性能的乐趣了。
如果成功的话:我们可以看到
oc4j_instance jvm1
的
toplink
有如下的
log
:
[TopLink Finest]: 2008.12.03 06:58:30.961--ServerSession(24138346)--Thread(Thread[RMICallHandler-5,5,HTTPThreadGroup])--Retreived remote message from JMS topic: cachesyn
[TopLink Finest]: 2008.12.03 06:58:31.020--ServerSession(24138346)--Thread(Thread[RMICallHandler-5,5,HTTPThreadGroup])--Received remote command oracle.toplink.remotecommand.MergeChangeSetCommand from Service[TopLinkCommandChannel, 3673206, opmn:ormi://localhost:6004:OC4J_TTS/tts]
[TopLink Finest]: 2008.12.03 06:58:31.023--ServerSession(24138346)--Thread(Thread[RMICallHandler-5,5,HTTPThreadGroup])--Executing command oracle.toplink.remotecommand.MergeChangeSetCommand from Service[TopLinkCommandChannel, 3673206, opmn:ormi://localhost:6004:OC4J_TTS/tts]
[TopLink Finer]: 2008.12.03 06:58:31.098--ServerSession(24138346)--Thread(Thread[RMICallHandler-5,5,HTTPThreadGroup])--Received updates from Remote Server
[TopLink Finest]: 2008.12.03 06:58:31.110--ServerSession(24138346)--Thread(Thread[RMICallHandler-5,5,HTTPThreadGroup])--Merging com.ldd600.isdc.sha.frm.tts.model.Employee: [22] from remote server
Oc4j_instance jvm2
的
toplink
有如下的
log
:
[TopLink Finest]: 2008.12.03 06:58:30.721--ServerSession(8762565)--Thread(Thread[RMICallHandler-5,5,HTTPThreadGroup])--Received remote command oracle.toplink.remotecommand.MergeChangeSetCommand from Service[TopLinkCommandChannel, 3673206, opmn:ormi://localhost:6004:OC4J_TTS/tts]
[TopLink Finest]: 2008.12.03 06:58:30.724--ServerSession(8762565)--Thread(Thread[RMICallHandler-5,5,HTTPThreadGroup])--Executing command oracle.toplink.remotecommand.MergeChangeSetCommand from Service[TopLinkCommandChannel, 3673206, opmn:ormi://localhost:6004:OC4J_TTS/tts]
[TopLink Finer]: 2008.12.03 06:58:30.734--ServerSession(8762565)--Thread(Thread[RMICallHandler-5,5,HTTPThreadGroup])--Received updates from Remote Server
[TopLink Finest]: 2008.12.03 06:58:30.736--ServerSession(8762565)--Thread(Thread[RMICallHandler-5,5,HTTPThreadGroup])--Merging com.ldd600.isdc.sha.frm.tts.model.Employee: [22] from remote server
- 大小: 68.5 KB
- 大小: 73.5 KB
- 大小: 101.6 KB
- 大小: 45 KB
- 大小: 117.8 KB
- 大小: 79.6 KB
分享到:
相关推荐
### 如何让OPMN进程实现并发地打开多于1024个文件 #### 背景介绍 在Solaris 2.8及其更新版本的操作系统上运行Oracle 9i Application Server (9iAS) Release 2时,可能会遇到一个限制:即进程能够打开的文件描述符...
综上所述,利用单片机的定时器功能实现信号采样和PWM控制是一种高效、低成本的技术方案。它不仅减少了对外围电路的需求,还提高了系统的灵活性和精度,对于开发高性能的温度控制系统具有重要的实践意义。
Oracle应用服务器10g提供了端到端的高可用性解决方案,这包括了Load Balancer、Web Cache、无线和移动设备、浏览器、Web用户、RAC(Real Application Clusters)、中间层集群以及基础设施集群。RAC允许数据库在多台...
本手册旨在提供BI系统日常运维过程中常见的问题及其解决方案,包括但不限于BI工具的安装配置、异常情况处理、缓存清理等操作指南。通过本手册的学习,能够帮助运维人员更加高效地解决实际工作中遇到的技术难题。 ##...
- **Oracle Process Manager and Notification Server (OPMN)**:OPMN 是控制 Oracle 10gAS 中组件启动和停止的核心组件。通过 OPMN,用户不仅可以在 Enterprise Manager 中启动或关闭组件,还可以通过命令行工具 ...
Oracle Business Intelligence Enterprise Edition 11g (OBIEE11g) 作为一款功能强大的商业智能解决方案,在数据可视化、报告生成及分析方面提供了全面的支持。本文旨在深入探讨OBIEE11g的架构设计及其关键组成部分...
4. **定制化解决方案**:针对特定业务需求提供定制化的功能和服务。 #### 七、11g架构与10g架构比较 11g版本的主要改进在于将OBIEE组件整合到WebLogic平台中,并使用Enterprise Manager进行统一管理。尽管底层的...
新支持的组件包括Oracle Process Manager和Notification Server(OPMN)、Application Server Control服务以及存储在Oracle安装目录中的元数据仓库。这为Oracle应用服务器组件的高可用性提供了专门的解决方案。 在...
### OBIEE重启无法访问500问题解析与解决方案 #### 一、问题背景 在部署和维护Oracle Business Intelligence Enterprise Edition (OBIEE)的过程中,可能会遇到重启后BI应用程序无法访问的问题,通常会看到HTTP状态...
- **EPM (Enterprise Performance Management)**系统是一种集成解决方案,旨在帮助企业管理和优化其业务绩效,支持财务规划、预算编制、预测、报告和分析等关键业务流程。 - **版本**: 本指南针对的是EPM System ...
Oracle Application Express(Oracle APEX)是Oracle公司提供的一种基于Web的快速应用程序开发工具,特别适合于构建和管理数据库驱动的应用程序。在Oracle Database 10g Release 2 (10.2.0.4.0)环境中,我们可以使用...
但在实际部署中,如果遇到登录问题,仅重启EM(Enterprise Manager)可能不够,可能需要重启整个BIEE服务,包括opmn、bi_server和AdminServer,来确保所有服务都正确加载了最新的配置。 最终,通过上述步骤,用户...
- 关闭所有相关服务,如 WebLogic、OPMN(Oracle Platform Management)和 OBIEE 服务进程。 - 备份 `{MiddlewareHome}` 目录下的所有文件。 - 对 BIPLATFORM 和 MDS schemas 进行备份。 #### 二、升级 WebLogic ...
该控制台基于分布式配置管理(DCM)、Oracle进程管理和通知(OPMN)以及动态监视服务(DMS),能够有效管理本地应用服务器实例及其所有组件,同时提供实时性能监控和问题诊断能力。 #### 集中和综合的管理 除了应用...
它由多个关键组件组成,如Oracle Management Service、Oracle Management Agent和Oracle Application Server组件,这些组件共同协作,实现对整个Oracle环境的有效管理和控制。 ### 启动和停止Oracle EM 10g Grid ...
- D选项:“Automatic Storage Management (ASM)” — ASM是Oracle推荐的RAC存储解决方案,能够提供高性能和高可用性。 - E选项:“Supported SAN/NAS storage” — 支持的SAN/NAS存储也可以作为RAC数据库的有效...
浅述ORACLE EBS R12后台管理新变化.pdf Oracle E-Business Suite (EBS) 是 Oracle ...R12版本的变化带来了新的架构和服务模式,要求系统管理员和开发人员掌握新的技术和技能,以便更好地管理和维护 Oracle EBS 系统。
在平行四边形OPMN中,通过对椭圆对称性的分析,可以推导出椭圆离心率的取值范围。 这些题目共同体现了高中数学中函数分析、导数的应用、极值问题、椭圆的性质等核心概念,是学习高中数学的重要内容。通过这样的练习...