走自己的路

          路漫漫其修遠兮,吾將上下而求索

            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同步了




          主站蜘蛛池模板: 阳泉市| 绥阳县| 西吉县| 刚察县| 天峻县| 章丘市| 申扎县| 太仓市| 宁乡县| 定西市| 海晏县| 河津市| 马鞍山市| 武平县| 广饶县| 大新县| 平南县| 安阳县| 亚东县| 获嘉县| 平顺县| 绥江县| 济阳县| 马公市| 鹿邑县| 秦皇岛市| 敦煌市| 繁昌县| 疏勒县| 富阳市| 文昌市| 乌什县| 万安县| 田东县| 安顺市| 青铜峡市| 图木舒克市| 万州区| 马山县| 阳东县| 望城县|