hi all
Дано:
1) три инстанса ФБ-3, CS (PORT=3329), SC (PORT=3330) и SS (PORT=3333).
2) батник, который создаёт три базы в каждом инстансе (в предположении, что переменные ISC_USER & ISC_PASSWORD - заданы в environment-списке), выдаёт для каждой из них на гора результат show database, после чего делает переконнект и запрашивает current_transaction:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
@echo off
@rem File: c2252.2.bat
set fbparent=C:\1INSTALL\FIREBIRD
::set isc_user=sysdba
::set isc_password=masterke
::--------------------------- test SuperClassic ----------------------
set fbarch=fb30Cs
set fbp=3329
set fdb=c2252_%fbarch%.fdb
set fbc=%fbparent%\%fbarch%
del %fdb% 2>nul
echo.
echo Test CLASSIC:
echo.
echo create database 'localhost/%fbp%:%~dp0%fdb%'; show database; commit; connect 'localhost/%fbp%:%~dp0%fdb%'; select current_transaction from rdb$database;|%fbparent%\%fbarch%\isql -q
del %fdb% 2>nul
::--------------------------- test SuperClassic ----------------------
set fbarch=fb30sC
set fbp=3330
set fdb=c2252_%fbarch%.fdb
set fbc=%fbparent%\%fbarch%
echo.
echo Test SuperClassic:
echo.
del %fdb% 2>nul
echo create database 'localhost/%fbp%:%~dp0%fdb%'; show database; commit; connect 'localhost/%fbp%:%~dp0%fdb%'; select current_transaction from rdb$database;|%fbparent%\%fbarch%\isql -q
del %fdb% 2>nul
::--------------------------- test SuperServer -----------------------
set fbarch=fb30sS
set fbp=3333
set fdb=c2252_%fbarch%.fdb
set fbc=%fbparent%\%fbarch%
echo.
echo Test SuperServer:
echo.
del %fdb% 2>nul
echo create database 'localhost/%fbp%:%~dp0%fdb%'; show database; commit; connect 'localhost/%fbp%:%~dp0%fdb%'; select current_transaction from rdb$database;|%fbparent%\%fbarch%\isql -q
del %fdb% 2>nul
Далее делаю рестарт всех трёх служб ФБ (CS/SC/SS).
Затем запускаю батник два раза (без рестарта ФБ между ними).
Вот лог его работы после первого запуска:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
Test CLASSIC:
Database: localhost/3329:C:\FBTESTING\qa\fbt-repo\tmp\c2252_fb30Cs.fdb
Owner: SYSDBA
PAGE_SIZE 4096
Number of DB pages allocated = 228
Sweep interval = 20000
Forced Writes are ON
Transaction - oldest = 1
Transaction - oldest active = 2
Transaction - oldest snapshot = 2
Transaction - Next = 5
ODS = 12.0
Default Character set: NONE
CURRENT_TRANSACTION
===================
7
Test SuperClassic:
Database: localhost/3330:C:\FBTESTING\qa\fbt-repo\tmp\c2252_fb30sC.fdb
Owner: SYSDBA
PAGE_SIZE 4096
Number of DB pages allocated = 228
Sweep interval = 20000
Forced Writes are ON
Transaction - oldest = 1
Transaction - oldest active = 2
Transaction - oldest snapshot = 2
Transaction - Next = 5
ODS = 12.0
Default Character set: NONE
CURRENT_TRANSACTION
===================
7
Test SuperServer:
Database: localhost/3333:C:\FBTESTING\qa\fbt-repo\tmp\c2252_fb30sS.fdb
Owner: SYSDBA
PAGE_SIZE 4096
Number of DB pages allocated = 228
Sweep interval = 20000
Forced Writes are ON
Transaction - oldest = 1
Transaction - oldest active = 2
Transaction - oldest snapshot = 2
Transaction - Next = 5
ODS = 12.0
Default Character set: NONE
CURRENT_TRANSACTION
===================
7
А вот - после второго:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
Test CLASSIC:
Database: localhost/3329:C:\FBTESTING\qa\fbt-repo\tmp\c2252_fb30Cs.fdb
Owner: SYSDBA
PAGE_SIZE 4096
Number of DB pages allocated = 228
Sweep interval = 20000
Forced Writes are ON
Transaction - oldest = 1
Transaction - oldest active = 2
Transaction - oldest snapshot = 2
Transaction - Next = 5
ODS = 12.0
Default Character set: NONE
CURRENT_TRANSACTION
===================
7
Test SuperClassic:
Database: localhost/3330:C:\FBTESTING\qa\fbt-repo\tmp\c2252_fb30sC.fdb
Owner: SYSDBA
PAGE_SIZE 4096
Number of DB pages allocated = 228
Sweep interval = 20000
Forced Writes are ON
Transaction - oldest = 1
Transaction - oldest active = 2
Transaction - oldest snapshot = 2
Transaction - Next = 5
ODS = 12.0
Default Character set: NONE
CURRENT_TRANSACTION
===================
6
Test SuperServer:
Database: localhost/3333:C:\FBTESTING\qa\fbt-repo\tmp\c2252_fb30sS.fdb
Owner: SYSDBA
PAGE_SIZE 4096
Number of DB pages allocated = 228
Sweep interval = 20000
Forced Writes are ON
Transaction - oldest = 1
Transaction - oldest active = 2
Transaction - oldest snapshot = 2
Transaction - Next = 5
ODS = 12.0
Default Character set: NONE
CURRENT_TRANSACTION
===================
6
Чем объяснить, что значение current_transaction для SC & SC стало меньше на 1 (и так будет во всех последующих запусках батника без рестарта ФБ) ?
(багой сиё считать вряд ли можно, спрашиваю просто из любопытства)