Symbian3/SDK/Source/GUID-27A393D5-C7DF-5541-855A-2CB0E4C46D6D.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Tue, 20 Jul 2010 12:00:49 +0100
changeset 13 48780e181b38
parent 7 51a74ef9ed63
permissions -rw-r--r--
Week 28 contribution of SDK documentation content. See release notes for details. Fixes bugs Bug 1897 and Bug 1522.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-27A393D5-C7DF-5541-855A-2CB0E4C46D6D" xml:lang="en"><title>The
DBMS server</title><shortdesc>Describes the features of the DBMS server.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>A session with the DBMS server provides the basis for sharing databases
with other threads; the DBMS server allows shared read/write access to databases
by multiple clients.</p>
<p>A session with the DBMS server is set up through an instance of the <codeph>RDbs</codeph> class.
The behaviour of this class is similar to other session classes, for example,
the file server session class, <codeph>RFs</codeph>.</p>
<p>A client opens a connection with the DBMS server using the <codeph>Connect()</codeph> member
function of <codeph>RDbs</codeph> and closes the connection by calling <codeph>Close()</codeph> on <codeph>RDbs</codeph>.</p>
<p>Some useful points to note:</p>
<ul>
<li id="GUID-2CBE14E2-B9B9-59C0-B4A2-ED0A4C4DCFF7"><p>a thread can open any
number of simultaneous connections to the DBMS server</p> </li>
<li id="GUID-B9F8CA69-3594-5692-9B39-19800D8E8AB8"><p>a session can be used
to open any number of databases.</p> </li>
<li id="GUID-29CF3CF7-0786-5454-B79D-BD4B451701F1"><p>the same database can
be opened many times within a single session; each such database object behaves
independently with regard to transactions. </p> </li>
<li id="GUID-9436A9F0-D007-5ED6-8E96-713F44EEF4A4"><p>a database cannot be
opened for client-side read access and client-server write access at the same
time; if write access is required by one client, then all clients must use
the DBMS server.</p> </li>
<li id="GUID-D52B72B2-699C-561A-B290-9FD1AEA0790F"><p>a session must be kept
open until all DBMS objects opened through it have been closed.</p> </li>
</ul>
<p>Shared databases support all DBMS API functionality except database creation
and changing the security key:</p>
<ul>
<li id="GUID-EAD7BB8E-5E08-50B7-A158-2125D32E1539"><p>databases should only
be shared once they have a fully constructed schema, otherwise clients may
attempt to access a half-created database.</p> </li>
<li id="GUID-B65A6BA3-55EA-555D-9FBF-F13D8B916694"><p>using the <codeph>ChangeSecurity()</codeph> member
function of <codeph>RDbDatabase</codeph> to change the security key for a
secure database makes no sense if the database is currently shared.</p> </li>
</ul>
<p>The client server interface offers utility functions which allow the client
to check the number of allocated DBMS objects.</p>
<p>The interface also offers heap debugging support for the server's heap.</p>
</conbody></concept>