Filename:   BTRUNIX.TXT
Product:    NetWare Btrieve v6.0 Requester for UnixWare
Date:	    June 1993
Forum:	    NetWire

   This Readme document pertains to the NetWare Btrieve v6.0 Requester
   for UnixWare, which is a component of the NetWare Btrieve v6.1
   Upgrade.  The Btrieve Requester for UnixWare provides UnixWare
   clients with access to Btrieve data residing on a NetWare Btrieve
   server.  This document describes the Btrieve Requester components
   and the NetWare and UnixWare environments.


================================================================================
Disclaimer
==========

   Novell, Inc. makes no representations or warranties with respect to any
   NetWare software, and specifically disclaims any express or implied
   warranties of merchantability, title, or fitness for a particular
   purpose.

   Distribution of any NetWare software is forbidden without the express
   written consent of Novell, Inc.  Further, Novell reserves the right to
   discontinue distribution of any NetWare software.

   Novell is not responsible for lost profits or revenue, loss of use of
   the software, loss of data, costs of re-creating lost data, the cost of
   any substitute equipment or program, or claims by any party other than
   you.  Novell strongly recommends a backup be made before any software
   is installed.  Technical support for this software may be provided at
   the discretion of Novell.


================================================================================
Contents
========

   Product Overview
      C Interface Object File
      Btrieve Interface Library
      Communications Interface Library
   Requester Requirements
   Using the Requester
      Archive and Shared-Object Libraries
      Requester Linking
      Requester Configuration Options
      Requester Connection and Termination
      File Access
      Btrieve Operations
   Associated Documents
   Customer Support


================================================================================
Product Overview
================

   The NetWare Btrieve Requester for UnixWare allows a Btrieve client
   application in a UnixWare environment to access Btrieve data on a
   NetWare Btrieve server.  The Btrieve Requester uses the SPX Transport
   Layer Interface (TLI) and can establish or disconnect a connection
   with the Btrieve communications program BSPXCOM.  BSPXCOM handles
   incoming requests to the Btrieve NLM from a remote source.

   The Btrieve Requester for UnixWare consists of a C interface object
   file, a set of archive libraries, and a set of shared-object libraries.
   Each set includes a library for the Btrieve Interface and a library
   for the Communications Interface.

   The following figure illustrates how UnixWare clients can access
   Btrieve data on a NetWare Btrieve server.


					  +-----------------+
					  |   Application   |
					  +-----------------+
						|     ^
						v     |
				  +----------------------------------+
       +-----------+		  |	    C Interface/API	     |
       |  BSPXCOM  |   <---+	  |	     (UNXCBTRV.O)	     |
       +-----------+	   |	  +----------------------------------+
	  |	^	   |			|     ^
	  v	|	   |			v     |
       +-----------+	   |	  +----------------------------------+
       |  Btrieve  |	   |	  |	Btrieve Interface Library    |
       |    NLM    |	   |	  |	(LIBBTRV.A or LIBBTRV.SO)    |
       +-----------+	   |	  +----------------------------------+
	  |	^	   |			|     ^
	  v	|	   |			v     |
       +-----------+	   |	  +----------------------------------+
       |  NetWare  |	   |	  | Communications Interface Library |
       +-----------+	   |	  |	(LIBCOMM.A or LIBCOMM.SO)    |
			   |	  +----------------------------------+
			   |			|     ^
       NetWare Server	   |			v     |
			   |	  +----------------------------------+
			   |	  |	   Transport Library	     |
			   |	  |	    Interface (TLI)	     |
			   |	  +----------------------------------+
			   |			|     ^
			   |			v     |
			   |		  +-----------------+
			   +--->	  |	  SPX	    |
					  +-----------------+

					    UnixWare Client
				      Application Server (AS) or
					 Personal Edition (PE)


   The following sections describe the Btrieve Requester for UnixWare
   components.


C Interface Object File
-----------------------

   The C interface object file (UNXCBTRV.O) links a C application
   and maps a C interface to the Btrieve Requester interface.


Btrieve Interface Library
-------------------------

   The Btrieve Interface Library (LIBBTRV.A or LIBBTRV.SO) processes
   Btrieve requests, sending requests to and receiving responses from
   the Communications Interface Library.

   -  LIBBTRV.A    Archive Btrieve Interface Library

   -  LIBBTRV.SO   Shared-object Btrieve Interface Library


Communications Interface Library
--------------------------------

   The Communications Interface Library (LIBCOMM.A or LIBCOMM.SO) routes
   Btrieve requests to the specified server where the Btrieve NLM
   is located.	It also receives responses from the NetWare server
   and returns them to the Btrieve Interface Library.

   -  LIBCOMM.A    Archive Communications Interface Library

   -  LIBCOMM.SO   Shared-object Communications Interface Library


================================================================================
Requester Requirements
======================

   The NetWare Btrieve Requester for UnixWare requires that the following
   products be used in conjunction with it to enable UnixWare client
   applications to access Btrieve data on a NetWare server.

	 NetWare Products		       UnixWare Products
      ----------------------	     ------------------------------------

      NetWare v3.11 or v4.0	     UnixWare Application Server (AS) or
				       UnixWare Personal Edition (PE)

      NetWare Btrieve		     UnixWare Libraries:
	v5.15, v6.0, or v6.1	       LIBNWAPI.SO  Shared-object NetWare
						    Unix Client (NUC) API
						    Library

				       LIBNSL.SO    Shared-object Network
						    Service Library

				       LIBSOCKET.SO Shared-object Socket
						    Interface Library

				       LIBDL.SO     Shared-object Dynamic
						    Link Library


================================================================================
Using the Requester
===================

   The NetWare Btrieve v6.0 Requester for UnixWare is compatible with
   NetWare Btrieve v5.15, v6.0, and v6.1.  In the case of NetWare
   Btrieve v6.1, however, the Btrieve v6.0 Requester for UnixWare
   does not provide full support for Btrieve v6.1 features.

	       Btrieve v6.1 Features		     Btrieve v6.1 Features
		     Supported				 Not Supported
       --------------------------------------	-------------------------------

       Index Balancing				Multiple Alternate Collating
       Find Percentage Operation		  Sequences (ACSs)
       Get By Percentage Operation		No Currency Change
       STS Data Type				Get Direct/Chunk Operation
       Variable-tail Allocation Tables (VATs)	Update Chunk Operation
       Locale-specific Alternate Collating
	 Sequence


   This section covers the following topics:

   - when to use archive and shared-object libraries

   - how to link the Btrieve Requester

   - how to configure the Btrieve Requester

   - how to establish Btrieve Requester connections

   - how to access files using the Btrieve Requester

   - which Btrieve operations are affected by the Btrieve Requester


Archive and Shared-Object Libraries
-----------------------------------

   You can use either the archive library set or the shared-object
   library set.

   - Use the archive library set (LIBBTRV.A and LIBCOMM.A) if you want
     to link the libraries with your program at link time.

   - Use the shared-object library set (LIBBTRV.SO and LIBCOMM.SO) if
     you want the libraries to be dynamically linked with your program
     at execution time.


Requester Linking
-----------------

   To use the Btrieve Requester for UnixWare, complete the follwing steps:

   1. At the linker command line, link the UNXCBTRV.O file with your
      program.

   2. Link your program with the following libraries (in the order given):

      LIBBTRV.A or LIBBTRV.SO
      LIBCOMM.A or LIBCOMM.SO
      LIBNWAPI.SO
      LIBNSL.SO
      LIBSOCKET.SO
      LIBDL.SO

   The following example illustrates how to link the Btrieve Requester
   for UnixWare:

      cc -c btrget.c
      cc -o btrget -L/home/mydir/univel/breq -L/home/mydir/univel/comm
	 unxcbtrv.o btrget.o -lbtrv -lcomm -lnwapi -lnsl -lsocket -ldl

      where:

      -L/home/mydir/univel/breq    Indicates the location of libbtrv.a.

      -L/home/mydir/univel/comm    Indicates the location of libcomm.a.

      btrget.c			   Specifies your program file.

      btrget.o			   Specifies the object file for btrget.c.


   NOTE: You can place UNXCBTRV.O in your working directory.  However,
	 if you want to place UNXCBTRV.O in another directory, specify
	 the file's location.

   For shared-object libraries ending with the .SO extension, you need to
   set the environment variables under the Bourne shell as follows:

     LD_LIBRARY_PATH=/home/mydir/univel/breq:/home/mydir/univel/comm export
		     LD_LIBRARY_PATH


Requester Configuration Options
-------------------------------

   You do not need to set any configuration options to specify the size
   of the data message buffers.  The Btrieve Requester for UnixWare
   dynamically expands the data message buffer to pass records between
   Btrieve and the application.  The Btrieve Requester for UnixWare
   also dynamically expands the Server Router Table that is used for
   routing the Btrieve requests to the specified server.


Requester Connection and Termination
------------------------------------

   A UnixWare client can connect to a maximum of 50 servers.  The Btrieve
   Requester for UnixWare automatically terminates all the connections
   that are left open when an application exits.  However, the files
   that are left open when an application exits remain open until a
   Btrieve Stop operation is issued.


File Access
-----------

   There are no drive mappings in UnixWare.  You must log in to the
   server and initiate authentication with the server in order to
   access files or directories on it.  You can use the NetWare Access
   Utility (NAU) to log in to the server.

   You cannot use relative paths or simple filenames.  You must use the
   full pathname because of the limitation imposed by the NetWare C
   Interface.


Btrieve Operations
------------------

   The Btrieve Requester for UnixWare affects the following Btrieve
   operations:

    - Get Directory: This operation can return only the current
      directory.  It ignores the logical disk drive specified in the key
      number parameter.

    - Set Directory: For this operation, you must specify the path
      according to the UnixWare pathname specification.


================================================================================
Associated Documents
====================

   For detailed information on NetWare Btrieve, refer to the "Btrieve
   Installation and Operation" manual that was included in the
   documentation set for the NetWare operating system you are
   currently using.

   If you have purchased a Btrieve Developer's Kit or a NetWare Btrieve
   Developer's Kit Supplement, refer to the "Btrieve Programmer's
   Manual" that was included in the kit for information about the
   Btrieve operations.


================================================================================
Customer Support
================

   For information about UnixWare-specific problems when using the NetWare
   Btrieve Requester for UnixWare, contact Univel Developer Support as
   follows:

   Fax number: (801) 568-8699	       Email: devsup@univel.com

**End of BTRUNIX.TXT**
