Re: [JBoss-user] Distributed MDB & JMS resouces inside of beans
On Thu, 21 Jun 2001, Jason Dillon wrote: > I found the problem, well I solved my problem is a better way to put it. > The session bean (stateful) which I was using to send messages from was > creating a session in the ejbCreate() method, then actually used in another. > > I was assuming that the container would "do the right thing" in this case, > but perhaps it is not supposed to do here. I updated the bean to create the > session in the method from which it was used and it is much happier now. > > I did run into some other problems along the way, like trying to start() or > close() connections. But at this point I have everything working again with > most of the JMS usage going through the JMS RA. There is one bit that needs > to be re-architected into a bean so it can also participate in the TX, but > that can wait. > > Thank you for the time you spent with the example below, this was exactly > what I was looking for. Great that it worked. Any feedback on the jms-ra stuff is wellcomed, since it is a non standard way of using the two standards (connector and JMS). Since you are not allowed to use asynchronous stuff with the connector I did not think that start was applyable, but we may have to rethink that. //Peter > > --jason > > > On Thu, 21 Jun 2001, Peter Antman wrote: > > > Hi again Jason, > > I did actually have some time to make a test, and it works fine for me. > > (This will be integreated into the new manual chapter I will be writing > > during the summer). > > > > Here is al my setups, with the remote machine beeing > > linutv1.annons.dn.se (its NOT accessable) > > > > in jboss.jcml: > > > > > > name=":service=JMSProviderLoader,name=MyRemoteLoader"> > > MyRemoteProvider > > linutv1.annons.dn.se:1099 > > name="ProviderAdapterClass">org.jboss.jms.jndi.JBossMQProvider > > > > > > > >> name="JCA:service=ConnectionFactoryLoader,name=RemoteJmsXA"> > > RemoteJmsXA > > JCA:service=RARDeployer > > JMS Adapter > > MinervaXACMFactory > > > > > > > > JmsProviderAdapterJNDI=java:MyRemoteProvider > > > > # Pool type - uncomment to force, otherwise it is the default > > #PoolConfiguration=per-factory > > > > # Connection pooling properties - see > > # org.opentools.minerva.pool.PoolParameters > > MinSize=0 > > MaxSize=10 > > Blocking=true > > GCEnabled=false > > IdleTimeoutEnabled=false > > InvalidateOnError=false > > TrackLastUsed=false > > GCIntervalMillis=12 > > GCMinIdleMillis=120 > > IdleTimeoutMillis=180 > > MaxIdleTimeoutPercent=1.0 > > > > > > > > name="PrincipalMappingClass">org.jboss.resource.security.ManyToOnePrincipalMapping > > > > > > > > > > > > In jboss.xml: > > > > > > > > false > > > > > > topicfactoryref > > java:/RemoteJmsXA > > > > > > topicref > > >jnp://linutv1.annons.dn.se:1099/topic/testTopic > > > > > > > > > > > > TopicHello > > TxTopicHello > > Standard Stateless SessionBean > > > >jms/MyTopicConnection > >topicfactoryref > > > > > >jms/TopicName > >topicref > > > > > > > > > > > > Observe the here, not url. > > > > ejb-jar (actually nothing particular) > > > > > > > > Queue Publisher > > PublisherBean > > > > > > TopicHello > > TopicHello > > org.jboss.docs.jms.ra.interfaces.HelloHome > > org.jboss.docs.jms.ra.interfaces.Hello > > org.jboss.docs.jms.ra.bean.TopicHelloBean > > Stateless > > Container > > > > A Topic ConnectionFactory > > jms/MyTopicConnection > > javax.jms.TopicConnectionFactory > > Container > > > > > > A Topic > > jms/TopicName > > javax.jms.Topic > > Container > > > > > > > > > > > > > > > > And the bean: > > > > package org.jboss.docs.jms.ra.bean; > > > > import java.rmi.RemoteException; > > import java.util.*; > > import javax.ejb.SessionBean; > > import javax.ejb.SessionContext; > > import javax.ejb.EJBException; > > import javax.naming.*; > > import javax.jms.*; > > > > import org.jboss.docs.jms.ra.interfaces.*; > > > > > > public class TopicHelloBean implements SessionBean { > > > > private static final String CONNECTION_JNDI = >"java:comp/env/jms/MyTopicConnection"; > > private static final String TOPIC_JNDI = "java:comp/env/jms/TopicName"; > > > > private SessionContext ctx = null; > > private Topic topic = null; > > private TopicConnection topicConnection = null; > > > > public TopicHelloBean() { > > } > > > > public void setSessionContext(SessionContext ctx)
Re: [JBoss-user] Distributed MDB & JMS resouces inside of beans
I found the problem, well I solved my problem is a better way to put it. The session bean (stateful) which I was using to send messages from was creating a session in the ejbCreate() method, then actually used in another. I was assuming that the container would "do the right thing" in this case, but perhaps it is not supposed to do here. I updated the bean to create the session in the method from which it was used and it is much happier now. I did run into some other problems along the way, like trying to start() or close() connections. But at this point I have everything working again with most of the JMS usage going through the JMS RA. There is one bit that needs to be re-architected into a bean so it can also participate in the TX, but that can wait. Thank you for the time you spent with the example below, this was exactly what I was looking for. --jason On Thu, 21 Jun 2001, Peter Antman wrote: > Hi again Jason, > I did actually have some time to make a test, and it works fine for me. > (This will be integreated into the new manual chapter I will be writing > during the summer). > > Here is al my setups, with the remote machine beeing > linutv1.annons.dn.se (its NOT accessable) > > in jboss.jcml: > > > name=":service=JMSProviderLoader,name=MyRemoteLoader"> > MyRemoteProvider > linutv1.annons.dn.se:1099 > name="ProviderAdapterClass">org.jboss.jms.jndi.JBossMQProvider > > > > name="JCA:service=ConnectionFactoryLoader,name=RemoteJmsXA"> > RemoteJmsXA > JCA:service=RARDeployer > JMS Adapter > MinervaXACMFactory > > > > JmsProviderAdapterJNDI=java:MyRemoteProvider > > # Pool type - uncomment to force, otherwise it is the default > #PoolConfiguration=per-factory > > # Connection pooling properties - see > # org.opentools.minerva.pool.PoolParameters > MinSize=0 > MaxSize=10 > Blocking=true > GCEnabled=false > IdleTimeoutEnabled=false > InvalidateOnError=false > TrackLastUsed=false > GCIntervalMillis=12 > GCMinIdleMillis=120 > IdleTimeoutMillis=180 > MaxIdleTimeoutPercent=1.0 > > > > name="PrincipalMappingClass">org.jboss.resource.security.ManyToOnePrincipalMapping > > > > > > In jboss.xml: > > > > false > > > topicfactoryref > java:/RemoteJmsXA > > > topicref > >jnp://linutv1.annons.dn.se:1099/topic/testTopic > > > > > >TopicHello >TxTopicHello >Standard Stateless SessionBean > >jms/MyTopicConnection >topicfactoryref > > >jms/TopicName >topicref > > > > > > Observe the here, not url. > > ejb-jar (actually nothing particular) > > > > Queue Publisher > PublisherBean > > >TopicHello >TopicHello >org.jboss.docs.jms.ra.interfaces.HelloHome >org.jboss.docs.jms.ra.interfaces.Hello >org.jboss.docs.jms.ra.bean.TopicHelloBean >Stateless >Container > > A Topic ConnectionFactory > jms/MyTopicConnection > javax.jms.TopicConnectionFactory > Container > > > A Topic > jms/TopicName > javax.jms.Topic > Container > > > > > > > > And the bean: > > package org.jboss.docs.jms.ra.bean; > > import java.rmi.RemoteException; > import java.util.*; > import javax.ejb.SessionBean; > import javax.ejb.SessionContext; > import javax.ejb.EJBException; > import javax.naming.*; > import javax.jms.*; > > import org.jboss.docs.jms.ra.interfaces.*; > > > public class TopicHelloBean implements SessionBean { > > private static final String CONNECTION_JNDI = >"java:comp/env/jms/MyTopicConnection"; > private static final String TOPIC_JNDI = "java:comp/env/jms/TopicName"; > > private SessionContext ctx = null; > private Topic topic = null; > private TopicConnection topicConnection = null; > > public TopicHelloBean() { > } > > public void setSessionContext(SessionContext ctx) { > this.ctx = ctx; > } > > public void ejbCreate() { > try { > Context context = new InitialContext(); > topic = (Topic)context.lookup(TOPIC_JNDI); > > TopicConnectionFactory factory = >(TopicConnectionFactory)context.lookup(CONNECTION_JNDI); > topicConnection = factory.createTopicConnection(); > > } catch (Exception ex) { > // JMSException or NamingException could be thrown > ex.printStackTrace(); > throw new EJBException(ex.toString()); > } > } > > /** > * Send a message with a message nr in property MESSAGE_NR > */ > publi
Re: [JBoss-user] Distributed MDB & JMS resouces inside of beans
> 1. If you get a XAxxxConnectionFactory and you do not have any process >that actuallt starts the transaction, then you are in trouble. I can not seem to get any XA classes from the JMS RA, so I am not quite sure what you mean here. I was modeling the usage of JMS inside of a bean from some example from sun, could be the blue prints or the description of the dtd, not sure. > 2. I have gotten the same type of exception, and as far as I can >remember the solution is to put jbossmq-client.jar in your classpath, >ie for server to server communication, put it in lib/ext (but I have >not tested this for a while). I can try this, but it seems odd that this would fix the problem. I will look into it more. > > An overly simplified view of the system looks like this, showing three > > seperate pyshical machines: web server, manager node and router. The > > current architecture assumes a hub-spoke model for using JMS resources, so > > that all machines that actually make use of the JMS resources are remote, > > there are not MDB's running on the router. > > You mean the MDB:s are running on the nodes (subscribing to destinations > in the router) and the session beans are also on the nodes, sending to > destinations in the router? Correct. > > RMI > > [ web server ] +---+ [ manager node ] > >| | > > (SessionBean) (MDB) > >| | > >JMS Queue Resource | > > \/ > >\/ > > [ router ] > > || > > (real queues) > > > > I installed the resource adapter, which seems to like to be deployed rather > > than having a mbean entry added in jboss.jcml, which I basically copied from > > the main branch conf/default files. > > Hm, the ra must be both in jboss.jcml AND be deployed. It is confiured > in jboss.jcml and bound to the correct JNDI, and then the *.ra file must > be deployed (which is done be default in cvs version and 2.4). I think I was mistaken, I did have a configuration as well as a deployment. What does the deployed ra actually provide? Is it important that it be deployed prior to the configuration? My guess is not, but I want to make sure. > > The manager has a JMSProviderLoader installed which is using a remote > > : url to the router, and has the default session pool stuff. > > I think that the MDB bits work fine. I do not *think* that I had to change > > anything to get that to work, the problem I am running into is with JMS > > resources. > > Do you have a customized JMSProviderLoader, of type: > > name=":service=JMSProviderLoader,name=MyRemoteLoader"> > MyRemoteProvider > router:1099 > name="ProviderAdapterClass">org.jboss.jms.jndi.JBossMQProvider > My JMS provide is still called DefaultJMSProvider and I did specify for the factory loader that JNDI name was: JmsProviderAdapterJNDI=java:/DefaultJMSProvider Should I omit the java:/ ? What is ra.xml? > > A while back someone (could be you) said that using res-url was a hack > > around the lack of support for JMS resources, is that still true? > > For jboss 2.2.2 that is still true. In the developmen version it is not, > if the ra is used. > > I have to admit there is still a problem with destination. To get the > connection from the correct JNDI you configure a ProviderLoader, but the > way both JMS and J2EE connector specifation is done I have found no way > of abstracting access to the destinations out from the normal JNDI > access. > > If jnp://router:5001/queue/WorkRequestQueue does not work, you will have > to use Scot Starks solution to integrate another JNDI space into the > local JNDI, but I do not think this is your problem. This seems to work. I am able to lookup destinations and get most of the way done processing until I get a TX related exception. > > If not > > what is the correct way to reference a remote connection and destination > > inside of the descriptor? > > As far as I can see it you have done perfectly right, but remote > subscriptions with TX support has not been that much tested. > > Pleas try the jbossmq-client.jar trick and see if it works. So I should use res-jndi-name for the factory and res-url for the destination? Or isn't there some other tag that I am supposed to use for destinations. Sorry, I am still not clear on that... though I suppose it does not really matter much as long as the lookup succeeds. > I am sorry to say this, but I am going on a pretty long vaication from > today. I will try to check my mail of and on, the there may be long > periods of silence. How long is "pretty long"? Days, weeks, months, years? I hope you have a good time. > I do hope you get it going. Me too. > (Have you checked the jmsra tests in jbo
Re: [JBoss-user] Distributed MDB & JMS resouces inside of beans
Hi again Jason, I did actually have some time to make a test, and it works fine for me. (This will be integreated into the new manual chapter I will be writing during the summer). Here is al my setups, with the remote machine beeing linutv1.annons.dn.se (its NOT accessable) in jboss.jcml: MyRemoteProvider linutv1.annons.dn.se:1099 org.jboss.jms.jndi.JBossMQProvider RemoteJmsXA JCA:service=RARDeployer JMS Adapter MinervaXACMFactory JmsProviderAdapterJNDI=java:MyRemoteProvider # Pool type - uncomment to force, otherwise it is the default #PoolConfiguration=per-factory # Connection pooling properties - see # org.opentools.minerva.pool.PoolParameters MinSize=0 MaxSize=10 Blocking=true GCEnabled=false IdleTimeoutEnabled=false InvalidateOnError=false TrackLastUsed=false GCIntervalMillis=12 GCMinIdleMillis=120 IdleTimeoutMillis=180 MaxIdleTimeoutPercent=1.0 org.jboss.resource.security.ManyToOnePrincipalMapping In jboss.xml: false topicfactoryref java:/RemoteJmsXA topicref jnp://linutv1.annons.dn.se:1099/topic/testTopic TopicHello TxTopicHello Standard Stateless SessionBean jms/MyTopicConnection topicfactoryref jms/TopicName topicref Observe the here, not url. ejb-jar (actually nothing particular) Queue Publisher PublisherBean TopicHello TopicHello org.jboss.docs.jms.ra.interfaces.HelloHome org.jboss.docs.jms.ra.interfaces.Hello org.jboss.docs.jms.ra.bean.TopicHelloBean Stateless Container A Topic ConnectionFactory jms/MyTopicConnection javax.jms.TopicConnectionFactory Container A Topic jms/TopicName javax.jms.Topic Container And the bean: package org.jboss.docs.jms.ra.bean; import java.rmi.RemoteException; import java.util.*; import javax.ejb.SessionBean; import javax.ejb.SessionContext; import javax.ejb.EJBException; import javax.naming.*; import javax.jms.*; import org.jboss.docs.jms.ra.interfaces.*; public class TopicHelloBean implements SessionBean { private static final String CONNECTION_JNDI = "java:comp/env/jms/MyTopicConnection"; private static final String TOPIC_JNDI = "java:comp/env/jms/TopicName"; private SessionContext ctx = null; private Topic topic = null; private TopicConnection topicConnection = null; public TopicHelloBean() { } public void setSessionContext(SessionContext ctx) { this.ctx = ctx; } public void ejbCreate() { try { Context context = new InitialContext(); topic = (Topic)context.lookup(TOPIC_JNDI); TopicConnectionFactory factory = (TopicConnectionFactory)context.lookup(CONNECTION_JNDI); topicConnection = factory.createTopicConnection(); } catch (Exception ex) { // JMSException or NamingException could be thrown ex.printStackTrace(); throw new EJBException(ex.toString()); } } /** * Send a message with a message nr in property MESSAGE_NR */ public void hello(String msg) { sendMessage(msg); } public void ejbRemove() throws RemoteException { if(topicConnection != null) { try { topicConnection.close(); } catch (Exception e) { e.printStackTrace(); } } } public void ejbActivate() {} public void ejbPassivate() {} private void sendMessage(String msg) { TopicSession topicSession = null; try { TopicPublisher topicPublisher = null; TextMessagemessage = null; topicSession = topicConnection.createTopicSession(true, Session.AUTO_ACKNOWLEDGE); topicPublisher = topicSession.createPublisher(topic); message = topicSession.createTextMessage(); message.setText(msg); topicPublisher.publish(message); } catch (JMSException ex) { ex.printStackTrace(); ctx.setRollbackOnly(); throw new EJBException(ex.toString()); } finally { if (topicSession != null) { try { topicSession.close(); } catch (Exception e) { e.printStackTrace(); } }
Re: [JBoss-user] Distributed MDB & JMS resouces inside of beans
Hi Jason, how nice that finally someone is really using the JMS ra and in a distributed fashion. I have to admit that it has not been tested in such a setup yet. I will try to comment your mail, but first: there are two things that I know have caused problem of the type you describe: 1. If you get a XAxxxConnectionFactory and you do not have any process that actuallt starts the transaction, then you are in trouble. 2. I have gotten the same type of exception, and as far as I can remember the solution is to put jbossmq-client.jar in your classpath, ie for server to server communication, put it in lib/ext (but I have not tested this for a while). On 20 Jun, Jason Dillon wrote: > Hey, I have been trying to figure this out for a few days now and I keep > running into walls. I have a distributed system that uses JMS for > communication, using a centralized router (all running on JBoss with > JBossMQ). > > I was able to get everything working using an ExternalContext, to map in the > namespace of the remote router, but that is less than perfect. I started to > change over to the JmsXA adapter, but I am running into some odd problems. > > An overly simplified view of the system looks like this, showing three > seperate pyshical machines: web server, manager node and router. The > current architecture assumes a hub-spoke model for using JMS resources, so > that all machines that actually make use of the JMS resources are remote, > there are not MDB's running on the router. You mean the MDB:s are running on the nodes (subscribing to destinations in the router) and the session beans are also on the nodes, sending to destinations in the router? > > RMI > [ web server ] +---+ [ manager node ] >| | > (SessionBean) (MDB) >| | >JMS Queue Resource | > \/ >\/ > [ router ] > || > (real queues) > > I installed the resource adapter, which seems to like to be deployed rather > than having a mbean entry added in jboss.jcml, which I basically copied from > the main branch conf/default files. Hm, the ra must be both in jboss.jcml AND be deployed. It is confiured in jboss.jcml and bound to the correct JNDI, and then the *.ra file must be deployed (which is done be default in cvs version and 2.4). > > The manager has a JMSProviderLoader installed which is using a remote > : url to the router, and has the default session pool stuff. > I think that the MDB bits work fine. I do not *think* that I had to change > anything to get that to work, the problem I am running into is with JMS > resources. Do you have a customized JMSProviderLoader, of type: MyRemoteProvider router:1099 org.jboss.jms.jndi.JBossMQProvider If this is the way you have done it you must also configure the RA to use this provider: (Observer the JmsProviderAdapterJNDI attribute - this configuration should also be possible to do in ra.xml JmsXA JCA:service=RARDeployer JMS Adapter MinervaXACMFactory JmsProviderAdapterJNDI=MyRemoteProvider # Pool type - uncomment to force, otherwise it is the default #PoolConfiguration=per-factory # Connection pooling properties - see # org.opentools.minerva.pool.PoolParameters MinSize=0 MaxSize=10 Blocking=true GCEnabled=false IdleTimeoutEnabled=false InvalidateOnError=false TrackLastUsed=false GCIntervalMillis=12 GCMinIdleMillis=120 IdleTimeoutMillis=180 MaxIdleTimeoutPercent=1.0 org.jboss.resource.security.ManyToOnePrincipalMapping > > Per your change note, I changed the res-jndi-name to from the external > context path to java:JmsXA. But I also had to use url's to get the > destinations to work. So I ended up with something like this: > > > > QueueConnectionFactory > java:/JmsXA > > > > WorkRequestQueue >jnp://router:5001/queue/WorkRequestQueue > > > > WorkResponseQueue > jnp://router:5001/queue/WorkResponseQueue > > > > I started up the application again, and got: > > > javax.jms.JMSException: Invalid transaction id. > at > org.jbossmq.SpyXAResourceManager.addMessage(SpyXAResourceManager.java:80) > at org.jbossmq.SpySession.sendMessage(SpySession.java:381) > at org.jbossmq.SpyQueueSender.send(SpyQueueSender.java:103) > at org.jbossmq.SpyQueueSender.send(SpyQueueSender.java:62) > at > >com.boldfish.does.job.workflow.internal.RequestSpoolerEJB.send(RequestSpoolerEJB.java:217) > at > >com.boldfish.does.job.workflow.internal.RequestSpoolerEJB.se
RE: [JBoss-user] Distributed MDB & JMS resouces inside of beans
> my my my you're hot... > > I can't even finish the mail and I blow a fuse :( I am not really sure what that means... perhaps the ':(' that the end throws me off a bit too far. > Let us know if you find a bug, I certainly will, thought I do not really know what the officially correctly syntax is for the resource definition. There are also a number of variables (TM, RA, JMS), which make it that much more difficult. I am hopping to talk with Peter abit about the RA first. --jason ___ JBoss-user mailing list [EMAIL PROTECTED] http://lists.sourceforge.net/lists/listinfo/jboss-user
RE: [JBoss-user] Distributed MDB & JMS resouces inside of beans
my my my you're hot... I can't even finish the mail and I blow a fuse :( Let us know if you find a bug, marcf |-Original Message- |From: [EMAIL PROTECTED] |[mailto:[EMAIL PROTECTED]]On Behalf Of Jason Dillon |Sent: Wednesday, June 20, 2001 8:59 PM |To: [EMAIL PROTECTED] |Cc: [EMAIL PROTECTED] |Subject: [JBoss-user] Distributed MDB & JMS resouces inside of beans | | |Hey, I have been trying to figure this out for a few days now and I keep |running into walls. I have a distributed system that uses JMS for |communication, using a centralized router (all running on JBoss with |JBossMQ). | |I was able to get everything working using an ExternalContext, to |map in the |namespace of the remote router, but that is less than perfect. I |started to |change over to the JmsXA adapter, but I am running into some odd problems. | |An overly simplified view of the system looks like this, showing three |seperate pyshical machines: web server, manager node and router. The |current architecture assumes a hub-spoke model for using JMS resources, so |that all machines that actually make use of the JMS resources are remote, |there are not MDB's running on the router. | | RMI | [ web server ] +---+ [ manager node ] | | | | (SessionBean) (MDB) | | | | JMS Queue Resource | | \/ | \/ | [ router ] | || |(real queues) | |I installed the resource adapter, which seems to like to be deployed rather |than having a mbean entry added in jboss.jcml, which I basically |copied from |the main branch conf/default files. | |The manager has a JMSProviderLoader installed which is using a remote |: url to the router, and has the default session |pool stuff. |I think that the MDB bits work fine. I do not *think* that I had to change |anything to get that to work, the problem I am running into is with JMS |resources. | |Per your change note, I changed the res-jndi-name to from the external |context path to java:JmsXA. But I also had to use url's to get the |destinations to work. So I ended up with something like this: | | | | QueueConnectionFactory | java:/JmsXA | | | | WorkRequestQueue | jnp://router:5001/queue/WorkRequestQueue | | | | WorkResponseQueue | jnp://router:5001/queue/WorkResponseQueue | | | |I started up the application again, and got: | | |javax.jms.JMSException: Invalid transaction id. | at |org.jbossmq.SpyXAResourceManager.addMessage(SpyXAResourceManager.java:80) | at org.jbossmq.SpySession.sendMessage(SpySession.java:381) | at org.jbossmq.SpyQueueSender.send(SpyQueueSender.java:103) | at org.jbossmq.SpyQueueSender.send(SpyQueueSender.java:62) | at |com.boldfish.does.job.workflow.internal.RequestSpoolerEJB.send(Requ |estSpoolerEJB.java:217) | at |com.boldfish.does.job.workflow.internal.RequestSpoolerEJB.sendNextR |equest(RequestSpoolerEJB.java:249) | at |com.boldfish.does.job.workflow.internal.RequestSpoolerEJB.spool(Req |uestSpoolerEJB.java:273) | at java.lang.reflect.Method.invoke(Native Method) | at |org.jboss.ejb.StatefulSessionContainer$ContainerInterceptor.invoke( StatefulSessionContainer.java:650) | at |org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityIntercepto |r.java:127) | at |org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(Sta tefulSessionInstanceInterceptor.java:209) | at |org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT. |java:159) | at |org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterc |eptorCMT.java:280) | at |org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:107) | at |org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195) | at |org.jboss.ejb.StatefulSessionContainer.invoke(StatefulSessionContai |ner.java:341) | at |org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPC |ontainerInvoker.java:480) | at |org.jboss.ejb.plugins.jrmp.interfaces.GenericProxy.invokeContainer( |GenericProxy.java:339) | at |org.jboss.ejb.plugins.jrmp.interfaces.StatefulSessionProxy.invoke(S |tatefulSessionProxy.java:136) | at $Proxy25.spool(Unknown Source) | at |com.boldfish.does.job.service.JobController$Runner.run(JobControlle |r.java:216) | at java.lang.Thread.run(Thread.java:484) | | |So I thought that I should try a distributed TX manager, since that is what |i really want. I changed over to Tyrex on all nodes and I still got the |same results. I then tried to use a jnp:// url for the |res-jndi-name, which |looks like it got a little further, but throw a different TX related |excepetion laiter. | |