7

i have a question about Firebird Client and Server versions. I know that the Database-File have to match the Firebird Server due to ODS Changes. i.e. Firebird recommends to Backup/Restore the Database-File between Server-Version 2.5.1 and 2.5.2...

But what about Client connections to the Server?

Which combinations are ok?

Client 2.5.2 --> Server 2.5.2 (should be ok. ;) )
Client 2.5.2 --> Server 2.5.1
Client 2.5.1 --> Server 2.5.2
Client 2.5.x --> Server 1.5
Client 1.5.x --> Server 2.5.2

Are there any known problems? What is the recommendation from Firebird? Is it a good why to use always the new official Client? But due to we have a lot of Customer Installations i can not be sure that the server matches the client-version.

Hope someone can give me some advice.

Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197
Andreas
  • 421
  • 4
  • 14
  • There are some hints on this in the release notes for [Firebird 2.5.2](http://www.firebirdsql.org/file/documentation/release_notes/html/rlsnotes252.html). Maybe someone in the Firebird mailing lists can help further. – Guillem Vicens Oct 01 '13 at 07:05

2 Answers2

6

The Firebird protocol has a versioning mechanism: the client and server negotiate which version of the protocol to use. Current Firebird server versions support all previous protocol versions of Firebird (upto and including Interbase 6.0 from which it was forked). This means that any Firebird client version can talk to any Firebird version. However if you use an older client, you can't use features added in newer protocol versions, and you won't be able to use some of the performance improvements in the protocol.

So: yes you can use older versions, but it is advisable to use the latest because bugs will have been fixed and new features or performance improvements have been added.

My answer only applies to TCP/IP connections. For 'local' connections with XNET or named pipes I know there were breaking changes between 1.5 and 2.0, and you might even need a client version that matches the Firebird server version.

For Firebird 3, using older client versions does have some caveats: by default Firebird 3 requires wire protocol encryption and a new authentication mechanism, both of which were introduced in Firebird 3 with wire protocol version 13. To be able to connect with an older client version you will need to make the following changes to firebird.conf and restart Firebird:

  1. Relax the encryption requirement with setting WireCrypt = Enabled (default is Required)
  2. Enable the legacy authentication with setting AuthServer = Srp, Legacy_Auth (default is Srp)
Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197
0

https://i.stack.imgur.com/mxQ7S.png

  • You cant read v2.1v database on v2.5 server.
  • You cant read v1.5v database on v2.5 server.
  • You can read v2.0v database on v2.1 server.
  • You can read v1.5v database on v2.1 server.
nkyek
  • 1
  • 1
  • Where does this comes from ? (the picture) Please [edit] your question and add official source/citation which can talk for all versions (even next update) even without updating your answer :) – Elikill58 Oct 22 '21 at 07:43