Pid Cache Manager Service

This Page describes the PID cache service.

ID (Label)
PIDC

Complete Name
PID Cache Manager Service

Status
Running with pidmanager 0.6

Description

 * The PID cache service is a client to the GWDG PID Handle Service.
 * The PID cache service is used as an alternative to the PIDManager service offered by eSciDoc core infrastructure (PID Service without pre-cached PIDs).
 * The PID cache service holds pre-created PIDs which are assigned to an eSciDoc content resource by calling the Item/Container Handler methods (assignObjectPid, assignVersionPid or assignContentPid).

Service Interface

 * The PID cache service provides a REST interface:
 * GET: /pidcache/handle/read, implemting 2 methods:
 * /view?pid= - resolve PID
 * /search?url= - Find a PID
 * PUT: Not allowed.
 * POST: /pidcache/handle/write - Implements 2 methods:
 * /create - Create a PID at GWDG (url passed as body parameter).
 * /update?pid= - Update a PID with new url (url passed as body parameter)
 * DELETE: (Not allowed)

Installation

 * 1) Install files in deploy directory:
 * 2) pidmanger.war
 * 3) pid_cache.ear
 * 4) pid-cache-ds.xml (see source below)
 * 5) Defines properties in conf directory and changes with your own credentials (see sources below):
 * 6) PidManager.properties
 * 7) gwdg.properties with: http://your.escidoc.url.org:8080/pidcache/handle/ (changes with correct escidoc url)
 * 8) pidcache.properties (if installed with pubman, then uses pubman.properties instead)
 * 9) escidoc-core.properties

pid-cache-ds.xml
  PidCache false jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}localDB org.hsqldb.jdbcDriver sa 5 20</max-pool-size> <idle-timeout-minutes>0</idle-timeout-minutes> <track-statements/> <security-domain>HsqlDbRealm</security-domain> <prepared-statement-cache-size>32</prepared-statement-cache-size> <type-mapping>Hypersonic SQL</type-mapping> jboss:service=Hypersonic,database=localDB </local-tx-datasource>

escidoc-core.properties
escidoc-core.PidSystemFactory = de.escidoc.core.common.persistence.impl.PIDManagerRESTServiceFactory
 * 1) uncomment following line to use the PID Manager as PID service backend

escidoc-core.PidSystemRESTService.host = http://localhost:8080/pidmanager/pid/
 * 1) set parameter for the PID Managment service
 * 1) set parameter for the PID Managment service

escidoc-core.PidSystemRESTService.user = pid_manager
 * 1) must match <entry key="PIDManager:User"> in PidManager.properties

escidoc-core.PidSystemRESTService.password = XXX_SOME_PASSWORD_XXX
 * 1) must match <entry key="PIDManager:Password"> in PidManager.properties

escidoc-core.PidSystem.globalPrefix = gwdg
 * 1) must match <entry key="globalPrefix"> in gwdg.properties

gwdg.properties
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> Local Handle Resolver Access Parameter <entry key="globalPrefix">gwdg

<entry key="service.url">http://my.escidoc.url.org:8080/pidcache/handle/ <entry key="service.username">pid_manager <entry key="service.password">XXX_SAME_PASSWORD_AS_IN_escodoc-core.properties_XXX

<entry key="ResourcePath:Handle">/gwdg <entry key="ResourcePath:Resolve">/gwdg/{suffix}

<entry key="IdGenerator:Mode">service

<entry key="localPrefix">

<entry key="IdGenerator:Mode.override">true

true <entry key="debug.traceMessages">true

<entry key="debug.coldRun">false

<entry key="debug.identifier">test-handle-123:3

<entry key="ResourceClass">de.escidoc.pidmanager.pidSystems.handleGWDG.Handle

<entry key="BindingResources">Handle;Resolve

pidcache.properties
escidoc.pidcache.cache.size.max=1000 escidoc.pidcache.refresh.interval=1 escidoc.pidcache.dummy.url=http://pubman.mpdl.mpg.de/pubman/faces/PidNotResolved.jsp?id= escidoc.pid.gwdg.service.url=http://handle.gwdg.de:8080/pidservice escidoc.pid.gwdg.timeout=10000 escidoc.pid.pidcache.service.url=http://localhost:8080/pidcache/handle escidoc.pid.service.create.path=/write/create escidoc.pid.service.view.path=/read/view escidoc.pid.service.delete.path=/write/delete escidoc.pid.service.update.path=/write/modify escidoc.pid.service.search.path=/read/search escidoc.pid.gwdg.user.login=XXX_YOUR_USER_XXX escidoc.pid.gwdg.user.password=XXX_YOUR_PASSWORD_XX escidoc.pidcache.user.name=pid_manager escidoc.pidcache.user.password=XXX_SAME_PASSWORD_AS_IN_escodoc-core.properties_XXX
 * 1) PID cache properties
 * 1) must match <entry key="PIDManager:User"> in PidManager.properties
 * 1) must match <entry key="PIDManager:Password"> in PidManager.properties

PidManager.properties
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> REST Structure <entry key="PIDManager:Port">8080 <entry key="PIDManager:ServicePath">/handle

<entry key="PIDManager:RestrictAccess">true <entry key="PIDManager:User">pid_manager <entry key="PIDManager:Password">XXX_SAME_PASSWORD_AS_IN_escodoc-core.properties_XXX <entry key="Resources">gwdg

<entry key="Resource:gwdg">gwdg.properties

<entry key="PIDManager:LogConfigFile">log4j-pidmanager.xml

<entry key="IdGenerator:Storage">SQLite <entry key="SQLite:DBFile">pidmanager.sqlite

<entry key="IdGenerator:NoidMinterURL">http://localhost/cgi-bin/noid/niodu_kt5