Obtaining information on a String.

Hi I want to use a loop to find all the blanks in a string and then display the position of the each one.
Strangely there doesn't seem to be a way to "pull out" each character in the string so that I can
see if it equals ' '. Is that correct? This would have made the problem much simpler.
I'm therefore using indexOf, which appears to be the only thing that will help. Now I can only get
the first occurence with this method. Therefore it looks like I will need some sort of recurssion but
I'm useless at determining how to design one.
Could someone give me some pointers or pseudocode as to accomplishing my objective using indexOf or
if there is a simpler way.. please let me know!

Sunny_B wrote:
Hi I want to use a loop to find all the blanks in a string and then display the position of the each one.
Strangely there doesn't seem to be a way to "pull out" each character in the string so that I can
see if it equals ' '. Is that correct? This would have made the problem much simpler.
I'm therefore using indexOf, which appears to be the only thing that will help. Now I can only get
the first occurence with this method. Therefore it looks like I will need some sort of recurssion but
I'm useless at determining how to design one.
Could someone give me some pointers or pseudocode as to accomplishing my objective using indexOf or
if there is a simpler way.. please let me know!Have a look at:
String.charAt(int)And you can also combine:
[http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#indexOf(int)]
and
[http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#indexOf(int,%20int)]
although the charAt(...) way is easier, IMO.

Similar Messages

  • Changing from dev to standard edition causes "Could not obtain information about Windows NT group/user error code 0x6e."

    Hello,
    We recently upgrade our SQL Server 2012 SP1 (64bit) dev edition to standard edition, after we purchased the required licence and it was deployed in production.
    Since the edition change, we are now receiving the following error, with some of our jobs, which have an e-mail step in them, which is causing the jobs to fail.
    Msg 14661,Level 16, State 1, Procedure sp_send_dbmail, Line 517
    Query execution failed: Msg 15404, Level 16, State 19, Server BL-SVR15, Line 1
    Could not obtain information about Windows NT group/user 'BLUELIZARD\savaa', error code 0x6e.
    Any ideas how to fix this issue? We were also having a similar error, when executing the jobs, but changing the job owner to SA has fixed this issue.
    Thanks,
    Andy.

    Hi,
    Which user account you used for SQL Server service, domain account or local account?
    If it is domain account, are you able to log in to a machine with it?
    Make sure that the password of account is not expired.
    Also, grant the user Allowed to Authenticate permission and see how it helps.
    Refer to the below article:
    http://geeks.ms/blogs/ozonicco/archive/2013/01/14/208266.aspx
    Thanks.
    Tracy Cai
    TechNet Community Support

  • When I right clock on a song from my library and I click on Obtain information, I can't make changes on the infos, Everything is wriiten in pale letters. Olease help. Thank you.

    Can anyone help me withis. When I right click on a song from my library and I click on Obtain information, I can't make changes on the infos, Everything is written in pale letters.  Thank you.

    Short answer:
    Click Hide Song(s), it is what you wanted to do...
    Long answer:
    iTunes in the Cloud is a feature of your iTunes store account that allows you to redownload or stream your past purchases. When you delete a purchased track that is downloaded to your computer (like the first one shown here) you are asked if you also want to hide the song from iCloud. This would remove it from the computer and also stop it showing up with the iCloud symbol as the other tracks from that album (which are not downloaded) do.
    If a track shows with the cloud symbol you can play (stream) it by double-clicking the title, or click the cloud symbol to download a local copy to your library. If you try to delete one of these tracks you get a slightly different message confirming that you want to hide the track. Clicking hide will remove the listing from the library and any other device that shows your past purchases.
    Should you want to retrieve any item hidden in this way at a later date use Store > View My Account > iTunes in the Cloud > Hidden Purchases > Manage.
    To hide all your previous purchases that are not downloaded to your computer use Edit > Preferences > Store and untick Show iTunes in the Cloud purchases.
    tt2

  • How to obtain information which jar files was updated

    Hello.
    How to obtain information after launched application by jnlp file or shortcut which jar files was updated.
    Do JWS have some log file which I can display after running application?

    Yes you can start the Java Cache Viewer:
    just open a cmd/shell and type:
    javaws -viewer
    on top there is a drop-down to switch between the different cached things, You can also see the JARs that you have in your cache currently.
    or type
    javaws
    to get all available options...
    Sebastian

  • How do i obtain information from my hard drive

    how do i obtain information from my hard drive?

    Your question is not at all clear - perhaps you could rephrase it more succinctly?
    -Rob

  • Obtaining information from customers by PDF forms

    The organisation I work for is considering designing an electronic interactive PDF form using Adobe Acrobat X Standard. We would like to upload the form to our website from which users could download the form to their PCs.
    Obviously, the target audience would include non-technical users so we would like to make the process as simple and intuitive as possible. Therefore, we would like to instruct them to download the form and save it on their PC, fill it in, save the filled in form with a different name and then send it back to us. I know that for a user of Adobe Reader XI all of it would now be possible. I understand that Adobe Reader is a free software but I would like to reassure – are we allowed to implement the above, i.e. build a fillable PDF form, upload it to our website, distribute it by allowing people downloading it and collect information from our customers by obtaining filled in forms by e-mail? Are there any restrictions such as the number of filled in forms received?
    We would also like to make sure that this solution is not limited to users of Adobe Reader 11 only but is available to people using older versions of the Reader. I’ve come across some guidance on the following webpage: http://helpx.adobe.com/x-productkb/multi/fill-out-pdf-form-or.html but I would like to ask for some clarification. Does it mean that by saving the PDF form in Acrobat as Reader Extended PDF and selecting Enable Forms Fill-In & Save in Adobe Reader would enable those using older versions of the Adobe Reader to fill in and save changes to the form? Are there any restrictions in this case? Any advice would be appreciated.

    It's not a realistic option as you will be limited to 500 responses unless you buy a LiveCycle enterprise server package.
    You can't apply extended rights to a PDF form (so that users of Adobe Reader X or earlier can save the filled-in data) in Acrobat Standard - that's a Pro feature.
    http://www.adobe.com/products/acrobat/product-comparison.html

  • Difficulties of obtaining informations from some computers

    We have installed MAP, we have "run" the first option ("identity computers that ...") but at the end of the inventory, some WMI Status are "Failed - Connection time out" and others are "Failed - RPC Server Unavailable", one is "Failed - Access Denied" and 3 are "Failed - Other Reasons".
    We have also seen that "Computers running Windows XP Home edition cannot be inventoried and assessed because remote WMI connections are not allowed to computers running this version of Windows XP".
    So we have done a test and apparently the problem comes from Win XP Firewall but we can't disable it on each computer...
    1) Can somebody explain me what  could be the reasons of each "failed" of WMI status?
    2) Has somebody a solution to obtain results (with GPO or anything else) without disabling manually WinXP Firewalls on each computer ?
    Thank you in advance for your help!

    Hello Jean-Michel
    You can shared this information, because I make inventory of several XP, but I receive the same messages.
    Thank
    Hugo Monge

  • Extracting various bits of information from a string

    Hi,
    I am interested in extracting various pieces of information from strings (which were originally email bodies). For example email addresses (that are in the body of the email not the "from" field), phone numbers (which could have spaces between, international formats/conventions, ie not all numbers), profession (to match against a list I have), etc etc.
    I am expecting that I would need to use Regex to find emails and phone numbers, and maybe tokenizing the string to match against my list of professions.
    So I am more interested in some high level suggestions of how I should go about this.
    In most cases, the source of the emails will be from 3 known sources. So in these case I will have a pretty good idea of the format/template that the response's will follow ( ie ".... name is XXXX XXXX ....." ) . This would then make extracting the useful information much easier. However, I need to allow for emails from unknown sources where nothing would be known about the format of the email.
    Any help/suggestions/info would be appreciated.
    The Whale

    Thanks.
    Re: function object; You tip about the function object sounds like a very good idea. I have been thinking about the best way to do this and this sounds like a good way to do it.
    Re: Regex - I have not used Regex much but I am assuming it wont be hard to find or create Regex expressions to find phone numbers and email addresses. Although as you say, names could be hard. Although in this case I will just have to rely on locations in known templates.
    Thanks again,
    :)

  • How can you use a format string to make all information in a string line up and stack up?

    I am trying to post data on screen using "format into string" and make all data line up into one indicator string

    Not exactly sure what you are looking for. Could you elaborate, or post a screen shot of what you are trying to accomplish. I would hate to give you an answer based on my interpretation of your problem.

  • How to obtain Information in an open Keynote presentation

    What I mean is that in other iLife applications, such as Pages, one can call on Information on the document by opening the Inspector/Document/Information.
    I find this useful when I need to locate them in the Finder.
    Where can I find the same service in Keynote?

    Question :
    How does this provide me with the ability to find out where the presentation is saved in Finder?
    text is typed into one or more of the four boxes in the Keynote Inspector > Spotlight
    Spotlight uses these fields to search for this text
    If I had a project called Edinburgh Castle - I would type that into Spotlight and it would find it faster than other methods.
    Using Pages as my example, the last item at the bottom provides a way to find the document in Finder.
    No this does not help find anything using Spotlight. This is part of the document statistics, it shows whether the document has been printed and the date and time of last printing, Clicking the Show File Info button will display the file info window.
    Other related Questions:
    Do you add information to  Keynote/Inspector/Document/Spotlight frequently when you create any document?
    I have never used the Spotlight information fields. I place Keynote files in a folder named after the project title so I look directly at that folder in the Finder.

  • Architecture: obtain information about the loading of my infocube ?

    Hi,
    I want to make a Java application which loads information about my infocube like last successull loading, number error records for the last loading, the possibility to display these error records from the PSA ...
    is it possible with WD ?
    Any idea How retrieve these information from BI ?
    I imagine an application which perform on PC Frond End users which informs the state of BI. And if there is a problem, i want to inform the cause by sending a text message from my PC to all PC Fond End users (where my java application is running).
    Thanks
    Rodolphe.

    You can enter the Serial Number and Repair ID on this page to get a stsus update:
    https://selfsolve.apple.com/repairstatus/main.do;jsessionid=0phLTksW2mwLbyQVF3Qs zFtCQMH2Jv5xkMxvMlD6RsKVLhpJjpjj!846893301
    Hope that helps!

  • How can I obtain information about the recently finished commands?

    How can I get information about the recently finished jobs / bash commands? (eg. date / time of termination)

    $ e echo foo
    foo
    $ type e
    e is a function
    e ()
    $@ && echo $@ - $(date) >> test.txt
    $ cat test.txt
    echo foo - Wed Jan 1 12:10:54 CET 2014
    $ e echo bar
    bar
    $ cat test.txt
    echo foo - Wed Jan 1 12:10:54 CET 2014
    echo bar - Wed Jan 1 12:11:09 CET 2014
    $ e htop
    <here I do something with htop for a little while>
    $ cat test.txt
    echo foo - Wed Jan 1 12:10:54 CET 2014
    echo bar - Wed Jan 1 12:11:09 CET 2014
    htop - Wed Jan 1 12:15:14 CET 2014
    Last edited by karol (2014-01-01 11:20:36)

  • How do I obtain the full path string for my file?

    Many Mac applications are particularly bad at guessing what folder I want to grab a file from.  As a result, I waste a great deal of time fishing all through my directory tree in order to put and take my files in and from the right location.  It does seem to be better is some applications but still the nuisance is an issue.  Of course in Windows this can happen too except there I have a workaround to help out the foolish applications.  I can copy the full literal path to the clipboard from Explorer.  Then when the file access dialog comes up I can paste the full literal path ahead of the filename and snap to the correct folder.  On my mac, I have had mixed success approximating this strategy.  Sometimes, if the target folder isn't empty, I can use the Finder to browse to the target folder and open the Get Info dialog for a file and copy the full path from within that dialog.  This does not work though when the folder is empty and Mac does not support the create new text file on the fly feature.  Furthermore, I have noticed some strange behavior even when I do have the full path copied.  One such example is using TextEdit, pasting this full path has resulted in the application using the full path as a really long filename for the new file which still resides in the folder the application incorrectly assumed.
    There is a list box in most Mac file access dialogs with _some_ of the recent folders I accessed listed for quick selection but nine times out for ten the folder I just came from isn't among them.  That detail really surprises me.  Do regular Mac users have habits that prevent problems like this, or is there a better way to _bank_ a literal folder location I know I'll need to use soon and often, or do I just need to get used to fishing for folders during file access?

    Welcome to Apple Support Communities. Most of us are users here.
    Create folders and drag those 'frequently used' folders to the left-hand FAVORITES column/sidebar in Finder.
    Then just drag your files to the destination folders, or click on them to select them as destinations from your applications.
    When you no longer need these folders, right-click to remove them from the FAVORITES sidebar.
    They'll still be in the original location where they were created, just no longer visible in the sidebar.
    Another thing to note is that the full path of your current destination is shown at the bottom of the screen in Finder. In this case Macintosh HD, Users, (Home folder name), Desktop.

  • OracleDataAdapter returning incorrect schema information

    Hi everyone. I have a very reproducible case where the DataTable schema created by the OracleDataAdapter is incorrect. It is driving me crazy :-).
    ====================
    OracleConnection cnn = new OracleConnection("User ID=XXX;Password=XXX;Data Source=XXX");
    cnn.Open();
    string strQuery = "CREATE TABLE FOO (a INT, b INT)";
    OracleCommand cmdExec = new OracleCommand(strQuery, cnn);
    cmdExec.ExecuteNonQuery();
    OracleCommand cmdQuery = new OracleCommand("SELECT * FROM FOO", cnn);
    OracleDataAdapter adp = new OracleDataAdapter(cmdQuery);
    DataTable dtb = new DataTable();
    adp.Fill(dtb);
    Console.WriteLine("FOO has {0} columns.", dtb.Columns.Count);
    for (int i = 0; i < dtb.Columns.Count; i++)
    Console.WriteLine("{0}th column's name is {1}.", i, dtb.Columns[ i ].ColumnName);
    cmdExec.CommandText = "DROP TABLE FOO";
    cmdExec.ExecuteNonQuery();
    cmdExec.CommandText = "CREATE TABLE FOO (c INT, d INT, e INT)";
    cmdExec.ExecuteNonQuery();
    dtb = new DataTable();
    adp.Fill(dtb);
    Console.WriteLine("FOO has {0} columns.", dtb.Columns.Count);
    for (int i = 0; i < dtb.Columns.Count; i++)
    Console.WriteLine("{0}th column's name is {1}.", i, dtb.Columns[ i ].ColumnName);
    cnn.Close();
    Console.ReadLine();
    =============================
    The console output is:
    FOO has 2 columns.
    0th column's name is A
    1th column's name is B
    FOO has 2 columns.
    0th column's name is A
    1th column's name is B
    But it should be:
    FOO has 3 columns.
    0th column's name is C
    1th column's name is D
    2th column's name is E
    for the second iteration.
    What should I do?
    -- Matt

    I agree with the earlier comment stating '...that the caching is happening inside of the ODP layer rather than a lower layer such as OCI. It looks like the caching is occurring in the m_metaData member of the OracleCommand...'.
    It looks like all of the caching is indeed taking place in ODP. However there is in fact two levels of cache taking place in your particular example - at the OracleCommand level but also deep inside ODP.Net there is a static MetaData class which has a private member m_pooler that maintains a metadata cache on a per connection basis. Basically even if the OracleCommand object entry m_metaData is reset values still appear inside the internal pool and so there need to be removed too - this cache is indexed initially through a hash of the connection details and then statement text. This is why even a new OracleCommand object but with same statement text on same connection also returns incorrect information.
    Within the OracleReader implementations various calls are made to MetaData.Pooler.Get.. calls to retrieve cached information.
    I came across a similar problem (not identical) because we are using the 'alter session set current schema...' command and this causes some problems.
    Basically it appears a base assumption has been made that the definition of object will not change at runtime (which you can understand) but in my case it is possible that 'select * from emp' say could be execute from the same connection but relate to different objects because name resolution has been adjust using the 'alter session...' command which is a big problem.
    I have written some helper routines which enable the internal caches to be 'managed' although it uses some nasty reflection to accomplish this (using private members directly!). It work successfully in my case and I have done a quick change to your example code (added a single call) and it now works, i.e.
    cmdExec.CommandText = "CREATE TABLE FOO (c INT, d INT, e INT)";
    cmdExec.ExecuteNonQuery();
    OracleMetaDataRemover.Remove(cmdQuery, true);
    dtb = new DataTable();
    adp.Fill(dtb);
    If you use the Remove method above and change true to false you will still receive the problem because although the Command has been cleared the details still remain centrally.
    The code which accessed above I include below as is (coded for Oracle 10.1.0.3.01 ODP - it may work on other releases but note this could break in future). Ideally methods are required within ODP to allow cleardown/control of this.
    using System;
    using System.Reflection;
    using System.Collections;
    using Oracle.DataAccess.Client;
    namespace Oracle.DBUtilities
         /// <summary>
         /// Summary description for OracleMetaDataPoolerCleaner.
         /// </summary>
         public class OracleMetaDataPoolerCleaner
              private static string OracleAssemblyShortName = "Oracle.DataAccess";
              private static string OracleMDType = "Oracle.DataAccess.Client.MetaData";
              private static string OraclePoolerType = "Oracle.DataAccess.Client.Pooler";
              // Fast access pointer to internal hash of information
              private Hashtable PooledItems = null;
              private static OracleMetaDataPoolerCleaner _oracleMetaDataPoolerCleanerInstance = null;
              static readonly object _syncRoot = new object();
              private OracleMetaDataPoolerCleaner()
                   Assembly OracleDataAccess = null;
                   // Get hold of the Oracle Data Access assembly
                   Assembly[] LoadedAssemblyList = AppDomain.CurrentDomain.GetAssemblies();
                   for(int i=0; i<LoadedAssemblyList.Length && OracleDataAccess == null; i++)
                        Assembly LoadedAssembly = LoadedAssemblyList;
                        string[] AssemblyNameDetails = LoadedAssembly.FullName.Split(',');
                        if (AssemblyNameDetails[0] == OracleMetaDataPoolerCleaner.OracleAssemblyShortName)
                             OracleDataAccess = LoadedAssembly;
                   // Make sure located details
                   if (OracleDataAccess != null)
                        // Get access to the MetaData cache details
                        Type OracleMetaData = OracleDataAccess.GetType(OracleMetaDataPoolerCleaner.OracleMDType);
                        if (OracleMetaData != null)
                             // Retrieve static pool item
                             FieldInfo f_Pooler = OracleMetaData.GetField("m_pooler", BindingFlags.NonPublic|BindingFlags.Instance|BindingFlags.Static);
                             if (f_Pooler != null)
                                  // As we cannot get direct access to the object type assume it is OK
                                  object pa = f_Pooler.GetValue(null);
                                  if (pa != null)
                                       Type OraclePooler = OracleDataAccess.GetType(OracleMetaDataPoolerCleaner.OraclePoolerType);
                                       if (OraclePooler != null)
                                            FieldInfo f_Pools = OraclePooler.GetField("Pools", BindingFlags.NonPublic|BindingFlags.Instance|BindingFlags.Static);
                                            PooledItems = f_Pools.GetValue(pa) as Hashtable;
                                            if (PooledItems == null)
                                                 throw new InvalidOperationException("Unable to initialise metadata cache access...");
              public static OracleMetaDataPoolerCleaner Instance()
                   // Make single copy of this item ready for use
                   if (_oracleMetaDataPoolerCleanerInstance == null)
                        // Thread safe locking and initialisation - 'double-checked lock'
                        lock(_syncRoot)
                             if (_oracleMetaDataPoolerCleanerInstance == null)
                                  _oracleMetaDataPoolerCleanerInstance = new OracleMetaDataPoolerCleaner();
                   return _oracleMetaDataPoolerCleanerInstance;
              /// <summary>
              /// Using reflection the process determines the command text
              /// contents of the specified OracleCommand
              /// Note this could simply have been delegated through to the
              /// OracleConnection version using OCommand.Connection
              /// </summary>
              /// <param name="OCommand">OracleCommand object containing command to be retrieved</param>
              /// <returns>Command string located</returns>
              public static string CommandText(OracleCommand OCommand)
                   string OracleCommandCommandText = null;
                   // Using reflection get direct access to the 'private' member details..
                   Type TypeOracleCommand = OCommand.GetType();
                   FieldInfo FieldInfoCommandText = TypeOracleCommand.GetField("m_commandText", BindingFlags.NonPublic|BindingFlags.Instance);
                   if (FieldInfoCommandText != null)
                        OracleCommandCommandText = FieldInfoCommandText.GetValue(OCommand).ToString();
                   return OracleCommandCommandText;
              /// <summary>
              /// Using reflection the process determines the command text
              /// contents of the specified OracleCommand
              /// </summary>
              /// <param name="OReader">OracleDataReader object containing command to be retrieved</param>
              /// <returns>CommandString located</returns>
              public static string CommandText(OracleDataReader OReader)
                   string OracleDataReaderCommandText = null;
                   // Using reflection get direct access to the 'private' member details..
                   Type TypeOracleDataReader = OReader.GetType();
                   FieldInfo FieldInfoCommandText = TypeOracleDataReader.GetField("m_commandText", BindingFlags.NonPublic|BindingFlags.Instance);
                   if (FieldInfoCommandText != null)
                        OracleDataReaderCommandText = FieldInfoCommandText.GetValue(OReader).ToString();
                   return OracleDataReaderCommandText;
              /// <summary>
              /// Using reflection the process determines the hashvalue
              /// specified OracleConnection
              /// </summary>
              /// <param name="OConnection">OracleConnection for which the HashCode is to be retrieved</param>
              /// <returns>HashValue located or -1</returns>
              public static int ConnectionStringHashValue(OracleConnection OConnection)
                   int HashValue = -1;
                   // Using the Oracle Connection retrieve the hashvalue associated
                   // with this connection
                   if (OConnection != null)
                        Type TypeOracleConnection = OConnection.GetType();
                        FieldInfo f_ConStrHashCode = TypeOracleConnection.GetField("m_conStrHashCode", BindingFlags.NonPublic|BindingFlags.Instance);
                        if (f_ConStrHashCode != null)
                             HashValue = Int32.Parse(f_ConStrHashCode.GetValue(OConnection).ToString());
                   return HashValue;
              /// <summary>
              /// Using reflection the process determines the hashvalue
              /// specified OracleDataReader
              /// </summary>
              /// <param name="OReader">OracleDataReader for which the associated connection HashValue is to be located</param>
              /// <returns>HashValue located or -1</returns>
              public static int ConnectionStringHashValue(OracleDataReader OReader)
                   int HashValue = -1;
                   // Using reflection get direct access to the 'private' member details..
                   Type TypeOracleDataReader = OReader.GetType();
                   FieldInfo f_OraConnection = TypeOracleDataReader.GetField("m_connection", BindingFlags.NonPublic|BindingFlags.Instance);
                   // Ensure have access to a connection and retrieve has information
                   if (f_OraConnection != null)
                        OracleConnection ConnectionValue = f_OraConnection.GetValue(OReader) as OracleConnection;
                        HashValue = OracleMetaDataPoolerCleaner.ConnectionStringHashValue(ConnectionValue);
                   // Return the hashvalue information located
                   return HashValue;
              /// <summary>
              /// Using reflection the process determines the hashvalue
              /// specified OracleCommand
              /// Note this could simply have been delegated through to the
              /// OracleConnection version using OCommand.Connection
              /// </summary>
              /// <param name="OCommand">OracleCommand for which the associated connection HashValue is to be located</param>
              /// <returns>HashValue located or -1</returns>
              public static int ConnectionStringHashValue(OracleCommand OCommand)
                   int HashValue = -1;
                   // Using reflection get direct access to the 'private' member details..
                   Type TypeOracleCommand = OCommand.GetType();
                   FieldInfo f_OraConnection = TypeOracleCommand.GetField("m_connection", BindingFlags.NonPublic|BindingFlags.Instance);
                   // Ensure have access to a connection and retrieve has information
                   if (f_OraConnection != null)
                        OracleConnection ConnectionValue = f_OraConnection.GetValue(OCommand) as OracleConnection;
                        HashValue = OracleMetaDataPoolerCleaner.ConnectionStringHashValue(ConnectionValue);
                   // Return the hashvalue information located
                   return HashValue;
              /// <summary>
              /// Using the supplied OracleDataReader internal calls are made
              /// to determine the ConnectionHash and CommandText details which will
              /// then be used to remove the item
              /// </summary>
              /// <param name="OReader">OracleDataReader to be probed to obtain information</param>
              /// <returns>Indicates whether the item was actually removed from the cache or not</returns>
              public bool Remove(OracleDataReader OReader)
                   bool Removed = false;
                   // Lookup the ConnectionStringHashDetails
                   int HashValue = OracleMetaDataPoolerCleaner.ConnectionStringHashValue(OReader);
                   if (HashValue != -1)
                        // Lookup the command text and remove details
                        string CommandText = OracleMetaDataPoolerCleaner.CommandText(OReader);
                        // Attempt to remove from the cache
                        Removed = this.Remove(HashValue, CommandText);
                   return Removed;
              /// <summary>
              /// Using the supplied OracleCommand internal calls are made
              /// to delegate the call to the OracleConnection version
              /// </summary>
              /// <param name="OCommand">OracleCommand to be probed to obtain information</param>
              /// <returns>Indicates whether the item was actually removed from the cache or not</returns>
              public bool Remove(OracleCommand OCommand)
                   // Call into internal other routine
                   return this.Remove(OCommand.Connection, OCommand.CommandText);
              /// <summary>
              /// Using the supplied OracleConnection internal calls are made
              /// to determine the ConnectionHash and it uses CommandText details
              /// to remove the item
              /// </summary>
              /// <param name="OConnection">OracleConnection from which the cache object should be removed</param>
              /// <param name="CommandText">CommandText to be removed</param>
              /// <returns>Indicates whether the item was actually removed from the cache or not</returns>
              public bool Remove(OracleConnection OConnection, string CommandText)
                   bool Removed = false;
                   // Lookup the ConnectionStringHashDetails
                   int HashValue = OracleMetaDataPoolerCleaner.ConnectionStringHashValue(OConnection);
                   if (HashValue != -1)
                        // Attempt to remove from the cache
                        Removed = this.Remove(HashValue, CommandText);
                   return Removed;
              /// <summary>
              /// Routine actually removes the items from the cache if it exists
              /// </summary>
              /// <param name="ConnectionHashValue">ConnectionHash which is used to key into the Pooled items</param>
              /// <param name="CommandText">CommandText to be removed</param>
              /// <returns>Indicates whether the item was actually removed from the cache or not</returns>
              private bool Remove(int ConnectionHashValue, string CommandText)
                   bool Removed = true;
                   // Retrieve Pooled items for particular hash value
                   Hashtable PoolContents = PooledItems[ConnectionHashValue] as Hashtable;
                   // Remove item if it is contained
                   if (PoolContents.ContainsKey(CommandText))
                        PoolContents.Remove(CommandText);
                        Removed = true;
                   return Removed;
         /// <summary>
         /// Summary description for OracleMetaDataRemover.
         /// </summary>
         public class OracleMetaDataRemover
              private OracleMetaDataRemover()
              /// <summary>
              /// Routine which Removes MetaData associated with OracleCommand object
              /// </summary>
              /// <param name="OCommand">OracleCommand to have associated MetaData removed</param>
              /// <returns>Indicates whether the MetaData associated with the OracleCommand was reset</returns>
              public static bool Remove(OracleCommand OCommand)
                   bool Removed = false;
                   // Retrieve current MetaData values from OCommand
                   Type OracleCommandMetaData = OCommand.GetType();
                   FieldInfo f_metaData = OracleCommandMetaData.GetField("m_metaData", BindingFlags.NonPublic|BindingFlags.Instance);
                   if (f_metaData != null)
                        f_metaData.SetValue(OCommand, null);
                        Removed = true;
                   // Indicate Removed from OCommand object
                   return Removed;
              /// <summary>
              /// Routine which Removes MetaData associated with OracleCommand object
              /// and allows for the removal of information from the internal cache
              /// </summary>
              /// <param name="OCommand">OracleCommand to have associated MetaData removed</param>
              /// <param name="RemoveFromMetaDataPool">Whether item should be removed from the internal metadata pool too</param></param>
              /// <returns>Indicates whether the MetaData associated with the OracleCommand was reset</returns>
              public static bool Remove(OracleCommand OCommand, bool RemoveFromMetaDataPool)
                   bool Removed = false;
                   // Remove details from Command
                   Removed = Remove(OCommand);
                   if (Removed && RemoveFromMetaDataPool)
                        // Remove information form internal cache
                        Removed = OracleMetaDataPoolerCleaner.Instance().Remove(OCommand);
                   // Indicated Removed from OCommand and Internal MetaData collection
                   return Removed;

  • TVSU "an error occurred while gathering user information"

    I am getting this error on E20 4220CTO. I was told by tech support one/some of the windows files were bad and that was why it didn't run. I don't believe that response as everything else works just fine--except TVSU--and the tech gave me no idea which windows files might be bad. I am running version 4.03.0012. Is there any fix out there?? I do not manually update the registry.But I have run a registry cleaner and reinstalled latest verion of TVSU same problems. I also did a windows repair on NetFramework 4.0. I am running Win7-SP1 64-bit. I understand there is a beta Ver. 5 out for TVSU, if yes, where can I get it???? Or is there a different fix?  I have checked the mapping interface.xml file and my version of Windows appears correctly there. Any help would be appreciated.

    OS  was preinstalled Win 7-64 bit but I have updated monthly when MS issues new releases. Copy of log file below:
    [ThinkVantage System Update build: 2012-5-11 4.03.0012] 6/19/2012 8:08:14 PM
    Info 2012-06-19 , 08:08:15  at Tvsu.Environment.EnvironmentManager..ctor()  Message: Starting Environment Manager...
    Info 2012-06-19 , 08:08:15  at Tvsu.Nls.NlsResources..ctor()  Message: Starting the instance of NLS@Runtime
    Info 2012-06-19 , 08:08:15  at Tvsu.Nls.NlsResources..ctor()  Message: The active language is: EN The default language is: EN The OS language is: EN The language loaded type is: OS
    Info 2012-06-19 , 08:08:15  at Tvsu.Commonscheduler.SchedulerManager.Save()  Message: Scheduler Manager Starts...
    Info 2012-06-19 , 08:08:15  at Tvsu.Commonscheduler.SchedulerManager.Save()  Message: Obtaining information from the Enviroment Manager...
    Info 2012-06-19 , 08:08:15  at Tvsu.Commonscheduler.SchedulerManager.Save()  Message: Validating Starts...
    Info 2012-06-19 , 08:08:15  at Tvsu.Commonscheduler.SchedulerManager.Save()  Message: Validating Ends...
    Info 2012-06-19 , 08:08:15  at Tvsu.Commonscheduler.SchedulerManager.Save()  Message: Sending Values to the SchedulerParser...
    Info 2012-06-19 , 08:08:15  at Tvt.Commonscheduler.SchedulerParser.SetValues(String v_ScheduleMode, String v_ScheduleDayOfTheMonth, String v_ScheduleDayOfTheWeek, String v_ScheduleHour, String v_ScheduleMinute, String scheduleSecond, String v_NumMinutes, String v_wakeFromSuspendHibernate, String v_Pre, String v_PreParameters, String v_PreShow, String v_Post, String v_PostParameters, String v_PostShow, String v_Task, String v_TaskParameter, String v_TaskShow, String v_CPUPriority, String v_minDaysBetweenExecution, String v_lastRunTimeHigh, String v_lastRunTimeLow, String v_nextRunTimeHigh, String v_nextRunTimeLow, String v_preRunAsUser, String v_runAsUser, String v_postRunAsUser, String v_schedulerAbility, String v_schedulerPath)  Message: Scheduler Parser - Receiving Values from the SchedulerManager
    Info 2012-06-19 , 08:08:15  at Tvt.Commonscheduler.SchedulerParser.SetValues(String v_ScheduleMode, String v_ScheduleDayOfTheMonth, String v_ScheduleDayOfTheWeek, String v_ScheduleHour, String v_ScheduleMinute, String scheduleSecond, String v_NumMinutes, String v_wakeFromSuspendHibernate, String v_Pre, String v_PreParameters, String v_PreShow, String v_Post, String v_PostParameters, String v_PostShow, String v_Task, String v_TaskParameter, String v_TaskShow, String v_CPUPriority, String v_minDaysBetweenExecution, String v_lastRunTimeHigh, String v_lastRunTimeLow, String v_nextRunTimeHigh, String v_nextRunTimeLow, String v_preRunAsUser, String v_runAsUser, String v_postRunAsUser, String v_schedulerAbility, String v_schedulerPath)  Message: Scheduler Parser - Starting Validation Process!
    Info 2012-06-19 , 08:08:15  at Tvt.Commonscheduler.SchedulerParser.SetValues(String v_ScheduleMode, String v_ScheduleDayOfTheMonth, String v_ScheduleDayOfTheWeek, String v_ScheduleHour, String v_ScheduleMinute, String scheduleSecond, String v_NumMinutes, String v_wakeFromSuspendHibernate, String v_Pre, String v_PreParameters, String v_PreShow, String v_Post, String v_PostParameters, String v_PostShow, String v_Task, String v_TaskParameter, String v_TaskShow, String v_CPUPriority, String v_minDaysBetweenExecution, String v_lastRunTimeHigh, String v_lastRunTimeLow, String v_nextRunTimeHigh, String v_nextRunTimeLow, String v_preRunAsUser, String v_runAsUser, String v_postRunAsUser, String v_schedulerAbility, String v_schedulerPath)  Message: Scheduler Parser - All validations have been processed!
    Info 2012-06-19 , 08:08:15  at Tvt.Commonscheduler.SchedulerParser.SetValues(String v_ScheduleMode, String v_ScheduleDayOfTheMonth, String v_ScheduleDayOfTheWeek, String v_ScheduleHour, String v_ScheduleMinute, String scheduleSecond, String v_NumMinutes, String v_wakeFromSuspendHibernate, String v_Pre, String v_PreParameters, String v_PreShow, String v_Post, String v_PostParameters, String v_PostShow, String v_Task, String v_TaskParameter, String v_TaskShow, String v_CPUPriority, String v_minDaysBetweenExecution, String v_lastRunTimeHigh, String v_lastRunTimeLow, String v_nextRunTimeHigh, String v_nextRunTimeLow, String v_preRunAsUser, String v_runAsUser, String v_postRunAsUser, String v_schedulerAbility, String v_schedulerPath)  Message: Scheduler Parser - Writting to the registry...
    Info 2012-06-19 , 08:08:15  at Tvt.Commonscheduler.SchedulerParser.SetValues(String v_ScheduleMode, String v_ScheduleDayOfTheMonth, String v_ScheduleDayOfTheWeek, String v_ScheduleHour, String v_ScheduleMinute, String scheduleSecond, String v_NumMinutes, String v_wakeFromSuspendHibernate, String v_Pre, String v_PreParameters, String v_PreShow, String v_Post, String v_PostParameters, String v_PostShow, String v_Task, String v_TaskParameter, String v_TaskShow, String v_CPUPriority, String v_minDaysBetweenExecution, String v_lastRunTimeHigh, String v_lastRunTimeLow, String v_nextRunTimeHigh, String v_nextRunTimeLow, String v_preRunAsUser, String v_runAsUser, String v_postRunAsUser, String v_schedulerAbility, String v_schedulerPath)  Message: Scheduler Parser - All values were saved on the Registry!
    Info 2012-06-19 , 08:08:15  at Tvt.Commonscheduler.SchedulerParser.SetValues(String v_ScheduleMode, String v_ScheduleDayOfTheMonth, String v_ScheduleDayOfTheWeek, String v_ScheduleHour, String v_ScheduleMinute, String scheduleSecond, String v_NumMinutes, String v_wakeFromSuspendHibernate, String v_Pre, String v_PreParameters, String v_PreShow, String v_Post, String v_PostParameters, String v_PostShow, String v_Task, String v_TaskParameter, String v_TaskShow, String v_CPUPriority, String v_minDaysBetweenExecution, String v_lastRunTimeHigh, String v_lastRunTimeLow, String v_nextRunTimeHigh, String v_nextRunTimeLow, String v_preRunAsUser, String v_runAsUser, String v_postRunAsUser, String v_schedulerAbility, String v_schedulerPath)  Message: Scheduler Parser - Reloading Scheduler
    Info 2012-06-19 , 08:08:15  at Tvt.Commonscheduler.SchedulerParser.SetValues(String v_ScheduleMode, String v_ScheduleDayOfTheMonth, String v_ScheduleDayOfTheWeek, String v_ScheduleHour, String v_ScheduleMinute, String scheduleSecond, String v_NumMinutes, String v_wakeFromSuspendHibernate, String v_Pre, String v_PreParameters, String v_PreShow, String v_Post, String v_PostParameters, String v_PostShow, String v_Task, String v_TaskParameter, String v_TaskShow, String v_CPUPriority, String v_minDaysBetweenExecution, String v_lastRunTimeHigh, String v_lastRunTimeLow, String v_nextRunTimeHigh, String v_nextRunTimeLow, String v_preRunAsUser, String v_runAsUser, String v_postRunAsUser, String v_schedulerAbility, String v_schedulerPath)  Message: Scheduler Parser - The Scheduler was reloaded
    Info 2012-06-19 , 08:08:15  at Tvsu.Commonscheduler.SchedulerManager.Save()  Message: All values sent to SchedulerParser...
    Info 2012-06-19 , 08:08:15  at Tvsu.Commonscheduler.SchedulerManager.Save()  Message: Scheduler Manager ends...
    Severe 2012-06-19 , 08:08:15  at Tvsu.Sdk.SuSdk.StartApplication()  Message: Application runs with the framework: 2.0.50727.5456
    Info 2012-06-19 , 08:08:15  at Tvsu.Engine.DataBase.InitializeDataBase()  Message: Initializing the DataBase from file: updates.ser
    Info 2012-06-19 , 08:08:15  at Tvsu.Sdk.SuSdk.StartApplication()  Message: Starting the Application
    Warning 2012-06-19 , 08:08:15  at Tvsu.Gui.Util.Tools.get_SystemVendor()  Message: The vendor was resolved to THINK
    Info 2012-06-19 , 08:08:15  at Tvsu.Gui.GUIController.StartGUI(Boolean showsplash)  Message: Starting GUI...
    Info 2012-06-19 , 08:08:15  at Tvsu.Gui.GUIController.StartGUI(Boolean showsplash)  Message: MainFrame created successfully
    Info 2012-06-19 , 08:08:15  at Tvsu.Gui.GUIController.StartGUI(Boolean showsplash)  Message: GUI -- Welcome screen
    Info 2012-06-19 , 08:08:15  at Tvsu.Gui.GUIController.BackToMain()  Message: Setting Welcome screen...
    Info 2012-06-19 , 08:08:15  at Tvsu.Gui.MainFrame.SetScreen(String screen, EventHandler[] eh)  Message: Loading Welcome screen on Action pane.
    Info 2012-06-19 , 08:08:20  at Tvsu.Gui.GUIController.SearchUpdates(Object sender, EventArgs args)  Message: Starting the Search process...
    Info 2012-06-19 , 08:08:20  at Tvsu.Gui.MainFrame.SetScreen(String screen, EventHandler[] eh)  Message: Loading Search screen on Action pane.
    Info 2012-06-19 , 08:08:20  at Tvsu.Gui.Util.ProgressThread.InitSearch()  Message: GUI -- Reporting progress for the Search
    Info 2012-06-19 , 08:08:20  at Tvsu.Sdk.SuSdk.GetSystemProperties()  Message: Get the System Properties
    Info 2012-06-19 , 08:08:20  at Tvsu.Engine.Task.Task.StartExecution()  Message: PreTask
    Info 2012-06-19 , 08:08:20  at Tvsu.Engine.Task.Task.StartExecution()  Message: Start
    Info 2012-06-19 , 08:08:20  at Tvsu.Engine.Task.Task.Start()  Message: Starting the task
    Info 2012-06-19 , 08:08:20  at Tvsu.Engine.Task.Task.Start()  Message: The current process is:HelloProcess
    Info 2012-06-19 , 08:08:20  at Tvsu.Engine.Task.Task.Start()  Message: Executing the PreProcess HelloProcess
    Info 2012-06-19 , 08:08:20  at Tvsu.Engine.Task.Task.Start()  Message: Executing the StartProcess HelloProcess
    Info 2012-06-19 , 08:08:20  at Tvsu.Engine.Process.HelloProcess.DownloadHelpFile()  Message: The chm help file is already present in the system
    Info 2012-06-19 , 08:08:20  at Tvsu.Engine.Process.HelloProcess.Start()  Message: The test.properties file was not found, the normal Hello process will continue.
    Info 2012-06-19 , 08:08:20  at Tvsu.Engine.Process.HelloProcess.Start()  Message: HelloProcess Started
    Info 2012-06-19 , 08:08:20  at Tvsu.Engine.Process.HelloProcess.Start()  Message: Client level: HelloLevel_8_11_00
    Info 2012-06-19 , 08:08:20  at Tvsu.Engine.Process.HelloProcess.DownloadUDF(String helloClientLevel)  Message: The UDF will be downloaded from: https://download.lenovo.com/ibmdl/pub/pc/pccbbs/agent/SSClientCommon/HelloLevel_8_11_00.xml
    Info 2012-06-19 , 08:08:20  at Tvsu.Engine.Process.HelloProcess.DownloadUDF(String helloClientLevel)  Message: The UDF will be downloaded to-> C:\Program Files (x86)\Lenovo\System Update\session\system\SSClientCommon\HelloLevel_8_11_00.xml
    Info 2012-06-19 , 08:08:20  at Tvsu.Gui.CustomComponents.Step.set_Image(StepImage value)  Message: Setting PROCESSING status.
    Info 2012-06-19 , 08:08:20  at Tvsu.ConnectionSettings.ConnectionSettings.GetConnectionForURL(String url)  Message: Creating a new Connection Settings Bean instance to Host: download.lenovo.com
    Info 2012-06-19 , 08:08:20  at Tvt.ConnectionSettings.ConnectionSettings.GetConnectionForURL(String url)  Message: Direct connection found
    Info 2012-06-19 , 08:08:20  at Tvsu.FileDownloader.HttpsDownload.SetCertificates()  Message: Setting certificates...
    Info 2012-06-19 , 08:08:20  at Tvsu.FileDownloader.HttpsDownload.GetProxy(ConnectionSettingsBean connBean)  Message: Connection type set to DIRECT in ConnectionSettingsBean
    Severe 2012-06-19 , 08:08:20  at Tvsu.FileDownloader.HttpsDownload.Init(FileDownloadInfo fileInfo)  Message: Debug Log: Init method:GET
    Severe 2012-06-19 , 08:08:21  at Tvsu.FileDownloader.HttpsDownload.doDownloadByHttps(FileDownloadInfo fileInfo, downloadingDelegate downDelegate)  Message: Debug Log: doDownloadByHttps InterException is null, uri:https://download.lenovo.com/ibmdl/pub/pc/pccbbs/agent/SSClientCommon/HelloLevel_8_11_00.xml
    Severe 2012-06-19 , 08:08:21  at Tvsu.FileDownloader.HttpsDownload.doDownloadByHttps(FileDownloadInfo fileInfo, downloadingDelegate downDelegate)  Message: Debug Log doDownloadByHttps webException message:The remote server returned an error: (404) Not Found.
    Severe 2012-06-19 , 08:08:21  at Tvsu.FileDownloader.HttpsDownload.doDownloadByHttps(FileDownloadInfo fileInfo, downloadingDelegate downDelegate)  Message: Debug Log server path: https://download.lenovo.com/ibmdl/pub/pc/pccbbs/agent/SSClientCommon/HelloLevel_8_11_00.xml responseStatus:404
    Severe 2012-06-19 , 08:08:21  at Tvsu.FileDownloader.HttpsDownload.doDownloadByHttps(FileDownloadInfo fileInfo, downloadingDelegate downDelegate)  Message: Debug Log server path: https://download.lenovo.com/ibmdl/pub/pc/pccbbs/agent/SSClientCommon/HelloLevel_8_11_00.xml webException.StackTrace:   at System.Net.HttpWebRequest.GetResponse()    at Tvsu.FileDownloader.HttpsDownload.doDownloadByHttps(FileDownloadInfo fileInfo, downloadingDelegate downDelegate)
    Info 2012-06-19 , 08:08:21  at Tvsu.Engine.Process.HelloProcess.Start()  Message: UDF download status is -> Failed
    Severe 2012-06-19 , 08:08:21  at Tvsu.Engine.Process.HelloProcess.Start()  Message: Could't connect to the HelloServer, no UDF file was downloaded
    Info 2012-06-19 , 08:08:21  at Tvsu.Egather.EgatherManager.GetEgatherParser(String type)  Message: Running egather minimal.....
    Info 2012-06-19 , 08:08:21  at Tvsu.Egather.EgatherExecutor.RunAsWindowsService(String directory, String command, String arguments)  Message:  /execute ia.exe /arguments -filename"""C:\Program Files (x86)\Lenovo\System Update\egather\sysrecomin""" -probes REGIONAL_SETTINGS GATHERER_INFORMATION SYSTEM_SUMMARY -local /directory C:\Program Files (x86)\Lenovo\System Update\egather\ /type COMMAND /timeout 300000
    Info 2012-06-19 , 08:08:21  at Tvsu.Egather.EgatherExecutor.RunAsWindowsService(String directory, String command, String arguments)  Message: FileName Path: C:\Program Files (x86)\Lenovo\System Update\TvsuCommandLauncher.exe
    Info 2012-06-19 , 08:08:22  at Tvsu.Egather.EgatherExecutor.ExecuteEgather(String fileOutput, String args)  Message: RC eGatherer: 0
    Info 2012-06-19 , 08:08:23  at Tvsu.Engine.Process.HelloProcess.Start()  Message: MTM received from eGather: 4220CTO
    Severe 2012-06-19 , 08:08:23  at Tvsu.Engine.Process.HelloProcess.Start()  Message: An error ocurred while using the MappingParser  Exception:   Message: Key cannot be null. Parameter name: key   Type: System.ArgumentNullException      at System.Collections.Hashtable.ContainsKey(Object key)    at System.Collections.Hashtable.Contains(Object key)    at Tvt.Mapping.Languages.get_Item(String tla)    at Tvsu.Engine.Process.HelloProcess.Start()
    Severe 2012-06-19 , 08:08:23  at Tvsu.Engine.Process.HelloProcess.Start()  Message: A value could not be mapped when using the MappingParser or eGather execution failed  Exception:   Message: Error getting MappingParser properties   Type: Tvsu.Engine.Process.MappingInterfaceException      at Tvsu.Engine.Process.HelloProcess.Start()
    Severe 2012-06-19 , 08:08:23  at Tvsu.Engine.Task.Task.StartExecution()  Message: An error occurred while the task: HelloTask executed the process: HelloProcessthe message from exception isA fatal error ocurred while in the HelloProcess  Exception:   Message: A fatal error ocurred while in the HelloProcess   Type: Tvsu.Engine.Process.HelloProcessException      at Tvsu.Engine.Task.Task.Start()    at Tvsu.Engine.Task.Task.StartExecution()
    Info 2012-06-19 , 08:08:23  at Tvsu.Gui.CustomComponents.Step.set_Image(StepImage value)  Message: Setting FAILED status.
    Info 2012-06-19 , 08:08:23  at Tvsu.Gui.GUIController.ShowErrorMessage(Exception e)  Message: Error while gathering user information.  Exception:   Message: A fatal error ocurred while in the HelloProcess   Type: Tvsu.Engine.Process.HelloProcessException      at Tvsu.Engine.Task.Task.StartExecution()    at Tvsu.Sdk.SuSdk.GetSystemProperties()    at Tvsu.Gui.Util.ProgressThread.InitSearch()
    Info 2012-06-19 , 08:08:23  at Tvsu.Gui.FlowScreens.Messages.ShowMessage(String message, String title, String mastheadtext, MessageType t, Boolean check, IWin32Window owner)  Message: Showing ERROR Message: < An error occurred while gathering user information. >
    Info 2012-06-19 , 08:08:25  at Tvsu.Gui.GUIController.BackToMain()  Message: Setting Welcome screen...
    Info 2012-06-19 , 08:08:25  at Tvsu.Gui.MainFrame.SetScreen(String screen, EventHandler[] eh)  Message: Loading Welcome screen on Action pane.
    Info 2012-06-19 , 08:08:30  at Tvsu.Gui.GUIController.AskBeforeClosing()  Message: Close System Update?
    Info 2012-06-19 , 08:08:30  at Tvsu.Gui.FlowScreens.Messages.ShowMessage(String message, String title, String mastheadtext, MessageType t, Boolean check, IWin32Window owner)  Message: Showing QUESTION Message: < Are you sure you want to close System Update? >
    Info 2012-06-19 , 08:08:32  at Tvsu.Gui.GUIController.AskBeforeClosing()  Message: Application will close now? True
    Info 2012-06-19 , 08:08:32  at Tvsu.Gui.MainFrame.OnClosing(CancelEventArgs e)  Message: User wanted to close System Update, or the package force a reboot.
    Severe 2012-06-19 , 08:08:32  at Tvsu.Sdk.SuSdk.ShutDownApplication()  Message: Has happened an exception while the UNCAuthenticator.Shutdown() was executedShare name can not be null or empty
    Info 2012-06-19 , 08:08:32  at Tvsu.Engine.DataBase.ShutDownDataBase()  Message: Shutting down the DataBase, saving any data into file: updates.ser
    Info 2012-06-19 , 08:08:32  at Tvsu.Environment.EnvironmentManager.closeEM()  Message: Closing Environment Manager.
    Info 2012-06-19 , 08:08:32  at Tvsu.Sdk.SuSdk.ShutDownApplication()  Message: Shut Down the Application

Maybe you are looking for