Tuesday, May 7, 2013

Seeing a lot of duplication in journaling mailboxes while using standard MS Exchange Journaling?

Are you seeing duplicates in MS Exchange Journal mailboxes ?
Are you using standard journaling on Exchange 2007 or Exchange 2010 ?
Mostly seeing duplicate when emails are sent to large distribution lists ?

If answers to above mentioned questions is 'YES' then there are chances it is working as designed even though when reading some MS Articles about Journaling and transport journaling might confuse you a little. I am not trying to argue with MS articles (http://technet.microsoft.com/en-us/library/bb738122(v=EXCHG.80).aspx) , I am just trying to explain how that can be broken down for understanding:

There are two scenarios where you see duplication:

1. Sites with 1 Journal Mailbox: In this case you will see that when an email is sent to distribution list especially if that distribution list contained thousands of users then you will see approximately journaling mailbox having bifurcated copies that will be using formula of

Number of recipients/1000

This is because by default in Exchange 2010 and Exchange 2007 within EdgeTransport.exe.config file variable "ExpansionSizeLimit" is set to 1000. There is no garuntee through each bifurcated copy will have exact 1000 recipients information in its envalope. Sometimes you will see nine hundred something and sometimes it would few more than 1000.

Now when an email is sent to a distribution group and only one journal mailbox is configured in your environment you will see multiple copies of the message. What happens if that due to above setting in place, to make routing/delivery quicker message is broken into multiple copies by explanding the distribution list. The tests have I have apprears to suggest that breakdown is sorted alphabatically. MessageID for every single copy in journaling mailbox will be same, just the recipient information on the envalope will be different.

Above mentioned setting can be changed BUT with caution as it can impact your system if it is in production. Reffer to above mentioned article for more information.

2. Sites with more than 1 journal mailbox: This scenario gets a little more tricky. In this scenario you might even see that not only journaling mailbox that is responsible for journaling from DB where sender is location had journaled multiple copies but other journaling mailboxes also has multiple copies. If you have distribution groups with many thousand users and many journal mailboxes to spead the load of journaling you might see a lot more duplicates. Here is how I have put it in my tick skull:

(a) When a sender sends the email to the distibution list (DL) with large number of users. The journal mailbox responsible for journaling DB where sender's mailbox is located will bifurcate message to many messages in the journaling mailbox where it is journaling. Now to this point we are all good as mentioned above.
 
(b) Now if we go and check other journal mailboxes we may find similar if not exact number of messages sitting in it. The reason is that there are other mailbox DBs that are journaling to other journaling mailboxes. Usually they are only meant to have bifurcated copies of the messages that had users belonging to mailbox DBs in question within the envelop of the message. What happens is that many a times we do not divide users based on their names while assigning them mailbox DBs. Especially for a company with global presence exchange servers could be country specific or region specific. Now when first transport server would have created the bifurcated messages all other servers would have got all the copies due to one or more user being present in the envaople of the each bifurcated message. For testing in house I did the following which might explain what happened:

- CREATED USERS ON MULIPLE DBs

TEST_User1 - EXCHANGE\First Storage Group\Mailbox Database
TEST_User2 - EXCHANGE\First Storage Group\Mailbox Database
TEST_User3 - EXCHANGE\First Storage Group\Mailbox Database
TEST_User4 - EXCHANGE\Third Storage Group\Mailbox Database
TEST_User5 - EXCHANGE\Third Storage Group\Mailbox Database
TEST_User6 - EXCHANGE\Third Storage Group\Mailbox Database
TEST_User7 - EXCHANGE2\First Storage Group\Mailbox Database
TEST_User8 - EXCHANGE2\First Storage Group\Mailbox Database
TEST_User9 - EXCHANGE2\First Storage Group\Mailbox Database
TEST_User10 - EXCHANGE2\First Storage Group\Mailbox DB2
TEST_User11 - EXCHANGE2\First Storage Group\Mailbox DB2

EXCHANGE\First Storage Group\Mailbox Database   - Journal_01_2007
EXCHANGE\Third Storage Group\Mailbox Database   - Journal_02_2007
EXCHANGE2\First Storage Group\Mailbox Database  - Journal_03_2007
EXCHANGE2\First Storage Group\Mailbox DB2       - Journal_04_2007

TEST ALL - Distribution Group with all 11 users created above.

Set value of ExpansionSizeLimit to 2 and restarted Transport Service on both Exchange servers

Test CASE 1 - Sent an email from KATWAL_Service account to itself in To and "TEST ALL" in BCC

Following are the number of messages found in journal mailboxes
Journal_01_2007 = 7 messages
Journal_02_2007 = 2 messages
Journal_03_2007 = 2 messages
Journal_04_2007 = 2 messages

Breakdown of recipients on the envalipes per journal mailbox

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Journal_01_2007 = 7 messages

MSG1
Message-Id: <D91E43950FB2744E94C5A4E6C78E815606857157434D@EXCHANGE.katwal.local>
Bcc: TEST_User11@katwal.local, Expanded: TESTALL@katwal.local

MSG2
Message-Id: <D91E43950FB2744E94C5A4E6C78E815606857157434D@EXCHANGE.katwal.local>
Bcc: TEST_user10@katwal.local, Expanded: TESTALL@katwal.local
Bcc: TEST_User9@katwal.local, Expanded: TESTALL@katwal.local

MSG3
Message-Id: <D91E43950FB2744E94C5A4E6C78E815606857157434D@EXCHANGE.katwal.local>
Bcc: TEST_User8@katwal.local, Expanded: TESTALL@katwal.local
Bcc: TEST_User7@katwal.local, Expanded: TESTALL@katwal.local

MSG4
Message-Id: <D91E43950FB2744E94C5A4E6C78E815606857157434D@EXCHANGE.katwal.local>
Bcc: TEST_User6@katwal.local, Expanded: TESTALL@katwal.local
Bcc: TEST_user5@katwal.local, Expanded: TESTALL@katwal.local

MSG5
Message-Id: <D91E43950FB2744E94C5A4E6C78E815606857157434D@EXCHANGE.katwal.local>
Bcc: TEST_User4@katwal.local, Expanded: TESTALL@katwal.local
Bcc: TEST_User3@katwal.local, Expanded: TESTALL@katwal.local

MSG6
Message-Id: <D91E43950FB2744E94C5A4E6C78E815606857157434D@EXCHANGE.katwal.local>
Bcc: TEST_user2@katwal.local, Expanded: TESTALL@katwal.local
Bcc: TEST_User1@katwal.local, Expanded: TESTALL@katwal.local

MSG7
Message-Id: <D91E43950FB2744E94C5A4E6C78E815606857157434D@EXCHANGE.katwal.local>
To: Katwal_service@katwal.local
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Journal_02_2007 = 2 messages

MSG1
Message-Id: <D91E43950FB2744E94C5A4E6C78E815606857157434D@EXCHANGE.katwal.local>
Bcc: TEST_User6@katwal.local, Expanded: TESTALL@katwal.local
Bcc: TEST_user5@katwal.local, Expanded: TESTALL@katwal.local

MSG2
Message-Id: <D91E43950FB2744E94C5A4E6C78E815606857157434D@EXCHANGE.katwal.local>
Bcc: TEST_User4@katwal.local, Expanded: TESTALL@katwal.local
Bcc: TEST_User3@katwal.local, Expanded: TESTALL@katwal.local
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Journal_03_2007 = 2 messages

MSG1
Message-Id: <D91E43950FB2744E94C5A4E6C78E815606857157434D@EXCHANGE.katwal.local>
Bcc: TEST_user10@katwal.local, Expanded: TESTALL@katwal.local
Bcc: TEST_User9@katwal.local, Expanded: TESTALL@katwal.local

MSG2
Message-Id: <D91E43950FB2744E94C5A4E6C78E815606857157434D@EXCHANGE.katwal.local>
Bcc: TEST_User8@katwal.local, Expanded: TESTALL@katwal.local
Bcc: TEST_User7@katwal.local, Expanded: TESTALL@katwal.local
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Journal_04_2007 = 2 messages

MSG1
Message-Id: <D91E43950FB2744E94C5A4E6C78E815606857157434D@EXCHANGE.katwal.local>
Bcc: TEST_User11@katwal.local, Expanded: TESTALL@katwal.local

MSG2
Message-Id: <D91E43950FB2744E94C5A4E6C78E815606857157434D@EXCHANGE.katwal.local>
Bcc: TEST_user10@katwal.local, Expanded: TESTALL@katwal.local
Bcc: TEST_User9@katwal.local, Expanded: TESTALL@katwal.local
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


=====================================================================================
TEST CASE 2 - We configure all DBs on each exchange server to journal to only one journal mailbox. That way we have One journal mailbox per server.

Configured Journaling in the following manner

EXCHANGE\First Storage Group\Mailbox Database   - Journal_02_2007
EXCHANGE\Third Storage Group\Mailbox Database   - Journal_02_2007
EXCHANGE2\First Storage Group\Mailbox Database  - Journal_04_2007
EXCHANGE2\First Storage Group\Mailbox DB2       - Journal_04_2007

- Tested that changes made took place in exchange
- ExpansionSizeLimit is still set to 2
- Sent email to TEST ALL in BCC and Katwal_Service in TO list

Journal_02_2007 = 7 messages
Journal_04_2007 = 3 messages

- 7 messages breakdown is similar to what we found earlier.
- Breakdown of 3 messages in Journal_04_2007 are as follows.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Journal_04_2007 = 3 messages (from bottom to top)
MSG1
Message-Id: <D91E43950FB2744E94C5A4E6C78E815606857157434F@EXCHANGE.katwal.local>
Bcc: TEST_User8@katwal.local, Expanded: TESTALL@katwal.local
Bcc: TEST_User7@katwal.local, Expanded: TESTALL@katwal.local

MSG2
Message-Id: <D91E43950FB2744E94C5A4E6C78E815606857157434F@EXCHANGE.katwal.local>
Bcc: TEST_user10@katwal.local, Expanded: TESTALL@katwal.local
Bcc: TEST_User9@katwal.local, Expanded: TESTALL@katwal.local

MSG3
Message-Id: <D91E43950FB2744E94C5A4E6C78E815606857157434F@EXCHANGE.katwal.local>
Bcc: TEST_User11@katwal.local, Expanded: TESTALL@katwal.local
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

=====================================================================================

TEST CASE 3 - To confirm what we found in the testing above is true; we configured all DBs to journal into Journal_04_2007

EXCHANGE\First Storage Group\Mailbox Database   - Journal_04_2007
EXCHANGE\Third Storage Group\Mailbox Database   - Journal_04_2007
EXCHANGE2\First Storage Group\Mailbox Database  - Journal_04_2007
EXCHANGE2\First Storage Group\Mailbox DB2       - Journal_04_2007

- There were only 7 messages in the Journal_04_2007 which were created the same way in above test cases.


In my testing number of mailboxes were very small leading to small number of bifurcated messages. Number of bifurcated messages will depend on configuration usesed at your site.

(NOTE: I hope others will find it useful. All above mentioned content is based on my understaning and testing performed. If you see any issues in your environment you may want to consult software vendor of yours.)


 

MS SQL - Cannot Connect to DataBase; Cannot open user database. Login Failed. Login failed for user 'userName'. (Microsoft SQL server, Error 4064)

Problem Description: After droping a database (DB) without checking if that DB was the default DB of the account used, once will find they cannot log back into the SQL Studio to connect to SQL server. Pop-up with information similar to the following will appear:

Cannot Connect to DataBase; Cannot open user database. Login Failed. Login failed for user 'userName'.  (Microsoft SQL server, Error 4064)

Cause: Accidently DB that was droped was used as default DB for the account used.

Solution: SQLCMD can be used to connect to master or tempDb and then ALTER Default_Login DB for the user. Following is an example:

C:\> SQLCMD -E -D master
1> alter login [Domain\ServiceAccount] with default_database=master
2> GO
3> exit

C:\>

This should allow the connection back to the SQL Server.

Note: Same action can me performed by SQL Studio configuration. I will update that later on with screenshots.

Monday, February 18, 2013

UPDATED: Exchange 2007 Prereq checklist for Windows 2008

(Recording for my personal refference to save time)

Following is needed to be installed while installing Exchange 2007 (upto SP3 - tested) on Windows 2008 R2 SP2. These could be added to a simple batch file for saving time especially if more than one exchange servers needed to be built at the same time.

ServerManagerCmd -i PowerShell
ServerManagerCmd -i Web-Server
ServerManagerCmd -i Web-ISAPI-Ext
ServerManagerCmd -i Web-Metabase
ServerManagerCmd -i Web-Lgcy-Mgmt-Console
ServerManagerCmd -i Web-Basic-Auth
ServerManagerCmd -i Web-Digest-Auth
ServerManagerCmd -i Web-Windows-Auth
ServerManagerCmd -i Web-Dyn-Compression
ServerManagerCmd -i RSAT-ADDS

Note: Last entry is new addition.

Exchange 2007 SP3 on Windows 2008 R2 SP2- [ERROR] An error occurred. The error code was 3221684226. The message was The system cannot find the file specified..

PROBLEM DESCRIPTION:
While trying to prepare AD for addition of a new exchange server following error is seen after running “Setup.com /PrepareAD” command:

[ERROR] An error occurred. The error code was 3221684226. The message was The system cannot find the file specified..

ExchangeSetup.log file will have entries similar to the following near to its end:

[18/02/2013 10:36:23 AM] [2] Leaving ScHavePermissionToCreateDSObject
[18/02/2013 10:36:23 AM] [2] Configuring administrative rights
[18/02/2013 10:36:23 AM] [2] Entering ScInstallLDIFScript
[18/02/2013 10:36:23 AM] [2]  ScRunLDIFScript (f:\08.03.0083\sources\dev\admin\src\libs\exsetup\exmisc.cxx:888)
           Error code 0XC0070002 (2): The system cannot find the file specified.
[18/02/2013 10:36:23 AM] [2]  ScInstallLDIFScript (f:\08.03.0083\sources\dev\admin\src\libs\exsetup\server.cxx:149)
           Error code 0XC0070002 (2): The system cannot find the file specified.
[18/02/2013 10:36:23 AM] [2] Leaving ScInstallLDIFScript
[18/02/2013 10:36:23 AM] [2]  CAtomOrgLevelCt::ScAddDSObjects (f:\08.03.0083\sources\dev\admin\src\udog\exsetdata\components\server\a_orglevelct.cxx:379)
           Error code 0XC0070002 (2): The system cannot find the file specified.
[18/02/2013 10:36:23 AM] [2] Leaving CAtomOrgLevelCt::ScAddDSObjects
[18/02/2013 10:36:23 AM] [2]  CBaseAtom::ScRefreshDSObjects (f:\08.03.0083\sources\dev\admin\src\udog\setupbase\basecomp\baseatom.cxx:1476)
           Error code 0XC0070002 (2): The system cannot find the file specified.
[18/02/2013 10:36:23 AM] [2]  CAtomOrgLevelCt::ScReinstall (f:\08.03.0083\sources\dev\admin\src\udog\exsetdata\components\server\a_orglevelct.cxx:169)
           Error code 0XC0070002 (2): The system cannot find the file specified.
[18/02/2013 10:36:23 AM] [2] Leaving CAtomOrgLevelCt::ScReinstall
[18/02/2013 10:36:23 AM] [2] mode = 'Reinstall' (61955) CBaseAtom::ScSetup (f:\08.03.0083\sources\dev\admin\src\udog\setupbase\basecomp\baseatom.cxx:535)
           Error code 0XC0070002 (2): The system cannot find the file specified.
[18/02/2013 10:36:23 AM] [2]  ScSetupAtom (f:\08.03.0083\sources\dev\admin\src\udog\exsetdata\exsetds.cxx:897)
           Error code 0XC0070002 (2): The system cannot find the file specified.
[18/02/2013 10:36:23 AM] [2] Leaving ScSetupAtom
[18/02/2013 10:36:23 AM] [2] [ERROR] An error occurred. The error code was 3221684226. The message was The system cannot find the file specified..
[18/02/2013 10:36:23 AM] [1] The following 1 error(s) occurred during task execution:
[18/02/2013 10:36:23 AM] [1] 0.  ErrorRecord: An error occurred. The error code was 3221684226. The message was The system cannot find the file specified..
[18/02/2013 10:36:23 AM] [1] 0.  ErrorRecord: Microsoft.Exchange.Management.Deployment.ExsetdataException: An error occurred. The error code was 3221684226. The message was The system cannot find the file specified..
[18/02/2013 10:36:23 AM] [1] [ERROR] An error occurred. The error code was 3221684226. The message was The system cannot find the file specified..
[18/02/2013 10:36:23 AM] [1] Setup is halting task execution because of one or more errors in a critical task.
[18/02/2013 10:36:23 AM] [1] Finished executing component tasks.
[18/02/2013 10:36:23 AM] [1] Ending processing.
[18/02/2013 10:36:23 AM] [0] The Exchange Server Setup operation did not complete. For more information, visit http://support.microsoft.com and enter the Error ID.
[18/02/2013 10:36:23 AM] [0] End of Setup
[18/02/2013 10:36:23 AM] [0] **********************************************

(If someone starts looking at F:\08.30.0083 folder structure that will kill a lot of your time especially if that f: disk exists on the server, I didn’t even have that so I weren’t misled)

CAUSE:  While installing Exchange 2007 with SP3 on Windows 2008 R2 (x64) one needs to have Remote Server Administration Tools (RSAT) and Active Directory Domain Services Tools installed as features.

RESOLUTION: Following command line can be used to install the features missing:

ServerManagerCmd -i RSAT-ADDS

(PS: I don’t remember using it in past for Exchange 2007 but now I have added it to my prereq batch file for Exchange 2007 on Windows 2008)


 

Friday, September 23, 2011

Common Exchange 2007/2010/2013 commandlets - Documenting for reference

Since now and then I need to go back and check the exchange commandlets help I thought of creating a list that I could refer to whenever I like:

NOTE: To Export to text file use OUT-FILE instead with pipe (|)
 

WhiteSpace on all Exchange 2010 DB’s
get-mailboxdatabase -status | fl Server,name,AvailableNewMailboxSpace

Mailbox Folder statistics
Get-MailboxFolderStatistics -Identity TESTUSER1

Mailbox statistics per DB for all mailboxes
Get-MailboxStatistics -database "Mailbox Database"
| fl Displayname,ItemCount,TotalItemSize,totalDeletedItemSize

DisplayName, ItemCount and size in MB per database
Get-MailboxStatistics -Database "Mailbox Database"
| Format-Table DisplayName, ItemCount, @{expression={$_.totalitemsize.value.ToMB()};label="Size(MB)"}

Create Bulk Folders in Users Mailboxes
New-MailboxFolder -Name <String> -Parent <MailboxFolderIdParameter> [-Confirm [<SwitchParameter>]] [-DomainController <Fqdn>] [-WhatIf [<SwitchParameter>]]
Just need to put it in the loop how we do it for bulk user mailboxes.
NOTE: New-MailboxFolder cmdlet is only added to Exchange 2010 SP1 so watch for that. Last time tested with SP2.

List all the permissions applied to a mailbox
get-mailboxpermission -identity TestMailbox |format-list

List all the permissions a particular user has over a specific mailbox
Get-Mailbox "TestMailbox" | Get-MailboxPermission -user "Es1_Service"  | format-list

Add Save-As extended rights over a mailbox database
Add-AdPermission -identity "mailbox database" -user "ServiceAccount" -ExtendedRights Send-As

Add Save-As rights over the whole server
Add-ADPermission -identity (get-mailboxserver -identity "mailboxServerName" | select-object).DistinguishedName -user "Domain\ServiceAccount" -ExtendedRights Send-As


Display disabled mailboxes (tested on exchange 2007)
Get-MailboxStatistics -Server "ServerName" | where{$_.DisconnectDate -ne $Null}

Check if any mailboxes reached quota. This will check all environment wise (Exchange 2010):
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Format-List DisplayName,ServerName,StorageLimitStatus,TotalItemSize,TotalDeletedItemSize,ItemCount,DeletedItemCount

List Exchange ServerName, Edition and Build number 
Get-ExchangeServer | FL Name, Edition, AdminDisplayVersion
(Note: AdminDisplayVersion in some roleup is not updated properly, you may find EMC showing different version than what commandlet will print. Usually I find EMC displaying correct info (last time found Exchange 2010 SP2 RU4 V1 displayed in commandlet as Version 14.2 (Build 247.5) )

Verify that extended permissions are applied to the MailboxDatabase

Get-Mailboxdatabase -server ExchangeServer| Get-ADPermission | where-object { ($_.extendedrights -like "*receive*" -or $_.extendedrights -like "*ms-Exch-Store-Visible*" -or $_.extendedrights -like "*ms-Exch-Store-ad*") -and ($_.User -like "*S1_Service*") } | select Identity, User, ExtendedRights, IsInherited | ft –wrap


Wednesday, June 29, 2011

SharePoint Event 10016, DistributedCOM error "The application-specific permission settings do not grant Local Activation permission..."

Problem Description: After installing SharePoint 2010 Application event log filles with following error messages:

Log Name: System
Source: Microsoft-Windows-DistributedCOM
Date: 29/06/2010 4:32:45 AM
Event ID: 10016
Task Category: None
Level: Error
Keywords: Classic
User: NETWORK SERVICE
Computer: sharepoint.katwal.local
Description:
The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
{61738644-F196-11D0-9953-00C04FD919C1}
and APPID
{61738644-F196-11D0-9953-00C04FD919C1}
to the user NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20) from address LocalHost (Using LRPC). This security permission can be modified using the Component Services administrative tool.

CAUSE: LOCAL ACTIVATION permissions missing for "IIS WAMREG admin Service"

SOLUTION:

First of all you might already know how did I know its "IIS WAMREG admin service", just in case you do not know, for every single com object there is GUID assigned by WINDOWS. In the error message above we could see it {61738644-F196-11D0-9953-00C04FD919C1}

Now what we needed to do was to find out what this GUID represents, registry of the server is the friend that could tell us. We need to open registory editor, select Edit menu and select Find. Now paste the GUID number and search for it. Registry editor will already have the GUID selected when its found. On the right side pane we should be able to see (Default) - Reg_SZ - IIS WAMREG admin service

That is how we know which COM component needs to be checked for activation permissions. To get to this componet follow the steps below

1. Select Start
2. Select Run
3. Type DCOMcnfg and select open.
4. Expand Component Services >Computer > My Computer > DCOM CONFIG
5. Right click on "IIS WAMREG admin Service" and select properties
6. Here you will find out that you were meant to change permissions under Security Tab but that option is all gray out and cannot be changed.

Problem is that as we checked earlier this component is tied to a registry key and on that registry key only trusted installer has full permissions all other users got READ permission. We need to provide full permission to the Administrator or the FarmAdmin Group. In my case I were using an account that was part of domain admins so I just gave permission on HKEY_CLASSES_ROOT\AppID\{61738644-F196-11D0-9953-00C04FD919C1} registry key.

Here is another issue that when you try to add full permission you will not be able to do it because ownership is not assigned to your group. Since my account was member of domain admin group I selected, "Advanced" option under permissions and selected OWNER tab. Here I added Domain Admins group ad the owner.

Now we can give full permission to Domain Admins on the registry key.

If DCOMcnfg is alreay open we will have to close and re-open because refresh does not work.

Again we will have to go to the properties on the "IIS WAMREG admin Service" under DCOMcnfg as mentioned above. but this time under SECURITY tab, we will be able to change "launch and Activation permissions". We need to add service account for sharepoint with "Local launch" and "Local Activation" permissions. In my case I selected Domain Admins again because it was a small setup.

Tuesday, June 28, 2011

SQL Install Error: Invoke or BeginInvoke cannot be called on a control until the window handle has been created

Problem Description: While patching SQL server which could be Windows 2008 (any version) there are chances some of us will see the following error message other than very famous AXWIN....

"Invoke or BeginInvoke cannot be called on a control until the window handle has been created"

Cause: Some underlying cause in the code. Many versions of SQL impacted in multiple condition. I will document what helped on Windows 2008 R2 SP1 while patching SQL 2008 that was earlier upgraded from SQL 2005 enterprise.

Solution: I googled this error message and came accross all kind of comments e.g. try again, certain hotfix links from Microsoft that were not applicable to x64 versions and so on. The easiest fix was to wait and try 3 times. I had to do this two times both times it worked in the third try. Once I were running using command promtp and second time just double click on the executable.

Sunday, June 26, 2011

Error "Unable to read data from the Metabase. Ensure that Microsoft Internet Information Services is installed" while installing Exchange 2010 on W2K8

PROBLEM DESCRIPTION:
While installing Exchange 2010 on Windows 2008 R2 some times admins can see two error messages

Errors:
- Unable to read data from the Metabase. Ensure that Microsoft Internet Information Services is installed.
- Unable to access the ‘Default Web Site’ on this computer.

CAUSE: Exchange 2010 Prerequisites are not met successfully

SOLUTION: One can follow Microsoft Article to make sure all prerequisites are met:

http://technet.microsoft.com/en-us/library/bb691354(EXCHG.140).aspx

If all common roles are being installed on one server as I had to do some time back for test environment following is what is needed to be executed from Windows Powershell (should be started with "Run As Administrator")

- Import-Module ServerManager

- Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server,Web-ISAPI-Ext,Web-Digest-Auth,Web-Dyn-Compression,NET-HTTP-Activation,RPC-Over-HTTP-Proxy -Restart

- Set-Service NetTcpPortSharing -StartupType Automatic

Friday, August 27, 2010

OWA broken after installing Rollup 9 for Exchange 2007 SP1

PROBLEM: After installing Rollup 9 for Exchange 2007 SP1 many parts of OWA are broken.

Here is list of problems I know of so far.

1. Basic view(Outlook Web Access Light): when users will double click on the message they cannot open it. There will be error message thrown by the browser.

Line: 63
Char: 1
Error: Object expected
Code: 0
URL: https//ExchangeServer/owa

2. Basic View (Outlook Web Access Light): Logoff button do not work in OWA. There will be error message thrown by the browser.

Line: 39
Char: 1
Error: Object expected
Code: 0
URL: https//ExchangeServer/owa


3. Premium view: Preview of the message body would not work. The page cannot be found will be displayed.

4. Graphics not working in OWA, all graphics replaced with red cross (X).

CAUSE: ROLLUP 9 - do not come with all the files for OWA folders just the updated files.

FIX: Since rollup executable only installs updated files and OWA virtual directory points to new folder, it would have problems due to missing files from the folders. You will have to copy missing files from folders that were created in past. Look into the following folders and make sure it has all the files in it:

C:\Program Files\Microsoft\Exchange Server\ClientAccess\Owa\8.1.393.1\scripts\premium
C:\Program Files\Microsoft\Exchange Server\ClientAccess\Owa\8.1.393.1\scripts\basic
C:\Program Files\Microsoft\Exchange Server\ClientAccess\Owa\8.1.393.1\themes\base




Exchange 2007 SP1 OWA do not display images after installing Rollup 9

PROBLEM After Exchange 2007 SP1 Rollup 9 is installed users will not see any graphics while accessing emails from OWA.

CAUSETheme file are missing from the "C:\Program Files\Microsoft\Exchange Server\ClientAccess\Owa\8.1.393.1\themes\base" directory.

SOLUTION: Copy the files from the earlier install folder e.g. from "C:\Program Files\Microsoft\Exchange Server\ClientAccess\Owa\8.1.240.5\themes\base"