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