[flexcoders] Issue with transactions on Data Management Service

2007-08-27 Thread mancer82
Hello, I'm actually creating an application for a library and I'm
running it on JBoss 4.2.0.GA with underlying DB2 8.2.

The application relies on a POJO + Hibernate3 server backend,
communicating with the Flex client thru Data Management Service
destinations.

The problem I get is the following; as long as I ask for records using
the dataservice.fill() method, I encounter no issue and the app works
fine. But as soon as I try to create a new item, or modify an existing
one, I get this error in STDOUT:


2004-10-24 20:26:35,125 INFO  [STDOUT] [Flex] Exception when invoking
service: data-service
  with message: Flex Message (flex.data.messages.DataMessage) 
operation = transacted
id = null
clientId = 81828BBA-8E7A-B668-86B3-76D34BF1071F
correlationId = 
destination = utente.hibernate
messageId = ADE53343-F3F1-D938-A31D-CC308E3F66B1
timestamp = 1098642394734
timeToLive = 0
body = 
[
  Flex Message (flex.data.messages.DataMessage) 
  operation = create_and_sequence
  id = ASObject(19507034){id=2004901826687}
  clientId = 43BC3541-8881-F29B-B186-CC3039979243
  correlationId = ADE53343-F3F1-D938-A31D-CC308E3F66B1
  destination = utente.hibernate
  messageId = 59933554-59E2-8624-EA5B-CC308E3F279A
  timestamp = 0
  timeToLive = 0
  body = [EMAIL PROTECTED]
]
hdr(DSEndpoint) = my-rtmp
  exception: flex.data.DataServiceException: Unable to access
UserTransaction in DataService.
2004-10-24 20:26:35,125 INFO  [STDOUT] [Flex] Error handling rtmp
message: flex.data.DataServiceException: Unable to access
UserTransaction in DataService.
incomingMessage: Flex Message (flex.data.messages.DataMessage) 
operation = transacted
id = null
clientId = 81828BBA-8E7A-B668-86B3-76D34BF1071F
correlationId = 
destination = utente.hibernate
messageId = ADE53343-F3F1-D938-A31D-CC308E3F66B1
timestamp = 1098642394734
timeToLive = 0
body = 
[
  Flex Message (flex.data.messages.DataMessage) 
  operation = create_and_sequence
  id = ASObject(19507034){id=2004901826687}
  clientId = 43BC3541-8881-F29B-B186-CC3039979243
  correlationId = ADE53343-F3F1-D938-A31D-CC308E3F66B1
  destination = utente.hibernate
  messageId = 59933554-59E2-8624-EA5B-CC308E3F279A
  timestamp = 0
  timeToLive = 0
  body = [EMAIL PROTECTED]
]
hdr(DSEndpoint) = my-rtmp
errorReply: Flex Message (flex.messaging.messages.ErrorMessage) 
clientId = null
correlationId = ADE53343-F3F1-D938-A31D-CC308E3F66B1
destination = utente.hibernate
messageId = 81828F75-2508-726A-7B40-2ECD5E71CF75
timestamp = 1098642395125
timeToLive = 0
body = null
code =  Server.Processing
message =  Unable to access UserTransaction in DataService.
details =  null
rootCause =  java.lang.ClassCastException:
org.jboss.tm.usertx.client.ServerVMClientUserTransaction cannot be
cast to javax.transaction.UserTransaction
body =  null
extendedData =  null
2004-10-24 20:26:35,125 INFO  [STDOUT] [Flex]
cause=java.lang.ClassCastException:
org.jboss.tm.usertx.client.ServerVMClientUserTransaction cannot be
cast to javax.transaction.UserTransaction type=class
java.lang.ClassCastException
java.lang.ClassCastException:
org.jboss.tm.usertx.client.ServerVMClientUserTransaction cannot be
cast to javax.transaction.UserTransaction
 at
flex.data.DataServiceTransaction.doBegin(DataServiceTransaction.java:653)
 at
flex.data.DataServiceTransaction.begin(DataServiceTransaction.java:624)
 at flex.data.DataService.serviceTransactedMessage(DataService.java:474)
 at flex.data.DataService.serviceMessage(DataService.java:241)
 at
flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:548)
 at
flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:302)
 at
flex.messaging.endpoints.rtmp.AbstractRTMPServer.dispatchMessage(AbstractRTMPServer.java:682)
 at
flex.messaging.endpoints.rtmp.NIORTMPConnection$RTMPReader.run(NIORTMPConnection.java:665)
 at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
 at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
 at java.lang.Thread.run(Thread.java:619)
2004-10-24 20:26:35,140 INFO  [STDOUT] [Flex] Serializing AMF/RTMP
response
Version: 3
  (Command method=_error (0) trxId=17)
(Typed Object #0 'flex.messaging.messages.ErrorMessage')
  headers = (Object #1)
  rootCause = (Typed Object #2 'java.lang.ClassCastException')
message =
org.jboss.tm.usertx.client.ServerVMClientUserTransaction cannot be
cast to javax.transaction.UserTransaction
localizedMessage =
org.jboss.tm.usertx.client.ServerVMClientUserTransaction cannot be
cast to javax.transaction.UserTransaction
cause = null
  body = null
  correlationId = 

RE: [flexcoders] Issue with transactions on Data Management Service

2007-08-27 Thread Jeff Vroom
I think that somehow you have got two versions of the UserTransaction
class in your classpath.  Maybe you followed the tomcat instructions for
installing JOTM?  If so, that is not necessary (and will break) jboss.

 

Here's a simple JSP you can use to debug this problem without DS in the
way:

 

%@ page import=javax.transaction.UserTransaction % 

%@ page import=javax.naming.InitialContext % 

%@ page import=javax.naming.Context % 

body

 

startbr

%

try

{

Context ctx = new InitialContext();

 

String userTransactionJndi = java:comp/UserTransaction;

String userSpecified = System.getProperty(UserTxJndiName);

if (userSpecified != null)

{

userTransactionJndi = userSpecified;

}

UserTransaction userTransaction = (UserTransaction)
ctx.lookup(userTransactionJndi);

if (userTransaction != null)

{

userTransaction.begin();

out.println(begin ok!br);

userTransaction.commit();

out.println(commit ok!br);

}

else

{

out.println(returned null);

}

}

catch (Exception ne)

{

out.println(ne.toString());

}

%

 

done

 

/body

 

When this works, DS with use-transactions=true should also work.

 

Jeff

 



From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of mancer82
Sent: Monday, August 27, 2007 9:17 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Issue with transactions on Data Management Service

 

Hello, I'm actually creating an application for a library and I'm
running it on JBoss 4.2.0.GA with underlying DB2 8.2.

The application relies on a POJO + Hibernate3 server backend,
communicating with the Flex client thru Data Management Service
destinations.

The problem I get is the following; as long as I ask for records using
the dataservice.fill() method, I encounter no issue and the app works
fine. But as soon as I try to create a new item, or modify an existing
one, I get this error in STDOUT:

2004-10-24 20:26:35,125 INFO [STDOUT] [Flex] Exception when invoking
service: data-service
with message: Flex Message (flex.data.messages.DataMessage) 
operation = transacted
id = null
clientId = 81828BBA-8E7A-B668-86B3-76D34BF1071F
correlationId = 
destination = utente.hibernate
messageId = ADE53343-F3F1-D938-A31D-CC308E3F66B1
timestamp = 1098642394734
timeToLive = 0
body = 
[
Flex Message (flex.data.messages.DataMessage) 
operation = create_and_sequence
id = ASObject(19507034){id=2004901826687}
clientId = 43BC3541-8881-F29B-B186-CC3039979243
correlationId = ADE53343-F3F1-D938-A31D-CC308E3F66B1
destination = utente.hibernate
messageId = 59933554-59E2-8624-EA5B-CC308E3F279A
timestamp = 0
timeToLive = 0
body = [EMAIL PROTECTED]
]
hdr(DSEndpoint) = my-rtmp
exception: flex.data.DataServiceException: Unable to access
UserTransaction in DataService.
2004-10-24 20:26:35,125 INFO [STDOUT] [Flex] Error handling rtmp
message: flex.data.DataServiceException: Unable to access
UserTransaction in DataService.
incomingMessage: Flex Message (flex.data.messages.DataMessage) 
operation = transacted
id = null
clientId = 81828BBA-8E7A-B668-86B3-76D34BF1071F
correlationId = 
destination = utente.hibernate
messageId = ADE53343-F3F1-D938-A31D-CC308E3F66B1
timestamp = 1098642394734
timeToLive = 0
body = 
[
Flex Message (flex.data.messages.DataMessage) 
operation = create_and_sequence
id = ASObject(19507034){id=2004901826687}
clientId = 43BC3541-8881-F29B-B186-CC3039979243
correlationId = ADE53343-F3F1-D938-A31D-CC308E3F66B1
destination = utente.hibernate
messageId = 59933554-59E2-8624-EA5B-CC308E3F279A
timestamp = 0
timeToLive = 0
body = [EMAIL PROTECTED]
]
hdr(DSEndpoint) = my-rtmp
errorReply: Flex Message (flex.messaging.messages.ErrorMessage) 
clientId = null
correlationId = ADE53343-F3F1-D938-A31D-CC308E3F66B1
destination = utente.hibernate
messageId = 81828F75-2508-726A-7B40-2ECD5E71CF75
timestamp = 1098642395125
timeToLive = 0
body = null
code = Server.Processing
message = Unable to access UserTransaction in DataService.
details = null
rootCause = java.lang.ClassCastException:
org.jboss.tm.usertx.client.ServerVMClientUserTransaction cannot be
cast to javax.transaction.UserTransaction
body = null
extendedData = null
2004-10-24 20:26:35,125 INFO [STDOUT] [Flex]
cause=java.lang.ClassCastException:
org.jboss.tm.usertx.client.ServerVMClientUserTransaction cannot be
cast to javax.transaction.UserTransaction type=class
java.lang.ClassCastException
java.lang.ClassCastException:
org.jboss.tm.usertx.client.ServerVMClientUserTransaction cannot be
cast to javax.transaction.UserTransaction
at
flex.data.DataServiceTransaction.doBegin(DataServiceTransaction.java:653
)
at
flex.data.DataServiceTransaction.begin(DataServiceTransaction.java:624