Hi
I have a question regarding making a subscription durable. I went a lot through
the documentation but still i am not able to get it right.
This is my publisher code only part of it.
Context ctxInitCtxt = new InitialContext();
TopicConnectionFactory factory =
(TopicConnectionFactory)ctxInitCtxt.lookup("ConnectionFactory");
topicConn= factory.createTopicConnection();
topicSession=
topicConn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
Topic topic = (Topic)
ctxInitCtxt.lookup("topic/DEFTopic");
TopicPublisher publisher =
topicSession.createPublisher(topic);
ObjectMessage objMsg
=topicSession.createObjectMessage();
objMsg.setObject(dfrep);
publisher.publish(objMsg);
I guess the durable subscription should happen from the client. Now i have an
MDB which listens to this topic.
My MDB
public void onMessage(Message msg)
{
ObjectMessage objMsg = (ObjectMessage) msg;
String strClassName=this.getClass().getName();
try
{
Report dfrpt = (Report)objMsg.getObject();
// The bean has received the following message from the
JMS Queue.
DEFLogger.logInfo("["+className+"]"+"Mesasge driven
Bean(MDB) has received the message with
reportClassName-->"+dfrpt.getReportClassName() );
ReportController.extractKXMLDoc(dfrpt);
}
catch(Exception ex)
{
DEFLogger.logFatal(ex);
}
}
My jboss.xml is
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS//EN"
"http://www.jboss.org/j2ee/dtd/jboss.dtd">
<enterprise-beans>
<ejb-name>DEFReportEJB</ejb-name>
<jndi-name>DEFReportEJB</jndi-name>
<message-driven>
<ejb-name>DEFReportMDB</ejb-name>
<destination-jndi-name>topic/DEFTopic</destination-jndi-name>
</message-driven>
</enterprise-beans>
<resource-managers>
</resource-managers>
My ejb-jar.xml is
<?xml version = '1.0' encoding = 'windows-1252'?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans
2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
<message-driven>
Message Driven Bean
<display-name>DEFReportMDB</display-name>
<ejb-name>DEFReportMDB</ejb-name>
<ejb-class>com.ketera.dataextraction.common.DEFReportMDBBean</ejb-class>
<message-driven-destination>
<destination-type>javax.jms.Topic</destination-type>
<subscription-durability>durable</subscription-durability>
</message-driven-destination>
<transaction-type>Container</transaction-type>
<acknowledge-mode>Auto-acknowledge</acknowledge-mode>
</message-driven>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<ejb-name>DEFReportEJB</ejb-name>
<method-name>*</method-name>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
Can anyone help me out in this regard.
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3880400#3880400
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3880400
-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput
a projector? How fast can you ride your desk chair down the office luge track?
If you want to score the big prize, get to know the little guy.
Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user