Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Interbase Server

31 views
Skip to first unread message

Margart Sarafin

unread,
Dec 27, 2023, 3:49:27 PM12/27/23
to
At the end of 2002, Borland released InterBase version 7, featuring support for SMP, enhanced support for monitoring and control of the server by administrators.[11] Borland released InterBase 7.1 in June 2003, 7.5 in December 2004, and 7.5.1 on June 1, 2005.


In September 2010, Embarcadero announced[14] the availability of InterBase XE. Its new features include a 64 bit client and server, improved security, improved scalability, support for dynamic SQL in stored procedures, and optimized performance of large objects with stream methods.



Interbase Server

Download https://inli-inde.blogspot.com/?u=2wXjI4






In Nov 2019, Embarcadero released InterBase 2020, followed by Update 1 release in May 2020. The InterBase 2020 release adds a number of new features, including tablespaces support for InterBase, allowing for better performance on servers with multiple data storage options.[15][16]


I have an XE8 project that (is supposed to) access an Interbase server running on the same machine. A few days ago it was working fine, but has developed the problem that if I attempted to set the Connected property of a TIBDatabase component to True, either in the IDE or in code at run-time, I get the error:


I eventually found the cause of this problem. I have an instance of the Firebird server installed on the problem machine and set up as a service, and at some point recently, its Startup Type had been changed from Disabled to Automatic and the fact that it was running was evidently causing the IB server to misbehave. Reverting it to `Disabled' caused the problem to vanish.


The second problem is that sometimes the interbase does not crash but everyone looses the connection and it is not possible to reconnect (by client, or ibexpert for example). In this case we have to restart the whole server.


These problems are occuring irregular. Most times it first starts with a hiccup. After a time (maybe two to ten hours later), the second problem arrives and we need to restart our database. If we are lucky we need to restart the server 2-3 times, on a bad day we need to restart the server more often as the second problem returns again and again (for example every 30 minutes).


-We minimized udf function use as low as possible, changed to newer udfs that support unicode etc.-functions that crash the server (afaik) are guarded that they dont get for example invalid datetimes-We update database server regularely to newest version-also updated client dlls-also updated connection components (IBDAC) + Delphi 11.1-wrote exception tracker in our client software (unfortunately there is only the connection lost error)-regularely check active transactions if something hangs/loops/snapshot creation


You do mention that you have the latest updates to InterBase 2020, but I do not see a build number in your message. You can get the most recent update build (14.4.0.804) of the server (if on Windows) from


Use the Options property of TIBServerProperties to return server configuration information, including the version of the database and server, license and license mask information, and InterBase configuration parameters. These options are discussed in the following sections.






The service_name is the entry contained in the services file pointing to the port number which the InterBase server should bind to. Below is an example of a part of the file from the \drivers\etc\services file.


The InterBase environment variable or the -i switch is used for local connections. These values determines which InterBase server a client on the same machine will connect to. The InterBase environment variable for a client and server's -i switch must match to have a successful connection. So if InterBase server is started with the setting:


The InterBase server will accept remote connections on the TCP/IP port number 3051 as the service ib__a is set to port 3051. The local connections will be accepted from client on the same machine who have their InterBase environment variable set to C:\Program Files\interbase.


Older versions of InterBase servers (pre-7.5) can still run using the default setting. These pre-7.5 InterBase servers will accept remote connections on TCP/IP port number 3050. The local connections will be accepted when the client uses a pre-7.5 interbase client library.


We recommend using the -i switch to set the local InterBase variable for the server. The order in which InterBase server looks for the InterBase environment variable is as follow; Command line argument '-i', InterBase environment variable setting, InterBase Registry key setting, Server's current directory.


If you connect via tcp/ip, it should not matter where your Interbase binaries are located, as long as the interbase service is running. You also need to check wich port it is running on. Normaly it's on port 3050.


So the last IDE to install Interbase can set protocol to "local" and leave server blank, but to work on any other version you need to use tcp/ip. That applies to the connections in the Data Explorer as well. I had to modify each connection.


I see you have multiple server instances in IBConsole. How did you set them up? One of my attempts to solve my problem, I downloaded the separate install of Interbase, and could create separate instances during the install, but I can't see any way to do that later.


OK, I should explain--that screenshot is misleading. I originally installed IB 2020 with Delphi 10.4 on my developer machine. Then, I started doing some testing with web modules on my Windows Server under IIS so installed IB 2020 on there. After I registered that and started using it there, when I try to open a database on my developer machine, it tells me the license is already in use. I need to uninstall it from my developer machine--the only one I can really use in that screenshot is the one at the IP address that points to my Windows server. I included the screenshot to show that it's possible to register multiple databases with different instance names and ports. Sorry for the confusion.


My question about server instances had to do with the install I did of the standalone DB. It asked if I wanted multiple instances, I said yes and was able to set up 2 different ones. I was hoping it was possible to do this at any time not just during install. My intent was to set up instances using different paths in hopes that it would fix the problem. Turns out I just needed to use TCPIP.


Steven van Els

SAvanEls cq-link.sr RE: Database Location Error shinpad (IS/IT--Management)(OP)23 Feb 05 13:02thanks for the reply. i've registered the local server, but where do i specify the path of the data???



thanks

RE: Database Location Error shinpad (IS/IT--Management)(OP)23 Feb 05 14:03i have registered the specific database to the local server, and while i'm logged in through IB Console it connects just fine. the remote clients can also connect (using an interbase client). however, the moment i log out through the IB Console, or reboot the server, the connection is lost again. i have the option for interbase to run as a service, but it doesn't seem to work!!



am i overlooking something here??



thanks for your help RE: Database Location Error svanels (MIS)23 Feb 05 14:10Steps:



1) Login to the Server Menu Bar Server --> Login



2) Now the option Register from Database is available, and you can specify the path, name and alias of your database.



4)In the left pane of IBConsole you should see the alias of your database.



5) Double clicking the alias will reveal tables, domains, generators, stored procedures, views etc. that are defined in your database



6)Drilling down on tables will show, data, dependencies, properties, permissions and metadata (the sql commands used to create the table) Steven van Els

SAvanEls cq-link.sr RE: Database Location Error shinpad (IS/IT--Management)(OP)23 Feb 05 18:55thanks again svanels for your help.



this works successfully, and while logged in to the database in this way i can connect with remote clients no problem. however, the moment i log out of the IB Console, or the service is restarted etc... my clients no longer connect. isn't interbase meant to run as a service, rather than an application??



RE: Database Location Error svanels (MIS)24 Feb 05 14:12IBConsole is a client application, the Interbase Server is running independent. When you log out with IBConsole the conection with the server is lost.

Restarting the service (Interbase Server) will terminate all active connections (client applications).



What front-end application you are using? Delphi, VB, C++?



Somewere in your application you need to supply the path to your database, in most cases in a connection string, this must be a physical drive, not a (shared) network drive.



With the BDE (borland) I use in the alias \\MyComputerName:C:\DATA\MyDatabase.gdb



If you are working with ODBC it should be similar

Steven van Els

SAvanEls cq-link.sr RE: Database Location Error shinpad (IS/IT--Management)(OP)24 Feb 05 16:14sorry, i wasn't very clear just then!

when i use IB Console on the server and log in, my client applications can then connect from remote pcs. when i log out from the IB Console on the server my client applications on remote pc's all stop connecting! the application is a custom built one using BDE (not written by me, so i have little knowledge of it).



reading the second part of your post may provide an answer. when installing the application on remote pc's i have specified the path to the data as s:\data where s is a shared network drive.



if i specify the path as you have suggested, should i (or can i) use the ip address???

also, does the data directory on the server need to be shared still??



thanks very much for your continued help



shinpad RE: Database Location Error svanels (MIS)24 Feb 05 17:35Oke BDE stands for Borland Database Engine, thus the custom client application is probably built with Delphi or Borland C++. It is comparable to Micro$oft ODBC, but much better.



Borland advises against installing the database on a shared network drive. The database should be installed on the same computer as the Interbase Server.



The IBConsole doesn't work with the BDE, it makes API calls directly to Interbase, thus closing IBConsole should not close the connection to your custom application, unless someone had the smart idea? to make an application that generates SQL commands, starts-up IBConsole, and use this as carrier for the data. Short of generator of sql-scripts.



If your application uses the BDE, open the BDE administrator, examine the aliases under the Database Tab, the Type should be INTRBASE (unless it using a 3rd party ODBC driver.

Under Server Name you should see the location (path) of the data. For remote conections you should see: \\MyComputerName:C:\DATA\MyDatabase.gdb, were MyComputerName is the name of the computer were the Interbase Server is installed.



Hope this gives a clue Steven van Els

SAvanEls cq-link.sr RE: Database Location Error shinpad (IS/IT--Management)(OP)24 Feb 05 20:33the database is installed on the same server as the interbase server. interbase is installed in the default location, and the data for the application is in a seperate directory on the same server. this data directory is shared.



the application is installed on remote pc's and the path to the data is the shared network drive on the server mentioned above. at the moment, and i believe incorrectly, the application on the client pc's only works when you go to the server and log in to IB Console and connect to the database!!!??



i'm sure that the application uses the BDE so i will check the BDE administrator as you suggested.



thanks RE: Database Location Error svanels (MIS)24 Feb 05 20:56The data directory does not need to be shared. All the requests of any client application are handled by the Interbase Server. In the alias or connection string you tell the server were to look for the data. It is different from access or paradox, were the application make direct calls to the database.

Compare it to eating, at home, you and your family go directly to the pot in the kitchen to pour out the food. The strongest one takes out the most, or sometimes 3 persons try to fill their plate at the same time. Imagine the mess they make if a fight starts (access, paradox, dbase and other desktop systems in a shared environment)



Case 2, you and your family go to an exclusive restaurant and you make your request to the waiter (Interbase Server) He looks if

1)you have permission user, password(dressed like a potential client) and

2) the rights (enough money to pay for the food).



If not not, you are not served (with data) Steven van Els

SAvanEls cq-link.sr googletag.cmd.push(function() googletag.display('div-gpt-ad-1406030581151-2'); ); Red Flag This PostPlease let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

CancelRed Flag SubmittedThank you for helping keep Tek-Tips Forums free from inappropriate posts.

The Tek-Tips staff will check this out and take appropriate action.

0aad45d008



0 new messages