走自己的路

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

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




          主站蜘蛛池模板: 余姚市| 土默特左旗| 南雄市| 黄梅县| 石城县| 望奎县| 祁连县| 大方县| 海宁市| 和田县| 上蔡县| 西盟| 禄丰县| 江华| 桦南县| 双辽市| 辉县市| 永春县| 平南县| 孝昌县| 泰宁县| 延吉市| 泗洪县| 维西| 游戏| 澄城县| 佛冈县| 固镇县| 吐鲁番市| 威宁| 洪雅县| 辽宁省| 清水县| 邵武市| 泸水县| 嘉定区| 秭归县| 民勤县| 汉沽区| 厦门市| 龙门县|