Compreendendo o impacto da propriedade nomeada e dos limites do identificador de réplica em bancos de dados do Exchange
Aplica-se a: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1
Tópico modificado em: 2012-03-26
A Microsoft usa a MAPI (API de Mensagem) como um meio para conectar componentes de transporte de mensagens diferentes. A especificação MAPI representa a maioria dos objetos como propriedades. Para identificar essas propriedades, a MAPI usa identificadores, conhecidos como identificadores de propriedade ou PropIDs.
Os identificadores de propriedade são um conjunto de valores hexadecimais que variam entre 1 e 0xFFFF. Eles permitem 65.534 propriedades. Essas propriedades são divididas nos seguintes grupos, conhecidos como intervalos:
Propriedades que podem ser transmitidas - Este intervalo é composto de propriedades que o Exchange pode enviar com uma mensagem.
Propriedades internas - Este intervalo é composto de propriedades que podem ser definidas apenas pelo Exchange.
Propriedades que não podem ser transmitidas - Este intervalo representa as propriedades que não são entregues fora da organização quando o Exchange entrega uma mensagem.
As propriedades nesses intervalos são conhecidas como propriedades padrão. As propriedades MAPI padrão têm IDs fixas e representam todas as propriedades que estão abaixo de 0x8000.
Além desses intervalos, há um outro. Esse intervalo é o maior e representa todas as propriedades que estão em 0x8000 ou acima. As propriedades nesse intervalo são conhecidas como propriedades nomeadas. As propriedades nomeadas oferecem aos fornecedores uma maneira de estender o conjunto de propriedades MAPI padrão adicionando as suas próprias propriedades.
As propriedades nomeadas são formadas por estes dois tipos principais:
Propriedades que têm números como nomes. Essas são as propriedades usadas por programas, como o Microsoft Outlook. Em geral, esses nomes de propriedades são definidos em um arquivo de origem.
Propriedades que têm valores de cadeia de caracteres como nomes. Essas propriedades são conhecidas como "propriedades nomeadas com cadeias de caracteres". Além de um nome, cada uma dessas propriedades possui uma GUID associada. Isso permite que os desenvolvedores dividam as propriedades nomeadas em conjuntos de propriedades.
Como as propriedades nomeadas não têm IDs específicas atribuídas a elas, a MAPI fornece um recurso para criar dinamicamente IDs exclusivas para propriedades nomeadas e para manter um mapeamento persistente entre a propriedade nomeada e a sua ID exclusiva. Porém, a criação dinâmica dessas IDs significa que as IDs de propriedade para propriedades nomeadas podem variar de computador para computador.
O serviço Armazenamento de Informações do Microsoft Exchange mantém uma tabela de propriedades nomeadas para cada banco de dados. Quando o armazenamento de informações processa uma mensagem com informações personalizadas, ele adiciona automaticamente uma entrada à tabela de propriedades nomeadas para cada propriedade personalizada que não tenha sido processada anteriormente.
As mensagens enviadas pela Internet são transferidas em um formato conhecido como Message/RFC822. Esse é um formato de texto que inclui mensagens em texto sem formatação com cabeçalhos que contêm um conjunto de pares de chave e de valor. O RFC822 inclui o suporte para um conjunto de propriedades chamadas de X-headers.
Para converter mensagens do formato Message/RFC822 para o formato MAPI, o Exchange usa um componente chamado de Imail. O Imail considera os pares de valores de chave de uma mensagem RFC822 e, se possível, os converte para as propriedades MAPI. O Imail também fornece a conversão recíproca, retirando as propriedades MAPI e convertendo-as para os pares de valores de chave de RFC822.
Iniciando com o Microsoft Exchange 2000 Server, o componente Imail incluiu cabeçalhos de suporte chamados de cabeçalhos "Ad-hoc". Esses são os cabeçalhos que o Exchange preserva para possíveis utilizações futuras. Um dos tipos de cabeçalhos incluídos na definição Ad-hoc foi o X-header. Portanto, o Exchange armazenou as informações do X-header para uso futuro.
Por exemplo, se uma empresa implementou um novo aplicativo que se integra com o Exchange e usou um X-header de SMTP, o serviço Armazenamento de Informações do Microsoft Exchange criou uma propriedade nomeada para essas informações personalizadas quando processou a primeira mensagem que continha o X-header.
Dica
Todas as mensagens subsequentes que incluírem o mesmo X-header não farão com que o Exchange crie propriedades nomeadas adicionais.
O Exchange armazena essas propriedades nomeadas com as mensagens que contêm o X-header específico. A Microsoft publicou o namespace PS_INTERNET_HEADERS para agrupar os X-headers de mensagens recebidas pela Internet.
Limites de propriedades nomeadas
A seguinte lista resume alguns pontos importantes sobre as propriedades nomeadas:
Os X-headers são campos nas mensagens em Message/RFC822 que contém alguns valores importantes.
As propriedades nomeadas representam o método que o Exchange usa para reservar uma ID para um valor específico.
As propriedades nomeadas se encontram no intervalo de identificadores de propriedade entre 0x8000 e 0xFFFF. Portanto, há um limite para o número de propriedades nomeadas que podem ser criadas em um MDB (banco de dados de mensagens).
Depois que uma propriedade nomeada for alocada, ela não poderá ser desalocada. A propriedade permanecerá reservada para a combinação de nome e de GUID específica.
Dica
É tecnicamente possível recuperar as propriedades nomeadas alocadas. No entanto, o processo é pouco prático e exigiria a desmontagem do MDB pelo tempo necessário para o exame de cada mensagem para determinar as propriedades que não foram usadas.
Como há um número fixo de propriedades nomeadas disponíveis, o Exchange usa um sistema de cotas para controlar o número de propriedades nomeadas alocadas. Nesse sistema, o processo Store.exe o avisa quando as IDs de propriedade nomeadas disponíveis estão prestes a esgotar. Quando um segundo limite é atingido, o processo Store.exe não aloca mais as IDs de propriedade nomeadas.
Esgotamento de propriedades nomeadas
Embora muitos programas usem as propriedades nomeadas, o Microsoft Outlook é o maior usuário delas. Quando as IDs de propriedade nomeadas se esgotam, o Outlook não pode mapear propriedades nomeadas. Nesse cenário, podem ocorrer sintomas semelhantes aos seguintes:
As IDs de Evento 9666 e 9667 são registradas no log do Aplicativo. Para obter mais informações, consulte Os eventos 9666, 9667, 9668 e 9669 são recebidos quando propriedades nomeadas ou identificadores de réplica são reduzidos para um banco de dados do Exchange.
A mensagens que contêm propriedades que não podem ser mapeadas não são entregues. Ao examinar se há uma mensagem afetada nas informações de controle de mensagens, você observa informações semelhentes às seguintes:
550 5.2.0 STOREDRV.Deliver: O serviço Armazenamento de Informações do Microsoft Exchange relatou um erro. As seguintes informações devem ajudar a identificar a causa desse erro:
Quando um suplemento que adiciona as propriedades nomeadas ou os X-headers em mensagens é instalado no Outlook, algumas mensagens podem não ser enviadas a outros usuários na organização. Nesse cenário, o usuário remetente recebe uma notificação de falha na entrega (NDR) semelhante à seguinte:
A mensagem alcançou o sistema de email do destinatário, mas sua entrega foi recusada. Tente enviar a mensagem novamente. Se ainda assim houver falha na entrega, contate o administrador do sistema.
Identificadores de réplicas
O problema que limita a disponibilidade das propriedades nomeadas também afeta os identificadores de réplicas de pastas públicas. Há um limite máximo de 32.767 IDs de propriedade para cada banco de dados. Quando esse limite é atingido em um banco de dados específico, o Exchange não pode mais criar nenhuma nova ID de propriedade.
Se esse problema ocorrer em um banco de dados de caixa de correio, você deverá criar um novo banco de dados de caixa de correio, mover todas as caixas de correio para o novo banco de dados e excluir o banco de dados de caixa de correio que atingiu o limite de IDs de propriedade. Então você poderá criar um novo banco de dados de caixa de correio e mover as caixas de correio de volta para esse banco de dados de caixa de correio.
Se o problema ocorrer em um banco de dados de pasta pública, o processo de recuperação será mais complicado. Nesse cenário, é preciso replicar todas as pastas públicas em outro servidor e excluir o banco de dados de pasta pública afetado. Então você poderá permitir que o conteúdo seja replicado de volta no servidor original. No entanto, se a replicação já estiver configurada para suas pastas públicas, é provável que os outros bancos de dados de pasta pública na sua organização também contenham os itens que consumiram as propriedades nomeadas. Também é provável que esses bancos de dados tenham atingido os limites de ID configurados. Para contornar esse problema, é preciso configurar o envelhecimento nas pastas públicas para que conteúdos mais antigos que não estejam sendo acessados e que possam estar consumindo as propriedades nomeadas sejam removidos. Como alternativa, você também pode distribuir o conteúdo do banco de dados da pasta pública por vários bancos de dados de pasta pública.
Por padrão, o Microsoft Exchange Server 2007 tem uma cota de 16.384 para propriedades nomeadas criadas por usuários autenticados e identificadores de réplicas. A cota padrão para propriedades nomeadas criados por usuários que não foram autenticados é 8192. Essas cotas padrão permitem que você receba notificação antecipadamente sobre a degradação potencial de IDs de propriedade. Você poderá agir antes que o limite máximo seja atingido e torne o banco de dados inoperável. Portanto, as cotas podem ajudar você a minimizar os efeitos de um aplicativo com mau funcionamento ou um ataque mal-intencionado de negação de serviço. Você pode também configurar as cotas para o número de propriedades nomeadas e identificadores de réplica. Para obter etapas detalhadas sobre a configuração de cotas, consulte Como configurar propriedades com nome e cotas de identificadores de réplicas em bancos de dados do Exchange 2007.
Alterações do X-header no pacote cumulativo de atualizações 8 para o Exchange 2007 SP1 e Exchange 2007 SP2
Iniciando com o pacote cumulativo de atualizações 8 para o Exchange Server 2007 SP1, alterações foram feitas de forma que o Exchange aceite os X-headers.
Dica
Essas alterações também estão incluídas no Exchange 2007 Service Pack 2 (SP2).
Nas versões anteriores do Exchange, os X-headers são promovidos no nível do banco de dados. Portanto, se um usuário específico mapear uma propriedade nomeada em um banco de dados, os outros usuários nesse banco de dados receberão a mesma ID de propriedade para a combinação de nome e de GUID. O pacote cumulativo de atualizações 8 e as atualizações mais recentes implementam novas regras relativas às atividades que podem consumir as propriedades nomeadas para armazenar os valores do X-header.
Dica
Se uma propriedade nomeada de um valor de X-header específico tiver sido promovida no banco de dados, o pacote cumulativo de atualizações 8 e as atualizações mais recentes não a removerão. Os mapeamentos de X-header existentes serão preservados. No entanto, se o Exchange receber uma mensagem que contém um X-header que nunca foi promovido no banco de dados, as novas regras de promoção de X-header entrarão em vigor.
Com as novas regras de promoção do X-header, muitos cenários que causariam o consumo das novas propriedades nomeadas para preservar os dados do X-header não funcionarão mais. As seções a seguir descrevem alguns desses cenários.
Cenários que não consomem mais as propriedades nomeadas para preservar os X-headers
Envios anônimos
As mensagens de email anônimas da Internet não consomem mais as propriedades nomeadas de X-headers. Embora as informações de X-header existentes de mensagens de email anônimas sejam retidas, o valor dos X-headers não é mais salvo como uma propriedade na mensagem de email.
Mensagens incorporadas
O recurso de mensagens incorporadas foi criado como um recurso de interoperabilidade para aplicativos MAPI. Esse recurso permite que você defina as propriedades de envelope ou de nível superior. As mensagens incorporadas não consomem mais as novas propriedades com nome.
Mensagens do diário
As mensagens do diário representam a maior quantidade de consumo de X-header no Exchange. Considere o seguinte cenário:
Há 100 bancos de dados na organização e mais um banco de dados de diário.
Cada MDB (banco de dados de mensagens) é exposto a 100 novos X-headers da Internet por mês.
Nesse cenário, o MDB do diário está sujeito a 100 x 100 novos X-headers a cada mês. Portanto, não leva muito tempo para esgotar as propriedades nomeadas disponíveis.
Dica
Embora as mensagens do diário não promovam mais os novos mapeamentos de X-header, o conteúdo do diário ainda será salvo como esperado. Por exemplo, os relatórios e as mensagens no diário ainda serão salvas.
Cenários que ainda consomem as propriedades nomeadas para preservar os X-Headers
Usuários autenticados
Os usuários autenticados ainda podem criar mensagens cujos X-headers serão promovidos.
Aplicativos MAPI
Os aplicativos MAPI ainda podem criar propriedades nomeadas (essas propriedades que estão localizadas no namespace PS_INTERNET_HEADERS serão X-headers). Os aplicativos de Serviços Web do Exchange que usam mapeamentos de propriedade também podem criar propriedades nomeadas. Essas propriedades também podem ser X-headers.
Dica
Nenhuma alteração foi feita nos aplicativos que usam os X-headers da MAPI. O aplicativo deve solicitar corretamente as IDs das combinações de propriedades nomeadas. Por exemplo, o aplicativo deve solicitar PS_INTERNET_HEADERS e "X-<Cadeia_de_Caracteres_do_Cabeçalho>."
Se você usar o sinalizador MAPI_CREATE em uma solicitação, o aplicativo adicionará automaticamente o X-header específico na lista de X-headers preservados no MDB. Além disso, se o aplicativo definir um X-header da MAPI criando um mapeamento de propriedade nomeada no namespace PS_INTERNET_HEADERS, ele já terá criado um mapeamento para o X-header. O Exchange preservará esse mapeamento para mensagens de entrada e gerará o mapeamento para mensagens de saída.
Importante
Se um aplicativo não usar o MAPI_CREATE quando ele solicitar as IDs de propriedade nomeada, e se ele solicitar nomes contidos no namespace PS_INTERNET_HEADERS e outro cliente ainda não tiver solicitado a ID, o aplicativo não funcionará. No entanto, depois que um cliente autorizado ou cliente MAPI solicitar o X-header por nome, o aplicativo funcionará.
Alterações de propriedade no Exchange 2010
O Exchange Server 2010 inclui aprimoramentos adicionais para corrigir os problemas descritos neste documento. No Exchange 2010, os recursos da propriedade nomeada são movidos para o nível da caixa de correio, em vez de serem movidos para o nível do banco de dados.
Para obter mais informações
Para obter mais informações sobre como gerenciar bancos de dados, consulte Gerenciando grupos de armazenamento e bancos de dados.
Para saber mais sobre os recursos de segurança e proteção do Exchange 2007, consulte Segurança e proteção.