edmiRemoteCloseSession
Â
EdmiError edmiRemoteCloseSession(SdaiServerContext serverContextId, SdaiInvocationId *edmiInvocationId);
Closes an open EDMserver session. This feature has been implemented to provide all EDMInterface functionality through the remote EDMInterface calls. This function is only applicable for the LOCAL_CONTEXT communication type. No data within a local EDMdatabase may be accessed until a new EDMserver session is opened by the sdaiRemoteOpensSession function. All open models and repositories will be automatically closed before the EDMserver session is closed to ensure data consistency.
Arguments
1 | Type | Name | Comment |
2 | SdaiServerContext | serverContextId | Context identification, from edmiDefineServerContext |
3 | SdaiInvocationId | edmiInvocationId | Currently not used. |
Return Value
Error rendering macro 'excerpt-include' : User 'null' does not have permission to view the page 'US:_r_EDMInterface'.
Â
Options
 Â
Â
Example
Â
 EdmiError rstat; SdaiSession sessionId; SdaiServerContext myLocalContext; SdaiRepository repId; SdaiModel modId; SdaiAggr aggrId; SdaiInteger nInst; SdaiString unavailMsg; /* Define Remote Server Context */ rstat = edmiDefineServerContext("MyLocalContext", NULL, NULL, NULL, "LOCAL_CONTEXT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &myLocalContext); /* Connect to a local database. This operation will connect the EDMthick client to the EDMserver. It will fail if the server has no more available named users. After the connect, the client may be identified on the server by edmiRemoteWhoIsOn() */ rstat = edmiRemoteConnect(myLocalContext, "Johnny", "Supervisor", "cf37ftr", &unavailMsg, NULL); /* Open a session in the local database */ rstat = edmiRemoteOpenSession(myLocalContext, &sessionId, NULL); /* Open the 'MyRepository' repository */ rstat = edmiRemoteOpenRepository(myLocalContext, "MyRepository", sdaiRW, NULL, 0, 0, &repId, NULL); /* Open the 'MyModel' model. This loads a copy of the model to the local file system. */ rstat = edmiRemoteOpenModel(myLocalContext, "MyRepository", "MyModel", sdaiRW, NULL, 0, 0, &modId, NULL); . . . /* The local copy of 'MyModel' is loaded when the model is opened. It remains unchanged until a transaction is started. Then the local copy will be syncronized with the EDMserver to include any changes made by other users in the meantime */ rstat = edmiStartTransaction(); /* Count the current number of instances of type MyEntity in MyModel */ rstat = edmiRemoteGetEntityExtentBN(myLocalContext, "MyRepository", "MyModel", "MyEntity", 0, &aggrId, &nInst, NULL, NULL); printf("\n%d instances of MyEntity in MyModel.", nInst); /* Terminate the transaction */ rstat = edmiAbortTransaction(); /* Close the model. Some operations may not be performed on the model by other users for as long as it is opened by this client. */ rstat = edmiRemoteCloseModel(myLocalContext, "MyRepository", "MyModel", NULL, 0, 0, NULL); . . . /* Close the repository. This would implicitely have closed the model as well. Some operations may not be performed on the repository by other users for as long as it is opened by this client. */ rstat = edmiRemoteCloseRepository(myLocalContext, "MyRepository", NULL, 0, 0, NULL); . . . /* Close the session. This will implicitely close all open models and repositories. */ rstat = edmiRemoteCloseSession(myLocalContext, NULL); /* Disconnect. The occupied named user on the EDMserver will be released. */ rstat = edmiRemoteDisconnect(myLocalContext, NULL);
Â
See also
Filter by label
There are no items with the selected labels at this time.
Â