Friday, 27 February 2015

Changes in Exchange Server 2013 OAB

Changes in OAB generation


In Exchange 2010 servers there is only one server was configured for OAB generation, and it was a single point of failure. If this server was unavailable for a long period, the OAB generation was affected.


In Exchange 2013, the OAB is generated by each Exchange 2013 Mailbox server(s) that hosts a special type of arbitration mailbox, called organization mailbox. OAB generation is not bound by the Server parameter anymore.

Which component will generate the OAB?

The Microsoft Exchange System Attendant service was the workhorse responsible for OAB generation in previous Exchange versions. The OAB generation was a scheduled process, i.e. OAB generation would start at the scheduled time configured on the OAB property, irrespective of the work load on the server.

In Exchange 2013, the OABGeneratorAssistant, a mailbox assistant running under the Microsoft Exchange Mailbox Assistants service, generates the OAB. Like most other mailbox assitants, the OABGEnerationAssistant is a throttled process – it runs or pauses according to the workload on the server.

Where are the OAB files stored?

In previous Exchange versions, the OAB generated by the Mailbox server was located in the %ExchangeInstallPath%\ExchangeOAB folder. The folder was shared so the CAS could retrieve the OAB files for distribution to Outlook clients.
In Exchange 2013, the OAB files are generated and stored in the Organization Mailbox first and later copied to the %ExchangeInstallPath%\ClientAccess\OAB\ folder.

Changes in OAB distribution

Exchange 2007 and 2010 supported two methods of OAB distribution: web distribution and Public Folder distribution. Exchange 2013 supports only the web distribution method, so let’s explore the changes in web-distribution method.
The Exchange 2007/2010 CAS pulled the OAB files generated on the respective Mailbox server and stored them locally. The Microsoft Exchange File Distribution Service on the CAS role did the task of pulling OAB files.

This was the flow OAB download from client side:

  1. Outlook receives OAB URL from Autodiscover and reaches a CAS server.
  2. The CAS authenticates the user and serves OAB files from local disk.

Couple of disadvantage with this method:

  1. The OAB download fails if the CAS doesn't have the OAB files locally.
  2. If the File Distribution Service on CAS isn't working, clients will receive stale OAB files or, in other words will not receive the updates.

In Exchange 2013, OAB files are not stored locally on the CAS. CAS 2013 proxies all OAB download requests to the appropriate Exchange 2013 Mailbox server. With this change in the architecture, the Microsoft Exchange File Distribution Service is removed from the CAS role.

In Exchange 2013, this is the flow of OAB download:

  1. Outlook receives OAB URL from Autodiscover and reaches designated CAS 2013 through OAB URL.

The CAS server performs the following actions:

  1. Performs initial authentication for OAB.
  2. Queries Active Directory and determines the closest Organization Mailbox for the requesting user.
  3. Queries Active Directory again to determine the mailbox database hosting the Organization Mailbox.
  4. Queries the Active Manager to determine the mailbox server where the mailbox database is active (mounted).
  5. Proxies the request to the Mailbox server identified in step 4.
  6. Retrieves OAB files and passes them to the client.

This new workflow overcomes the disadvantages of legacy OAB download workflow.

The Organization Mailbox

The Organization Mailbox is a new type of arbitration mailbox introduced with Exchange 2013. The arbitration mailbox with persisted capability OrganizationCapabilityOABGen is referred to as Organization Mailbox. It plays a crucial role in OAB generation, storage and distribution.

Each Exchange Server 2013 mailbox role hosting an Organization Mailbox will generate all Exchange 2013 OAB’s defined in the environment. The OAB is generated in the Organization Mailbox first and later copied to the disk.

Use the following command to identify the Organization mailbox:

Get-Mailbox -Arbitration | where {$_.PersistedCapabilities -like "*oab*"}

Storing the OAB files in the Organization Mailbox makes the OAB files more resilient.

Putting it together: A real-life scenario:

The following scenario puts together the critical points we learned so far:

  1. MBX1 and MBX2 are Exchange 2013 Mailbox servers and member of a DAG. CAS1 is an Exchange 2013 CAS.
  2. The organization mailbox is present on mailbox database DB1. DB1 has copies on MBX1 and MBX2.
  3. DB1 is currently active on MBX1.
  4. The Microsoft Exchange Mailbox Assistants service on MBX1 will generate the OAB.
  5. The OAB will be first generated in the organization mailbox and later copied to disk of MBX1. At this point, MBX2 is not playing any role in OAB generation.
  6. An Outlook client tries to download OAB, and reaches CAS1 through OAB URL.
  7. CAS1 queries Active Manager and finds out database hosting organization mailbox (DB1) is active on MBX1.
  8. CAS1 proxies the OAB download request to MBX1 and serves the files back to the client.
  9. At this point, MBX1 goes down due to power failure and DB1 is activated on the server MBX2.
  10. CAS1 receives another request for OAB download, queries the Active Manager again and this time proxies the request to MBX2, as DB1 is now active on MBX2.
  11. MBX2 extracts OAB files present in the organization mailbox to the disk, to ensure latest files are served to the client.
  12. MBX1 comes back online, but DB1 remains active on MBX2.
  13. At next OAB generation work cycle, the Microsoft Exchange Mailbox Assistants service on MBX2 will generate the OAB.

Dedicated OAB Generation Mailboxes in Cumulative Update 5

CU5 moves away from the previous model where an OAB generation mailbox generates all the OABs in the organization. While an OAB generation mailbox can continue to generate multiple OABs (the default behavior when you deploy Exchange 2013), what’s new in CU5 is that an OAB can only be assigned to a single OAB generation mailbox.
This architectural change addresses the aforementioned deficiencies:

  • By allowing administrators to define where an OAB is generated. 
  • By removing the capability to have multiple instances of the same OAB, mitigating the scenario where a client could hit a different OAB instance triggering a full OAB download.  
From a connectivity perspective, Autodiscover provides back an OAB URL for the site in which the user’s mailbox is located. That URL resolves to a Client Access server which proxies the request to the linked OAB generation mailbox that is responsible for generating the requested OAB.

What happens to my existing OABs when I upgrade to CU5?

When you upgrade to CU5, all existing OABs are linked to the system arbitration mailbox, SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}, regardless of whether there are additional OAB generation mailboxes within the environment. This ensures that all OABs are still generated after CU5 is installed. This has two implications:
  1. If you were not aware of our guidance of deploying only a single OAB generation mailbox per organization, and instead, deployed multiple OAB generation mailboxes, those mailboxes will no longer generate OABs after the servers hosting their databases are upgraded to CU5. This means that Outlook clients will perform a full OAB download (as they are now accessing a different OAB instance). 
  2. Once you dedicate an OAB to a specific OAB generation mailbox, this will be a new OAB instance and thus, will trigger a full download for the Outlook clients. 
Note: Users will not experience full OAB downloads after CU5 is deployed if your deployment does not contain multiple OAB generation mailboxes.

Thursday, 26 February 2015

Exchange 2013 Mail Flow Basics

Exchange server 2013 Mail Flow




Transport Services in Exchange 2013

  1. Frontend Transport Service
    1. This service runs on all Client Access servers and acts as a stateless proxy for all inbound and outbound external SMTP traffic.
    2. It doesn’t inspect message content and queue any messages locally.
  2. Transport Service
    1. This service runs on all Mailbox servers and is virtually identical to the Hub Transport server role in previous versions of Exchange
    2. The Transport service handles all SMTP mail flow for the organization, performs message categorization, and performs message content inspection
    3. The Transport service routes messages between the Mailbox Transport service, the Transport service, and the Front End Transport service
  3. Mailbox Transport Service
    1. Unlike previous versions of Exchange, the Transport service never communicates directly with mailbox databases. That task is now handled by the Mailbox Transport service
    2. This service runs on all Mailbox servers and consists of two separate services: the Mailbox Transport Submission service and Mailbox Transport Delivery service
    3. The Mailbox Transport Delivery service receives SMTP messages from the Transport service on the local Mailbox server or on other Mailbox servers, and connects to the local mailbox database using an Exchange remote procedure call (RPC) to deliver the message
    4. The Mailbox Transport Submission service connects to the local mailbox database using RPC to retrieve messages, and submits the messages over SMTP to the Transport service on the local Mailbox server, or on other Mailbox servers
    5. Like the Front End Transport service, the Mailbox Transport service also doesn't queue any messages locally. 



Ports used in Exchange 2013 Mail Flow

  • Port 25 – This port just like in previous versions of Exchange is used for SMTP. Used by both External SMTP into the Front End Transport Service (FET), SMTP with Exchange 2007\2010 hub servers, between MBX servers, and also from the FET to the Transport Service. There is a receive connector named Default Frontend <servername> that listens on this port. 
  • Port 587 – This port just like previous versions of Exchange is used for Client Connections (POP\IMAP). The CAS Server has a receive connection listening on this port name Client Frontend <servername>. 
  • Port 717 – used for outbound proxy connections from the Transport service to the FET Service. When you create a Send connection you have the option to send mail destined for the Internet directly from the Transport Service to the Internet\Smart Host or relay that mail through the Front End Transport Service. There is a receive connector named Outbound Proxy Frontend <servername> that listens on this port. 
  • Port 465 – used to accept proxied connections that were received on port 587 by the FET service for client connections. There is a receive connector named Client Proxy <servername> that listens on this port. 
  • Port 475 – the Mailbox Transport Delivery Service listens on this ports for connections either from the transport service SMTP Send connector or SMTP from the Transport Service on other Mailbox Servers that need to send mail to users on this server. 
  • Port 2525 – if the CAS and MBX servers are collocated on the same server the SMTP Receive connection for the Transport service will listen on 2525 instead of 25. This is because two services (FET and Transport Service) can’t listen on the same port.

Mail Flow

Sending mail to both internal/external recipients

  1. This process starts with the user typing a message in Outlook\OWA and clicking the send button.
  2. he Mailbox Transport Submission service will pick up the message from the users Outbox, Run the Hub Selector process (in order to select the best Transport service which could be local or another server), and forward the message to the Default Receive connector in the Transport service (SMTP 25 or 2525). 
  3. Transport Service - After the message has been accepted by the Transport service it will get put into the  
  4. submissions queue. The submission queue will process the message and hand it off to the Categorizer which will do recipient resolution (expansion and bifurcation) and routing resolution
  5. Next it will be place into the correct delivery queues. If the message is going to an external recipient it will use the correct send connector and either send directly to internet or proxy through the FET Service (Set-SendConnector <name> -FrontEndProxyEnabled $true).
  6. If the message targets an internal user the message will be send from the Transport Service to the Mailbox Transport Delivery service on the destination mailbox server.
  7. Once the Mailbox Transport Delivery service receives this message it will use local RPC to place the message in the users Inbox.

Note :


Receiving mail happens in the reverse order of Sending mail. Note that bifurcation always happens at the Transport Service level on the Mailbox Server. After bifurcation the message is sent via SMTP directly to the Mailbox Transport Delivery service over port 475 on the Mailbox Server where the mailbox of the recipient is currently mounted.

Tuesday, 24 February 2015

Lync Server 2013 Databases

Lync Backend (SQL) Server Databases


xds: xds is the main database of Lync Server and part of central management store which maintain the topology information, polices, configuration etc. and replicate a read only copy to every subsequent lync server.
lis: lis stand for Location information service and maintains the location information service data for E-911 services.
rtcxds: rtcxds maintains the backup for user data
rtcshared: rtcshared hosts the conferencing directory
rtcab: rtcab stands for real time communication address book and maintain the address book service information
cpsdyn: cpsdyn maintains the dynamic information database for Call Park application.
rgsconfig: rgsconfig maintains the response group configuration service data file.

rgsdyn: rgsconfig maintains the runtime data for response group configuration service data file.

Lync Front End Server Local databases: 

Lync FE server uses SQL express edition to store databases under database instance name RTC Local. There are three databases (xds, rtc & rtcdyn) under RTC Local which create at the time of Lync Installation on each Front End server and maintain the replica from Lync Bank End Server. In lync 2013 Front End & Back End are loosely coupled and use lazy writes to update the databases. Therefore, Lync 2013 maintains presence information on Lync Front End Servers.
Below is the list of frontend server databases:

xds: xds on Lync frontend server maintain a read only copy of xds database which is part of central management store and resides in SQL backend database server.
rtc: rtc store persistent users data such as contact list, schedule conferences and ACL’s etc.
rtcdyn: rtcdyn maintains dynamic user data such as presence.
lyss: lyss stands for Lync storage service data and specifically work for paired pool configuration. Therefore, it is part of the Front End servers and it is located under Lync Local named instance.

Lync Archiving database: 

Lync 2013 provides two options for archiving. You can use either SQL Server or Exchange Server for archiving purpose. If you use SQL server as an option for archiving it creates LcsLog database for the same.
lcslog: lcslog maintains data file for the retention of instant messaging and conferencing data on an Archiving Server.

Lync Monitoring databases

Lync 2013 maintain call detail recording and quality of service data if you deploy Lync Monitoring Server role in you deployment.
cdr: cdr stands for call detail recording and maintains the call detail recording data.
QoE: QoE stands for quality of Experience and maintains the QoE data to provide best experience to Lync users.

Lync Persistent Chat databases

Lync Persistent Chat database: Lync 2013 has new server role called Persistent Chat which is replacement of Group chat server and to maintain user persistent chat data Lync uses mgc database.
Lync Persistent Chat Compliance database: In Lync 2013 as Persistent Chat is a part of Lync Servers role, so to maintain compliance data for this user service Lync uses mgccomp database.

Saturday, 21 February 2015

Exchange Server Update Rollups and Build Numbers

 Exchange Server 2016:

Product name

Release date

Build number

2016 CU1

March 15, 2016

15.01.0396.030

2016 RTM

October 1, 2015

15.01.0225.042

2016 Preview

July 22, 2015

15.01.0225.016

 

 

 

Exchange Server 2013:

Product name

Release date

Build number

2013 CU12

March 15, 2016

15.00.1178.004

2013 CU11

December 15, 2015

15.00.1156.006

2013 CU10

September 15, 2015

15.00.1130.007

2013 CU9

June 17, 2015

15.00.1104.005

2013 CU8

March 17, 2015

15.00.1076.009

2013 CU7

December 9, 2014

15.00.1044.025

2013 CU6

August 26, 2014

15.00.0995.029

2013 CU5

May 27, 2014

15.00.0913.022

2013 SP1

February 25, 2014

15.00.0847.032

2013 CU3

November 25, 2013

15.00.0775.038

2013 CU2

July 9, 2013

15.00.0712.024

2013 CU1

April 2, 2013

15.00.0620.029

2013 RTM

December 3, 2012

15.00.0516.032

 

Exchange Server 2010 SP3:

Product name

Release date

Build number

2010 SP3 UR13

March 15, 2016

14.03.0294.000

2010 SP3 UR12

December 15, 2015

14.03.0279.002

2010 SP3 UR11

September 15, 2015

14.03.0266.002

2010 SP3 UR10

June 17, 2015

14.03.0248.002

2010 SP3 UR9

March 17, 2015

14.03.0235.001

2010 SP3 UR8-V2

December 12, 2014

14.03.0224.002

2010 SP3 UR8-V1

December 9, 2014

14.03.0224.001

2010 SP3 UR7

August 26, 2014

14.03.0210.002

2010 SP3 UR6

May 27, 2014

14.03.0195.001

2010 SP3 UR5

February 24, 2014

14.03.0181.006

2010 SP3 UR4

December 9, 2013

14.03.0174.001

2010 SP3 UR3

November 25, 2013

14.03.0169.001

2010 SP3 UR2

August 8, 2013

14.03.0158.001

2010 SP3 UR1

May 29, 2013

14.03.0146.000

2010 SP3

February 12, 2013

14.03.0123.004

 

Exchange Server 2010 SP2:

Product name

Release date

Build number

2010 SP2 UR8

December 9, 2013

14.02.0390.003

2010 SP2 UR7

August 3, 2013

14.02.0375.000

2010 SP2 UR6

February 12, 2013

14.02.0342.003

2010 SP2 UR5-V2

December 10, 2012

14.02.0328.010

2010 SP2 UR5

November 13, 2012

14.03.0328.005

2010 SP2 UR4-V2

October 9, 2012

14.02.0318.004

2010 SP2 UR4

August 13, 2012

14.02.0318.002

2010 SP2 UR3

May 29, 2012

14.02.0309.002

2010 SP2 UR2

April 16, 2012

14.02.0298.004

2010 SP2 UR1

February 13, 2012

14.02.0283.003

2010 SP2

December 4, 2011

14.2.247.5

 

Exchange Server 2010 SP1:

Product name

Release date

Build number

2010 SP1 UR8

December 10, 2012

14.01.0438.000

2010 SP1 UR7-V3

November 13, 2012

14.01.0421.003

2010 SP1 UR7-V2

October 10, 2012

14.01.0421.002

2010 SP1 UR7

August 8, 2012

14.01.0421.000

2010 SP1 UR6

October 27, 2011

14.01.0355.002

2010 SP1 UR5

August 23, 2011

14.1.339.1

2010 SP1 UR4

July 27, 2011

14.1.323.6

2010 SP1 UR3

April 6, 2011

14.01.0289.007

2010 SP1 UR2

December 9, 2010

14.01.0270.001

2010 SP1 UR1

October 4, 2010

14.1.255.2

2010 SP1

August 23, 2010

14.01.0218.015

 

Exchange Server 2010 RTM:

Product name

Release date

Build number

2010 UR5

December 13, 2010

14.0.726.0

2010 UR4

June 10, 2010

14.0.702.1

2010 UR3

April 13, 2010

14.0.694.0

2010 UR2

March 4, 2010

14.0.689.0

2010 UR1

December 9, 2009

14.0.682.1

2010

November 9, 2009

14.00.0639.021

 

Exchange Server 2007 SP3:

Product name

Release date

Build number

2007 SP3 UR19

March 15, 2016

08.03.0459.000

2007 SP3 UR18

December, 2015

08.03.0445.000

2007 SP3 UR17

June 17, 2015

08.03.0417.001

2007 SP3 UR16

March 17, 2015

08.03.0406.000

2007 SP3 UR15

December 9, 2014

08.03.0389.002

2007 SP3 UR14

August 26, 2014

08.03.0379.002

2007 SP3 UR13

February 24, 2014

08.03.0348.002

2007 SP3 UR12

December 9, 2013

08.03.0342.004

2007 SP3 UR11

August 13, 2013

08.03.0327.001

2007 SP3 UR10

February 11, 2013

08.03.0298.003

2007 SP3 UR9

December 10, 2012

08.03.0297.002

2007 SP3 UR8-V3

November 13, 2012

08.03.0279.006

2007 SP3 UR8-V2

October 9, 2012

08.03.0279.005

2007 SP3 UR8

August 13, 2012

08.03.0279.003

2007 SP3 UR7

April 16, 2012

08.03.0264.000

2007 SP3 UR6

January 26, 2012

8.03.0245.002

2007 SP3 UR5

September 21, 2011

8.03.0213.001

2007 SP3 UR4

May 28, 2011

8.03.0192.001

2007 SP3 UR3-V2

March 30, 2011

8.03.0159.002

2007 SP3 UR2

December 10, 2010

8.03.0137.003

2007 SP3 UR1

September 9, 2010

8.03.0106.002

2007 SP3

June 7, 2010

8.03.0083.006

 

Exchange Server 2007 SP2:

Product name

Release date

Build number

2007 SP2 UR5

December 7, 2010

8.2.305.3

2007 SP2 UR4

April 9, 2010

8.2.254.0

2007 SP2 UR3

March 17, 2010

8.2.247.2

2007 SP2 UR2

January 22, 2010

8.2.234.1

2007 SP2 UR1

November 19, 2009

8.2.217.3

2007 SP2

August 24, 2009

8.02.0176.002

 

Exchange Server 2007 SP1:

Product name

Release date

Build number

2007 SP1 UR19

April 13, 2010

8.1.436.0

2007 SP1 UR18

July 16, 2009

8.1.393.1

2007 SP1 UR17

May 19, 2009

8.1.375.2

2007 SP1 UR16

March 18, 2009

8.1.359.2

2007 SP1 UR15

February 10, 2009

8.1.340.1

2007 SP1 UR14

November 20, 2008

8.1.336.1

2007 SP1 UR13

October 7, 2008

8.1.311.3

2007 SP1 UR12

July 8, 2008

8.1.291.2

2007 SP1 UR11

May 9, 2008

8.1.278.2

2007 SP1 UR10

February 28, 2008

8.1.263.1

2007 SP1 UR9

November 29, 2007

8.01.0240.006

 

Exchange Server 2007 RTM:

Product name

Release date

Build number

2007 UR7

July 8, 2008

8.0.813.0

2007 UR6

February 21, 2008

8.0.783.2

2007 UR5

October 25, 2007

8.0.754.0

2007 UR4

August 23, 2007

8.0.744.0

2007 UR3

June 28, 2007

8.0.730.1

2007 UR2

May 8, 2007

8.0.711.2

2007 UR1

April 17, 2007

8.0.708.3

2007

March 8, 2007

8.0.685.25

 

For older Exchange server build numbers and SP details please click here

Permanently Clear Previous Mailbox Info for EXO Exchange GUID sync issues

Microsoft is introducing a new parameter that can be called by using the Set-User cmdlet in Exchange Online PowerShell. The new para...