Monday, 6 December 2010

Event ID 117: Changed language setting to us_english.. The SQL statement was: "UPDATE SYSLASTVALUE SET VALUE ...

Below are two of the common errors seen in AX and the explanation of them from Microsoft support.

=========================
Event ID: 117
Description:
Object Server 01: The database reported (session 1 (-AOS-)): [Microsoft][ODBC SQL Server Driver][SQL Server]Changed language setting to us_english.. The SQL statement was: "UPDATE SYSLASTVALUE SET VALUE=?,RECVERSION=? WHERE (((((((USERID=?) AND (RECORDTYPE=?)) AND (ELEMENTNAME=?)) AND (DESIGNNAME=?)) AND (ISKERNEL=?)) AND (COMPANY=?)) AND (RECVERSION=?))"


Event ID: 110
Description:
Object Server 01: Dialog issued for client-less session 1: Cannot edit a record in LastValue (SysLastValue). User ID: , AdminUserSetup.
The SQL database has issued an error.
=========================

 
These messages do not appear constantly, but actually sporadically, and always in pairs, of 110 and 117.

From my research the cause of this is that an update conflict occurs when updating a table with a blob type field, like SysLastValue table. The kernel uses ODBC function SQLParamData to put data into a blob field, in case of an update conflict SQLParamData returns SQL_NO_DATA. The AX kernel misinte rprets this return value, thinking that SQL server has raised an error, and so raises the two messages in the event log - message 110 indicates the update failed, message 117 is the last message raised from SQL server, which is actually just a standard information message that is normally not shown , as there is no actual error from SQL, it is only misinterpretation from AX kernel.

No comments:

Post a Comment