Frugal Alerting - how to conserve processing time with Bamboo Alerts

With the price of a gallon of gas, lots of us are wondering what we can do to conserve energy, right? Well, CPU time is energy and there might be some things you can do to conserve CPU time when configuring alerts through your Bamboo Alert Plus Web Part.

Let me first give you a very high level glimpse of how the Bamboo Alert Plus Web Part works. Depending on the alert schedule you configure for an alert, a service wakes up and retrieves the items that could trigger an alert. The service processes each item, figures out if an alert message needs to be sent, and then sends the message.

As you may have read in our application notes or in an article in our KB, the best scenario for your Bamboo Alert Plus Web Part configuration is to install the Alert Plus Service on a server other than your SharePoint server to reduce the system load in large SharePoint environments. This service, as you can imagine, is a work horse - a gas guzzler as far as CPU cycles go. Any cycles it's using are not being used to by other SharePoint processes.

I know that not all of you have the luxury of spreading your SharePoint environment out to multiple servers - at least not yet. Until your organization really depends on the critical information SharePoint stores and everyone is using it all day long, you may need to make do with everything on one server. Well, as far as the Bamboo alerts go, there are some things you can do to minimize the load and conserve energy.

Event tab of Bamboo Alert Plus Web Part

Here are a few tips to conserve processing time:

  • When configuring How often are e-mails sent? on the Event tab of the user interface (see screen shot above), don't choose As Soon As Possible unless you really mean to. When you choose As Soon As Possible, the alert service wakes up every two minutes, grabs the data, and starts processing. When there is a lot of data to process, a thread may still be running when another starts after two minutes pass. If you can live with a schedule of every hour, you could save a lot of processing time. If you're not happy with the selections (As soon As Possible, Every Hour, Every Day, and Every Week) for the How often are e-mails sent? on the Event tab, you can configure a custom schedule on the Admin Options tab of the Alert Plus web part (see below). If you choose Use Custom Schedule, your selection on the Event tab is ignored.

 Admin Options tab of Bamboo Alert Plus Web Part

  • Also on the Event tab, when configuring What items in the list generate an alert?, don't choose All Items if you have an alternative. For example, if you want to send an alert whenever an item is created or modified, choose to alert on Items in a List View or Some Items (Advanced) rather than All Items.
    • Items in a List View. Using a list view is probably the easiest, especially if you aren't familiar with CAML. You can create a view and call it Things created or modified today. Set the filter criteria to "Modified = [Today] OR Created = [Today]". Choose Items in a List View and select your new view. This will minimize the amount of data the service needs to process each time it wakes up to do work.
    • Some Items (Advanced). If you choose Some Items (Advanced), you will need to supply a CAML query to identify the items in the list to process. If you're not a CAML expert, use the Criteria Builder - it's easy. To minimize the amount of data the service needs to process, you can build a CAML query that filters the data so only the items created or modified today are included. An example of this kind of CAML query is shown below:

<Query><Where><Or>
<Eq><FieldRef Name="Created" /><Value Type="DateTime"><Today /></Value></Eq>;
<Eq><FieldRef Name="Modified" /><Value Type="DateTime"><Today /></Value></Eq>;
</Or></Where></Query>

So, there you have it - a way to make a difference. And don't forget to turn off the lights when you leave the room! Smile


Posted May 19 2008, 12:54 PM by Julie Auletta

Comments

DMuniz wrote re: Frugal Alerting - how to conserve processing time with Bamboo Alerts
on Tue, Jun 3 2008 10:10 AM

What about if I just wanted to send an alert out once every Monday at 9AM.

Julie Auletta wrote re: Frugal Alerting - how to conserve processing time with Bamboo Alerts
on Tue, Jun 3 2008 12:46 PM

Thanks for the comment, DMuniz!

You can configure this type of alert with SharePoint alerts (if you have WSSv3 or MOSS) in the "When to Send Alerts" section. Just choose "Send a weekly summary" and pick the day and time.

If you don't have WSSv3 or MOSS or you want to configure the email message content or the email recipients somehow that SharePoint doesn't support, you can also configure this type of alert with our Bamboo Alert Plus Web Part by configuring a custom schedule in the Admin Options tab.

Karrie Myer wrote re: Frugal Alerting - how to conserve processing time with Bamboo Alerts
on Thu, Oct 30 2008 1:29 PM

How do I set the alert frequency to simply display the alert once. Not to send out reminder alerts at fixed intervals?

Julie Auletta wrote re: Frugal Alerting - how to conserve processing time with Bamboo Alerts
on Thu, Oct 30 2008 2:03 PM

Thanks for the comment Karrie!

You must be triggering your alert "when an item exists". In this mode, you can also use the "Email followup wait days" on the Admin Tab to set the frequency for when the alert email is sent again.

The email will NOT be sent again if the list item no longer meets the filter criteria when the followup wait days have passed. It's probably easiest to explain using an example:

Suppose you have an alert that sends a "reminder" email to a task assignee when a task is coming due. You set this up using the trigger "When an item exists". When configuring "Which items in the list generate an alert?", you choose a list view that is filtered to include only tasks with status not equal to "Completed" since you don't want to send a reminder message if the task assignee finished their task early. On the Admin tab, you set the "Email followup wait days" to 1 so an alert gets sent each day until the task is due. When the task status changes to "Completed", the task no longer meets the criteria for the alert and no more emails will be sent.

Martin Fenton wrote re: Frugal Alerting - how to conserve processing time with Bamboo Alerts
on Wed, Dec 3 2008 6:33 AM

Hi Julie,

Thank you for this post. It is very helpful.

We are using Bamboo Solutions Alert Plus Web part for a particular solution for a customer. I have a question relating to the correct configuration of the Web part for optimum performance.

The background to the system is that we have a root site collection, with a number of divisional sites. Within each of the divisional sites there can be up to 1000 child sites.

In each of these child sites we have an information list and we wish to create alerts when particular conditions have been met on fields within that list.

I had intended to deploy the Bamboo Web part to each child site, and this would also provision the Alert+ Configuration List. However, this is not ideal as we would need keep a site template up-to-date with the Bamboo Alert Web part, as well as the list (i.e. for creating new child sites)

The alternative is as follows. Deploy the Bamboo Alerts Web part to each divisional site and configure the alerts to point to each of the child sites. I can use a feature receiver to populate the Alert+ Configuration List using data from all child sites. And I can use an Item Event Receiver to ensure that for any new child sites created the Alert+ Configuration List is updated with corresponding entries.

The problem is that with up to 1000 child sites in each division, and 9 alerts per child site that leaves me with potentially 9000 list items in the Alert+ Configuration List. I have reviewed capacity planning articles and the maximum number of items in a list is recommended to be 2000. This figure seems to be with a view to the UI experience rather than actual storage of that number of list items. I can use SharePoint views to limit the number of items displayed on a single page if the UI performance is the only concern. I will also be hiding the Bamboo Web part on the page as it will be preconfigured by us for our customer.

Which of the above options would you recommend?

Is there an upper limit to the number of items that can be stored in the Alert+ Configuration List for optimum performance of the Bamboo Alert Web part?

Is it possible to configure the Alert+ Web part to read from folders in the Alert+ Configuration List (i.e. I can group the alert list items into folders)?

What is the most optimum way to configure the alert schedule for this scenario? For example, can I configure the Bamboo Alerts Web part to only poll the Alert+ Configuration List say once a day at night to avoid any performance implications during office hours?

Thank you for your help.

Best Regards,

Martin

About Julie Auletta

As Solutions Director for Bamboo Solutions, Julie Auletta is responsible for all areas of services and consulting, including packaged software products and custom applications. She brings more than 20 years of consulting experience to her position, having led numerous successful consulting organizations. Prior to Bamboo Solutions, Julie managed a Project Management Group for Litton/PRC, where she was responsible for implementing commercial-based enterprise document management solutions for various government and commercial projects. Prior to heading the Project Management Group, Julie helped form the Product Quality and Test Group used to ensure quality deliverables for the software product development group. Julie also worked as a Facilities Engineer for Litton/PRC involved in several projects relating to facility and utility planning, Environmental Impact, and Feasibility Studies. Julie holds a M.S. in Urban Planning from the University of Virginia and a B.S. in Mechanical Engineering from Lehigh University.

Bamboo Solutions Corporation, 2002-2009