走自己的路

路漫漫其修远兮,吾将上下而求索

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  50 随笔 :: 4 文章 :: 118 评论 :: 0 Trackbacks
在Oracle Application Server环境下OC4J Instance下的每个process的jvm的rmi端口是动态分配的,如果能解决这个动态的问题,就可以使用ORMI作为jndi的provider url。我们的OC4J Instance是有3个process(jvm)的:


如何固定OC4J Instance的端口呢?
1.修改opmn.xml, 我们把rmi端口固定在12405-12407三个端口之间,这样就保证了12405这个端口是肯定可以使用的,它必然会分配给一个process
\
 <process-type id="OC4J_TTS" module-id="OC4J" status="enabled">
               
<module-data>
                  
<category id="start-parameters">
                     
<data id="java-options" value="-server -Djava.security.policy=$ORACLE_HOME/j2ee/OC4J_TTS/config/java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false -Doc4j.jms.debug=true -Doc4j.jms.printStackTrace=true"/>
                     
<data id="oc4j-options" value="-userThreads"/>
                  
</category>
                  
<category id="stop-parameters">
                     
<data id="java-options" value="-Djava.security.policy=$ORACLE_HOME/j2ee/OC4J_TTS/config/java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false"/>
                  
</category>
               
</module-data>
               
<start timeout="600" retry="2"/>
               
<stop timeout="120"/>
               
<restart timeout="720" retry="2"/>
               
<port id="default-web-site" range="12501-12600" protocol="ajp"/>
               
<port id="rmi" range="12405-12407"/>
               
<port id="rmis" range="12701-12800"/>
               
<port id="jms" range="12601-12700"/>
               
<process-set id="default_group" numprocs="3"/>
            
</process-type>


2.配置同步策略sessions.xml
      <remote-command>
         
<commands>
            
<cache-sync>true</cache-sync>
         
</commands>
         
<transport xsi:type="jms-topic-transport">
            
<topic-host-url>ormi://localhost:12405</topic-host-url>
            
<topic-connection-factory-name>TopicConnectionFactory</topic-connection-factory-name>
            
<topic-name>jms/cachesyn</topic-name>
            
<jndi-naming-service>
               
<url>ormi://localhost:12405</url>
               
<user-name>iasFW</user-name>
               
<password>2165EA174261FEADFEC371B11ACA8799</password>
               
<initial-context-factory-name>oracle.j2ee.rmi.RMIInitialContextFactory</initial-context-factory-name>
            
</jndi-naming-service>
         
</transport>
      
</remote-command>

3.初始化session时的注意点

(1) deploy时初始化
如果是deploy时初始化,可能需要等待,不能办证初始化session servlet的线程和jms server的线程完成的先后顺序,需要等待jmssever线程执行完毕,可以正确lookup出connection factory和topic

(2)第一次访问应用时初始化
这种方式初始化初始化的时候,JmsServer线程已经执行完毕,我们已经可以正常的进行cache同步了





只有注册用户登录后才能发表评论。


网站导航: