|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.j_spaces.jms.GSMessageProducerImpl com.j_spaces.jms.GSTopicPublisherImpl
public class GSTopicPublisherImpl
GigaSpaces implementation of the javax.jms.TopicPublisher
interface.
A client uses a GSTopicPublisherImpl
object to publish messages on a
topic. A GSTopicPublisherImpl
object is the publish-subscribe form
of a message producer.
Normally, the Topic
is specified when a
GSTopicPublisherImpl
is created. In this case, an attempt to use
the publish
methods for an unidentified
GSTopicPublisherImpl
will throw a
java.lang.UnsupportedOperationException
.
If the GSTopicPublisherImpl
is created with an unidentified
Topic
, an attempt to use the publish
methods that
assume that the Topic
has been identified will throw a
java.lang.UnsupportedOperationException
.
During the execution of its publish
method,
a message must not be changed by other threads within the client.
If the message is modified, the result of the publish
is
undefined.
After publishing a message, a client may retain and modify it without affecting the message that has been published. The same message object may be published multiple times.
The following message headers are set as part of publishing a
message: JMSDestination
, JMSDeliveryMode
,
JMSExpiration
, JMSPriority
,
JMSMessageID
and JMSTimeStamp
.
When the message is published, the values of these headers are ignored.
After completion of the publish
, the headers hold the values
specified by the method publishing the message. It is possible for the
publish
method not to set JMSMessageID
and
JMSTimeStamp
if the
setting of these headers is explicitly disabled by the
GSMessageProducerImpl.setDisableMessageID
or
GSMessageProducerImpl.setDisableMessageTimestamp
method.
Creating a GSMessageProducerImpl
provides the same features as
creating a GSTopicPublisherImpl
. A GSMessageProducerImpl
object is
recommended when creating new code. The GSTopicPublisherImpl
is
provided to support existing code.
Because GSTopicPublisherImpl
inherits from
GSMessageProducerImpl
, it inherits the
send
methods that are a part of the GSMessageProducerImpl
interface. Using the send
methods will have the same
effect as using the
publish
methods: they are functionally the same.
Constructor Summary | |
---|---|
GSTopicPublisherImpl(GSSessionImpl sess,
GSTopicImpl topic,
String producerKey)
Constructs a publisher. |
Method Summary | |
---|---|
void |
close()
Close the publisher |
Topic |
getTopic()
API method. |
void |
publish(Message message)
API method. |
void |
publish(Message message,
int deliveryMode,
int priority,
long timeToLive)
API method. |
void |
publish(Topic topic,
Message message)
API method. |
void |
publish(Topic topic,
Message message,
int deliveryMode,
int priority,
long timeToLive)
API method. |
Methods inherited from class com.j_spaces.jms.GSMessageProducerImpl |
---|
getDeliveryMode, getDestination, getDisableMessageID, getDisableMessageTimestamp, getPriority, getProducerID, getTimeToLive, isClosed, send, send, send, send, setDeliveryMode, setDisableMessageID, setDisableMessageTimestamp, setPriority, setTimeToLive, start, toString |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface javax.jms.MessageProducer |
---|
getDeliveryMode, getDestination, getDisableMessageID, getDisableMessageTimestamp, getPriority, getTimeToLive, send, send, send, send, setDeliveryMode, setDisableMessageID, setDisableMessageTimestamp, setPriority, setTimeToLive |
Constructor Detail |
---|
public GSTopicPublisherImpl(GSSessionImpl sess, GSTopicImpl topic, String producerKey) throws JMSException
sess
- The session the publisher belongs to.topic
- The topic the publisher publishs messages on.producerKey
-
IllegalStateException
- If the connection is broken.
JMSException
- If the creation fails for any other reason.Method Detail |
---|
public Topic getTopic() throws JMSException
getTopic
in interface TopicPublisher
IllegalStateException
- If the publisher is closed.
JMSException
public void publish(Message message) throws JMSException
TopicPublisher
's default delivery mode, priority,
and time to live.
Calls the GSMessageProducerImpl.send()
publish
in interface TopicPublisher
message
-
IllegalStateException
- If the publisher is closed, or if the
connection is broken.
JMSException
- If the request fails for any other reason.MessageProducer.getDeliveryMode()
,
MessageProducer.getTimeToLive()
,
MessageProducer.getPriority()
public void publish(Message message, int deliveryMode, int priority, long timeToLive) throws JMSException
publish
in interface TopicPublisher
message
- deliveryMode
- priority
- timeToLive
-
IllegalStateException
- If the publisher is closed, or if the
connection is broken.
JMSException
- If the request fails for any other reason.public void publish(Topic topic, Message message) throws JMSException
TopicPublisher
's default delivery mode,
priority, and time to live.
Typically, a message producer is assigned a topic at creation time; however, the JMS API also supports unidentified message producers, which require that the topic be supplied every time a message is published. Calls the GSMessageProducerImpl.send()
publish
in interface TopicPublisher
topic
- the topic to publish this message tomessage
-
IllegalStateException
- If the publisher is closed, or if the
connection is broken.
JMSException
- If the request fails for any other reason.public void publish(Topic topic, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException
Typically, a message producer is assigned a topic at creation time; however, the JMS API also supports unidentified message producers, which require that the topic be supplied every time a message is published.
publish
in interface TopicPublisher
topic
- the topic to publish this message tomessage
- deliveryMode
- priority
- timeToLive
-
IllegalStateException
- If the publisher is closed, or if the
connection is broken.
JMSException
- If the request fails for any other reason.public void close() throws JMSException
close
in interface MessageProducer
close
in class GSMessageProducerImpl
JMSException
- if the publisher can't be closedMessageProducer.close()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |