Freigeben über


"Insufficient Resources" and Symantec Enterprise Vault

This is an extension to last year's blog about Insufficient Resources.

Item 6 covers when the MSMQ message is too large.

The first thing that needs to be mentioned is that we need to distinguish between the size of the message and the size of the message body. The 4MB size limit includes all the information needed for delivery as well as the data you are trying to deliver. The message is structured as follows:

  • Base header (priority, packet size, TTRQ,...)
  • User header (sender QM's GUID, destination QM's GUID, sent time, message GUID, destination queue, admin queue,...) 
  • Property header (Ack mode, correlation ID, class, privacy level, message body,...)

The overhead (everything apart from the body) is normally just a few hundred bytes but some properties, such as the message label, can be that big on their own. Some allowance, therefore, needs to be made by the application to ensure the message body can fit into the remaining space.

Symantec's Enterprise Vault has one approach to avoiding this problem. In the registry is a value that caps the maximum size of messages that the application will generate:

HKLM\Software\KVS\Enterprise Vault\Storage\MaxMSMQMessageSize

This is a DWORD and is measured in bytes so if, for example, you wanted a maximum size of 3MB then assign a value of 3145728.

If you find that Enterprise Vault logs "Insufficient Resources" exceptions and there are not bazillions of messages in the system (the usual cause of the exception) then you may want to experiment with reducing this value. It could be that the overhead that MSMQ creates exceeds 1,024 bytes.

Comments

  • Anonymous
    June 29, 2007
    For a while now there's been some, at times quite vociferous, discussion between members of Microsoft's