[AccessD] Access and SQL Server

Jim Lawrence accessd at shaw.ca
Wed Mar 2 07:07:46 CST 2011


Hi Stuart:

A number of years ago the philosophy was to have "tight-binding" (or you
could call it bound or forced-synchronization or a dedicated connection)
with the BE data server.

Over a fixed LAN system, the older standard was possible but there were
problems. For example: Connect an Access FE to an MDB BE on a server and if
the server crashed or needed a remote reboot the MDB was very likely to
corrupted. (If some user was connected...Had this happen a number of years
ago while working on some government contracts and the client demanded some
thing better.)

When BE SQL servers were first introduced, again the philosophy was to have
dedicated connections to the server. The result was server farms as
thousands of fixed connections were required, depending on the number of
users. 

Now a days, a single server, with only 20 connections can support 50K hits
(different users?) a day. When a request arrives, it is queued and the
connection is immediately terminated. When the server can handle the
request, it does so and then queues up to open up a new connection, to the
remote station. If the remote station responds immediately the response is
given and any data is transferred otherwise the connection is immediately
terminated and the response queue cycles and tries again later. 

In most cases, the user is blissfully unaware of what is going on in the
background as to them it appears that they have dedicated, synchronized,
bound connection. 

When working with a program such as Access, the programmer can force a
dedicated connection by holding the connection open but unfortunately, under
load conditions, the BE server will run out of resources, refuse to respond
and there goes that tight binding. Added to that is the type of connection.
A dedicated LAN connection is very different from an internet connection as
the internet by its nature is flaky and unstable and again there goes that
tight binding.

So there is my interpretation and a lot more detailed than I wanted to get
in to.

Jim

          

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan
Sent: Tuesday, March 01, 2011 3:55 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Access and SQL Server

See inline.
On 1 Mar 2011 at 15:26, Jim Lawrence wrote:

> I would suggest that most MS SQL applications are web based and
> therefore are using asynchronous type connections... they connect,
> call to a SP and wait for the remote server to respond. When the data
> is ready for receipt your Ajax connections notes data and the
> population of the recordsets begin, then connection is terminated.
> 

That is a perfect description of a "synchronous" connection.  Send a request
and wait for a 
reply before doing anything else.

> I would suspect that MS SQL runs similar to Oracle. Oracle just has
> more of its internal features exposed so I doubt whether there is any
> difference. When accessing data on an Oracle server the data request
> is queued, when the system has time it checks the request and then
> retrieves any data. It then calls the remote site indicating that the
> data ready, when the remote site says 'yes', the data is transferred.
> 
> That does not describe a synchronous connection to me.
> 

No, that is asynchronous.  But that is only one of the ways Oracle works, it
also works 
asynchronously:


>From my reading of this link, synchronous connections are the default in
Oracle to. Note the 
use of the word forced in the last sentence.:

http://www.di.unipi.it/~ghelli/didattica/bdldoc/A97329_03/integrate.902/a952
65/wfapi11.htm

<quote>
A workflow process can be either synchronous or asynchronous. A synchronous
process is a 
process that can be executed without interruption from start to finish. The
Workflow Engine 
executes a process synchronously when the process includes activities that
can be 
completed immediately, such as function activities that are not deferred to
the background 
engine. The Workflow Engine does not return control to the calling
application that initiated 
the workflow until it completes the process. With a synchronous process, you
can 
immediately check for process results that were written to item attributes
or directly to the 
database. However, the user must wait for the process to complete.
...
An asynchronous process is a process that the Workflow Engine cannot
complete 
immediately because it contains activities that interrupt the flow. Examples
of 
activities that force an asynchronous process include deferred activities,
notifications 
with responses, blocking activities, and wait activities. 
</quote>

-- 
Stuart




More information about the AccessD mailing list