Error in Toplink 10.1.3 cache coordination using Websphere JMS

I' am trying to setup Cache Coordination for Toplink 10.1.3 in Websphere 7 using Websphere's implementation of JMS. However I' am getting a NamingException
when I try to lookup the Topic and TopicFactory from the JNDI tree. Admin Security is enabled in the server but not application security. I' am able to lookup
the queues using InitialContext. Upgrading to Toplink 11 is not an option right now for us. Please help in finding out if anything is missing in my Toplink configuration.
<?xml version="1.0" encoding="UTF-8"?>
<toplink-sessions
     version="10g Release 3 (10.1.3.0.0)"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <session xsi:type="server-session">
          <name>default</name>
          <remote-command>
               <commands>
                    <cache-sync>true</cache-sync>
               </commands>
               <transport xsi:type="jms-topic-transport">
                    <topic-connection-factory-name>jms/jobtrax.TCF</topic-connection-factory-name>
                    <topic-name>jms/jobtrax.ToplinkTopic</topic-name>
                    <jndi-naming-service>
                         <url>corbaloc:rir:/NameServiceServerRoot</url>
                         <initial-context-factory-name>com.ibm.websphere.naming.WsnInitialContextFactory</initial-context-factory-name>
                    </jndi-naming-service>
               </transport>
          </remote-command>
<!--<event-listener-classes>
<event-listener-class>com.pstechnology.eaf.persistence.toplink.PostBeginTransactionListener</event-listener-class>
</event-listener-classes>
          -->
          <logging xsi:type="toplink-log">
               <log-level>fine</log-level>
               <logging-options>
                    <log-exception-stacktrace>true</log-exception-stacktrace>
                    <print-thread>true</print-thread>
                    <print-session>false</print-session>
                    <print-connection>false</print-connection>
                    <print-date>true</print-date>
               </logging-options>
          </logging>
          <primary-project xsi:type="class">com.pstechnology.toplink.ToplinkProject</primary-project>
          <login xsi:type="database-login">
               <platform-class>com.pstechnology.eaf.persistence.toplink.Oracle10Platform</platform-class>
               <external-connection-pooling>true</external-connection-pooling>
               <external-transaction-controller>false</external-transaction-controller>
               <sequencing>
                    <default-sequence xsi:type="native-sequence">
                         <name>Default</name>
                    </default-sequence>
               </sequencing>
               <datasource>jdbc/jobtrax_job_datasource</datasource>
               <bind-all-parameters>true</bind-all-parameters>
          </login>
     </session>
</toplink-sessions>
[2/17/11 16:22:10:696 EST] 00000018 SystemOut O [TopLink Warning]:
2011.02.17 04:22:10.690--Thread(Thread[server.startup : 0,5,main])--Local
Exception Stack:
Exception [TOPLINK-22103] (Oracle TopLink - 10g Release 3 (10.1.3.0.0)
(Build 060118)): oracle.toplink.exceptions.RemoteCommandManagerException
Exception Description: Could not look up remote connection under name
jms/jobtrax.TCF with URL corbaloc:rir:/NameServiceServerRoot
Internal Exception: javax.naming.NamingException: Error during resolve
[Root exception is javax.naming.AuthenticationException: Login failed:
com.ibm.websphere.security.auth.WSLoginFailedException [Root exception is
com.ibm.websphere.security.auth.WSLoginFailedException]]
at
oracle.toplink.exceptions.RemoteCommandManagerException.errorLookingUpRemoteConnection
(RemoteCommandManagerException.java:75)
at
oracle.toplink.remotecommand.jms.JMSTopicTransportManager.getTopicConnectionFactory
(JMSTopicTransportManager.java:206)
at
oracle.toplink.remotecommand.jms.PstJMSTopicTransportManager.createJMSTopicRemoteConnection
(PstJMSTopicTransportManager.java:67)
at
oracle.toplink.remotecommand.jms.JMSTopicTransportManager.createLocalConnection
(JMSTopicTransportManager.java:106)
at
oracle.toplink.remotecommand.jms.JMSTopicDiscoveryManager.startDiscovery
(JMSTopicDiscoveryManager.java:44)
at oracle.toplink.remotecommand.RemoteCommandManager.initialize
(RemoteCommandManager.java:132)
at oracle.toplink.publicinterface.DatabaseSession.login
(DatabaseSession.java:517)
at oracle.toplink.tools.sessionmanagement.SessionManager.getSession
(SessionManager.java:379)
at
com.pstechnology.eaf.persistence.toplink.TopLinkRepository.getServerSession
(TopLinkRepository.java:163)
at
com.pstechnology.eaf.persistence.toplink.TopLinkRepository.getClientSession
(TopLinkRepository.java:198)
at
com.pstechnology.eaf.persistence.toplink.TopLinkRepository.getReadSession
(TopLinkRepository.java:216)
at com.pstechnology.eaf.persistence.toplink.TopLinkRepository.read
(TopLinkRepository.java:318)
at
com.pstechnology.repository.admin.ApplicationPropertyRepository.findApplicationPropertyByEnumId
(ApplicationPropertyRepository.java:70)
at
com.pstechnology.service.admin.AdministrationService.findApplicationPropertyValue
(AdministrationService.java:179)
at
com.pstechnology.scheduling.trigger.AbolishedTaskSimpleTrigger.getTimerRepeatIntervalValue
(AbolishedTaskSimpleTrigger.java:45)
at
com.pstechnology.scheduling.trigger.AbolishedTaskSimpleTrigger.afterPropertiesSet
(AbolishedTaskSimpleTrigger.java:30)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods
(AbstractAutowireCapableBeanFactory.java:1198)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean
(AbstractAutowireCapableBeanFactory.java:1167)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean
(AbstractAutowireCapableBeanFactory.java:427)
at org.springframework.beans.factory.support.AbstractBeanFactory
$1.getObject(AbstractBeanFactory.java:249)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton
(DefaultSingletonBeanRegistry.java:155)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:246)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:160)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons
(DefaultListableBeanFactory.java:291)
at
org.springframework.context.support.AbstractApplicationContext.refresh
(AbstractApplicationContext.java:352)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>
(ClassPathXmlApplicationContext.java:122)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>
(ClassPathXmlApplicationContext.java:66)
at com.pstechnology.service.SchedulingContext.initialize
(SchedulingContext.java:56)
at com.pstechnology.servlet.InitializationServlet.init
(InitializationServlet.java:52)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.init
(ServletWrapper.java:358)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.init
(ServletWrapperImpl.java:169)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.initialize
(ServletWrapper.java:1809)
at
com.ibm.wsspi.webcontainer.extension.WebExtensionProcessor.createServletWrapper
(WebExtensionProcessor.java:98)
at com.ibm.ws.webcontainer.webapp.WebApp.initializeTargetMappings
(WebApp.java:678)
at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinally
(WebApp.java:429)
at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize
(WebAppImpl.java:304)
at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication
(WebGroupImpl.java:100)
at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication
(VirtualHostImpl.java:166)
at com.ibm.ws.webcontainer.WSWebContainer.addWebApp
(WSWebContainer.java:731)
at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication
(WSWebContainer.java:616)
at com.ibm.ws.webcontainer.component.WebContainerImpl.install
(WebContainerImpl.java:376)
at com.ibm.ws.webcontainer.component.WebContainerImpl.start
(WebContainerImpl.java:668)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start
(ApplicationMgrImpl.java:1122)
at
com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart
(DeployedApplicationImpl.java:1319)
at com.ibm.ws.runtime.component.DeployedModuleImpl.start
(DeployedModuleImpl.java:609)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start
(DeployedApplicationImpl.java:944)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication
(ApplicationMgrImpl.java:725)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start
(ApplicationMgrImpl.java:2046)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start
(CompositionUnitMgrImpl.java:439)
at com.ibm.ws.runtime.component.CompositionUnitImpl.start
(CompositionUnitImpl.java:123)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start
(CompositionUnitMgrImpl.java:382)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$300
(CompositionUnitMgrImpl.java:110)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl
$CUInitializer.run(CompositionUnitMgrImpl.java:949)
at com.ibm.wsspi.runtime.component.WsComponentImpl
$_AsynchInitializer.run(WsComponentImpl.java:349)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1563)
Internal Exception Stack:
javax.naming.NamingException: Error during resolve [Root exception is
javax.naming.AuthenticationException: Login failed:
com.ibm.websphere.security.auth.WSLoginFailedException [Root exception is
com.ibm.websphere.security.auth.WSLoginFailedException]]
at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup
(CNContextImpl.java:1840)
at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup
(CNContextImpl.java:1749)
at com.ibm.ws.naming.jndicos.CNContextImpl.lookupExt
(CNContextImpl.java:1500)
at com.ibm.ws.naming.jndicos.CNContextImpl.lookup
(CNContextImpl.java:637)
at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:165)
at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:179)
at javax.naming.InitialContext.lookup(InitialContext.java:455)
at
oracle.toplink.remotecommand.jms.JMSTopicTransportManager.getTopicConnectionFactory
(JMSTopicTransportManager.java:204)
at
oracle.toplink.remotecommand.jms.PstJMSTopicTransportManager.createJMSTopicRemoteConnection
(PstJMSTopicTransportManager.java:67)
at
oracle.toplink.remotecommand.jms.JMSTopicTransportManager.createLocalConnection
(JMSTopicTransportManager.java:106)
at
oracle.toplink.remotecommand.jms.JMSTopicDiscoveryManager.startDiscovery
(JMSTopicDiscoveryManager.java:44)
at oracle.toplink.remotecommand.RemoteCommandManager.initialize
(RemoteCommandManager.java:132)
at oracle.toplink.publicinterface.DatabaseSession.login
(DatabaseSession.java:517)
at oracle.toplink.tools.sessionmanagement.SessionManager.getSession
(SessionManager.java:379)
at
com.pstechnology.eaf.persistence.toplink.TopLinkRepository.getServerSession
(TopLinkRepository.java:163)
at
com.pstechnology.eaf.persistence.toplink.TopLinkRepository.getClientSession
(TopLinkRepository.java:198)
at
com.pstechnology.eaf.persistence.toplink.TopLinkRepository.getReadSession
(TopLinkRepository.java:216)
at com.pstechnology.eaf.persistence.toplink.TopLinkRepository.read
(TopLinkRepository.java:318)
at
com.pstechnology.repository.admin.ApplicationPropertyRepository.findApplicationPropertyByEnumId
(ApplicationPropertyRepository.java:70)
at
com.pstechnology.service.admin.AdministrationService.findApplicationPropertyValue
(AdministrationService.java:179)
at
com.pstechnology.scheduling.trigger.AbolishedTaskSimpleTrigger.getTimerRepeatIntervalValue
(AbolishedTaskSimpleTrigger.java:45)
at
com.pstechnology.scheduling.trigger.AbolishedTaskSimpleTrigger.afterPropertiesSet
(AbolishedTaskSimpleTrigger.java:30)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods
(AbstractAutowireCapableBeanFactory.java:1198)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean
(AbstractAutowireCapableBeanFactory.java:1167)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean
(AbstractAutowireCapableBeanFactory.java:427)
at org.springframework.beans.factory.support.AbstractBeanFactory
$1.getObject(AbstractBeanFactory.java:249)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton
(DefaultSingletonBeanRegistry.java:155)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:246)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:160)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons
(DefaultListableBeanFactory.java:291)
at
org.springframework.context.support.AbstractApplicationContext.refresh
(AbstractApplicationContext.java:352)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>
(ClassPathXmlApplicationContext.java:122)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>
(ClassPathXmlApplicationContext.java:66)
at com.pstechnology.service.SchedulingContext.initialize
(SchedulingContext.java:56)
at com.pstechnology.servlet.InitializationServlet.init
(InitializationServlet.java:52)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.init
(ServletWrapper.java:358)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.init
(ServletWrapperImpl.java:169)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.initialize
(ServletWrapper.java:1809)
at
com.ibm.wsspi.webcontainer.extension.WebExtensionProcessor.createServletWrapper
(WebExtensionProcessor.java:98)
at com.ibm.ws.webcontainer.webapp.WebApp.initializeTargetMappings
(WebApp.java:678)
at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinally
(WebApp.java:429)
at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize
(WebAppImpl.java:304)
at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication
(WebGroupImpl.java:100)
at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication
(VirtualHostImpl.java:166)
at com.ibm.ws.webcontainer.WSWebContainer.addWebApp
(WSWebContainer.java:731)
at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication
(WSWebContainer.java:616)
at com.ibm.ws.webcontainer.component.WebContainerImpl.install
(WebContainerImpl.java:376)
at com.ibm.ws.webcontainer.component.WebContainerImpl.start
(WebContainerImpl.java:668)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start
(ApplicationMgrImpl.java:1122)
at
com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart
(DeployedApplicationImpl.java:1319)
at com.ibm.ws.runtime.component.DeployedModuleImpl.start
(DeployedModuleImpl.java:609)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start
(DeployedApplicationImpl.java:944)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication
(ApplicationMgrImpl.java:725)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start
(ApplicationMgrImpl.java:2046)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start
(CompositionUnitMgrImpl.java:439)
at com.ibm.ws.runtime.component.CompositionUnitImpl.start
(CompositionUnitImpl.java:123)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start
(CompositionUnitMgrImpl.java:382)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$300
(CompositionUnitMgrImpl.java:110)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl
$CUInitializer.run(CompositionUnitMgrImpl.java:949)
at com.ibm.wsspi.runtime.component.WsComponentImpl
$_AsynchInitializer.run(WsComponentImpl.java:349)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1563)
Caused by: javax.naming.AuthenticationException: Login failed:
com.ibm.websphere.security.auth.WSLoginFailedException [Root exception is
com.ibm.websphere.security.auth.WSLoginFailedException]
at com.ibm.ws.naming.util.SecurityUtil.login(SecurityUtil.java:121)
at com.ibm.ws.naming.jndicos.CNContextImpl.login
(CNContextImpl.java:4516)
at com.ibm.ws.naming.jndicos.CNContextImpl.cosResolve
(CNContextImpl.java:2781)
at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup
(CNContextImpl.java:1790)
... 60 more
Caused by: com.ibm.websphere.security.auth.WSLoginFailedException
at com.ibm.ws.security.ltpa.LTPAServerObject.authenticate
(LTPAServerObject.java:998)
at com.ibm.ws.security.server.lm.ltpaLoginModule.login
(ltpaLoginModule.java:643)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:48)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:600)
at javax.security.auth.login.LoginContext.invoke
(LoginContext.java:795)
at javax.security.auth.login.LoginContext.access$000
(LoginContext.java:209)
at javax.security.auth.login.LoginContext$4.run
(LoginContext.java:709)
at java.security.AccessController.doPrivileged
(AccessController.java:251)
at javax.security.auth.login.LoginContext.invokePriv
(LoginContext.java:706)
at javax.security.auth.login.LoginContext.login
(LoginContext.java:603)
at com.ibm.ws.security.auth.JaasLoginHelper.jaas_login
(JaasLoginHelper.java:354)
at com.ibm.ws.security.auth.ContextManagerImpl.login
(ContextManagerImpl.java:4024)
at com.ibm.ws.security.auth.ContextManagerImpl.login
(ContextManagerImpl.java:3728)
at com.ibm.ws.security.auth.ContextManagerImpl.login
(ContextManagerImpl.java:3724)
at com.ibm.ws.security.auth.ContextManagerImpl.login
(ContextManagerImpl.java:3475)
at com.ibm.ws.naming.util.SecurityUtil$1.run(SecurityUtil.java:115)
at com.ibm.ws.naming.util.SecurityUtil$1.run(SecurityUtil.java:111)
at com.ibm.ws.security.util.AccessController.doPrivileged
(AccessController.java:118)
at com.ibm.ws.naming.util.SecurityUtil.login(SecurityUtil.java:109)
... 63 more
Caused by: com.ibm.websphere.security.PasswordCheckFailedException
at com.ibm.ws.wim.registry.util.LoginBridge.checkPassword
(LoginBridge.java:204)
at com.ibm.ws.wim.registry.WIMUserRegistry$1.run
(WIMUserRegistry.java:181)
at com.ibm.ws.security.auth.ContextManagerImpl.runAs
(ContextManagerImpl.java:4610)
at com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem
(ContextManagerImpl.java:4698)
at
com.ibm.ws.wim.security.authz.jacc.JACCSecurityManager.runAsSuperUser
(JACCSecurityManager.java:432)
at
com.ibm.ws.wim.security.authz.ProfileSecurityManager.runAsSuperUser
(ProfileSecurityManager.java:964)
at com.ibm.ws.wim.registry.WIMUserRegistry.checkPassword
(WIMUserRegistry.java:170)
at com.ibm.ws.security.registry.UserRegistryImpl.checkPassword
(UserRegistryImpl.java:338)
at com.ibm.ws.security.ltpa.LTPAServerObject.authenticate
(LTPAServerObject.java:973)
... 83 more
Caused by: com.ibm.websphere.wim.exception.PasswordCheckFailedException:
CWWIM4537E No principal is found from the 'admin' principal name.
at com.ibm.ws.wim.ProfileManager.loginImpl(ProfileManager.java:3607)
at com.ibm.ws.wim.ProfileManager.genericProfileManagerMethod
(ProfileManager.java:292)
at com.ibm.ws.wim.ProfileManager.login(ProfileManager.java:400)
at com.ibm.websphere.wim.ServiceProvider.login
(ServiceProvider.java:485)
at com.ibm.ws.wim.registry.util.LoginBridge.checkPassword
(LoginBridge.java:169)

We are taking another run at TopLink 10.1.3 and have run into this problem again.
It turns out that this is fairly reproducable. It occurs when we remove the last item (or all of the items) from the parent collection.
It occurs with transparent indirection on or off.
I've added several tests to our Junit suite to detect this behavior with various objects. Sometimes they fail, sometimes they pass. Going back to TopLink 9, a couple of the tests that fail in 10 fail, but most of them pass.
Given the number of folks who shared our probem in TopLink9, I wonder how many have a similar problem in 10. I also wonder why the behavior differs somewhat between 9 and 10. Though our expanded test suite is now detecting the behavior in 9, it is less frequent.

Similar Messages

  • Configuring Toplink Cache Coordination using JMS

    After having spent one whole day reading documentation on the above topic, I did not get anywhere. I am looking for a direction to start aquainting myself with Oracle JMS basics to enable me with the configuration in toplink. I hope someone could please help me in getting started, direct me to documentation and/or examples and then I could have some specific and meaningful questions to ask.
    As of now, I have these questions.
    1) In order to configure Toplink Cache Coordination using JMS, do I use Oracle AS JMS or OJMS provider?
    2) Should I be configuring OJMS before I could use Oracle AS JMS?
    3) If I am using Oracle 10.1.2 Application Server, will OJMS Database Schema be defined and the resource adapter deployed by default or is there a way I check this using Oracle Enterprise Manager Console.
    4) Should I be adding a JMS provider within the OC4J for the application I am using before I do any of the above?
    Any help will be highly appreciated.
    Thanks
    Swapna

    Ok. I found my answers
    1) In order to configure Toplink Cache Coordination using JMS, do I use Oracle AS JMS or OJMS provider?
    Either of the one can be used. Here is what I found regarding the trade off
    OJMS and OracleAS JMS are both J2EE 1.3 compliant JMS providers from Oracle. OJMS has been integrated into OracleAS 10g using the JCA adapter while at the same time leveraging Advanced Queuing in the Oracle Database for persistence and recoverability. If database recoverability guarantees, SQL queriability, transparent application failover, message transformation, propagation are required then Oracle recommends using OJMS as the JMS provider.
    OracleAS JMS is a lightweight, in-memory/file based queuing system that provides a complete J2EE 1.3 JMS implementation. It is suited for applications that do not require Oracle specific JMS extensions or the recoverability guarantees that OJMS provides.
    2) Should I be configuring OJMS before I could use Oracle AS JMS?
    No. OracleAS JMS is always provided and preconfigured, except for the topics and queues, with the OC4J installation.
    3) If I am using Oracle 10.1.2 Application Server, will OJMS Database Schema be defined and the resource adapter deployed by default or is there a way I check this using Oracle Enterprise Manager Console.
    No. The schema needs to be created by the admin and OJMS needs to be configured as the JMS Provider using this schema.
    4) Should I be adding a JMS provider within the OC4J for the application I am using before I do any of the above?
    Yes, if not using Oracle AS JMS.
    Hope that was accurate.

  • Toplink Cache Coordination using JMS - doesn't work, gives a warning

    Hi, I am trying to implement cache coordination on Oracle App Server 9.0.4 in a clustered environment. I have two application sessions configured to use JMS for cache coordination. When I make an update to one of the objects in one application which is cached and used by both the applications, I get the below warning in the log file and the changes does not propogate to the other application.
    [TopLink Warning]: 2007.10.23 01:45:17.463--ServerSession(802908582)--Thread(Thread[Thread-112,5,ApplicationServerThreadGroup])--null
    command failed due to: javax.jms.JMSException: getObject
    at com.evermind.server.jms.JMSUtils.makeJMSException(JMSUtils.java:1899)
    at com.evermind.server.jms.JMSUtils.toJMSException(JMSUtils.java:1915)
    at com.evermind.server.jms.EvermindObjectMessage.getObject(EvermindObjectMessage.java:128)
    at oracle.toplink.internal.remotecommand.jms.JMSTopicRemoteConnection.onMessage(JMSTopicRemoteConnection.java:73)
    at oracle.toplink.remotecommand.jms.JMSTopicTransportManager$JMSOnMessageHelper.run(JMSTopicTransportManager.java:261)
    I have no clue from the warning above as to what could be wrong. Does anybody have any idea? Is there a way I could debug and see what really is happening?
    Thanks
    Swapna

    Hi, thanks for your response.
    I set the logging level to all and this is the complete stack trace I see in the log.
    [TopLink Finest]: 2007.10.25 01:54:04.547--ServerSession(2121070148)--Thread(Thread[Thread-465,5,main])--Retreived remote message from
    JMS topic: ICMS Toplink topic
    [TopLink Warning]: 2007.10.25 01:54:04.555--ServerSession(2121070148)--Thread(Thread[Thread-465,5,main])--null command failed due to:
    javax.jms.JMSException: getObject
    at com.evermind.server.jms.JMSUtils.makeJMSException(JMSUtils.java:1899)
    at com.evermind.server.jms.JMSUtils.toJMSException(JMSUtils.java:1915)
    at com.evermind.server.jms.EvermindObjectMessage.getObject(EvermindObjectMessage.java:128)
    at oracle.toplink.internal.remotecommand.jms.JMSTopicRemoteConnection.onMessage(JMSTopicRemoteConnection.java:73)
    at oracle.toplink.remotecommand.jms.JMSTopicTransportManager$JMSOnMessageHelper.run(JMSTopicTransportManager.java:261)
    I am using toplink version 10.1.3.1. I contacted Oracle Technical support but so far they were not able to figure this out. I will try using RMI as you suggested to make sure.
    I have another question to ask you about logging. I am working on a different application which is in production and uses toplink version 9.0.3. Due to excessive logging, I am trying to set the logging level to warning and I don't see this as an option in 9.0.3. The documentation does talk about it but using toplink workbench and I can't open the session.xml using Toplink workbench 9.0.3. Is it doable at all in toplink version 9.0.3?
    Thanks
    Swapna

  • Issues with TopLink Cache Coordination using JMS for manual DB updates

    Hi,
    We are having 2 web application using same Database and Toplink library but 2 session objects for both the applications. We are using JMS for cache coordination. JMS propagating messages successfully between the applications and able to see the same object changes in both the applications properly. Now, we are trying to refresh cache for manual updates in Database. We are trying to refresh single object which is modified in database in one application, refreshing in one application from which refresh happened but not in other application (JMS publishing the topic but updating one).
    Our intention is refreshing in one application so that JMS should coordinate and update in others when DB manual updates. Please let us know any comments for the same.
    Database using: Oracle 11g
    Toplink Version:- 9.0.3

    See,
    http://www.coderanch.com/t/592919/ORM/databases/Toplink-Cache-coordination-JMS-manual

  • RMI Cache coordination on Glassfish 2.x and Eclipselink 1.2

    We are trying to get eclipseLink shared cache working on Glassfish. As of Eclipselink 1.2 this can be done in the persistence.xml and we have added the following properties. where $host is the ip addesss of the server. We have no authentication setup so have not set the username and password properites.
    <property name="eclipselink.cache.coordination.protocol" value="rmi" />
    <property name="eclipselink.cache.coordination.rmi.url" value="rmi://$host:9037" />
    <property name="eclipselink.cache.coordination.rmi.announcement-delay" value="1000" />
    <property name="eclipselink.cache.coordination.rmi.multicast-group" value="224.0.0.2" />
    <property name="eclipselink.cache.coordination.rmi.multicast-group.port" value="3121" />
    <property name="eclipselink.cache.coordination.packet-time-to-live" value="2" />
    <property name="eclipselink.cache.coordination.jndi.initial-context-factory" value="com.sun.enterprise.naming.SerialInitContextFactory" />
    <property name="eclipselink.cache.coordination.remove-connection-on-error" value="true" />
    <property name="eclipselink.cache.coordination.propagate-asynchronously" value="false" />
    <property name="eclipselink.cache.coordination.naming-service" value="0" />
    From what I have read this should work, but we are getting the following error.
    [#|2010-07-16T09:10:11.782+0200|SEVERE|sun-appserver2.1|javax.enterprise.system.core.naming|_ThreadID=14;_ThreadName=Thread-30;_RequestID=6a82e16c-773b-4582-aa06-9415c99d721a;|NAM0002:
    Exception in NamingManagerImpl copyMutableObject().
    java.io.NotSerializableException:
    org.eclipse.persistence.sessions.coordination.RemoteCommandManager
    at
    java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
    at
    java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
    at
    java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
    at
    java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
    at
    java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
    at
    java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
    at
    com.sun.enterprise.naming.NamingUtils.makeCopyOfObject(NamingUtils.java:64)
    at
    com.sun.enterprise.naming.LocalSerialContextProviderImpl.rebind(LocalSerialContextProviderImpl.java:105)
    at
    com.sun.enterprise.naming.SerialContext.rebind(SerialContext.java:503)
    at javax.naming.InitialContext.rebind(InitialContext.java:408)
    at
    org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.createLocalConnectionInJNDI(RMITransportManager.java:150)
    at
    org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.createLocalConnection(RMITransportManager.java:128)
    at
    org.eclipse.persistence.sessions.coordination.DiscoveryManager.run(DiscoveryManager.java:197)
    at java.lang.Thread.run(Thread.java:619)
    |#]
    [#|2010-07-16T09:10:11.796+0200|WARNING|sun-appserver2.1|org.eclipse.persistence.session.file:/|_ThreadID=14;_ThreadName=Thread-30;_RequestID=6a82e16c-773b-4582-aa06-9415c99d721a;|
    Local Exception Stack:
    Exception [EclipseLink-22102] (Eclipse Persistence Services -
    2.0.0.v20090725-r4721):
    org.eclipse.persistence.exceptions.RemoteCommandManagerException
    Exception Description: Could not post connection in local naming service
    under name Service[EclipseLinkCommandChannel,
    e97d5543-56ba-4ded-9d23-7f5dad7a6dc8, rmi://172.17.2.115:9037]
    Internal Exception: java.lang.RuntimeException: Cant copy Serializable
    object:
    at
    org.eclipse.persistence.exceptions.RemoteCommandManagerException.errorBindingConnection(RemoteCommandManagerException.java:87)
    at
    org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.createLocalConnectionInJNDI(RMITransportManager.java:153)
    at
    org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.createLocalConnection(RMITransportManager.java:128)
    at
    org.eclipse.persistence.sessions.coordination.DiscoveryManager.run(DiscoveryManager.java:197)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: java.lang.RuntimeException: Cant copy Serializable object:
    at
    com.sun.enterprise.naming.NamingUtils.makeCopyOfObject(NamingUtils.java:82)
    at
    com.sun.enterprise.naming.LocalSerialContextProviderImpl.rebind(LocalSerialContextProviderImpl.java:105)
    at
    com.sun.enterprise.naming.SerialContext.rebind(SerialContext.java:503)
    at javax.naming.InitialContext.rebind(InitialContext.java:408)
    at
    org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.createLocalConnectionInJNDI(RMITransportManager.java:150)
    ... 3 more
    Caused by: java.io.NotSerializableException:
    org.eclipse.persistence.sessions.coordination.RemoteCommandManager
    at
    java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
    at
    java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
    at
    java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
    at
    java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
    at
    java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
    at
    java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
    at
    com.sun.enterprise.naming.NamingUtils.makeCopyOfObject(NamingUtils.java:64)
    ... 7 more
    |#]I suspect that it is not connecting, because I get a similar error if I choose an invalid port for the url. The IP is correct and the port 9037 is setup as the IIOP port in Glassfish.
    Any ideas on how to solve this?

    Hi Bob
    Thank you for your kind input.
    I'm using a Sonnet D800 which has eSata cables. Here are my 'Raid Properties' below. There are various 'Scan' options on the Raid but I'm scared to touch them in case they affect all my captured video I'm working with!
    Raid Type: RAID5
    Capacity 5.46TB
    Members: 7
    Partitions: 1
    Mirrors: None
    Interleave: 128KB
    Sector Size:512 bytes
    Drives: 8
    Faulted: 0
    Raid Groups: 1
    Hot Spares: 1
    Features:
    Speed Read - Always
    Rebuild Priority - Same
    Prefetch: 0
    Auto Rebuild: Yes
    I'm using a:
    2 x 2.66 GHz Quad-Core Intel Xeon
    8 GB 1066 MHz DDR3 ATI Radeon HD 4870
    Mac OXX (10.5.7)
    From Wiki "Raid 5": 'Striped set with distributed parity or interleave parity. Distributed parity requires all drives but one to be present to operate; drive failure requires replacement, but the array is not destroyed by a single drive failure. Upon drive failure, any subsequent reads can be calculated from the distributed parity such that the drive failure is masked from the end user. The array will have data loss in the event of a second drive failure and is vulnerable until the data that was on the failed drive is rebuilt onto a replacement drive. A single drive failure in the set will result in reduced performance of the entire set until the failed drive has been replaced and rebuilt.'
    I might contact Sonnet and request how I might perform a scan to ensure it's all working normally.
    I haven't tried FCP Rescue yet (downloading it now) but had successfully manually Trashed my Preferences several times.
    I have searched for Caffeine but can't seem to locate it - can you name some search terms so I might be able to find it in a search engine please?
    "The mac (like Windows) doesn't seem to understand that CPU usage = use, verse just cursor/keyboard movements." -- you never know, this might well be the problem, something as simple as a keyboard assignment for a quick triple tap of J or L for fast rewind or fast forward in the FCP viewer?

  • Memory leak when using JMS Cache Coordination

    We have two Weblogic Server 8.1 processes running Java 1.4.2 on Solaris using TOPLink 10.1.3 with JMS Cache Coordination. We observe that heap is filled with uncollectable instances of TOPLink-mapped classes. In our production system, under full load, this completely fills a 3.6 GB heap in 30 minutes, requiring a process restart. The problem goes away if we turn off cache coordination.
    It appears that these instances are UnitOfWork or some other kind of toplink-created clone. We have not yet been able to successfully analyse this problem with a heap profiler.
    Has anyone else experienced this this problem? Any suggestions for debugging?
    Thanks in advance.

    We do set the command manager to asychronous mode. (Our debug tracing confirms that the CommandPropagator method asynchronousPropagateCommand() is invoked, not synchronousPropagateCommand().) We started with asynchronous messaging and actually have never tried running in a synchronous mode.
    The Java bug I referenced in my last post (which I have confirmed with a stand-alone test case) indicates that, for Java 1.4.2 and earlier, is is never ok to not start() a Thread -- it will always produce a memory leak. So I am quite surprised than anyone on a pre-1.5 Java had ever had success with synchronous cache coordination messaging. Do you think it is possible all of the pre-release tests and existing customers installations of 10.1.3 cache coordination are using Java 1.5 ?!
    Our heap profiling indicates that the instances of CommandPropagator which are pinned (i.e., those not started) are allocated in the run() method of CommandPropagator itself. So it seems that the instance of CommandPropagator, after it is started, allocates another one in its run method. Looking at the bytecodes for the run() method (using javap -c) shows that in one branch of the code a second CommandPropagator is indeed allocated and then handed off to the launchContainerRunnable method of a ServerPlatform.
    Since these secondary CommandPropagators are the ones which are not started, we have looked into the WebLogic_8_1_Platform class and found that its implementation launchContainerRunnable (inherited from ServerPlatformBase) does a
    new Thread(runnable).start()where the argument runnable is the CommandPropagator.
    So the CommandPropagator itself is not started(), but is instead run an another Thread.
    We are experimenting with a custom ServerPlatform which overrides launchContainerRunnable:
        server.setServerPlatform(
            new WebLogic_8_1_Platform(server)
                public void launchContainerRunnable(Runnable runnable)
                   if (runnable instanceof Thread) ((Thread)runnable).start();
                   else super.launchContainerRunnable(runnable);
        );  This starts the argument Runnable directly if it is actually a Thread. Our early, small-scale tests indicate that this change eliminates the memory leak. We are testing now in a production-replicate environment under full load.
    But this feels like a hack. I have no idea what TOPLink behavior other than cache coordination flows through this method. Does anyone know what else this ServerPlatform method is used for? Is there a better way to do this? Are there any adverse conquences to our hack? Any suggestions would be appreciated.
    Thanks in advance.

  • Toplink Cache sync using JMS

    Hi,
    I am using toplink cache synchronization using Orion JMS. While starting the application I get the following erorr message.
    Oracle apps server version is 10.1.2.0.0 toplink 9.0.4.5
    Local Exception Stack:
    Exception [TOPLINK-15016] (OracleAS TopLink - 10g (9.0.4.5) (Build 040930)): oracle.toplink.exceptions.SynchronizationException
    Exception Description: Could not gain access to SynchronizationService class
    Internal Exception: Exception [TOPLINK-15013] (OracleAS TopLink - 10g (9.0.4.5) (Build 040930)): oracle.toplink.exceptions.SynchronizationException
    Exception Description: Could not find JMS Service Topic named: jms/MyCacheSyncTopic
    Internal Exception: javax.naming.NameNotFoundException: jms/MyTopicFactory not found
    at oracle.toplink.exceptions.SynchronizationException.errorGettingSyncService(SynchronizationException.java:139)
    at oracle.toplink.remote.CacheSynchronizationManager.initialize(CacheSynchronizationManager.java:114)
    at oracle.toplink.publicinterface.DatabaseSession.login(DatabaseSession.java:534)
    at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(SessionManager.java:250)
    at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(SessionManager.java:181)
    at com.starkey.cqm.dao.PersistenceService.initializeService(PersistenceService.java:67)
    at com.starkey.cqm.bcs.CQMServiceManager.createService(CQMServiceManager.java:68)
    at com.starkey.cqm.web.util.CQMInitServlet.init(CQMInitServlet.java:40)
    I have made the modifications in sessions.xml as follows
              <cache-synchronization-manager>
                   <clustering-service>oracle.toplink.remote.jms.JMSClusteringService</clustering-service>
                   <jms-topic-connection-factory-name>jms/MyTopicFactory</jms-topic-connection-factory-name>
                   <jms-topic-name>jms/MyCacheSyncTopic</jms-topic-name>     
              </cache-synchronization-manager>
    Changes in JMS xml
    <topic name="MyCacheSyncTopic" location="jms/MyCacheSyncTopic"/>
    <topic-connection-factory
              host="cqtest1"
              port="3702"
              name="Cache Sync Topic Factory"
              location="jms/MyTopicFactory" />
    Has any one encountered this before ?
    Thanks
    Priya

    Hi Steve,
    Servers 1 and 2 may have dropped the connections to 3. One way that this can happen is if at some point an object delta is sent to a target server that does not have the object deployed, or on its classpath. Make sure that log-debug is turned on for the TopLink session. You should see warnings on servers 1 and 2 about the connections being dropped to 3.
    If none of this seems to help or if you can't find the answers from the debug traces then the logs of the three servers would help support in determining where the problem occurred.
    -Mike

  • TopLink 11g Cache Coordination failure in WebSphere 6.1

    Hello,
    I've recently upgraded to TopLink 11g and I am trying to make cache coordination feature work in WebSphere 6.1 using JMS. Once configured I am getting the following errors on the server side:
    [4/14/09 17:22:25:321 PDT] 00000032 SibMessage E [:] CWSIP0003E: An internal messaging error occurred Default.Topic.Space in com.ibm.ws.sib.processor.impl.LocalConsumerPoint, 1:1511:1.28, com.ibm.ws.sib.msgstore.ProtocolException: CWSIS1001E: The requested action could not be carried out as it does not comply with the resource manager's internal transaction protocol. at com.ibm.ws.sib.msgstore.transactions.MSDelegatingXAResource.addWork(MSDelegatingXAResource.java:140) at com.ibm.ws.sib.msgstore.cache.links.AbstractItemLink.cmdRemove(AbstractItemLink.java:1330) at com.ibm.ws.sib.msgstore.AbstractItem.remove(AbstractItem.java:828) at com.ibm.ws.sib.processor.impl.JSLocalConsumerPoint.receive(JSLocalConsumerPoint.java:1487) at com.ibm.ws.sib.processor.impl.ConsumerSessionImpl.receiveWithWait(ConsumerSessionImpl.java:421) at com.ibm.ws.sib.api.jms.impl.JmsMsgConsumerImpl.receiveInboundMessage(JmsMsgConsumerImpl.java:1525) at com.ibm.ws.sib.api.jms.impl.JmsMsgConsumerImpl.receive(JmsMsgConsumerImpl.java:707) at oracle.toplink.internal.remotecommand.jms.JMSTopicRemoteConnection.run(JMSTopicRemoteConnection.java:229) at java.lang.Thread.run(Thread.java:810)
    [4/14/09 17:22:25:353 PDT] 00000032 SystemOut O [TopLink Warning]: 2009.04.14 17:22:25.353--ServerSession(1261194028)--Thread(Thread[Thread-65,5,WebSphere_EJB_Timer_Service_WorkManager: WM Service Group])--Local Exception Stack:
    Exception [TOPLINK-22109] (Oracle TopLink - 11g (11.1.1.0.1) (Build 081030)): oracle.toplink.exceptions.RemoteCommandManagerException
    Exception Description: Failed to receive JMS message from JMS provider
    Internal Exception: javax.jms.JMSException: CWSIA0103E: An exception occurred while receiving a message: com.ibm.websphere.sib.exception.SIResourceException: CWSIP0003E: An internal messaging error occurred Default.Topic.Space in com.ibm.ws.sib.processor.impl.LocalConsumerPoint, 1:1526:1.28, com.ibm.ws.sib.msgstore.ProtocolException: CWSIS1001E: The requested action could not be carried out as it does not comply with the resource manager's internal transaction protocol..
         at oracle.toplink.exceptions.RemoteCommandManagerException.errorReceivingJMSMessage(RemoteCommandManagerException.java:139)
         at oracle.toplink.internal.remotecommand.jms.JMSTopicRemoteConnection.run(JMSTopicRemoteConnection.java:257)
         at java.lang.Thread.run(Thread.java:810)
    Caused by: javax.jms.JMSException: CWSIA0103E: An exception occurred while receiving a message: com.ibm.websphere.sib.exception.SIResourceException: CWSIP0003E: An internal messaging error occurred Default.Topic.Space in com.ibm.ws.sib.processor.impl.LocalConsumerPoint, 1:1526:1.28, com.ibm.ws.sib.msgstore.ProtocolException: CWSIS1001E: The requested action could not be carried out as it does not comply with the resource manager's internal transaction protocol..
         at com.ibm.ws.sib.api.jms.impl.JmsMsgConsumerImpl.receiveInboundMessage(JmsMsgConsumerImpl.java:1637)
         at com.ibm.ws.sib.api.jms.impl.JmsMsgConsumerImpl.receive(JmsMsgConsumerImpl.java:707)
         at oracle.toplink.internal.remotecommand.jms.JMSTopicRemoteConnection.run(JMSTopicRemoteConnection.java:229)
         ... 1 more
    Caused by: com.ibm.websphere.sib.exception.SIResourceException: CWSIP0003E: An internal messaging error occurred Default.Topic.Space in com.ibm.ws.sib.processor.impl.LocalConsumerPoint, 1:1526:1.28, com.ibm.ws.sib.msgstore.ProtocolException: CWSIS1001E: The requested action could not be carried out as it does not comply with the resource manager's internal transaction protocol.
         at com.ibm.ws.sib.processor.impl.JSLocalConsumerPoint.receive(JSLocalConsumerPoint.java:1521)
         at com.ibm.ws.sib.processor.impl.ConsumerSessionImpl.receiveWithWait(ConsumerSessionImpl.java:421)
         at com.ibm.ws.sib.api.jms.impl.JmsMsgConsumerImpl.receiveInboundMessage(JmsMsgConsumerImpl.java:1525)
         ... 3 more
    Caused by: com.ibm.ws.sib.msgstore.ProtocolException: CWSIS1001E: The requested action could not be carried out as it does not comply with the resource manager's internal transaction protocol.
         at com.ibm.ws.sib.msgstore.transactions.MSDelegatingXAResource.addWork(MSDelegatingXAResource.java:140)
         at com.ibm.ws.sib.msgstore.cache.links.AbstractItemLink.cmdRemove(AbstractItemLink.java:1330)
         at com.ibm.ws.sib.msgstore.AbstractItem.remove(AbstractItem.java:828)
         at com.ibm.ws.sib.processor.impl.JSLocalConsumerPoint.receive(JSLocalConsumerPoint.java:1487)
         ... 5 more
    Any idea what I am doing wrong here?
    Lukas

    Fixing listener is not enough. Old and lastest code has this for references to ServerPlatform.launchContainerRunnable, which WebSpherePlatform do not override:
    CommandPropagator:
    public void asynchronousPropagateCommand() {
    // The async logic is in the run() method
    rcm.logDebug("async_propagation", (Object[])null);
    this.rcm.getServerPlatform().launchContainerRunnable(this);
    public void propagateCommand(RemoteConnection conn) {
    Object[] arguments = { command.getClass().getName(), conn.getServiceId() };
    rcm.logDebug("propagate_command_to", arguments);
    try {
    // The result will be null on success, and an exception string on failure
    Object result = conn.executeCommand(command);
    if (result != null) {
    // An error occurred executing the remote command
    handleExceptionFromRemoteExecution(conn, (String)result);
    } catch (CommunicationException comEx) {
    // We got a comms exception.
    this.handleCommunicationException(conn, comEx);
    JMSTopicRemoteConnection:
    DiscoveryManager:
    public void startDiscovery() {
    if (rcm.isCommandProcessorASession()) {
    rcm.getCommandProcessor().processCommand(new ProfileDiscoveryStartedCommand());
    // Only start if we are currently stopped
    if (this.isDiscoveryStopped()) {
    this.rcm.getServerPlatform().launchContainerRunnable(this);
    JMSTopicTransportManager:
    public Hashtable getConnectionsToExternalServicesForCommandPropagation() {
    if(this.getConnectionsToExternalServices().isEmpty() && !this.rcm.isStopped()) {
    this.createExternalConnection();
    if(this.localConnection == null) {
    // It's a good time to create localConnection,
    // in a new thread - to return externalConnections promptly.
    this.rcm.getServerPlatform().launchContainerRunnable(new Runnable() {
    public void run() {
    try {
    createLocalConnection();
    } catch (RemoteCommandManagerException ex) {
    // Ignore exception - user had a chance to handle it in createLocalConnection method:
    // for instance to change host url and create a new local connection.
    return super.getConnectionsToExternalServicesForCommandPropagation();
    }

  • Toplink cache coordination

    I'm just getting started on setting up clustered Toplink caches.
    I'm attracted to the JMS option because setting up message brokers on our system also opens up a number of other possibilities, in particular ensuring caches are invalidated following batch updates, arranging for Swing programs to update their displayed data and so on.
    I'd like to hear some experience from people using various message brokers for Toplink cache coordination. Particularly with Toplink web apps under Oracle application server.
    And incidentally, anyone know how to configure cache coordination for old ADF applications where the Toplink stuff is rather well hidden?

    I raised a TAR with Oracle. The short answer is that you can't do cache coordination either with ADF business objects, or with Toplink Essentials (as opposed to Oracle Toplink, which doesn't yet support JPA).

  • Toplink cache coordination problem with opmn lookup

    Dear all,
    We encounter some problems when we use opmn url and jms to realize the toplink cache coordination.
    Scenario:
    1. Using oracle application server 10g, create three processes(jvm) on one oc4j instance
    2. Using oc4j in memory jms server for cache coordination
    3. Using opmn url to lookup jms topic connection factory and connection, opmn url: opmn:ormi://shasudv4:6004:OC4J_TTS/tts
    When we start oc4j instance, we find the log, all the toplink cache coordination properites has been set to toplink framework, and remote command manager has been initialized successfully. All in memory jms server has also been started successfully, there are three listeners on the topic.
    But, when we test the synchronization, the data can't be synchronized between all the processes, two of them is ok, the rest of them has some problem to coordinate with the other two. There are no exceptions, we have set the level of toplink log to 'all'.
    I have checked the thread dump, I find that "HTTPThreadGroup", "RMICallHandler" and "JMSRequestHandler" threads are involved in cache synchronization.
    So, we are obliged to change the opmn url to ormi url, so we can only set a bound for rmi ports of processes, because the ormi port is dynamicly assigned.
    &lt;port id="rmi" range="12405-12407" /&gt;
    This seems ok, and involved thread are: "RMICallHander" and "JMSRequestHandler". But we also concern that we have restricted the port bound of ormi port of every instance.
    Thanks of any advice.

    I raised a TAR with Oracle. The short answer is that you can't do cache coordination either with ADF business objects, or with Toplink Essentials (as opposed to Oracle Toplink, which doesn't yet support JPA).

  • Cache Coordination 10.1.3

    Hi,
    I am using Oracle 10.1.3 and using cache co-ordination using RMC
    here is the sessions.xml where I specify the attributes
    <remote-command>
    <commands>
    <cache-sync>true</cache-sync>
    </commands>
    <transport xsi:type="jms-topic-transport">
    <topic-host-url>ormi://cqteststation:23791/CQM</topic-host-url>
    <topic-connection-factory-name>java:comp/resource/ojmsdemo/TopicConnectionFactories/myTCF</topic-connection-factory-name>
    <topic-name>java:comp/resource/ojmsdemo/Topics/lb_jms_q</topic-name>
    <jndi-naming-service>
    <url>ormi://cqteststation:23791/CQM</url>
    <user-name>oc4jadmin</user-name>
    <password>welcome</password>
    <initial-context-factory-name>com.evermind.server.rmi.RMIInitialContextFactory</initial-context-factory-name>
    </jndi-naming-service>
    </transport>
    </remote-command>
    I get session using the method
    serverSession = (ServerSession) sesionManager.getSession(
    new XMLSessionConfigLoader(),
    "CQMSession",
    getClass().getClassLoader(),
    true,
    false,
    true);
    I get the following exception while the application is started
    java.lang.NullPointerException
         at oracle.toplink.remotecommand.jms.JMSTopicTransportManager.removeLocalConnection(JMSTopicTransportManager.java:284)
         at oracle.toplink.remotecommand.TransportManager.discardConnections(TransportManager.java:402)
         at oracle.toplink.remotecommand.RemoteCommandManager.shutdown(RemoteCommandManager.java:154)
         at oracle.toplink.publicinterface.DatabaseSession.logout(DatabaseSession.java:581)
         at oracle.toplink.threetier.ServerSession.logout(ServerSession.java:604)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(SessionManager.java:361)
         at com.starkey.cqm.dao.PersistenceService.initializeService(PersistenceService.java:73)
         at com.starkey.cqm.bcs.CQMServiceManager.createService(CQMServiceManager.java:68)
         at com.starkey.cqm.web.action.LogonAction.<init>(LogonAction.java:54)
    Has any one got this before?
    Thanks
    Priya

    Hi Priya
    I am trying to set up Cache Synchronization between two applications using JMS. I get the following error
    TopLink Warning]: 2007.10.18 01:53:54.315--ServerSession(723787948)--Thread(Thread[Orion Launcher,5,main])--Local Exception Stack:
    Exception [TOPLINK-22103] (Oracle TopLink - 10g Release 3 (10.1.3.0.0) (Build 060118)): oracle.toplink.exceptions.RemoteCommandManagerException
    Exception Description: Could not look up remote connection under name jms/ICMSTopLinkTopicConnectionFactory with URL ormi://axim19.nysdot.private:23791/ICMSWeb
    Internal Exception: javax.naming.NamingException: Lookup error: java.net.ConnectException: A remote host refused an attempted connect
    operation.; nested exception is:
    java.net.ConnectException: A remote host refused an attempted connect operation. [Root exception is java.net.ConnectException: A remote
      host refused an attempted connect operation.]
    at oracle.toplink.exceptions.RemoteCommandManagerException.errorLookingUpRemoteConnection(RemoteCommandManagerException.java:75)
    at oracle.toplink.remotecommand.jms.JMSTopicTransportManager.getTopicConnectionFactory(JMSTopicTransportManager.java:206)
    at oracle.toplink.remotecommand.jms.JMSTopicTransportManager.createJMSTopicRemoteConnection(JMSTopicTransportManager.java:84)
    at oracle.toplink.remotecommand.jms.JMSTopicTransportManager.createLocalConnection(JMSTopicTransportManager.java:106)
    at oracle.toplink.remotecommand.jms.JMSTopicDiscoveryManager.startDiscovery(JMSTopicDiscoveryManager.java:44)
    at oracle.toplink.remotecommand.RemoteCommandManager.initialize(RemoteCommandManager.java:132)
    at oracle.toplink.publicinterface.DatabaseSession.login(DatabaseSession.java:517)
    at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(SessionManager.java:379)
    at us.ny.state.dot.common.data.toplink.ToplinkDataManagerPeer.<init>(ToplinkDataManagerPeer.java:54)
    I made the following changes to the jms.xml:
    <topic name="ICMS Toplink topic" location="jms/ICMSTopLinkTopic">
    <description>ICMS Toplink topic</description>
    </topic>
    <topic-connection-factory name="ICMS Toplink topicConnectionFactory" location="jms/ICMSTopLinkTopicConnectionFactory">
    </topic-connection-factory>
    My sessions.xml entry looks like this:
    <remote-command>
    <commands>
    <cache-sync>true</cache-sync>
    </commands>
    <transport xsi:type="jms-topic-transport">
    <topic-host-url>ormi://axim19.nysdot.private:23791/ICMSWeb</topic-host-url>
    <topic-connection-factory-name>jms/ICMSTopLinkTopicConnectionFactory</topic-connection-factory-name>
    <topic-name>jms/ICMSTopLinkTopic</topic-name>
    <jndi-naming-service>
    <url>ormi://axim19.nysdot.private:23791/ICMSWeb</url>
    <user-name>adminUser</user-name>
    <password>xxxxxxxxxx</password>
    </jndi-naming-service>
    </transport>
    </remote-command>
    Do you have any idea what could be wrong? I am not very sure about the topic-url I set up? Without cache coordination my application runs on http://axim19.nysdot.private:7782/ICMSWeb, and I set up jms on the same OC4J that hosts my application.
    Any help regarding this is highly appreaciated.
    Thanks
    Swapna

  • Cache coordination in 10.1.3

    Hi,
    I am using toplink cache coordination feature using JMS in version 10.1.3
    My sessions.xml for the cache coordination is given below
    <?xml version="1.0" encoding="UTF-8"?>
    <toplink-sessions version="9.0.4" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <session xsi:type="server-session">
    <name>CQMSession</name>
    <remote-command>
    <commands>
    <cache-sync>true</cache-sync>
    </commands>
    <transport xsi:type="jms-topic-transport">
    <!-- <topic-host-url>ormi://localhost:23791</topic-host-url> -->
    <topic-connection-factory-name>jms/CacheTopicConnectionFactory</topic-connection-factory-name>
    <topic-name>jms/CacheTopic</topic-name>
    <jndi-naming-service>
    <user-name>cqmuser</user-name>
    <password>BB742416276274A46959A54867978929</password>
    </jndi-naming-service>
    </transport>
    </remote-command>
    <event-listener-classes/>
    <logging xsi:type="toplink-log">
    <log-level>severe</log-level>
    </logging>
    I have JMS topic set up in jms.xml
    <!-- topic connection factories -->
    <topic-connection-factory
    location="jms/CacheTopicConnectionFactory"
    username="cqmuser"
    password="password"
    />
    <topic
    name="cache topic"
    location="jms/CacheTopic"
    >
    <description>topic used for cache sync</description>
    </topic>
    When I run the application, I get the exception
    Exception [TOPLINK-22103] (Oracle TopLink - 10g Release 3 (10.1.3.0.0) (Build 060118)): oracle.toplink.exceptions.RemoteCommandManagerException
    Exception Description: Could not look up remote connection under name jms/CacheTopicConnectionFactory with URL ormi://localhost:23791
    Internal Exception: javax.naming.NamingException: Lookup error: javax.naming.AuthenticationException: Not authorized; nested exception is:
         javax.naming.AuthenticationException: Not authorized [Root exception is javax.naming.AuthenticationException: Not authorized]
         at oracle.toplink.exceptions.RemoteCommandManagerException.errorLookingUpRemoteConnection(RemoteCommandManagerException.java:75)
         at oracle.toplink.remotecommand.jms.JMSTopicTransportManager.getTopicConnectionFactory(JMSTopicTransportManager.java:206)
         at oracle.toplink.remotecommand.jms.JMSTopicTransportManager.createJMSTopicRemoteConnection(JMSTopicTransportManager.java:84)
         at oracle.toplink.remotecommand.jms.JMSTopicTransportManager.createLocalConnection(JMSTopicTransportManager.java:106)
         at oracle.toplink.remotecommand.jms.JMSTopicDiscoveryManager.startDiscovery(JMSTopicDiscoveryManager.java:44)
         at oracle.toplink.remotecommand.RemoteCommandManager.initialize(RemoteCommandManager.java:132)
         at oracle.toplink.publicinterface.DatabaseSession.login(DatabaseSession.java:517)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(SessionManager.java:379)
         at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(SessionManager.java:242)
    Any help appreciated.
    Thanks
    Priya

    Hi,
    This issue was resolved . Instead of using a custom user, use oc4jadmin and the password ( default - welcome).
    THanks
    Priya

  • RMI Cache Coordination

    I'm working on getting RMI based cache coordination functioning in my application using Eclipselink 1. I am using the 'INVALIDATE_CHANGED_OBJECTS' annotation and trying to get changed objects to propigate across 2 servers. I am using a function I got from the eclipselink list:
    public void customize(Session session) throws Exception {
    AbstractSession sessionImpl = (AbstractSession) session;
    RemoteCommandManager cm = new RemoteCommandManager(sessionImpl);
    cm.setShouldPropagateAsynchronously(true);
    cm.getDiscoveryManager().setAnnouncementDelay(10);
    cm.getTransportManager().setNamingServiceType(
    TransportManager.REGISTRY_NAMING_SERVICE);
    cm.setUrl("rmi://localhost:8881");
    cm.setServerPlatform(sessionImpl.getServerPlatform());
    sessionImpl.setCommandManager(cm);
    sessionImpl.setShouldPropagateChanges(true);
    cm.initialize();
    try {
    Thread.sleep(2000);
    } catch (Exception ignore) {
    and getting my factories as such:
    emf = Persistence.createEntityManagerFactory(s);
    new RMICacheCoordinationConfig().customize(JpaHelper.getServerSession(emf));
    em = emf.createEntityManager();
    After I make a few calls, I get several stack traces related to RMI I am fairly new to Toplink/Eclipselink and have not done much in the way of RMI.
    Here are the exceptions:
    [EPS Warning]: 2007.11.30 11:02:16.972--ServerSession(31985466)--Thread(Thread[Thread-8,5,main])--Local Exception Stack:
    Exception [EclipseLink-22102] (Eclipse Persistence Services - 1.0M1 (Build 20071105)): org.eclipse.persistence.exceptions.RemoteCommandManagerException
    Exception Description: Could not post connection in local naming service under name rmi://localhost:8881/13598682 Internal Exception: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
    java.net.SocketTimeoutException: Read timed out
    at org.eclipse.persistence.exceptions.RemoteCommandManagerException.errorBindingConnection(RemoteCommandManagerException.java:84)
    at org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.createLocalConnectionInRegistry(RMITransportManager.java:157)
    at org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.createLocalConnection(RMITransportManager.java:110)
    at org.eclipse.persistence.sessions.coordination.DiscoveryManager.run(DiscoveryManager.java:194)
    at java.lang.Thread.run(Thread.java:595)
    Caused by: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
    java.net.SocketTimeoutException: Read timed out
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:273)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:306)
    at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
    at java.rmi.Naming.rebind(Naming.java:160)
    at org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.createLocalConnectionInRegistry(RMITransportManager.java:154)
    ... 3 more
    Caused by: java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
    at java.io.DataInputStream.readByte(DataInputStream.java:241)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:215)
    ... 8 more
    Exception in thread "Thread-8" Local Exception Stack:
    Exception [EclipseLink-22102] (Eclipse Persistence Services - 1.0M1 (Build 20071105)): org.eclipse.persistence.exceptions.RemoteCommandManagerException
    Exception Description: Could not post connection in local naming service under name rmi://localhost:8881/13598682 Internal Exception: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
    java.net.SocketTimeoutException: Read timed out
    at org.eclipse.persistence.exceptions.RemoteCommandManagerException.errorBindingConnection(RemoteCommandManagerException.java:84)
    at org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.createLocalConnectionInRegistry(RMITransportManager.java:157)
    at org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.createLocalConnection(RMITransportManager.java:110)
    at org.eclipse.persistence.sessions.coordination.DiscoveryManager.run(DiscoveryManager.java:194)
    at java.lang.Thread.run(Thread.java:595)
    Caused by: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
    java.net.SocketTimeoutException: Read timed out
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:273)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:306)
    at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
    at java.rmi.Naming.rebind(Naming.java:160)
    at org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.createLocalConnectionInRegistry(RMITransportManager.java:154)
    ... 3 more
    Caused by: java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
    at java.io.DataInputStream.readByte(DataInputStream.java:241)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:215)
    ... 8 more
    [EPS Warning]: 2007.11.30 11:03:17.594--ServerSession(31985466)--Thread(Thread[Finalizer,8,system])--Local Exception Stack:
    Exception [EclipseLink-22107] (Eclipse Persistence Services - 1.0M1 (Build 20071105)): org.eclipse.persistence.exceptions.RemoteCommandManagerException
    Exception Description: Could not remove local connection in local naming service under name rmi://localhost:8881/13598682 Internal Exception: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
    java.net.SocketTimeoutException: Read timed out
    at org.eclipse.persistence.exceptions.RemoteCommandManagerException.errorUnbindingLocalConnection(RemoteCommandManagerException.java:137)
    at org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.removeLocalConnection(RMITransportManager.java:234)
    at org.eclipse.persistence.sessions.coordination.TransportManager.discardConnections(TransportManager.java:432)
    at org.eclipse.persistence.sessions.coordination.RemoteCommandManager.shutdown(RemoteCommandManager.java:179)
    at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.logout(DatabaseSessionImpl.java:718)
    at org.eclipse.persistence.sessions.server.ServerSession.logout(ServerSession.java:625)
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.removeSessionFromGlobalSessionManager(EntityManagerSetupImpl.java:138)
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.undeploy(EntityManagerSetupImpl.java:1286)
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.close(EntityManagerFactoryImpl.java:83)
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.finalize(EntityManagerFactoryImpl.java:137)
    at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
    at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
    at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
    Caused by: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
    java.net.SocketTimeoutException: Read timed out
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:273)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:306)
    at sun.rmi.registry.RegistryImpl_Stub.unbind(Unknown Source)
    at java.rmi.Naming.unbind(Naming.java:135)
    at org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.removeLocalConnection(RMITransportManager.java:226)
    ... 12 more
    Caused by: java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
    at java.io.DataInputStream.readByte(DataInputStream.java:241)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:215)
    ... 17 more

    I'm working on getting RMI based cache coordination functioning in my application using Eclipselink 1. I am using the 'INVALIDATE_CHANGED_OBJECTS' annotation and trying to get changed objects to propigate across 2 servers. I am using a function I got from the eclipselink list:
    public void customize(Session session) throws Exception {
    AbstractSession sessionImpl = (AbstractSession) session;
    RemoteCommandManager cm = new RemoteCommandManager(sessionImpl);
    cm.setShouldPropagateAsynchronously(true);
    cm.getDiscoveryManager().setAnnouncementDelay(10);
    cm.getTransportManager().setNamingServiceType(
    TransportManager.REGISTRY_NAMING_SERVICE);
    cm.setUrl("rmi://localhost:8881");
    cm.setServerPlatform(sessionImpl.getServerPlatform());
    sessionImpl.setCommandManager(cm);
    sessionImpl.setShouldPropagateChanges(true);
    cm.initialize();
    try {
    Thread.sleep(2000);
    } catch (Exception ignore) {
    and getting my factories as such:
    emf = Persistence.createEntityManagerFactory(s);
    new RMICacheCoordinationConfig().customize(JpaHelper.getServerSession(emf));
    em = emf.createEntityManager();
    After I make a few calls, I get several stack traces related to RMI I am fairly new to Toplink/Eclipselink and have not done much in the way of RMI.
    Here are the exceptions:
    [EPS Warning]: 2007.11.30 11:02:16.972--ServerSession(31985466)--Thread(Thread[Thread-8,5,main])--Local Exception Stack:
    Exception [EclipseLink-22102] (Eclipse Persistence Services - 1.0M1 (Build 20071105)): org.eclipse.persistence.exceptions.RemoteCommandManagerException
    Exception Description: Could not post connection in local naming service under name rmi://localhost:8881/13598682 Internal Exception: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
    java.net.SocketTimeoutException: Read timed out
    at org.eclipse.persistence.exceptions.RemoteCommandManagerException.errorBindingConnection(RemoteCommandManagerException.java:84)
    at org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.createLocalConnectionInRegistry(RMITransportManager.java:157)
    at org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.createLocalConnection(RMITransportManager.java:110)
    at org.eclipse.persistence.sessions.coordination.DiscoveryManager.run(DiscoveryManager.java:194)
    at java.lang.Thread.run(Thread.java:595)
    Caused by: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
    java.net.SocketTimeoutException: Read timed out
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:273)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:306)
    at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
    at java.rmi.Naming.rebind(Naming.java:160)
    at org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.createLocalConnectionInRegistry(RMITransportManager.java:154)
    ... 3 more
    Caused by: java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
    at java.io.DataInputStream.readByte(DataInputStream.java:241)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:215)
    ... 8 more
    Exception in thread "Thread-8" Local Exception Stack:
    Exception [EclipseLink-22102] (Eclipse Persistence Services - 1.0M1 (Build 20071105)): org.eclipse.persistence.exceptions.RemoteCommandManagerException
    Exception Description: Could not post connection in local naming service under name rmi://localhost:8881/13598682 Internal Exception: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
    java.net.SocketTimeoutException: Read timed out
    at org.eclipse.persistence.exceptions.RemoteCommandManagerException.errorBindingConnection(RemoteCommandManagerException.java:84)
    at org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.createLocalConnectionInRegistry(RMITransportManager.java:157)
    at org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.createLocalConnection(RMITransportManager.java:110)
    at org.eclipse.persistence.sessions.coordination.DiscoveryManager.run(DiscoveryManager.java:194)
    at java.lang.Thread.run(Thread.java:595)
    Caused by: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
    java.net.SocketTimeoutException: Read timed out
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:273)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:306)
    at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
    at java.rmi.Naming.rebind(Naming.java:160)
    at org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.createLocalConnectionInRegistry(RMITransportManager.java:154)
    ... 3 more
    Caused by: java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
    at java.io.DataInputStream.readByte(DataInputStream.java:241)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:215)
    ... 8 more
    [EPS Warning]: 2007.11.30 11:03:17.594--ServerSession(31985466)--Thread(Thread[Finalizer,8,system])--Local Exception Stack:
    Exception [EclipseLink-22107] (Eclipse Persistence Services - 1.0M1 (Build 20071105)): org.eclipse.persistence.exceptions.RemoteCommandManagerException
    Exception Description: Could not remove local connection in local naming service under name rmi://localhost:8881/13598682 Internal Exception: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
    java.net.SocketTimeoutException: Read timed out
    at org.eclipse.persistence.exceptions.RemoteCommandManagerException.errorUnbindingLocalConnection(RemoteCommandManagerException.java:137)
    at org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.removeLocalConnection(RMITransportManager.java:234)
    at org.eclipse.persistence.sessions.coordination.TransportManager.discardConnections(TransportManager.java:432)
    at org.eclipse.persistence.sessions.coordination.RemoteCommandManager.shutdown(RemoteCommandManager.java:179)
    at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.logout(DatabaseSessionImpl.java:718)
    at org.eclipse.persistence.sessions.server.ServerSession.logout(ServerSession.java:625)
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.removeSessionFromGlobalSessionManager(EntityManagerSetupImpl.java:138)
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.undeploy(EntityManagerSetupImpl.java:1286)
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.close(EntityManagerFactoryImpl.java:83)
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.finalize(EntityManagerFactoryImpl.java:137)
    at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
    at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
    at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
    Caused by: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
    java.net.SocketTimeoutException: Read timed out
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:273)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:306)
    at sun.rmi.registry.RegistryImpl_Stub.unbind(Unknown Source)
    at java.rmi.Naming.unbind(Naming.java:135)
    at org.eclipse.persistence.sessions.coordination.rmi.RMITransportManager.removeLocalConnection(RMITransportManager.java:226)
    ... 12 more
    Caused by: java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
    at java.io.DataInputStream.readByte(DataInputStream.java:241)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:215)
    ... 17 more

  • Toplink in Cluster without Cache Synchronization

    Hello,
    I’m trying to setup my J2EE app that uses Toplink for its persistence in a 9iAS cluster. For the first release I’m not planning to use Toplink Cache synchronization but planning to deploy the app in 9iAS cluster of nodes say A and B. By default all the requests goes to one app server (say A) in the cluster. When the app in node A goes down app in node B starts and accepts all the requests transparently. For this scenario:
    1.     Do I need to use any Toplink feature/API?
    2.     What design considerations I need to consider for my app so that I can achieve my short-term goal and the long-term goal of implementing Cache synchronization easily?
    Any references/pointers would help me.
    Thanks
    -Mani

    TopLink Cache Coordination (Synchronization) can be enabled at any point during your development. And is not required on a system running in a cluster. No special TopLink API's are required when running in the cluster.
    There should be no design decisions made now that would affect the use of Cache Coordination (Synchronization) in the future.
    --Gordon

  • Toplink 10.1.3 Cache Synchronization

    Our application is hosted on a vertical and horizontal cluster.
    Server1 has 2 JVMs JVM1 and JVM2
    Server2 has 2 JVMs JVM3 and JVM4
    I have set cache coordination in a pre login Even Listener, the code to do it is -
    RemoteCommandManager rcm =
    new RemoteCommandManager((ServerSession)dbSession);
    dbSession.setCommandManager(rcm);
    dbSession.setShouldPropagateChanges(true);
    rcm.getTransportManager().setNamingServiceType(
    TransportManager.REGISTRY_NAMING_SERVICE);
    rcm.setUrl("rmi://" + hostNamePort);
    rcm.getTransportManager().setShouldRemoveConnectionOnError(true);
    rcm.initialize();
    On each server start up I get the Toplink messages -
    RCM service announcement received from Service[TopLinkCommandChannel, 744238172, rmi://xx.xx.xx.xxx:xxxx]
    RCM service announcement sent out to cluster
    RCM Discovery Manager active
    What is happening is that JVM1 and JVM2 send each other updates as do JVM3 and JVM4
    But 1 and 2 both do not talk to either 3 or 4, or the other way around, so in other words each servers cluster can talk to each other but cannot talk to the other server.
    Can anyone point out what I am doing wrong? Any feedback is highly appreciated.
    Thanks

    Our application is hosted on a vertical and horizontal cluster.
    Server1 has 2 JVMs JVM1 and JVM2
    Server2 has 2 JVMs JVM3 and JVM4
    I have set cache coordination in a pre login Even Listener, the code to do it is -
    RemoteCommandManager rcm =
    new RemoteCommandManager((ServerSession)dbSession);
    dbSession.setCommandManager(rcm);
    dbSession.setShouldPropagateChanges(true);
    rcm.getTransportManager().setNamingServiceType(
    TransportManager.REGISTRY_NAMING_SERVICE);
    rcm.setUrl("rmi://" + hostNamePort);
    rcm.getTransportManager().setShouldRemoveConnectionOnError(true);
    rcm.initialize();
    On each server start up I get the Toplink messages -
    RCM service announcement received from Service[TopLinkCommandChannel, 744238172, rmi://xx.xx.xx.xxx:xxxx]
    RCM service announcement sent out to cluster
    RCM Discovery Manager active
    What is happening is that JVM1 and JVM2 send each other updates as do JVM3 and JVM4
    But 1 and 2 both do not talk to either 3 or 4, or the other way around, so in other words each servers cluster can talk to each other but cannot talk to the other server.
    Can anyone point out what I am doing wrong? Any feedback is highly appreciated.
    Thanks

Maybe you are looking for


HashFlare