[flexcoders] Re: DataServiceException
What version of LCDS was this written for? I can't seem to resolve seq.getItemInfo() with my 2.5.1 jars. --- In flexcoders@yahoogroups.com, Jeff Vroom [EMAIL PROTECTED] wrote: Yeah, it should be calling any fill methods which are still actively managed by clients in that refreshFill call - as long as you have autoSync=true. There are a couple of ways to track this down: 1) Put in this printSeq.jsp file (enclosed below) and request it. It will show you all active fills, etc. If that is empty, somehow the client's fill is not auto-sync'd. 2) If you turn on the Service.* debug target it should at least indicate which fills it is trying to refresh. Jeff - printSeqs.jsp: %@ page import=flex.data.SequenceManager % %@ page import=flex.messaging.MessageBroker% %@ page import=flex.data.DataService% %@ page import=flex.data.DataDestination% %@ page import=java.util.Map% %@ page import=java.util.List% %@ page import=java.util.Iterator% body code % MessageBroker mb = MessageBroker.getMessageBroker(null); DataService ds = (DataService) mb.getServiceByType(flex.data.DataService); if (ds == null) out.print(no data service); else { Map dests = ds.getDestinations(); for (Iterator it = dests.entrySet().iterator(); it.hasNext(); ) { Map.Entry ent = (Map.Entry) it.next(); String destName = (String) ent.getKey(); DataDestination dest = (DataDestination) ent.getValue(); SequenceManager seq = dest.getSequenceManager(); out.print(Destination: + destName + br); out.print(preSequenceInfo:); out.print(seq.getSequenceInfo()); out.print(/preppreItemInfo:br); out.print(seq.getItemInfo()); out.print(/pre); out.print(p); } } % done /code /body From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Geoffrey Sent: Wednesday, August 06, 2008 2:16 PM To: flexcoders@yahoogroups.com Subject: [flexcoders] Re: DataServiceException I pass false to my begin() method and that stops the DataServiceException from happening, but now nothing seems to happen after I commit(). Here's a current code snippet: DataServiceTransaction dst = DataServiceTransaction.begin(false); dst.refreshFill(myTasks, null); dst.commit(); The destination parameter for refreshFill(), is that the same string as the parameter I pass to the DataService constructor in ActionScript and the name of the destination I set up in data-management-config.xml? (i.e. __ds = new DataService(myTasks); destination id=myTasks ) I would expect to get a hit on the fill() method in my Assembler after the commit() is called, but I ain't gettin' nut'in. Ideas? Thanks, Geoff --- In flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com, Jeff Vroom jvroom@ wrote: Yeah, I wish this stuff was easier to install and configure. Too bad this JTA stuff hasn't been picked up by servlet containers as part of the core. To help debug this problem, here's the source for a .jsp file which does the same thing we do. Usually once this works, DataServiceTransaction.begin(true) will work too: %@ 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 From: flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com [mailto:flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com] On Behalf Of Geoffrey Sent: Monday, August 04, 2008 2:51 PM To: flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com Subject: [flexcoders] Re: DataServiceException I just went through installing/configuring JTA using JOTM(which was not as straight forward as the docs say) with Tomcat. The bummer is that I can't debug into the DataServiceTransaction class... no source. I guess I could try passing false to the begin method, but I should be able to use JOTM. BTW, thanks for your help on that other LCDS issue. --- In flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.commailto:flexcoders%40yahoogroups.com, Jeff Vroom jvroom@ wrote: When you create a DataServiceTransaction
RE: [flexcoders] Re: DataServiceException
Oops, I forgot that particular call was added in a 2.5.1 hotfix or also exists in 2.6. If you comment out that line, you still see the sequenceInfo above which should provide the info you need. Jeff From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Geoffrey Sent: Tuesday, August 12, 2008 8:16 AM To: flexcoders@yahoogroups.com Subject: [flexcoders] Re: DataServiceException What version of LCDS was this written for? I can't seem to resolve seq.getItemInfo() with my 2.5.1 jars. --- In flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com, Jeff Vroom [EMAIL PROTECTED] wrote: Yeah, it should be calling any fill methods which are still actively managed by clients in that refreshFill call - as long as you have autoSync=true. There are a couple of ways to track this down: 1) Put in this printSeq.jsp file (enclosed below) and request it. It will show you all active fills, etc. If that is empty, somehow the client's fill is not auto-sync'd. 2) If you turn on the Service.* debug target it should at least indicate which fills it is trying to refresh. Jeff - printSeqs.jsp: %@ page import=flex.data.SequenceManager % %@ page import=flex.messaging.MessageBroker% %@ page import=flex.data.DataService% %@ page import=flex.data.DataDestination% %@ page import=java.util.Map% %@ page import=java.util.List% %@ page import=java.util.Iterator% body code % MessageBroker mb = MessageBroker.getMessageBroker(null); DataService ds = (DataService) mb.getServiceByType(flex.data.DataService); if (ds == null) out.print(no data service); else { Map dests = ds.getDestinations(); for (Iterator it = dests.entrySet().iterator(); it.hasNext(); ) { Map.Entry ent = (Map.Entry) it.next(); String destName = (String) ent.getKey(); DataDestination dest = (DataDestination) ent.getValue(); SequenceManager seq = dest.getSequenceManager(); out.print(Destination: + destName + br); out.print(preSequenceInfo:); out.print(seq.getSequenceInfo()); out.print(/preppreItemInfo:br); out.print(seq.getItemInfo()); out.print(/pre); out.print(p); } } % done /code /body From: flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com [mailto:flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com] On Behalf Of Geoffrey Sent: Wednesday, August 06, 2008 2:16 PM To: flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com Subject: [flexcoders] Re: DataServiceException I pass false to my begin() method and that stops the DataServiceException from happening, but now nothing seems to happen after I commit(). Here's a current code snippet: DataServiceTransaction dst = DataServiceTransaction.begin(false); dst.refreshFill(myTasks, null); dst.commit(); The destination parameter for refreshFill(), is that the same string as the parameter I pass to the DataService constructor in ActionScript and the name of the destination I set up in data-management-config.xml? (i.e. __ds = new DataService(myTasks); destination id=myTasks ) I would expect to get a hit on the fill() method in my Assembler after the commit() is called, but I ain't gettin' nut'in. Ideas? Thanks, Geoff --- In flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.commailto:flexcoders%40yahoogroups.com, Jeff Vroom jvroom@ wrote: Yeah, I wish this stuff was easier to install and configure. Too bad this JTA stuff hasn't been picked up by servlet containers as part of the core. To help debug this problem, here's the source for a .jsp file which does the same thing we do. Usually once this works, DataServiceTransaction.begin(true) will work too: %@ 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 From: flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.commailto:flexcoders%40yahoogroups.com [mailto:flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.commailto:flexcoders%40yahoogroups.com] On Behalf Of Geoffrey Sent: Monday, August 04, 2008 2:51 PM To: flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.commailto:flexcoders%40yahoogroups.com Subject: [flexcoders] Re: DataServiceException I just went through installing/configuring JTA using JOTM(which was not as straight forward as the docs say
RE: [flexcoders] Re: DataServiceException
Yeah, it should be calling any fill methods which are still actively managed by clients in that refreshFill call - as long as you have autoSync=true. There are a couple of ways to track this down: 1) Put in this printSeq.jsp file (enclosed below) and request it. It will show you all active fills, etc. If that is empty, somehow the client's fill is not auto-sync'd. 2) If you turn on the Service.* debug target it should at least indicate which fills it is trying to refresh. Jeff - printSeqs.jsp: %@ page import=flex.data.SequenceManager % %@ page import=flex.messaging.MessageBroker% %@ page import=flex.data.DataService% %@ page import=flex.data.DataDestination% %@ page import=java.util.Map% %@ page import=java.util.List% %@ page import=java.util.Iterator% body code % MessageBroker mb = MessageBroker.getMessageBroker(null); DataService ds = (DataService) mb.getServiceByType(flex.data.DataService); if (ds == null) out.print(no data service); else { Map dests = ds.getDestinations(); for (Iterator it = dests.entrySet().iterator(); it.hasNext(); ) { Map.Entry ent = (Map.Entry) it.next(); String destName = (String) ent.getKey(); DataDestination dest = (DataDestination) ent.getValue(); SequenceManager seq = dest.getSequenceManager(); out.print(Destination: + destName + br); out.print(preSequenceInfo:); out.print(seq.getSequenceInfo()); out.print(/preppreItemInfo:br); out.print(seq.getItemInfo()); out.print(/pre); out.print(p); } } % done /code /body From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Geoffrey Sent: Wednesday, August 06, 2008 2:16 PM To: flexcoders@yahoogroups.com Subject: [flexcoders] Re: DataServiceException I pass false to my begin() method and that stops the DataServiceException from happening, but now nothing seems to happen after I commit(). Here's a current code snippet: DataServiceTransaction dst = DataServiceTransaction.begin(false); dst.refreshFill(myTasks, null); dst.commit(); The destination parameter for refreshFill(), is that the same string as the parameter I pass to the DataService constructor in ActionScript and the name of the destination I set up in data-management-config.xml? (i.e. __ds = new DataService(myTasks); destination id=myTasks ) I would expect to get a hit on the fill() method in my Assembler after the commit() is called, but I ain't gettin' nut'in. Ideas? Thanks, Geoff --- In flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com, Jeff Vroom [EMAIL PROTECTED] wrote: Yeah, I wish this stuff was easier to install and configure. Too bad this JTA stuff hasn't been picked up by servlet containers as part of the core. To help debug this problem, here's the source for a .jsp file which does the same thing we do. Usually once this works, DataServiceTransaction.begin(true) will work too: %@ 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 From: flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com [mailto:flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com] On Behalf Of Geoffrey Sent: Monday, August 04, 2008 2:51 PM To: flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com Subject: [flexcoders] Re: DataServiceException I just went through installing/configuring JTA using JOTM(which was not as straight forward as the docs say) with Tomcat. The bummer is that I can't debug into the DataServiceTransaction class... no source. I guess I could try passing false to the begin method, but I should be able to use JOTM. BTW, thanks for your help on that other LCDS issue. --- In flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.commailto:flexcoders%40yahoogroups.com, Jeff Vroom jvroom@ wrote: When you create a DataServiceTransaction, especially with true so it needs to start a JTA transaction, it is look in the JNDI namespace for the standard UserTransaction object i.e. new InitialContext().lookup(java:comp/UserTransaction). That call is not working... if you are not in a JEE container or Tomcat with JOTM installed that would explain it. You can try
[flexcoders] Re: DataServiceException
I pass false to my begin() method and that stops the DataServiceException from happening, but now nothing seems to happen after I commit(). Here's a current code snippet: DataServiceTransaction dst = DataServiceTransaction.begin(false); dst.refreshFill(myTasks, null); dst.commit(); The destination parameter for refreshFill(), is that the same string as the parameter I pass to the DataService constructor in ActionScript and the name of the destination I set up in data-management-config.xml? (i.e. __ds = new DataService(myTasks); destination id=myTasks ) I would expect to get a hit on the fill() method in my Assembler after the commit() is called, but I ain't gettin' nut'in. Ideas? Thanks, Geoff --- In flexcoders@yahoogroups.com, Jeff Vroom [EMAIL PROTECTED] wrote: Yeah, I wish this stuff was easier to install and configure. Too bad this JTA stuff hasn't been picked up by servlet containers as part of the core. To help debug this problem, here's the source for a .jsp file which does the same thing we do. Usually once this works, DataServiceTransaction.begin(true) will work too: %@ 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 From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Geoffrey Sent: Monday, August 04, 2008 2:51 PM To: flexcoders@yahoogroups.com Subject: [flexcoders] Re: DataServiceException I just went through installing/configuring JTA using JOTM(which was not as straight forward as the docs say) with Tomcat. The bummer is that I can't debug into the DataServiceTransaction class... no source. I guess I could try passing false to the begin method, but I should be able to use JOTM. BTW, thanks for your help on that other LCDS issue. --- In flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com, Jeff Vroom jvroom@ wrote: When you create a DataServiceTransaction, especially with true so it needs to start a JTA transaction, it is look in the JNDI namespace for the standard UserTransaction object i.e. new InitialContext().lookup(java:comp/UserTransaction). That call is not working... if you are not in a JEE container or Tomcat with JOTM installed that would explain it. You can try passing false to begin and that would avoid use of the JTA transaction manager. Jeff From: flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com [mailto:flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com] On Behalf Of Geoffrey Sent: Monday, August 04, 2008 1:31 PM To: flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com Subject: [flexcoders] DataServiceException I'm trying to create a DataServiceTransaction to push an update out to my DataService clients. I'm getting the below error when it tries to create the DataServiceTransaction. flex.data.DataServiceException: Unable to access UserTransaction in DataService. at flex.data.DataServiceTransaction.doBegin(DataServiceTransaction.java:855) at flex.data.DataServiceTransaction.begin(DataServiceTransaction.java:807) at flex.data.DataServiceTransaction.begin(DataServiceTransaction.java:270) at flex.data.DataServiceTransaction.begin(DataServiceTransaction.java:283) ... My code is: DataServiceTransaction dst = DataServiceTransaction.begin(true); dst.refreshFill(myTasks, null); dst.commit(); Any ideas? Geoff
[flexcoders] Re: DataServiceException
I just went through installing/configuring JTA using JOTM(which was not as straight forward as the docs say) with Tomcat. The bummer is that I can't debug into the DataServiceTransaction class... no source. I guess I could try passing false to the begin method, but I should be able to use JOTM. BTW, thanks for your help on that other LCDS issue. --- In flexcoders@yahoogroups.com, Jeff Vroom [EMAIL PROTECTED] wrote: When you create a DataServiceTransaction, especially with true so it needs to start a JTA transaction, it is look in the JNDI namespace for the standard UserTransaction object i.e. new InitialContext().lookup(java:comp/UserTransaction). That call is not working... if you are not in a JEE container or Tomcat with JOTM installed that would explain it.You can try passing false to begin and that would avoid use of the JTA transaction manager. Jeff From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Geoffrey Sent: Monday, August 04, 2008 1:31 PM To: flexcoders@yahoogroups.com Subject: [flexcoders] DataServiceException I'm trying to create a DataServiceTransaction to push an update out to my DataService clients. I'm getting the below error when it tries to create the DataServiceTransaction. flex.data.DataServiceException: Unable to access UserTransaction in DataService. at flex.data.DataServiceTransaction.doBegin(DataServiceTransaction.java:855) at flex.data.DataServiceTransaction.begin(DataServiceTransaction.java:807) at flex.data.DataServiceTransaction.begin(DataServiceTransaction.java:270) at flex.data.DataServiceTransaction.begin(DataServiceTransaction.java:283) ... My code is: DataServiceTransaction dst = DataServiceTransaction.begin(true); dst.refreshFill(myTasks, null); dst.commit(); Any ideas? Geoff
RE: [flexcoders] Re: DataServiceException
Yeah, I wish this stuff was easier to install and configure. Too bad this JTA stuff hasn't been picked up by servlet containers as part of the core. To help debug this problem, here's the source for a .jsp file which does the same thing we do. Usually once this works, DataServiceTransaction.begin(true) will work too: %@ 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 From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Geoffrey Sent: Monday, August 04, 2008 2:51 PM To: flexcoders@yahoogroups.com Subject: [flexcoders] Re: DataServiceException I just went through installing/configuring JTA using JOTM(which was not as straight forward as the docs say) with Tomcat. The bummer is that I can't debug into the DataServiceTransaction class... no source. I guess I could try passing false to the begin method, but I should be able to use JOTM. BTW, thanks for your help on that other LCDS issue. --- In flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com, Jeff Vroom [EMAIL PROTECTED] wrote: When you create a DataServiceTransaction, especially with true so it needs to start a JTA transaction, it is look in the JNDI namespace for the standard UserTransaction object i.e. new InitialContext().lookup(java:comp/UserTransaction). That call is not working... if you are not in a JEE container or Tomcat with JOTM installed that would explain it. You can try passing false to begin and that would avoid use of the JTA transaction manager. Jeff From: flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com [mailto:flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com] On Behalf Of Geoffrey Sent: Monday, August 04, 2008 1:31 PM To: flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com Subject: [flexcoders] DataServiceException I'm trying to create a DataServiceTransaction to push an update out to my DataService clients. I'm getting the below error when it tries to create the DataServiceTransaction. flex.data.DataServiceException: Unable to access UserTransaction in DataService. at flex.data.DataServiceTransaction.doBegin(DataServiceTransaction.java:855) at flex.data.DataServiceTransaction.begin(DataServiceTransaction.java:807) at flex.data.DataServiceTransaction.begin(DataServiceTransaction.java:270) at flex.data.DataServiceTransaction.begin(DataServiceTransaction.java:283) ... My code is: DataServiceTransaction dst = DataServiceTransaction.begin(true); dst.refreshFill(myTasks, null); dst.commit(); Any ideas? Geoff inline: image001.jpginline: image002.jpg