Koha-clms/C4/SIP
Jonathan Druart fdc568afa9 Bug 23640: Flushing L1 on every SIP connection
This patch flushes the L1 cache on each SIP connection
(ie every invocation of process_request).

This means each SIP connection will fetch values from the
L2 cache (ie memcached) and persist the L1 cache (in Perl
memory cache) only until a new SIP connection comes in.

Without this patch, the L1 cache persists for the length
of the server process, which means the L1 cache will become
stale very quickly, which can lead to unexpected behaviour.

Test plan:
1. Enable IssueLog
2. Start SIP server
    2a. change to Koha git directory
    2b. koha-shell kohadev
    2c. perl C4/SIP/SIPServer.pm /etc/koha/sites/kohadev/SIPconfig.xml
3. Issue book via SIP

    perl misc/sip_cli_emulator.pl -a 127.0.0.1 -p 6001 -su term1 -sp term1 -l CPL --patron 1 --item 3999900000001 -m checkout

4. Check action_logs for "CIRCULATION ISSUE <borrowernumber> <biblionumber>" line

    http://localhost:8081/cgi-bin/koha/tools/viewlog.pl

5. Disable IssueLog

6. Check in the book and then check it out again

    perl misc/sip_cli_emulator.pl -a 127.0.0.1 -p 6001 -su term1 -sp term1 -l CPL --patron 1 --item 3999900000001 -m checkin
    perl misc/sip_cli_emulator.pl -a 127.0.0.1 -p 6001 -su term1 -sp term1 -l CPL --patron 1 --item 3999900000001 -m checkout

7. Check action_logs for "CIRCULATION ISSUE <borrowernumber> <biblionumber>" line

    http://localhost:8081/cgi-bin/koha/tools/viewlog.pl

8. Note results

Without the patch, you'll see a 2nd checkout.

With the patch, you won't see the 2nd checkout.

(Note: After applying the patch, you have to restart the SIP server.)

Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Joy Nelson <joy@bywatersolutions.com>
2020-03-05 00:14:54 +00:00
..
ILS Bug 19809: Re-allow to call Koha::Objects::find in list context 2020-02-11 19:27:34 +00:00
Sip Bug 20954: (QA follow-up) Rename syspref-overrides to syspref_overrides to maintain existing convention 2019-08-13 11:48:12 +01:00
t Bug 18432 : Follow up - Updating to use they/them 2017-04-21 10:56:43 -04:00
ILS.pm Bug 23057: If checked_in_ok is set and item is not checked out, alert flag is supressed for *any* reason 2019-07-16 14:39:49 +01:00
ILS.pod Bug 13506 [QA Follouwp] - Fix POD 2015-02-20 11:54:41 -03:00
Makefile bug 3435: SIP2 - 3M extension for SmartChute checkin. 2009-07-30 11:06:53 -04:00
README bug 2509: fix file permissions 2008-08-21 18:55:02 -05:00
SIPServer.pm Bug 23640: Flushing L1 on every SIP connection 2020-03-05 00:14:54 +00:00
Sip.pm Bug 20292: Filter/censor info sent via SIP 2019-06-24 15:33:48 +01:00
acstest.py adding openncip / opensip SIP2 service 2007-11-06 06:32:53 -06:00
example_institution_dump.sh Bug 7904 Change SIP modules to use standard LIB path 2015-02-05 14:44:54 -03:00
interactive_item_dump.pl Bug 17196: Move marcxml out of the biblioitems table 2017-01-13 13:49:26 +00:00
interactive_patron_check_password.pl Bug 7904 Change SIP modules to use standard LIB path 2015-02-05 14:44:54 -03:00
interactive_patron_dump.pl Bug 7904 Change SIP modules to use standard LIB path 2015-02-05 14:44:54 -03:00
interactive_renew_all_dump.pl Bug 7904 Change SIP modules to use standard LIB path 2015-02-05 14:44:54 -03:00
test.txt updating ILS::Patron for Koha. 2007-11-06 06:32:55 -06:00
xmlparse.pl Bug 7904 Change SIP modules to use standard LIB path 2015-02-05 14:44:54 -03:00

README

README for Open NSIP 3M-SIP Server

DEPENDENCIES

SIPServer is written entirely in Perl, but it require these CPAN
perl modules to run:

     Net::Server - The SIP server is a Net::Server::Prefork server
     XML::LibXML
     XML::Parser
     XML::Simple - for parsing the config file
     UNIVERSAL::require - for loading the correct ILS interface module
     Clone - for running the test cases

LOGGING

SIPServer uses syslog() for status and debugging messages.  All
syslog messages are logged using the syslog facility 'local6'.
If you need to change this, because something else on your system
is already using that facililty, just change the definition of
'LOG_SIP' at the top of the file SIPServer.pm

Make sure to update your syslog configuration to capture facility
'local6' and record it.