We use stateful DataSnap servers for some business logic tasks, as well as for providing clientdataset data.
If we need to update the server to change the business rule, we will copy the new version into a new empty folder and register it (depending on the Delphi version, simply by running or running the TRegSvr utility).
We can do this even while the old server instance is running. However, after registering the new version, all new client connections will still use the current (old) server instance of the server . All clients must first disconnect, then the new server will be used for the following clients.
Is there a way to redirect all new client connections to a new server right after registration?
(I know that new or changed method signatures will also require changing and restarting clients, but this question is about internal changes that do not affect the interface)
We use Socket connections, and all clients use the same server application (only one application window is open). Previously, we used a different configuration of the remote data module, which led to one application window for each client. Maybe this could be a solution? (because each new client will run the currently registered executable file)
Update: Does Delphi XE support "hot deployment" (upgraded servers)? We are using Delphi 2009 at the moment, but we will upgrade to XE if it offers an easier implementation of "hot deployment".
source share