在Oracle Application Server環(huán)境下OC4J Instance下的每個(gè)process的jvm的rmi端口是動(dòng)態(tài)分配的,如果能解決這個(gè)動(dòng)態(tài)的問(wèn)題,就可以使用ORMI作為jndi的provider url。我們的OC4J Instance是有3個(gè)process(jvm)的:

如何固定OC4J Instance的端口呢?
1.修改opmn.xml, 我們把rmi端口固定在12405-12407三個(gè)端口之間,這樣就保證了12405這個(gè)端口是肯定可以使用的,它必然會(huì)分配給一個(gè)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時(shí)的注意點(diǎn)
(1) deploy時(shí)初始化
如果是deploy時(shí)初始化,可能需要等待,不能辦證初始化session servlet的線程和jms server的線程完成的先后順序,需要等待jmssever線程執(zhí)行完畢,可以正確lookup出connection factory和topic
(2)第一次訪問(wèn)應(yīng)用時(shí)初始化
這種方式初始化初始化的時(shí)候,JmsServer線程已經(jīng)執(zhí)行完畢,我們已經(jīng)可以正常的進(jìn)行cache同步了

如何固定OC4J Instance的端口呢?
1.修改opmn.xml, 我們把rmi端口固定在12405-12407三個(gè)端口之間,這樣就保證了12405這個(gè)端口是肯定可以使用的,它必然會(huì)分配給一個(gè)process
\



















2.配置同步策略sessions.xml
















3.初始化session時(shí)的注意點(diǎn)
(1) deploy時(shí)初始化
如果是deploy時(shí)初始化,可能需要等待,不能辦證初始化session servlet的線程和jms server的線程完成的先后順序,需要等待jmssever線程執(zhí)行完畢,可以正確lookup出connection factory和topic
(2)第一次訪問(wèn)應(yīng)用時(shí)初始化
這種方式初始化初始化的時(shí)候,JmsServer線程已經(jīng)執(zhí)行完畢,我們已經(jīng)可以正常的進(jìn)行cache同步了
posted on 2008-12-09 18:00 叱咤紅人 閱讀(1287) 評(píng)論(0) 編輯 收藏 所屬分類: Java Persistence, Transaction and ORM 、JDBC JNDI JMS RMI EJB and Other J2EE Tech