Cache Synchronization Exception Handling

I am setting up cache synchronization on WebLogic using JMS. I am looking into writing an exception handler to handle cache synchronization exceptions. The following statement in the documentation caught my attention:
“As mentioned above, the TopLink cache does not begin the merge or update process until the database transaction has already been committed. This is quite beneficial in that it avoids letting uncommitted data into the shared cache, but should be recognized where transactional synchronization is considered. In cases where a merge may have failed there is no way to roll back the changes made to the database (although it is questionable whether this would be a good idea in any case). As a consequence, failures during remote merging can leave the cache in an inconsistent state. This makes it important to handle any errors that occur by performing cache normalization actions, such as resetting the cache, or even the server.”
Suppose we have two app server instances, A and B. Instance A commits a change and sends the update notification to instance B. The merge fails on instance B with an optimistic lock exception.
- I assume that a CacheSynchronizationException will be thrown. Will it be thrown on instance A, B, or both?
- At this point which cache is inconsistent; A, B, or both?
- The documentation suggests resetting the cache, but this seems a rather severe way of dealing with the problem. Is it feasible / effective to just refresh the objects in the change set of the CacheSynchronizationException?
This is a simple exception handler. On receiving a CacheSynchronizationException it resets the cache and re-throws the exception.
class ToplinkExceptionHandler implements ExceptionHandler{
     public Object handleException(RuntimeException exception) throws DatabaseException{
          if(exception instanceof CacheSynchronizationException){){
               myServerSession.initializeAllIdentityMaps();
               throw exception;
          }else{
               throw exception;
- Is this approach effective?
- Once the cache is reset should the exception be re-thrown or should I consider it handled and swallow it? If I do swallow it what should the method return?
Any advice would be appreciated.

I had to fix a few errors (in our code) before getting it working. Since I have multiple sessions, I had to specify different multicast ports (actually I used a different multicast address itself) for each of the sessions. I was not setting the announcement delay on one of the sesssions and that was why it was announcing immediately upon coming up. Also I had to explicitly set asynchronous to false because it is true by default.
BTW, we are not using CMP (entity beans) rather Java Objects. Our deployment has two Apache/Tomcat machines and two WebLogic machines. The WebLogic servers are in a round-robin cluster. The cache synchronization seems to be working fine for this configuration.
Thanks.
Anand R

Similar Messages

  • Cache synchronization exception

    I am getting following exception, while trying to synchronize cache. Any Ideas ?
    Thanks in advance,
    Moin
    04/12/22 18:42:22 onMessage
    Local Exception Stack:
    Exception [TOPLINK-18001] (OracleAS TopLink - 10g (9.0.4.2) (Build 040311)): oracle.toplink.exceptions.JMSProcessingException
    Exception Description: Error while processing incomming JMS message
    Internal Exception: javax.jms.JMSException: getObject
         at oracle.toplink.exceptions.JMSProcessingException.buildDefault(JMSProcessingException.java:18)
         at oracle.toplink.remote.jms.TopLinkMessageListener.onMessage(TopLinkMessageListener.java:58)
         at com.evermind.server.jms.EvermindSession.doListener(EvermindSession.java:1326)
         at com.evermind.server.jms.EvermindSession.handleMessage(EvermindSession.java:1142)
         at com.evermind.server.jms.EvermindMessageConsumer.handleMessage(EvermindMessageConsumer.java:445)
         at com.evermind.server.jms.EvermindMessageConsumer.access$300(EvermindMessageConsumer.java:40)
         at com.evermind.server.jms.EvermindMessageConsumer$1.run(EvermindMessageConsumer.java:399)
         at java.lang.Thread.run(Unknown Source)

    Is there any more information on the Internal JMS Exception? Potentially printed out in another part of the stack trace?
    --Gordon                                                                                                                                                                                                                                                                       

  • Error handling for distributed cache synchronization

    Hello,
    Can somebody explain to me how the error handling works for the distributed cache synchronization ?
    Say I have four nodes of a weblogic cluster and 4 different sessions on each one of those nodes.
    On Node A an update happens on object B. This update is going to be propogated to all the other nodes B, C, D. But for some reason the connection between node A and node B is lost.
    In the following xml
    <cache-synchronization-manager>
    <clustering-service>...</clustering-service>
    <should-remove-connection-on-error>true</should-remove-connection-on-error>
    If I set this to true does this mean that the Toplink will stop sending updates from node A to node B ? I presume all of this is transparent. In order to handle any errors I do not have to write any code to capture this kind of error .
    Is that correct ?
    Aswin.

    This "should-remove-connection-on-error" option mainly applies to RMI or RMI_IIOP cache synchronization. If you use JMS for cache synchronization, then connectivity and error handling is provided by the JMS service.
    For RMI, when this is set to true (which is the default) if a communication exception occurs in sending the cache synchronization to a server, that server will be removed and no longer synchronized with. The assumption is that the server has gone down, and when it comes back up it will rejoin the cluster and reconnect to this server and resume synchronization. Since it will have an empty cache when it starts back up, it will not have missed anything.
    You do not have to perform any error handling, however if you wish to handle cache synchronization errors you can use a TopLink Session ExceptionHandler. Any cache synchronization errors will be sent to the session's exception handler and allow it to handle the error or be notified of the error. Any errors will also be logged to the TopLink session's log.

  • JMS Exception during cache synchronization

    Hi,
    I am using JMS cache synchronization fro two applications . During cache synchronization I got this exception
    Local Exception Stack:
    Exception [TOPLINK-0] (OracleAS TopLink - 10g (9.0.4.5) (Build 040930)): oracle.toplink.exceptions.CommunicationException
    Exception Description: javax.jms.JMSException: enqMessage at oracle.toplink.remote.jms.JMSConnection.processCommand(JMSConnection.java:54) at oracle.toplink.internal.remote.ChangeSetPropagator$1.run(ChangeSetPropagator.java:64)
    Has this something to do with the message size ?
    Appreciate any help.
    Thanks
    Priya

    would not expect TopLink to connect twice at all. Is it possible that another service from within the ApplicationServer is connecting? I would recommend changing the JNDI location or the service port of the TIBCO JMS service and altering the TopLink JMS Clustering Service URL to reflect this change. Then verify that multiple connections are still being acquired.
    --Gordon

  • Exception [TOPLINK-18001] (Cache synchronization)

    Hi,
    While trying to turn on cache synchronization, getting this exception (see below).
    What could be wrong?
    Interne Exception: weblogic.jms.common.JMSException: Error deserializing objec
         at oracle.toplink.exceptions.JMSProcessingException.buildDefault(JMSProcessingException.java:20
         at oracle.toplink.remote.jms.TopLinkMessageListener.onMessage(TopLinkMessageListener.java:60
         at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2596
         at weblogic.jms.client.JMSSession.execute(JMSSession.java:2516
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197
         at weblogic.kernel.Kernel.execute(Kernel.java:336
         at weblogic.kernel.Kernel.execute(Kernel.java:360
         at weblogic.kernel.Kernel.execute(Kernel.java:348
         at weblogic.jms.client.JMSSession.pushMessage(JMSSession.java:2392
         at weblogic.jms.client.JMSSession.invoke(JMSSession.java:2919
         at weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:609
         at weblogic.jms.dispatcher.DispatcherImpl.dispatchAsyncInternal(DispatcherImpl.java:128
         at weblogic.jms.dispatcher.DispatcherImpl.dispatchOneWay(DispatcherImpl.java:312
         at weblogic.jms.dispatcher.DispatcherImpl_WLSkel.invoke(Unknown Source
         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:466
         at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:409
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:353
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144
         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:404
         at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170
    Please help!
    THX.

    Hi Gordon,
    Sorry i don't know what class.
    The Excpetion string don't give more information
    BEA-040368 14.06.2005 14.36 Uhr IRST Error JMS The following exception has occurred:
    Lokaler Exception-Stack:
    Exception [TOPLINK-18001] (OracleAS TopLink - 10g (9.0.4.5) (Build 040930)): oracle.toplink.exceptions.JMSProcessingExceptio
    Exception-Beschreibung: Fehler bei der Verarbeitung von ankommender JMS-Meldun
    Interne Exception: weblogic.jms.common.JMSException: Error deserializing objec
         at oracle.toplink.exceptions.JMSProcessingException.buildDefault(JMSProcessingException.java:20
         at oracle.toplink.remote.jms.TopLinkMessageListener.onMessage(TopLinkMessageListener.java:60
         at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2596
         at weblogic.jms.client.JMSSession.execute(JMSSession.java:2516
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197
         at weblogic.kernel.Kernel.execute(Kernel.java:336
         at weblogic.kernel.Kernel.execute(Kernel.java:360
         at weblogic.kernel.Kernel.execute(Kernel.java:348
         at weblogic.jms.client.JMSSession.pushMessage(JMSSession.java:2392
         at weblogic.jms.client.JMSSession.invoke(JMSSession.java:2919
         at weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:609
         at weblogic.jms.dispatcher.DispatcherImpl.dispatchAsyncInternal(DispatcherImpl.java:128
         at weblogic.jms.dispatcher.DispatcherImpl.dispatchOneWay(DispatcherImpl.java:312
         at weblogic.jms.dispatcher.DispatcherImpl_WLSkel.invoke(Unknown Source
         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:466
         at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:409
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:353
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144
         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:404
         at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170
    >

  • It takes long time to invoke the Exception handler code

    In our setup there is firewall between the Appserver that is using toplink and the database.The firewall terminates idle connection on any port if the connection is idle for 1 hr.So i have implemented an exception handler to reconnect when the connection is broken.The code works fine but It takes 15 mins for the exception handler code to be invoked.
    The database is Oracle and the driver is thin driver,OS is solaris.No external connection pool
    I had registered the exceptionhandler to the serversession,should i register it with each ClientSession?

    yes ,15 mins is the time taken before the server session's exception handler code is invoked.
    The following is the exception handler code on the sever session.Any thing wrong?
    server.setExceptionHandler(new ExceptionHandler()
    public Object handleException(RuntimeException ex)
    {//This method is executed only after 15 min ,if the connection is broken
    String mess=ex.getMessage();
    System.out.println("In handler excep mess is "+mess);
    if ((ex instanceof DatabaseException) && (mess.equals("connection reset by peer.")||(mess.indexOf("IOException :Broken pipe")!=-1)))
    DatabaseException dbex = (DatabaseException) ex;
    dbex.getAccessor().reestablishConnection (dbex.getSession());
    return dbex.getSession().executeQuery(dbex.getQuery());
    return null;
    What could be wrong ?
    I tried Oracle's connection cache Impl created a connection pool using the same thin driver and on the same env.SQLException is thrown immediately on using the broken connection.so I feel the driver is not causing any problem.
    Is there any way in toplink to keep the connections active?or Is there any way to poll all connections in the connection pool and check If they are connected instead of waiting until the exception gets thrown and handle it?

  • How does the exception handling work ?

    Hello,
    the reason why I ask this is the following behaviour:
    I declared a customized DCErrorHandlerImpl in my application. Here I'm able to see some exceptions but not all, e.g.the following:
    In the constructor of a managed bean I entered a statement to create an exception:
    int i = 1/0;
    which will cause an arithmetic exception of course, when the managed bean would be created (which is not based on the exception).
    But I don't get this exception in my customized DCErrorHandlerImpl. Why not ? Where can I find more about how all this fits together?
    Many thanks in advance.
    Best regards
    Martin

    DCErrorHandler (as the "DC" part of the name implies) only handles exceptions from the binding layer (aka Data Controls). [url http://docs.oracle.com/cd/E17904_01/apirefs.1111/e10653/oracle/adf/model/binding/DCErrorHandlerImpl.html]The javadocs say this:
    This handler caches the exception in the bindingContainer and then...JOhn

  • Exception Handling & Error Recovery

    Does the Pre8 Development Team plan to release a version that can recover from exceptions & retry problematic clips on long movie builds?
    Many hours spent multiple times to find an unrecoverable error has terminated a movie build is getting to me - not to mention unexpected crashes.
    It would seem the process could be setting recovery points to go back to in the event of an exception so happily conformed and rendered parts do not have to be continually rebuilt. The exception handling could be hierarchical, with local level retries a number of times, then if that fails, going back to a well defined restart point. Even media reloads could be accommodated, happily conformed clips could be cached, and even spare copies put aside.
    The number of unspecified errors indicates that not a great deal of care has gone into the exception hadling scheme to date.
    More meaningful messages might help users - for example, say a particular clip took many gos to fully conform, it is likely quite flakey and then the advice might be that it should be reloaded or even remade...
    The dumps after crashes clearly do not yet include the stack of recent actions that are used to undo things - maybe they should.
    The name of a media clip in hand, what the latest action is aiming to do with it (say add a particular effect), should all be reported in plain text and also sent in the dump. A message could be canned, just in case, at the commencement of each and every action at the point when the logic can construe what that action is to be exactly.
    I am also not confifent that interrupts and premptions are carefully managed... too often asyncronous events and system requests coincide with a crash. Think McAfee, Norton, etc.
    Just some suggestions, but the product is almost unusable as it stands other than for raising the blood pressure of countless hapless users.
    AdelaidePeter

    As this is a user-to-user forum, none of us is in a position to know what plans might be in the works.
    You might want to file a Feature Request with Adobe. They take these seriously.
    Good luck,
    Hunt

  • Regarding Exception handling in Coherence

    Hi ,
    I am using c++ to connecting coherence
    try{
    String::Handle gridHandleCache = GridCacheName;
    if(hCommCache == NULL) {
    hCommCache = CacheFactory::getCache(gridHandleCache);
    else {
    //cout<<"Info :"<<GridCacheName<<" Cache Already in Active State " <<endl;
    catch(Exception::Handle vex) {
    cout<<" coherence exe" ;
    catch(std::exception e) {
    cout<<e.what();
    catch(...) {
    cout <<"unknown exception" ;
    When the error occurred (either runtime or other errors) i am always getting unname exception . it never enter into the Exception::Handle vex part.
    when it will invoke catch(Exception::Handle vex) {. I want to separate runtime and connection error ecpetion sepeartyely.
    May i know what would be the cause / or how to handle it seperately .
    What are the errors are possible for connect / put/get/invoke(touchprocessor) . serializable cast ?
    -Thanks
    Edited by: 882600 on Aug 31, 2011 5:51 AM

    Hi,
    Still i have one issue
    if i use RuntimeException::view or illegalArgumentException::view
    catch(RuntimeException::view vex)
    here i want to print string error message like
    vseterror("%s",vex.getDescription() ) ; instead of cout<<vex
    Is there any solution to print the error from view obj like e.what() char * / string type message ?
    Is thie poisble to classify Confiuration error / Fatal error exceptions ?
    Edited by: 882600 on Sep 6, 2011 12:57 PM
    Edited by: 882600 on Sep 6, 2011 1:25 PM

  • 10.1.3 JMS Cache Synchronization on OC4J

    Hi,
    We're using stand-alone OC4j 10.1.3.0 along with TopLink 10.1.3.0 (packaged with OC4j). In enabling JMS cache synchronization, I get the following error message:
    Exception [TOPLINK-12000] (Oracle TopLink - 10g Release 3 (10.1.3.0.0) (Build 060118)): oracle.toplink.exceptions.CommunicationException
    Exception Description: Error Sending connection service to jms/Topic/ToplinkCacheSync.
    Internal Exception: javax.jms.JMSException: TopicSubscriber[Oc4jJMS.Consumer.arkansas.6e2ec2b0:1117159d1ca:-7fff.65,Topic[ToplinkCacheSync],null,null,false]: cannot invoke method "setMessageListener" within the J2EE container.
    at oracle.toplink.exceptions.CommunicationException.errorSendingConnectionService(CommunicationException.java:40)
    at oracle.toplink.remote.CacheSynchronizationManager.addRemoteConnection(CacheSynchronizationManager.java:175)
    at oracle.toplink.remote.jms.JMSClusteringService.retreiveRemoteSessions(JMSClusteringService.java:198)
    at oracle.toplink.remote.jms.JMSClusteringService.run(JMSClusteringService.java:175)
    Caused by: javax.jms.JMSException: TopicSubscriber[Oc4jJMS.Consumer.arkansas.6e2ec2b0:1117159d1ca:-7fff.65,Topic[ToplinkCacheSync],null,null,false]: cannot invoke method "setMessageListener" within the J2EE container.
    at com.evermind.server.jms.JMSUtils.make(JMSUtils.java:1034)
    at com.evermind.server.jms.JMSUtils.toJMSException(JMSUtils.java:1114)
    at com.evermind.server.jms.JMSUtils.toJMSException(JMSUtils.java:1085)
    at com.evermind.server.jms.JMSUtils.assertNotContainer(JMSUtils.java:1500)
    at com.evermind.server.jms.EvermindMessageConsumer.setMessageListener(EvermindMessageConsumer.java:217)
    at oracle.toplink.remote.jms.JMSClusteringService.connectBackToRemote(JMSClusteringService.java:53)
    at oracle.toplink.remote.CacheSynchronizationManager.addRemoteConnection(CacheSynchronizationManager.java:168)
    ... 2 more
    It is, therefore, my assumption that Toplink is using JMS 1.0.2b while OC4J is using JMS 1.1. Who can:
    1) Verify or debunk my assumption?
    2) Point me to a work-around?
    Perhaps my config is incorrect? Here's a sessions.xml snippet, in case it helps:
    <cache-synchronization-manager>
    <clustering-service xsi:type="jms-clustering">
    <naming-service-url>ormi://localhost:23791/ems</naming-service-url>
    <jndi-user-name>oc4jadmin</jndi-user-name>
    <jndi-password>oc4j</jndi-password>
    <naming-service-initial-context-factory-name>com.evermind.server.rmi.RMIInitialContextFactory</naming-service-initial-context-factory-name>
    <jms-topic-connection-factory-name>jms/Topic/ToplinkCacheSyncConnectionFactory</jms-topic-connection-factory-name>
    <jms-topic-name>jms/Topic/ToplinkCacheSync</jms-topic-name>
    </clustering-service>
    <remove-connection-on-error>false</remove-connection-on-error>
    </cache-synchronization-manager>
    Many thanks in advance,
    --Todd                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    Thank you very much for your contribution! Yes, indeed, that was my main issue. A sessions.xml section that looks like the following (instead of the <cache-synchronization-manager> section above) does fix the problem:
    <remote-command>
    <commands>
    <cache-sync>true</cache-sync>
    </commands>
    <transport xsi:type="jms-topic-transport">
    <topic-host-url>ormi://localhost:23791/ems</topic-host-url>
    <topic-connection-factory-name>jms/Topic/ToplinkCacheSyncConnectionFactory</topic-connection-factory-name>
    <topic-name>jms/Topic/ToplinkCacheSync</topic-name>
    <jndi-naming-service>
    <user-name>oc4jadmin</user-name>
    <password>oc4j</password>
    <initial-context-factory-name>com.evermind.server.rmi.RMIInitialContextFactory</initial-context-factory-name>
    </jndi-naming-service>
    </transport>
    </remote-command>
    Thanks again,
    --Todd                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Distributed Cache Synchronization

    I'm trying to implement distributed cache synchronization via RMI but I find the documentation to be very limited on how to do this. I'm doing exactly what the documentation says and I end up with a CommunicationException when trying to connect to the pre-existing session. The toplink docs are not very descriptive about the cause or meaning of CommunicationException.
    Also, this is in toplink 3.6 which I know is old, but comparing it with the new oracle versions the requirements for DCS are almost identical.
    Here is the code I'm trying to use:
              RMIRemoteSessionController controller = (RMIRemoteSessionController)Naming.lookup(registryName);
              RemoteConnection connection = new RMIConnection(controller);
              CacheSynchronizationManager syncMgr = new CacheSynchronizationManager();
              serverSession.setCacheSynchronizationManager(syncMgr);
              serverSession.getCacheSynchronizationManager().addRemoteConnection(connection);
    Here is the stack trace I'm seeing:
    18:53:01,146 DEBUG OEDataEntry - OEDataEntry - - EXCEPTION [TOPLINK-0] (3.6.2 JDK1.2): TOPLink.Public.Remote.CommunicationException
    18:53:01,146 DEBUG OEDataEntry - OEDataEntry - - EXCEPTION DESCRIPTION: Error Sending connection service to
    18:53:01,156 DEBUG OEDataEntry - OEDataEntry - - INTERNAL EXCEPTION: java.lang.ClassCastException
    18:53:01,166 DEBUG OEDataEntry - OEDataEntry - -      at TOPLink.Public.Remote.CacheSynchronizationManager.addRemoteConnectionForSynchronization(CacheSynchronizationManager.java:84)
    18:53:01,166 DEBUG OEDataEntry - OEDataEntry - -      at TOPLink.Public.Remote.CacheSynchronizationManager.addRemoteConnection(CacheSynchronizationManager.java:68)

    Also, if someone could provide me with a complete example of how to implement distributed cache synchronization via RMI that would be helpful too, the docs are very sparse on this.
    Basically what I'm trying to do is this: I have a web application that uses toplink to connect to a database. I have a separate application that also uses toplink to connecto the database that runs outside the application. The external app can update tables that the web application uses, I would like the web application to have it's cache updated when the external app changes something in those tables. It is my understanding that this is what distributed cache synchronization is for. How do I use it?

  • Cache propagation exception

    Hi,
    We have a series of batch components that initialize toplink session, make some data reads/writes and then destroy that session. We noticed that when the session is in the process of being shut down right after it committed some changes to the database, we receive the exception below. Our theory is that the cache synchronization mechanism that is running in a separate thread simply does not have enough time to finish its job when it gets interrupted by the VM shutdown. The way we inclined to remedy this and make sure all database changes that are made by this toplink session get properly propagated is to put a 3-5 second delay before SessionManager.getManager().destroySession is called, but I was wondering if this issue is a know one, and has a cleaner solution.
    We use toplink 9.0.4.5 with JMS cache synchronization mechanism configured.
    Thanks,
    Roman
    UnitOfWork(6879888)--end unit of work commit
    UnitOfWork(6879888)--release unit of work
    ServerSession(33459432)--Exception [TOPLINK-0] (OracleAS TopLink - 10g (9.0.4.5) (Build 040930)): oracle.toplink.exceptions.CommunicationException
    Exception Description: javax.jms.IllegalStateException: Producer is closedLocal Exception Stack:
    Exception [TOPLINK-0] (OracleAS TopLink - 10g (9.0.4.5) (Build 040930)): oracle.toplink.exceptions.CommunicationException
    Exception Description: javax.jms.IllegalStateException: Producer is closed
         at oracle.toplink.remote.jms.JMSConnection.processCommand(JMSConnection.java:54)
         at oracle.toplink.internal.remote.ChangeSetPropagator$1.run(ChangeSetPropagator.java:64)
    ServerSession(33459432)--Connection(13948523)--disconnect
    ServerSession(33459432)--failed_to_propogate_to (There is no English translation for this message.)
    ServerSession(33459432)--initialize identitymaps
    ServerSession(33459432)--Connection(13948523)--disconnect
    ServerSession(33459432)--Connection(27766975)--disconnect
    ServerSession(33459432)--Connection(2102960)--disconnect
    ServerSession(33459432)--Connection(30587319)--disconnect
    ServerSession(33459432)--Connection(12954112)--disconnect
    ServerSession(33459432)--Connection(11681042)--disconnect
    ServerSession(33459432)--Connection(27003862)--disconnect
    ServerSession(33459432)--Connection(10668)--disconnect
    ServerSession(33459432)--Connection(16954038)--disconnect
    ServerSession(33459432)--Connection(31561261)--disconnect
    ServerSession(33459432)--Connection(14898956)--disconnect
    ServerSession(33459432)--Connection(26373776)--disconnect

    In order for cache coordination to function properly the sessions involved must have the same name, set of persistent objects with identical descriptors and mappings.
    The change sets are built based on the descriptors and mappings in the source node and the complete set of object's descriptors and mappings involved in the change must be available in the target node.
    Doug

  • Toplink Cache sync Exception

    Hi,
    I am using two applications in two App servers A and B using App server JMS for
    cache synchronization.
    I have the JMS topic set up in App server A. Both the applications use this
    Topic for cache synchronization.
    Cache synchronization works fine for sometime and then we get the following
    exception
    2006-07-17 07:08:34,020 FATAL [Thread-12203]
    com.starkey.cqm.dao.PersistenceService(103) TOPLINK CACHE SYNCHRONIZATION
    ERROR - Distributed caches may be out of synch!
    Local Exception Stack:
    Exception [TOPLINK-0] (OracleAS TopLink - 10g (9.0.4.5) (Build 040930)):
    oracle.toplink.exceptions.CommunicationExceptionException Description: javax.jms.JMSException: javax.jms.JMSException:
    storeMessage(ID:Oc4jJMS.Message.clipper.starkey.com.df1832:10c77c581c3:-8000.606
    0,null)
    at com.evermind.server.jms.JMSUtils.makeJMSException(JMSUtils.java:1843)
    at com.evermind.server.jms.JMSUtils.toJMSException(JMSUtils.java:1859)
    at com.evermind.server.jms.ServerStore.storeMessage(ServerStore.java:757)
    at com.evermind.server.jms.ServerStore.enq(ServerStore.java:157)
    at com.evermind.server.jms.ServerTopic.enq(ServerTopic.java:464)
    at com.evermind.server.jms.ServerTopic.enq(ServerTopic.java:97)
    at com.evermind.server.jms.JMSProvider.enqMessage(JMSProvider.java:574)
    at
    com.evermind.server.jms.JMSRequestHandler.handleVoidCmd(JMSRequestHandler.java:4
    85)
    at
    com.evermind.server.jms.JMSRequestHandler.doOneCommand(JMSRequestHandler.java:35
    9)
    at com.evermind.server.jms.JMSRequestHandler.run(JMSRequestHandler.java:151)
    at
    com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResour
    cePooledExecutor.java:192)
    at java.lang.Thread.run(Thread.java:534)
    at
    oracle.toplink.remote.jms.JMSConnection.processCommand(JMSConnection.java:54)
    at
    oracle.toplink.internal.remote.ChangeSetPropagator$1.run(ChangeSetPropagator.jav
    a:64)
    Has any one got this excxeption before ?
    Thanks
    Priya

    Include this information with your support requestof Cache communication Error.
    Doug

  • Steam hangs on "Installing breakpad exception handler..."

    For a while now whenever I run "steam", I get the following:
    Running Steam on arch rolling 64-bit
    STEAM_RUNTIME is enabled automatically
    Installing breakpad exception handler for appid(steam)/version(0_client)
    It then hangs there indefinitely. For the record, it always says "appid(steam)/version(0_client)", never "appid(steam)/version($x_client)", where $x is some natural number greater than 0.
    I seem to get this regardless of how I launch steam. I've tried disabling STEAM_RUNTIME, I've tried seeing what strace would turn up (if you want me to post the output of "strace steam", I can), and I've also tried deleting the cache and even completely wiping steam off my machine and re-installing it fresh. Nothing seems to work. I'm pretty sure I've installed all the lib32 packages required - in fact, I don't think Steam is even reaching the point where it checks those dependencies. I'm really not sure where to go from here as Steam is not officially supported on Arch, the documentation is sparse, and yet I've gotten Steam to work on my machine about a year ago under an earlier version of my current setup.
    Any thoughts?

    Not sure what I'm looking for, it appears like it has all its dependencies.
    $ ldd ~/.steam/bin/steam
    linux-gate.so.1 (0xf77a5000)
    libX11.so.6 => /usr/lib32/libX11.so.6 (0xf7635000)
    librt.so.1 => /usr/lib32/librt.so.1 (0xf762c000)
    libm.so.6 => /usr/lib32/libm.so.6 (0xf75e6000)
    libdl.so.2 => /usr/lib32/libdl.so.2 (0xf75e1000)
    libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf74f7000)
    libpthread.so.0 => /usr/lib32/libpthread.so.0 (0xf74db000)
    libc.so.6 => /usr/lib32/libc.so.6 (0xf732e000)
    libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf730b000)
    /lib/ld-linux.so.2 (0xf77a6000)
    libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf72f1000)
    libXau.so.6 => /usr/lib32/libXau.so.6 (0xf72ec000)
    libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf72e5000)
    I tried completely removing steam from my system. When I re-installed it and launched it again, it gave me the license agreement and then got hung up on the same "appid(steam)/version(0_client)" as before.

  • Cache Synchronization initialization failure

    Hello,
    I am trying to implement RMI cache synchronization from sessions.xml. Below is a portion of the XML.
    <cache-synchronization-manager>
    <clustering-service>oracle.toplink.remote.rmi.RMIClusteringService</clustering-service>
    <is-asynchronous>true</is-asynchronous>
    <should-remove-connection-on-error>false</should-remove-connection-on-error>
    <naming-service-url>localhost:1099</naming-service-url>
    </cache-synchronization-manager>
    I receive the following exception. I've verified that the RMIRemoteSessionControllerDispatcher class is in the class path....
    EXCEPTION [TOPLINK-8054] (TopLink - 9.0.3.4 (Build 432)): oracle.toplink.exceptions.SynchronizationException
    EXCEPTION DESCRIPTION: Could not bind controller under registry name: 6e3c-fae428088a--800010-10-4-101-18962
    INTERNAL EXCEPTION: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
         java.rmi.RemoteException: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
         java.lang.ClassNotFoundException: oracle.toplink.remote.rmi.RMIRemoteSessionControllerDispatcher_Stub
    java.lang.ClassNotFoundException: oracle.toplink.remote.rmi.RMIRemoteSessionControllerDispatcher_Stub
         java.lang.Throwable(java.lang.String)
         java.lang.Exception(java.lang.String)
         java.lang.ClassNotFoundException(java.lang.String)
         int java.io.ObjectInputStream.inputObject(boolean)
         java.lang.Object java.io.ObjectInputStream.readObject(boolean)
         java.lang.Object java.io.ObjectInputStream.readObject()
         java.lang.Object sun.rmi.server.UnicastRef.unmarshalValue(java.lang.Class, java.io.ObjectInput)
         void sun.rmi.server.UnicastServerRef.dispatch(java.rmi.Remote, java.rmi.server.RemoteCall)
         java.lang.Object sun.rmi.transport.Transport$1.run()
         java.lang.Object java.security.AccessController.doPrivileged(java.security.PrivilegedExceptionAction, java.security.AccessControlContext)
         boolean sun.rmi.transport.Transport.serviceCall(java.rmi.server.RemoteCall)
         void sun.rmi.transport.tcp.TCPTransport.handleMessages(sun.rmi.transport.Connection, boolean)
         void sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run()
         void java.lang.Thread.run()
    The TL documentation is pretty vague on this topic, if anyone has a suggestion, it would be most appreciated.

    If you are configuring cache synchronization within a sessions.xml file then there is no need to re-login the session. TopLink will initialize cache synchronization when the getSession() API is called for the first time.
    If you are seeing messages, such as 'Sending changeSet to network' that denote the sending of changesets, you can assume that cache synchronization is working.
    In order to verify that cache synchronization is working I would recommend issuing a find by primary key query on all servers. On one server register the object within a UnitOfWork, change the object and commit the UnitOfWork. Then on the other servers re-execute the find by primary key query and inspect the objects to ensure that the changes from the one server was propagated to the other servers. A find by primary key query will load the Object from the cache and should not hit the database. With you configuration of asynchronous transfer you will need to allow time between the update and the reads to ensure that the changes have been sent to all of the servers.
    --Gordon

Maybe you are looking for