Re: [JBoss-user] Distributed MDB JMS resouces inside of beans

2001-06-24 Thread Peter Antman

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:
 
  !-- This must go into jboss.jcml to get remote version to work --
mbean code=org.jboss.jms.jndi.JMSProviderLoader 
name=:service=JMSProviderLoader,name=MyRemoteLoader
  attribute name=ProviderNameMyRemoteProvider/attribute
   attribute name=ProviderUrllinutv1.annons.dn.se:1099/attribute
  attribute 
name=ProviderAdapterClassorg.jboss.jms.jndi.JBossMQProvider/attribute
/mbean
 
  !-- JMS XA Resource adapter, use this to get transacted JMS in beans --
mbean code=org.jboss.resource.ConnectionFactoryLoader
   name=JCA:service=ConnectionFactoryLoader,name=RemoteJmsXA
  attribute name=FactoryNameRemoteJmsXA/attribute
  attribute name=RARDeployerNameJCA:service=RARDeployer/attribute
  attribute name=ResourceAdapterNameJMS Adapter/attribute
  attribute name=ConnectionManagerFactoryNameMinervaXACMFactory/attribute
  !-- See the documentation for the specific connection manager
   implementation you are using for the properties you can set --
  attribute name=ConnectionManagerProperties
  attribute name=Properties
JmsProviderAdapterJNDI=java:MyRemoteProvider
  /attribute
# 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
  /attribute
 
  !-- Principal mapping configuration --
  attribute 
name=PrincipalMappingClassorg.jboss.resource.security.ManyToOnePrincipalMapping/attribute
  attribute name=PrincipalMappingProperties
  /attribute
/mbean
 
 
  In jboss.xml:
  ?xml version=1.0 encoding=Cp1252?
 
  jboss
   securefalse/secure
resource-managers
  resource-manager
res-nametopicfactoryref/res-name
res-jndi-namejava:/RemoteJmsXA/res-jndi-name
  /resource-manager
  resource-manager
res-nametopicref/res-name

res-jndi-namejnp://linutv1.annons.dn.se:1099/topic/testTopic/res-jndi-name
  /resource-manager
  /resource-managers
 
   enterprise-beans
 session
   ejb-nameTopicHello/ejb-name
   jndi-nameTxTopicHello/jndi-name
   configuration-nameStandard Stateless SessionBean/configuration-name
resource-ref
 res-ref-namejms/MyTopicConnection/res-ref-name
 resource-nametopicfactoryref/resource-name
   /resource-ref
   resource-ref
 res-ref-namejms/TopicName/res-ref-name
 resource-nametopicref/resource-name
   /resource-ref
 /session
   /enterprise-beans
  /jboss
 
  Observe the res-jndi-name here, not url.
 
  ejb-jar (actually nothing particular)
  ?xml version=1.0 encoding=Cp1252?
 
  ejb-jar
   descriptionQueue Publisher/description
   display-namePublisherBean/display-name
   enterprise-beans
 session
   display-nameTopicHello/display-name
   ejb-nameTopicHello/ejb-name
   homeorg.jboss.docs.jms.ra.interfaces.HelloHome/home
   

Re: [JBoss-user] Distributed MDB JMS resouces inside of beans

2001-06-21 Thread Peter Antman

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
 hostname:port 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:

  mbean code=org.jboss.jms.jndi.JMSProviderLoader 
name=:service=JMSProviderLoader,name=MyRemoteLoader
attribute name=ProviderNameMyRemoteProvider/attribute
 attribute name=ProviderUrlrouter:1099/attribute
attribute 
name=ProviderAdapterClassorg.jboss.jms.jndi.JBossMQProvider/attribute
  /mbean


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

  !-- JMS XA Resource adapter, use this to get transacted JMS in beans --
  mbean code=org.jboss.resource.ConnectionFactoryLoader
 name=JCA:service=ConnectionFactoryLoader,name=JmsXA
attribute name=FactoryNameJmsXA/attribute
attribute name=RARDeployerNameJCA:service=RARDeployer/attribute
attribute name=ResourceAdapterNameJMS Adapter/attribute
attribute name=ConnectionManagerFactoryNameMinervaXACMFactory/attribute
!-- See the documentation for the specific connection manager
 implementation you are using for the properties you can set --
attribute name=ConnectionManagerProperties
attribute name=Properties
  JmsProviderAdapterJNDI=MyRemoteProvider
/attribute
  # 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
/attribute

!-- Principal mapping configuration --
attribute 
name=PrincipalMappingClassorg.jboss.resource.security.ManyToOnePrincipalMapping/attribute
attribute name=PrincipalMappingProperties
/attribute
  /mbean
 
 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 

Re: [JBoss-user] Distributed MDB JMS resouces inside of beans

2001-06-21 Thread Peter Antman

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:

!-- This must go into jboss.jcml to get remote version to work --
  mbean code=org.jboss.jms.jndi.JMSProviderLoader 
name=:service=JMSProviderLoader,name=MyRemoteLoader
attribute name=ProviderNameMyRemoteProvider/attribute
 attribute name=ProviderUrllinutv1.annons.dn.se:1099/attribute
attribute 
name=ProviderAdapterClassorg.jboss.jms.jndi.JBossMQProvider/attribute
  /mbean

!-- JMS XA Resource adapter, use this to get transacted JMS in beans --
  mbean code=org.jboss.resource.ConnectionFactoryLoader
 name=JCA:service=ConnectionFactoryLoader,name=RemoteJmsXA
attribute name=FactoryNameRemoteJmsXA/attribute
attribute name=RARDeployerNameJCA:service=RARDeployer/attribute
attribute name=ResourceAdapterNameJMS Adapter/attribute
attribute name=ConnectionManagerFactoryNameMinervaXACMFactory/attribute
!-- See the documentation for the specific connection manager
 implementation you are using for the properties you can set --
attribute name=ConnectionManagerProperties
attribute name=Properties
  JmsProviderAdapterJNDI=java:MyRemoteProvider
/attribute
  # 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
/attribute

!-- Principal mapping configuration --
attribute 
name=PrincipalMappingClassorg.jboss.resource.security.ManyToOnePrincipalMapping/attribute
attribute name=PrincipalMappingProperties
/attribute
  /mbean


In jboss.xml:
?xml version=1.0 encoding=Cp1252?

jboss
 securefalse/secure
  resource-managers
resource-manager
  res-nametopicfactoryref/res-name
  res-jndi-namejava:/RemoteJmsXA/res-jndi-name
/resource-manager
resource-manager
  res-nametopicref/res-name
  
res-jndi-namejnp://linutv1.annons.dn.se:1099/topic/testTopic/res-jndi-name
/resource-manager
/resource-managers

 enterprise-beans
   session
 ejb-nameTopicHello/ejb-name
 jndi-nameTxTopicHello/jndi-name
 configuration-nameStandard Stateless SessionBean/configuration-name
  resource-ref
   res-ref-namejms/MyTopicConnection/res-ref-name
   resource-nametopicfactoryref/resource-name
 /resource-ref
 resource-ref
   res-ref-namejms/TopicName/res-ref-name
   resource-nametopicref/resource-name
 /resource-ref
   /session
 /enterprise-beans
/jboss

Observe the res-jndi-name here, not url.

ejb-jar (actually nothing particular)
?xml version=1.0 encoding=Cp1252?

ejb-jar
 descriptionQueue Publisher/description
 display-namePublisherBean/display-name
 enterprise-beans
   session
 display-nameTopicHello/display-name
 ejb-nameTopicHello/ejb-name
 homeorg.jboss.docs.jms.ra.interfaces.HelloHome/home
 remoteorg.jboss.docs.jms.ra.interfaces.Hello/remote
 ejb-classorg.jboss.docs.jms.ra.bean.TopicHelloBean/ejb-class
 session-typeStateless/session-type
 transaction-typeContainer/transaction-type
 resource-ref
descriptionA Topic ConnectionFactory/description
res-ref-namejms/MyTopicConnection/res-ref-name
res-typejavax.jms.TopicConnectionFactory/res-type
res-authContainer/res-auth
 /resource-ref
 resource-ref
descriptionA Topic /description
res-ref-namejms/TopicName/res-ref-name
res-typejavax.jms.Topic/res-type
res-authContainer/res-auth
 /resource-ref
   /session
 /enterprise-beans
 assembly-descriptor/

   /ejb-jar

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 

Re: [JBoss-user] Distributed MDB JMS resouces inside of beans

2001-06-21 Thread Jason Dillon

 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
  hostname:port 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:

   mbean code=org.jboss.jms.jndi.JMSProviderLoader 
name=:service=JMSProviderLoader,name=MyRemoteLoader
 attribute name=ProviderNameMyRemoteProvider/attribute
  attribute name=ProviderUrlrouter:1099/attribute
 attribute 
name=ProviderAdapterClassorg.jboss.jms.jndi.JBossMQProvider/attribute
   /mbean

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.


Re: [JBoss-user] Distributed MDB JMS resouces inside of beans

2001-06-21 Thread Jason Dillon

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:

 !-- This must go into jboss.jcml to get remote version to work --
   mbean code=org.jboss.jms.jndi.JMSProviderLoader 
name=:service=JMSProviderLoader,name=MyRemoteLoader
 attribute name=ProviderNameMyRemoteProvider/attribute
  attribute name=ProviderUrllinutv1.annons.dn.se:1099/attribute
 attribute 
name=ProviderAdapterClassorg.jboss.jms.jndi.JBossMQProvider/attribute
   /mbean

 !-- JMS XA Resource adapter, use this to get transacted JMS in beans --
   mbean code=org.jboss.resource.ConnectionFactoryLoader
  name=JCA:service=ConnectionFactoryLoader,name=RemoteJmsXA
 attribute name=FactoryNameRemoteJmsXA/attribute
 attribute name=RARDeployerNameJCA:service=RARDeployer/attribute
 attribute name=ResourceAdapterNameJMS Adapter/attribute
 attribute name=ConnectionManagerFactoryNameMinervaXACMFactory/attribute
 !-- See the documentation for the specific connection manager
  implementation you are using for the properties you can set --
 attribute name=ConnectionManagerProperties
 attribute name=Properties
   JmsProviderAdapterJNDI=java:MyRemoteProvider
 /attribute
   # 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
 /attribute

 !-- Principal mapping configuration --
 attribute 
name=PrincipalMappingClassorg.jboss.resource.security.ManyToOnePrincipalMapping/attribute
 attribute name=PrincipalMappingProperties
 /attribute
   /mbean


 In jboss.xml:
 ?xml version=1.0 encoding=Cp1252?

 jboss
  securefalse/secure
   resource-managers
 resource-manager
   res-nametopicfactoryref/res-name
   res-jndi-namejava:/RemoteJmsXA/res-jndi-name
 /resource-manager
 resource-manager
   res-nametopicref/res-name
   
res-jndi-namejnp://linutv1.annons.dn.se:1099/topic/testTopic/res-jndi-name
 /resource-manager
 /resource-managers

  enterprise-beans
session
ejb-nameTopicHello/ejb-name
jndi-nameTxTopicHello/jndi-name
configuration-nameStandard Stateless SessionBean/configuration-name
   resource-ref
res-ref-namejms/MyTopicConnection/res-ref-name
resource-nametopicfactoryref/resource-name
  /resource-ref
  resource-ref
res-ref-namejms/TopicName/res-ref-name
resource-nametopicref/resource-name
  /resource-ref
/session
  /enterprise-beans
 /jboss

 Observe the res-jndi-name here, not url.

 ejb-jar (actually nothing particular)
 ?xml version=1.0 encoding=Cp1252?

 ejb-jar
  descriptionQueue Publisher/description
  display-namePublisherBean/display-name
  enterprise-beans
session
display-nameTopicHello/display-name
ejb-nameTopicHello/ejb-name
homeorg.jboss.docs.jms.ra.interfaces.HelloHome/home
remoteorg.jboss.docs.jms.ra.interfaces.Hello/remote
ejb-classorg.jboss.docs.jms.ra.bean.TopicHelloBean/ejb-class
session-typeStateless/session-type
transaction-typeContainer/transaction-type
  resource-ref
 descriptionA Topic ConnectionFactory/description
 res-ref-namejms/MyTopicConnection/res-ref-name
 res-typejavax.jms.TopicConnectionFactory/res-type
 res-authContainer/res-auth
  

RE: [JBoss-user] Distributed MDB JMS resouces inside of beans

2001-06-20 Thread marc fleury

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
|hostname:port 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:
|
| resource-managers
|resource-manager
|  res-nameQueueConnectionFactory/res-name
|  res-jndi-namejava:/JmsXA/res-jndi-name
|/resource-manager
|
|resource-manager
|  res-nameWorkRequestQueue/res-name
|   res-urljnp://router:5001/queue/WorkRequestQueue/res-url
|/resource-manager
|
|resource-manager
|  res-nameWorkResponseQueue/res-name
|  res-urljnp://router:5001/queue/WorkResponseQueue/res-url
|/resource-manager
|  /resource-managers
|
|I started up the application again, and got:
|
|snip
|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)
|/snip
|
|So I thought that I should try a distributed TX manager, 

RE: [JBoss-user] Distributed MDB JMS resouces inside of beans

2001-06-20 Thread Jason Dillon

 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