1

Topic: Periodically the output agent of event does not work

All kind time of days!
Faced a problem that PERIODICALLY does not work an error handler. There is a software installed on the server. Server options:
Windows Server 2008 R2 Enterprise
The RAM: 8
FireBird: WI-V2.5.7.27050 Firebird 2.5 - Classic (the problem was and on FB 2.5.2)
The version fbclient.dll corresponds to installed version FB. Other versions FB on the server it is not installed and never was.
Software it is written about usage Delphi XE5 and FireDac. Total of events registered in FDADEventAlerter = 7
All users of a software launch it on the server through RDP or RemoteApp (scattered a program on network computers a problem does not disappear).
The port, but all the same problem tried to change remains.
Someone can already came up against such situation? What recommend?
Thanks.

2

Re: Periodically the output agent of event does not work

Fish. K.A. wrote:

That recommend?

Not to use event if do not understand as they work and be not able to program
Immediately on ISC API. All  wrappers that I met, cause only
Bewilderment by the curvature (which it is inevitable in vain attempts to make their general-purpose).

3

Re: Periodically the output agent of event does not work

Fish. K.A. wrote:

That recommend?

1. 100500 times to recheck the code.
2. To recheck the code "that guy" - FireDac in this case.
3. To make a played back example   if the error was not on the previous steps.

4

Re: Periodically the output agent of event does not work

hvlad wrote:

it is passed...
1. 100500 times to recheck the code.
2. To recheck the code "that guy" - FireDac in this case.
3. To make a played back example   if the error was not on the previous steps.

0. To ungear antiviruses, firewalls,  etc.

5

Re: Periodically the output agent of event does not work

hvlad,  corresponded FibPlus-> AnyDac-> FireDac and permanently there were these problems.
And at myself I cannot catch this problem.
To ungear antiviruses, firewalls,  - are ungeared, adjusted. Ports are opened.

6

Re: Periodically the output agent of event does not work

And any regularity did not note?
P.S. Client a software on the same server, as FB, correctly?

7

Re: Periodically the output agent of event does not work

Dimitry Sibiryakov, you are right. I am not able to program immediately on ISC API.... There are any examples. What to esteem?

8

Re: Periodically the output agent of event does not work

Gadzhimuradov Rustam;
Generally regularity did not see. There is a client at which costs on a server, there are clients at which and and so.

9

Re: Periodically the output agent of event does not work

Fish. K.A.;
It is possible to pay attention to duration of connection.

10

Re: Periodically the output agent of event does not work

explicitly to register RemoteAuxPort directive in config Firebird on the server and in firewalls the same port to open

11

Re: Periodically the output agent of event does not work

Problems with additional connection can cause total  events. And at
- some of them are lost. It is caused by problems of synchronization of flows in
Application.

12

Re: Periodically the output agent of event does not work

Fish. K.A. wrote:

That recommend?

1. To be defined that means "do not work". The client is launched always and receives 1 and 3 event, and 2 does not receive? Perhaps it has been closed or disconnected from basis during this moment? Or events during this moment have not been registered?
In 1st queue it is necessary to install iron that events  are passed in perfect tune the client.
2. To be fastened that event is precisely received and processed anyway it will be impossible (the client can start to be closed during the moment when the server sends it to it - one of examples).
It is necessary to build logic so that event obtaining only helped, but was not mandatory for true operation of logic of the program.

13

Re: Periodically the output agent of event does not work

Fish. K.A. wrote:

hvlad,  corresponded FibPlus-> AnyDac-> FireDac and permanently there were these problems.
And at myself I cannot catch this problem.

And whence confidence, what the problem generally is?

14

Re: Periodically the output agent of event does not work

hvlad;
At start of the program I do check. I add a line in the table and I receive appropriate event. Here also it turns out that at me time, and then M without event obtaining can N open normally.
If a software opened normally and check on event derivings transited normally then in a triggered copy of a software of problems does not arise.

15

Re: Periodically the output agent of event does not work

YuRock wrote:

It is necessary to build logic so that event obtaining only helped, but was not mandatory for true operation of logic of the program.

Logic following. Is 1 and 2. 1 saves the certain information in basis, after commit 2 should receive this information.

16

Re: Periodically the output agent of event does not work

Fish. K.A.;
All that it is possible to tell at present - an error in 17th line, alas.
The significant information is not present. There is only a knock in a cellar.
It is necessary either play back, or to search for an error at itself.
PS That in the output agent of event?

17

Re: Periodically the output agent of event does not work

hvlad, . Not absolutely understood that is necessary?

18

Re: Periodically the output agent of event does not work

Fish. K.A. wrote:

hvlad, . Not absolutely understood that is necessary?

I meant - that is written in the output agent of event? Which for certain is in FDADEventAlerter.
Though here Delphi anybody also does not know - show, suddenly that we see.

19

Re: Periodically the output agent of event does not work

hvlad;
If you mean component event onAlert there generally all is simple:

//---
if CompareText (AEventName, ' EVENTTEST ') = 0 then
begin
Timer1.Enabled: = False;
end;

20

Re: Periodically the output agent of event does not work

Fish. K.A. wrote:

If a software opened normally and check on event derivings transited normally then in a triggered copy of a software of problems does not arise.

It is necessary to be convinced that registration of events always transits, and without errors. I do not know, how there in FDADEventAlerter, but most likely there there is something of type AutoRegister, and so I would disconnect it and caused registration manually.  ( results parameters and results of function of registration, in my ancient IBX it "looks" as "Tsib_event_block (isc_event_block)"). Source codes are for certain.

21

Re: Periodically the output agent of event does not work

YuRock;
The thought takes place to be. BUT! On my computer all works normally and such situation happens extremely rarely and consequently it is difficult to seize the moment for .

22

Re: Periodically the output agent of event does not work

Fish. K.A. wrote:

On my computer all works normally and such situation happens extremely rarely

Means  sometimes happens? smile
What's the problem? Write the test - a slice of your program - after check an output. And from other program launch this test of 100000 times. You can to ExitCode=1 that test to stop in case of 1st error.

23

Re: Periodically the output agent of event does not work

Fish. K.A.;
Timer1 It is somehow connected with events?

24

Re: Periodically the output agent of event does not work

hvlad;
It likely in the output agent of the timer makes the decision that  did not come also the program it is necessary to close.

25

Re: Periodically the output agent of event does not work

YuRock wrote:

In what a problem? Write the test - a slice of your program - after check an output. And from other program launch this test of 100000 times. You can to ExitCode=1 that test to stop in case of 1st error.

I did the simple test. Truth launched it manually. The problem jumped the same.

hvlad wrote:

Timer1 it is somehow connected with events?

procedure TDM.Timer1Timer (Sender: TObject);
Var
A: string;
AR: String;
LogFilePath: String;
begin
if FDADEventAlerter. Active then
A: = ' FDADEventAlerter. Active = TRUE'
else
A: = ' FDADEventAlerter. Active = FALSE ';
if FDADEventAlerter. Options. AutoRegister then
AR: = ' FDADEventAlerter. Options. AutoRegister = TRUE'
else
AR: = ' FDADEventAlerter. Options. AutoRegister = FALSE ';
ShowError (' the event handler is not included. It is necessary to restart the program! ' +CRLF +
A+CRLF +
AR+CRLF +
FDADEventAlerter. Names. Text);
LogFilePath: = ExtractFilePath (ParamStr (0)) + ' EventError.log ';
SaveToFile (LogFilePath, FormatDateTime (' dd-mm-yyyy hh:mm:ss - the event handler [' + WTCRMUSERNAME + '] - [' +WTCRMSTATIONNAME + '] ' is not included, Now));
EventAlertFunction;
{FDDB.Close;
FDDB.Open;
if FDADEventAlerter. Active then
FDADEventAlerter. Active: = False
else
FDADEventAlerter. Active: = True;
EventAlertFunction;}
end;
function TDM.EventAlertFunction: boolean;
var
tmp: String;
begin
if not DSet_UnitTest. Active then
DSet_UnitTest. Open;
UnitTestWriteTransaction.StartTransaction;
try
Timer1.Enabled: = True;
tmp: = ' DSet_UnitTest. Append ';
DSet_UnitTest. Append;
tmp: = ' DSet_UnitTest. Post ';
DSet_UnitTest. Post;
tmp: = ' UnitTestWrite. Commit ';
UnitTestWriteTransaction. Commit;
except
on E:Exception do
begin
ShowMessage (Format (' an adding Error [%s] ', [tmp]) +#10#13+E.Message);
UnitTestWriteTransaction. Rollback;
DSet_UnitTest. Cancel;
end;
end;
end;