Debug common management framework (CMaF)
search cancel

Debug common management framework (CMaF)

book

Article ID: 177248

calendar_today

Updated On:

Products

Mail Security for Microsoft Exchange

Issue/Introduction

The customer reports an issue in the Symantec Mail Security for Microsoft Exchange (SMSMSE) management console, or in the console of any other Symantec Mail Security product, which shares the underlying Common Management Framework (CMaF) technology. More information is required to investigate the issue.

Resolution

 Perform the following steps to turn on debug logging for the CMaF framework:

  1. Stop the SMSMSE services.  Close the SMSMSE Administration console.

Open Symantec.MailSecurity.UI.exe.config in a text editor such as Notepad.

The following is the default location of the file: 

  32-bit OS 64-bit OS
SMSMSE 5.X C:\Program Files\Symantec\SMSMSE\5.0\UI\Symantec.MailSecurity.UI.exe.config N/A
SMSMSE 6.0 C:\Program Files\Symantec\CMaF\2.0\Symantec.Cmaf.UI.exe.config C:\Program Files (x86)\Symantec\CMaF\2.0\Symantec.Cmaf.UI.exe.config
SMSMSE 6.5 C:\Program Files\Symantec\CMaF\2.1\Symantec.Cmaf.UI.exe.config C:\Program Files (x86)\Symantec\CMaF\2.1\Symantec.Cmaf.UI.exe.config
SMSMSE 7.0 N/A C:\Program Files (x86)\Symantec\CMaF\2.2\Symantec.Cmaf.UI.exe.config
SMSMSE 7.5 N/A C:\Program Files (x86)\Symantec\CMaF\2.3\Symantec.Cmaf.UI.exe.config
SMSMSE 7.9 N/A C:\Program Files\Symantec\CMaF\7.9

 

  1. Under <configuration> / <system.diagnostics> / <switches> choose a debug level by changing value="0" to value="4".

    Before change:

    <switches>
     <!-- 0=off, 1=error, 2=warning+error, 3=info+warning+error, 4=all -->
     <add name="General" value="0" />
    </switches>


    After change:

    <switches>
     <!-- 0=off, 1=error, 2=warning+error, 3=info+warning+error, 4=all -->
     <add name="General" value="4" />
    </switches>
  2. Under <configuration> / <system.diagnostics> / <trace autoflush.....> / <listeners> , uncomment the appListener node by removing the '<!--' from the beginning of the line and the '-- >' from the end of the line.
    Commented:

    <!-- <add name="appListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="SMSMSEUITraceOutput.log" /> -->

    Uncommented:

    <add name="appListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="SMSMSEUITraceOutput.log" /> 
     
  3. Save the file and close it.
  4. Create the following registry key as a DWORD 32:

    32-bit OS: HKEY_LOCAL_MACHINE\SOFTWARE\Symantec\Cmaf\<version>\DumpCmafXml
    64-bit OS: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Symantec\Cmaf\<version>\DumpCmafXml

    NOTE:  Replace <version> with the version of Cmaf installed.  The following is an example of a 32-bit OS with version 2.1:

    HKEY_LOCAL_MACHINE\SOFTWARE\Symantec\Cmaf\2.1\DumpCmafXml
     
  5. Double-click the DWORD entry to set its value from 0 to 1.
  6. Start the SMSMSE services.  Open the SMSMSE Administration Console.

The debug log file SMSMSEUITraceOutput.log is created in the same location as the configuration file.

After replicating the issue change the configuration file back to the original values and restart the SMSMSE services.


Technical Information

Samples of level of detail generated in SMSMSEUITraceOutput.log:


*************************************************
SYMANTEC CONSOLE STARTING
Initialized on Friday, January 04, 2008 11:16:18 AM on thread 1
INFO------>11:16:18.178
Method Name : Symantec.Cmaf.UI.FormSMSUI::Init Thread:1
Init at offset 62 in file:line:column <filename unknown>:0:0
 -- Symantec Cmaf Common UI Starting....
INFO------>11:16:20.412
Method Name : Symantec.Cmaf.UI.Views.SMSUIControlView::Initialize Thread:1
Initialize at offset 36 in file:line:column <filename unknown>:0:0
 -- Entering. View=mainNavigation
INFO------>11:16:20.428
Method Name : Symantec.Cmaf.UI.Views.SMSUIControlView::Initialize Thread:1
Initialize at offset 516 in file:line:column <filename unknown>:0:0
 -- Exiting. View=mainNavigation




INFO------>11:18:11.632
Method Name : Symantec.Cmaf.Reporting.Management.ReportingManager::ProcessReportRequest Thread:4
ProcessReportRequest at offset 60 in file:line:column <filename unknown>:0:0
 -- Entering. Report Request XML = <ReportingData><Type>GetReportsList</Type></ReportingData>
INFO------>11:18:11.648
Method Name : Symantec.Cmaf.Reporting.Management.ReportingManager::ProcessReportRequest Thread:4
ProcessReportRequest at offset 1331 in file:line:column <filename unknown>:0:0
 -- Exiting. Report Response XML = <ReportingData><Type>ReportListing</Type><ReportData><ReportListing><ReportManifest>t>


<Properties>
    <Name>Detailed Sample.010308.152522</Name>
    <ReportType>Detailed</ReportType>
    <DateCreated>2008-01-03T15:25:22+00:00</DateCreated>
    <ReportFormat>PDF</ReportFormat>
    <Template>Detailed Sample</Template>
    <ReportStatus>Ready</ReportStatus>
  </Properties>
</ReportManifest><ReportManifest>
  <Properties>
    <Name>Sample Custom.010408.100442</Name>
    <ReportType>Detailed</ReportType>
    <DateCreated>2008-01-04T10:04:42+00:00</DateCreated>
    <ReportFormat>PDF</ReportFormat>
    <Template>Sample Custom</Template>
    <ReportStatus>Ready</ReportStatus>
  </Properties>
</ReportManifest><ReportManifest>
  <Properties>
    <Name>Sample Custom.010408.111720</Name>
    <ReportType>Detailed</ReportType>
    <DateCreated>2008-01-04T11:17:20+00:00</DateCreated>
    <ReportFormat>PDF</ReportFormat>
    <Template>Sample Custom</Template>
    <ReportStatus>Ready</ReportStatus>
  </Properties>
</ReportManifest></ReportListing></ReportData></ReportingData>



INFO------>11:18:11.648
Method Name : Symantec.Cmaf.SettingsManager.Client.RequestProxy::ProcessResponse Thread:4
ProcessResponse at offset 48 in file:line:column <filename unknown>:0:0
-- Entering


INFO------>11:16:25.709
Method Name : Symantec.Cmaf.SettingsManager.Client.SettingsWorker::ExecuteDeployRetrieve Thread:4
ExecuteDeployRetrieve at offset 1324 in file:line:column <filename unknown>:0:0
 -- Received remote responses, count=1
###############ERROR################
11:16:25.709
Method Name : Symantec.Cmaf.Common.Helper.XmlHelper::ReadXmlStringFromFile Thread:4
ReadXmlStringFromFile at offset 264 in file:line:column <filename unknown>:0:0

ExecuteDeployRetrieve at offset 1324 in file:line:column :0:0

File C:\Program Files\Common Files\Symantec Shared\Version Support\SMSVersionSupport.xml does not exist
Stack trace = at Symantec.Cmaf.Common.Helper.XmlHelper.ReadXmlStringFromFile(String fileName, String xslName)
at Symantec.Cmaf.SettingsManager.Client.SettingsWorker.PerformPostTransferTasks(ArrayList responsesList)
at Symantec.Cmaf.SettingsManager.Client.SettingsWorker.ExecuteDeployRetrieve(ArrayList requestsList, BackgroundWorker backgroundWorker)
at Symantec.Cmaf.SettingsManager.Client.SettingsWorker.Init(ArrayList requestsList, BackgroundWorker backgroundWorker, DoWorkEventArgs e)
at Symantec.Cmaf.SettingsManager.Client.SettingsProcessor.SendRequestToSettingsManager(ArrayList requestsList, BackgroundWorker backgroundWorker)
at Symantec.Cmaf.SettingsManager.Client.SettingsProcessor.SendRequest(ArrayList requestsList, SettingsResponse totalResponse, OpRow opStatusRow, Hashtable requestRows, BackgroundWorker backgroundWorker)
at Symantec.Cmaf.SettingsManager.Client.SettingsProcessor.m_BackgroundWorker_DoWork(Object sender, DoWorkEventArgs e)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)
at System.Runtime.Remoting.Proxies.AgileAsyncWorkerItem.ThreadPoolCallBack(Object o)
at System.Threading._ThreadPoolWaitCallback.WaitCallback_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)
####################################