Skip to content

Commit ad4c2ef

Browse files
fredericDelaportehazzik
authored andcommitted
NH-4026 - Upgrade Firebird driver and use server (#639)
1 parent 71d5e2e commit ad4c2ef

29 files changed

+152
-19192
lines changed

ShowBuildMenu.bat

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,12 @@ goto test-setup-generic
9191
set CONFIG_NAME=FireBird
9292
set PLATFORM=x86
9393
set LIB_FILES=lib\teamcity\firebird\*.dll
94-
set LIB_FILES2=lib\teamcity\firebird\x86\*
9594
goto test-setup-generic
9695

9796
:test-setup-firebirdx64
9897
set CONFIG_NAME=FireBird
9998
set PLATFORM=x64
10099
set LIB_FILES=lib\teamcity\firebird\*.dll
101-
set LIB_FILES2=lib\teamcity\firebird\x64\*
102100
goto test-setup-generic
103101

104102
:test-setup-sqlitex86
Binary file not shown.

lib/teamcity/firebird/NHibernate.Test.last-results.xml

Lines changed: 0 additions & 19131 deletions
This file was deleted.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
2+
Installation steps for Firebird for NH TeamCity:
3+
4+
1. Download Firebird (Firebird-3.0.2.32703_0_x64): https://www.firebirdsql.org/en/server-packages/;
5+
2. Run the installer AS ADMINISTRATOR... Use the default firebird password when prompted: masterkey.
6+
3. Leave other settings with their defaults.
7+
4. The setup should install Firebird on the machine;
8+
5. Go into Firebird folder (c:\program files\firebird\) and create a folder named Data;
9+
6. Go in Firebird installation directory and open databases.conf.
10+
7. Add in "Live Databases" section:
11+
nhibernate = D:\nhibernate.fdb
12+
Firebird is particularly sensitive to disk performances, and D: is supposed to be local to the
13+
Teamcity host, thus this choice. Content of this drive may be lost. But the TestDatabaseSetup will
14+
instruct Firebird to recreate the database. It is put on the root because Firebird will not create
15+
the folder, and the TestDatabaseSetup should not try to do that because it is used by other hosts
16+
which may not want to do anything on D:.
17+
8. Open firebird.conf.
18+
9. Ensure AuthClient, AuthServer and UserManager are set to Srp only:
19+
AuthServer = Srp
20+
AuthClient = Srp
21+
UserManager = Srp
22+
10. Ensure WireCrypt is set to Enabled.
23+
WireCrypt = Enabled
24+
11. Restart Firebird service.
25+
26+
For manual testing, take care of not creating it with inadequate acl on the file. This may happen
27+
if you use ISQL with a connection string causing it to create it in embedded mode, without actually
28+
using the server. Prefixing your path with "localhost:" should avoid that.
29+
30+
For tests performances, and since it is just an expandable test database, better disable forced writes.
31+
Since those tests drop/create schema constantly, they are quite heavy on writes and this single setting
32+
can have a six fold impact on their duration. For changing it, do:
33+
a. Stop Firebird service.
34+
b. From Firebird installation folder, run:
35+
gfix -w async nhibernate -user SYSDBA
36+
(Change "nhibernate" to your own alias or path as appropriate for your setup)
37+
c. Restart Firebird service.
38+
Note that the TestDatabaseSetup will drop and recreate the database when run, with forced writes disabled.

lib/teamcity/firebird/x64/fbembed.dll

-5.25 MB
Binary file not shown.
-145 KB
Binary file not shown.

lib/teamcity/firebird/x64/ib_util.dll

-8 KB
Binary file not shown.

lib/teamcity/firebird/x64/icudt30.dll

-1.49 MB
Binary file not shown.

lib/teamcity/firebird/x64/icuin30.dll

-562 KB
Binary file not shown.

lib/teamcity/firebird/x64/icuuc30.dll

-914 KB
Binary file not shown.

0 commit comments

Comments
 (0)