Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG, Page 336 of 807  Not logged in ELOG logo
ID Date Icon Author Author Email Category OS ELOG Version Subjectdown
  69362   Fri Apr 30 21:55:23 2021 Reply Frank Baptistacaffeinejazz@gmail.comQuestionWindowsV3.1.3-fd7f1e2Re: Real-time mirroring?

Hi Sebastian,

You're absolutely correct that the users at the chambers could directly use the remote ELOG server (without having a local server), and I did originally think about this.  Unfortunately, there are times that our network "goes down" (for maintenance and other issues), and it was important to maintain the users' ability to perform regular 'local' updates at the temperature chambers, regardless of the network status.

In our situation, having a remote server also became particularly useful in the event that the 'local' computer at a specific temperature chamber "went down".  The user can continue to update the respective logbook at the remoter server, knowing that it would eventually synchronize with the respective local server(s).

Thanks for the great feedback!
Frank

Sebastian Schenk wrote:

Hi Frank,

I am not sure, if I understood your setup correctly. But in my eyes, you don't need the local elog servers. The only difference for the users at the chambers would be to directly use the 'mirror' remote elog url instead of the local elog url in their browsers. "which is regularly updated..." could mean, that you are using some kind of automatism to add entries to the local elogs, but you could also use these directly on the remote 

If you have concers about users editing the wrong chamber elog, there is a usermanagement to only allow certain users to certain elogs (on the remote).

As for the part "having a record conflict". That would be totally fine and handled by the mirror function.
See the part "If new entries exist locally and remotely having the same entry ID"... in the documentation of the function.

As you state, that you are working on windows. There is no "killall" command to send the signal, as far as i know.
Then a script could kill the elog and start it again. But this should have the disadvantage of loosing the login session of the users.

Best wishes,
Sebastian

Frank Baptista wrote:

Hi Sebatian,

Thank you for taking the time to answer...very much appreciated!

Although I'm running Windows OS, I do understand your approach, and will work on an analogous solution.

Our setup is interesting -- we're running many temperature chambers, each one having a dedicated computer running a unique instance of ELOG, each of which is regularly updated to let users know what the progress is for the lengthy temperature testing.  All of these individual logbooks regularly synchronize to a common 'mirror' ELOG server, which shows all the logbooks in one location.  Users can view all the logbooks on one screen, by connecting to the mirror server.  Since this can be done remotely, it also makes it convenient to add "updates" remotely to the mirror server, which eventually synchronizes with each individual computer at the temperature chambers.  As you might imagine, if there is a user doing an update at the temperature chamber computer while another user enters an update remotely to the mirror server, there is a chance of having a record conflict.

I was trying to avoid conflicts by having real-time mirroring, where a change on either end is detected and immediately "synchronized", thereby reducing or eliminating conflicts.

In any case, if I do come up with a good solution for Windows, I'll be sure to share what I did.

Cheers,
Frank

Sebastian Schenk wrote:

Hello Frank,

It seems, you are using the mirror function of elog. It should resolve conflicts by itself acording to the documented rules. (https://elog.psi.ch/elog/config.html)
As I don't use this function, I can't say how good it works.

If you don't want to use this function, I would suggest using the "Execute new | edit | delete" feature to trigger a script after each change of elog entries.
This script could itself run "rsync" or your sync solution to make the sync and
should afterwards call "killall -HUP elogd" on the remote to let elog re-read the config (and this sould also update the indices)
(see Server Configuration https://elog.psi.ch/elog/adminguide.html)

If you have a sync-solution, which itself permanently observes folders for changes and syncs it by itself,
It should have the option to run a command after sucessful sync or you need an other method to call "killall -HUP elogd" after sync.

Personally I would recommend the mirror function as it has a internal conflict resolution.
I hope this helps.

Best wishes,
Sebastian

PS: I don't know anything about your setup, but maybe there is a solution, where you don't need the local servers.
As I think, the mirror function is mainly for backup reasons of a main server to a secondary one or similar.

Frank Baptista wrote:

Hello!

We have a number of local ELOG servers, all mirrored to a single "remote" ELOG server.  We have users that create updates at the local server, and some at the remote server, which can run the risk of record conflicts.  Right now, the local servers perform a "Mirror cron" every 5 minutes, but even that leaves the door open to potential conflicts.

I found an open-source JAVA-based app called DirSync Pro (https://www.dirsyncpro.org/) which is capable of performing real-time mirroring, and has conflict handling.  I "took it for a spin", and it does do what it claims.  However, because each ELOG server performs record "indexing", it doesn't recognize records that aren't part of the current list of records. Restarting the ELOG server obviously corrects that, but I was wondering if there is another way to get the server to recognize newer "remotely-generated" records without restarting the server.

As always, I'm appreciative for the outstanding working that has been done to make ELOG the great application that it is!

 

 

 

 

 

 

  68297   Sat Apr 2 17:56:04 2016 Reply Stefan Rittstefan.ritt@psi.chQuestionWindowslatestRe: Read Validation

Unfortunately a read confirmation is not foreseen in the Elog system. You would have to define one attribute for each shift worker, like "John has read", "Steve has read" and so on. Then each of the shift workes has to "Edit" each message an check his/her checkmark manually.

Stefan

Ed Strohak wrote:

 I'm looking for config examples of a shift log book where operators have to check a box or select their name from a list to prove they have read the latest entries in the log, can anyone help.

 

  Thanks for your time.

 

Ed..

 

  68298   Sat Apr 2 21:21:04 2016 Reply David PilgramDavid.Pilgram@epost.org.ukQuestionWindowslatestRe: Read Validation

As a variant of what Stefan has suggested:

Perhaps a simple comment is set up as the pre-loaded reply - perhaps including date and time.  Maybe include the author's name in the comment, but all that is available anyway (see documentation for that).  This bit isn't vital.

Then each user simply has to *reply* to the message concerned, and you then get the list of who has read it, available in threaded view of the comment and replies.

Of course this works best with small numbers of users, and where threads are never very long.  Also, it means that you can lock the original message (prevent it being edited) which may be a particular concern depending on what you are using elog for.

You might also want to define an attribute that a reader can tick to say that they have taken action if it is important that someone has to take further action (as opposed to just reading) - and maybe that changes the colour of the background or the icon in front of the topic.  Then there would be a record as to who has done the necessary, and later readers will know the matter is for information rather than needing attention.   For example,. who kicked the power supply to the ion source on Monday morning to "wake it up" (this is true, but pre-elog, so was a paper record).  John kicked it last Monday, and the power supply respects John, may be a statistic one could find from such information recorded as suggested here.

You may want a second attribute people have to explicity select so as to show they understand what they've read, rather than just reply/submit without having read... e.g. they have to select a digit of the ticket number, or some auto-generated number (or letter, I'm not characterist) that is within the original comment.

We all know people who click on things they've never read, and come on, we've all done it at times...

 

David.

Stefan Ritt wrote:

Unfortunately a read confirmation is not foreseen in the Elog system. You would have to define one attribute for each shift worker, like "John has read", "Steve has read" and so on. Then each of the shift workes has to "Edit" each message an check his/her checkmark manually.

Stefan

Ed Strohak wrote:

 I'm looking for config examples of a shift log book where operators have to check a box or select their name from a list to prove they have read the latest entries in the log, can anyone help.

 

  Thanks for your time.

 

Ed..

 

 

  68299   Mon Apr 4 13:05:55 2016 Reply Ed Strohakestrohak@gmail.comQuestionWindowslatestRe: Read Validation

Appreciate the help..

Thanks

David Pilgram wrote:

As a variant of what Stefan has suggested:

Perhaps a simple comment is set up as the pre-loaded reply - perhaps including date and time.  Maybe include the author's name in the comment, but all that is available anyway (see documentation for that).  This bit isn't vital.

Then each user simply has to *reply* to the message concerned, and you then get the list of who has read it, available in threaded view of the comment and replies.

Of course this works best with small numbers of users, and where threads are never very long.  Also, it means that you can lock the original message (prevent it being edited) which may be a particular concern depending on what you are using elog for.

You might also want to define an attribute that a reader can tick to say that they have taken action if it is important that someone has to take further action (as opposed to just reading) - and maybe that changes the colour of the background or the icon in front of the topic.  Then there would be a record as to who has done the necessary, and later readers will know the matter is for information rather than needing attention.   For example,. who kicked the power supply to the ion source on Monday morning to "wake it up" (this is true, but pre-elog, so was a paper record).  John kicked it last Monday, and the power supply respects John, may be a statistic one could find from such information recorded as suggested here.

You may want a second attribute people have to explicity select so as to show they understand what they've read, rather than just reply/submit without having read... e.g. they have to select a digit of the ticket number, or some auto-generated number (or letter, I'm not characterist) that is within the original comment.

We all know people who click on things they've never read, and come on, we've all done it at times...

 

David.

Stefan Ritt wrote:

Unfortunately a read confirmation is not foreseen in the Elog system. You would have to define one attribute for each shift worker, like "John has read", "Steve has read" and so on. Then each of the shift workes has to "Edit" each message an check his/her checkmark manually.

Stefan

Ed Strohak wrote:

 I'm looking for config examples of a shift log book where operators have to check a box or select their name from a list to prove they have read the latest entries in the log, can anyone help.

 

  Thanks for your time.

 

Ed..

 

 

 

  1936   Mon Sep 18 18:19:44 2006 Reply Steve Jonessteve.jones@freescale.comQuestionAll2.6.2-1714Re: Re: Why are Preset fields blanked out?

Stefan Ritt wrote:

Steve Jones wrote:
The snippet of code below sets an attribute to a date depending on the selection. Problem is, if attribute ApprovedDate was previously set, selecting any other value for CRStatus will blank out ApprovedDate (the same occurs for CompletedDate). Why would this be occurring when the conditionals are mutually exclusive?
##################################################
# Define CRState
#
Options CRState = PENDING{a}, APPROVED{b}, HOLD{a}, REJECTED{a}, COMPLETED{c}
{a}
{b} Preset ApprovedDate = $date
{c} Preset CompletedDate = $date


I don't understand your problem. If I use following config file:
[demo]
Theme = default
Attributes = Author, CRState, ApprovedDate, CompletedDate

Options CRState = PENDING{a}, APPROVED{b}, HOLD{a}, REJECTED{a}, COMPLETED{c}
{a}
{b} Preset ApprovedDate = $date
{c} Preset CompletedDate = $date

and make an entry, then edit it, selecting approved, then submit, then edit again, then select completed, then I get following:



which looks ok to me (the previous ApprovedDate does not get blanked out). Can you reproduce that behaviour?




Quote:

I think I found it. Try this:
Locked Attributes = ApprovedDate, CompletedDate
##################################################
# Define CRState
#
Options CRState = PENDING{a}, APPROVED{b}, HOLD{a}, REJECTED{a}, COMPLETED{c}
{a}
{b} Preset ApprovedDate = $date
{c} Preset CompletedDate = $date

In my config when I remove the two attributes from "LOCKED ATTRIBUTES" the fields do not get blanked out.
  1941   Tue Sep 19 17:32:28 2006 Reply Stefan Rittstefan.ritt@psi.chQuestionAll2.6.2-1714Re: Re: Why are Preset fields blanked out?

Steve Jones wrote:

I think I found it. Try this:
Locked Attributes = ApprovedDate, CompletedDate
##################################################
# Define CRState
#
Options CRState = PENDING{a}, APPROVED{b}, HOLD{a}, REJECTED{a}, COMPLETED{c}
{a}
{b} Preset ApprovedDate = $date
{c} Preset CompletedDate = $date

In my config when I remove the two attributes from "LOCKED ATTRIBUTES" the fields do not get blanked out.


No, even with that it does not get blanked out. Attached is the complete elogd.cfg with which it works fine in my case (R1714). Can you try that?
Attachment 1: elogd.cfg
[global]
port = 8080

[demo]
Comment = Test
Attributes = Author, CRState, ApprovedDate, CompletedDate
Locked Attributes = ApprovedDate, CompletedDate
Options CRState = PENDING{a}, APPROVED{b}, HOLD{a}, REJECTED{a}, COMPLETED{c}
{a}
{b} Preset ApprovedDate = $date
{c} Preset CompletedDate = $date
  1942   Tue Sep 19 19:22:31 2006 Reply Steve Jonessteve.jones@freescale.comQuestionAll2.6.2-1714Re: Re: Why are Preset fields blanked out?

Stefan Ritt wrote:

Steve Jones wrote:

I think I found it. Try this:
Locked Attributes = ApprovedDate, CompletedDate
##################################################
# Define CRState
#
Options CRState = PENDING{a}, APPROVED{b}, HOLD{a}, REJECTED{a}, COMPLETED{c}
{a}
{b} Preset ApprovedDate = $date
{c} Preset CompletedDate = $date

In my config when I remove the two attributes from "LOCKED ATTRIBUTES" the fields do not get blanked out.


No, even with that it does not get blanked out. Attached is the complete elogd.cfg with which it works fine in my case (R1714). Can you try that?



Quote:

Stefan, when I try that config in a demo logbook in my installation *but with all other items in [global] I get the same field-blanking behavior. I am going to try going back to a completely pristine .cfg, but I suspect this will work fine. I will need to add back in configuration items until I run into the culprit.

Ok, I found it. Try this config:
[global]
port = 8080


[demo]
Comment = Test
Attributes = Author, CRState, ApprovedDate, CompletedDate
Locked Attributes = ApprovedDate, CompletedDate
Type CompletedDate = date
Type ApprovedDate = date

Format CompletedDate = 1
Options CRState = PENDING{a}, APPROVED{b}, HOLD{a}, REJECTED{a}, COMPLETED{c}
{a}
{b} Preset ApprovedDate = $date
{c} Preset CompletedDate = $date

Setting the "Type" to "date" causes the blanking to occur.
  1943   Tue Sep 19 20:28:15 2006 Reply Stefan Rittstefan.ritt@psi.chQuestionAll2.6.2-1714Re: Re: Why are Preset fields blanked out?

Steve Jones wrote:

Setting the "Type" to "date" causes the blanking to occur.


Ok, then don't set the "Type" to "date" Wink
ELOG V3.1.5-3fb85fa6