Welcome to Port3101.org : Your BES Connection Mark forums read | View Forum Leaders
Port3101.org : Your BES Connection



Rate this Entry

Identify all applications installed in your BES environment

Submit "Identify all applications installed in your BES environment" to Digg Submit "Identify all applications installed in your BES environment" to del.icio.us Submit "Identify all applications installed in your BES environment" to StumbleUpon Submit "Identify all applications installed in your BES environment" to Google
Posted 08-07-2009 at 04:00 AM by hdawg

The BlackBerry Configuration Database stores a wealth of information about your BlackBerry environment. If you're not tapping into it you're truly missing out (See my previous post on Identifying Users with Content Protection enabled). On set intervals (every 4 hours), handhelds are supposed to report back to the BES information about themselves. If for some reason you're not receiving information from a handheld for a specific user it could be a corrupted service book. Try having the user delete the Desktop[SYNC] service book from their handheld, wait 30 seconds, and then undelete the Desktop[SYNC] service book. Within a few minutes the information about the handheld should populate within the BlackBerry Manager / BAS console.

With the release of the BlackBerry App Store we're certainly going to see people installing more applications on their devices. While Apple has truly implemented this successfully with their iPhone, and BlackBerry definitely has some catching up to do ... there is certainly promise within the platform. Applications extend the functionality of a device and increase the users productivity (or in the case of a game provide some alternative positive value). Unfortunately, applications also can cause problems on devices making users less productive. Sure games can play a part in this ... but we need to be realistic. A game on a BlackBerry is more likely to hurt productivity due to low space available on flash memory than hurt productivity due to a user sitting at their desk playing a game instead of working. That said, games aren't the only culprit of eating valuable flash memory. Standard productivity applications take up memory, and with only 256MB of flash memory on the newest devices devices available there are still significant limitations with BlackBerry. My Bold only has 94.5MB of accessible and 22MB of free memory; imagine a user with an 8310 with less than 64MB of accessible memory ... they're going to run into even more limitations. One thing which I am happy to see is applications like Slacker Radio which while installed on the flash memory of my Bold (as is required for all applications ... we still can't install apps on a MicroSD card, or the additional 1GB of internal memory on the Bold), it creates a folder on my MicroSD card where it caches data. So I guess the key to success for applications that need to access lots of data is to do what Slacker does and store the data remotely. The only problem with this is what if you've implemented an IT Policy that blocks use of a MicroSD card. There isn't an easy solution even if those apps are really small no matter how you slice it.

Making sure that your device as available free space is critical to not only be able to run applications, but it is critical for overall device performance. If you constantly see your device hour-glassing, you might be low on memory. Check out John Clark's post on optimizing your device memory.

If you're like me and didn't block third party application installations and you want to be proactive with making sure your users don't experience LOW_MEMORY situations you should take a look and see what applications are installed within your BES environment; you'll probably be surprised. To get such a list, execute the following command from your SQL server:

bcp "SELECT '<application><name>' + U.Displayname + '</name>', S.Data FROM BESMgmt..UserConfig U INNER JOIN BESMgmt..SyncDeviceMgmt S ON U.Id = S.UserConfigId WHERE S.TableId = 2" queryout c:\AppData.xml -S localhost -c -T

bcp is the Bulk CoPy utility. The bcp utility bulk copies data between an instance of Microsoft SQL Server and a data file in a user-specified format. In our case we're going to copy out the data into a txt file with an XML extension as the data will be properly XML formatted.

When you get the output, try opening the XML file with Excel or an application that'll nicely format properly structured XML. Depending on your config you may need to do a little tweaking to get the data pretty, but a few minutes of work could provide you with some valuable data!
Posted in Tips & Tricks
Views 1299 Comments 2 Edit Tags Email Blog Entry
« Prev     Main     Next »
Total Comments 2

Comments

  1. Old Comment
    Neo3000's Avatar
    Perfect!
    I searched quite long for that.

    A small enhancement from me:
    A SELECT statement directly parsing the XML and returning a normal table.

    Select DisplayName,
    [AppXML].value('(/R//t10/node())[1]', 'nvarchar(max)') as Modules,
    [AppXML].value('(/R//t2/node())[1]', 'nvarchar(max)') as Unknown1,
    [AppXML].value('(/R//t3/node())[1]', 'nvarchar(max)') as Unknown2,
    [AppXML].value('(/R//t4/node())[1]', 'nvarchar(max)') as Name,
    [AppXML].value('(/R//t5/node())[1]', 'nvarchar(max)') as Description,
    [AppXML].value('(/R//t6/node())[1]', 'nvarchar(max)') as Version,
    [AppXML].value('(/R//t7/node())[1]', 'nvarchar(max)') as Vendor,
    [AppXML].value('(/R//t8/node())[1]', 'nvarchar(max)') as Copyright,
    [AppXML].value('(/R//t9/node())[1]', 'nvarchar(max)') as Unknown3
    FROM (Select U.DisplayName As DisplayName, CAST(S.Data as XML) As AppXML
    From UserConfig U
    Inner join SyncDeviceMgmt S
    On U.Id=S.UserConfigId
    Where S.TableId=2) As Apps


    Attention: This only works on SQL Server 2005.

    It would be fabulous, if someone could comment on my column interpretation and the still unknown columns.

    Greetings,
    Neo3000
    permalink
    Posted 08-21-2009 at 06:01 AM by Neo3000 Neo3000 is offline
  2. Old Comment
    hdawg's Avatar
    Neo3000 ... THANK YOU! This is an awesome upgrade on the script. No more nasty XML parsing

    Looking through the data it appears that:

    Unknown1 = Title:Vendor
    Unknown2 = I have no clue at all
    Unknown3 = Module Dependencies

    Thoughts?
    permalink
    Posted 08-22-2009 at 11:56 AM by hdawg hdawg is offline
 

All times are GMT -4. The time now is 10:44 PM.
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, vBulletin Solutions, Inc.


 

Content Relevant URLs by vBSEO 3.3.2 PL2