order shipped email

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
17 messages Options
Reply | Threaded
Open this post in threaded view
|

order shipped email

Hansen
Hi,

I have been going through the admin webapps looking for places where a
shipping notification email is sent. But I was not able to find that. Is
such function supported out of box from the admin webapps?

Thanks,
Hansen
Reply | Threaded
Open this post in threaded view
|

Re: order shipped email

Jacques Le Roux
Administrator
It's set there https://demo.hotwaxmedia.com/catalog/control/EditProductStoreEmails?productStoreId=9000

Jacques

From: "Hansen Wang" <[hidden email]>
> Hi,
>
> I have been going through the admin webapps looking for places where a
> shipping notification email is sent. But I was not able to find that. Is
> such function supported out of box from the admin webapps?
>
> Thanks,
> Hansen
>
Reply | Threaded
Open this post in threaded view
|

Re: order shipped email

Hansen
I have been to these places. But could not find an "order shipped" email
type. I have searched the java and xml files but could not locate any
information about this.

Does ofbiz send out an "order shipped" email once a package is shipped?

Regards,
Hansen


On 3/17/08, Jacques Le Roux <[hidden email]> wrote:

>
> It's set there
> https://demo.hotwaxmedia.com/catalog/control/EditProductStoreEmails?productStoreId=9000
>
> Jacques
>
> From: "Hansen Wang" <[hidden email]>
> > Hi,
> >
> > I have been going through the admin webapps looking for places where a
> > shipping notification email is sent. But I was not able to find that. Is
> > such function supported out of box from the admin webapps?
> >
> > Thanks,
> > Hansen
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: order shipped email

Jacques Le Roux
Administrator
IIRW it's "OFBiz Demo - Shipment Complete Notification #${orderId}"

Look at component://ecommerce/widget/EmailOrderScreens.xml#ShipmentCompleteNotice

Jacques

From: "Hansen Wang" <[hidden email]>

>I have been to these places. But could not find an "order shipped" email
> type. I have searched the java and xml files but could not locate any
> information about this.
>
> Does ofbiz send out an "order shipped" email once a package is shipped?
>
> Regards,
> Hansen
>
>
> On 3/17/08, Jacques Le Roux <[hidden email]> wrote:
>>
>> It's set there
>> https://demo.hotwaxmedia.com/catalog/control/EditProductStoreEmails?productStoreId=9000
>>
>> Jacques
>>
>> From: "Hansen Wang" <[hidden email]>
>> > Hi,
>> >
>> > I have been going through the admin webapps looking for places where a
>> > shipping notification email is sent. But I was not able to find that. Is
>> > such function supported out of box from the admin webapps?
>> >
>> > Thanks,
>> > Hansen
>> >
>>
>
Reply | Threaded
Open this post in threaded view
|

Re: order shipped email

Hansen
Thanks!

Please note that this is new feature after 4.0 since I did not see the
corresponding email type and screens in my box running ofbiz4.0.




On 3/17/08, Jacques Le Roux <[hidden email]> wrote:

>
> IIRW it's "OFBiz Demo - Shipment Complete Notification #${orderId}"
>
> Look at
> component://ecommerce/widget/EmailOrderScreens.xml#ShipmentCompleteNotice
>
> Jacques
>
> From: "Hansen Wang" <[hidden email]>
> >I have been to these places. But could not find an "order shipped" email
> > type. I have searched the java and xml files but could not locate any
> > information about this.
> >
> > Does ofbiz send out an "order shipped" email once a package is shipped?
> >
> > Regards,
> > Hansen
> >
> >
> > On 3/17/08, Jacques Le Roux <[hidden email]> wrote:
> >>
> >> It's set there
> >>
> https://demo.hotwaxmedia.com/catalog/control/EditProductStoreEmails?productStoreId=9000
> >>
> >> Jacques
> >>
> >> From: "Hansen Wang" <[hidden email]>
> >> > Hi,
> >> >
> >> > I have been going through the admin webapps looking for places where
> a
> >> > shipping notification email is sent. But I was not able to find that.
> Is
> >> > such function supported out of box from the admin webapps?
> >> >
> >> > Thanks,
> >> > Hansen
> >> >
> >>
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: order shipped email

rohit
In reply to this post by Hansen
i am sure if there is any particular email sent with order shipped status. you might want to check the 'Order completed' email. this email is sent when inventory is allocated in order processing and the when the order status is changed to completed from created/approved.

rohit



----- Original Message ----
From: Hansen Wang <[hidden email]>
To: [hidden email]; Jacques Le Roux <[hidden email]>
Sent: Monday, March 17, 2008 5:59:33 PM
Subject: Re: order shipped email

I have been to these places. But could not find an "order shipped" email
type. I have searched the java and xml files but could not locate any
information about this.

Does ofbiz send out an "order shipped" email once a package is shipped?

Regards,
Hansen


On 3/17/08, Jacques Le Roux <[hidden email]> wrote:

>
> It's set there
> https://demo.hotwaxmedia.com/catalog/control/EditProductStoreEmails?productStoreId=9000
>
> Jacques
>
> From: "Hansen Wang" <[hidden email]>
> > Hi,
> >
> > I have been going through the admin webapps looking for places where a
> > shipping notification email is sent. But I was not able to find that. Is
> > such function supported out of box from the admin webapps?
> >
> > Thanks,
> > Hansen
> >
>


      ____________________________________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ 
Reply | Threaded
Open this post in threaded view
|

findListIteratorByCondition error

SkipDever
In reply to this post by Hansen
I am getting this error:

ERROR: Cannot do a find that returns an EntityListIterator with no
transaction in place. Wrap this call in a transaction.

on a call to findListIteratorByCondition()

I don't understand why I need a transaction for this when I am just reading
data.

I don't want to put a begin/commit around it because there is nothing to
commit and that seems messy to me.

I don't want to use findByCondition because there are something over a
million records to iterate over.

Does anyone have a suggestion on what to do?

Skip
No virus found in this outgoing message.
Checked by AVG.
Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date: 3/16/2008
10:34 AM

Reply | Threaded
Open this post in threaded view
|

findListIteratorByCondition Error

SkipDever
In reply to this post by Hansen
More on this error.  Here is the code in GenericDelegator which writes the
error to the log.

            //throwing an exception is a little harsh for now, just display
a really big error message since we want to get all of these fixed...
            Exception newE = new Exception("Stack Trace");
            Debug.logError(newE, "ERROR: Cannot do a find that returns an
EntityListIterator with no transaction in place. Wrap this call in a
transaction.", module);


 As the author desired, it is a REALLY big error.  I was writing stdout to a
file which almost filled up my hard disk with these errors.

Could the author comment on why it is important to do this:

                TransactionUtil.begin();
        Map inventory =
dispatcher.runSync("getInventoryAvailableByFacility",
UtilMisc.toMap("productId", productId, "facilityId", facilityId));
                TransactionUtil.commit();

I.E. put the begin/commit around the runSync call other than just to avoid
filling up your hard disk?

Skip




No virus found in this outgoing message.
Checked by AVG.
Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date: 3/16/2008
10:34 AM

Reply | Threaded
Open this post in threaded view
|

Re: findListIteratorByCondition Error

Jacopo Cappellato
skip@thedevers wrote:

> More on this error.  Here is the code in GenericDelegator which writes the
> error to the log.
>
>             //throwing an exception is a little harsh for now, just display
> a really big error message since we want to get all of these fixed...
>             Exception newE = new Exception("Stack Trace");
>             Debug.logError(newE, "ERROR: Cannot do a find that returns an
> EntityListIterator with no transaction in place. Wrap this call in a
> transaction.", module);
>
>
>  As the author desired, it is a REALLY big error.  I was writing stdout to a
> file which almost filled up my hard disk with these errors.
>
> Could the author comment on why it is important to do this:
>
>                 TransactionUtil.begin();
>         Map inventory =
> dispatcher.runSync("getInventoryAvailableByFacility",
> UtilMisc.toMap("productId", productId, "facilityId", facilityId));
>                 TransactionUtil.commit();
>
> I.E. put the begin/commit around the runSync call other than just to avoid
> filling up your hard disk?
>

I'd suggest to avoid redirecting stdout to a file.

Jacopo

> Skip
>
>
>
>
> No virus found in this outgoing message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date: 3/16/2008
> 10:34 AM

Reply | Threaded
Open this post in threaded view
|

RE: findListIteratorByCondition Error

SkipDever
Jacopo

I guess my question should be rephrased.

"Why does the author think that all  findListIteratorByCondition() calls
should be surrounded with a transaction, particularly in this case where it
is read-only."

I just want to make sure I am not missing something.  I am quite happy to
comment out the exception.  In this particular case, 150gigs of log file
were created in one service call to compute stock needs with real live data
from a big company.  I am trying to debug this code and need the regular
debug output to be sure things are going as I expect.

If I really need the begin/end, I am happy to do that, I just wanted to know
why.

Skip

-----Original Message-----
From: Jacopo Cappellato [mailto:[hidden email]]
Sent: Tuesday, March 18, 2008 7:13 PM
To: [hidden email]
Subject: Re: findListIteratorByCondition Error


skip@thedevers wrote:
> More on this error.  Here is the code in GenericDelegator which writes the
> error to the log.
>
>             //throwing an exception is a little harsh for now, just
display
> a really big error message since we want to get all of these fixed...
>             Exception newE = new Exception("Stack Trace");
>             Debug.logError(newE, "ERROR: Cannot do a find that returns an
> EntityListIterator with no transaction in place. Wrap this call in a
> transaction.", module);
>
>
>  As the author desired, it is a REALLY big error.  I was writing stdout to
a

> file which almost filled up my hard disk with these errors.
>
> Could the author comment on why it is important to do this:
>
>                 TransactionUtil.begin();
>         Map inventory =
> dispatcher.runSync("getInventoryAvailableByFacility",
> UtilMisc.toMap("productId", productId, "facilityId", facilityId));
>                 TransactionUtil.commit();
>
> I.E. put the begin/commit around the runSync call other than just to avoid
> filling up your hard disk?
>

I'd suggest to avoid redirecting stdout to a file.

Jacopo

> Skip
>
>
>
>
> No virus found in this outgoing message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date: 3/16/2008
> 10:34 AM


No virus found in this incoming message.
Checked by AVG.
Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date: 3/16/2008
10:34 AM

No virus found in this outgoing message.
Checked by AVG.
Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date: 3/16/2008
10:34 AM

Reply | Threaded
Open this post in threaded view
|

Re: findListIteratorByCondition Error

David E Jones

Skip,

Transactions are just as important for reading as they are for  
writing. In fact most of transaction isolation theory is concerned  
with how reads will be affected by writes.

In OFBiz all major operations are wrapped in a transaction by default,  
even rendering of screens for outgoing information (typically in a  
separate transaction than the events processing incoming data). Most  
entity engine operations get wrapped in a transaction if there is not  
one in place, but it can't do that with the EntityListIterator calls  
because the transaction needs to stay open until the ELI and the  
ResultSet associated with it is closed.

In a busy server environment you'll probably run into database errors  
related to this, but it depends on your traffic and the database you  
use.

But yes, this IS important and was added because production errors  
became common before this was added.

-David


On Mar 18, 2008, at 8:48 PM, skip@thedevers wrote:

> Jacopo
>
> I guess my question should be rephrased.
>
> "Why does the author think that all  findListIteratorByCondition()  
> calls
> should be surrounded with a transaction, particularly in this case  
> where it
> is read-only."
>
> I just want to make sure I am not missing something.  I am quite  
> happy to
> comment out the exception.  In this particular case, 150gigs of log  
> file
> were created in one service call to compute stock needs with real  
> live data
> from a big company.  I am trying to debug this code and need the  
> regular
> debug output to be sure things are going as I expect.
>
> If I really need the begin/end, I am happy to do that, I just wanted  
> to know
> why.
>
> Skip
>
> -----Original Message-----
> From: Jacopo Cappellato [mailto:[hidden email]]
> Sent: Tuesday, March 18, 2008 7:13 PM
> To: [hidden email]
> Subject: Re: findListIteratorByCondition Error
>
>
> skip@thedevers wrote:
>> More on this error.  Here is the code in GenericDelegator which  
>> writes the
>> error to the log.
>>
>>            //throwing an exception is a little harsh for now, just
> display
>> a really big error message since we want to get all of these fixed...
>>            Exception newE = new Exception("Stack Trace");
>>            Debug.logError(newE, "ERROR: Cannot do a find that  
>> returns an
>> EntityListIterator with no transaction in place. Wrap this call in a
>> transaction.", module);
>>
>>
>> As the author desired, it is a REALLY big error.  I was writing  
>> stdout to
> a
>> file which almost filled up my hard disk with these errors.
>>
>> Could the author comment on why it is important to do this:
>>
>>                TransactionUtil.begin();
>>         Map inventory =
>> dispatcher.runSync("getInventoryAvailableByFacility",
>> UtilMisc.toMap("productId", productId, "facilityId", facilityId));
>>                TransactionUtil.commit();
>>
>> I.E. put the begin/commit around the runSync call other than just  
>> to avoid
>> filling up your hard disk?
>>
>
> I'd suggest to avoid redirecting stdout to a file.
>
> Jacopo
>
>> Skip
>>
>>
>>
>>
>> No virus found in this outgoing message.
>> Checked by AVG.
>> Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:  
>> 3/16/2008
>> 10:34 AM
>
>
> No virus found in this incoming message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:  
> 3/16/2008
> 10:34 AM
>
> No virus found in this outgoing message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:  
> 3/16/2008
> 10:34 AM
>

Reply | Threaded
Open this post in threaded view
|

Re: findListIteratorByCondition Error

Rodrigo Lima-2
Transactions for search?

2008/3/19, David E Jones <[hidden email]>:

>
>
> Skip,
>
> Transactions are just as important for reading as they are for
> writing. In fact most of transaction isolation theory is concerned
> with how reads will be affected by writes.
>
> In OFBiz all major operations are wrapped in a transaction by default,
> even rendering of screens for outgoing information (typically in a
> separate transaction than the events processing incoming data). Most
> entity engine operations get wrapped in a transaction if there is not
> one in place, but it can't do that with the EntityListIterator calls
> because the transaction needs to stay open until the ELI and the
> ResultSet associated with it is closed.
>
> In a busy server environment you'll probably run into database errors
> related to this, but it depends on your traffic and the database you
> use.
>
> But yes, this IS important and was added because production errors
> became common before this was added.
>
> -David
>
>
> On Mar 18, 2008, at 8:48 PM, skip@thedevers wrote:
>
> > Jacopo
> >
> > I guess my question should be rephrased.
> >
> > "Why does the author think that all  findListIteratorByCondition()
> > calls
> > should be surrounded with a transaction, particularly in this case
> > where it
> > is read-only."
> >
> > I just want to make sure I am not missing something.  I am quite
> > happy to
> > comment out the exception.  In this particular case, 150gigs of log
> > file
> > were created in one service call to compute stock needs with real
> > live data
> > from a big company.  I am trying to debug this code and need the
> > regular
> > debug output to be sure things are going as I expect.
> >
> > If I really need the begin/end, I am happy to do that, I just wanted
> > to know
> > why.
> >
> > Skip
> >
> > -----Original Message-----
> > From: Jacopo Cappellato [mailto:[hidden email]]
> > Sent: Tuesday, March 18, 2008 7:13 PM
> > To: [hidden email]
> > Subject: Re: findListIteratorByCondition Error
> >
> >
> > skip@thedevers wrote:
> >> More on this error.  Here is the code in GenericDelegator which
> >> writes the
> >> error to the log.
> >>
> >>            //throwing an exception is a little harsh for now, just
> > display
> >> a really big error message since we want to get all of these fixed...
> >>            Exception newE = new Exception("Stack Trace");
> >>            Debug.logError(newE, "ERROR: Cannot do a find that
> >> returns an
> >> EntityListIterator with no transaction in place. Wrap this call in a
> >> transaction.", module);
> >>
> >>
> >> As the author desired, it is a REALLY big error.  I was writing
> >> stdout to
> > a
> >> file which almost filled up my hard disk with these errors.
> >>
> >> Could the author comment on why it is important to do this:
> >>
> >>                TransactionUtil.begin();
> >>                      Map inventory =
> >> dispatcher.runSync("getInventoryAvailableByFacility",
> >> UtilMisc.toMap("productId", productId, "facilityId", facilityId));
> >>                TransactionUtil.commit();
> >>
> >> I.E. put the begin/commit around the runSync call other than just
> >> to avoid
> >> filling up your hard disk?
> >>
> >
> > I'd suggest to avoid redirecting stdout to a file.
> >
> > Jacopo
> >
> >> Skip
> >>
> >>
> >>
> >>
> >> No virus found in this outgoing message.
> >> Checked by AVG.
> >> Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:
> >> 3/16/2008
> >> 10:34 AM
> >
> >
> > No virus found in this incoming message.
> > Checked by AVG.
> > Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:
> > 3/16/2008
> > 10:34 AM
> >
> > No virus found in this outgoing message.
> > Checked by AVG.
> > Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:
> > 3/16/2008
> > 10:34 AM
> >
>
>
Reply | Threaded
Open this post in threaded view
|

Re: findListIteratorByCondition Error

Jacques Le Roux
Administrator
Rodrigo,

I think that by

>>In fact most of transaction isolation theory is concerned
>> with how reads will be affected by writes

David meaned that it avoids collisions, or if you prefer it assures security in atomic data level calls. What could happen if
someone would write the same entities at the same time. They are setting for these kind of things at the data level (DB specific if
IIRW) but this is a pain OFBiz is trying to avoid. I may be wrong but in such cases I'm sure David will correct/complete me...

Jacques

From: "Rodrigo Lima" <[hidden email]>

> Transactions for search?
>
> 2008/3/19, David E Jones <[hidden email]>:
>>
>>
>> Skip,
>>
>> Transactions are just as important for reading as they are for
>> writing. In fact most of transaction isolation theory is concerned
>> with how reads will be affected by writes.
>>
>> In OFBiz all major operations are wrapped in a transaction by default,
>> even rendering of screens for outgoing information (typically in a
>> separate transaction than the events processing incoming data). Most
>> entity engine operations get wrapped in a transaction if there is not
>> one in place, but it can't do that with the EntityListIterator calls
>> because the transaction needs to stay open until the ELI and the
>> ResultSet associated with it is closed.
>>
>> In a busy server environment you'll probably run into database errors
>> related to this, but it depends on your traffic and the database you
>> use.
>>
>> But yes, this IS important and was added because production errors
>> became common before this was added.
>>
>> -David
>>
>>
>> On Mar 18, 2008, at 8:48 PM, skip@thedevers wrote:
>>
>> > Jacopo
>> >
>> > I guess my question should be rephrased.
>> >
>> > "Why does the author think that all  findListIteratorByCondition()
>> > calls
>> > should be surrounded with a transaction, particularly in this case
>> > where it
>> > is read-only."
>> >
>> > I just want to make sure I am not missing something.  I am quite
>> > happy to
>> > comment out the exception.  In this particular case, 150gigs of log
>> > file
>> > were created in one service call to compute stock needs with real
>> > live data
>> > from a big company.  I am trying to debug this code and need the
>> > regular
>> > debug output to be sure things are going as I expect.
>> >
>> > If I really need the begin/end, I am happy to do that, I just wanted
>> > to know
>> > why.
>> >
>> > Skip
>> >
>> > -----Original Message-----
>> > From: Jacopo Cappellato [mailto:[hidden email]]
>> > Sent: Tuesday, March 18, 2008 7:13 PM
>> > To: [hidden email]
>> > Subject: Re: findListIteratorByCondition Error
>> >
>> >
>> > skip@thedevers wrote:
>> >> More on this error.  Here is the code in GenericDelegator which
>> >> writes the
>> >> error to the log.
>> >>
>> >>            //throwing an exception is a little harsh for now, just
>> > display
>> >> a really big error message since we want to get all of these fixed...
>> >>            Exception newE = new Exception("Stack Trace");
>> >>            Debug.logError(newE, "ERROR: Cannot do a find that
>> >> returns an
>> >> EntityListIterator with no transaction in place. Wrap this call in a
>> >> transaction.", module);
>> >>
>> >>
>> >> As the author desired, it is a REALLY big error.  I was writing
>> >> stdout to
>> > a
>> >> file which almost filled up my hard disk with these errors.
>> >>
>> >> Could the author comment on why it is important to do this:
>> >>
>> >>                TransactionUtil.begin();
>> >>                      Map inventory =
>> >> dispatcher.runSync("getInventoryAvailableByFacility",
>> >> UtilMisc.toMap("productId", productId, "facilityId", facilityId));
>> >>                TransactionUtil.commit();
>> >>
>> >> I.E. put the begin/commit around the runSync call other than just
>> >> to avoid
>> >> filling up your hard disk?
>> >>
>> >
>> > I'd suggest to avoid redirecting stdout to a file.
>> >
>> > Jacopo
>> >
>> >> Skip
>> >>
>> >>
>> >>
>> >>
>> >> No virus found in this outgoing message.
>> >> Checked by AVG.
>> >> Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:
>> >> 3/16/2008
>> >> 10:34 AM
>> >
>> >
>> > No virus found in this incoming message.
>> > Checked by AVG.
>> > Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:
>> > 3/16/2008
>> > 10:34 AM
>> >
>> > No virus found in this outgoing message.
>> > Checked by AVG.
>> > Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:
>> > 3/16/2008
>> > 10:34 AM
>> >
>>
>>
>

Reply | Threaded
Open this post in threaded view
|

RE: findListIteratorByCondition Error

SkipDever
In reply to this post by David E Jones
David

Thanks a load for the explanation.  My education continues!

I have one further question then though.  In this particular case, a service
is running which reads a processes an EntityListIterator.  Should I have a
begin/commit around just the creation of the ELI or should I have one around
both the creation and the getNext() as well?  In this case, there is a
getNext(), some getRelated(), some computations, and then repeat.  This will
be a very busy server.

Skip

-----Original Message-----
From: David E Jones [mailto:[hidden email]]
Sent: Tuesday, March 18, 2008 8:35 PM
To: [hidden email]
Subject: Re: findListIteratorByCondition Error



Skip,

Transactions are just as important for reading as they are for
writing. In fact most of transaction isolation theory is concerned
with how reads will be affected by writes.

In OFBiz all major operations are wrapped in a transaction by default,
even rendering of screens for outgoing information (typically in a
separate transaction than the events processing incoming data). Most
entity engine operations get wrapped in a transaction if there is not
one in place, but it can't do that with the EntityListIterator calls
because the transaction needs to stay open until the ELI and the
ResultSet associated with it is closed.

In a busy server environment you'll probably run into database errors
related to this, but it depends on your traffic and the database you
use.

But yes, this IS important and was added because production errors
became common before this was added.

-David


On Mar 18, 2008, at 8:48 PM, skip@thedevers wrote:

> Jacopo
>
> I guess my question should be rephrased.
>
> "Why does the author think that all  findListIteratorByCondition()
> calls
> should be surrounded with a transaction, particularly in this case
> where it
> is read-only."
>
> I just want to make sure I am not missing something.  I am quite
> happy to
> comment out the exception.  In this particular case, 150gigs of log
> file
> were created in one service call to compute stock needs with real
> live data
> from a big company.  I am trying to debug this code and need the
> regular
> debug output to be sure things are going as I expect.
>
> If I really need the begin/end, I am happy to do that, I just wanted
> to know
> why.
>
> Skip
>
> -----Original Message-----
> From: Jacopo Cappellato [mailto:[hidden email]]
> Sent: Tuesday, March 18, 2008 7:13 PM
> To: [hidden email]
> Subject: Re: findListIteratorByCondition Error
>
>
> skip@thedevers wrote:
>> More on this error.  Here is the code in GenericDelegator which
>> writes the
>> error to the log.
>>
>>            //throwing an exception is a little harsh for now, just
> display
>> a really big error message since we want to get all of these fixed...
>>            Exception newE = new Exception("Stack Trace");
>>            Debug.logError(newE, "ERROR: Cannot do a find that
>> returns an
>> EntityListIterator with no transaction in place. Wrap this call in a
>> transaction.", module);
>>
>>
>> As the author desired, it is a REALLY big error.  I was writing
>> stdout to
> a
>> file which almost filled up my hard disk with these errors.
>>
>> Could the author comment on why it is important to do this:
>>
>>                TransactionUtil.begin();
>>         Map inventory =
>> dispatcher.runSync("getInventoryAvailableByFacility",
>> UtilMisc.toMap("productId", productId, "facilityId", facilityId));
>>                TransactionUtil.commit();
>>
>> I.E. put the begin/commit around the runSync call other than just
>> to avoid
>> filling up your hard disk?
>>
>
> I'd suggest to avoid redirecting stdout to a file.
>
> Jacopo
>
>> Skip
>>
>>
>>
>>
>> No virus found in this outgoing message.
>> Checked by AVG.
>> Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:
>> 3/16/2008
>> 10:34 AM
>
>
> No virus found in this incoming message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:
> 3/16/2008
> 10:34 AM
>
> No virus found in this outgoing message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:
> 3/16/2008
> 10:34 AM
>


No virus found in this incoming message.
Checked by AVG.
Version: 7.5.519 / Virus Database: 269.21.7/1333 - Release Date: 3/18/2008
8:10 AM

No virus found in this outgoing message.
Checked by AVG.
Version: 7.5.519 / Virus Database: 269.21.7/1333 - Release Date: 3/18/2008
8:10 AM

Reply | Threaded
Open this post in threaded view
|

Re: findListIteratorByCondition Error

David E Jones

Here's a hint from my last email:

"Most entity engine operations get wrapped in a transaction if there  
is not
one in place, but it can't do that with the EntityListIterator calls
because the transaction needs to stay open until the ELI and the
ResultSet associated with it is closed"

Let me know if you need more.

-David


On Mar 20, 2008, at 2:42 PM, skip@thedevers wrote:

> David
>
> Thanks a load for the explanation.  My education continues!
>
> I have one further question then though.  In this particular case, a  
> service
> is running which reads a processes an EntityListIterator.  Should I  
> have a
> begin/commit around just the creation of the ELI or should I have  
> one around
> both the creation and the getNext() as well?  In this case, there is a
> getNext(), some getRelated(), some computations, and then repeat.  
> This will
> be a very busy server.
>
> Skip
>
> -----Original Message-----
> From: David E Jones [mailto:[hidden email]]
> Sent: Tuesday, March 18, 2008 8:35 PM
> To: [hidden email]
> Subject: Re: findListIteratorByCondition Error
>
>
>
> Skip,
>
> Transactions are just as important for reading as they are for
> writing. In fact most of transaction isolation theory is concerned
> with how reads will be affected by writes.
>
> In OFBiz all major operations are wrapped in a transaction by default,
> even rendering of screens for outgoing information (typically in a
> separate transaction than the events processing incoming data). Most
> entity engine operations get wrapped in a transaction if there is not
> one in place, but it can't do that with the EntityListIterator calls
> because the transaction needs to stay open until the ELI and the
> ResultSet associated with it is closed.
>
> In a busy server environment you'll probably run into database errors
> related to this, but it depends on your traffic and the database you
> use.
>
> But yes, this IS important and was added because production errors
> became common before this was added.
>
> -David
>
>
> On Mar 18, 2008, at 8:48 PM, skip@thedevers wrote:
>
>> Jacopo
>>
>> I guess my question should be rephrased.
>>
>> "Why does the author think that all  findListIteratorByCondition()
>> calls
>> should be surrounded with a transaction, particularly in this case
>> where it
>> is read-only."
>>
>> I just want to make sure I am not missing something.  I am quite
>> happy to
>> comment out the exception.  In this particular case, 150gigs of log
>> file
>> were created in one service call to compute stock needs with real
>> live data
>> from a big company.  I am trying to debug this code and need the
>> regular
>> debug output to be sure things are going as I expect.
>>
>> If I really need the begin/end, I am happy to do that, I just wanted
>> to know
>> why.
>>
>> Skip
>>
>> -----Original Message-----
>> From: Jacopo Cappellato [mailto:[hidden email]]
>> Sent: Tuesday, March 18, 2008 7:13 PM
>> To: [hidden email]
>> Subject: Re: findListIteratorByCondition Error
>>
>>
>> skip@thedevers wrote:
>>> More on this error.  Here is the code in GenericDelegator which
>>> writes the
>>> error to the log.
>>>
>>>           //throwing an exception is a little harsh for now, just
>> display
>>> a really big error message since we want to get all of these  
>>> fixed...
>>>           Exception newE = new Exception("Stack Trace");
>>>           Debug.logError(newE, "ERROR: Cannot do a find that
>>> returns an
>>> EntityListIterator with no transaction in place. Wrap this call in a
>>> transaction.", module);
>>>
>>>
>>> As the author desired, it is a REALLY big error.  I was writing
>>> stdout to
>> a
>>> file which almost filled up my hard disk with these errors.
>>>
>>> Could the author comment on why it is important to do this:
>>>
>>>               TransactionUtil.begin();
>>>       Map inventory =
>>> dispatcher.runSync("getInventoryAvailableByFacility",
>>> UtilMisc.toMap("productId", productId, "facilityId", facilityId));
>>>               TransactionUtil.commit();
>>>
>>> I.E. put the begin/commit around the runSync call other than just
>>> to avoid
>>> filling up your hard disk?
>>>
>>
>> I'd suggest to avoid redirecting stdout to a file.
>>
>> Jacopo
>>
>>> Skip
>>>
>>>
>>>
>>>
>>> No virus found in this outgoing message.
>>> Checked by AVG.
>>> Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:
>>> 3/16/2008
>>> 10:34 AM
>>
>>
>> No virus found in this incoming message.
>> Checked by AVG.
>> Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:
>> 3/16/2008
>> 10:34 AM
>>
>> No virus found in this outgoing message.
>> Checked by AVG.
>> Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:
>> 3/16/2008
>> 10:34 AM
>>
>
>
> No virus found in this incoming message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.21.7/1333 - Release Date:  
> 3/18/2008
> 8:10 AM
>
> No virus found in this outgoing message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.21.7/1333 - Release Date:  
> 3/18/2008
> 8:10 AM
>

Reply | Threaded
Open this post in threaded view
|

RE: findListIteratorByCondition Error

SkipDever
Comprende

Thanks

-----Original Message-----
From: David E Jones [mailto:[hidden email]]
Sent: Thursday, March 20, 2008 2:35 PM
To: [hidden email]
Subject: Re: findListIteratorByCondition Error



Here's a hint from my last email:

"Most entity engine operations get wrapped in a transaction if there
is not
one in place, but it can't do that with the EntityListIterator calls
because the transaction needs to stay open until the ELI and the
ResultSet associated with it is closed"

Let me know if you need more.

-David


On Mar 20, 2008, at 2:42 PM, skip@thedevers wrote:

> David
>
> Thanks a load for the explanation.  My education continues!
>
> I have one further question then though.  In this particular case, a
> service
> is running which reads a processes an EntityListIterator.  Should I
> have a
> begin/commit around just the creation of the ELI or should I have
> one around
> both the creation and the getNext() as well?  In this case, there is a
> getNext(), some getRelated(), some computations, and then repeat.
> This will
> be a very busy server.
>
> Skip
>
> -----Original Message-----
> From: David E Jones [mailto:[hidden email]]
> Sent: Tuesday, March 18, 2008 8:35 PM
> To: [hidden email]
> Subject: Re: findListIteratorByCondition Error
>
>
>
> Skip,
>
> Transactions are just as important for reading as they are for
> writing. In fact most of transaction isolation theory is concerned
> with how reads will be affected by writes.
>
> In OFBiz all major operations are wrapped in a transaction by default,
> even rendering of screens for outgoing information (typically in a
> separate transaction than the events processing incoming data). Most
> entity engine operations get wrapped in a transaction if there is not
> one in place, but it can't do that with the EntityListIterator calls
> because the transaction needs to stay open until the ELI and the
> ResultSet associated with it is closed.
>
> In a busy server environment you'll probably run into database errors
> related to this, but it depends on your traffic and the database you
> use.
>
> But yes, this IS important and was added because production errors
> became common before this was added.
>
> -David
>
>
> On Mar 18, 2008, at 8:48 PM, skip@thedevers wrote:
>
>> Jacopo
>>
>> I guess my question should be rephrased.
>>
>> "Why does the author think that all  findListIteratorByCondition()
>> calls
>> should be surrounded with a transaction, particularly in this case
>> where it
>> is read-only."
>>
>> I just want to make sure I am not missing something.  I am quite
>> happy to
>> comment out the exception.  In this particular case, 150gigs of log
>> file
>> were created in one service call to compute stock needs with real
>> live data
>> from a big company.  I am trying to debug this code and need the
>> regular
>> debug output to be sure things are going as I expect.
>>
>> If I really need the begin/end, I am happy to do that, I just wanted
>> to know
>> why.
>>
>> Skip
>>
>> -----Original Message-----
>> From: Jacopo Cappellato [mailto:[hidden email]]
>> Sent: Tuesday, March 18, 2008 7:13 PM
>> To: [hidden email]
>> Subject: Re: findListIteratorByCondition Error
>>
>>
>> skip@thedevers wrote:
>>> More on this error.  Here is the code in GenericDelegator which
>>> writes the
>>> error to the log.
>>>
>>>           //throwing an exception is a little harsh for now, just
>> display
>>> a really big error message since we want to get all of these
>>> fixed...
>>>           Exception newE = new Exception("Stack Trace");
>>>           Debug.logError(newE, "ERROR: Cannot do a find that
>>> returns an
>>> EntityListIterator with no transaction in place. Wrap this call in a
>>> transaction.", module);
>>>
>>>
>>> As the author desired, it is a REALLY big error.  I was writing
>>> stdout to
>> a
>>> file which almost filled up my hard disk with these errors.
>>>
>>> Could the author comment on why it is important to do this:
>>>
>>>               TransactionUtil.begin();
>>>       Map inventory =
>>> dispatcher.runSync("getInventoryAvailableByFacility",
>>> UtilMisc.toMap("productId", productId, "facilityId", facilityId));
>>>               TransactionUtil.commit();
>>>
>>> I.E. put the begin/commit around the runSync call other than just
>>> to avoid
>>> filling up your hard disk?
>>>
>>
>> I'd suggest to avoid redirecting stdout to a file.
>>
>> Jacopo
>>
>>> Skip
>>>
>>>
>>>
>>>
>>> No virus found in this outgoing message.
>>> Checked by AVG.
>>> Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:
>>> 3/16/2008
>>> 10:34 AM
>>
>>
>> No virus found in this incoming message.
>> Checked by AVG.
>> Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:
>> 3/16/2008
>> 10:34 AM
>>
>> No virus found in this outgoing message.
>> Checked by AVG.
>> Version: 7.5.519 / Virus Database: 269.21.7/1331 - Release Date:
>> 3/16/2008
>> 10:34 AM
>>
>
>
> No virus found in this incoming message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.21.7/1333 - Release Date:
> 3/18/2008
> 8:10 AM
>
> No virus found in this outgoing message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.21.7/1333 - Release Date:
> 3/18/2008
> 8:10 AM
>


No virus found in this incoming message.
Checked by AVG.
Version: 7.5.519 / Virus Database: 269.21.7/1333 - Release Date: 3/18/2008
8:10 AM

No virus found in this outgoing message.
Checked by AVG.
Version: 7.5.519 / Virus Database: 269.21.7/1333 - Release Date: 3/18/2008
8:10 AM

Reply | Threaded
Open this post in threaded view
|

FTL / EntityListIterator Question

SkipDever
In reply to this post by David E Jones
I have this ftl script that displays a list from an EntityListIterator.
This ftl script has a link on the primary key in the list to display a
second ftl screen showing the details of the fields in the selected
GenericValue from the EntityListIterator.

I have a request to be able to click a button from this detail screen and
show the next or previous record from the EntityListIterator, and thereby
move through the list a record at a time from the detail screen.  I am
passing the id field as a parameter to the detail screen and do a
findByPrimaryKey() to get the detail.  I can't see any
GenericDelegator.findNext() or anything like it which would be exactly what
I need.  The entity can sometimes contain a million records so I would
prefer not to get all the keys and then search through them, especially
considering that I have an active EntityListIterator.

Anyone have any ideas about how to do this?  I could load all the keys into
an array and then do a binary search for the passed in key and then get the
next or previous, but that seems like a lot of overhead unless I could keep
this list and position from one request to the next.

Doing this with a fat-client app would be trivial.    I cannot see an
elegant way of doing it with a web-app.

Skip
No virus found in this outgoing message.
Checked by AVG.
Version: 7.5.519 / Virus Database: 269.21.7/1333 - Release Date: 3/18/2008
8:10 AM