old-www/LDP/LG/issue30/tag_dosemu-db.html

265 lines
10 KiB
HTML

<!--startcut ======================================================= -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<META NAME="generator" CONTENT="lgazmail v1.1pre8">
<TITLE>The Answer Guy 30: Clipper/xBase Capacity Problems
--- DOSemu as a Solution?</TITLE>
</head>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#A000A0"
ALINK="#FF0000">
<!--endcut ========================================================= -->
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <hr> <P>
<!-- =============================================================== -->
<H1 align="center"><A NAME="answer">
<img src="../gx/dennis/qbubble.gif" alt="" border="0" align="middle">
<a href="./index.html">The Answer Guy</a>
<img src="../gx/dennis/bbubble.gif" alt="" border="0" align="middle">
</A></H1> <BR>
<H4 align="center">By James T. Dennis,
<a href="mailto:linux-questions-only@ssc.com">linux-questions-only@ssc.com</a><BR>
Starshine Technical Services,
<A HREF="http://www.starshine.org/">http://www.starshine.org/</A> </H4>
<p><hr><p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">Clipper/xBase Capacity Problems
--- DOSemu as a Solution?</H3>
<H4 ALIGN="center">"I don't think so."</H4>
<p><strong>From Steven Jackson on 25 Jun 1998
<!-- begin body -->
<BR><BR>
Hi AnswerGuy,
<br><br>
I was reading an article on the web about diskless
workstations and redhat when I recognised your name, (I think you
helped me out with redhat a long time ago, thanks).
</p></strong>
<blockquote><img src="../gx/dennis/bbub.gif" height="28" width="50"
alt="(!)" border="0"
>You're welcome.
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
> I look after a small network of 4 pcs at a doctors surgery which
runs an accounting package and an appointments diary compiled under
Clipper. System Manager is run on the host pc which does all of the
local processing of these applications and the clients run as
virtual terminals.
</p></strong>
<blockquote><img src="../gx/dennis/bbub.gif" height="28" width="50"
alt="(!)" border="0"
> I don't know what you mean by "system manager" ---
from what I remember/know of dBase and Clipper these
were designed as single-user database systems. The
multi-user deployment of xBase applications normally
relies on "record locking" (similar to file locking
but allowing one to request exclusive access to a
<EM>portion</EM> of a file).
<br><br>
In this model the <TT>.DBF</TT> files are normally stored on a
network filesystem (Netware, LANtastic, and later
WfW among others). I don't know if Samba or the
Mars-NWE (Netware emulator) supports these forms of
record locking.
<br><br>
It is unclear from your description how your are
running this. You mention 4-PC's and Clipper (a
DOS based compiler/developement package for dBase
programming), which leads me to think of networked
DOS systems --- then you mention "virtual terminal"
which suggests that you're using a multi-user OS
(like Linux).
<br><br>
Are you running DR or CCI's "Concurrent DOS" (or
their later "M-DOS" or "Multi-user DOS") or something
like TSL's "PC-MOS" (another multi-user MS-DOS clone)?
Is "System Manager" yet another multi-user DOS?
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
>Over the past year or so the system has run slower gradually to the
point where it is getting annoying. I'd like to try running linux
on the fileserver and somehow run the dos based clipper programs
under dosemu. I think it would be wise to keep all the <TT>*.dbf</TT> files
on the server rather than sending them over the network. I got the idea
from the recent Linux Journal article about the Latvian Police dept.
</p></strong>
<blockquote><img src="../gx/dennis/bbub.gif" height="28" width="50"
alt="(!)" border="0"
><dl><dt>The first question is:
<dd>Why is the performance degenerating?
<br>&nbsp;<br>
<dt>The obvious suggestions are:
<dd>Have you been regularly "pack"-ing your
databases (purging deleted records and transactions)?
<br><br>Have you been maintaining your indices?
(Indexing is usually a vital key to db performance).
<br><br>Have you been defragmenting your filesystems
regularly?
<br><br>Has your system utilization increased in some marked
way (you've added *lots* more customers, etc)?
<br><br>Does your current design have any features or support
for migrating old and inactive records to "archival"
or "historical" databases (tables) so that the "active"
db routines are maintained at feasible sizes?
<br><br>Are there other activities on your LAN that might
be causing network congestion?
</dl>
Regarding the notion of running the existing program
under DOSemu . . .
<br><br>
I don't know if that will do any good at all. Since we
don't know what is causing the problem, it seems premature
to recommend solutions. My first thought is that moving
the processing from four systems onto a single one (even a
single system under a superior OS) is unlikely to improve
overall performance.
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
>Do you have any ideas about how I could embark upon this?
<BR><BR>
Thanks,
<br>Steve Jackson
</p></strong>
<blockquote><img src="../gx/dennis/bbub.gif" height="28" width="50"
alt="(!)" border="0"
>I have many ideas. The first, and most obvious, would be
to port the application to a client/server database design
--- one that's designed to be multi-user and scalable at the
outset. Another, less radical approach would be to take the
existing Clipper sources and port them to
<A HREF="http://www.wgs.com/fsad.html">Flagship</a> (an
xBase to C development package from WorkGroup Solutions).
<br><br>
... their web pages suggest that they will soon be shipping
betas of a "visual" frontend for xBase programming. That
should be interesting for all those "VB" and "VC++" developers
that are still clinging desperately to Microsoft's platform.
<br><br>
Or you might try X2C from:
<blockquote><code><A HREF="http://www.on-the-net.com/x2c/"
>http://www.on-the-net.com/x2c/</A>
</code></blockquote>
The questions I asked above may give you some ideas for
some "stopgap" measures (re-index, defrag, migrate inactive
records, etc). In the long run you'll want to do some
analysis to see if the current system can continue to meet
your needs.
<br><br>
If you do decide to go with a client server model you
have many choices that run under Linux. There are the free
and shareware packages like mSQL, Beagle and MySQL and
there are a number of commercial packages like InfoFlex
Adabas, and the JustLogic SQL. Rather than give URL's
to all of these I'll just point you at the definitive
guide to RDBMS packages for Linux --- maintained by
Christopher B. Browne at:
<blockquote><code> <A HREF="http://www.hex.net/~cbbrowne/"
>http://www.hex.net/~cbbrowne/</A>
<br><A HREF="http://www.ntlug.org/~cbbrowne/rdbms.html"
>http://www.ntlug.org/~cbbrowne/rdbms.html</A>
</code></blockquote>
... and another excellent list of Linux business applications
maintained by Linas Vepstas (<EM>NOT</EM> to be confused with
Linus the kernel guy) at:
<blockquote><code> <A HREF="http://www.linas.org/">http://www.linas.org</A>
<br><A HREF="http://www.linas.org/linux/db.html"
>http://www.linas.org/linux/db.html</A>
</code></blockquote>
I should mention that you aren't limited to just xBase or
SQL --- there are a number of alternative DBMS system that
are available to Linux and other Unix users and programmers
--- including a number of object-oriented and hybrid
systems. Allegedly there's even Linux support for the venerable
<A HREF="http://www.picksys.com/">Pick system</A>.
</blockquote>
<!-- end body -->
<!--================================================================-->
<P> <hr> <P>
<H5 align="center"><a href="http://www.linuxgazette.com/copying.html"
>Copyright &copy;</a> 1998, James T. Dennis <BR>
Published in <I>Linux Gazette</I> Issue 30 July 1998</H5>
<P> <hr> <P>
<!--================================================================-->
<table width="98%"><tr valign="center" align="center">
<td rowspan="3"><A HREF="./lg_answer30.html"><IMG
SRC="../gx/dennis/answernew.gif"
ALT="[ Answer Guy Index ]"></A></td>
<td><A HREF="tag_SCOkeys.html">SCOkeys</A></td>
<td><A HREF="tag_chroot.html">chroot</A></td>
<td><A HREF="tag_dosemu-db.html">dosemu-db</A></td>
<td><A HREF="tag_NTauth.html">NTauth</A></td>
<td><A HREF="tag_cdr.html">cdr</A></td>
<td><A HREF="tag_3270.html">3270</A></td>
<td><A HREF="linux-questions-only@ssc.comport.html">comport</A></td>
</tr><tr valign="center" align="center">
<td><A HREF="tag_lilostop.html">lilostop</A></td>
<td><A HREF="tag_emulate.html">emulate</A></td>
<td><A HREF="tag_ppadrivers.html">ppadrivers</A></td>
<td><A HREF="tag_database.html">database</A></td>
<td><A HREF="tag_vacation.html">vacation</A></td>
<td><A HREF="tag_nullmodem.html">nullmodem</A></td>
<td><A HREF="tag_lockups.html">lockups</A></td>
</tr><tr valign="center" align="center">
<td><A HREF="tag_gzipC.html">gzipC</A></td>
<td><A HREF="tag_newlook.html">newlook</A></td>
<td><A HREF="tag_c500.html">c500</A></td>
<td><A HREF="tag_solprint.html">solprint</A></td>
<td><A HREF="tag_vc1shell.html">vc1shell</A></td>
<td><A HREF="tag_memleak.html">memleak</A></td>
<td><A HREF="tag_tvcard.html">tvcard</A></td>
</tr></table>
<P> <hr> <P>
<!--================================================================-->
<A HREF="./index.html"><IMG SRC="../gx/indexnew.gif"
ALT="[ Table Of Contents ]"></A>
<A HREF="../index.html"><IMG SRC="../gx/homenew.gif"
ALT="[ Front Page ]"></A>
<A HREF="lg_bytes30.html"><IMG SRC="../gx/back2.gif"
ALT="[ Previous Section ]"></A>
<A HREF="./vrenios.html"><IMG SRC="../gx/fwd.gif"
ALT="[ Next Section ]"></A>
<!--startcut ======================================================= -->
</body>
</html>
<!--endcut ========================================================= -->