-
1. Re: Getting org.jboss.mq.SpyJMSException: Cannot start a the
hchirino Dec 5, 2001 10:43 PM (in response to swaminathan17)Seems like a system failure and not a JBossMQ failure. What JDK/OS are you running and are you running in an applet??
Regards,
Hiram -
2. Re: Getting org.jboss.mq.SpyJMSException: Cannot start a the
swaminathan17 Dec 8, 2001 7:52 AM (in response to swaminathan17)Hello Hiram
Ya you were right I think its a problem with my system. I tried it on a different pc and its started working, though now I get an Invalid Transaction Id.
Thanx a lot.
Regards
Jikky -
3. Re: Getting org.jboss.mq.SpyJMSException: Cannot start a the
hchirino Dec 8, 2001 3:18 PM (in response to swaminathan17)Need at least a stack trace. If you enable debug in the log4j.properties it should help find the problem too. Finnally, the source is available to help you track the problem down.
-
4. Re: Getting org.jboss.mq.SpyJMSException: Cannot start a the
jikkyjohn Dec 18, 2001 10:07 AM (in response to swaminathan17)Hi Hiram
Let me tell u what i am doing. I have a mdb which is listening to topic X. On receiving a message it publishes another mesage to another topic Y. Now when it tries to publish a message it throws the foloowing exception
****** Server Side Exception *********
[OILServerILService] The OILClientIL Connection is set up
[SpyConnectionConsumer] SpyConnectionConsumer:TOPIC.testTopic->addMessage(mes=TextMessage@Hello World no. 1)
[StdServerSessionPool] getting a server session
[StdServerSessionPool] using server session: org.jboss.jms.asf.StdServerSession@133bcb
[SpyConnectionConsumer] SpyConnectionConsumer:TOPIC.testTopic Starting the ServerSession.
[StdServerSession] starting invokes on server session
[StdServerSession] running...
[StdServerSession] XAResource 'org.jboss.mq.SpyXAResource@46b6db' enlisted.
[JMSContainerInvoker] processing message: TextMessage@Hello World no. 1
[Default] Start : Bean got messageTextMessage@Hello World no. 1
[Default] Before Publishing message: Hello World no. jik
[HelloMDB] ConnectionFactoryLoader.getObjectInstance, name = 'JmsXA'
[Default] createPublisher : found topicFactory = org.jboss.jms.ra.JmsConnectionFactoryImpl@581e80
[Default] createPublisher : found topicConnection = org.jboss.jms.ra.JmsSessionFactoryImpl@48f675
[SpyDestinationObjectFactory] SpyDestinationObjectFactory->getObjectInstance()
[JBossMQProvider] no provider url; connecting to local JNDI
[JBossMQProvider] created context: javax.naming.InitialContext@6d32c4
[ConnectionFactoryHelper] using connection factory: org.jboss.mq.SpyXAConnectionFactory@6d484
[ConnectionFactoryHelper] using username/password: null/null
[Connection] Connection Initializing
[Connection] Getting the serverIL
[Connection] Authenticating
[Connection] Starting the clientIL service
[Connection] Connection establishment successful
[ConnectionFactoryHelper] created XATopicConnection: org.jboss.mq.SpyXAConnection@1fea8a
[Default] FINE: created connection: org.jboss.mq.SpyXAConnection@1fea8a
[Default] FINE: xaTopicSession: org.jboss.mq.SpyTopicSession@5f2d38
[Default] FINE: topicSession: org.jboss.mq.SpyTopicSession@5f2d38
[Default] FINE: transacted: true
[Default] FINE: ack mode: 1
[JmsXA] FINE: Setting LogWriter: org.jboss.logging.LogWriter@f9a32
[JmsXA] Pool org.jboss.jms.ra.JmsManagedConnectionFactory-1 [0/0/10] gave out new object: org.jboss.jms.ra.JmsManagedConnection@11e831
[JmsXA] FINE: ConnectionEvent listener added
[JmsXA] Connection handle 'org.jboss.jms.ra.JmsSession@467991' issued by connection manager 'org.jboss.pool.connector.jboss.MinervaXACM@575c47' from mcf 'org.jboss.jms.ra.JmsManagedConnectionFactory@882cf118'
[JmsXA] FINE: Closing session
[JmsXA] FINE: Sending connection event: 1
[JmsXA] Connection handle 'org.jboss.jms.ra.JmsSession@467991' closed from connection manager 'org.jboss.pool.connector.jboss.MinervaXACM@575c47' from mcf 'org.jboss.jms.ra.JmsManagedConnectionFactory@882cf118'
[JmsXA] Pool org.jboss.jms.ra.JmsManagedConnectionFactory-1 [0/1/10] returned object org.jboss.jms.ra.JmsManagedConnection@11e831 to the pool.
[Default] javax.jms.JMSException: Invalid transaction id.
[Default] at org.jboss.mq.SpyXAResourceManager.addMessage(SpyXAResourceManager.java:76)
[Default]
[Default] at org.jboss.mq.SpySession.sendMessage(SpySession.java:396)
[Default]
[Default] at org.jboss.mq.SpyTopicPublisher.publish(SpyTopicPublisher.java:106)
[Default]
[Default] at org.jboss.mq.SpyTopicPublisher.publish(SpyTopicPublisher.java:69)
[Default]
[Default] at jbossMdb.HelloMDB.publish(HelloMDB.java:61)
[Default]
[Default] at jbossMdb.HelloMDB.onMessage(HelloMDB.java:112)
[Default]
[Default] at java.lang.reflect.Method.invoke(Native Method)
[Default]
[Default] at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:400)
[Default]
[Default] at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:58)
[Default]
[Default] at org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:133)
[Default]
[Default] at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:247)
[Default]
[Default] at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:99)
[Default]
[Default] at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:128)
[Default]
[Default] at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195)
[Default]
[Default] at org.jboss.ejb.MessageDrivenContainer.invoke(MessageDrivenContainer.java:281)
[Default]
[Default] at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:165)
[Default]
[Default] at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:644)
[Default]
[Default] at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:420)
[Default]
[Default] at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:295)
[Default]
[Default] at org.jboss.mq.SpySession.run(SpySession.java:216)
[Default]
[Default] at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177)
[Default]
[Default] at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:642)
[Default]
[Default] at java.lang.Thread.run(Unknown Source)
[Default]
[StdServerSessionPool] recycled server session: org.jboss.jms.asf.StdServerSession@133bcb
[StdServerSession] done
****** End Server Exception *******
Now my code looks like this
***** Code ****
package jbossMdb;
import java.util.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.ejb.MessageDrivenBean;
import javax.ejb.MessageDrivenContext;
import javax.ejb.EJBException;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicConnection;
import javax.jms.TopicSession;
import javax.jms.TopicPublisher;
import javax.jms.Topic;
import javax.jms.TextMessage;
import javax.jms.Session;
import javax.jms.JMSException;
import javax.jms.MessageListener;
import javax.jms.Message;
public class HelloMDB implements MessageDrivenBean, MessageListener
{
private MessageDrivenContext ctx = null;
//private HelloWorkerHome workerHome = null;
public HelloMDB() {}
public void setMessageDrivenContext(MessageDrivenContext ctx) throws EJBException {
this.ctx = ctx;
}
public void ejbCreate()
{
//try
//{
// Context initCtx = new InitialContext();
// workerHome = (HelloWorkerHome)initCtx.lookup("jBossSession.HelloWorker");
//}
//catch(Exception ex)
//{
// //throw new CreateException("Could not get worker: " + ex);
// ex.printStackTrace();
//}
}
public void ejbRemove() { ctx=null; }
public void publish(String msg, TopicConnection topicConnection, Topic topic) throws JMSException
{
TopicPublisher topicPublisher = null;
TopicSession topicSession = null;
try
{
topicSession = topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
topicPublisher = topicSession.createPublisher(topic);
TextMessage message = topicSession.createTextMessage();
message.setText(msg);
topicPublisher.publish(topic, message);
}
finally
{
try
{
if ( topicPublisher!=null ) topicPublisher.close();
if ( topicSession!=null ) topicSession.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
public void onMessage(Message message)
{
TopicConnection topicConnection = null;
Topic topic = null;
System.err.println("Start : Bean got message" + message.toString() );
//try
//{
String msg = "Hello World no. jik";
System.err.println("Before Publishing message: " + msg);
try
{
//HelloWorker worker = workerHome.create();
//
//if (message instanceof TextMessage)
//{
// TextMessage m = (TextMessage)message;
// worker.doWork(m.getText());
//}
//}//
Context context = new InitialContext();
TopicConnectionFactory topicFactory = (TopicConnectionFactory)context.lookup("java:comp/env/ConnectionFactory");
System.err.println("createPublisher : found topicFactory = " + topicFactory);
topicConnection = topicFactory.createTopicConnection();
System.err.println("createPublisher : found topicConnection = " + topicConnection);
topic = (Topic)context.lookup("java:comp/env/topic/revera.topic.imagingTopic");
publish(msg, topicConnection, topic);
System.err.println("After Publishing message: " + msg);
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
if ( topicConnection != null) topicConnection.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
****** End Code ****
****** Jboss.xml *****
<?xml version="1.0" encoding="Cp1252"?>
false
<resource-managers>
<resource-manager>
<res-name>topicfactoryref</res-name>
<res-jndi-name>java:/JmsXA</res-jndi-name>
</resource-manager>
<resource-manager>
<res-name>topicref</res-name>
<res-jndi-name>topic/testTopic</res-jndi-name>
</resource-manager>
</resource-managers>
<enterprise-beans>
<message-driven>
<ejb-name>HelloMDB</ejb-name>
<configuration-name>Standard Message Driven Bean</configuration-name>
<destination-jndi-name>topic/testTopic</destination-jndi-name>
<resource-ref>
<res-ref-name>ConnectionFactory</res-ref-name>
<resource-name>topicfactoryref</resource-name>
</resource-ref>
<resource-ref>
<res-ref-name>topic/revera.topic.imagingTopic</res-ref-name>
<resource-name>topicref</resource-name>
</resource-ref>
</message-driven>
</enterprise-beans>
****** End Jboss.xml ******
****** ejb-jar.xml ******
<?xml version="1.0"?>
<!DOCTYPE ejb-jar>
<ejb-jar>
<enterprise-beans>
<message-driven>
<ejb-name>HelloMDB</ejb-name>
<ejb-class>jbossMdb.HelloMDB</ejb-class>
<message-selector></message-selector>
<transaction-type>Container</transaction-type>
<message-driven-destination>
<destination-type>javax.jms.Topic</destination-type>
<subscription-durability>NonDurable</subscription-durability>
</message-driven-destination>
<resource-ref>
A Topic ConnectionFactory
<res-ref-name>ConnectionFactory</res-ref-name>
<res-type>javax.jms.TopicConnectionFactory</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
A Topic
<res-ref-name>topic/revera.topic.imagingTopic</res-ref-name>
<res-type>javax.jms.Topic</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</message-driven>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<ejb-name>HelloMDB</ejb-name>
<method-name>*</method-name>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
****** end ejb-jar.xml *****
I have formatted my machine and tried this on a different machine as well. My version is 2.4.1.
Note that line 61 is "topicPublisher.publish(topic, message);" in HelloMdb of my code.
Please advice
Thanx in advance
Jikky -
5. Re: Getting org.jboss.mq.SpyJMSException: Cannot start a the
jikkyjohn Jan 5, 2002 2:30 AM (in response to swaminathan17)Hi
I got the problem. I was defining the ejb.xml file wrong.
Thanx
Jikky