Autor Téma: D10.4.1 - IBX.IBServices.TIBBackupService - Cannot attach to services manager.  (Přečteno 347 krát)

Offline paja666

  • Nováček
  • *
  • Příspěvků: 42
  • Karma: 0
    • Verze Delphi: 10.1.2 Berlin + 10.4.1 Sydney
Snažím se migrovat z D10.1 na D10.4.1 a kromě spousty drobností jsem narazil na problém, přes který se nemůžu dostat. TIBBackupService mi stále hlásí  Cannot attach to services manager. TIBRestoreService se k servisnímu manažeru přihlásí (tedy Restore funguje) a Backup nikoliv.

Testuji D10.4.1 proti FB 2.5. Můžete mi prosím potvrdit problém, nebo poradit, čeho se chytit?

Díky, Pavel

edit: přidal jsem Testovací projektík, aby bylo zřejmé o co jde. Jen nastavit své parametry komponentám
« Poslední změna: 22-10-2020, 14:14:13 od paja666 »

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5531
  • Karma: 42
    • Verze Delphi: W10 + Delphi 10.4 professional
Ja používam TFDIBBackup a TFDIBRestore. FB ver 3.0.x
« Poslední změna: 22-10-2020, 14:16:27 od Stanislav Hruška »
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline paja666

  • Nováček
  • *
  • Příspěvků: 42
  • Karma: 0
    • Verze Delphi: 10.1.2 Berlin + 10.4.1 Sydney
Ja používam TFDIBBackup a TFDIBRestore. FB ver 3.0.x

Otestoval jsem a funguje, nicméně nerad bych přeprogramovával něco, co funguje od Delphi 7 :) Raději bych potvrzení problému a hlášení na QualityCentral

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5531
  • Karma: 42
    • Verze Delphi: W10 + Delphi 10.4 professional
Priamo poradiť neviem. Ale obe funkcie v pozadí volajú Service Manager. Viac neviem.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Online vandrovnik

  • Guru
  • *****
  • Příspěvků: 1123
  • Karma: 48
    • Verze Delphi: 10.3
Posílám výřez kódu, co mi fungoval v 10.3.3.

Kód: Delphi [Vybrat]
  1.    IbRestore:=TIBRestoreService.Create(nil);
  2.    try
  3.     IbRestore.Verbose:=false;
  4.     if (length(Config.Server)>0)and(Config.Server[length(Config.Server)]=':')
  5.      then IbRestore.ServerName:=copy(Config.Server, 1, length(Config.Server)-1)
  6.      else IbRestore.ServerName:=Config.Server;
  7.     if IbRestore.ServerName=''
  8.      then IbRestore.Protocol:=Local   {(TCP, SPX, NamedPipe, Local);}
  9.      else IbRestore.Protocol:=TCP;
  10.     IbRestore.LoginPrompt:=false;
  11.     IbRestore.Params.Clear;
  12.     IbRestore.Params.Add('user_name='+Config.LoginName);
  13.     IbRestore.Params.Add('password='+Config.Password);
  14.     IbRestore.Options:=[Replace, CreateNewDb];
  15.     IbRestore.PageBuffers:=10000;
  16.     IbRestore.PageSize:=16384; // 8192; // 4096;
  17.     IbRestore.DatabaseName.Text:=Config.Database;
  18.     IbRestore.BackupFile.Text:=Config.TempDir+'-';
  19.     IbRestore.Active:=true;
  20.     try
  21.      IbRestore.ServiceStart;
  22.      while (not IbRestore.Eof)and(IbRestore.IsServiceRunning) do begin
  23.       Protokoluj(IbRestore.GetNextLine);
  24.      end;
  25.     finally
  26.      IbRestore.Active:=false;
  27.     end;
  28.    finally
  29.     FreeAndNil(IbRestore);
  30.    end;

Offline paja666

  • Nováček
  • *
  • Příspěvků: 42
  • Karma: 0
    • Verze Delphi: 10.1.2 Berlin + 10.4.1 Sydney
Posílám výřez kódu, co mi fungoval v 10.3.3.

Kód: Delphi [Vybrat]
  1.    IbRestore:=TIBRestoreService.Create(nil);

Jak píšu, problém dělá TIBBackupService. TIBRestoreService mi také funguje správně.

Online vandrovnik

  • Guru
  • *****
  • Příspěvků: 1123
  • Karma: 48
    • Verze Delphi: 10.3
Excellent
Rated 1 time
Jak píšu, problém dělá TIBBackupService. TIBRestoreService mi také funguje správně.

Jsem slepej, pardon... Zkusím ten Tvůj ukázkový projekt na ntb v 10.4.1 a dám vědět.

Online vandrovnik

  • Guru
  • *****
  • Příspěvků: 1123
  • Karma: 48
    • Verze Delphi: 10.3
Jak píšu, problém dělá TIBBackupService. TIBRestoreService mi také funguje správně.

Tak se zdá, že dodrželi pravidlo, že co nová verze, to něco rozesr... v IBX komponentách (v 10.3.3 je např. nový problém s varchar parametry uložených procedur). Ať mi nikdo neříká, že dělají testy. Nebo že by to schválně dělali tak, že s Interbase problém není a s Firebirdem ano, bůh ví (Interbase nainstalovanou nemám).

V 10.3.3 ten Tvůj projekt normálně funguje.
V 10.4.1 jsem zkoušel klientskou knihovnu od verze 2.5.9 a od verze 3.0.7, vždy proti Firebird 2.5.něco a 3.0.něco - nefunguje to ani v jednom případě.

Uděláš prosím report a dáš link, ať můžu hlasovat?


Offline paja666

  • Nováček
  • *
  • Příspěvků: 42
  • Karma: 0
    • Verze Delphi: 10.1.2 Berlin + 10.4.1 Sydney

Offline František

  • Guru
  • *****
  • Příspěvků: 607
  • Karma: 6
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
ja ako SH ..
Citace
Ja používam TFDIBBackup a TFDIBRestore. FB ver 3.0.x
Kód: Delphi [Vybrat]
  1. procedure BackupDB(Sender: TObject);
  2. var
  3.   FDIBBackup1:TFDIBBackup;
  4.   FDPhysFBDriverLink1:TFDPhysFBDriverLink;
  5. begin
  6.   FDIBBackup1 := TFDIBBackup.create(nil);
  7.   FDPhysFBDriverLink1 := TFDPhysFBDriverLink.create(nil);
  8.    try
  9.     FDIBBackup1.OnProgress := FDIBBackup1Progress;
  10.     FDPhysFBDriverLink1.DriverID := 'FB';
  11.     FDIBBackup1.DriverLink := FDPhysFBDriverLink1;
  12.  
  13.     FDIBBackup1.Password := pass.text;
  14.     FDIBBackup1.UserName := login.text;
  15.     FDIBBackup1.Host := DBserver.text;
  16.     FDIBBackup1.Database :=  DBfile.text;
  17.     FDIBBackup1.Protocol := ipTCPIP;
  18.  
  19.     FDIBBackup1.Backup;
  20.  
  21.   finally
  22.     FDPhysFBDriverLink1.Free;
  23.     FDIBBackup1.Free;
  24.   end;
  25. end;

Offline paja666

  • Nováček
  • *
  • Příspěvků: 42
  • Karma: 0
    • Verze Delphi: 10.1.2 Berlin + 10.4.1 Sydney
FireDAC nemohu použít (máme licenci Delphi Professional - ty jsou pouze pro lokální/embedded užití), ale trochu jsem zmodifikoval zdrojové kódy (díky Vandrovník) a už to funguje. Snad to následující update opraví.