Configuration in repository.cfg
<repoName>.protocolservice.type=database <repoName>.protocolservice.database.driver= <repoName>.protocolservice.database.url= <repoName>.protocolservice.database.user= <repoName>.protocolservice.database.password= #<repoName>.protocolservice.database.read-connections.max= #default: 32, not after 2.7.0 #<repoName>.protocolservice.database.read-connections.min= #default: 32, not after 2.7.0 #<repoName>.protocolservice.database.read-connections.shared= #default: false, not after 2.7.0 #<repoName>.protocolservice.database.write-connections.max= #default: 32, not after 2.7.0 #<repoName>.protocolservice.database.write-connections.min= #default: 32, not after 2.7.0 #<repoName>.protocolservice.database.cache-statements= #default: false, not after 2.7.0 #<repoName>.protocolservice.database.cache-statements.size= #default: 50, not after 2.7.0 #<repoName>.protocolservice.database.minimumIdle= #default: maximumPoolSize #<repoName>.protocolservice.database.maximumPoolSize= #default: 10 #<repoName>.protocolservice.database.connectionTimeout= #default: 30000 #<repoName>.protocolservice.database.idleTimeout= #default: 600000 #<repoName>.protocolservice.database.keepaliveTime= #default: 0 #<repoName>.protocolservice.database.maxLifetime= #default: 1800000 #<repoName>.protocolservice.database.scripts= #default: classpath:sql/prot/migration/h2|sqlserver|oracle, dependening on database provider , 3.0.0+
As of version 2.7.0 we switched from EclipseLink to Hibernate, therefore some parameters have changed.
H2
<repoName>.protocolservice.database.driver=org.h2.Driver <repoName>.protocolservice.database.url=jdbc:h2:C:/h2db.db;FILE_LOCK=FS;TRACE_LEVEL_SYSTEM_OUT=0
Oracle
<repoName>.protocolservice.database.driver=oracle.jdbc.OracleDriver <repoName>.protocolservice.database.url=jdbc:oracle:thin:@localhost:49161:xe
MSSQL
<repoName>.protocolservice.database.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver <repoName>.protocolservice.database.url=jdbc:sqlserver://localhost:1433;databaseName=CONTENTSERVER;
Required Configuration for Searching in Protocols:
Make sure that your configuration has the following values:
FI.protocolservice.document.properties=name,contentlength,path,contentDigest FI.protocolservice.container.properties= name,path
Supported values for document:starttime,endtime,requestid,path,id,respository,status,message,command,object,module,client,user,objectcommand,objectid,contentLength,contentType,contentDisposition,contentDigest,contentDigestAlgorithm,contentEncoding,creationTime,modificationTime,creationUser,modificationUser
Supported values for container:
name,path
Tables:
PROTOCOL
Contains one record per access, defines acces modul and access data
PROTKEY_VALUES
multiple records per access, contains details according to configuration
Example Queries (based on MSSQL)
find all Entries
SELECT p.*, pv.FIELDSTRINGVALUE as 'Path' FROM [PROTOCOL] p inner join PROTKEY_VALUES pv on p.RECORDID = pv.RECORDID where pv.FIELDID = 'path'
find read entries only
you can replace “read“ with the following values to get only certain categories:
Value | Description |
---|---|
read | all read access to a folder or document (only CMIS/ILM) |
create | all create folder or document entries |
update | all update requests |
delete | all delete requests for folder or documents |
info | for info requests (AricheLink or ILM) |
admin | all admin access like create put certificate or serverInfo |
SELECT p.*, pv.FIELDSTRINGVALUE as 'Path' FROM [PROTOCOL] p inner join PROTKEY_VALUES pv on p.RECORDID = pv.RECORDID where pv.FIELDID = 'path' and p.COMMANDCATEGORY = 'read'
ArchiveLink based Queries
All protocols ArchiveLink entries:
Protocols for documents and components create seperate protocoll entries. A “Create” exists for creation of the document and for each component. Same applies for other commands.
COMMANDOBJECT | Description |
---|---|
document | Protocols for the ArchiveLink Component |
container | Protocol for the ArchiveLink Document |
select CLIENT,COMMANDOBJECT,COMMANDMESSAGE, COMMANDCATEGORY,COMMANDSTATUS,STARTTIME,ENDTIME,MODULENAME,REPOSITORYNAME,REQUESTID, (select FIELDSTRINGVALUE from PROTKEY_VALUES pv inner join PROTOCOL prot on PROT.RECORDID = pv.RECORDID and prot.REQUESTID = P.REQUESTID where FIELDID = 'path' and prot.COMMANDOBJECT = 'document') as DOCUMENT, (select FIELDSTRINGVALUE from PROTKEY_VALUES pv inner join PROTOCOL prot on PROT.RECORDID = pv.RECORDID and prot.REQUESTID = P.REQUESTID where FIELDID = 'name' and prot.COMMANDOBJECT = 'document') as COMPONENT, (select FIELDINTVALUE from PROTKEY_VALUES pv inner join PROTOCOL prot on PROT.RECORDID = pv.RECORDID and prot.REQUESTID = P.REQUESTID where FIELDID = 'contentlength' and prot.COMMANDOBJECT = 'document') as SIZE, (select FIELDSTRINGVALUE from PROTKEY_VALUES pv inner join PROTOCOL prot on PROT.RECORDID = pv.RECORDID and prot.REQUESTID = P.REQUESTID where FIELDID = 'contentDigest' and prot.COMMANDOBJECT = 'document') as HASHVALUE from Protocol p where MODULENAME = 'ContentServer4ArchiveLink'
Filter based on docID:
Enter docID instead of example value 85DCD9A03683496DB7B9A8BFED0EBEAD
select*, CLIENT,COMMANDOBJECT,COMMANDMESSAGE, COMMANDCATEGORY,COMMANDSTATUS,STARTTIME,ENDTIME,MODULENAME,REPOSITORYNAME,REQUESTID, pv.FIELDSTRINGVALUE as 'PATH', (select FIELDINTVALUE from PROTKEY_VALUES pv inner join PROTOCOL prot on PROT.RECORDID = pv.RECORDID and prot.REQUESTID = P.REQUESTID where FIELDID = 'contentlength' and prot.COMMANDOBJECT = 'document') as SIZE, (select FIELDSTRINGVALUE from PROTKEY_VALUES pv inner join PROTOCOL prot on PROT.RECORDID = pv.RECORDID and prot.REQUESTID = P.REQUESTID where FIELDID = 'contentDigest' and prot.COMMANDOBJECT = 'document') as HASHVALUE from Protocol p inner join PROTKEY_VALUES pv on p.RECORDID = pv.RECORDID and pv.FIELDID = 'path' where pv.FIELDID = 'path' and MODULENAME = 'ContentServer4ArchiveLink' and pv.FIELDSTRINGVALUE like '%85DCD9A03683496DB7B9A8BFED0EBEAD%'