none
MAP 7.0 - Inventory fails to complete RRS feed

  • Question

  • Hi,

    I'm working with MAP 7.0 at the moment. I'm having problem performing inventory and based on my observations, it seems to be failing when the total number computers reach around 500. Is there any limitation on MAP?

    I'm taking inventory based on AD Services discovery method. Initially, I started creating separate database for each AD OU in our enviornment. That works fine. Each OU has around 100 - 200 computers.

    Now, I'm trying to use a single database so that I can work with the data more easily. Instead of running the inventory gathering for all OU at the same time, I'm doing it in stages (one OU at a time). For first couple of OU the inventory finishes successfully. I've noticed that when the total number or workstations reaches around 500, the inventory process crashes.

    I'm not sure exactly what is causing the inventory to fail and it won't let me start from scratch unless I delete the existing database and recreate another one.

    Can you please advise? Thanks,


    Pman
    http://www.pmansLab.com/

    Tuesday, June 5, 2012 4:29 PM

Answers

  • It's been resolved. After I found the log file and revewed it, I noticed where the problem is. It was a space related issue. There wasn't enough space for the database to grow/add more data.

    In case it helps others, here's the last few lines from the log file:

    <2012-06-05 16:10:36.42 AssessInventoryWorker@AssessInventoryWorker,I> AssessmentStartedEventHandler: Assessment start event.
    <2012-06-05 16:10:36.45 AssessInventoryWorker@Analyzer,I> RunAssessments() - Elapsed time for assessment 'SetAssessmentFlagsAssessment': 31 ms
    <2012-06-05 16:10:42.68 AssessInventoryWorker@Analyzer,E> RunAssessments() - Assessment threw an exception:<o:p></o:p>

       |Microsoft.AssessmentPlatform.MapException: Caught SqlException running the stored procedure sp_assessment_WindowsInstalledSoftwareAssessment. ---> System.Data.SqlClient.SqlException: Could not allocate space for object 'dbo.SORT temporary run storage:  140737540915200' in database 'tempdb' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.
       |The transaction log for database 'tempdb' is full due to 'ACTIVE_TRANSACTION'. 
       |   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
       |   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
       |   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
       |   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
       |   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
       |   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
       |   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
       |   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
       |   at Microsoft.AssessmentPlatform.DataAccess.DataAccessCore.ExecuteStoredProcHelper(String storedProcName, Object[] parameters)
       |   at Microsoft.AssessmentPlatform.DataAccess.DataAccessCore.DoWorkInTransaction[T](Nullable`1 isolationLevel, String onSqlExceptionMessage, TransactionWorkCallback`1 callback)
       |   --- End of inner exception stack trace ---
       |   at Microsoft.AssessmentPlatform.DataAccess.DataAccessCore.DoWorkInTransaction[T](Nullable`1 isolationLevel, String onSqlExceptionMessage, TransactionWorkCallback`1 callback)
       |   at Microsoft.AssessmentPlatform.Analytics.Assessments.StoredProcAssessment.RunAssessment(ThreadSafeFlag continueProcessingFlag, SecureString connectionString)
       |   at Microsoft.AssessmentPlatform.Analytics.Analyzer.RunAssessments(IEnumerable`1 assessments)
    <2012-06-05 16:10:42.68 AssessInventoryWorker@AssessInventoryWorker,I> AssessmentCompletedEventHandler: Assessment completed event.
    <2012-06-05 16:10:42.83 AssessInventoryWorker@TaskProcessor,I> WorkerCompleted: Worker: 'AssessInventoryWorker'
    <2012-06-05 16:10:42.83 TID-11@TaskProcessor,I> Run: Completed. Status: Failed

    
    
    
    
    
    
    
    
    
    
    

    I was running MAP on a Windows 7 VM and it was configured to save local user profile on a separate drive. And the Database for MAP seem to uses user profile location (D:\Users\username\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MAPToolkit). After creating more space on that location, MAP was able to complete the inventory successfully.


    Pman
    http://www.pmansLab.com/

    • Marked as answer by Parvez Akkas Thursday, June 7, 2012 7:34 PM
    Thursday, June 7, 2012 7:33 PM

All replies

  • Can you send the log file to mapfdbk@microsoft(dot)com so I can examine the errors that are being generated?

    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    Tuesday, June 5, 2012 7:51 PM
    Moderator
  • Hi Michael,

    Feel like a noob asking this, but how/where do I get the log file? I was looking for it myself after encountering the issue.


    Pman
    http://www.pmansLab.com/

    Tuesday, June 5, 2012 8:00 PM
  • Sorry, I usually include the file path whenever I ask for the log. It is here: %Program Files%\Microsoft Assessment and Planning Toolkit\bin\log

    If you ZIP it, it should compress to a pretty small file size, but if it is still large after compressing (10+ MB), then you could copy/paste a few hundred lines from the end of the log file and send that. It should have the error messages and the info I need. If not, there are other ways we can try to get the file uploaded.


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    Tuesday, June 5, 2012 8:08 PM
    Moderator
  • It's been resolved. After I found the log file and revewed it, I noticed where the problem is. It was a space related issue. There wasn't enough space for the database to grow/add more data.

    In case it helps others, here's the last few lines from the log file:

    <2012-06-05 16:10:36.42 AssessInventoryWorker@AssessInventoryWorker,I> AssessmentStartedEventHandler: Assessment start event.
    <2012-06-05 16:10:36.45 AssessInventoryWorker@Analyzer,I> RunAssessments() - Elapsed time for assessment 'SetAssessmentFlagsAssessment': 31 ms
    <2012-06-05 16:10:42.68 AssessInventoryWorker@Analyzer,E> RunAssessments() - Assessment threw an exception:<o:p></o:p>

       |Microsoft.AssessmentPlatform.MapException: Caught SqlException running the stored procedure sp_assessment_WindowsInstalledSoftwareAssessment. ---> System.Data.SqlClient.SqlException: Could not allocate space for object 'dbo.SORT temporary run storage:  140737540915200' in database 'tempdb' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.
       |The transaction log for database 'tempdb' is full due to 'ACTIVE_TRANSACTION'. 
       |   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
       |   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
       |   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
       |   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
       |   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
       |   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
       |   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
       |   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
       |   at Microsoft.AssessmentPlatform.DataAccess.DataAccessCore.ExecuteStoredProcHelper(String storedProcName, Object[] parameters)
       |   at Microsoft.AssessmentPlatform.DataAccess.DataAccessCore.DoWorkInTransaction[T](Nullable`1 isolationLevel, String onSqlExceptionMessage, TransactionWorkCallback`1 callback)
       |   --- End of inner exception stack trace ---
       |   at Microsoft.AssessmentPlatform.DataAccess.DataAccessCore.DoWorkInTransaction[T](Nullable`1 isolationLevel, String onSqlExceptionMessage, TransactionWorkCallback`1 callback)
       |   at Microsoft.AssessmentPlatform.Analytics.Assessments.StoredProcAssessment.RunAssessment(ThreadSafeFlag continueProcessingFlag, SecureString connectionString)
       |   at Microsoft.AssessmentPlatform.Analytics.Analyzer.RunAssessments(IEnumerable`1 assessments)
    <2012-06-05 16:10:42.68 AssessInventoryWorker@AssessInventoryWorker,I> AssessmentCompletedEventHandler: Assessment completed event.
    <2012-06-05 16:10:42.83 AssessInventoryWorker@TaskProcessor,I> WorkerCompleted: Worker: 'AssessInventoryWorker'
    <2012-06-05 16:10:42.83 TID-11@TaskProcessor,I> Run: Completed. Status: Failed

    
    
    
    
    
    
    
    
    
    
    

    I was running MAP on a Windows 7 VM and it was configured to save local user profile on a separate drive. And the Database for MAP seem to uses user profile location (D:\Users\username\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MAPToolkit). After creating more space on that location, MAP was able to complete the inventory successfully.


    Pman
    http://www.pmansLab.com/

    • Marked as answer by Parvez Akkas Thursday, June 7, 2012 7:34 PM
    Thursday, June 7, 2012 7:33 PM
  • I am also having issues with completing my initial inventory scan... is there someone I can send my log file to help me out? I am unfortunately less inclined to really see where I am going wrong when reading through this log file.
    Friday, July 13, 2012 2:53 PM
  • I'm having the same issue as the inventory doesn't seem to work in MAPS 7.0.4640.0. After you fill up all the information in the wizard and then click on the finish button, there are no status messages displayed. You are back in the main screen.

    This was working fine in MAPS 6.5 and I had upgraded to 7.0 yesterday and since then I'm having this issue.

    Here are the contents from the log file. Any help is much appreciated.

    <2012-07-17 10:00:00.19 TID-1039@DatabaseManager,I> CreateANewDatabase(): Created new database. Name: 'xx_servers_2012_07_17_01'
    <2012-07-17 10:01:32.13 TID-1@InventoryService,I> Reset() - Resetting InventoryService.
    <2012-07-17 10:01:32.41 TID-1@UICommonSingleton,E> An exception occurred in method: StartAssessmentWizard
       |Exception message: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.
       |Stack trace:
       |   at System.Security.Cryptography.SHA1Managed..ctor()
       |   at HashFunctions.HashString(String inputString)
       |   at Microsoft.AssessmentPlatform.InventoryEngine.WorkItems.CredentialPropertiesEx..ctor(CredentialProperties credProps)
       |   at Microsoft.AssessmentPlatform.InventoryEngine.InventoryService.AddComputerCredentialProperties(CollectorTechnology tech, List`1 computers, List`1 credprops)
       |   at Microsoft.AssessmentPlatform.UI.Console.Tasks.InventoryWorker.AddTechCompCredPropsToInventory(CollectorTechnology tech, IEnumerable`1 multiCredTechList, List`1 techProps, IInventoryService inventoryService, String loggingIntro)
       |   at Microsoft.AssessmentPlatform.UI.Console.Tasks.InventoryWorker.AddTechCompCredProps(CollectorTechnology tech, IInventoryService inventoryService)
       |   at Microsoft.AssessmentPlatform.UI.Console.Tasks.InventoryWorker.InitializeInventoryService(IInventoryService inventoryService)
       |   at Microsoft.AssessmentPlatform.UI.Console.Tasks.InventoryWorker..ctor()
       |   at Microsoft.AssessmentPlatform.UI.Console.Wizards.InventoryWizard.ShowWizard(IWin32Window parent)
       |   at Microsoft.AssessmentPlatform.UI.Console.ConsoleWindow.StartAssessmentWizard(WizardType wizardType)
    <2012-07-17 10:02:02.33 TID-1@WunderBarBasePage,I> DisplayViewPage: Opening view type: SurveyOverview
    <2012-07-17 10:02:04.62 TID-1@WunderBarBasePage,I> DisplayViewPage: Opening view type: RootPageWpfHost`2
    <2012-07-17 10:02:10.36 TID-1@WunderBarBasePage,I> DisplayViewPage(): View 'MachineInventory' failed a view predicate. Reason message: Not enough inventory data exists in the database.
    <2012-07-17 10:02:10.36 TID-1@WunderBarBasePage,I> DisplayViewPage: Opening view type: PredicateFailedView

    Tuesday, July 17, 2012 2:17 PM
  • Can you send the log file to mapfdbk@microsoft(dot)com so I can examine the errors that are being generated?

    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    Tuesday, July 17, 2012 6:33 PM
    Moderator
  • The error is coming because we are using SHA1Managed in a SQL CLR function which is not a FIPS compliant implementation in the .NET framework and your box has FIPS compliance turned on.
    You can find more info here: http://blog.aggregatedintelligence.com/2007/10/fips-validated-cryptographic-algorithms.html

    We have not touched this for a few releases, so if 6.5 worked and 7.0 doesn't, then something changed on your end. Perhaps the GP for FIPS was turned on recently or something similar. We only use SHA1Managed for hashing and not for encrypting anything.


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    Tuesday, July 17, 2012 8:03 PM
    Moderator