Hi Jem,

How did you configure the instance to get it to work ?

Points of note:

1. The directory hosting the Virtuoso database files, "database" for the default instance must have write privileges as the user Virtuoso is running as to enable the temp files trying to be written to it by the file_to_string() function to be possible, which seemed to be root cause of your original problem. This could also have additional side effects on the Virtuoso instance as other services like checkpoint'ing etc also need to create files to function and thus would also fail if write access to the directory is not allowed.

2. You can move the database files to a file system with sufficient disk space and symlink it back to the "database" directory such that it can be started and stopped as the default database. Note in this scenario their is a subtle problem with the startup script which creates a symlink of the form "virtuoso -> ../bin/virtuoso-iodbc-t" in the database directory and does not work as the virtuoso-iodbc-t does not exist in that relative location. Thus this would need to be amended to point to the absolute PATH to the virtuoso-iodbc-t for it to work and will be fixed in the next release.

3. You can also create separate databases for your Virtuoso instance with a command of the form:

<install_dir>/install/command-create-db.sh -dir <directory_name> - port <sql_port> -http-port <http_port> -dbname <database_name>

The individual databases can then be started or stopped with the command:

virtuoso-[start | stop].sh <database_name>

4. The virtuoso server does have a "TempSesDir" configuration file option in the "Parameters" section of the ini file which controls where temporary data are written as detailed at:

        http://docs.openlinksw.com/virtuoso/databaseadmsrv.html#ini_HTTPServer


Best Regards
Hugh Williams
Professional Services
OpenLink Software
Web: http://www.openlinksw.com
Support: http://support.openlinksw.com
Forums: http://boards.openlinksw.com/support



On 15 Apr 2009, at 12:27, Jem Rayfield wrote:

So I have things working now. Thanks for the pointers.
I still think that config for setting the path for temp files would
help.



-----Original Message-----
From: Jem Rayfield
Sent: 15 April 2009 10:24
To: 'Ivan Mikhailov'; Hugh Williams
Cc: virtuoso-users@lists.sourceforge.net
Subject: RE: [Virtuoso-users] ttlp_mt problem

Ivan et al,

OK, so changing the context of the process invoking
file_to_string_output() did not fix the problem.
The temp session files are still written to:

        09:28:30 Can't write to file /home/virtuoso/database//sesbPyLvU

I invoked the command from:

        /data/virtuoso/dbpediaLoad

The session files always appear to be written to
${VIRTUOSO_HOME}/database

I think it might be nice to make the location of tempory files
configurable.
The process context isn't always a desirable location.
The default could still be the process context using an ini override if
required.


I have also used ttlp_mt_local_file which also fails with the same
errors.


Hugh,
I have downloaded the dbpedia script. Thanks.
However this script fails in the same manner as it again uses

        file_to_string_output
        ttlp_mt


The main problem I have is that the virtuoso installation is located on
dir/mount with limited space.
All the data should be on a different mount which has lots of space.
I think I will need to move the installation to /data (lots of space) to
fix this.
Not ideal as our sysadmins won't like this very much.
I will let you know if this fixes the problem.

Thanks for your help
Jem


-----Original Message-----
From: Ivan Mikhailov [mailto:imikhai...@openlinksw.com]
Sent: 14 April 2009 21:45
To: Jem Rayfield
Cc: virtuoso-users@lists.sourceforge.net
Subject: Re: [Virtuoso-users] ttlp_mt problem

Hello Jem,

file_to_string_output() can flush part of string session to a temporary file if the session is too long to keep it in memory. On almost all OSes
it makes the file in the working directory of the process, say, in the
current directory of the shell that launched the executable. It's
advisable to start from writable directory.

In this particular case, it is better to use DB.DBA.TTLP_MT_LOCAL_FILE (
'/data/virtuoso/dbpediaLoad/longabstract_en.nt', '',
'http://*****.newsonline.tc.nca.bbc.co.uk/test', 17) that will parse the
file directly, without wasting time and disk for temporary copy.

Best Regards,

Ivan Mikhailov
OpenLink Software
http://virtuoso.openlinksw.com


Reply via email to