Re: [JBoss-dev] MarshalException for Remote Invocation (610392)

2002-09-17 Thread David Jencks

I haven't looked at the code, I've just been thinking about how to make the
jboss tm distributed.

First, until the jboss tm is distributed, it seems to me that problems
invoking an ejb on another server from inside a tx using the jboss tm are
appropriate, since the tx can't be propagated.

Using tyrex or the future enhanced jboss tm, I believe there has to be an
XAResource somewhere near the remote invoker or proxy that gets the tm to
produce an xid branch for the tx on the other server.  IMO the Xid is what
should get serialized and sent over.  I've been thinking that a client
interceptor would be the place for the XAResource.  On the other side,
something needs to take the xid and create a transaction on the 2nd server,
associated with this xid. The something is implemented in jboss 4 in the
jca 1.5 support.

WIth Tyrex, I imagine they must have code that does this stuff.  Does the
tyrex integration code appear to be trying to do any of this?

Thanks
david jencks


On 2002.09.17 03:18:15 -0400 Brian Towles wrote:
 Howdy all
 
 Repeating what be bug said.. (just for frame of reference)
 
 --
 A Marshaling Exception is being thrown the remote
 invoker when any remote EJB function is called
 (inter-jboss).  Even when using Tyrex as a transaction
 manager.
 
 This is being caused by the Transaction Implmentation
 being placed in the MarshalledInvocation's
 as_is_payload Map.  This is preventing any  remote
 invocation because the TransactionImpl for both jboss
 and tyrex are not serializable.  
 
 For a remote invocation it is my understanding that
 only the TransactionPropogationContext (TPC) is what is
 needed to migrate the transaction for remote
 invocation.  The TPC is being placed in the in the
 MarshaledInvocation correctly.
 --
 
 Ive been hunting this one down for a while and I would like some advice
 on what a proper fix would be.  
 
 Would simply putting it into the transient_payload keep things working
 internally?  Theoretically it should then not be marshaled and the TPC
 should be the transaction propagation mechanism for remote.
 
 Right now I'm looking for a quick solution cause I have a deadline to
 meet. (don't we all).
 
 Any hints would help
 
 Thanks
 -=Brian
 
 
 
 
 
 
 
 ---
 Sponsored by: AMD - Your access to the experts on Hammer Technology! 
 Open Source  Linux Developers, register now for the AMD Developer 
 Symposium. Code: EX8664 http://www.developwithamd.com/developerlab
 ___
 Jboss-development mailing list
 [EMAIL PROTECTED]
 https://lists.sourceforge.net/lists/listinfo/jboss-development
 
 


---
Sponsored by: AMD - Your access to the experts on Hammer Technology! 
Open Source  Linux Developers, register now for the AMD Developer 
Symposium. Code: EX8664 http://www.developwithamd.com/developerlab
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



Re: [JBoss-dev] MarshalException for Remote Invocation (610392)

2002-09-17 Thread Brian Towles


Tyrex has makes use of the OTS (jts corba stuff) and has a
TransactionPropogationContext (TPC) which wraps the OTS propogation
context.  The OTS has XA resources as well as Xids that are
externalizable.  So yes this is done by the tyrex plugin specifically. 
It takes the TPC on an import and converts it to a Transaction.

As well on the reverse takes a Transaction and coverts it to a TPC which
can be serialized.

The JBoss implementaion allows the TPC to be added to any marshalled
invocation.  So the capability to do distributed transactions is already
in therejust not for the the default JBoss transaction manager.  It
actually uses a TransactionImpl as a TPC.


Just FYI the change to the storage location for the Transaction in the
MarshalledInvocation seems to work.  I am currently able to do
distributed transactions with the tyrex plugin under 3.0.1.  I have not
run the testsuite yet  but will  shortly.


Thanks
-=Brian

On Tue, 2002-09-17 at 06:37, David Jencks wrote:
 I haven't looked at the code, I've just been thinking about how to make the
 jboss tm distributed.
 
 First, until the jboss tm is distributed, it seems to me that problems
 invoking an ejb on another server from inside a tx using the jboss tm are
 appropriate, since the tx can't be propagated.
 
 Using tyrex or the future enhanced jboss tm, I believe there has to be an
 XAResource somewhere near the remote invoker or proxy that gets the tm to
 produce an xid branch for the tx on the other server.  IMO the Xid is what
 should get serialized and sent over.  I've been thinking that a client
 interceptor would be the place for the XAResource.  On the other side,
 something needs to take the xid and create a transaction on the 2nd server,
 associated with this xid. The something is implemented in jboss 4 in the
 jca 1.5 support.
 
 WIth Tyrex, I imagine they must have code that does this stuff.  Does the
 tyrex integration code appear to be trying to do any of this?
 
 Thanks
 david jencks
 
 
 On 2002.09.17 03:18:15 -0400 Brian Towles wrote:
  Howdy all
  
  Repeating what be bug said.. (just for frame of reference)
  
  --
  A Marshaling Exception is being thrown the remote
  invoker when any remote EJB function is called
  (inter-jboss).  Even when using Tyrex as a transaction
  manager.
  
  This is being caused by the Transaction Implmentation
  being placed in the MarshalledInvocation's
  as_is_payload Map.  This is preventing any  remote
  invocation because the TransactionImpl for both jboss
  and tyrex are not serializable.  
  
  For a remote invocation it is my understanding that
  only the TransactionPropogationContext (TPC) is what is
  needed to migrate the transaction for remote
  invocation.  The TPC is being placed in the in the
  MarshaledInvocation correctly.
  --
  
  Ive been hunting this one down for a while and I would like some advice
  on what a proper fix would be.  
  
  Would simply putting it into the transient_payload keep things working
  internally?  Theoretically it should then not be marshaled and the TPC
  should be the transaction propagation mechanism for remote.
  
  Right now I'm looking for a quick solution cause I have a deadline to
  meet. (don't we all).
  
  Any hints would help
  
  Thanks
  -=Brian
  
  
  
  
  
  
  
  ---
  Sponsored by: AMD - Your access to the experts on Hammer Technology! 
  Open Source  Linux Developers, register now for the AMD Developer 
  Symposium. Code: EX8664 http://www.developwithamd.com/developerlab
  ___
  Jboss-development mailing list
  [EMAIL PROTECTED]
  https://lists.sourceforge.net/lists/listinfo/jboss-development
  
  
 
 
 ---
 Sponsored by: AMD - Your access to the experts on Hammer Technology! 
 Open Source  Linux Developers, register now for the AMD Developer 
 Symposium. Code: EX8664 http://www.developwithamd.com/developerlab
 ___
 Jboss-development mailing list
 [EMAIL PROTECTED]
 https://lists.sourceforge.net/lists/listinfo/jboss-development




---
Sponsored by: AMD - Your access to the experts on Hammer Technology! 
Open Source  Linux Developers, register now for the AMD Developer 
Symposium. Code: EX8664 http://www.developwithamd.com/developerlab
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development