| YAZ-ZTEST(8) | System management commands | YAZ-ZTEST(8) |
نام (NAME)
yaz-ztest - سرور آزمایشی Z39.50/SRU
خلاصه دستور (SYNOPSIS)
application [-install] [-installa] [-remove] [-a file] [-v level] [-l file] [-u uid] [-c config] [-f vconfig] [-C fname] [-t minutes] [-k kilobytes] [-K] [-d daemon] [-w dir] [-p pidfile] [-r kilobytes] [-ziDSTV1] [listener-spec...]
توضیحات (DESCRIPTION)
yaz-ztest یک سرور آزمایشی Z39.50/SRU است که از API سرور فرانتاند عمومی YAZ (GFS) استفاده میکند. این سرور مانند یک سرور واقعی Z39.50/SRU عمل میکند اما از پایگاهداده استفاده نمیکند. این برنامه تعداد نتایج تصادفی را برمیگرداند و زیرمجموعهای از چند رکورد داخلی را ارائه میدهد.
مشخصه listener-spec شامل یک حالت انتقال به همراه دونقطه و به دنبال آن یک نشانی شنونده است. حالت انتقال یکی از موارد tcp، unix یا ssl است.
برای TCP و SSL، یک نشانی به شکل زیر است:
hostname | IP-number [ : portnumber ]
برای سوکت محلی UNIX، نشانی نام پرونده سوکت محلی است.
گزینهها (OPTIONS)
-a file
-S
-1
-T
-s
-z
-l file
-c config
-f vconfig
-C fname
-v level
-u uid
-w dir
-p pidfile
-i
-D
-install
-installa
-remove
-t minutes
-k size
-K
-r size
-d daemon
-m time-format
-V
آزمایش (TESTING)
yaz-ztest به طور معمول یک تعداد نتیجه تصادفی بین 0 و 24 برمیگرداند. با این حال، اگر عبارت پرسوجو شامل ارقام پیشرو باشد، مقدار صحیح آن عبارت به عنوان تعداد نتایج استفاده میشود. این به آزمایشکنندگان اجازه میدهد هر تعداد نتیجهای را دریافت کنند. yaz-ztest شامل 24 رکورد MARC برای آزمایش است. تعداد نتایج فراتر از 24 باعث میشود yaz-ztest همان دسته رکورد را بارها و بارها برگرداند. بنابراین رکورد در موقعیت 1، 25، 49 و غیره معادل یکدیگر هستند.
برای XML، اگر هیچ مجموعه عنصری داده نشود یا عنصر دارای مقدار "marcxml" باشد، MARCXML برگردانده میشود (هر یک از 24 رکورد ساختگی از ISO2709 به XML تبدیل میشوند). برای مجموعه عنصر OP، در این صورت OPAC XML برگردانده میشود.
برنامه yaz-ztest همچنین ممکن است رکوردهای XML از پیش تعریفشده را برگرداند (برای آزمایش). این مورد در صورتی فعال میشود که متغیر محیطی YAZ_ZTEST_XML_FETCH تعریف شده باشد. یک رکورد از یک پرونده واکشی میشود (یک رکورد در هر پرونده). مسیر نام پرونده به صورت FE.d.xml است که در آن F مقدار YAZ_ZTEST_XML_FETCH (احتمالاً خالی)، E مجموعه عنصر، و d موقعیت رکورد (با شروع از 1) است.
پایگاههای داده زیر توسط yaz-ztest پشتیبانی میشوند: Default، slow و db.* (تمام پایگاههای داده با پیشوند "db"). هر پایگاهداده دیگری باعث میشود yaz-ztest کد خطای تشخیصی 109 را با عنوان "Database unavailable" برگرداند.
گزینههای جستجو ممکن است به شکل آرگومانهای get در URL به عنوان بخشی از نام پایگاهداده Z39.50 گنجانده شوند. گزینههای پایگاهداده زیر موجود هستند: search-delay، present-delay، fetch-delay و seed.
گزینههای قبلی از نوع تأخیر، یک تأخیر ساختگی (sleep) را مشخص میکنند که yaz-ztest به ترتیب هنگام جستجو، ارائه و واکشی رکوردها انجام میدهد. مقدار تأخیر ممکن است یک مقدار ممیز شناور ثابت باشد که تأخیر را بر حسب ثانیه مشخص میکند. از طرف دیگر، مقدار میتواند به صورت دو عدد ممیز شناور جداشده با دونقطه داده شود که باعث میشود yaz-ztest یک وقفه تصادفی بین عدد اول و دوم انجام دهد.
پارامتر پایگاهداده seed یک عدد صحیح به عنوان مقدار میگیرد. این کار تابع srand را با این عدد صحیح فراخوانی میکند تا اطمینان حاصل شود که رفتار تصادفی قابل تکرار است.
فرض کنید میخواهیم جستجوها بین 0.1 و 0.5 ثانیه طول بکشند و یک واکشی 0.2 ثانیه طول بکشد. برای دسترسی به پایگاهداده آزمایشی Default از عبارت زیر استفاده میکنیم: Default?search-delay=0.1:0.5&fetch-delay=0.2.
پیکربندی GFS و میزبانهای مجازی (GFS CONFIGURATION AND VIRTUAL HOSTS)
مکانیزم میزبانهای مجازی (Virtual hosts) به سرور فرانتاند YAZ اجازه میدهد تا از چندین بکاند پشتیبانی کند. یک بکاند بر اساس اتصال TCP/IP (درگاه + نشانی شنونده) و/یا میزبان مجازی انتخاب میشود.
یک بکاند میتواند طوری پیکربندی شود که در یک دایرکتوری کاری خاص اجرا شود. یا فرانتاند YAZ ممکن است تبدیل CQL به RPN را انجام دهد، بنابراین اجازه میدهد بکاندهای سنتی Z39.50 به عنوان سرویس SRW/SRU ارائه شوند. اطلاعات SRW/SRU Explain برای یک بکاند خاص نیز میتواند مشخص شود.
برای پروتکل HTTP، میزبان مجازی در سرآیند Host مشخص میشود. برای پروتکل Z39.50، میزبان مجازی همانند Initialize Request در OtherInfo با شناسه OID 1.2.840.10003.10.1000.81.1 مشخص میگردد.
نکته
همه کلاینتهای Z39.50 اجازه تنظیم اطلاعات VHOST را نمیدهند. برای آنها، انتخاب بکاند باید تنها به اطلاعات TCP/IP (درگاه و نشانی) متکی باشد.
سرور فرانتاند YAZ از XML برای توصیف پیکربندیهای بکاند استفاده میکند. گزینه خط فرمان -f نام پرونده پیکربندی XML را مشخص میکند.
این پیکربندی از عنصر ریشه yazgfs استفاده میکند. این عنصر شامل فهرستی از عناصر listen و به دنبال آن یک یا چند عنصر server است.
عنصر listen شنونده (نقطه پایانی انتقال) مانند TCP/IP، سوکت پرونده یونیکس یا سرور SSL را توصیف میکند. محتوای یک شنونده:
CDATA (الزامی)
صفت id (اختیاری)
نکته
ما انتظار داریم در نسخه آینده اطلاعات بیشتری به بخش listen اضافه شود، مانند پرونده CERT برای سرورهای SSL.
عنصر server یک سرور و پارامترهای مربوط به این نوع سرور را توصیف میکند. محتوای یک سرور:
صفت id (اختیاری)
صفت listenref (اختیاری)
عنصر config (اختیاری)
عنصر directory (اختیاری)
عنصر host (اختیاری)
عنصر cql2rpn (اختیاری)
عنصر ccl2rpn (اختیاری)
عنصر stylesheet (اختیاری)
عنصر client_query_charset (اختیاری)
عنصر docpath (اختیاری)
عنصر explain (اختیاری)
عنصر maximumrecordsize (اختیاری)
عنصر retrievalinfo (اختیاری)
کد XML زیر سروری را پیکربندی میکند که اتصالات را از دو درگاه میپذیرد: درگاه TCP/IP به شماره 9900 و یک سوکت پرونده محلی UNIX. ما سرور TCP/IP را public و سرور دیگر را internal مینامیم.
<yazgfs>
<listen id="public">tcp:@:9900</listen>
<listen id="internal">unix:/var/tmp/socket</listen>
<server id="server1">
<host>server1.mydomain</host>
<directory>/var/www/s1</directory>
<config>config.cfg</config>
</server>
<server id="server2" listenref="public,internal">
<host>server2.mydomain</host>
<directory>/var/www/s2</directory>
<config>config.cfg</config>
<cql2rpn>../etc/pqf.properties</cql2rpn>
<explain xmlns="http://explain.z3950.org/dtd/2.0">
<serverInfo>
<host>server2.mydomain</host>
<port>9900</port>
<database>a</database>
</serverInfo>
</explain>
</server>
<server id="server3" listenref="internal">
<directory>/var/www/s3</directory>
<config>config.cfg</config>
</server>
</yazgfs>
سه سرور بکاند پیکربندی شده وجود دارد. دو سرور اول، "server1" و "server2"، میتوانند توسط هر دو نشانی شنونده در دسترس قرار گیرند. "server1" توسط همه (هر دو) در دسترس است زیرا هیچ صفت listenref مشخص نشده است. "server2" توسط دو شنونده مشخصشده در دسترس است. به منظور تمایز بین این دو، یک میزبان مجازی برای هر سرور در عناصر host مشخص شده است.
برای "server2" عناصری برای تبدیل CQL به RPN پشتیبانی شده و اطلاعات explain اضافه شده است (در اینجا یک نمونه کوتاه برای کوچک نگه داشتن مثال آورده شده است).
سرور سوم، "server3" تنها از طریق شنونده "internal" قابل دسترسی است.
فایلها (FILES)
yaz-<version>/ztest/yaz-ztest.c
yaz-<version>/include/yaz/backend.h
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
Index Data
| 05/20/2026 | YAZ 5.37.3 |