0 votes

We are logging to an external MS SQL database and it stopped working 3 days ago. The following information was found in the Server event log:

Log Name: Adaxes
Source: Adaxes Service
Date: 2/24/2017 4:12:59 PM
Event ID: 0
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: ADAXES01.co.wake.nc.us
Description:
Softerra.Adaxes.Logger+LogMessageWrappingException: Failed to save log records to the external database. ---> System.OverflowException: Arithmetic operation resulted in an overflow.
at System.Data.SQLite.SQLite3.GetBytes(SQLiteStatement stmt, Int32 index, Int32 nDataOffset, Byte[] bDest, Int32 nStart, Int32 nLength)
at System.Data.SQLite.SQLiteDataReader.GetBytes(Int32 i, Int64 fieldOffset, Byte[] buffer, Int32 bufferoffset, Int32 length)
at #9k.#al.Convert(IDataRecord dataRecord)
at #9k.#1l.ExecuteSelectQuery[T](String query, IList1 parameters, IDataRecordConverter1 converter, IDbCommand command)
at #9k.#4l.ExecuteSelectQuery[T](String query, IList1 parameters, IDataRecordConverter1 converter)
at Softerra.Adaxes.Logging.SQLiteAccessProvider.ExecuteSelectQuery[T](String query, IList1 queryParameters, IDataRecordConverter1 converter)
at Softerra.Adaxes.Logging.SQLiteAccessProvider.GetExecutionLog(Guid logRecordId)
at Softerra.Adaxes.Logging.DBAccessProvider.LoadExecutionLog(Guid logRecordId)
at Softerra.Adaxes.Logging.AdmLogRecord.GetExecutionLog()
at #Kl.#Pl.InsertRecord(ISqlQueryExecutor queryExecutor, AdmLogRecord record, Guid initiatorId, Guid targetObjectId)
at Softerra.Adaxes.Logging.DBAccessProvider.InsertRecord(ISqlQueryExecutor queryExecutor, AdmLogRecord record)
at #9k.#zl.#i.#Al.#0wb()
at #9k.#zl.#i.#Al.#Zwb()
--- End of inner exception stack trace ---
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Adaxes Service" />
<EventID Qualifiers="0">0</EventID>
<Level>2</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2017-02-24T21:12:59.000000000Z" />
<EventRecordID>150460</EventRecordID>
<Channel>Adaxes</Channel>
<Computer>ADAXES01.co.wake.nc.us</Computer>
<Security />
</System>
<EventData>
<Data>Softerra.Adaxes.Logger+LogMessageWrappingException: Failed to save log records to the external database. ---> System.OverflowException: Arithmetic operation resulted in an overflow.
at System.Data.SQLite.SQLite3.GetBytes(SQLiteStatement stmt, Int32 index, Int32 nDataOffset, Byte[] bDest, Int32 nStart, Int32 nLength)
at System.Data.SQLite.SQLiteDataReader.GetBytes(Int32 i, Int64 fieldOffset, Byte[] buffer, Int32 bufferoffset, Int32 length)
at #9k.#al.Convert(IDataRecord dataRecord)
at #9k.#1l.ExecuteSelectQuery[T](String query, IList1 parameters, IDataRecordConverter1 converter, IDbCommand command)
at #9k.#4l.ExecuteSelectQuery[T](String query, IList1 parameters, IDataRecordConverter1 converter)
at Softerra.Adaxes.Logging.SQLiteAccessProvider.ExecuteSelectQuery[T](String query, IList1 queryParameters, IDataRecordConverter1 converter)
at Softerra.Adaxes.Logging.SQLiteAccessProvider.GetExecutionLog(Guid logRecordId)
at Softerra.Adaxes.Logging.DBAccessProvider.LoadExecutionLog(Guid logRecordId)
at Softerra.Adaxes.Logging.AdmLogRecord.GetExecutionLog()
at #Kl.#Pl.InsertRecord(ISqlQueryExecutor queryExecutor, AdmLogRecord record, Guid initiatorId, Guid targetObjectId)
at Softerra.Adaxes.Logging.DBAccessProvider.InsertRecord(ISqlQueryExecutor queryExecutor, AdmLogRecord record)
at #9k.#zl.#i.#Al.#0wb()
at #9k.#zl.#i.#Al.#Zwb()
--- End of inner exception stack trace ---</Data>
</EventData>
</Event>

Also, the size of the AdaxesLog.db3 is 633MB. Please let me know if you want me to send it to you.

Thanks

by (870 points)
0

Hello Sandra,

Could you upload the logging database to our FTP site? We sent you the FTP address, email and password by e-mail. Thanks!

1 Answer

0 votes
by (216k points)
selected by
Best answer

Hello,

We've managed to identify the cause for the issue. The thing is that the Execution Log of one of operation stored in the built-in logging database is over 500 Mb (which is nearly 80% of your logging database). Such a big Execution Log cannot be synchronized to an eternal MS SQL database. In Adaxes 2017.1 that will be available approximately in a month, we'll fix the issue. Adaxes will not save Execution Logs of such a size to the built-in database.

We also sent you the steps how to remedy the issue and restore synchronization of log records. Check your inbox.

0

The issue was fixed in Adaxes 2017.1. Now, if the size of an Execution Log of an operation exceeds 10 Megabytes, it will not be saved to Adaxes Service Log. You can download the latest build here.

Upgrade Instructions

What's New

Related questions

0 votes
1 answer

Our audits require us to provide a report of who has access in applications. Most applications provide a way to produce this access report. Can Adaxes add this feature?

asked Nov 7 by lavonnabalo (40 points)
0 votes
1 answer

Is there a report that would show the Adaxes websites and who has access to them?

asked Feb 16 by lavonnabalo (40 points)
0 votes
1 answer

How to grant someone access to see logging in Adaxes Admin Console?

asked Nov 30, 2022 by sra98a (120 points)
0 votes
1 answer

Our SQL DBAs are working to move most/all our SQL connections to SSL. They have asked if Adaxes can support this.

asked Feb 22, 2021 by ggallaway (300 points)
0 votes
1 answer

Dear Adaxes team, Please confirm if Adaxes 2019.1 support SQL server 2017 for logging database. Also suggest Adaxes steps to perform if we are migrating our logging database from SQL server 2012 to SQL server 2017

asked Apr 16, 2020 by kushal.gaurav (20 points)
3,552 questions
3,242 answers
8,243 comments
547,828 users