#1 2012-11-28 13:41:08

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 9,751
Website

Breaking change: SQLite3*.pas units renamed mORMot*.pas

All former SQLite3\SQLite3*.pas units have been renamed to SQLite3\mORMot*.pas to match the database-agnostic scheme of the mORMot framework.

This is a major break change, so all your "uses" clauses in your code is to be change to follow the new naming.

See this commit, which includes documentation:
http://synopse.info/fossil/info/1c6fe7a1fd

During the same winter cleaning, we get rid of the deprecated Zeos directory in our source code repository:
http://synopse.info/fossil/info/c0cd24feea

Comments about http://blog.synopse.info/post/2012/11/2 … e3TomORMot

Offline

#2 2012-12-03 19:19:19

TPrami
Member
Registered: 2010-07-06
Posts: 69

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

Hello,

Good to see that there are some cleanups, but I think it went little bit too fad,

Downloaded latest code (at the leaves) and now some files are missing, it might be release thing, but would be nice to get all latest files from there also. Like now some files changed the name, I need to get rid of old files so I know which files are deprecated... And after reapplying the (zip or what not) content to disk some are missing...

like :  sqlite3fts3.obj

Now I really do not know the best way top get working version. Because if I unzip the latest release I'll have extra files in the my local repository...

Any ways, which would be best way to get the latest files with the 1.18 "prerelease" version to the test...

-Tee-

Offline

#3 2012-12-03 19:31:48

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 9,751
Website

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

See http://synopse.info/fossil/wiki?name=Get+the+source

All is explained here.

The revision 1.18 is on track and will contain all files.
I'm just waiting for feedback before freezing the code.

thanks for the interest-
:-)

Offline

#4 2012-12-04 19:04:06

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 9,751
Website

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

Another BREAKING CHANGE in TSQLRestServerCallBackParams use: all method-based services should now be a procedure, and use aParams.Results()/Error() methods to return the content - new definition of aParams features now wfull access to incoming/outgoing context and parameters.

See http://synopse.info/fossil/info/ace12b0996

Offline

#5 2012-12-04 21:56:42

Bojop
Member
From: Wolder
Registered: 2011-01-05
Posts: 28

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

Hi,

ab wrote:

The revision 1.18 is on track and will contain all files.
I'm just waiting for feedback before freezing the code.


I get this error when building with latest source code

[DCC Warning] mORMot.pas(27878): W1036 Variable 'V' might not have been initialized

Last edited by Bojop (2012-12-04 21:58:23)

Offline

#6 2012-12-04 22:26:19

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 9,751
Website

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

With which compiler?

Offline

#7 2012-12-04 22:52:34

Leander007
Member
From: Slovenia
Registered: 2011-04-29
Posts: 113

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

Warning is not error, it is a warning smile.


"Uncertainty in science: There no doubt exist natural laws, but once this fine reason of ours was corrupted, it corrupted everything.", Blaise Pascal

Offline

#8 2012-12-07 13:14:57

Bojop
Member
From: Wolder
Registered: 2011-01-05
Posts: 28

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

Hi ab,

ab wrote:

With which compiler?


I use XE

when running my program i get an exception after calling an service for the second time.
The first time the service runs with no error.

Exception class EInterfaceFactoryException
program stops at line 27925 in Mormot with latest Source Code

With the latest source code the error with building my source is gone, but the exception remains.

this happens with all service calls, first time OK, second time gives exception.

Offline

#9 2012-12-07 16:51:37

Bojop
Member
From: Wolder
Registered: 2011-01-05
Posts: 28

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

Hi ab,

Bojop wrote:

when running my program i get an exception after calling an service for the second time.
The first time the service runs with no error.

Exception class EInterfaceFactoryException
program stops at line 27925 in Mormot with latest Source Code

With the latest source code the error with building my source is gone, but the exception remains.

this happens with all service calls, first time OK, second time gives exception.


on the server side i get an EAccesViolation, program stops at line 29343 in Syncommons.
when I disable all the logging, the program runs without an error?

Offline

#10 2012-12-07 17:26:28

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 9,751
Website

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

I just launched the regression tests with all logging included.

All interface-based service code run as expected, and the logs where written with no problem (more than 280 MB just for the TTestServiceOrientedArchitecture and TTestExternalDatabase tests).

Without code to reproduce the issue, nor a more complete error message (what is the FULL error message associated with the exception?) difficult to guess what is wrong.
Please download the latest version from the repository... code is evolving very quickly, so line numbers are not useful for me. wink

Offline

#11 2012-12-07 17:44:16

Bojop
Member
From: Wolder
Registered: 2011-01-05
Posts: 28

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

ab wrote:

I just launched the regression tests with all logging included.

All interface-based service code run as expected, and the logs where written with no problem (more than 280 MB just for the TTestServiceOrientedArchitecture and TTestExternalDatabase tests).

Without code to reproduce the issue, nor a more complete error message (what is the FULL error message associated with the exception?) difficult to guess what is wrong.
Please download the latest version from the repository... code is evolving very quickly, so line numbers are not useful for me. wink

latest source won't compile

[DCC Error] SynCommons.pas(4390): E2439 Inline function must not have open array argument

i use XE

can i sent you the logging file's?

Offline

#12 2012-12-07 17:48:09

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 9,751
Website

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

I've committed a fix. Thanks for the feedback.

You can put here the lines around the exception in the log file, with some part of your code.

Offline

#13 2012-12-07 18:04:21

Bojop
Member
From: Wolder
Registered: 2011-01-05
Posts: 28

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

Hi Ab,

source stil won't compile

[DCC Error] mORMot.pas(5697): E2439 Inline function must not have open array argument

Offline

#14 2012-12-09 20:12:38

Bojop
Member
From: Wolder
Registered: 2011-01-05
Posts: 28

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

Hi Ab,

Latest source now compiles fine, thanks.

For my problem, I cannot find the cause.

With the source code from 03-12-2012 13:53 my program runs fine without errors.

With the source code from 04-12-2012 17:27 and all newer source code my program runs and stop with error's.

With the source code from 09-12-2012 09:46 the error's are:
Client: Invalid fake .... interface call     and stops at line 28102 in mORMot
First chance exception at $7760FC56. Exception class EInterfaceFactoryException with message 'Invalid fake ICheckHaalPloegListInfoJSON.HaalPloegListInfoJSON interface call: : '. Process PloegPlaatje.exe (5020)
Log:
20121209 20401948 EXC           EOSError ("System Error.  Code: 12152.\r\n") at 00022209 SysUtils.RaiseLastOSError  stack trace API 00107A30 SynCommons.SynRtlUnwind (28726)

Server: EAccessViolation    and stops at line 10751 in SynCommons
First chance exception at $7760FC56. Exception class EAccessViolation with message 'Access violation at address 004CD08C in module 'PloegNak3.exe'. Read of address 6F6C706D'. Process PloegNak3.exe (5324)
Call Stack:
SynCommons.StrLen(???)
SynCommons.TTextWriter.AddNoJSONEscape($6F6C706D,0)
SynCommons.TSynLog.AddRecursion(1,sllEnter)
SynCommons.TSynLog.DoEnterLeave(sllEnter)
SynCommons.TSynLog._AddRef
:0040a768 @IntfCopy + $C
mORMotHttpServer.TSQLHttpServer.Request('/root/Dienst?session_signature=xxxxxxxxxxxxxxxxxxxxx','BEGIN','Accept: */*'#$D#$A'Content-Type: application/json; charset=UTF-8'#$D#$A'User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows; FREE)'#$D#$A'Host: xxxx_xxxxxx:xxx'#$D#$A'Content-Length: 0'#$D#$A'Connection: Keep-Alive'#$D#$A'Cache-Control: no-cache'#$D#$A'Pragma: no-cache'#$D#$A'RemoteIP: x.x.x.x'#$D#$A,'','application/json; charset=UTF-8','','','')
log: a lot of this
20121209 20495656  -        …À|F;urê3À_^]Â 00.106.621
20121209 20495656  -    00007759 System.@FinalizeArray  00.106.627
20121209 20495656  +    000FE909 mORMot.TSQLRestServer.URI (21904)
20121209 20495656  +        …À|F;urê3À_^]Â

20121209 20392926  +    001147FB SynSQLite3.TSQLDatabase.DBClose (3791)
20121209 20392926  -    00114887 SynSQLite3.TSQLDatabase.DBClose (3804)  00.001.789
20121209 20392926 EXC   ECrtSocket ("Socket bind creation error on 0.0.0.0:xxx (10048)") at 0017D480 SynCrtSock.TCrtSocket.OpenBind (1355)  stack trace API 000E1C70 SynCommons.SynRtlUnwind (28726) 000055C8 System.@HandleAnyException 0017D480 SynCrtSock.TCrtSocket.OpenBind (1355) 0017D2C7 SynCrtSock.TCrtSocket.Bind (1313) 0017E204 SynCrtSock.THttpServer.Create (2114) 00183D66 mORMotHttpServer.TSQLHttpServer.Create (406) 00184040 mORMotHttpServer.TSQLHttpServer.Create (435) 00192998 PloegServer.TRotaServer.Create (3674) 00192B45 PloegServer.MakeServer (3742) 00005C30 System.@StartExe

20121209 20401947  +    000FE909 mORMot.TSQLRestServer.URI (21904)
20121209 20401947  +        20121209 20401947 EXCOS     EAccessViolation (C0000005) at 000CC08C SynCommons.StrLen (10751)  stack trace API 000E1C70 SynCommons.SynRtlUnwind (28726) 000055C8 System.@HandleAnyException 00009768 System.@IntfCopy 00184239 mORMotHttpServer.TSQLHttpServer.Request (490) 0018207D SynCrtSock.THttpServerGeneric.Request (3973) 0017E42D SynCrtSock.THttpServer.Process (2208) 0017EBC7 SynCrtSock.THttpServerResp.Execute (2348) 00043F91 Classes.ThreadProc 0000602E System.ThreadWrapper
20121209 20401947  -    000FFE91 mORMot.TSQLRestServer.URI (22330)  00.000.190


After disable all logging calls to TSQLLog, my program runs fine again without errors.

do you know what is the cause?

Offline

#15 2012-12-10 08:13:58

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 9,751
Website

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

You seem to use several exceptions interceptors at once.

Try to use only one.

Offline

#16 2012-12-10 18:44:43

Bojop
Member
From: Wolder
Registered: 2011-01-05
Posts: 28

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

Hi Ab,

ab wrote:

You seem to use several exceptions interceptors at once.

Try to use only one.

I don't use exceptions interceptors afaik.

I have no errors with

  with TSQLLog.Family do
  begin
    Level := LOG_VERBOSE;
    PerThreadLog := False;
    DestinationPath := 'L:\Log\Server\SQL\';
  end;

I have errors when

    PerThreadLog := True;  

but with the latest source code from today  10-12-2012 16:18  all errors are gone.
So, thank you very much.

Offline

#17 2012-12-10 20:23:44

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 9,751
Website

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

Yes I made a good code refactoring in order to render logging stronger.
Happy it works for you.

I wonder if it could not be a good idea to add a thread id column in the logs.
It could help the viewer to be multi thread ready, and more useful on server side for instance.
What do you think?

Offline

#18 2012-12-10 21:15:59

Bojop
Member
From: Wolder
Registered: 2011-01-05
Posts: 28

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

ab wrote:

I wonder if it could not be a good idea to add a thread id column in the logs.
It could help the viewer to be multi thread ready, and more useful on server side for instance.
What do you think?

Yes, I think that is a good idea.

Offline

#19 2012-12-13 20:32:55

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 9,751
Website

Re: Breaking change: SQLite3*.pas units renamed mORMot*.pas

That's it.
Thread information has been added to the logs.

If new property TSynLogFamily.PerThreadLog is set to ptIdentifiedInOnFile, a new column will be added for each logged row.
See http://synopse.info/fossil/info/7e1bdd7e93

LogViewer has been updated to allow easy and efficient multi-thread process logging.
Performance is still awesome: when the whole multi-threaded 10,500,000 regression tests are executed, the 390 MB log file generated is loaded with no delay by the LogViewer, and detailed per-thread inspection is made very easy.
smile

Offline

Board footer

Powered by FluxBB