I've created a database with tables that heavily leverages nvarchar for most of the columns. One of the challenges I'm running into is that when I go to view the SQL Server Agent Log files, I get the following error noted below. I've been scouring Google and haven't been able to find anything that closely resembles the scenario I'm experiencing. Short of re-installing the entire server (which is really isn't an option at this point), how can I flip some sort of switch to make the log files readable again?

(Sorry don't have enough rep here to post an image. Here's the link to the image.)


Here's the details behind it:


The log file is not using Unicode format. (.Net SqlClient Data Provider)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=11.00.3000&EvtSrc=MSSQLServer&EvtID=22004&LinkId=20476

Server Name: Error Number: 22004 Severity: 16 State: 1

Program Location:

at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) at Microsoft.SqlServer.Management.SqlManagerUI.LogSourceSqlAgent.InitializeInternal() at Microsoft.SqlServer.Management.SqlManagerUI.LogSourceSqlAgent.Microsoft.SqlServer.Management.SqlManagerUI.ILogSource.Initialize() at Microsoft.SqlServer.Management.SqlManagerUI.LogSourceAggregation.Microsoft.SqlServer.Management.SqlManagerUI.ILogSource.Initialize()

  • 1
    You may have the option "Write OEM file" enabled in your SQL Server Agent properties. Not sure, but can be something to check. Feb 8, 2013 at 9:22
  • It is enabled but it's a greyed out box that's checked.
    – Techie Joe
    Feb 8, 2013 at 15:19
  • 1
    Where are you seeing it? In the individual file or in the SQL Server Agent properties window? You should be able to change it in the latter. Feb 8, 2013 at 15:42
  • My Bad. I missed it and did indeed uncheck the correct box. Everything works as it's supposed to now. Thanks!
    – Techie Joe
    Feb 8, 2013 at 16:01

1 Answer 1


@spaghettidba's solution worked for this matter. By unchecking the 'Write OEM error log' check box (cycled the server as well) by right clicking 'Error Logs' under (servername) -> SQL Server Agent -> Error Logs (in the SQL Server Management Studio) the logs started writing and were readable again.

  • I'm curious -- how was this setting enabled in the first place? As far as I can tell, it's not turned on by default.
    – Jon Seigel
    Feb 8, 2013 at 16:15
  • I didn't touch any of these settings out of the box. The only things I modified were settings to add a certificate for server/client encryption to/from box. That's it.
    – Techie Joe
    Feb 8, 2013 at 16:25
  • Interesting. Was the install done on a non-English/US Windows instance, and what was the database engine collation set to?
    – Jon Seigel
    Feb 8, 2013 at 17:21
  • It's a standard US version of Windows 2008 R2 Enterprise. The Collation (again, out of the box) is set to 'SQL_Latin1_General_CP1_CI_AS'.
    – Techie Joe
    Feb 8, 2013 at 18:06
  • 1
    Totally bizarre. If you use a standard set of server setup scripts, it might be a good idea to explicitly disable this option just in case.
    – Jon Seigel
    Feb 8, 2013 at 19:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.