EdmiError edmiRemoteShrinkDatabase(SdaiServerContext serverContextId, SdaiString location, SdaiString databaseName, SdaiString password, SdaiString repositoryName, SdaiString modelName, SdaiInteger minModelSize, SdaiInteger minLostPercentage, SdaiOptions options, SdaiInvocationId *edmiInvocationId);
Shrinks a remote EDMdatabase, which is to regain disk pages that are lost during database update transactions.
edmiRemoteShrinkDatabase is an extension edmiRemoteOpenDatabase. This means that the database must be closed when edmiRemoteShrinkDatabase is called. The database is opened when edmiRemoteShrinkDatabase is finished. Later there will be implemented an option saying that the database shall be left closed after edmiRemoteShrinkDatabase is called .
Arguments
Type | Name | Comment |
SdaiServerContext | serverContextId | Context identification, from edmiDefineServerContext |
SdaiString | location | The full path to the directory on the remote file system where the EDMdatabase is located. The directory delimiter is '/' on UNIX platforms and '\' on Windows platforms. |
SdaiString | databaseName | The name of the EDMdatabase to open. EDMdatabase names are case sensitive on UNIX platforms and case insensitive on Windows platforms. |
SdaiString | password | The password for the EDMdatabase. |
SdaiString | repositoryName | The name of the repository in the remote EDMdatabase that contains the model to shrink. Repository names are case sensitive. If not specified, all models are candidates for shrinking. |
SdaiString | modelName | The name of the model to shrink. Model names are case sensitive. If not specified, all models are candidates for shrinking. |
SdaiString | minModelSize | If specified, only models with size bigger than the specified are shrinked. If not specified, all models are candidates for shrinking. |
SdaiString | minReductionPercentage | if specified. only models where shrink reduction is greater than the specified percentage are shrinked. If not specified, all models are candidates for shrinking. |
SdaiString | options | The password for the EDMdatabase. The password is defined by the edmiCreateDatabase function. |
SdaiInvocationId* | edmiInvocationId | Not used |
Return Value
Options
Example
int i; EdmiError rstat; SdaiServerContext suContext; tEdmiWhoIsOnServer *pWhoIsOn; tEdmiConnection *pConnect; SdaiInteger nConnect; /* Define Remote Server Context for the superuser */ rstat = edmiDefineServerContext("SuperUserContext", "superuser", NULL, "xfx56kl9", "TCP", "9090", "MyServerHost", NULL, NULL, NULL, NULL, NULL, &suContext); /* Set the system unavailable */ rstat = edmiRemoteSetUnavailable(suContext, "System unavailable due to maintenance", NULL, NULL); rstat = edmiRemoteWhoIsOn(suContext, &nConnect, &pWhoIsOn, NULL); pConnect = pWhoIsOn->connections; /* Kill all connections except the EDMapplicationServer processes */ for (i=0;i<nConnect;i++) { SdaiString _hostName, _clientName; rstat = edmiRemoteGetClientNames(suContext, pConnect->clientId, &_hostName, &_clientName, NULL); if (!strstr(_clientName, "EDMapplicationServer-")) { rstat = edmiRemoteTerminateClient(suContext, NULL, pConnect->clientId, FORCE_TO_TERMINATE, NULL); } ++pConnect; } /* Close the database */ rstat = edmiRemoteCloseDatabase(suContext, "db546tyz", NULL); /* Perform system maintenance here */ /* Reopen the database */ rstat = edmiRemoteOpenDatabase(suContext, "x:/mypro/db", "mydb", "db546tyz"); /* Set the system available for connections from EDMclients */ rstat = edmiRemoteSetAvailable(suContext, NULL, NULL); . . .
See also
Filter by label
There are no items with the selected labels at this time.