Thursday, 14 June 2012

How to Apply Cumulative Updates and Avoid Issues

Hi all,

The last few weeks, I was busy in patching our SharePoint 2007 and 2010 farms in test and prod environment.
Of course, I faced several issues, but now, I can say that all farms are up-to-date until Feb 2012 CU.

I can warmly told you to monitor available space on your SQL disk, and the Errors in your Event Viewer for the lack of access rights on the DB's.

Part 1 : Procedure followed to apply the CU

First of all, write down the complete list of your servers of all your farms.

I've 3 environments : PROD, UAT (should be as close as possible to PROD) and Test.
Test is only used for big changes, or in standalone.

PROD and UAT are very important, as if UAT pass the tests, we are allowed to apply the changes in PROD.
This procedure is for the patch, adding new feature, and in this case : allow the end-users to test their migrated sites and to fill the survey.

Doing this, we were able to point out the sites that were customised via SharePoint Designer in 2007.


Now, let's go for the CU process :

STEP1 :
-          Download and prepare the binaries of the CU that will be needed for your patching process.
-          Install the binaries on all your servers in the same Farm. (proceed farm by farm)
-          At the end of this install process, do not click on the message box : "Do you want to reboot to finalise the installation of this package?"
Sometime, this message was displayed, sometime not… Strange…
-          When the binaries are installed on all servers, click on "OK" or "No", following the end message that you got.

STEP 2 :
-          Open the "Configuration Wizard", click "Next", then "YES"
-          And WAIT !!!!
-          Do same operation on all the remaining servers of your farm
-          When all servers are at the same step, go to your CA, and press "Next"
-          When the Wizard is successful, do not click on "Finish", but continue the Configuration process to the next servers, one-by-one.

STEP 3 :
-          On the CA, click "Finish" and check your farm version (System Settings è Manage Servers in this Farm
-          Check the Version, and the status of your servers in the farm. (in this example, 2 servers are upgraded, not the 2 others)

-          Check the Upgrade Status via Upgrade and Migration è Check Upgrade Status





Part 2 : Errors found

Case #1 : Event 3760
The account issue occurs specially on our TEST environment, as DB's are copied from prod, removed and replaced for test purpose.

Case #2 : Event 3758
SQL disk-volume was full.
Solution is to move some DB's to another volume, but SharePoint Services have to be stopped.


Case #3 : Database is deleted, but still listed in SharePoint 2010 CA
I also had this Event 3760, same error as in case #1.
The difference is that the concerned DB was deleted from SQL disk, but was not deleted from SharePoint CA.
So, I removed the entry via Application Management è Manage Content Database, select the related Web Application, and then delete the missing Database Name entry.




Part 3 : used tips

-          If you have the status "Upgrade Available" in the "Farm Information" page, you can always execute this command from your BIN folder (<drive>:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN) :
psconfig -cmd upgrade -inplace b2b -wait
               or
            psconfig -cmd upgrade -inplace b2b -force -cmd applicationcontent -install -cmd installfeatures

In my example, I had to wait longer than in the other farms, as lot of DB's were present, and to run                                                the second psconfig command on the last server.

-          When you've installed the binaries, and you need to install again the CU, you can force it's installation via the command line :
<filename>.glb.exe PACKAGE.BYPASS.DETECTION.CHECK=1

-          In the configuration Wizard, if there is some installed patches shown as "Missing on <servername>", you can use this PowerShell command :
Get-SPProduct -local
            Then, press "Refresh" in the Configuration Wizard".

If you still have issues, please check the created logs, and the Event Viewer.

Doing this let me update all my servers until Feb 2012 CU, in SharePoint 2007 and 2010.



That's all folks.






SharePoint document Category : double check for typo

Today's story is only to show how this product (SharePoint) is known by the end-users.

When they do modification into their documents, and the result is different as expected, it is always SharePoint's fault.

Today, a colleague of mine call me :
- Hey, Mr SharePoint. There is a problem. Can you check ?
- Yes, what is the problem - I said.
- I've change the category of my document, and it is gone from SharePoint.
- Ok, let's check in explorer view (Documents are still on SharePoint 2007 platform).

... Of course, the document is in the library.

- So, what have you done ?  -- I asked.
- I've changed the category, like this (he saved the doc on his laptop, then delete it from SharePoint, and upload it again)
So, my colleague repeat what he does previously, and I checked all the settings he choose, specially the category.

Then, he said, like a winner : "Look, my doc is not there !!!"

- Yes, but check the next category .... you'll find it !!!!

So, SharePoint made what he was asked to do.
The used category was not the same as the expected one. Instead of "IIS 7.0", the selected category was "IIS 7"

So, double pay attention to the typo when creating categories.

Now, my colleague's nickname is "PEBKAC"

SharePoint 1 - PEBKAC 0



That's all folks

Wednesday, 23 May 2012

How to Open .pdf in your browser with SharePoint 2010

Hi all,

Today's issue came from the complain of a user as he was not allowed to directly open a .pdf file in his browser.
The only solution was to download the .pdf (even if it is set as Read Only) localy, then open it.

I found this well explained post on dmitry's blog.

I've tested and approved the Second Solution, via PowerShell Script :

[CODE]
$WebApp = Get-SPWebApplication http://webapplication.domain.net
If ($WebApp.AllowedInLineDownloadedMimeTypes -notcontains "application/pdf")
{
Write-Host -ForegroundColor White "Adding PDF MIME Type..."
$WebApp.AllowedInLineDownloadedMimeTypes.Add("application/pdf")
$WebApp.UpDate()
Write-Host -ForegroundColor White "Added and Saved."
} Else {
Write-Host -ForegroundColor White "PDF MIME Type is already added."
}
[/CODE]

Do not forget to change the Web App URL at the first line, to match to your Farm.


That's all folks


Friday, 11 May 2012

Data Protection Manager for SharePoint 2010


Today's post will point to a link explaining how DPM SharePoint 2010 is working.

I was asked to recover a single file that was deleted early this month and unfortunately, the versioning is not set.
To recover the file on SharePoint 2007, I need to do those steps :

-          Request a restore of the backup to the SQL Team
-          Mount the restore on our SharePoint 2007 test environment
-          Browse the DB and extract the file
-          Copy the file back in production.

Lot of energy for a single file.

Then, I was asked if I have an idea for our SharePoint 2010 production platform to avoid this kind of issue.
I pointed 2 options:
-          Set the versioning by default
-          Use of Data Protection Manager for SharePoint 2010.

I found a nice blog From The Field explaining the DPM process.


That's all folks


FYI : Sharepoint Designer 2010 cannot edit SharePoint 2007 Web Sites

Dear all,

This mail is only for information purpose concerning SharePoint World.

Opening SharePoint 2007 site with SharePoint Designer 2010 give this message box :

Reason :


Solution : install SharePoint Designer 2007


That's all folks

SharePoint 2007 : Issues with 'Not Finished' Surveys

Today, I was forced to go into the SharePoint Survey Database to try to "unlock" the not finished surveys.

The problem is due to the misuse of the Survey Button.
End-user think that if we point the fact that the button "FINISH" will really finish the survey, part of them will never click on it, and they'll think that the "SAVE" button will do the same.

At the other end of the chain, I'm facing with the survey result that is not compatible with the number of sites that should be in the survey.

Little search on internet, and this post (http://social.msdn.microsoft.com/Forums/en-US/sharepointcustomization/thread/b9ecc145-9bfc-42a2-ae5a-77416657ea85/) gave me the missing pieces of my jigsaw.
The SQL items that must be changed to force the saved survey to become as finished survey.

-          Step 1 : write down the Survey Name (for me, I have to do the job 3 times…) :

-          Step 2 : open your SQL Server Management Studio and open you DB

-          Step 3 : in your dbo.Lists view, find your survey(s) name.

Used Query :
SELECT TOP 1000 [tp_WebId]
      ,[tp_ID]
      ,[tp_Title]
      ,[tp_Created]
  FROM [SharePoint_Content_shpSurvey].[dbo].[Lists]
  Where [tp_Title] like '%Upgrade%'

                               Note : I've used the 'like' word as my three surveys had this word in their name.

                Result :

Now, I've my 3 tp_ID related to all my Surveys.


-          Step 4 : Let's check the content of the dbo.UserData

Used Query :
SELECT TOP 1000 [tp_ID]
      ,[tp_Level]
      ,[tp_DeleteTransactionId]
      ,[tp_CheckoutUserId]
      ,[tp_LeafName]
      ,[nvarchar5]
      ,[tp_Modified]
      ,[tp_Created]
      ,[tp_ContentType]
      ,[nvarchar4]
  FROM [SharePoint_Content_shpSurvey].[dbo].[UserData]
  where [tp_ListID] = '90A65233-C431-414D-8B19-F14C20F799EF'

                Result :

In this list, we can see the completed Surveys (green box).
If tp_Level = 1 and tp_CheckoutUserId = NULL, then the survey is "Completed".
If tp_Level = 255 and tp_CheckoutUserId is not null, then you've pointed out the unfinished surveys.

Adding this line in the previous query "and [tp_Level] = 255", will give the surveys to modify : 10 rows to correct.



-          Step 5 : now, we are going to set the tp_Level to 1 and tp_CheckoutUserId to NULL

Used Query :

BEGIN TRAN UPDATE    UserData
                             SET              tp_CheckoutUserId = NULL, tp_Level = 1
                             WHERE     tp_ListId = '90A65233-C431-414D-8B19-F14C20F799EF' AND tp_Level = 255 AND tp_DeleteTransactionId = 0 COMMIT


Now, checking the dbo.UserData entries : rows 14, 17 and 21 are now correct



-          Step 6 : Let's check the content of the dbo.Docs

Used Query :
SELECT TOP 1000 [Id]
      ,[CheckoutUserId]
      ,[CheckoutDate]
      ,[Level]
      ,[DeleteTransactionId]
  FROM [SharePoint_Content_shpPortal].[dbo].[Docs]
  Where [ListID] = '90A65233-C431-414D-8B19-F14C20F799EF'

In the green square, you can find the correct values for CheckoutUserId, CheckoutDate and Level columns.
In the red square, values that shows the unfinished surveys.

-          Step 7 : now, we are going to set the CheckoutUserId, CheckoutDate to NULL, and Level to 1

Used Query :
BEGIN TRAN UPDATE    Docs
                             SET              CheckoutUserId = NULL, CheckoutDate = NULL, [Level] = 1
                             WHERE     ListId = '90A65233-C431-414D-8B19-F14C20F799EF' AND [Level] = 255 AND CheckoutDate IS NOT NULL AND
                                                   DeleteTransactionId = 0 COMMIT


Now, let's check by searching the Id of former unfinished surveys :

As you can see, all the values are set as requested.


Now, let's check the Before/After in the Survey site : missing Surveys are now available.

                        


That's all folks

Thursday, 22 March 2012

RSS viewer webpart in SharePoint 2010


Today I solved the issue concerning the availability of the RSS viewer webpart in our production mySite.

2 steps are needed in our case :

1-      Web.config of mySite :
a.       updated the defaultProxy section inf "D:\inetpub\wwwroot\wss\VirtualDirectories\mysite-uat.acc-bgc.net80\web.config" with :
<system.net>
     <defaultProxy>
          <proxy proxyaddress="http://yourproxyname:80" bypassonlocal="true" />
          </defaultProxy>
  </system.net>

b.      IISRESET & do a page refresh

2-      On ISA Server, add the SharePoint Server (CA Server) to the rule that allow it to access http.
Also, "Allow All Users" for the authenticated mode must be used in the ISA rule.

This will avoid the error message hereunder :


Now, all is working as requested :



That's all folks