Translate

Wednesday, February 29, 2012

Java - NoClassDefFoundError

Usually when you get an error telling you that a class cannot be found it really means that the class cannot be found. In my case I received this error because I was trying to run a Tomcat app from within Eclipse and the project I was running is referencing another project:

The error message said:
    java.lang.NoClassDefFoundError: Lcom/dataSpace/dataRecord/TableRecord;

I new that the class, TableRecord, is in the referenced project. To fix the problem I just had to add the refernced project to the DevLoader:

Thursday, February 23, 2012

SharePoint 2010 - Could not allocate space for object

The day was going along great when all of a sudden a lot of users were experiencing problems with our SharePoint site. I checked the SharePoint log file using the ULS viewer and with the correlation id from one of the errors I found this entry:

System.Data.SqlClient.SqlException: Could not allocate space for object 'dbo.AllUserData'.'AllUserData_ParentId' in database 'Insite_Content' 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. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlDataReader.HasMoreRows() at System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout) at System.Data.SqlClient.SqlDataReader.NextResult() at Microsoft.SharePoint.SPSqlClient.ExecuteQueryInternal(Boolean retryfordeadlock) at Microsoft.SharePoint.SPSqlClient.ExecuteQuery(Boolean retryfordeadlock)

Turns out our SQL server is configured to do a daily backup to the same drive as the SQL database files and the drive was full after three months of backups. Isn't that just brilliant! There was no room for the database to grow. I removed some of the old backup files to free up some space and things were back to normal. Just to make sure this problem didn't happen again before we found the time to make this right, I added a cleanup task onto the backup maitenance job so that backup files older then 4 weeks would be deleted.

Friday, February 17, 2012

SharePoint 2010 - Add a Missing User Profile Property Attribute for Export

It was another one of those Thursdays! Yesterday I was trying to add a missing AD schema attribute to a User Profile Property for export using the AddNewExportMapping command in PowerShell which resulted in the following error:

Funny thing was that the attribute was still added to the property, but as an Import! In the end it was a good thing because I ended up learning more about the Synchronization Service Manager. Turns out that adding the attributes is a lot easier using this application and you get a nice view to confirm that they are indeed there! Here's how to do it. On your SharePoint server run the Synchronization Service Manager, miisclient.exe. In articles you will also find it referred to as SSM or the FIM client. It is located in the C:\Program Files\Microsoft Office Servers\14.0\Synchronization Service\UIShell folder.

Select your connection:

Then right click and select properties:

Select "Configure Attribute Flow":

Then select the appropriate group. In my case the "Data Source Attribute" with "Object Type" user" and "Metaverse Attribute" with "Object Type: person". Then in the "Build Attribute Flow" section select the "Data source attribute" and the corresponding "Metaverse attribute" and in the "Flow Direction" section select your desired direction settings:

When you have made your selections, click "New" to add the mapping.

Thursday, February 16, 2012

SharePoint 2010 - Reorder User Profile Properties

Changing the display order of profile properties in SharePoint is a real PITA. There are some scripts you can find on the web to make it easier, but from what I've read people have had mixed results using those scripts. A way that I found that is easy and definitely works is to change the value of the display order in the database table, ProfileSubtypePropertyAttributes, in the Profile database using SQL Manager.

The following SQL script will list the properties along with the display order.
SELECT TOP 1000 [ProfileSubtypeID]
      ,[ProfileSubtypePropertyAttributes].[PropertyID]
      ,[PropertyList].[PropertyName]
      ,[PropertyList].[isSection]
      ,[DisplayOrder]
FROM [Profile DB].[dbo].[ProfileSubtypePropertyAttributes]
join [Profile DB].[dbo].[PropertyList] on propertyList.propertyid = [ProfileSubtypePropertyAttributes].propertyid  where [ProfileSubtypeID] = 1
order by [DisplayOrder]

The script will give you a listing like this:
Displayorder

The following update script changes the display order of the property with the propertyID, 10013, to 5304. Note that the numbering for the DisplayOrder field does not have to be sequential. The screen shot above shows the property with the new display order value.
update [Profile DB].[dbo].[ProfileSubtypePropertyAttributes]
set DisplayOrder = 5304
where propertyID = 10013

Wednesday, February 15, 2012

SharePoint 2010 - New AD Property Not Displayed

If you add a new User Profile Property and it's coming from the Active Directory the property will not be displayed on the My Sites edit profile page until you do a profile synchronization.

Monday, February 13, 2012

Radio for a New Nation | Internews

For decades, radio waves have been the primary vehicle to disseminate information in Sudan, as in many places where literacy is low, electricity is inconsistent or uneven, and media options are few. But until eight years ago, most people in South Sudan did not have access to radio or any type of independent media.
Radio for a New Nation | Internews

Friday, February 10, 2012