Comments (4)
JIRA User: Chris Delis (cedelis)
JIRA Timestamp: 2016-03-17 04:28 PM
It seems that when there are missing items, the ones belonging to the patron's home library continue to display.
from vufind.
JIRA User: Chris Delis (cedelis)
JIRA Timestamp: 2016-03-21 10:37 AM
I'm just cut&pasting a sanity script that can be run continuously in order to test the validity of the UB calls, specifically the storage retrieval requests:
#!/bin/sh
VALID_NUMBER=9
CALLS_BETWEEN_SLEEP=5
SLEEP_IN_SECS=2
while true; do
CNT=expr ${CNT} + 1
;
if [ expr ${CNT} % ${CALLS_BETWEEN_SLEEP}
-eq 0 ] ; then
sleep ${SLEEP_IN_SECS};
fi ;
date;
OUTPUT=wget -O- -q 'http://voyager-pooled-test.carli.illinois.edu:19913/uiu/vxws/patron/21054/circulationActions/requests/callslips?patron_homedb=1@UIUDB20020422223437&view=full'
NUMBER=echo ${OUTPUT} | xmllint --format - | grep "<callslip " | wc -l
echo -n "Number of callslips: $NUMBER"
if [ $NUMBER -eq $VALID_NUMBER ] ; then
echo " is valid."
else
echo " is *_NOT VALID_* Should be: ${VALID_NUMBER}."
echo $OUTPUT | xmllint --format -
fi
echo
done
from vufind.
JIRA User: Chris Delis (cedelis)
JIRA Timestamp: 2016-03-21 01:36 PM
I think I have this solved.
I temporarily turned off pooled opacsvr and noticed the problem went away.
It then got me thinking about how the pooled opacsvr was set up. I noticed that the ub_timeout_secs was set to 60 seconds. I changed it to 0 (meaning indefinitely):
more props/pool_UIU.properties
local_port=14500
remote_server=localhost
remote_port=14501
initial_pool=20
minimum_pool=20
maximum_pool=60
maximum_servers=180
grow_pool_by=2
client_timeout_secs=0
server_timeout_secs=0
ub_timeout_secs=0
log4jconfig=log4j_UIU.properties
init_request=../init_request.txt
init_response=../init_response.txt
There are 3 timeout settings, client/server/ub. Here's what they mean:
Background: the pooled opacsvr acts as a proxy to a backend "real" opacsvr (where it keeps a pool of opacsvr connections alive at the ready - which is fast - and so that it can re-use these connections)
client_timeout_secs : the pooled opacsvr is the client in this case (since it is acting as a proxy). this means that the pooled opacsvr will close this connection if the backend "real" opacsvr does not respond in client_timeout_secs.
server_timeout_secs: the pooled opacsvr is the server in this case (the client is the one making use of our service). If the pooled opacsvr detects no activity from the client, it will close this connection in server_timeout_secs.
ub_timeout_secs: sometimes the pooled opacsvr is called by the "real" opacsvr. this usually (always?) occurs when a backend "real" opacsvr needs to make a UB request. These connections have their own timeout, ub_timeout_secs.
So, basically, what I think was going on was this:
VXWS employs its own pool of opacsvrs; it is called VACS. But VACS doesn't PRE-load the opacsvr connections; and nor does it PRE-load those intermediary UB opacsvr connections. This is why our pooled opacsvr implementation is still relevant: it's a LOT faster because it preloads the opacsvr connections. In any case, the VACS assumes that the intermediary UB opacsvr connections remain intact after each use, i.e., we need to make sure the our own pooled opacsvr honors this assumption. Still, the VACS should have been able to handle the prematurely closed UB opacsvr connections by either creating a new connection or reporting an error; instead, it simply failed silently, which gave the impression of success (which is a terrible, terrible thing).
tl;dr - setting ub_timeout_secs to 0 (never) in our pooled opacsvr seems to have solved this issue.
from vufind.
Resolved: 2016-03-21 01:40 PM
from vufind.
Related Issues (20)
- Add 690 to subjects displaying in core single record HOT 3
- Add 020 $q to display in ISBN field HOT 6
- Specification for Bib 856 field display on New VuFind single record page HOT 5
- Add new Credits field to Description Tab HOT 3
- Move "Description of Work" from Description tab to Core HOT 6
- Make I-Share logo a link to the splash page HOT 3
- Why is there one Item line above the Most Recent Received Issues line(s) in Holdings tab? HOT 3
- Library default pick-up location not being honored in UB requests starting in Jan. 2019 HOT 4
- Results list sometimes shows word "Published" with no date on DEVEL HOT 5
- Remove subfields from getDescriptionOfWork HOT 3
- Add UPC to Syndetics Solutions image URLs HOT 2
- Uncomment getDateSpan HOT 5
- Add Google Fi to list of cell carriers for Text Me function HOT 5
- Suppress Bib 852 from staff view?
- adjust UIC stackmap setup HOT 3
- Remove 856s with text "sample" from Results page
- Update Syndetics subscriptions for FY20 HOT 2
- Update I-Share Catalog button links in WebVoyage HOT 1
- I-Share uc phrase search with quotes and "Hide e-resources..." returns zero results HOT 3
- Suppress local requesting for COL (not SAI) HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vufind.