<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><!-- InstanceBegin template="../../../Templates/DocTemp.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<!-- InstanceBeginEditable name="doctitle" -->
<title>OmniAccess API - Functions - OAEXTERNAL</title>
<!-- InstanceEndEditable --> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../../../docs.css" rel="stylesheet" type="text/css">
<script language="JavaScript1.2" src="../../../docs.js"></script>
<!-- InstanceBeginEditable name="head" --><!-- InstanceEndEditable -->
</head>

<body>
<table width="100%" class="lightblue" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><a href="http://www.omnidex.com"><img src="../../../images/flatlogo.gif" width="95" height="25" hspace="3" vspace="3" border="0"></a></td>
    <td><img src="../../../images/omnidex.gif" width="109" height="25" hspace="3" vspace="3"></td>
    <td align="right" valign="top"><p class="banner"><a href="../../../Contents.htm">Contents</a> 
        | <a href="../../../Quick%20Links.htm">Quick Links</a></p></td>
  </tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr> 
    <td width="175" class="bar"><p class="banner">&nbsp;</p></td>
    <td align="right" class="bar"> <!-- InstanceBeginEditable name="Section Title" -->
      <h1>OmniAccess API - Functions</h1>
      <!-- InstanceEndEditable --></td>
  </tr>
  <tr> 
    <td width="175" class="left1 lightblue"><img src="../../../images/blank.gif" width="10" height="20"> 
    </td>
    <td valign="top" class="left1 lightblue">&nbsp; </td>
  </tr>
  <tr> 
    <td width="175" valign="top" class="left"><!-- InstanceBeginEditable name="leftnav" --> 
      <p><a href="#syntax">Syntax</a></p>
      <p><a href="#options">Options</a></p>
      <p><a href="#example">Example</a></p>
      <p class="line">&nbsp; </p>
      <p><a href="../OmniAccess%20API.htm">OmniAccess API</a></p>
      <p><a href="../Programming%20Basics.htm">Programming Basics</a></p>
      <p><a href="../Managing%20Data.htm">Managing Data</a></p>
      <p><a href="../Functions.htm">Functions</a></p>
      <p>&nbsp;</p>
      <!-- InstanceEndEditable --></td>
    <td valign="top" class="content"> <!-- InstanceBeginEditable name="Content" --> 
      <h2>OAEXTERNAL</h2>
      <p>oaexternal allows external routines located on the server to be executed 
        from both server and client applications. It also permits Omnidex Client 
        applications to indirectly call such OmniAccess routines like oainsertindex, 
        that are not directly available to Omnidex Client applications.</p>
      <p>The external routines are usually written in a language like C and must 
        be located in a shared library (.dll on Windows and .sl or .so on Unix) 
        in order to be dynamically loaded.</p>
      <p>One purpose for using oaexternal might be to help decrease the costs 
        incurred by client/server applications. Every time a client application 
        makes a request to the server, the costs incurred for this request include 
        not only the server processing time, but also the io time required to 
        send the request and receive the results across the network. This cost 
        for a single request may not be significant, but can quickly add up for 
        multiple requests.</p>
      <p>In a select and fetch application, for example, it might be beneficial 
        to write an external routine that, after a select has been processed, 
        fetches the results and places them into a buffer to be returned to the 
        client application. This reduces the network traffic from multiple calls 
        to oafetch, to one call to oaexternal. The server processing time is unchanged, 
        but the io time is reduced significantly.</p>
      <p>This is a very simplified example but sufficiently demonstrates the effectiveness 
        of using oaexternal.</p>
      <p>Routines written for oaexternal can call other routines including OmniAccess 
        routines. The return value of the routines called by this routine, must 
        be defined as a 32-bit integer. In C, the routine&#8217;s return value 
        is defined as follows:</p>
      <p class="ex">int32 routine (void*input, int32 input_length, void*output, 
        int32*output_length)</p>
      <p>The external routines called through oaexternal must be able to create 
        an input buffer based on the value in input_length, and to reference that 
        input when executing. If they return data they should also be able to 
        allocate enough memory, as specified in output_length, to contain that 
        data. The routine can change the length of the output buffer as described 
        in &#8220;Dynamically specifying the output_length&#8221;.</p>
      <p class="line">&nbsp;</p>
      <h3><a name="outputlength"></a>Dynamically Specifying the output_length</h3>
      <p>The output_length must be declared to be greater than or equal to the 
        length of the data returned from the routine specified in the routine 
        parameter. Output_length must reflect enough memory to hold the data returned 
        to the external routine. If output_length is too small, the returned data 
        may overwrite other buffers in the routine. If output_length is too big, 
        it creates an unnecessary burden on the network. If the executed routine 
        without returning anything, output_length can contain a null.</p>
      <p>To dynamically specify the output_length of the information returned 
        to the local, or client, processor, reference output_length as a returned 
        value in the external routine named in the routine parameter. This can 
        help reduce network traffic if the length of the value returned is less 
        than the length originally passed for output_length. Dynamically specifying 
        output_length shrinks the returned output buffer and results in less network 
        traffic.</p>
      <p class="line">&nbsp;</p>
      <h3><a name="calls"></a>Resolving Calls to External Routines</h3>
      <p> When linking programs, the libraries must be referenced in the order 
        that they are accessed. For example, if a program calls oaexternal, to 
        call a routine that resides in a library called lda, which calls routines 
        in the locic and lora libraries. When linking the program, reference the 
        libraries in the order that they are referenced, as follows:</p>
      <p class="ex">ld myprog -L -loa -lda -locic -lora</p>
      <p>The order in which routines call other routines also affects how a dynamic 
        link path is specified on MPE. For example, if an application calls oaexternal 
        to call a routine that resides in MYXL.PUB.MYACCT, the external routine 
        must be linked, using the Link Editor, to the libraries it needs to resolve 
        in the order they are used. To call an external routine called &quot;updtidx&quot; 
        that resides in OBJ.MYACCT, use Link Editor like this:</p>
      <p class="ex">:RUN LINKEDIT.PUB.SYS</p>
      <p class="ex">HP Link Editor/iX (HP30315A.05.06) Copyright Hewlett-Packard 
        Co 1986</p>
      <p class="ex">LinkEd&gt; copyxl from=xloa.oa.disc;to=xlomnidx.pub.sys</p>
      <p class="ex">1 OBJECT FILE HAS BEEN COPIED.</p>
      <p class="ex">LinkEd&gt; addxl from=updtidx.obj.myacct;to=xlomnidx.pub.sys;module=updtidx</p>
      <p class="ex">1 OBJECT FILE HAS BEEN ADDED.</p>
      <p class="ex">LinkEd&gt; exit</p>
      <p>oaexternal does not support archived libraries. The oaexternal routine 
        must be in a shared library in order to be dynamically loaded.</p>
      <p>&nbsp;</p>
      <p class="line">&nbsp;</p>
      <h3><a name="syntax"></a>Syntax</h3>
      <P class="ex"> oaexternal (instance, options, status, node, library_name, 
        routine_name, <br>
        <img src="../../../images/blank.gif" width="30" height="10">input, input_length, 
        output, output_length)</P>
      <P class="indent"><strong>instance</strong> -- Identifies a unique connection 
        to a server environment catalog previously established by oaconnect. Instance 
        is a 32-bit signed integer passed by value.</P>
      <p class="indent"><strong>options</strong> -- Reserved for future use. Must 
        contain a null or a semicolon passed by reference.</p>
      <p class="indent"><strong>status</strong> -- Indicates the success or failure 
        of the oaexternal routine. A zero in status word 1 means a successful 
        call to oaexternal. The status structure is passed by reference and contains 
        fourteen 32-bit signed integers, followed by a 36 character buffer.</p>
      <p class="indent"><strong>node</strong> -- Is reserved when oaexternal is 
        used in a server-based application and must contain only a semicolon or 
        null terminator. However, when a client application calls oaexternal, 
        node must contain the server object name as declared in the Client DataSource 
        file (terminated by a semicolon or null). In both cases, oaexternal executes 
        the routine on the server.</p>
      <p class="indent"><strong>library</strong> -- Is a character value passed 
        by reference, not longer than 256 bytes including a semicolon or null 
        terminator. It specifies the name of the library that contains the specified 
        routine. (MPE/iX and UNIX only)</p>
      <p class="indent"><strong>routine</strong> -- Is a character value passed 
        by reference, not longer than 256 bytes including a semicolon or null 
        terminator. It specifies the requested routine.</p>
      <p class="indent"><strong>inputparms</strong> -- Is a character array passed 
        by reference. It cannot exceed the maximum length allowed by the server&#8217;s 
        operating system or Windows, whichever is less. It contains any input 
        parameters required by the specified routine. Separate multiple parameters 
        with commas and terminate the value with a semicolon or null character.</p>
      <p class="indent"><strong>inputparmslength</strong> -- Is a 32-bit integer 
        value, passed by value. It specifies the length in bytes of the input 
        parameter.</p>
      <p class="indent"><strong>outputparms</strong> -- Is a character array passed 
        by reference. It cannot exceed the maximum length allowed by the server&#8217;s 
        operating system or Windows, whichever is less. It contains any output 
        parameters required by the specified routine. Separate multiple parameters 
        with commas and terminate the value with a semicolon or null character.</p>
      <p class="indent"><span class="indent"><strong>outputparmslength</strong></span> 
        -- Is a 32-bit integer value, passed by value, that allocates memory in 
        bytes for the output parameter. You can dynamically change this value 
        based on what the external routine actually returns, as discussed in &#8220;Dynamically 
        specifying the output_length&#8221;.</p>
      <p>&nbsp;</p>
      <p class="line">&nbsp;</p>
      <h3><a name="options"></a>Options</h3>
      <p>There are currently no options available for oaexternal. Support was 
        added for future enhancements.</p>
      <p class="line">&nbsp;</p>
      <h3><a name="example"></a>Example</h3>
      <p>&nbsp;</p>
      <!-- InstanceEndEditable --><P align="right"><a href="#">Top</a> </P>
	  </td>
  </tr>
  <tr>
    <td width="175" class="bbar">
<p>&nbsp;</p></td>
    <td align="right" valign="middle" class="bbar"> <p class="banner">Omnidex 
        Version 4.1 Build 1 - E10.04 - Dynamic Information Systems Corporation 
        - Copyright &copy; 2004</p></td>
  </tr>
</table>
<div class="menu0" id="m1" onMouseOver="changeClass('menu1','m1'); changeVisibility('visible','s1');" onMouseOut="changeClass('menu0','m1'); changeVisibility('hidden','s1');"> 
  <a href="../../../index.htm">Home</a></div>      
<div class="menu0" id="m2" onMouseOver="changeClass('menu1','m2'); changeVisibility('visible','s2');" onMouseOut="changeClass('menu0','m2'); changeVisibility('hidden','s2');"> 
  <a href="../../../Omnidex%20Concepts/Omnidex%20Overview.htm">Omnidex</a></div>      
<div class="menu0" id="m3" onMouseOver="changeClass('menu1','m3'); changeVisibility('visible','s3');" onMouseOut="changeClass('menu0','m3'); changeVisibility('hidden','s3');"> 
  <a href="../../../Getting%20Started/Getting%20Started.htm">Getting Started </a></div>      
<div class="menu0" id="m4" onMouseOver="changeClass('menu1','m4'); changeVisibility('visible','s4');" onMouseOut="changeClass('menu0','m4'); changeVisibility('hidden','s4');"> 
  <a href="../../Development.htm">Development</a></div>      
<div class="menu0" id="m5" onMouseOver="changeClass('menu1','m5'); changeVisibility('visible','s5');" onMouseOut="changeClass('menu0','m5'); changeVisibility('hidden','s5');"> 
  <a href="../../../Utilities/Utilities.htm">Utilities</a></div>      
<div class="menu0" id="m6" onMouseOver="changeClass('menu1','m6'); changeVisibility('visible','s6');" onMouseOut="changeClass('menu0','m6'); changeVisibility('hidden','s6');"> 
  <a href="../../../Appendix/Appendix.htm">Appendix</a></div>
    <td>&nbsp;</td>
  </tr>
</table> 
<table id="s1" border="0" cellspacing="0" cellpadding="0" onMouseOver="changeClass('menu1','m1'); changeVisibility('visible','s1');" onMouseOut="changeClass('menu0','m1'); changeVisibility('hidden','s1');">
  <tr> 
    <td id="s11" class="menu1" onMouseOver="changeClass('menu0','s11');" onMouseOut="changeClass('menu1','s11');"><a href="../../../Whats%20New.htm">What's 
      New!</a></td>
  </tr>
  <tr> 
    <td id="s12" class="menu1" onMouseOver="changeClass('menu0','s12');" onMouseOut="changeClass('menu1','s12');"><a href="../../../Quick%20Links.htm">Quick 
      Links</a></td>
  </tr>
  <tr> 
    <td id="s13" class="menu1" onMouseOver="changeClass('menu0','s13');" onMouseOut="changeClass('menu1','s13');"><a href="../../../Contents.htm">Contents</a></td>
  </tr>
</table>
<table id="s2" border="0" cellspacing="0" cellpadding="0" onMouseOver="changeClass('menu1','m2'); changeVisibility('visible','s2');" onMouseOut="changeClass('menu0','m2'); changeVisibility('hidden','s2');">
  <tr> 
    <td id="s21" class="menu1" onMouseOver="changeClass('menu0','s21');" onMouseOut="changeClass('menu1','s21');"><a href="../../../Omnidex%20Concepts/Features/Features.htm">Features</a></td>
  </tr>
  <tr> 
    <td id="s22" class="menu1" onMouseOver="changeClass('menu0','s22');" onMouseOut="changeClass('menu1','s22');"><a href="../../../Omnidex%20Concepts/Indexing%20Strategies/Indexing%20Strategies.htm">Indexing 
      Strategies</a></td>
  </tr>
  <tr> 
    <td id="s23" class="menu1" onMouseOver="changeClass('menu0','s23');" onMouseOut="changeClass('menu1','s23');"><a href="../../../Omnidex%20Concepts/Indexing%20Options/Indexing%20Options.htm">Indexing 
      Options </a></td>
  </tr>
  <tr> 
    <td id="s24" class="menu1" onMouseOver="changeClass('menu0','s24');" onMouseOut="changeClass('menu1','s24');"><a href="../../../Omnidex%20Concepts/Index%20Maintenance/Index%20Maintenance.htm">Index 
      Maintenance </a></td>
  </tr>
  <tr> 
    <td id="s25" class="menu1" onMouseOver="changeClass('menu0','s25');" onMouseOut="changeClass('menu1','s25');"><a href="../../../Omnidex%20Concepts/Partitioning/Partitioning.htm">Optimization</a></td>
  </tr>
  <tr> 
    <td id="s26" class="menu1" onMouseOver="changeClass('menu0','s26');" onMouseOut="changeClass('menu1','s26');"><a href="../../../Omnidex%20Concepts/Index%20Maintenance/Index%20Maintenance.htm">Partitioning</a></td>
  </tr>
  <tr> 
    <td id="s27" class="menu1" onMouseOver="changeClass('menu0','s27');" onMouseOut="changeClass('menu1','s27');"><a href="../../../Omnidex%20Concepts/Text/Omnidex%20Text.htm">Omnidex Text</a></td>
  </tr>
</table>
<table id="s3" border="0" cellspacing="0" cellpadding="0" onMouseOver="changeClass('menu1','m3'); changeVisibility('visible','s3');" onMouseOut="changeClass('menu0','m3'); changeVisibility('hidden','s3');">
  <tr> 
    <td id="s31" class="menu1" onMouseOver="changeClass('menu0','s31');" onMouseOut="changeClass('menu1','s31');"><a href="../../../Getting%20Started/1%20-%20Installation%20and%20Setup.htm">Server 
      Setup Guides</a></td>
  </tr>
  <tr> 
    <td id="s32" class="menu1" onMouseOver="changeClass('menu0','s32');" onMouseOut="changeClass('menu1','s32');"><a href="../../../Getting%20Started/Omnidex%20Client/Windows%20Client.htm">Windows 
      Client</a></td>
  </tr>
  <tr> 
    <td id="s33" class="menu1" onMouseOver="changeClass('menu0','s33');" onMouseOut="changeClass('menu1','s33');"><a href="../../../Database%20Platforms/Supported%20Database%20Platforms.htm">Database 
      Platforms </a></td>
  </tr>
  <tr> 
    <td id="s34" class="menu1" onMouseOver="changeClass('menu0','s34');" onMouseOut="changeClass('menu1','s34');"><a href="../../../Environment%20Catalog/Environment%20Catalog.htm">Environment 
      Catalog</a> </td>
  </tr>
</table>
<table id="s4" border="0" cellspacing="0" cellpadding="0" onMouseOver="changeClass('menu1','m4'); changeVisibility('visible','s4');" onMouseOut="changeClass('menu0','m4'); changeVisibility('hidden','s4');">
  <tr> 
    <td id="s41" class="menu1" onMouseOver="changeClass('menu0','s41');" onMouseOut="changeClass('menu1','s41');"><a href="../../../SQL%20Reference/SQL%20Reference.htm">SQL 
      Reference</a> </td>
  </tr>
  <tr> 
    <td id="s42" class="menu1" onMouseOver="changeClass('menu0','s42');" onMouseOut="changeClass('menu1','s42');"><a href="../../ODBC/ODBC.htm">ODBC</a></td>
  </tr>
  <tr> 
    <td id="s43" class="menu1" onMouseOver="changeClass('menu0','s43');" onMouseOut="changeClass('menu1','s43');"><a href="../../JDBC/JDBC.htm">JDBC</a></td>
  </tr>
  <tr> 
    <td id="s44" class="menu1" onMouseOver="changeClass('menu0','s44');" onMouseOut="changeClass('menu1','s44');"><a href="../../OmniAccess%20API/OmniAccess%20API.htm">OmniAccess 
      API</a></td>
  </tr>
  <tr> 
    <td id="s45" class="menu1" onMouseOver="changeClass('menu0','s45');" onMouseOut="changeClass('menu1','s45');"><a href="../../Debugging/OMNIDEX_DEBUG.htm">Debugging</a></td>
  </tr>
</table>
<table id="s5" border="0" cellspacing="0" cellpadding="0" onMouseOver="changeClass('menu1','m5'); changeVisibility('visible','s5');" onMouseOut="changeClass('menu0','m5'); changeVisibility('hidden','s5');">
  <tr> 
    <td id="s51" class="menu1" onMouseOver="changeClass('menu0','s51');" onMouseOut="changeClass('menu1','s51');"><A href="../../../Utilities/DBINSTAL/DBINSTAL.htm">DBINSTAL</A></td>
  </tr>
  <tr> 
    <td id="s52" class="menu1" onMouseOver="changeClass('menu0','s52');" onMouseOut="changeClass('menu1','s52');"><a href="../../../Utilities/DSEDIT/DSEDIT.htm">DSEDIT</a></td>
  </tr>
  <tr> 
    <td id="s53" class="menu1" onMouseOver="changeClass('menu0','s53');" onMouseOut="changeClass('menu1','s53');"><a href="../../../Utilities/NSADMIN/NSADMIN.htm">NSADMIN</a></td>
  </tr>
  <tr> 
    <td id="s54" class="menu1" onMouseOver="changeClass('menu0','s54');" onMouseOut="changeClass('menu1','s54');"><a href="../../../Utilities/OACOMP/OACOMP.htm">OACOMP</a></td>
  </tr>
  <tr> 
    <td id="s55" class="menu1" onMouseOver="changeClass('menu0','s55');" onMouseOut="changeClass('menu1','s55');"><a href="../../../Utilities/OADECOMP/OADECOMP.htm">OADECOMP</a></td>
  </tr>
  <tr> 
    <td id="s56" class="menu1" onMouseOver="changeClass('menu0','s56');" onMouseOut="changeClass('menu1','s56');"><a href="../../../Utilities/OAHELPER/OAHELPER.htm">OAHELPER</a></td>
  </tr>
  <tr> 
    <td id="s57" class="menu1" onMouseOver="changeClass('menu0','s57');" onMouseOut="changeClass('menu1','s57');"><A href="../../../Utilities/ODXAIM/ODXAIM.htm">ODXAIM</A></td>
  </tr>
  <tr> 
    <td id="s58" class="menu1" onMouseOver="changeClass('menu0','s58');" onMouseOut="changeClass('menu1','s58');"><a href="../../../Utilities/ODXMAKE/ODXMAKE.htm">ODXMAKE</a></td>
  </tr>
  <tr> 
    <td id="s59" class="menu1" onMouseOver="changeClass('menu0','s59');" onMouseOut="changeClass('menu1','s59');"><a href="../../../Utilities/ODXNET/ODXNET.htm">ODXNET</a></td>
  </tr>
  <tr> 
    <td id="s510" class="menu1" onMouseOver="changeClass('menu0','s510');" onMouseOut="changeClass('menu1','s510');"><A href="../../../Utilities/ODXQUERY/ODXQUERY.htm">ODXQUERY</A></td>
  </tr>
  <tr> 
    <td id="s511" class="menu1" onMouseOver="changeClass('menu0','s511');" onMouseOut="changeClass('menu1','s511');"><a href="../../../Utilities/ODXSQL/ODXSQL.htm">ODXSQL</a></td>
  </tr>
  <tr> 
    <td id="s512" class="menu1" onMouseOver="changeClass('menu0','s512');" onMouseOut="changeClass('menu1','s512');"><a href="../../../Utilities/REGMAINT/REGMAINT.htm">REGMAINT</a></td>
  </tr>
  <tr> 
    <td id="s513" class="menu1" onMouseOver="changeClass('menu0','s513');" onMouseOut="changeClass('menu1','s513');"><A href="../../../Utilities/REGTEST/REGTEST.htm">REGTEST</A></td>
  </tr>
  <tr> 
    <td id="s514" class="menu1" onMouseOver="changeClass('menu0','s514');" onMouseOut="changeClass('menu1','s514');"><a href="../../../Utilities/SNOWGEN/SNOWGEN.htm">SNOWGEN</a></td>
  </tr>
  <tr> 
    <td id="s515" class="menu1" onMouseOver="changeClass('menu0','s515');" onMouseOut="changeClass('menu1','s515');"><a href="../../../Utilities/SYSINFO/SYSINFO.htm">SYSINFO</a></td>
  </tr>
  <tr> 
    <td id="s516" class="menu1" onMouseOver="changeClass('menu0','s516');" onMouseOut="changeClass('menu1','s516');"><a href="../../../Utilities/VERSIONS/VERSIONS.htm">VERSIONS</a></td>
  </tr>
  <tr> 
    <td id="s517" class="menu1" onMouseOver="changeClass('menu0','s517');" onMouseOut="changeClass('menu1','s517');"><a href="../../../Utilities/VIEWGEN/VIEWGEN.htm">VIEWGEN</a></td>
  </tr>
</table>
<table id="s6" border="0" cellspacing="0" cellpadding="0" onMouseOver="changeClass('menu1','m6'); changeVisibility('visible','s6');" onMouseOut="changeClass('menu0','m6'); changeVisibility('hidden','s6');">
  <tr> 
    <td id="s61" class="menu1" onMouseOver="changeClass('menu0','s61');" onMouseOut="changeClass('menu1','s61');"><a href="../../../Appendix/Cardinality.htm">Cardinality</a></td>
  </tr>
  <tr> 
    <td id="s62" class="menu1" onMouseOver="changeClass('menu0','s62');" onMouseOut="changeClass('menu1','s62');"><a href="../../../Appendix/Date%20Formats.htm">Date 
      Formats </a></td>
  </tr>
  <tr> 
    <td id="s63" class="menu1" onMouseOver="changeClass('menu0','s63');" onMouseOut="changeClass('menu1','s63');"><a href="../../../Appendix/Environment%20Variables.htm">Environment 
      Variables </a></td>
  </tr>
  <tr> 
    <td id="s64" class="menu1" onMouseOver="changeClass('menu0','s64');" onMouseOut="changeClass('menu1','s64');"><a href="../../../Appendix/File%20Name%20Handling.htm">File 
      Name Handling</a></td>
  </tr>
  <tr> 
    <td id="s65" class="menu1" onMouseOver="changeClass('menu0','s65');" onMouseOut="changeClass('menu1','s65');"><a href="../../../Appendix/Glossary%20A.htm">Glossary</a></td>
  </tr>
  <tr> 
    <td id="s66" class="menu1" onMouseOver="changeClass('menu0','s66');" onMouseOut="changeClass('menu1','s66');"><a href="../../../Appendix/Null.htm">Null</a></td>
  </tr>
  <tr> 
    <td id="s67" class="menu1" onMouseOver="changeClass('menu0','s67');" onMouseOut="changeClass('menu1','s67');"><a href="../../../Appendix/OAGLOBAL.htm">OAGLOBAL</a></td>
  </tr>
  <tr> 
    <td id="s68" class="menu1" onMouseOver="changeClass('menu0','s68');" onMouseOut="changeClass('menu1','s68');"><a href="../../../Appendix/Operating%20Limits.htm">Operating 
      Limits</a></td>
  </tr>
  <tr> 
    <td id="s69" class="menu1" onMouseOver="changeClass('menu0','s69');" onMouseOut="changeClass('menu1','s69');"><a href="../../../Appendix/Provided%20Managed%20Synonym%20Lists.htm">Managed 
      Synonym Lists</a></td>
  </tr>
  <tr> 
    <td id="s70" class="menu1" onMouseOver="changeClass('menu0','s70');" onMouseOut="changeClass('menu1','s70');"><a href="../../../Appendix/Reserved%20Words.htm">Reserved 
      Words</a></td>
  </tr>
  <tr> 
    <td id="s71" class="menu1" onMouseOver="changeClass('menu0','s71');" onMouseOut="changeClass('menu1','s71');"><a href="../../../Appendix/Supported%20Datatypes.htm">Supported 
      Data Types</a></td>
  </tr>
</table>
<p>&nbsp;</p>
</body>
<!-- InstanceEnd --></html>
