It would be nice to implement the PingServer method in the TZFirebirdConnection, like such in the TZInterbase6Connection.
Now the TZAbstractDbcConnection.PingServer function is called, which throws the EZUnsupportedException exception:
[code]
Raise EZUnsupportedException.Create(SUnsupportedOperation);
[/code]
[code]
/ TZInterbase6Connection - has overrided method PingServer: Integer; override;
TZAbstractDbcConnection <-- TZInterbaseFirebirdConnection
\ TZFirebirdConnection - no PingServer method
unit ZDbcConnection
declared
TZAbstractDbcConnection = class...
function PingServer: Integer; virtual;
[/code]
Link to the forum topic:
https://zeoslib.sourceforge.io/viewtopic.php?f=50&t=138544
Hello Vladimir,
PingSetver added by r7464 on trunk.
Please close if OK.
Regards, Michael
Hello, Michael!
I am not sure what is the problem, but after I call the PingServer after restarting the Firebird server, an error occurrs.
I use mORMot2 and ZeosLib last trunk versions.
Debian 5.10.28-1 (2021-04-09) x86_64 GNU/Linux
FPC/Lazarus
That's what I'm doing:
query a database - OK;
restart the Firebird server:
sudo systemctl restart firebird
execute PingServer - an error occurs:
in the IAttachment.ping() procedure, the AttachmentVTable(vTable).ping(Self, status) is called, and at this moment there is an exception:
Project Test Application Server raised exception class 'External: SIGSEGV'.
In file '../../src/plain/ZPlainFirebird.pas' at line 4114:
ReferenceCountedVTable(vTable).addRef(Self);
OK
F9
Project Test Application Server raised exception class 'RunError(216)' with message:
General Protection Fault
In file '../../src/plain/ZPlainFirebird.pas' at line 4114:
ReferenceCountedVTable(vTable).addRef(Self);
Continue
Project Test Application Server raised exception class 'EAccessViolation' with message:
Access violation
In file '../../src/plain/ZPlainFirebird.pas' at line 4114:
ReferenceCountedVTable(vTable).addRef(Self);
Best regards, Vladimir
Last edit: Vladimir Lomov 2021-04-20