Recital

Login Register

This article talks about the log files available in Recital products and how to enable logging when required.

Overview

When discussing a problem with the Recital Support Team, one of the most common requests is that you enable logging and send them the log files produced. Log files along with error files are designed to provide detailed information about Recital processes and the prevailing environment and can be a fast-track to resolving a problem.

Log Files

There are three main types of log file:

  1. System Log
  2. Client/Server Communication Logs
  3. Custom Logs

System Log

The System log is a system-wide  all product log.  It tracks all login and logout operations from either Recital or the Recital Server. Logout details include the exit code: 0 for an error-free, 'normal' exit and the error number and message when an error has occurred. It also shows the licenses that have been loaded and any license error codes and messages. The system log filename is recital.log.
 

Client/Server Communication Logs

The Client/Server communication logs track the requests and responses between the Recital Server and its clients. The log files are as follows:


Filename Type Description

dbserver.log

System-wide

The Recital Server startup log. This logs any problems with the Recital Server startup.

port.log

System-wide

The port listener log. The port listener (or portserver) listens on port 8001 for client connection requests and spawns the appropriate server process.

net.log

Connection

The netserver log. The netserver is the Recital Server database and 4GL engine.

rsi.log

Connection

The Recital Server Interface (RSI) Gateway log. This logs communication with the Database Gateways to SQL databases.

rec.log

Connection

The Recital Database Gateway log. The Recital Database Gateway (or recserver) is the SQL database engine for Recital Gateway data access.

mys.log

Connection

The MySQL Database Gateway log.

ora.log

Connection

The Oracle Database Gateway log.

inf.log

Connection

The Informix Database Gateway log.

ing.log

Connection

The Ingres Database Gateway log.

pos.log

Connection

The PostgreSQL Database Gateway log.

jdb.log

Connection

The JDBC Driver Database Gateway log.


Custom Logs

The Recital/4GL USERLOG() function can be used to log information to a user-specific log file for debugging or audit trail purposes. For full information on this function, please see the USERLOG() documentation.

Enabling Log Files

For instructions on enabling log files for individual products, please follow these links:

Enabling Log Files: Recital Server for Windows

To enable the system log file for the Recital Universal Application Server for Windows, include the following command in the UAS\config.db file:

set syslogging on

The Recital Server Manager System Logging tab allows for the viewing and resetting of the System log.

Section

Item

Description

System Logging

DateTime

Date and time stamp of the action.

Name

Login name used by connection

Action

Action logged: Login, Logoff, Errot

Details

Details of action

Buttons

Purge

Allows the log file to be reset

Refresh

Refreshes the display

To set up Client/Server logging, use the Recital Server Manager Settings tab to update the server's Registry entries:

The following Log file settings can be configured:

Item

Description

Log files Directory Path

Enter the directory in which log files will be created. The default is the UAS\log directory.

Enabled

Check to enable log file creation.

Versions

Check to enable log file versioning.

Listener

Click to view the current port listener log file

Server

Click to view the current netserver log file

Purge

Click to purge all log files

Enabling Log Files: Recital Server for Linux

To enable the system log file for the Recital Server for Linux, include the following command in the conf/config.db file:

set syslogging on

To set up Client/Server logging, the Recital Server can be started with the 'logging' parameter, in which case, all relevant logging will take place.

# service startup logging<

Alternatively, one or more of the following environment variables can be added to the dbserver.conf file or set at the Operating System prompt.  The Recital Server must be restarted before environment variable changes will be recognized.  Each environment variable should be set to the name of a log file.

Environment Variable

Logs Activity of...

UASLOG_PORT

Port Server (db_rsiserver)

UASLOG_NET

(Net) Server (db_netserver)

UASLOG_ORA

Oracle Server (db_oraserver)

UASLOG_INF

Informix Server (db_infserver)

UASLOG_ING

Ingres Server (db_ingserver)

UASLOG_JDB

JDBC Server (db_jdbserver)

UASLOG_REC

Recital Server (db_recserver)

Extract from recital.conf:

UASLOG_PORT="port.log" ; export UASLOG_PORT
UASLOG_NET="net.log"   ; export UASLOG_NET
UASLOG_ORA="ora.log"  ; export UASLOG_ORA
UASLOG_INF="inf.log"     ; export UASLOG_INF
UASLOG_ING="ing.log"   ; export UASLOG_ING
UASLOG_JDB="jdb.log"   ; export UASLOG_JDB
UASLOG_REC="rec.log"   ; export UASLOG_REC
DB_LOGDIR

If the environment variable DB_LOGDIR is set to an existing directory, all log files will be written to this directory.  If not, the log files will be created in the bin directory.

DB_LOGDIR is set in the conf/recital.conf file. By default it is set to the log directory:

DB_LOGDIR=${ROI_ROOT}log/           ; export DB_LOGDIR
DB_LOGVER

If the environment variable DB_LOGVER is greater than 0, version numbers are added to the file names.  For example, the activity of the first Net Server process will be logged to net.log, the second to net001.log, the third to net002.log etc. up to the maximum value of DB_LOGVER.

DB_LOGVER is set in the conf/recital.conf file:

DB_LOGVER=10; export DB_LOGVER

Enabling Log Files: Recital Server for UNIX

To enable the system log file for the Recital Server for UNIX, include the following command in the conf/config.db file:

set syslogging on

To set up Client/Server logging, the Recital Server can be started with the 'logging' parameter, in which case, all relevant logging will take place.

# service startup logging

Alternatively, one or more of the following environment variables can be added to the <em>dbserver.conf</em> file or set at the Operating System prompt.  The Recital Server must be restarted before environment variable changes will be recognized.  Each environment variable should be set to the name of a log file.

Environment Variable

Logs Activity of...

UASLOG_PORT

Port Server (db_rsiserver)

UASLOG_NET

(Net) Server (db_netserver)

UASLOG_ORA

Oracle Server (db_oraserver)

UASLOG_INF

Informix Server (db_infserver)

UASLOG_ING

Ingres Server (db_ingserver)

UASLOG_JDB

JDBC Server (db_jdbserver)

UASLOG_REC

Recital Server (db_recserver)

Extract from recital.conf:

UASLOG_PORT="port.log" ; export UASLOG_PORT
UASLOG_NET="net.log"   ; export UASLOG_NET
UASLOG_ORA="ora.log"  ; export UASLOG_ORA
UASLOG_INF="inf.log"     ; export UASLOG_INF
UASLOG_ING="ing.log"   ; export UASLOG_ING
UASLOG_JDB="jdb.log"   ; export UASLOG_JDB
UASLOG_REC="rec.log"   ; export UASLOG_REC
DB_LOGDIR

If the environment variable DB_LOGDIR is set to an existing directory, all log files will be written to this directory.  If not, the log files will be created in the bin directory.

DB_LOGDIR is set in the conf/recital.conf file. By default it is set to the log directory:

DB_LOGDIR=${DB_ROOT}log/           ; export DB_LOGDIR
DB_LOGVER

If the environment variable DB_LOGVER is greater than 0, version numbers are added to the file names.  For example, the activity of the first Net Server process will be logged to net.log, the second to net001.log, the third to net002.log etc. up to the maximum value of DB_LOGVER.

DB_LOGVER is set in the conf/recital.conf file:

DB_LOGVER=10; export DB_LOGVER

Enabling Log Files: Recital Universal Application Server for OpenVMS

To enable the system log file for the Recital Universal Application Server for OpenVMS, include the following command in the db_uas:config.db file:

set syslogging on

To set up Client/Server logging, one or more of the following symbols can be added to the <em>db_uas:login.com</em> file.  The Recital Server must be restarted before symbol changes will be recognized.  Each symbol should be set to the name of a log file.

Symbol

Logs Activity of…

UASLOG_PORT

Port Server (db_rsiserver)

UASLOG_NET

(Net) Server (db_netserver)

UASLOG_ORA

Oracle Server (db_oraserver)

UASLOG_INF

Informix Server (db_infserver)

UASLOG_ING

Ingres Server (db_ingserver)

UASLOG_JDB

JDBC Server (db_jdbserver)

UASLOG_REC

Recital Server (db_recserver)

Extract from db_uas:login.com

$ uaslog_port :==  port.log
$ uaslog_net  :==  net.log
$ uaslog_ora  :==  ora.log
$ uaslog_inf  :==  inf.log
$ uaslog_ing  :==  ing.log
$ uaslog_jdb  :==  jdb.log
$ uaslog_rec  :==  rec.log
DB_LOGDIR

If the symbol DB_LOGDIR is set to an existing directory, all log files will be written to this directory.  If not, the log files will be created in the UAS directory.

DB_LOGDIR is set in the db_uas:login.com file. By default it is set to the UAS.log] directory:

$db_logdir    :== 'db_root'.log]               ! system logging directory
DB_LOGVER

If the symbol DB_LOGVER is enabled, version numbers are added to the file names. For example, the activity of the first Net Server process will be logged to net.log, the second to net001.log, the third to net002.log etc.

DB_LOGVER is set in the db_uas:login.com file:

$db_logver  :== true                           ! enable multiple log files

Enabling Log Files: Recital for Linux

To enable the system log file for Recital for Linux, include the following command in the conf/config.db file:

set syslogging on

Enabling Log Files: Recital for UNIX

To enable the system log file for Recital for UNIX, include the following command in the conf/config.db file:

set syslogging on

Enabling Log Files: Recital for OpenVMS

To enable the system log file for Recital for OpenVMS, include the following command in the db_ovd:config.db file:

set syslogging on

In Brief

  • Log files provide important information to aid problem resolution, but they are also an overhead, so logging should only be enabled when required, not in normal production operation.
  • The System log provides a system-wide view of logins, exits and error codes.
  • The System log can be viewed in table format via the SYSLOGGING System Table.
  • The System log is enabled using the SET SYSLOGGING ON Recital/4GL command in the conf/config.db file.
  • Client/Server logs provide detailed information on client/server requests and responses.
  • Client/Server logs are enabled using environment variables, symbols or Registry entries or by specifying the 'logging' parameter when starting the Recital Server.
  • The location of log files is determined by the DB_LOGDIR setting.
  • Versioning of log files is determined by the DB_LOGVER setting.
Published in Blogs
Read more...
Mac OS X leopard supports Universal Binaries so executables and dynamic libraries can be run on multiple architectures. A good example of this is the default apache install on Mac OS X. 
In order to compile apache modules for this architecture you must use the following flags when configuring the apache install.
 ./configure CFLAGS='-arch x86_64' APXSLDFLAGS='-arch x86_64' --with-apxs=/usr/sbin/apxs
Then you must pass the these additional flags to the apxs command in order to generate a Universal Binary shared module.
-Wl,-dynamic -Wl,'-arch ppc' -Wl,'-arch ppc64' -Wl,'-arch i386' -Wl,'-arch x86_64' 
-Wc,-dynamic -Wc,'-arch ppc' -Wc,'-arch ppc64' -Wc,'-arch i386' -Wc,'-arch x86_64' 
If you then do a file command on the shared module it should return; 
$ file mod_recital.so 
mod_recital2.2.so: Mach-O universal binary with 4 architectures 
mod_recital2.2.so (for architecture ppc7400): Mach-O bundle ppc 
mod_recital2.2.so (for architecture ppc64): Mach-O 64-bit bundle ppc64 
mod_recital2.2.so (for architecture i386): Mach-O bundle i386 
mod_recital2.2.so (for architecture x86_64): Mach-O 64-bit bundle x86_64
The apache module files are stored in the /usr/libexec/apache2/ directory on a default apache install on the Mac and the configuration file is /private/etc/apache2/httpd.conf
Published in Blogs
Read more...

This article discusses the features in Recital that allow data to be imported and exported between platforms in Microsoft® ADO XML Format.

Overview

Extensible Markup Language, XML, is widely regarded as a lingua franca for the interchange of data. XML's text-based, platform-independent format and its integration of data and the schema to define and describe that data, make it the ideal import/export medium. Recital software provides the functionality to output the data from Recital - and other supported table formats such as FoxPro and FoxBASE - into XML file format and to import XML data into those tables' formats. Such import/export operations provide the means to exchange data with third-party applications and can also facilitate the transfer of data between Recital installations on binary-incompatible platforms.

The features examined in this article are available in Recital Terminal Developer and in the Recital Mirage and Recital Database Servers on all Recital supported platforms. Both the Recital/4GL and Recital/SQL provide XML import and export capabilities. The XML files discussed are in Microsoft® ADO XML format.

Microsoft® ActiveX® Data Objects XML Format

The ADO XML format is primarily designed for ADO Recordset persistence and ADO XML files created by Recital can be used in this way and loaded directly into ADO Recordsets. The format can, though also be used for more generic data transfer. An ADO XML file is self-contained, consisting of two sections: a schema section followed by a data section. The schema conforms to the W3C XML-Data specification and defines the data structure.
For additional information on the Microsoft® ActiveX® Data Objects XML Format, please see Appendix 1.

NOTE: The Recital XMLFORMAT setting should always be in its default setting of ADO for ADO XML Format operations.

set xmlformat to ADO

SQL

Recital/SQL offers the ability to export data into XML files using the SELECT and FETCH statements and import from XML using the CREATE TABLE and INSERT statements.

SQL: Exporting

The SELECT...SAVE AS XML statement allows the complete result set from a SELECT statement to be saved as an XML file. This could be a complete table:

open database southwind
  SELECT * from orders SAVE AS XML orders.xml

or a more complex multi-table query:

open database southwind
SELECT orders.orderid, orders.customerid,;
    employees.employeeid, employees.lastname, employees.firstname,;
    orders.orderdate, orders.freight, orders.requireddate,;
    orders.shippeddate, orders.shipvia, orders.shipname,;
    orders.shipaddress, orders.shipcity,;
    orders.shipregion, orders.shippostalcode, orders.shipcountry,;
    customers.companyname, customers.address, customers.city,;
    customers.region, customers.postalcode, customers.country; 
    FROM orders INNER JOIN customers;
    ON customers.customerid = orders.customerid,;
    orders INNER JOIN employees;
    ON orders.employeeid = employees.employeeid;
    SAVE AS XML orderinfo

The resulting XML file can then be further processed within the same or a different Recital environment or transferred to a third party product.

<x-ml xmlns:z="#RowsetSchema" xmlns:rs="urn:schemas-microsoft-com:rowset"
 xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-
00AA00C14882">
 <s:schema id="RowsetSchema">
  <s:elementtype rs:updatable="true" content="eltOnly" name="row">
   <s:attributetype rs:basecolumn="orderid" rs:basetable="orders.dbf" rs:write="true"
 rs:nullable="true" rs:number="1" name="orderid">
   <s:datatype rs:fixedlength="true" rs:precision="14" rs:scale="0" dt:maxlength="10"
 rs:dbtype="numeric" dt:type="number">
   </s:datatype></s:attributetype>
   <s:attributetype rs:basecolumn="customerid" rs:basetable="orders.dbf" rs:write="true"
 rs:nullable="true" rs:number="2" name="customerid">
   <s:datatype rs:fixedlength="true" dt:maxlength="5" rs:dbtype="str" dt:type="string">
   </s:datatype></s:attributetype>
   <s:attributetype rs:basecolumn="employeeid" rs:basetable="orders.dbf" rs:write="true"
 rs:nullable="false" rs:number="3" name="employeeid">
   <s:datatype rs:fixedlength="true" rs:precision="20" rs:scale="0" dt:maxlength="10"
 rs:dbtype="numeric" dt:type="number">
   </s:datatype></s:attributetype>
   <s:attributetype rs:basecolumn="lastname" rs:basetable="orders.dbf" rs:write="true"
 rs:nullable="false" rs:number="4" name="lastname">
   <s:datatype rs:fixedlength="true" dt:maxlength="20" rs:dbtype="str" dt:type="string">
   </s:datatype></s:attributetype>
   <s:attributetype rs:basecolumn="firstname" rs:basetable="orders.dbf" rs:write="true"
 rs:nullable="false" rs:number="5" name="firstname">
   <s:datatype rs:fixedlength="true" dt:maxlength="10" rs:dbtype="str" dt:type="string">
   </s:datatype></s:attributetype>
   <s:attributetype rs:basecolumn="orderdate" rs:basetable="orders.dbf" rs:write="true"
 rs:nullable="true" rs:number="6" name="orderdate">
   <s:datatype rs:fixedlength="true" dt:maxlength="10" rs:dbtype="Date" dt:type="Date">
   </s:datatype></s:attributetype>
   <s:attributetype name="freight" ...

Click image to display full size

Fig 1: Microsoft® Office Excel 2003: orderinfo.xml.

For data accessed through a Recital Database Gateway, such as Oracle, MySQL or PostgreSQL, the FETCH command can be used to save a cursor results set into an XML file:

// Connect to MySQL Database 'mydata' via Recital Database Gateway
nStatHand=SQLSTRINGCONNECT("mys@mysql1:user1/pass1-mydata",.T.)
if nStatHand < 1
  dialog box [Could not connect]
else
  DECLARE cursor1 CURSOR FOR;
      SELECT account_no, last_name, first_name FROM example
  OPEN cursor1
  FETCH cursor1 INTO XML exa1.xml
  SQLDISCONNECT(nStatHand)
endif

SQL: Importing

The CREATE TABLE statement allows a new table to be created based on the structure defined in an XML file. The data from the XML file can optionally be loaded into this new table if the LOAD keyword is included. For example, a new 'orderinfo' table can be created and populated with data from the orderinfo.xml file created by the SELECT...SAVE AS XML statement shown earlier:

open database southwind
SELECT orders.orderid, orders.customerid,;
    employees.employeeid, employees.lastname, employees.firstname,;
    orders.orderdate, orders.freight, orders.requireddate,;
    orders.shippeddate, orders.shipvia, orders.shipname,;
    orders.shipaddress, orders.shipcity,;
    orders.shipregion, orders.shippostalcode, orders.shipcountry,;
    customers.companyname, customers.address, customers.city,;
    customers.region, customers.postalcode, customers.country; 
    FROM orders INNER JOIN customers;
    ON customers.customerid = orders.customerid,;
    orders INNER JOIN employees;
    ON orders.employeeid = employees.employeeid;
    SAVE AS XML orderinfo

CREATE TABLE orderinfo FROM XML orderinfo LOAD

The INSERT statement can be used to load data when the table structure already exists. Taking our earlier orderinfo.xml file again, the data can be loaded using INSERT:

open database southwind;
SELECT orders.orderid, orders.customerid,;
    employees.employeeid, employees.lastname, employees.firstname,;
    orders.orderdate, orders.freight, orders.requireddate,;
    orders.shippeddate, orders.shipvia, orders.shipname,;
    orders.shipaddress, orders.shipcity,;;
    orders.shipregion, orders.shippostalcode, orders.shipcountry,;
    customers.companyname, customers.address, customers.city,;
    customers.region, customers.postalcode, customers.country; 
    FROM orders INNER JOIN customers;
    ON customers.customerid = orders.customerid,;
    orders INNER JOIN employees;
    ON orders.employeeid = employees.employeeid;
    SAVE AS XML orderinfo
CREATE TABLE orderinfo FROM XML orderinfo

INSERT INTO orderinfo FROM XML orderinfo

The examples above show the export and import in a single piece of code. To transfer data between binary-incompatible platforms, the export phase using SELECT...SAVE AS XML would be carried out on the source platform, the resulting XML file would be transferred to the target platform, then the import phase using CREATE TABLE...LOAD or CREATE TABLE + INSERT would be run on the target platform.

Recital/4GL

The Recital/4GL offers the ability to export data into XML files using the COPY TO ... TYPE XML command and import from XML using the XMLFIRST() and XMLNEXT() functions.

Recital/4GL: Exporting

The COPY TO command can be used to export data from Recital and other natively supported tables out to a wide range of formats. This includes exporting to an XML file. The '.xml' file extension is added automatically. The COPY TO command can be used to export an entire table:

open database southwind
use orders
copy to orders type xml

or, using the FIELDS clause and the FOR or WHILE clauses, restrict the field list and export only those records which match a particular condition:

open database southwind
use orders
copy to orders type xml fields orderid for year(orderdate) = 1996

Only the orderid field from those records which match the condition is exported:

<x-ml xmlns:z="#RowsetSchema" xmlns:rs="urn:schemas-microsoft-com:rowset"
 xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-
00AA00C14882">
 <s:schema id="RowsetSchema">
  <s:elementtype rs:updatable="true" content="eltOnly" name="row">
   <s:attributetype rs:basecolumn="ORDERID" rs:basetable="ORDERS" rs:write="true" rs:nullable="true"
 rs:number="1" name="ORDERID">
   <s:datatype rs:fixedlength="true" rs:precision="10" rs:scale="0" dt:maxlength="10"
 rs:dbtype="numeric" dt:type="number">
   </s:datatype></s:attributetype>
  </s:elementtype>
 </s:schema>
 <rs:data>
 <z:row orderid="10248">
 <z:row orderid="10249">
 <z:row orderid="10250">
 <z:row ...

Recital/4GL: Importing

Data from an XML file can be extracted one record at a time using the XMLFIRST() and XMLNEXT() functions. XMLFIRST() reads the first record from an XML file and loads information from the file into a series of memory variables and arrays. The record data is loaded into a one-dimensional array which is created automatically. Each element in the array contains the data for its corresponding field in string format. The field names are loaded into another automatically-created array. The XMLNEXT() function works in a similar way to deal with all the subsequent records in the XML file. The XMLCOUNT() function can be used, as in the example below, to determine how many data records the XML file has.

The Recital/4GL includes a vast range of functions for manipulation and conversion of arrays and their individual elements. In the example program below, the XMLFIRST() and XMLNEXT() functions are used to sequentially extract each record from an XML file, whose name is passed to the program as a parameter. Once loaded into an array, the data is converted to the correct Recital data type then appended into a table. The table name is also passed as a parameter.

procedure replaceit
  append blank
  for i = 1 to numfields
    if type(field(i)) = "N"
      replace &(field(i)) with val(data[&i])
    elseif type(field(i)) = "D"
      replace &(field(i)) with stod(data[&i])
    elseif type(field(i)) = "T"
      replace &(field(i)) with ctot(data[&i])
    elseif type(field(i)) = "L"
      replace &(field(i)) with iif(data[&i]="T",.T.,.F.)
    elseif type(field(i)) = "Y"
      replace &(field(i)) with val(data[&i])
    else
      replace &(field(i)) with data[&i]
    endif
  next
return
 
procedure starthere                    
  parameters cTable, cFile
  numfields=xmlfirst(cFile,targ,trans,where,fldnames,data)
  if numfields < 1
    dialog box [No records in XML file]
  else
    use &cTable
    replaceit()
  endif
  numrecs = xmlcount(cFile)
  if numrecs > 1
    numleft = numrecs -1
    for i = 1 to numleft
      xmlnext(trans,where,fldnames,data)
      replaceit()
    next
  endif
return

Alternative Import/Export Methods

Other features exist in Recital to facilitate the import and export of data:

RDDs

The RDDs, Replaceable Database Drivers, are available on Windows, Linux and all supported 32-bit UNIX platforms. They allow for the use and creation of database tables and indexes in FoxPro, dBase and Clipper formats. The file format is the same across all the platforms that support the RDDs, allowing the tables and indexes to be transferred as required. The formats are also supported by a wide range of third-party products as well as their originating database systems. For more information on the RDDs, please see the online documentation on Xbase migration and the SET FILETYPE command.

BUILD/INSTALL

These are Recital/4GL commands for the export (BUILD) and import (INSTALL) of Recital tables and their associated memo, dictionary and multiple index files in ASCII format to allow them to be transferred across binary incompatible platforms. For more information, please see the online documentation on Recital/4GL commands.

COPY Commands

The COPY TO, COPY STRUCTURE, COPY STRUCTURE EXTENDED and CREATE FROM commands can all be used to enable data to be transferred between different formats and different platforms. For more information, please see the online documentation on Recital/4GL commands.

Appendix 1: Microsoft® ActiveX® Data Objects XML Format

For detailed information on the Microsoft® ActiveX® Data Objects XML Format, please consult the following Microsoft documentation:

Link

XML Persistence Format

Namespaces

Schema Section

Data Section

Published in Blogs
Read more...

If when your attempt to create device meta-data fails this is drbd preventing you from corrupting a file system present on the target partition.

$ drbdadm create-md drbd0

v08 Magic number not found
md_offset 30005817344
al_offset 30005784576
bm_offset 30004867072

Found ext2 filesystem which uses 190804004 kB
current configuration leaves usable 29301628 kB

Device size would be truncated, which
would corrupt data and result in
'access beyond end of device' errors.
You need to either
* use external meta data (recommended)
* shrink that filesystem first
* zero out the device (destroy the filesystem)
Operation refused.

Command 'drbdmeta /dev/drbd0 v08 /dev/sda4 internal create-md' terminated with exit code 40
drbdadm aborting

Once you have confirmed that the file system present on the target partition is no longer required at the prompt type the following:

Replace /dev/sdaX with the block device you are targeting.

dd if=/dev/zero of=/dev/sdaX bs=1M count=128

Once this has completed the drbdadm create-md drbd0 command will complete with a "success."

$ drbdadm create-md drbd0
v08 Magic number not found
v07 Magic number not found
v07 Magic number not found
v08 Magic number not found
Writing meta data...
initialising activity log
NOT initialized bitmap
New drbd meta data block successfully created.
success
$

 

Published in Blogs
Read more...

This is a good primer for getting familiar with using Infiniband with Redhat/Centos Linux.
http://people.redhat.com/dledford/infiniband_get_started.html

Getting Started with InfiniBand

The first step to using a new infiniband based network is to get the right packages installed. These are the infiniband related packages we ship and what they are there for (Note, the Fedora packages have not all been built or pushed to the repos yet, so their mention here is as a "Coming soon" variety, not an already done variety):

Published in Blogs
Read more...

If you have software packages which you wish to share with others or simply between your own personal machines, a neat and easy solution is to create your own YUM repository and provide your .repo file for download.

YUM is by far the easiest method of installing software on Red hat, Centos and Fedora. Not only does it mean you don't need to trawl the web looking for somewhere to download the packages, YUM does a great job of satisfying any package dependencies. As long as the required packages are available in the enabled repositories on your system, YUM will go out and get everything you need.

To create your own YUM repository, you will need to install the yum-utils and createrepo packages:

yum install yum-utils createrepo

yum-utils contains the tools you will need to manage your soon to be created repository, and createrepo is used to create the xml based rpm metadata you will require for your repository.

Once you have installed these required tools, create a directory in your chosen web server's document root e.g:

mkdir -p /var/www/html/repo/recital/updates

Copy the rpm's you wish to host into this newly created directory.

The next step is to create the xml based rpm metadata. To create this use the createrepo program we installed earlier.

At the shell type the following command:

createrepo -v -s md5 /var/www/html/repo/recital/updates


This will create the required metadata in the repodata directory of your /var/www/html/repo/recital/updates directory.

root@test repodata]# ls -l
rwotal 44
-rw-r--r-- 1 root root 28996 Jan 13 21:42 filelists.xml.gz
-rw-r--r-- 1 root root   284 Jan 13 21:42 other.xml.gz
-rw-r--r-- 1 root root  1082 Jan 13 21:42 primary.xml.gz
-rw-r--r-- 1 root root   951 Jan 13 21:42 repomd.xml

To do a final consistency check on your repository run the following command:

verifytree /var/www/html/repo/recital/updates

We now have a fully functioning YUM repository for our hosted rpm packages.
The next process is to create a .repo file in the client systems /etc/yum.repos.d directory.

Navigate to the /etc/yum.repos.d directory on your system as root.

Using your preferred text editor to create the .repo file. In this example I will call it recital.repo.
Now paste in the following lines:

[Recital]
name=Recital Update Server
baseurl=http://ftp.recitalsoftware.com/repo/recital/updates
enabled=1
gpgcheck=1

Once that is saved, at the shell prompt on the same machine (YUM client system).

$ yum repolist
Loaded plugins: presto, refresh-packagekit
repo id                  repo name                                 status
Recital                  Recital Update Server                     enabled:      1
adobe-linux-i386         Adobe Systems Incorporated                enabled:     17
fedora                   Fedora 12 - i386                          enabled: 15,366

As you can see the Recital repo is now being picked up and we have access to all the packages it is hosting.

See how easy that was!

Published in Blogs
Read more...

 

Key features of the Recital scripting language include:

What are the key feature of the Recital database?

  • High performance database application scripting language
  • Modern object-oriented language features
  • Easy to learn, easy to use
  • Fast, just-in-time compiled
  • Develop desktop or web applications
  • Cross-platform support
  • Extensive built-in functions
  • Superb built-in SQL command integration
  • Navigational data access for the most demanding applications
Published in Blogs
Read more...
For Recital to run correctly on 64bit Linux you require the ia32 shared libraries.

The 64bit port of Recital requires these libraries to allow access to 32bit Xbase and C-ISAM data files which are 32bit.

If you do not have these libraries installed you will either get a "can't find db.exe" or an "error loading shared libraries" when trying to run or license Recital.

Installing the ia32 shared libraries

Redhat EL 5 / Centos 5 / Fedora 10

  1. Insert the Red Hat Enterprise Linux 5 Supplementary CD, which contains the ia32el package.

  2. After the system has mounted the CD, change to the directory containing the Supplementary packages. For example:

    cd /media/cdrom/Supplementary/

  3. Install the ia32el package:

    rpm -Uvh ia32el-<version>.ia64.rpm

Alternatively: Note you must have the required repo's enabled.
 yum install ia32el

Ubuntu / Debian

sudo apt-get install ia32-libs

Published in Blogs
Read more...
 


Recital provides the following additional benefits:

  • Easy to Install and Deploy - Users can set up Recital in minutes enabling organizations to deliver new applications faster than other databases.
  • Easy to Administer - Recital is a low administration database that eliminates the need for highly trained, skilled, and costly database administrators to maintain the database.
  • High Performance - Superior database performance for the most demanding of OLTP applications. Additionally, Clustered Recital provides 99.999% availability.
  • Embeddable Library - Recital Embedded Edition provides in-process data storage engine that delivers all the features of a traditional relational database but in a size which makes it ideally suited for ISVs/VARs who need a small footprint and easy to use toolkit.
  • Platform Independence - Recital runs on Linux, Solaris, AIX, HP-UX, Windows, and Mac OS X giving organizations complete flexibility in delivering a solution on the platform of their choice.
Published in Blogs
Read more...

SE Linux is a feature of the Linux kernel that provides mandatory access control. This policy based access control system grants far greater control over the resources on a machine than standard Linux access controls such as permissions.

Many modern Linux distributions are shipping with SELinux enabled by default, Fedora 14 and Rhel 6 both install with it enabled.

When you run Recital Web on a SELinux enabled machine and navigate to the default.rsp page you will see something similar to the screen shot below.

1
If you launch the SELinux troubleshooter you will see the following problem.

SELinux is blocking the apache server from accessing the Recital server running on port 8001.

2
To manage you SELinux policy you must have the policycoreutils package group installed. The policycoreutils contains the policy core utilities that are required for basic operation of a SELinux system.

If you wish to use a GUI tool, you must install the policycoreutils-gui package.

At the command prompt execute the following:

As root

$ yum install policycoreutils

$ semanage port -a -t http_port_t -p tcp 8001

$ service recital restart

$ service httpd restart 
 

We use the semanage command here to allow the http server access to port 8001. Once you have completed the steps detailed above you can go and navigate back to the default.rsp page in your borwser, where you will find the permission denied message is now replaced by the default.rsp page.


4
SELinux does a great job of restricting services and daemons so rather than simply disabling it, why not work with it!

When it comes to security, every little bit helps...

Published in Blogs
Read more...
Twitter

Copyright © 2022 Recital Software Inc.

Login

Register

User Registration
or Cancel