org.apache.openjpa.event
Class JMSRemoteCommitProvider

java.lang.Object
  extended by org.apache.openjpa.event.AbstractRemoteCommitProvider
      extended by org.apache.openjpa.event.JMSRemoteCommitProvider
All Implemented Interfaces:
ExceptionListener, RemoteCommitProvider, Configurable, GenericConfigurable, Closeable

public class JMSRemoteCommitProvider
extends AbstractRemoteCommitProvider
implements Configurable, GenericConfigurable, ExceptionListener

JMS-based implementation of RemoteCommitProvider that listens for object modifications and propagates those changes to other RemoteCommitProviders over a JMS topic.

Since:
0.2.5.0
Author:
Patrick Linskey

Field Summary
 
Fields inherited from class org.apache.openjpa.event.AbstractRemoteCommitProvider
eventManager, log
 
Constructor Summary
JMSRemoteCommitProvider()
           
 
Method Summary
 void broadcast(RemoteCommitEvent event)
          Notifies other remote event managers in this JVM and on other machines of changes to the cache.
 void close()
          Free the resources used by this provider.
protected  void connect()
           
protected  Message createMessage(RemoteCommitEvent event)
          Returns a new Message to send to the topic.
 void endConfiguration()
          Subclasses that need to perform actions in Configurable.endConfiguration() must invoke this method.
protected  MessageListener getMessageListener()
           
protected  Context newContext()
          Returns a new Context object for use by this provider.
 void onException(JMSException ex)
           
 void setExceptionReconnectAttempts(int attempts)
          The number of times to attempt to reconnect after a JMS send exception is detected.
 void setInto(Options opts)
          Set a map of properties to pass to the InitialContext constructor for JNDI lookups.
 void setTopic(String name)
          Sets the JMS Topic name.
 void setTopicConnectionFactory(String name)
          Sets the JMS TopicConnectionFactory name.
 
Methods inherited from class org.apache.openjpa.event.AbstractRemoteCommitProvider
fireEvent, setConfiguration, setRemoteCommitEventManager, startConfiguration
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.openjpa.lib.conf.Configurable
setConfiguration, startConfiguration
 

Constructor Detail

JMSRemoteCommitProvider

public JMSRemoteCommitProvider()
Method Detail

setTopic

public void setTopic(String name)
Sets the JMS Topic name. Defaults to topic/OpenJPACommitProviderTopic.


setTopicConnectionFactory

public void setTopicConnectionFactory(String name)
Sets the JMS TopicConnectionFactory name. Defaults to java:/ConnectionFactory.


setExceptionReconnectAttempts

public void setExceptionReconnectAttempts(int attempts)
The number of times to attempt to reconnect after a JMS send exception is detected. Defaults to 0, meaning no attempt to reconnect is made; the exception is logged and ignored.


setInto

public void setInto(Options opts)
Set a map of properties to pass to the InitialContext constructor for JNDI lookups. Implementation of GenericConfigurable.

Specified by:
setInto in interface GenericConfigurable

newContext

protected Context newContext()
                      throws NamingException
Returns a new Context object for use by this provider.

Throws:
NamingException

broadcast

public void broadcast(RemoteCommitEvent event)
Description copied from interface: RemoteCommitProvider
Notifies other remote event managers in this JVM and on other machines of changes to the cache. This method must not notify the event manager associated with the broker that originated this commit.

Specified by:
broadcast in interface RemoteCommitProvider

close

public void close()
Description copied from interface: RemoteCommitProvider
Free the resources used by this provider.

Specified by:
close in interface RemoteCommitProvider
Specified by:
close in interface Closeable

endConfiguration

public void endConfiguration()
Subclasses that need to perform actions in Configurable.endConfiguration() must invoke this method.

Specified by:
endConfiguration in interface Configurable
Overrides:
endConfiguration in class AbstractRemoteCommitProvider

connect

protected void connect()

getMessageListener

protected MessageListener getMessageListener()

createMessage

protected Message createMessage(RemoteCommitEvent event)
                         throws JMSException
Returns a new Message to send to the topic. This implementation creates an ObjectMessage.

Throws:
JMSException

onException

public void onException(JMSException ex)
Specified by:
onException in interface ExceptionListener


Copyright © 2006-2010 Apache Software Foundation. All Rights Reserved.