Newbie questions about Pliant

Newbie questions about Pliant


What is the meaning of <precovery offset="xxxxx" /> ?
in database
Message posted by michel on 2003/05/11 17:00:18
I have a recent problem both with linux and windows :
the modifications made on a site or an user disapears when i restart my server.
In fact curent session takes account of changes but they are not writen in the 
"site.pdb" or "user.pdb". An example is : 
if, in "localhost" I write "hue 300" in style options 
and I update, the background color of tittle turn immediately to purple.
If I reset the server and reload, the color go back to green.

Looking at the .pdb files I have found new lines with this structure :
  <precovery offset="xxxxx" /> and the number of lines seems to increase with my test.
Is there a relation between the two phenomena ? and what is the meaning of these lines ?
Message posted by michel on 2003/05/11 17:17:52
But the changes are well recorded in "site.log"
Message posted by hubert.tonneau on 2003/05/11 17:48:57
When a Pliant database has a .log file, then the temporary changes are written
to the .log file instead of the .pdb main one.
So, a
<precovery offset="xxxxx" />
line is append at the end of the main file in order to specify the offset the
log file should be parsed from in case of crash, in order to recover changes.

What's new with Pliant release 84 is that the database main files are rewritten
only roughly once every 24 hours, whereas there used to be rewritten between
once every 5 seconds and once every 2 hours depending on the size of the database.

So, with older version, when you restarted the server, most of the time, no
change was pending in the log file, whereas now, most of the time some changes
are pending.

What has to be found is why when loading the database at restart time, your
Pliant system does not parse properly the main file, then the end of the log
file, as it should in order to get all changes back.

If you want to force changes to the database main file, you can use the new
'Store databases' in the status page, but it should not be needed.
Message posted by michel on 2003/05/11 20:12:26
I think to have well understood the normal process and its features, but unfortunately not 
why it doesn't act when restarting the sever, I have try a lot of tests but whithout success.
The "store database" solution works but is not easy 
when you try ro teach the "easy" configuration of servers.
The problem is that I encountered this problem with three different computers, 
one, at home, running Windows Xp, the two others at the club running Linux (Mandrake 9.0).
Message posted by hubert.tonneau on 2003/05/11 21:55:25
I cannot reproduce the problem here:
I change the 'contact' field of a user, so I can see that the 'precovery'
line is added at the end of user.pdb,
then I kill the Pliant server,
then restart it,
and the user.pdb file is immediately rewritten with the new value, picked
from the user.log file.

Could you try with only minimal precompiling.
Message posted by michel on 2003/05/12 09:01:33
I work on WinXP.
I have reinstalled the server, with cutom precompile.
I have launch the servers.
I have open  "localhost" and login as root
I have print as references "user.log" and "user.pdb".
I have edited the user michel and add adummy phone number and update inf.
I now look at the two files.
  user.pdb has a new line :
     <precovery offset="37034" />
  user.log has two new lines :
     <plogin timestamp="Mon, 12 May 2003 08:42:39 GMT" user="root" />
     <pdata path="/user/michel/contact">tel &#58; 1234567890</pdata>
I close the two files, I close my browser, i shutdown the servers.
I look at the two files : no change
I start the server (I have test wit and witout fulloliant launch)
I look at the files no change the 2+1 files are still here.
I open my browser and ask for localhost, in the user michel the phone number
 has desapeared.

Question : what is the meaning of "37034" ?
  my question is because I have two hours of difference between 
  my system time and my server time.
Message posted by hubert.tonneau on 2003/05/12 09:24:04
> what is the meaning of "37034" ?

It is the offset in the .log where the changes not already written in the .pdb

Looking at the Pliant code, I see that the 'seek' option is not implemented
in method

method nd query command stream answer -> status
  oarg_rw NativeStreamDriver nd ; arg Str command ; arg_rw Stream stream ; arg_w Str answer ; arg ExtendedStatus status

in module /pliant/language/stream/native.pli
so it might be the explaination of the problem under Win32: the offset is bad.

Also it does not explain at all why you get the same problem under Linux.

> I have two hours of difference between my system time and my server time.

You live in France, and the server is using greenwitch mean time.
Message posted by michel on 2003/05/12 14:10:47
I try seval things :
reinstall pliant                     >> no change
supress /pliant_security/, /pliant_data/ /pliant/binaries/ and /pliant/pliant/,
unzip the archive , reinstall and reconfigure   >> no change
the same bur with release 83  >>> ALL is OK ! 
Message posted by hubert.tonneau on 2003/05/12 15:27:58
The difference is that older releases will rewrite the user.pdb frequently,
so the problem does not append because the file is probably rewritten between
the time you changed the field though your browser and the time you stopped
the server.
The problem is simply hidden, but still there.
Message posted by michel on 2003/05/12 15:39:38
On my home computer, with linux and release 84, all seems ok.
I have to grasp more seriously the problem at the club.
Subsidiary question :
 why releese-84.tgz gives Pliant release 84 tittle and gives Pliant release 83 tittle ?
Message posted by hubert.tonneau on 2003/05/12 15:53:18
> gives Pliant release 83 tittle ?

Because I forgot to recompile Pliant for win32 executable before packaging
release 84 :-(