﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-走自己的路-随笔分类-Oracle </title><link>http://www.blogjava.net/ldd600/category/32138.html</link><description>路漫漫其修远兮，吾将上下而求索</description><language>zh-cn</language><lastBuildDate>Thu, 24 Feb 2011 04:39:04 GMT</lastBuildDate><pubDate>Thu, 24 Feb 2011 04:39:04 GMT</pubDate><ttl>60</ttl><item><title>海量数据的删除策略</title><link>http://www.blogjava.net/ldd600/archive/2011/02/24/345035.html</link><dc:creator>叱咤红人</dc:creator><author>叱咤红人</author><pubDate>Thu, 24 Feb 2011 01:30:00 GMT</pubDate><guid>http://www.blogjava.net/ldd600/archive/2011/02/24/345035.html</guid><wfw:comment>http://www.blogjava.net/ldd600/comments/345035.html</wfw:comment><comments>http://www.blogjava.net/ldd600/archive/2011/02/24/345035.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ldd600/comments/commentRss/345035.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldd600/services/trackbacks/345035.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 当系统有海量数据需要级联删除时，我们需要小心，如果同步删除用户体验会很差，他会等相当长的时间，直到系统超时，另外还会给系统突发地增加很大的负载，&nbsp;&nbsp;<a href='http://www.blogjava.net/ldd600/archive/2011/02/24/345035.html'>阅读全文</a><img src ="http://www.blogjava.net/ldd600/aggbug/345035.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldd600/" target="_blank">叱咤红人</a> 2011-02-24 09:30 <a href="http://www.blogjava.net/ldd600/archive/2011/02/24/345035.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>opmn和jms实现toplink session缓存同步的解决方案</title><link>http://www.blogjava.net/ldd600/archive/2008/12/04/244254.html</link><dc:creator>叱咤红人</dc:creator><author>叱咤红人</author><pubDate>Wed, 03 Dec 2008 23:00:00 GMT</pubDate><guid>http://www.blogjava.net/ldd600/archive/2008/12/04/244254.html</guid><wfw:comment>http://www.blogjava.net/ldd600/comments/244254.html</wfw:comment><comments>http://www.blogjava.net/ldd600/archive/2008/12/04/244254.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ldd600/comments/commentRss/244254.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldd600/services/trackbacks/244254.html</trackback:ping><description><![CDATA[在分布式应用中，单个业务应用的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作为同步消息的传输和发现方式效率是最高的。<br />
具体方法如下：<br />
&nbsp;
<ol style="margin-top: 0cm" type="1">
    <li style="tab-stops: list 36.0pt"><span style="font-family: 宋体">配置一个拥有</span>3<span style="font-family: 宋体">个</span>jvm<span style="font-family: 宋体">的</span>oc4j instance </li>
</ol>
<img height="703" alt="" src="http://www.blogjava.net/images/blogjava_net/ldd600/Snap1.jpg" width="1096" border="0" /><br />
<br />
<br />
&nbsp;
<p class="MsoNormal" style="tab-stops: list 36.0pt; mso-list: l0 level1 lfo1"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp; toplink session cache 策略的</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">配置<br />
</span></p>
<img alt="" src="http://www.blogjava.net/images/blogjava_net/ldd600/b1211391-0066-37db-bc85-ae95b7dbbf38.jpg" border="0" /><br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">toplink:caching</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">toplink:cache-invalidation-policy&nbsp;</span><span style="color: #ff0000">xsi:type</span><span style="color: #0000ff">="toplink:time-to-live-cache-invalidation-policy"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">toplink:time-to-live</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">36000000</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">toplink:time-to-live</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">toplink:cache-invalidation-policy</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">toplink:caching</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
&nbsp;
<p class="MsoNormal"><span lang="EN-US">3.</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">配置</span><span lang="EN-US">JMS topic connection factory</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><span lang="EN-US">topic<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/ldd600/Snap5.jpg" border="0" /></span></p>
<br />
&nbsp;
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">具体每个配置参数什么意思，可参见</span><span lang="EN-US">Oracle Containers for J2EE Services Guide<br />
</span></p>
<img height="541" alt="" src="http://www.blogjava.net/images/blogjava_net/ldd600/Snap7.jpg" width="1239" border="0" /><br />
<br />
&nbsp;
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">具体每个配置参数代表什么意思，可参见</span><span lang="EN-US">Oracle Containers for J2EE Services Guide</span></p>
<br />
&nbsp;
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">创建完毕后，在</span><span lang="EN-US">instance level</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span><span lang="EN-US">config</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下面打开</span><span lang="EN-US">jms.xml</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可看见所作的配置更改：</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">topic<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="cachesyn"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;location</span><span style="color: #0000ff">="jms/cachesyn"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">topic</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;unified&nbsp;connection&nbsp;factories&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;queue&nbsp;&nbsp;&nbsp;connection&nbsp;factories&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;topic&nbsp;&nbsp;&nbsp;connection&nbsp;factories&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">topic-connection-factory<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">location</span><span style="color: #0000ff">="TopicConnectionFactory"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
<br />
&nbsp;
<p class="MsoNormal"><span lang="EN-US">4 opmn</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">配置</span></p>
&nbsp;
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">查看</span><span lang="EN-US">opmn.xml,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">获得</span><span lang="EN-US">request</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">端口</span></p>
<table class="MsoTableGrid" style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
    <tbody>
        <tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 442.8pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt" valign="top" width="590">
            <p class="MsoNormal"><span lang="EN-US">&lt;port local="6101" remote="6201" request="6004"/&gt;</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Opmn</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span><span lang="EN-US">url</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">格式为：</span><span lang="EN-US">opmn:ormi://</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">主机名</span><span lang="EN-US">:opmn request</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">端口</span><span lang="EN-US">:OC4J Instance Name /Application Name</span></p>
<br />
5.配置toplink会话缓存同步策略<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/ldd600/4dc4b9a5-a4be-3bf1-ac07-8a492c118694.jpg" border="0" /><br />
<br />
&nbsp;
<p class="MsoNormal" style="tab-stops: 159.75pt"><span lang="EN-US">6.</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">权限设置</span></p>
<p class="MsoNormal" style="tab-stops: 159.75pt"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我们登录</span><span lang="EN-US">console</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span><span lang="EN-US">server</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的全局用户，并不一定有</span><span lang="EN-US">instance level</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span><span lang="EN-US">rmi</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">等权限，所以不能实现</span><span lang="EN-US">jndi</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span><span lang="EN-US">lookup. Oc4j</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">默认采用的是基于文件的认证和授权管理策略，用的是</span><span lang="EN-US">JAAS</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，通常称为：</span><span lang="EN-US">jazn</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span><span lang="EN-US" style="color: black; font-family: Arial">Oracle's authorization/policy provider for JAAS</span></p>
<p class="MsoNormal" style="tab-stops: 159.75pt"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">打开全局的</span><span lang="EN-US">j2ee/config/ system-jazn-data.xml</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件，元素</span><span lang="EN-US">&lt;jazn-policy&gt;</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有下面这一段，</span><span lang="EN-US">policy</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">主要就是为角色和用户分配具体权限的</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">grantee</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">principals</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">principal</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">realm-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">jazn.com</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">realm-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">type</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">role</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">type</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">oracle.security.jazn.spi.xml.XMLRealmRole</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">jazn.com/oc4j-administrators</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">principal</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">principals</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">grantee</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
&nbsp;
<p class="MsoNormal" style="tab-stops: 159.75pt"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">只有</span><span lang="EN-US">oc4j-administrators</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">角色才有这些权限。而</span><span lang="EN-US">system team</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">分配给我们的用户并不拥有该角色，在</span><span lang="EN-US">console</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">界面上也没找到为</span><span lang="EN-US">server level</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的用户也不能进行</span><span lang="EN-US">oc4j-administrators</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">角色的交易，所以也没</span><span lang="EN-US">jndi lookup</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的权限，会报</span><span lang="EN-US" style="font-size: 10pt; color: navy; font-family: Arial">javax.naming.AuthenticationException: Not authorized. </span><span lang="EN-US" style="font-size: 10pt; font-family: Arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="tab-stops: 159.75pt"><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">需要在</span><span lang="EN-US" style="font-family: Arial">instance level </span><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">创建一个用户，用户名和密码和</span><span lang="EN-US" style="font-family: Arial">server level</span><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">的相同或者也可以不同，然后为该用户分配权限，查看了一下</span><span lang="EN-US" style="font-family: Arial">instance level</span><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">的</span><span lang="EN-US">system-jazn-data.xml</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">发现</span><span lang="EN-US">jazn.com/ascontrol_admin</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><span lang="EN-US">jazn.com/oc4j-administrators</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">角色有完整</span><span lang="EN-US">rmi</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">权限，内容如下：</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">permission</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">com.evermind.server.rmi.RMIPermission</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">login</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">permission</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">permission</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">com.evermind.server.rmi.RMIPermission</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">subject.propagation</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">permission</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
&nbsp;
<p class="MsoNormal" style="tab-stops: 159.75pt"><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">最简单的方法就是为该用户分配</span><span lang="EN-US">jazn.com/ascontrol_admin</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">角色，</span><span lang="EN-US">jazn.com</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可以省略因为</span><span lang="EN-US">jazn.com</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是默认域，</span><span lang="EN-US">oc4j</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">采用的是域，用户，角色，权限的层次授权策略。</span></p>
<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/ldd600/8.JPG" border="0" /><br />
<br />
&nbsp;
<p class="MsoNormal" style="tab-stops: 159.75pt"><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">当然我们也可以在</span><span lang="EN-US" style="font-family: Arial">applciation level</span><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">做到最小权限控制，在</span><span lang="EN-US" style="font-family: Arial">orion-application</span><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">和</span><span lang="EN-US" style="font-family: Arial">applciation level</span><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">的</span><span lang="EN-US" style="font-family: Arial">jazn-data.xml</span><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">中进行设置和分配。具体方法可参见</span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="tab-stops: 159.75pt"><span lang="EN-US" style="font-family: Arial">Oracle&#174; Containers for J2EE Security Guide<o:p></o:p></span></p>
<p class="MsoNormal" style="tab-stops: 159.75pt"><span lang="EN-US" style="font-family: Arial"><a href="http://download-east.oracle.com/docs/cd/B25221_04/web.1013/b14429/toc.htm">http://download-east.oracle.com/docs/cd/B25221_04/web.1013/b14429/toc.htm</a><o:p></o:p></span></p>
<br />
&nbsp;
<p class="MsoNormal" style="tab-stops: 159.75pt"><span lang="EN-US" style="font-family: Arial">7.Deploy </span><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">应用到</span><span lang="EN-US" style="font-family: Arial">application server<o:p></o:p></span></p>
<p class="MsoNormal" style="tab-stops: 159.75pt"><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">这下可以享受</span><span lang="EN-US" style="font-family: Arial">toplink cluster</span><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">带来的高性能的乐趣了。<br />
</span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p>
<p class="MsoNormal" style="tab-stops: 159.75pt"><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">如果成功的话：我们可以看到</span><span lang="EN-US" style="font-family: Arial">oc4j_instance jvm1</span><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">的</span><span lang="EN-US" style="font-family: Arial">toplink</span><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">有如下的</span><span lang="EN-US" style="font-family: Arial">log</span><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">：<br />
</span><span lang="EN-US" style="font-family: Arial"><o:p><br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">TopLink&nbsp;Finest</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">:&nbsp;</span><span style="color: #000000">2008.12.03</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">06</span><span style="color: #000000">:</span><span style="color: #000000">58</span><span style="color: #000000">:</span><span style="color: #000000">30.961</span><span style="color: #000000">--ServerSession(</span><span style="color: #000000">24138346</span><span style="color: #000000">)--Thread(Thread</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">RMICallHandler-5,5,HTTPThreadGroup</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">)--Retreived&nbsp;remote&nbsp;message&nbsp;from&nbsp;JMS&nbsp;topic:&nbsp;cachesyn<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">TopLink&nbsp;Finest</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">:&nbsp;</span><span style="color: #000000">2008.12.03</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">06</span><span style="color: #000000">:</span><span style="color: #000000">58</span><span style="color: #000000">:</span><span style="color: #000000">31.020</span><span style="color: #000000">--ServerSession(</span><span style="color: #000000">24138346</span><span style="color: #000000">)--Thread(Thread</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">RMICallHandler-5,5,HTTPThreadGroup</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">)--Received&nbsp;remote&nbsp;command&nbsp;oracle.toplink.remotecommand.MergeChangeSetCommand&nbsp;from&nbsp;Service</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">TopLinkCommandChannel,&nbsp;3673206,&nbsp;opmn:ormi://localhost:6004:OC4J_TTS/tts</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">TopLink&nbsp;Finest</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">:&nbsp;</span><span style="color: #000000">2008.12.03</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">06</span><span style="color: #000000">:</span><span style="color: #000000">58</span><span style="color: #000000">:</span><span style="color: #000000">31.023</span><span style="color: #000000">--ServerSession(</span><span style="color: #000000">24138346</span><span style="color: #000000">)--Thread(Thread</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">RMICallHandler-5,5,HTTPThreadGroup</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">)--Executing&nbsp;command&nbsp;oracle.toplink.remotecommand.MergeChangeSetCommand&nbsp;from&nbsp;Service</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">TopLinkCommandChannel,&nbsp;3673206,&nbsp;opmn:ormi://localhost:6004:OC4J_TTS/tts</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">TopLink&nbsp;Finer</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">:&nbsp;</span><span style="color: #000000">2008.12.03</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">06</span><span style="color: #000000">:</span><span style="color: #000000">58</span><span style="color: #000000">:</span><span style="color: #000000">31.098</span><span style="color: #000000">--ServerSession(</span><span style="color: #000000">24138346</span><span style="color: #000000">)--Thread(Thread</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">RMICallHandler-5,5,HTTPThreadGroup</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">)--Received&nbsp;updates&nbsp;from&nbsp;Remote&nbsp;Server<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">TopLink&nbsp;Finest</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">:&nbsp;</span><span style="color: #000000">2008.12.03</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">06</span><span style="color: #000000">:</span><span style="color: #000000">58</span><span style="color: #000000">:</span><span style="color: #000000">31.110</span><span style="color: #000000">--ServerSession(</span><span style="color: #000000">24138346</span><span style="color: #000000">)--Thread(Thread</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">RMICallHandler-5,5,HTTPThreadGroup</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">)--Merging&nbsp;com.ldd600.isdc.sha.frm.tts.model.Employee:&nbsp;</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">22</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">&nbsp;from&nbsp;remote&nbsp;server<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
<br />
&nbsp;
<p class="MsoNormal" style="tab-stops: 159.75pt"><span lang="EN-US" style="font-family: Arial">Oc4j_instance jvm2</span><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">的</span><span lang="EN-US" style="font-family: Arial">toplink</span><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">有如下的</span><span lang="EN-US" style="font-family: Arial">log</span><span style="font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">：</span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p>
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">ndler-</span><span style="color: #000000">5</span><span style="color: #000000">,</span><span style="color: #000000">5</span><span style="color: #000000">,</span><span style="color: #000000">HTTPThreadGroup])--Retreived&nbsp;remote&nbsp;message&nbsp;from&nbsp;JMS&nbsp;topic:&nbsp;cachesyn<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">TopLink&nbsp;Finest</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">:&nbsp;</span><span style="color: #000000">2008.12.03</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">06</span><span style="color: #000000">:</span><span style="color: #000000">58</span><span style="color: #000000">:</span><span style="color: #000000">30.721</span><span style="color: #000000">--ServerSession(</span><span style="color: #000000">8762565</span><span style="color: #000000">)--Thread(Thread</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">RMICallHandler-5,5,HTTPThreadGroup</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">)--Received&nbsp;remote&nbsp;command&nbsp;oracle.toplink.remotecommand.MergeChangeSetCommand&nbsp;from&nbsp;Service</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">TopLinkCommandChannel,&nbsp;3673206,&nbsp;opmn:ormi://localhost:6004:OC4J_TTS/tts</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">TopLink&nbsp;Finest</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">:&nbsp;</span><span style="color: #000000">2008.12.03</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">06</span><span style="color: #000000">:</span><span style="color: #000000">58</span><span style="color: #000000">:</span><span style="color: #000000">30.724</span><span style="color: #000000">--ServerSession(</span><span style="color: #000000">8762565</span><span style="color: #000000">)--Thread(Thread</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">RMICallHandler-5,5,HTTPThreadGroup</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">)--Executing&nbsp;command&nbsp;oracle.toplink.remotecommand.MergeChangeSetCommand&nbsp;from&nbsp;Service</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">TopLinkCommandChannel,&nbsp;3673206,&nbsp;opmn:ormi://localhost:6004:OC4J_TTS/tts</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">TopLink&nbsp;Finer</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">:&nbsp;</span><span style="color: #000000">2008.12.03</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">06</span><span style="color: #000000">:</span><span style="color: #000000">58</span><span style="color: #000000">:</span><span style="color: #000000">30.734</span><span style="color: #000000">--ServerSession(</span><span style="color: #000000">8762565</span><span style="color: #000000">)--Thread(Thread</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">RMICallHandler-5,5,HTTPThreadGroup</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">)--Received&nbsp;updates&nbsp;from&nbsp;Remote&nbsp;Server<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">TopLink&nbsp;Finest</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">:&nbsp;</span><span style="color: #000000">2008.12.03</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">06</span><span style="color: #000000">:</span><span style="color: #000000">58</span><span style="color: #000000">:</span><span style="color: #000000">30.736</span><span style="color: #000000">--ServerSession(</span><span style="color: #000000">8762565</span><span style="color: #000000">)--Thread(Thread</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">RMICallHandler-5,5,HTTPThreadGroup</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">)--Merging&nbsp;com.ldd600.isdc.sha.frm.tts.model.Employee:&nbsp;</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">22</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000">&nbsp;from&nbsp;remote&nbsp;server<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
</o:p></span>
<img src ="http://www.blogjava.net/ldd600/aggbug/244254.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldd600/" target="_blank">叱咤红人</a> 2008-12-04 07:00 <a href="http://www.blogjava.net/ldd600/archive/2008/12/04/244254.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oc4j+toplink+spring使用jta外部事务的一点心得</title><link>http://www.blogjava.net/ldd600/archive/2008/11/14/240607.html</link><dc:creator>叱咤红人</dc:creator><author>叱咤红人</author><pubDate>Fri, 14 Nov 2008 13:48:00 GMT</pubDate><guid>http://www.blogjava.net/ldd600/archive/2008/11/14/240607.html</guid><wfw:comment>http://www.blogjava.net/ldd600/comments/240607.html</wfw:comment><comments>http://www.blogjava.net/ldd600/archive/2008/11/14/240607.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://www.blogjava.net/ldd600/comments/commentRss/240607.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldd600/services/trackbacks/240607.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 晚上要下班的时候，application team那里使用Tibco EMS做消息集成服务时候出了bug，错误是：java.sql.SQLException: 当全局事务处理处于活动状态时, 无法调用方法 'commit'，应该是在全局事务中使用了本地事务并提交了。帮忙看了一下，它的oc4j, toplink, spring的使用上都存在着一些问题，并把要注意的地方总结了一下。包括oc4j，toplink，spring三块。&nbsp;&nbsp;<a href='http://www.blogjava.net/ldd600/archive/2008/11/14/240607.html'>阅读全文</a><img src ="http://www.blogjava.net/ldd600/aggbug/240607.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldd600/" target="_blank">叱咤红人</a> 2008-11-14 21:48 <a href="http://www.blogjava.net/ldd600/archive/2008/11/14/240607.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何在JAVA端使Oracle存储过程串行地执行</title><link>http://www.blogjava.net/ldd600/archive/2008/08/25/224148.html</link><dc:creator>叱咤红人</dc:creator><author>叱咤红人</author><pubDate>Mon, 25 Aug 2008 06:12:00 GMT</pubDate><guid>http://www.blogjava.net/ldd600/archive/2008/08/25/224148.html</guid><wfw:comment>http://www.blogjava.net/ldd600/comments/224148.html</wfw:comment><comments>http://www.blogjava.net/ldd600/archive/2008/08/25/224148.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ldd600/comments/commentRss/224148.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldd600/services/trackbacks/224148.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在java端调用存储过程的时候需要存储过程串行的执行，如果使用synchronized lock在应用服务器突然down掉的情况下会出现问题，因为session并没有立即断掉，后台的存储过程还在继续执行，这样如果应用服务器立即重启，再调用该存储过程或者其他需要一起串行化处理的存储过程就会违反同步执行的原则，所以我们必须把锁放在oracle db端，利用oracle锁机制来完成存储过程的同步，文章总结了一下在java端如何使用oracle这个用户锁机制。&nbsp;&nbsp;<a href='http://www.blogjava.net/ldd600/archive/2008/08/25/224148.html'>阅读全文</a><img src ="http://www.blogjava.net/ldd600/aggbug/224148.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldd600/" target="_blank">叱咤红人</a> 2008-08-25 14:12 <a href="http://www.blogjava.net/ldd600/archive/2008/08/25/224148.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Toplink多种会话缓存同步方案的性能比较</title><link>http://www.blogjava.net/ldd600/archive/2008/06/13/207664.html</link><dc:creator>叱咤红人</dc:creator><author>叱咤红人</author><pubDate>Fri, 13 Jun 2008 06:46:00 GMT</pubDate><guid>http://www.blogjava.net/ldd600/archive/2008/06/13/207664.html</guid><wfw:comment>http://www.blogjava.net/ldd600/comments/207664.html</wfw:comment><comments>http://www.blogjava.net/ldd600/archive/2008/06/13/207664.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ldd600/comments/commentRss/207664.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldd600/services/trackbacks/207664.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 上次用Coherence实现缓存数据同步的transport manager之后，对它进行了压力测试并和EMS JMS和 OracleAS JMS（内存）进行了性能对比。文中描述了测试的过程，并共享了代码和测试结果。&nbsp;&nbsp;<a href='http://www.blogjava.net/ldd600/archive/2008/06/13/207664.html'>阅读全文</a><img src ="http://www.blogjava.net/ldd600/aggbug/207664.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldd600/" target="_blank">叱咤红人</a> 2008-06-13 14:46 <a href="http://www.blogjava.net/ldd600/archive/2008/06/13/207664.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用Oracle Coherence实现Toplink Session Cache之间的数据同步</title><link>http://www.blogjava.net/ldd600/archive/2008/05/24/202608.html</link><dc:creator>叱咤红人</dc:creator><author>叱咤红人</author><pubDate>Sat, 24 May 2008 09:37:00 GMT</pubDate><guid>http://www.blogjava.net/ldd600/archive/2008/05/24/202608.html</guid><wfw:comment>http://www.blogjava.net/ldd600/comments/202608.html</wfw:comment><comments>http://www.blogjava.net/ldd600/archive/2008/05/24/202608.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ldd600/comments/commentRss/202608.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldd600/services/trackbacks/202608.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;Toplink分布式 Session Cache同步的方法oracle官方默认提供了JMS和RMI两种实现方式，当然用户也可以自定方法，自定义一个Transport Manager Class, 具体可参见：&nbsp;http://download-west.oracle.com/docs/cd/B25221_04/web.1013/b13593/cachun00...&nbsp;&nbsp;<a href='http://www.blogjava.net/ldd600/archive/2008/05/24/202608.html'>阅读全文</a><img src ="http://www.blogjava.net/ldd600/aggbug/202608.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldd600/" target="_blank">叱咤红人</a> 2008-05-24 17:37 <a href="http://www.blogjava.net/ldd600/archive/2008/05/24/202608.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>