Package org.apache.openjpa.event
Class JMSRemoteCommitProvider
java.lang.Object
org.apache.openjpa.event.AbstractRemoteCommitProvider
org.apache.openjpa.event.JMSRemoteCommitProvider
- All Implemented Interfaces:
jakarta.jms.ExceptionListener
,RemoteCommitProvider
,Configurable
,GenericConfigurable
,Closeable
public class JMSRemoteCommitProvider
extends AbstractRemoteCommitProvider
implements Configurable, GenericConfigurable, jakarta.jms.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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
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 jakarta.jms.Message
createMessage
(RemoteCommitEvent event) Returns a newMessage
to send to the topic.void
Subclasses that need to perform actions inConfigurable.endConfiguration()
must invoke this method.protected jakarta.jms.MessageListener
protected Context
Returns a newContext
object for use by this provider.void
onException
(jakarta.jms.JMSException ex) void
setExceptionReconnectAttempts
(int attempts) The number of times to attempt to reconnect after a JMS send exception is detected.void
Set a map of properties to pass to theInitialContext
constructor for JNDI lookups.void
Sets the JMS Topic name.void
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 Details
-
JMSRemoteCommitProvider
public JMSRemoteCommitProvider()
-
-
Method Details
-
setTopic
Sets the JMS Topic name. Defaults totopic/OpenJPACommitProviderTopic
. -
setTopicConnectionFactory
Sets the JMS TopicConnectionFactory name. Defaults tojava:/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
Set a map of properties to pass to theInitialContext
constructor for JNDI lookups. Implementation ofGenericConfigurable
.- Specified by:
setInto
in interfaceGenericConfigurable
-
newContext
Returns a newContext
object for use by this provider.- Throws:
NamingException
-
broadcast
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 interfaceRemoteCommitProvider
-
close
public void close()Description copied from interface:RemoteCommitProvider
Free the resources used by this provider.- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceRemoteCommitProvider
-
endConfiguration
public void endConfiguration()Subclasses that need to perform actions inConfigurable.endConfiguration()
must invoke this method.- Specified by:
endConfiguration
in interfaceConfigurable
- Overrides:
endConfiguration
in classAbstractRemoteCommitProvider
-
connect
protected void connect() -
getMessageListener
protected jakarta.jms.MessageListener getMessageListener() -
createMessage
protected jakarta.jms.Message createMessage(RemoteCommitEvent event) throws jakarta.jms.JMSException Returns a newMessage
to send to the topic. This implementation creates anObjectMessage
.- Throws:
jakarta.jms.JMSException
-
onException
public void onException(jakarta.jms.JMSException ex) - Specified by:
onException
in interfacejakarta.jms.ExceptionListener
-