Vault Customizing Guide 70

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 344

DownloadVault Customizing Guide 70
Open PDF In BrowserView PDF
EngageOne™ Communication Suite

EngageOne™ Vault
Customizing Guide
Version 7.0

Copyright ©2013 Pitney Bowes Software Inc. All rights reserved.
This publication and the software described in it is supplied under license and may only be used or
copied in accordance with the terms of such license. The information in this publication is provided
for information only, is subject to change without notice, and should not be construed as a
commitment by Pitney Bowes Software Inc. To the fullest extent permitted by applicable laws Pitney
Bowes Software Inc. excludes all warranties, representations and undertakings (express or implied) in
relation to this publication and assumes no liability or responsibility for any errors or inaccuracies
that may appear in this publication and shall not be liable for loss or damage of any kind arising from
its use.
Except as permitted by such license, reproduction of any part of this publication by mechanical,
electronic, recording means or otherwise, including fax transmission, without the express permission
of Pitney Bowes Software Inc. is prohibited to the fullest extent permitted by applicable laws.
Nothing in this notice shall limit or exclude Pitney Bowes Software Inc.'s liability in respect of fraud or
for death or personal injury arising from its negligence. Statutory rights of the user, if any, are
unaffected.
*TALO Hyphenators and Spellers are used. Developed by TALO B.V., Bussum, Netherlands
Copyright © 1998 *TALO B.V., Bussum, NL
*TALO is a registered trademark ®
Encryption algorithms licensed from Unisys Corp. under U.S. Patent No. 4,558,302 and foreign counterparts.
Security algorithms Copyright ©
1991-1992 RSA Data Security Inc.
Base 14 fonts and derivations
Copyright 1981 – 1983, 1989, 1993 Heidelberger Druckmaschinen AG.
All rights reserved.
Datamatrix and PDF417 encoding, fonts and derivations
Copyright © 1999, 2000 DL Technology Ltd.
All rights reserved
Barcode fonts Copyright © 1997 Terrapin Solutions Ltd. with NRB Systems Ltd.
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).
Artifex and the Ghostscript logo are registered trademarks and the Artifex logo and Ghostscript are trademarks of Artifex
Software, Inc.
This product contains the Regex++ library
Copyright © 1998-2000
Dr. John Maddock
PostScript is a trademark of Adobe Systems Incorporated.
PCL is a trademark of Hewlett Packard Company.

Portions of this software are copyright © 2013
The FreeType Project (www.freetype.org).
All rights reserved.
This software contains Ghostscript as licensed by Artifex Software Inc. under the terms of a specific OEM agreement.
The software includes ICU - International Components for Unicode (http://site.icu-project.org/)
Copyright (c) 1995-2013 International Business Machines Corporation and others
This software is based in part on the work of the Independent JPEG Group.
This software contains material from OpenSSL.
Copyright (c) 1998-2013 The OpenSSL Project. All rights reserved.
This software contains material from SSLeay.
Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
This software contains material from zlib (zlib.net)
Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
This software contains material from the Apache Xerces project
Licensed under the Apache License, Version 2.0 (the "License")
Otherwise all product names are trademarks or registered trademarks of their respective holders.
Printed in the UK.

Contents
THE VAULT ENVIRONMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
CUSTOMIZING THE VAULT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Vault performance and capacity planning . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Vault Initialization files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Vault Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Advanced ADM Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Working with Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Emulating paper stock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Rendering Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

VAULT PERFORMANCE & CAPACITY PLANNING . . . . . . . . . . . . . . . . . . . . . . . . 20
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Storage Capacity Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Disk Requirements for Print Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Job size planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Computing Compression Rates and Ratios . . . . . . . . . . . . . . . . . . . . . . . 22
Finding the Test Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Analyzing the Test Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Search performance considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Mitigating the Search Lock Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Implications of Using the Unfiltered Searches . . . . . . . . . . . . . . . . . . . . 31

5

Contents

VAULT INITIALIZATION FILES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Client initialization file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Patterns initialization file. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Profiles initialization file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Extracting document information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Resource set assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
AFP settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Metacode settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Postscript settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
TIFF settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Working with HTML in XML datastreams . . . . . . . . . . . . . . . . . . . . . . . . . 64
PDF settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Extracting summary document information from DJDE and DJDELINE
formatted documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Server initialization file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Database initialization file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Indexer as a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Unicode indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Local initialization file. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
e2loaderd, e2Renderd, e2Serverd and indexerd initialization files . . . . . . 79
On Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Command line switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Services commands (e2loaderd,e2serverd,e2renderd) . . . . . . . . . . . . . 79
Relocating the PID files within e2serverd.ini, e2loaderd.ini, and
indexerd.ini (Solaris, AIX, and Linux) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Installing multiple servers or Rendering Engines . . . . . . . . . . . . . . . . . 80
General settings for the new services . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
e2Routerd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
indexerd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Database rollback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

6

Contents

e2Serverd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
e2Renderd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

VAULT UTILITIES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
afpdecode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
afpextract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
afpsubstitute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
databasecheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
fileinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
indexcheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
metadecode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
metaextract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
metaresource. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
metasubstitute. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
metasubstitute -u option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
e2util . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Using flag files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
vaultflag.bat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
vaultflag.sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
vaultservices.bat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

MOBILE VAULT BUILD SCRIPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
ADVANCED ADM CONFIGURATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
ADM Vault replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Configuring the ADM replication server . . . . . . . . . . . . . . . . . . . . . . . . . 123
ADM Vault Purging / Document Expiry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Document Kill Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

7

Contents

Script selections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Media Build script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
ODBC export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Configuring ODBC Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Automatic Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Manual Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
How to set up ODBC DSN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
ADM error e-mail notification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
ADM Reset notification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

INDEXING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Vault Indexer as a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Enabling the Indexer as a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Converting an existing database to use the Indexer as a Service . . . . 142
Converting a database back to the legacy database . . . . . . . . . . . . . . . 142
Installation changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Log files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
e2util utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Indexcheck utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Unsupported Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
New initialization file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Trouble shooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Using a text file for indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Job level information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Document level information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Section level information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Attribute information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Ignored page information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Custom indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

8

Contents

Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Default Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Index Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Profiles.ini Settings Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Restrict . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
IndexQueuing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
RotationMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
MaxRotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
MaxInstances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
IndexingPrescan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Database.ini Settings Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Render . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
LanguageDefault . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
ModeDefault . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Index Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Common Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Field Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Sample Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Minimal Index Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Unicode Index Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Indexerd Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Generic indexing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Key fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Extracting from AFP data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Extracting from AFP TLE data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Customizing the Metacode indexing process . . . . . . . . . . . . . . . . . . . . 172
Rebuilding a Vault index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
9

Contents

WORKING WITH FONTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178
Managing fonts in PDF exports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178
Suppression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179
Bitmap Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180
Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180
Automatic Embedding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183
Explicit Embedding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183
AFP outline fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184

EMULATING PAPER STOCK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190
Optimizing PDF size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
Font Embedding or Substituting: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
PDF Compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
Configuring PDF background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197
Old mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197
New mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198

ABOUT THE RENDERING ENGINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202
Algorithm support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204
AFP IOCA compression algorithm support list . . . . . . . . . . . . . . . . . . . .204
PDF stream object filter algorithms support list . . . . . . . . . . . . . . . . . .204
TIFF compression algorithms support list . . . . . . . . . . . . . . . . . . . . . . .205
Sample applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207
Perl sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207
Using the Perl Sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210
Using the Perl Sample with SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211
Sample Java web client application: Vault ServiceWeb2 . . . . . . . . . . .211
Customizing and building ServiceWeb2 from source . . . . . . . . . . . . . .215
Configuring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217
Batch Printing from the web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220

10

Contents

Printing batches of documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Multiple databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Batch reprinting of documents in Vault . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Triggering the batch Reprint Process . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Submitting documents for Batch Reprinting . . . . . . . . . . . . . . . . . . . . . 223
Batch Reprint Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

DEVELOPING VAULT APPLICATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Message Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Data input and Render output options . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Render engine connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
API sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
.NET API (e2NetRender) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
e2NetRender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
e2NetRender.render2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Java API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Installing the Java API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Overview of classes and usage details . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Connection and disconnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Connecting to an SSL-enabled Vault server . . . . . . . . . . . . . . . . . . . . . 258
Importing the Vault server's SSL certificate into the Java system-wide CA certificates
truststore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
On UNIX platforms: cp cacerts cacerts.ORIG . . . . . . . . . . . . . . . . . . . . 259
Importing the Vault server's SSL certificate into a separate/private truststore 260
SSL client authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Classes and usage details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Vault Web Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Configurating and setting up your Web Service environment . . . . . . . 275
Programming the E2VaultWS web service . . . . . . . . . . . . . . . . . . . . . . . . . 278
11

Contents

Web Service data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Web service interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
web service names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
web service interfaces calling procedures . . . . . . . . . . . . . . . . . . . . . . . 288
Create a web service client of Java console application with NetBeans 6.8
IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Create a web service client of C# console application with Visual Studio
2008: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Communicating directly to the Rendering Engine . . . . . . . . . . . . . . . . . . . 292
Creating message formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Page sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

VAULT AND E-MESSAGING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Automatic or minimum click indexing . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Folder permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Retrieving message content from Vault . . . . . . . . . . . . . . . . . . . . . . . . . 330

UPDATING UNICODE INDEXES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Maintaining your current script character sorting order . . . . . . . . . . . 337
Testing your indexes for sort order changes in non-script characters . .
337
Correcting the sort order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Legacy indexer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Create and test the new index file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Indexer as a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339

INDEX 341

12

Contents

13

The Vault environment
The Vault suite of products support storage, display, management and processing of composed
documents in electronic environments. Many of the Vault components are optional so you
should consider the information in this overview in relation to the licenses you actually own.
The Vault is the central document repository and forms the hub of the Vault environment. The
Vault is comprised of two software components: the Vault Server Daemon, which services
incoming index searches and document requests, and the Vault Loader Daemon, which
manages the load or ingestion processes. These software components may be Daemons on
Unix or Linux platforms, or Windows Services.
In versions 5.4 and greater, these modules are no longer started underneath a single “archive”
service, nor controlled by “archive.ini”. Rather, they are each registered with the system and
started individually, and configured via .ini e.g. e2loaderd.ini.
Vault supports a wide variety of print streams and non-print stream files. Vault internally splits
all incoming files into logical pages for retrieval purposes, and ordinarily these pages are
grouped into logical documents via the Document Interchange Journal (DIJ), an XML or
Pipe-delimited side-file. End-users ordinarily request these logical documents (e.g. Jane Doe’s
May Statement), rather than the entire print stream (e.g. the May 15th Nightly Print Cycle).
Print Streams that are supported by Vault can be broadly categorized as Natively-Supported
Formats (AFP, Metacode, Line Data, DJDE, DJDELINE, AFPLINE), Library-Supported Formats
(PostScript), and non-renderable formats (Collections, or “BLOBs”, and XML, PDF). In general,
Vault can render any page, or page range, of natively-supported formats as a GIF, PDF, PNG, or
Text, with or without background (Paper Stock) emulation enabled. Library-Supported
Formats are similar, but backgrounds are configured differently. Finally, Non-renderable
formats can only be returned back as their original format, and only PDF supports background
emulation.
The Mobile Vault is supplied with the Vault and is a Windows based component that allows
documents to be read from a local copy of the document Vault.
Vault Service
The Vault Service family of products provide a comprehensive range of access and display
mechanisms for documents stored in the Vault. They are primarily aimed at users within the
corporate environment – typically customer service or other front-line personnel.
The Vault Service Client provides an intuitive, high performance Windows based interface to
the documents stored within the Vault. It is a small executable that can be easily rolled-out to
desktops as required. This can be supplemented with Vault Service Reprint Admin which
administrators can use for compressed stream viewing and document export capabilities.

14

The Vault environment

The Rendering Engine allows users to build a customized interface to the Vault and
optionally allow you to integrate the document display function into an existing web server
environment. This is based on a set of API functions that communicate with the Vault server
and return rendered documents as required. Perl and Java sample client applications are
shipped with the Vault distribution material. These can be used to access documents stored
in Vault and can be customized if required. Refer to “Perl sample” on page 207 or “Sample Java
web client application: Vault ServiceWeb2” on page 211 for further information.
Note also that language-specific APIs for Java 6, and Microsoft’s .NET Framework are available
to ease communication with the Rendering Engine

15

Customizing the Vault

Customizing the Vault
Vault environments may be unique from one another. This section lists the topics that are
discussed in this guide.

Vault performance and capacity planning
In order to plan for Vault performance, the administrator needs to consider various
configuration aspects that are specific to their configuration settings. These configuration
settings will affect the storage requirements.
For more information, refer to “Vault Performance & Capacity Planning” on page 20.

Vault Initialization files
There are many optional settings in each of Vault modules. The client software can be
configured for several different views (user interfaces). The mouse and keyboard behavior can
be customized to end user preferences – scroll bars can be disabled, graphical modes changed,
etc.
This chapter explains how to use each initialization file by explaining syntax,
keywords/parameters as well as giving code samples. The initialization files explained in this
chapter are:
•

patterns.ini

•

profiles.ini

•

server.ini

•

database.ini

•

local.ini

•

e2loadered, e2Renderd, e2Serverd, e2Routerd, and indexerd initialization files

For more information, refer to “Vault initialization files” on page 34.

16

Customizing the Vault

Vault Utilities
Diagnostic utilities are provided with the Vault to help manage the operation of data rendered
outside of Generate, assist in troubleshooting and generate statistical data for long term
management of the product.
For more information, refer to “Vault Utilities” on page 94.

Advanced ADM Configurations
This chapter discusses the following topics:
•

Advanced ADM configurations

•

ADM Vault replication

•

ADM Vault purging/document expiry

•

ADM ODBC export

•

ADM error e-mail notification

For more information, refer to “Advanced ADM Configurations” on page 122.

Indexing
This chapter covers topics assoicated with indexing and providing index information to the
Vault from applications.
For more information, refer to “Indexing” on page 140.

Working with Fonts
This chapter explains methods for:
•

Embedding fonts

•

Using Unicode fonts when exporting AFP to PDF

•

Character translation when exporting AFP to PDF

•

PDF background enhancement

17

Customizing the Vault

For more information, refer to “Working with fonts” on page 178.

Emulating paper stock
This chapter explains how to emulate paper stock to be viewed via a vault client.
For more information, refer to“Emulating paper stock” on page 190.

Rendering Engine
The Rendering Engine chapters provides information on configuring the Rendering Engine
using generic modes, load balancing, as well as customizing your applications by using the
available APIs.
For more information, refer to “About the Rendering Engine” on page 202.

18

Customizing the Vault

19

Vault Performance & Capacity Planning
Introduction
There are three things to consider when planning Vault capacity:
•

How much storage is required for a fully populated Vault.

•

Whether or not the system ingests (or load) incoming documents within the desired time
frame.

•

Will the Vault be able to dynamically transform sufficient documents to meet user viewing
requests during peak periods of time.

Overly aggressive settings for performance may have negative aspects for capacity, and likewise
in reverse. For example, one way to optimize disk storage is to enable very aggressive
compression settings. However, this will have an impact on both ingestion speeds, as well as
rendering speeds; as the system will need to do more work to compress and to decompress the
data.
As well, certain erroneous product configurations can cause significant performance problems
in their own right. This document will discuss some of these pitfalls and how to avoid them.

20

Vault Performance & Capacity Planning

Storage Capacity Planning
In order to plan for how much disk storage will be required, the administrator needs to
consider various configuration aspects that are peculiar to their configuration settings. These
configuration settings will affect the storage requirements. Consequently, specific capacity or
performance numbers cannot be universally quoted; they must be made within the context of
the particular installation requirements.

Disk Requirements for Print Streams
Storage of Print Stream data is accomplished by compressing the print streams into an
internal compression format that is Print Stream aware. These are stored in the
Server\PageData folder with the extension .DRP (Document Repository Pages).
Generally, compression is accomplished by identifying repetitious patterns within the file and
typically saving these patterns to a dictionary, and then referencing a dictionary entry instead
of the repetitious data block. Therefore, the more repetitious the print stream is, the more
compression should be attainable at the same levels of “aggressiveness” for the algorithm.
Consequently, the amount of disk space required for Print Streams varies by print stream
format, as well as varying by the amount of non-repetitive information being displayed per
page. A page that is completely covered with small-font random numbers and letters will not
be very compressible, as there is no discernible pattern or dictionary that can be applied. This
will take a lot more space than a print stream that contains a form letter that only changes by
a customer name from page to page, where 99% of any given page is identical to the previous
page.
Since it is usually not possible (or reasonable) to alter the incoming print stream's
repetitiveness, the only option available is to adjust compressor aggressiveness. This is done
by increasing the size of the “window” in which the compressor looks for repetitiveness, and by
adjusting how much work the CPU does to find that repetition within that window.

Job size planning
In Vault, each job that is ingested in the server "download" directory is converted into a
compressed data file. Each indexed page has a pointer to it in the Vault .DRD file. The pointer
stored in the DRD file cannot point to data that is larger than 4 GB compressed. This should
be accommodated by ensuring that the compressed job data file for any given job is less that 4
GB in size. The size of the compressed job data depends on the size of the original job data
and the compression ratio. See “Computing Compression Rates and Ratios” and “Analyzing
the Test Results” for details on how to determine the compression ratio. Once that ratio is
known, then the maximum possible job data can be calculated. Allow for a safety factor by
limiting the maximum uncompressed data to 75 percent of the maximum compressed size as
some datastreams (TIFF and PDF) can actually increase in size after the compression. Jobs that
are larger than the maximum size should split into chunks for loading into Vault with each
chunk being smaller than the maximum job size.

21

Vault Performance & Capacity Planning

A good rule to apply is to limit each job chunk to less than 2 GB of uncompressed data. This
limit will allow for possible expansion of the data and for the occasional job data chunk that is
slightly larger than the target size.

Computing Compression Rates and Ratios
Testing is the only real way to benchmark the effects of the various settings within the system.
For print streams rendered by Generate in an AFP, Metacode or Line Data format, the default
settings provided with the Vault have been tested to show generally good balance between
performance and compression. However, detailed evaluation of the effects of these settings in
a particular setting can only be accomplished by loading a sample print stream into a test
Vault instance.
A sample print stream should be truly representative of the real-world scenarios. It should
have a similar document design, similar amount of variable data, the same fonts and images, as
well as the same variability with images, and so on. Likewise it should have a typical number of
pages per print spool file. A sample file with only a few hundred pages will have much less
ongoing repetition than a print stream with tens of thousands of pages. In PostScript as well,
the ratio between the header versus body pages of the stream will also be significantly
different: If a PostScript header is 50 MB followed by only 10 pages, then the “average bytes
per page” will amortize the header across only 10 pages, versus amortizing that cost over
10,000 pages.

Finding the Test Results
There are two main locations to inspect the results of testing. First, inspect the Server\Log
folder for recent files named process*.log. These files contain the results of ingestion tasks.
Looking at this for time-stamp information, compression ratios, and page counts can help you
to evaluate the metrics for a particular test.
The second location to inspect is the data contained within the .DRP file itself - this is
accessed by using the fileinfo utility. This is accomplished through a CMD prompt as follows:
C:\Vault\Server> tools\fileinfo pagedata\somefile.drp

Analyzing the Test Results
Use fileinfo on the sample file and inspect the value for average bytes per page. Next, multiply
this number by the number of pages per month that are planned to be archived. Then,
multiply the result by the number of months to be retained for the long term. The resulting
value should be the number of total bytes (divide by 1 million for “Hard Disk” Megabytes)
planning based on knowing the total number of pages to be loaded per annum.
Delta Bit Size
The compression parameters are adjusted within the profiles.ini file within a particular
[profile] for a job. The settings only apply to new files. Previously loaded files will 'remember'
the settings that were used during their load process for decompression at a later time.

22

Vault Performance & Capacity Planning

[SomeProfile]
DeltaBitSize=17

This parameter can range from 5 to 20, with a default of 17 in modern builds of Vault. Older
builds had a default value of 15. This parameter is very CPU intensive. Each increase of one
number doubles the amount of work that the CPU has to do during compression and during
decompression. However it is useful to note that if your CPU is not at 100% during the
compression phase, then an increase in this value may not actually reduce performance at all;
in fact it may improve performance, as the disk I/O will be reduced - the server will not have to
write as much data back to the disk in the form of the .DRP file.
When tuning this value, change the value by increasing or decreasing by one at a time, and
then benchmark the results both for ingestion speed, as well as compression ratios attained.
Do not simply set it to 20, or 5, and see what happens - often a middle-ground value will result
in the best overall performance vs. compression balance for your environment.
Maximum Page Size (Server.ini)
Some environments (most notably PostScript environments) have extraordinarily large sized
pages. This is due to the fact that Vault treats the entire header of the file as one logical page
which typically includes all fonts, images, and procedures required for the job and needs to be
able to store that 'page' within the buffers allocated within Vault.
Note: Unless there is a specific reason to modify these parameters, the defaults should not be
modified by any significant amount.
[Production]
MaximumPageSize=16777216 (16 MB default)

This is the size of the Page Buffers in the system memory. The largest Uncompressed Page must
fit within this buffer. In PostScript this is usually equal to the size of the header of the file.
Notes:
•

Adjusting this parameter will affect the RAM Memory consumption of the e2loaderd and
e2serverd services. Unless this causes your server to begin swapping to pagefile or
running out of virtual memory, this parameter should not affect performance.

•

MaximumPageSize in server.ini is no longer required for loading PostScript files under
this version of Vault and higher. The maximum page for any given PostScript file is now
determined automatically. MaximumPageSize may still be required for loading
datastreams other than PostScript. If this is already set and you load datastreams other
than PostScript, you may be able to reduce the values if the value was set to a large value
to acommodate loading of PostScript jobs.

23

Vault Performance & Capacity Planning

Disk Requirements for Print Stream Metadata
Storage of Print Stream MetaData is accomplished by compressing the information provided
via Journal File, whether XML or Pipe-Delimited, as well as storing the exact location for every
page within every document, into files that are stored in the Server\DocData folder with the
extension.DRD - which stands for Document Repository Documents.
Notes:
•

The Vault does not store all information from the journal.In general it is not possible to
“reduce” the information that needs to be stored pertaining to documents in the vault.
Consequently the only options are to adjust compression parameters for the DRD files.
The DeltaBitSize is not adjustable, as adjustments have shown it has little effect at any
value other than the internal default.

•

Unless your installation utilizes 100,000+ page document records, or hundreds of
kilobytes of Custom-Attribute Data per document, adjusting this value is typically not
beneficial and is not recommended. The fact that a print stream is 100,000+ pages has
no bearing on this; rather only if that whole 100,000 page stream comprises a single
logical document.

Document Block Size (Profiles.ini)
The Document Block Size parameter controls how much document metadata is stored in each
compressed document record. Similarly to the Print Stream Compressed Block Size, this value
must be big enough to hold at the very least a single Document's worth of compressed
metadata, and optionally can be larger to increase compression ratios realized on these stored
files. The same trade off between ingestion and retrieval performance versus compression
ratios exists as above.
Note: To ensure that the settings only affect documents that need the change, set this in the
profiles.ini and not server.ini.
DocumentBlockSize=262144(256 KB default in newer versions)
The Document Record contains all compressed document information provided from the
Journal, as well as the pointers into the .DRD file for each page of the document. Therefore
documents with many hundreds of thousands of pages could require that this value be
increased.
NOTE: Increasing this value can reduce searching performance of the Vault when requests are
made for all document information and/or document information that is not directly stored in
the Indices. This typically affects the standard indices of invlink, guid, iguid, and any custom
index with the "h" flag.
Disk Requirements for Indices
There are two types of Indices within Vault. The first type of index is a “customer linked” index.
Generally speaking this type of index contains information that helps a user to find a
customer. The second type of index is a “document linked” index. These contain information
that points directly to a specific document.

24

Vault Performance & Capacity Planning

Customer Linked Indices
Customer-linked indices typically grow only during the first full period of document loading
(usually a month), and subsequently grow only as new customers are added to the business.
This type of index includes the default indices of Account, Name, and Address. If custom
indices are enabled, customer-linked indices contain the “c” flag in profiles.ini settings.
To calculate the disk requirements for Customer-Linked indices, either load one full month of
customer data and then anticipate for the indices to grow by your business's new customer
rate per annum, or else forecast this value based on the number of customers in the sample file
as compared to your full customer base.
Document Linked Indices
Document-linked indices grow as each new logical document is added into the system. Each
index will grow at approximately the same rate over time as the sample file demonstrates. Note
that the Document-linked index growth rates are not affected by page count.
Impact of Databases
If your vault is configured to load documents into multiple databases simultaneously, plan for
each database to grow independently of each other. If each document is loaded into two
different databases, then anticipate double the storage requirements for this over time.

25

Vault Performance & Capacity Planning

Ingestion Performance
It is important to note that ingestion performance is affected by the cumulative settings that
have been described above, and that each setting can have an impact on performance in
different ways. The elements that affect compression may not affect indexing, and likewise in
reverse.
Step 1: Compression
Compression performance is affected by the settings that control compression ratios as
described above. Compression speeds need to be benchmarked on a particular piece of
equipment in order to reliably determine its rate of ingestion.
Compression is directly affected by the size of the incoming print stream file. Larger files
will take longer to ingest, whereas smaller files should take lesser time to ingest. The
number of pages in the stream (excepting for huge pages that require inordinate block
sizes) should not affect ingestion speed.
In general, compression is CPU and Memory I/O bound, but if the compression settings
are low it can be Disk I/O bound. Finding the right balance is the key to maximizing both
in a particular environment.
Step 2: Document Building
Document building tends to be an insignificant portion of the overall ingestion time
frame. Consequently it is not often very heavily customized. Document Building performs
a decompression of the print stream in order to obtain the vector offsets of each page,
iterates through the Journal File, and outputs to a compressed Document stream (.DRD)
file.
Step 3: Indexing
Indexing can be a significant portion of ingestion time. Indexing time is not affected by
page count; rather it is affected by the number of documents that are referenced by the
print stream. Indexing performance can be significantly affected by the configuration of
Custom Indexing settings, in much the same way as the configuration settings affect the
storage requirements for the index files.
In general, the first Interval (usually one month) of indexing will be significantly slower than
subsequent months as the system will build the Customer-Linked indices. In subsequent
months these files will only be updated as customers move, change their names, or as new
customers are added.
However, Document-linked indices will incur a performance/load time penalty for every
document that is loaded. Normally the Vault is configured for 3 document-linked indices; the
invlink index for “Documents under an Account”, the guid index, and the iguid index.
Indexing time is also affected if documents are loaded into multiple database views
simultaneously. This has a multiplicative effect on the above for both the first-month
customer-linked indices, as well as ongoing document-linked index load operations.

26

Vault Performance & Capacity Planning

From a hardware perspective, Indexing time is generally limited by the number of
simultaneous disk write I/Os per second, and to a lesser extent the number of simultaneous
read I/Os per second, that can be sustained by the Server's disk subsystem. Consequently a
massively parallel SAN will obtain performance many times faster than a single hard disk.
Rendering Performance
Rendering Performance is affected by the CPU speed of the Rendering Engine's host platform,
the memory bandwidth of the host platform, as well as the delays incurred if large compressed
block sizes are utilized on the server side.
In Vault versions 5.3 and prior, the Rendering Engines are each single-thread processes.
However, many processes can be run in parallel to spread the load of a large environment onto
the computing hardware of one or many single or multi-cpu computers. This is accomplished
via the Vault Router (e2Routerd), an application that manages connections to many Rendering
Engines and spreading the transformation load intelligently across the network of Rendering
Engines it knows about. In Vault versions 5.4 and above, the Rendering Engine is now
multi-threaded but similar guidelines should be used in determining load and performance
capabilities (until some experience is gathered insofar as its load and performance behavior in
real world, heavy use applications - at that such time, these metrics explained below may be
adjusted accordingly).
Rendering of documents can also be affected by the print stream format - most notably
PostScript which is significantly slower to render than AFP or Metacode or Line Data formats.
In general, each Rendering Engine can typically transform a certain number of pages per
second. This number must be evaluated for each computing and configuration environment.
After obtaining the number of pages per second that each Rendering Engine can transform
per second, one must configure an adequate number of Rendering Engines to handle the peak
load of the environment.
Computing peak load can be a difficult task. In general, the process works by categorizing
users into different profiles based on their activity levels and usage scenarios. For example,
Customer Service Representatives can be profiled based on the call volume that each CSR can
handle within a period of time. If your CSRs have an average call duration of 5 minutes, and
assuming that each call will require one document look-up on average, and that an average
document is 2 pages in length, it can be concluded that each CSR will incur 2 pages every 5
minutes, or .0066 pages per second. If peak staffing of the Call Centre is 500 staff, then this
works out to 3.33 pages per second for the CSR staff during peak times.
For consumer profiling, the issue becomes more complex; but the same principles apply.
Consider the number of customers. Then factor in the percentage of customers with internet
access. Then factor in the distribution of these customers: Will they all actually want to look at
an image of their document? What percentage will do so per interval of time? Repeat this
process for “heavy” users, “average” users, “light” users, distribute your internet-enabled
customer base into these categories. Next, determine what times of day that these people may
be looking at the documents, again spreading the load out over the various days of the month

27

Vault Performance & Capacity Planning

and hours of the day that this load may exist. Generally speaking, customers tend to
significantly overestimate the amount of load on an Vault from a Customer perspective. But
with good modeling, the load can be fairly well anticipated.
It is important to note that additional rendering engines can be added to the environment in
a very short period of time.
Configuration Pitfalls
Some configuration pitfalls have already been mentioned. These include:
1.

Overly large Compressed Block Sizes

2.

Unnecessary Additional Databases

3.

High DeltaBitSize values

There are certain additional configuration pitfalls that have been encountered from time to
time with the Vault that bear mentioning:
Mass Duplicate Keys in an Index
Each index file is intended to search “from” something, and to point “to” something.
Customer-linked indices search “from” a customer name, for example, and point “to” the
Customer Record, which contains information similar to the address-window on an envelope.
Document-linked indices search “from” something that is relatively document-specific, and
point “to” the document itself. An example might be an Invoice Number that is
system-generated and unique to the particular document.
One of the configuration pitfalls is to configure an index where all of the “from” keys are
actually the same, or there are huge numbers of duplicates for a particular “from” value. One
example would be an index “From” a division code, pointing to a document. Assume that a
company has 3 divisions, DIV1, DIV2, and DIV3. All documents are associated with one of
these divisions. If we build an index pointing from Division_Code pointing to a Document,
then searching for the string "DIV1" would return approximately one third of the documents
in the entire vault as an unsorted hit list.
Such indices tend to be not only significant sources of performance problems over time, but
they are fundamentally useless to a user. No user would ever “browse” through 1/3 of the
entire vault's document list in order to find a particular document.
Such indices should simply be removed from the configuration files, and the index files should
be deleted. This type of requirement can be better solved by the appropriate use of additional
Databases, which would group all “DIV1” documents and customers together, then group all
“DIV2” customers and documents in a separate view, and likewise for “DIV3”. If the
documents each are a member of only one of these databases, then there isn’t even any
performance price for such a configuration.

28

Vault Performance & Capacity Planning

Anti-Virus Software
The Vault server stores large numbers of very large files. If anti-virus software is configured to
scan ALL file types On Read, or On Access, then the Anti-Virus software may introduce delays
of minutes or more before the Vault Server can actually read any data from one of the files in
the system. While the AV scan is taking place, the entire Vault server is “locked up” and no
other user requests can be served. These requests will queue up, and some of them may time
out and/or error out.
Anti-Virus software should be configured to exclude .DRP, .DRD, .DRI, .DRR, and other file
types that are used by the Vault for data storage. These files do not include executable code
and should not be scanned by Real-Time Anti-Virus.
Note: Even when idle, some anti virus programs introduce resource overhead at the kernel
level. If you encounter errors under Windows such as error 1450, consider changing or
uninstalling the anti virus program. You can use a tool such as poolmon.exe to examine what
kernel resource type is dominating.
Full Duplex / Half-Duplex / "Auto-Sense" issues on the LAN
A persistent problem in the I/T industry is the poor implementation of “Auto-Sense” on even
major-brand hardware like HP/Compaq servers, Cisco routers, and other major manufacturers.
Full Duplex is a network optimization that requires a dedicated network cable from end-node
to end-node, such as from a Switch to a Server. It cannot function on a Hub. However, hubs are
virtually extinct in production environments, so many organizations go for full-duplex to
realize the benefits of 100 Mbps or 1000 Mbps in each direction, as opposed to a cumulative
send+receive capacity.
The problem is that Full Duplex disables all flow-control, and Half Duplex has flow control
enabled (CSMA/CD for Ethernet, for example). When flow control is enabled on one end of a
connection and disabled on the other, the end result is huge network delays, network errors,
low throughput, and corrupted packets.
As the Vault is significantly dependent upon Network communications, this problem can
cause a Vault installation to appear slow or non-responsive.

29

Vault Performance & Capacity Planning

Search performance considerations
Introduction
A key part of Vault operation is searching
indexes. Searches are performed on behalf of
users looking for certain accounts or
documents. They are also performed for
various internal reasons such as locating
documents during the rendering process.
Search performance will affect the overall
performance of a Vault installation.



FOR MORE INFORMATION ON THE SETTINGS
DISCUSSED IN THIS SECTION, REFER TO
“COMMUNICATING DIRECTLY TO THE
RENDERING ENGINE” ON PAGE 292 AND
SCROLL TO THE FOLLOWING MESSAGE
FORMATS:
DATABASE.SEARCH, DATABASE.FILTERED,
DATABASE.UNFILTERED, AND DATABASE.RAW.

When a search is executing, it locks certain
internal structures to prevent corruption that could otherwise occur as a result of executing
multiple requests simultaneously. In some installations this locking behavior can lead to
significant performance issues.
Environments with one or more of the following conditions might experience search
performance degradation:
•

very high search load

•

larger than default document block size settings

•

requests for large numbers of hits at once

•

aggressive time out and retry settings

What happens in cases like these is that a search will hold the index lock for a prolonged
period. This means that subsequent searches must often wait significant amounts of time
before they can acquire the lock and begin to execute. This can lead to slow search
performance.
Internally, the search is using the lock to gain exclusive access to the index structures. It then
scans through an index looking for candidate matches. Part of the process for the standard
search involves filtering on certain fields and populating output columns. These steps may
require the search to fetch account or document properties from disk. In the case of
documents, this means loading and decompressing potentially large blocks of data. If the
number of results is large or the blocks themselves are large this can take a significant amount
of processing time. Since each search is happening on a single thread, it won't take advantage
of multiple cores which might be available. This means the search lock is held for a prolonged
period, blocking other search requests that are waiting to execute.

30

Vault Performance & Capacity Planning

Mitigating the Search Lock Issues
New functionality has been provided to help relieve search performance issues. New API calls
have been added which allow you to perform some types of searches in a less expensive way. A
configuration switch to make the default search behavior use these less expensive methods has
also been provided.
Searches are normally performed with an API function called database.search. Previously this
mode has quite a bit of functionality and that caused the search lock to be held for a long
time. Two new high level search functions have been added: database.filtered and
database.unfiltered. The filtered search is equivalent to the database.search command from
previous versions. The unfiltered mode has fewer features such as no longer filtering output
results on certain criteria. But doing so helps it reduce the time it needs to hold the search
lock. The unfiltered mode is implemented in terms of a low level function, database.raw, which
provides only the most basic search functionality. The new database.search call is actually an
alias for either database.filtered or database.unfiltered depending on a configuration switch. For
sophisticated applications this might mean changing the way you code searches for the Vault.
But most installations can take advantage of the configuration switch transparently.
To control the new search behavior, edit the e2serverd.ini file and add the following setting:
[database1]
filteredsearch=0

0= do not filter searches (default, mitigation mode)
1= filter searches normally (compatibility mode)

Implications of Using the Unfiltered Searches
The unfiltered search works by performing a basic search using the new raw search function
and then populating the output data outside the search lock. This can drastically reduce the
time the search lock is held which in turn can reduce the queuing effect the search lock has.
You need to be aware of some implications of this.
•

Some applications may depend on the filtering features provided by the normal search.
For example installations with e2 Account Management (formerly Present & Pay) should
proceed with caution as it may prevent the proper operation of that product.

•

There are significant differences in the way the server will consume system resources.
Only the basic search portion of the request is locked. This means that the stage that
populates the output table executes in parallel.
This can increase:
•

memory utilization

•

CPU utilization

•

the number of CPU threads or cores used

31

Vault Performance & Capacity Planning

•

the number of file handles used

•

kernel resources (from I/O requests)

You should monitor the installation to ensure it isn't exhausting process memory or file
handle limits.
The number of threads in the thread pool will limit the number of simultaneous searches that
can execute. If you are seeing excessive resource utilization after enabling the search switch,
consider lowering the number of threads in the server's thread pool. Conversely, you might see
that the server is not using enough of a machine's available resources.
For example, SPARC based machines often have large numbers of cores/threads. Typically the
default number of threads in the thread pool won't take full advantage of all the cores. In such
cases, consider carefully increasing the number of threads.

32

Vault Performance & Capacity Planning

33

Vault initialization files
There are many optional settings in each of the Vault modules. The client software can be
configured for several different views (user interfaces).
The majority of options should not need to be changed, and will use the default settings.
There are, however, some user-configurable options that may need to be updated throughout
the life cycle of the product installation, especially when changes are made to the network
infrastructure.

34

Vault initialization files

Client initialization file
In Vault 5.3 and prior, this file contained settings that applied to all Clients of the Vault Server.
However, starting with Vault version 5.4, this configuration file is now only intended to be
used by the Service Client’s Loader application. The Loader application connects to the
e2serverd Server Daemon, synchronizes the server’s distrib\ folder against the locally installed
application files, and then launches the appropriate Service Client software.
For backward compatibility, certain prior settings may still be recognized, but these are not
documented in this version. Please see “uclient.ini”, “e2renderd.ini”, “e2loaderd.ini”, and
“e2serverd.ini” for more details.
Syntax
comments can be on separate lines, starting with a semi colon
[Installer]
InstallPath=c:\client
SplashDelay=5000
Primary=127.0.0.1
Socket=6001

Data types
IP Address

TCP/IP address of a machine in the format n.n.n.n.

Number

a decimal number with up to three decimal places.

Dnsname

the DNS name of a machine.

Pathname

is a path/file name or label conforming to the convention required for the host operating
system.

Keywords and parameters
[Installer]
InstallPath

This is the destination directory where new clients will be installed. Note that this defaults to
the location of loader.exe so this is rarely needed. This is the same subdirectory on all
workstations in order to ease administration.

SplashDelay

approximate duration in ms for loader splash screen to be shown

Primary

server address, defaults to 127.0.0.1

Socket

server socket, defaults to 6001

35

Vault initialization files

Patterns initialization file
This defines various search patterns that enable the index creation process to find the
information that is required when using the genericafp, generictle, or genericmetacode
document build engines. The file can contain several sections, each one defining the patterns
for a particular datastream. Each Documents setting in the profiles initialization file that
uses the generic…option must have a corresponding section in this file.
Each pattern precedes the required information, for instance, it could be the instructions to
move to the position on the page where that information is placed. This file is in
\server\patterns.ini. Note that this file is not created automatically, and
you may have to create a new one.
Syntax
[SectionName]
Pattern=Document
Pattern=Account
Pattern=Date
Pattern=Name
Pattern=Address
Pattern=Section
Pattern=Invoice
Pattern=skip
Pattern=attribute:
0

Keywords and parameters
[SectionName]
Document

There must be a corresponding section in the profiles initialization file.

Account

Pattern is a unique string that identifies where the customer account number will occur.

Date

Pattern is a unique string that identifies where the document date will occur.

Name

Pattern is a unique string that identifies where the customer name will occur.

Address

Pattern is a unique string that identifies where the customer address will occur.

Section

This is optional. Pattern is a unique string that identifies the start of a section.

Invoice

This is optional. Pattern is a unique string that identifies the where the invoice number will
be.

36

Vault initialization files

skip

In generictle, Pattern is a unique string that identifies when to skip a page. This is useful for
removing banner pages from a datastream.
Note: Skipped pages are not rendered when the document is presented but are still stored by
Vault and count against the Vault page limit.
In generictle and genericafp, Pattern is a unique string that enables you to specify a custom
attribute.

attribute

Example
[Statements]
C3E4E26DC9C4=Account
E2C5E3E4D76DC4C1E3C5=Date
D7D6D3C9C3E86DD5D6=attribute:POLICY_NO
D8E4D66DC9C4=attribute:QUO_ID
D7D96DC9C4=attribute:PR_ID
C2C1E3C3C86DC9C4=attribute:BATCH_ID
D7F0F0F0F0F0F0F1=skip
D7F0F0F0F0F0F0F2=skip
D7F0F0F0F0F0F0F4=skip
D7F0F0F0F0F0F1F2=skip
D7F0F0F0F0F0F1F4=skip

37

Vault initialization files

Profiles initialization file
This file defines settings specific to individual applications for which documents are being
stored in the Vault.
Note that profiles are centrally stored by the e2serverd and downstream clients do cache
Profile settings that have been previously read. Therefore it may be necessary to restart
e2serverd, e2loaderd, e2renderd, and all clients, for a change to be fully propagated
downstream.

Syntax

[Filemap]
String=ProfileName

…
[ProfileName]
Documents=XMLJournal|GenericAfp|GenericTLE|GenericMetaCode|Journal|Generic
NOP|ujournal|uxmljournal
Format=AFP|Metacode|Postscript|HTML|MPTIFF|SPLITXML|Collection|PDF
Tray=base filename
PageHeight=Number in inches
PageWidth=Number in inches
ResourceSet=drpath
Database=String[,String]
SkipHeaderPages=[0|1]
DocumentBlockSize=Number of bytes
CompressedBlockSize=Number of bytes

Data types

Number

a positive number.

Pathname

a directory path.

String

a string of alphanumeric characters.

38

Vault initialization files

Common keywords and parameters for all formats:
[FileMap] This section matches string in the incoming file name and maps to the appropriate
profilename. It is important to note that the order is significant, and will use the first match. It
is therefore good practice to include a 'catch-all' profile at the end of the section.
In the example below, the PBBI profile is the catch-all profile that will be applied to an
incoming file if the filename doesn’t contain the string “bank”. The absence of characters
before “=PBBI” indicates that anything regardless of character length will be included here.
[filemap]
bank=McKinley
=PBBI

[PBBI]
Documents=xmljournal
Format=AFP
TapeBlockFormat=1
MarginX=0
MarginY=0
Tray=mckinley.wmf
PageBreak=0
Duplex=1

[McKinley]
Documents=journal
Format=DJDE
CharacterSet=0
Template=blank.txt
FontSelection=1
ChannelSelection=0
CRLF=1
PageBreak=1
MarginX=0.09
MarginY=0.45
PageWidth=11
PageHeight=8.5

[ProfileName]

The profile defines the properties or attributes of a set of documents. Profile names
should not be longer than 15 characters in length.

39

Vault initialization files

Database

This option allows you to select which database(s) to which the documents in the
current file will be added. These may be used to control access to particular documents
in some scenarios. Note that such database references are not retrospectively applied
to documents already loaded in the Vault.

Documents

The method of extracting index information. Options are:
XMLJournal - index information is provided in a Document Interface Journal file (DIJ).
GenericAFP - uses Transport Data commands (TRN) within AFPDS files to indicate the
start of a command sequence which completes with the text string required for
indexing.
GeneicNOP - document information is extracted from fixed format NOPs embedded in
AFP pages.
GenericTLE - values within AFP Tag Logical Element (TLE) records provide the index
information.
GenericMetacode - searches for binary patterns within Metacode streams to determine
the start and end of index text.
Journal - index information is provided in a text file.
ujournal - index information is provided in a text file and preserves Unicode data.
uxmljournal - index information is provided in Document Interface Journal file (DIJ)
and preserves Unicode data

Format

The format of the datastream. Choose from:
AFP
Metacode
Postscript
MPTIFF
SPLITXML
Collection - collection of arbitrary documents.
DJDELINE - support for Xerox line mode.
PDF - support for PDF documents.
HTML - XML in PAK file format from Generate .

DocumentBlockSize

Allows you to define the block size in bytes for document data files stored in the Vault.

Tray/DefaultTray

 this key specifies the base name of the background stock to use. The
DJDE engine uses DefaultTray= while, AFP, Metacode and Postscript use Tray=. The
background files that are used are as follows:
name.pdf

single object pdf fragment for use in pdf exports.

name.wmf

windows metafile (no placeable headers) background
for use in printing.

name1024.gif

backgrounds use by client on screen, and by web for
GIF.

40

Vault initialization files

For AFP, specifying *imm as the tray will cause it to use the name of the current media map
(IMM on the current page) as the base background name.
The DJDE engine will override this setting if it sees a FEED= command on the current page.
It will then use the value of the FEED= command as the base background name.
The Metacode engine will similarly use the FEED= command but will prepend “feed-” to the
beginning of the base background name (because AUX is a common feed name and it turns
out that AUX is a reserved file name under windows)
TrayMode

Set the value to Numbered use different pages of a PDF file as background pages for the PDF
being rendered by reading background PDF file name and page numbers from the
Profiles.ini file. For example: TrayMode=Numbered. If TrayMode is not enabled, then the
pages will be rendered as usual. For more information, refer to “Configuring PDF
background” on page 197

TrayDefault

The TrayDefault entry will correspond to a page that has to be used as a background for a
rendering page which does not have an entry in the previous parameters (Tray1, Tray2). If
there is neither (Tray-N) nor TrayDefault, then pages will be rendered as usual:
TrayMode=Numbered
Tray1 = 1
Tray2 = 2,3
Tray3 = 4,5,6
Tray4 = 7,8-last
TrayDefault=2

OR
TrayMode=Numbered
Tray1 = last
Tray2 = 1,2-last1
TrayDefault=2

OR
TrayMode=Numbered
Tray1=1-last2
Tray2=last1
Tray3=last

RotationMode

When set to 1 it uses word separations to calculate rotations instead of punctuation and
white spaces (the distinction is important for far east applications).

41

Vault initialization files

Duplex

When set to 0 (duplex=0), the background specified by tray=/defaulttray= (or the format
specific default) is used.
You can specify two different backgrounds to apply to either front and back pages or to first
and subsequent pages. This option applies to the Postscript, AFP and DJDE formats. For data
whose backgrounds alternate front and back, use duplex=1. When duplex=1, odd page
numbers use the default name and even pages use the default name with “-back” appended.
[someprofile]
tray=customer
duplex=1

42

Vault initialization files

Backgrounds for Odd Pages
customer.pdf
customer.wmf
customer512.gif
customer640.gif
customer800.gif
customer1024.gif
customer1280.gif
customer1600.gif

Backgrounds for Even Pages
customer-back.pdf
customer-back.wmf
customer-back512.gif
customer-back640.gif
customer-back800.gif
customer-back1024.gif
customer-back1280.gif
customer-back1600.gif

For data where page 1 has a different background, use duplex=2:
[someprofile]
tray=customer
duplex=2

When duplex=2, the first page uses the default name and all subsequent pages use the default
name with “-body” appended.
Backgrounds for Odd Pages
customer.pdf
customer.wmf
customer512.gif
customer640.gif
customer800.gif
customer1024.gif
customer1280.gif
customer1600.gif
Note that the Duplex setting does not apply to metacode.

43

Backgrounds for Even Pages
customer-body.pdf
customer-body.wmf
customer-body512.gif
customer-body640.gif
customer-body800.gif
customer-body1024.gif
customer-body1280.gif
customer-body1600.gif

Vault initialization files

AutoType1ToUnicode

When a Type 1 font in an AFP FOCA wrapper is automatically embedded in a PDF
export (*embed), Vault normally depends on the PDF reader being able to deduce the
meaning of each code point from the glyph names inside the Type 1 font.
When set to 0 (AutoType1ToUnicode=0 (default)) it gives you the existing behavior that
relies on the reader to deduce the meaning of each code point.
When set to 1 (AutoType1ToUnicode=1), Vault generates a “ToUnicode” map for the
font based on the AFP code page. GCGID names in the code page are converted to
Unicode using the gcgdiduni.map file in the resource set. The resulting table of
Unicode values is embedded as the ToUnicode map.
Note: If non-standard GCGID names are used, you will need to update or replace the
gcgiduni.map file.
When set to 3 (AutoType1ToUnicode=3), Vault generates a “ToUnicode” map for the
font based on the names of the glyphs in the Type 1 font. In this case glyph names of
the form /uniXXXX are examined. The XXXX being the Unicode code point equivalent
of the named character.
For more information, please refer to “Automatic Embedding” on page 183

reformatdate

reformatdate=0 will turn off the default behavior of inserting slashes into the date field
(e.g. 20120213 -> 2012/02/13).

checkdate

checkdate=0 will turn off the default behavior of checking that the document date in
the journal is (more or less) valid. This might be needed if the date field is populated
with something other than the expected YYYYMMDD date (e.g. "Invoice - August 15,
2007").

ForwardJournalOnIndex=

These options are used to let an external application know that data has been added or
removed from Vault.

ForwardJournalOnUnindex=

When an index or unindex operation completes successfully, copy the journal
associated with the job to the specified path.
These options differ from PresentJournalPath in the following ways:
•

They are profile options instead of server wide settings that affect all profiles.

•

They occur after the index operation completes instead of after the document
build step.

•

PresentJournalPath has no option for forwarding on unindex operations.

44

Vault initialization files

JobAppendTimeStamp

This will add -YYYYMMDDHHMMSS to the final base name of the job when set to 1. The
default is 0 (off).
This setting is used to make the final job file name more unique. This avoids common
issues with naming. If you try to load two jobs with the same name, the second job will
fail to completely load. The final job files (.drp/.drd/.jrn) would be stored in the same
directory so it isn't possible to have them with the same name.
When you unload and reload the same job and you fail to properly un-index the old job,
invalid pointers to the old data may be left in the index. This may not always be
detected. In some cases this could lead to the wrong document data being returned in a
search. With this option, the job names are unique even if reloaded. The worse case
scenario is the out of date pointers link to a non-existent job which will just return an
error.
Example with JobAppendTimeStamp=1:
20011111-tryme-telco-statement-20121015131051.drp
20011111-tryme-telco-statement-20121015131051.jrn
Example with JobAppendTimeStamp=0:
20011111-tryme-telco-statement.drp
20011111-tryme-telco-statement.jrn

CapExplicitEmbeddedTTF=255

Limits the maximum code point used for the explicitly embedded TrueType fonts in PDF
exports. This reduces the size of tables associated with the fonts (saving space in the
output PDF) and the time taken to generate the tables.
Note: Ensure that your data produces the correct output with this setting because it
can affect the use of characters with Unicode code points beyond the value of the
setting.

GuessUnknownCharacters

When exporting AFP text to PDF using font substitution, Vault needs to translate the
character codes in the AFP to Unicode using the character names in the AFP code page.
For best results, make sure the code pages use consistent character names all of which
have appropriate mappings in the gcgiduni.map file.
When set to 0 (default), Vault will not allow the substitution if there is no translation of
the character name. This will cause Vault to fall back to rendering the text using bitmap
graphics.
When set to 1 (deprecated), Vault uses a heuristic to guess whether the text is ASCII or
EBCDIC. This mode should be avoided since it won't always guess correctly or
consistently. In addition, it may prevent Vault from generating valid width table
information.
When set to 2, characters with no mapping are assumed to be ASCII encoded.
When set to 3, characters with no mapping are assumed to be EBCDIC encoded.

45

Vault initialization files

PostscriptTimeout

Sets the communication timeout between the rendering engine or Windows client and
the e2ps sub-process that is used to execute Postscript rendering requests. On Windows
the processes communicate over named pipes; on Unix, Unix domain sockets.
The default is 120000 (2 minutes). In most cases this should not be changed.

PrintEdgeToEdge
PrintCorrectAspect

The Vault Service Client (including Vault Service Reprint Client) and Mobile Vault
client use these profile parameters to compensate for printers that cannot print the full
width and depth of a physical page. These also control whether printing targets the
printable area or the full extent of the physical page:
PrintToEdge
PrintEdgeToEdge=0 (default) Targets the printable area of the page.
PrintEdgeToEdge=1 Targets the full extent of the physical page. Some printers cannot
print on the entire page surface so some data may be cut off. This mode might be
needed to align page text with preprinted forms.
PrintEdgeToEdge=2 - If background is off, use 1 above otherwise use 0 above.
PrintCorrectAspect
PrintCorrectAspect=1 (default) Correct the scaling so that the aspect ratio of the original
page is preserved.
PrintCorrectAspect=0 - Scale the horizontal and vertical axes independently. If the
original page dimensions do not closely match the physical page, the page content may
appear stretched

46

Vault initialization files

Profile inheritance
inherit

A profile can inherit settings from another profile. This allows you to collect common
settings in one place as shown in the example below:
[commonafp]
documents=journal
format=afp
tapeblockformat=1
marginx=0
marginy=0
pagebreak=0

[statement]
inherit=commonafp
tray=statestock
[creditnote]
inherit=commonafp
tray=creditstock

In this example, two profiles: statement and creditnote are standard AFP streams. They both use
the inherit keyword to import common settings and then specify a specific background
stock.
If a key exists in the profile referred to in the inherit key and also exists in the current profile,
the value in the current profile is used:
[commonmeta]
documents=journal
format=metacode
recordreader=RDW
idenprefix=$DJDE$
idenoffset=1
idenskip=7
paper=A4
[meta1]
inherit=commonmeta
idenoffset=5
In the above example [meta] will use idenoffset = 5 since the local version takes precedence
over the inherited version of the key.

47

Vault initialization files

Collections
Vault can store collections of arbitrary documents. It does not need to be able to render the
document types itself. Instead it relies on external viewers registered with the user's
workstation. A common example is a collection of PDF documents, one per file, generated with
a single journal. Documents are not limited to a maximum page or compressed block size
because each file is stored as a series of blocks. The page count is used to store the number of
blocks used to store the file. The actual page count of the document is not exposed to Vault.
The file.block attribute indicates block size (default is 256KB).
The load procedure for collections is different from previous formats. Instead of transferring
files to Server\Download, the uploading program creates a subdirectory in Server\Download
and places all the documents and journals there. Once the uploading program is ready to
submit the collection to Vault, it creates a flag file named ready in the directory.
The Vault periodically scans the Server\Download directory for subdirectories that contain a
ready flag file. When it finds one, it renames the ready flag file to a file named loading. It then
uses the name of the subdirectory and the file map portion of the profiles.ini to determine the
correct profile to use. The profile for collections should include the following:
[profilename]
Format=collection
Documents=journal

At this point the server starts simultaneously compressing the data and building the
document data files. It looks for all journals in the subdirectory and processes each in turn.
The actual journal format is a slight variant of the standard journal. Each document entry
specifies the file to which it corresponds. As it encounters the document records, it stores the
files in the compressed file and a document record in the document data file. Once complete,
it places the compressed file in pagedata, the document data file in docdata and a index
request flag file in process. This will trigger the indexing stage of the load process. The journal
format is as follows:
J|jobname|timestamp
A|key|value
D|account|date|file|name|address
A|key|value
D|account|date|file|name|address

The job name should be an abbreviated description of the job type. Any non-alphanumeric
characters will be translated to dashes. Note that when multiple journals are used, one
arbitrary J record is used to construct the output name. The job timestamp should start with a
date in YYYYMMDD format. It may contain additional data, such as a time. The document data
must also start with a data in YYYYMMDD format and may also contain additional text. What
was previously the page count field is here used to store the file name of the corresponding

48

Vault initialization files

document. The optional name and address follow. Optional custom attributes are specified
using A records as normal. Collection journals do not support I or S records since those
require knowledge of the internal structure of the document files themselves.
Example:
J|TRYME|20120104
D|22648926|20040417|20120104041610000001.pdf|Marie Dixon
D|24084262|20040417|20120104041610000003.pdf|Anne David
D|21538553|20040417|20120104041610000005.pdf|Neil Mann
D|13290398|20040417|20120104041610000007.pdf|Martin Pale

It is important to specify the file extension of the file. The Vault uses the file extension when
displaying collected files. In the Perl sample it is used to map to a MIME type for output. It
tries to display the documents in an IFRAME. For some document types and some browsers
this may not work as expected. In the Windows client, it is used implicitly when launching the
document to locate the correct viewing program. When the client encounters a collection
document, if offers to store it as a temporary file and launch it for you.
There are some important issues to keep in mind when using collections. As a result of the
simultaneous compression and document building, compressed collection files do not work
with manual document build (server -h) or triggered rebuild (.redoc) options. Also note that
the larger size of documents may mean significantly heavier network traffic and commensurate
delays. Files not referenced by journals will be deleted once the compress/build operation
completes.
For those that need to display documents using the Perl sample, note that you may need to
add a MIME type mapping to the funciton render in modules\e2Render.pm. A few common
formats are already listed there. The Perl sample makes use of a new rendering output mode
10 which reassembles the blocks back into its original document.

Extracting document information
Index information can be extracted from the output datastream either by supplying a journal
file together with the output data or, by looking for specific patterns in the output data
(pattern matching). The method you choose is indicated by the Document keyword in your
profile definition.

Journal modes
Journals files are typically used to provide an index for the documents and pages within the
output datastream. A journal file and associated output datastream are copied to the
download directory for ingestion into the Vault. Vault supports various journal formats as
follows:

49

Vault initialization files

XML journals
•

XMLJournal – index information is provided in a XML based journal file, typically a
Document Interface Journal file (DIJ).

•

UXMLJournal – index information is provided in an XML based journal file, note that
this journal mode uses Unicode which offers greater flexibilty and more comprehensive
language support.

Additional keywords and parameters
XML Journal Parameters
TolerateMissingSignature

When set to 1, print stream data signatures are not checked at all.
XML journals provide a GUID that matches a GUID embedded at the start
of each document in the print stream. The load process normally verifies
that these are present and match. This is an additional check that helps
ensure that data for one customer is not viewable by another. If you are
loading XML journals from older versions of Generate, those converted
using dijconvert or from 3rd parties, these signatures may not be present
or may be invalid (prerelease versions of Generate).

TolerateMismatchedSignature

When set to 1, mismatched signatures are accepted.
If you are loading XML journals from older versions of Generate, those
converted using dijconvert or from 3rd parties, these signatures may not
be present or may be invalid (pre-release versions of Generate).
Documents=xmljournal
TolerateMissingSignature=1
TolerateMismatchedSignature=1

UMXL Journal Parameters
IgnoreSignatures

This option disables page signature checking when using the
UXMLJournal document build mode.
If set to 1, page signature checking is disabled. This is similar to
TolerateMissingSignature=1 for XMLJournals.

Common Parameters
IgnoreResourcePacks

If this option is set to 1, ResourceGUIDs appearing in the XML journal are
ignored.

50

Vault initialization files

OptimizeResourcePacks

If set to 1 the XML journal will not construct a resource set if the
corresponding resource set directory already exists under the
Server/Distrib directory.
When set to 2, the load process tracks each resource GUID that gets
processed. If there are no new resource GUIDs to process, the extraction
step is skipped. The GUIDs are tracked in a file called “resource.ini” in the
resource set under server\distrib.

Text journals
•

Journal – index information is provided in a text file.

•

UJournal– index information is provided in a text file, , note that this journal mode uses
Unicode which offers greater flexibilty and more comprehensive language support.

Pattern matching modes
The following pattern matching modes are supported by Vault:
•

GenericAFP – uses Transport Data commands (TRN) within AFPDS files to indicate the
start of a command sequence which completes with the text string required for indexing.
Refer to “Loading AFP without Journal Metadata” on page 53 for further information.

•

GeneicNOP – document information is extracted from fixed format NOPs embedded in
AFP pages.

•

GenericTLE – values within AFP Tag Logical Element (TLE) records provide the index
information.

•

GenericMetacode – searches for binary patterns within Metacode streams to determine
the start and end of index text.

Resource set assignment
A resource set is used to assign specific resources to a newly compressed file. This keyword is
useful if you have more than one set of fonts/images. You can place each set in its own
resource directory and use this setting to automatically assign the resource set at load time.
A typical scenario where this would be useful would be for customers using different stream
types (AFP vs Metacode), different document types (different fonts), streams of different DPI
(=>different fonts), different stock, etc. Also used in hosting environments so that each
customer could have its own set of resources.
Note: if you are using XML Journals, and a Resource GUID is defined, this will automatically
override the “ResourceSet=” parameter, unless “IgnoreResourcePacks=1” is set in the profile.
The example below illustrates the usage of the ResourceSet setting:

51

Vault initialization files

[MTC1]
Database=mtc1
Format=metacode
Documents=xmljournal
ResourceSet=res
RecordReader=RDW
IdenPrefix=$DJDE$
IdenOffset=1
IdenSkip=10
Paper=letter

52

Vault initialization files

AFP settings
Loading AFP without Journal Metadata
The following settings are applicable when using generic afp for extracting index information,
i.e setting Documents=genericafp in the appropriate profile section.

Fragmented

If this option is set to 1, indexing data is gathered following matching patterns where each
character is individually spaced with Absolute Move Inline (AMI) commands.)

KeepUnknown

If this option is set to 1, documents that would normally be suppressed are logged under
account and/or date “unknown”. This option is of particular use when building index
extraction patterns by allowing you to see pages that may have been lost.

JoinLeading

If this option is set to 1, documents pages in the output datastream without account or date
information are attached to the next valid document. This can be useful, if for example you
wish to merge an optional cover letter with the next document.

Search and replace
In some situations, the data loaded into the Vault must be modified before being used. For
example, in certain countries an official government stamp indicates a legally binding invoice.
This stamp is never to be printed on copies of the original document. One method to correct
this is to search and replace the command generating the stamp and replace it with a
no-operation command.
Syntax:
AFP_Search1=
AFP_Replace1=

Example
AFP_Search1= D481999285A340C39694948595A38199
AFP_Replace1= 6FC5D5E5D5D66F40D7D7C1C7C5D5D66F

You may specify multiple search-and-replace entries, each with a different number. The
numbers must start at one and be contiguous. The pattern to search for and the pattern to
replace it with must be the same length. Note that the internal representation of the AFP
means there is extra data between structured fields. Patterns that cross structured fields may
not work as expected as a result.

AFP Triggered Messages
Vault supports a set of options that allow you to place a message on a page when it detects a
certain pattern.

53

Vault initialization files

You might want to use these options to:
•

Detect page 1 and have the text "COPY" appear prominently at the top of the page.

•

Detect check images on the page and print "VOID" over top of them.

•

Add a specific web site URL to the page for a certain class of customer.

Syntax:
Profiles.ini
[profilename]
...
AFP_Trigger1=
AFP_Message1=
AFP_Font1=
AFP_I1=
AFP_B1=
AFP_CharSet1=
AFP_CodePage1=
AFP_VertSize1=
AFP_Color1=
AFP_IOrient1=
AFP_BOrient1=

Notes:
•

You may specify multiple triggered message entries, each with a different number. The
numbers must start at one and be contiguous.

•

To select a font you must specify either AFP_Font1 or both AFP_CharSet1 and
AFP_CodePage1.

•

One way to select the message data is to view the decode of the page using one of the
Vault clients. This will include the hex data for the text.

Example 1:
AFP_Trigger1=07DBF2F0F3F4F7
AFP_Message1=E5D6C9C4
AFP_CharSet1=CZG00003
AFP_CodePage1=T1Z01148
AFP_I1=800
AFP_B1=550
AFP_VertSize1=72.0
AFP_Color1=0000FF
AFP_IOrient1=3
AFP_BOrient1=0

Example 2:
AFP_Trigger1=0016D3AF5F000007E2F1C5E7F0C3C5C7000232000897

54

Vault initialization files

AFP_Message1=C9958393A484858440A689A38840C89694
AFP_Font1=X0A0550I
AFP_I1=400
AFP_B1=200

Resource extraction
AFP print streams often contain inline resources such as fonts. Vault provides a way to
automatically extract these resources during the compression step of the load process.
The ExtractResources profile setting lets you specify a target path where the resources should
be extracted. Normally this is a relative path to a resource set in the server\distrib directory. If
this option is not specified, no automatic resource extraction occurs.
The ExtractCollisions profile setting lets you specify how the extraction process deals with
existing resource:
•

If a resource with the same name already exists in the target directory and
ExtractCollisions=0, the extraction will be skipped leaving the existing resource.

•

If ExtractCollisions=1, the new resource will replace the existing resource.

•

If ExtractCollisions=2, the extraction process will compare the new and existing resources.

•

If the resources do not match, the extraction process will fail with an error. This is useful
for detecting situations where resources associated with multiple job would conflict at
rendering time.

•

The default setting is ExtractCollisions=1.

The ExtractCollisionsIgnoreFormdef profile setting is used in conjunction with
ExtractCollisions=2:
•

If the extraction process detects that a resource is a form definition and does not match
an existing resource, normally it will fail the extraction.

•

If you set ExtractCollisionsIgnoreFormdef=1, it will ignore the conflict and continue.

•

The default is ExtractCollisionsIgnoreFormdef=0.

Example
ExtractResources=distrib\rs201307
ExtractCollisions=2
ExtractCollisionsIgnoreFormdef=1

In this case, resources will be extracted to a resource set labeled “rs201307”. The extraction
process will look for and report conflicts. If conflicting form definitions are found, it will
ignore them.

55

Vault initialization files

Metacode settings
Keywords and parameters
RecordReader

This setting controls the record format of Metacode output datastreams:
RDW - Xerox style Record Descriptor Word.
BARRPC – Xerox ‘online’ emulation via a BARR server.
CRLF – Carriage Return/Line Feed.
IBMRDW – IBM-style Record Descriptor Word.
IBMBDW – IBM-style block and record data word format.

IdenPrefix

Specifies the iden prefix is the specified ASCII string.

IdenPrefixE

Specifies the iden prefix is the EBCDIC equivalent of the specified ASCII string.

IdenPrefixH

Specifies the iden prefix is the binary equivalent of the specified hexidecimal string

IdenOffset

The position from the beginning of the record where the IdenPrefix will be found. The
datatype for this is an integer.

IdenSkip

The position from the beginning of the record where the actual DJDE command will be
found. The datatype for this is an integer. The command portion occurs at another
specified position on the line (specified by IdenSkip).

Paper

Refers to paper size: Letter, Legal or A4

orientp=,orientl=,
orienti=, orientj=

Used to bias the orientation detection code so that the pages dominated by unusually
oriented text can be forced into the correct orientation.
p – portrait
l – landscape
i – inverse portrait
j – inverse landscape
When the metacode rendering occurs, the engine will increment 4 internal counters for
each orientation. The highest value at the end of rendering will determine which
orientation to use. The value of orientp, orientl, orienti and orientj will be added to the
initial value of these counters.
For example, if 100 characters of landscape text existed on an empty page, you would
normally view the page in landscape. However, if it was supposed to be portrait, the
initial values could be biased by setting orientp=200, which would mean that it would
be displayed as portrait as long as there were less than 200 landscape characters on the
page.

FeedDuplex

When FeedDuplex=1, the background prefixed is changed to front for odd numbered
pages and back for even pages.

56

Vault initialization files

RoundGraphic

This is used to set block count rounding behavior for inline graphics. The default is 1,
(Set to 0 will not round up. Set to 1 will round up to the nearest 512 byte boundary)0.

Configuring paper stock in MetaCode
Background Mode

Setting

Names

Use the name of the stock indicated
in the FEED= DJDE
command.

none

feed-512.gi
feed-640.gif
etc.

Use the name of the stock indicated
in the FEED= DJDE
command but account for the
reverse side of the given stock.

feedduplex=1

front-512.gif
back-512.gif
front-640.gif
back-640.gif
etc.

Use fixed background for all pages of
the document.

tray=
duplex=0

512.gif
640.gif
etc.

Background Mode

Setting

Names

Use one fixed background for odd
numbered pages and another for
even pages

tray=
duplex=1

512.gif
-back512.gif
640.gif
-back640.gif
etc.

use one fixed background for page 1
and another for all remaining pages

tray=
duplex=2

512.gif
-body512.gif
640.gif
-body640.gif
etc.

SuppressBlankPages

When set to 0, blank page suppression is enabled.

GraphicBlockSize

The block size used for inline graphics in your output datastream may differs from the
block size used for inline files. This option allows you specify block size to be used for
inline graphics e.g. 128 bytes, 512 bytes, etc.

57

Vault initialization files

Example

[SampleMeta]
Documents=journal
Format=Metacode
RecordReader=RDW
IdenPrefix=$DJDE$
IdenOffset=1
IdenSkip=10

58

Vault initialization files

Postscript settings
Keywords and parameters
FileMode

For use with postscript files that use inline or subsetted resources. FileMode set to 1
(FileMode=1) will strip inline resources out of postscript pages as they are compressed.
The administrator is responsible for creating a resource.ps file containing the complete
form of any resources that were used inline. The resource.ps is a file where the
administrator can place complete copies of inline or subsetted resources. It is a block of
postscript commands. The resource.ps file is only used when FileMode=1. This file
should be placed in the resource set directory for the stream.
FileMode set to 0 is used with data streams where resources are all located in the header.
It is faster than FileMode=1.

SkipHeaderPages

Skip the first N pages of the print stream. Set to 1 will ignore the required Postscript
header which is stored as the first page.

Option1/9

In postscript mode, you can pass additional options to the underlying Ghostscript
engine using Option1 or Option2. For example, Option1=-dGraphicsAlphaBits=4, is
adjusting the GraphicsAlphaBits setting. This controls subsample antialiasing which
improves the appearance of graphics at the expense of speed.
For more information on command formats, refer to:
http://ghostscript.com/doc/9.07/Readme.htm

EPS

This setting specifies that the postscript stream is actually a set of EPS (encapsulated
postscript) pages. Internally this means no postscript header is used and no inline
resources are stripped at compress time. Use EPS set to 0 for postscript streams. Use
EPS set to 1 for streams of concatenated EPS files (which is a related format).

BeginPage, EndPage and
EndHeader

When Postscript streams do not provide standard page DSC commands, you can specify
lines that mark page beginnings (BeginPage), page endings (EndPage) and header end
(EndHeader). Typically, you would use BeginPage and EndHeader together.

GhostscriptParallel

When the Vault rendering engines process Postscript data, it starts a subprocess called
“e2ps” to execute the request. By default, Vault will only start one of these at a time to
prevent any file system conflicts from occurring. However, this won’t occur for many
types of streams.
In this case, you can set the profile option GhostscriptParallel=1 which will allow
multiple instances of e2ps to run on data from the specific profile. This can improve
performance and/or concurrency of Postscript requests.
Note: Ensure that you have enough memory because the subprocesses can consume
additional memory system resources.

59

Vault initialization files

GhostscriptPooled

By default, Vault will initialize the Postscript engine by placing the print stream's header
into Ghostscript before rendering pages. In many cases these headers are very large
which means they take considerable time to fetch and process.
One way to improve performance is to keep the engines, in the form of “e2ps”
subprocessess alive so that subsequent operations can run without having to execute
the header again. To enable this behavior, set GhostscriptPooled=1 in the profile.
Note: Use caution with this option. This mode relies on the stream being balanced (e.g.
the stack machine balance on every page must be correct). Like GhostscriptParallel, it
can consume additional resources because multiple “e2ps” processes are kept running.

PSBackgroundMode

This option controls how EPS backgrounds are inserted into the page for rendering.
Set to 1 to embed the contents of the EPS background into the start of the page as-is.
This is the default behavior.
Set to 2 to insert a reference to the external background file. The reference is wrapped
in save/restore operators in order to prevent the EPS file from affecting the execution of
the rest of the page. This option also redefines the showpage operator so that if the EPS
file uses it, an extra page won't be generated unintentionally.

60

Vault initialization files

StorePrimaryHeader
StoreSecondaryHeader
StoreExternalHeader

The start of a Postscript file, referred to as the Postscript header in Vault, contains
resources and command definitions used by the pages in the print stream to construct
the output. When Vault renders pages, it needs the information from the header to
properly interpret the page content.
During the compression stage of the load process, Vault processes the Postscript header
for the job. The header is written in a number of places depending on the configuration.
StorePrimaryHeader: The primary header is written as the first compressed page in the
compressed data (.drp) file. It is this page that historically the SkipHeaderPages=1
setting was needed for. It contains the original header with minimal changes.
StoreSecondaryHeader: The secondary header contains the data from the beginning of
the Postscript file plus any inline resources detected and removed from pages during
compression. Vault needs to be able to render pages out of order and that means it
needs a way to access resources declared in pages before those currently being
rendered. The secondary header is stored as the last compressed page in the
compressed data (.drp) file. Vault locates this header by altering the declared size of the
compressed file in the compressed file header.
Note: Some older versions of Vault did not correctly set the header making the
secondary header inaccessible.
StoreExternalHeader: During the compression process Vault will also write the header
data to an external file "resource.ps" in the server directory. This file in intended for use
in manually constructing resource.ps files when using FileMode=1.
By default, all three headers are generated.
To suppress the generation of these headers, set the corresponding setting to 0. You
might do this to save space or time when you know that a particular header is not
needed. When the primary header is suppressed a small place holder compressed page
is written instead.
The rendering process uses the RenderHeaderType setting below in selecting which
header to use.

RenderHeaderType

When rendering Postscript pages, the Vault rendering process needs access to the
header of the Postscript file which contains resources and command definitions. The
load process may store a primary and/or secondary header.
By default the secondary header will be used to render the page if present or the
primary header if not.
To force the rendering process to use the primary header, set RenderHeaderType=1.
To force the rendering process to use the secondary header, set RenderHeaderType=2.

61

Vault initialization files

HeaderChunk

When the a rendering operation fetches the stream's Postscript header, it reads it in
chunks of N bytes defined by this setting. A larger value reduces the number of round
trips to the server needed to retrieve the entire header.
The default value is 4194304 (4 MB). If you set this value to 0, it will try to retrieve the
entire header in one request regardless of size. If the chunk size exceeds the maximum
receive buffer size allowed by the connection component, the operation will fail.

Example

[SamplePost]
Documents=journal
Format=postscript
SkipHeaderPages=1
CompressedBlockSize=32000000
Option1=-sPAPERSIZE=a4
PageHeight=11.69
PageWidth=8.27
GhostscriptParallel=1
GhostscriptPooled=1

Postscript Backgrounds
Vault can simulate paper stock when rendering Postscript streams. The backgrounds are
supplied as single page EPS (Encapsulated Postscript) files, stored in the job's resource set
with the ".ps" extension.
The background to use for any given page can be selected using the Duplex= and Tray= profile
settings:
Scenario

Settings

Background

Fixed background

Duplex=0
Tray=basename

basename.ps

Specific front and back
backgrounds

Duplex=1
Tray=basename

odd numbered pages: basename.ps
even numbered pages: basename-back.ps

Specific background for first
page and remaining pages

Duplex=2
Tray=basename

1st page: basename.ps
remaining pages: basename-body.ps

62

Vault initialization files

Dynamic background selection
Backgrounds can also be dynamically selected based on the media specified in the content of
the page. Vault will look for /MediaType device settings and %%PageMedia DSC comments and
attempt to select the background based on their arguments. If neither is found, a default
background can be specified using Tray=. Dynamic background selection depends on the
details of the generated stream. Some streams may not be compatible.
Settings

Page

Background

(no Duplex=)

/MediaType (alpha)

alpha.ps

(no Duplex=)

%%PageMedia: beta
(no MediaType)

beta.ps

(no Duplex=)
Tray=basename

(no %%PageMedia)
(no MediaType)

basename.ps

Notes:
•

Postscript jobs do not use the TrayMode settings used by other formats nor does it use
backgrounds in PDF format.

•

Sometimes EPS backgrounds can interfere with the state of the Postscript engine and
cause display issues. Experiementation is sometimes required to get it to work. You can
also try the PSBackgroundMode=2 setting which can insulate the engine from some issues
in background EPS files.

Postscript search and replace
In certain situations, data loaded into the Vault must be modified before being used. The
search and replace function allows you to change data appearing in the output datastream.
The syntax of the search/replace is shown below:
PS_Search=text to search for
PS_Replace=text to replace with
PS_Flags=replacement options<

The example below remaps the resource directory from /var/spool/data/tmp/ to the of the
resource set variable %resourceset%, this value is right justified using the PS_Flags value.
PS_Search1= /var/spool/data/tmp/
PS_Replace1= /%resourceset%/
PS_Flags1=R<

You may specify multiple search-and-replace entries, each with a different number. The
numbers must start at one and be contiguous.

63

Vault initialization files

TIFF settings
Vault Service compresses and displays multiple-page TIFF files. Multiple TIFF files with
document information stored in a single journal are not supported. A journal is needed for
each TIFF file. Black and white and Group 4 compressed images are currently supported. Out
of order pages, pages with multiple versions, masks, and etc. are not supported. TIFF supports
reverse bit order encoding, PackBits and Group 3 compression modes.

Example
[PBBI]
Documents=journal
Format=MPTIFF

Working with HTML in XML datastreams
This type of output will typically originate from Generate. HTML output created by Generate
is produced by as a single stream containing all the documents generated by the application.
The output is actually an XML structure known as a PAK file which provides a structured
container for the HTML pages and their associated resources. This type of output data can be
loaded directly into the Vault.
Example
[profilename]
Documents=xmljournal
Format=HTML

PDF settings
It is now possible to configure PDFs to use Background Paper Stock. It uses the
TrayMode=Numbered method, with “normal PDF backers”. For more information, please refer
to “Configuring PDF background” on page 197

Example
[profilename]
Format=PDF
IgnoreResourcePacks=1

PDF version support
When rendering documents as PDF, there are two parameters for outputting the PDF version
number:
•

PDFVersionMajor

64

Vault initialization files

•

PDFVersionMinor

The values of the parameters can be from PROFILE, ORIGINAL PDF document and
BACKGROUND file.
The process is outlined:
1.

PDFVersionMajor/PDFVersionMinor are initialized from the values from PROFILE:

[My-profile]
PDFVersionMajor=1 (default value)
PDFVersionMinor=3 (default value)

2.

If there is VERSION info from ORIGINAL PDF, use this INFO to overwrite the output
VERSION

3.

If there is BACKGROUND, compare the VERSION info from Background file and the one
from step 2 above, then choose the bigger number as PDF output VERSION.

PDF security settings
When rendering PDF output, Rendering Engine can use PROFILE parameters to set up
user-password/owner-password permission for the output PDF files.
1. Configure the settings from PROFILES.ini
[MY-PROFILE]
PDFEncryption=1
PDFUserPassword=123456
PDFOwnerPassword=abcdef
PDFAllowPrint=0
PDFAllowModifyContents=0
PDFAllowCopy=0
PDFAllowModifyAnnot_Form=1

2. Configure the settings from USER/API:
The Rendering Engine can use user-password/owner-password permission from USER/API.
There are four REQEUST parameters of request.pdfsecuritymode, request.pdfuserpassword,
request.pdfownerpassword, request.pdfpermission.
When PDFEncryption is set to 1 in profiles.ini and request.pdfsecurtitymode is set to 1in the
API call, then the pdf security settings can be set in the API call. For example:
request.pdfsecuritymode=1
request.pdfuserpassword=”111112345”
request.pdfownerpassword=”aaaaabcdef”
request.pdfpermission=-1 #bit00==allow printing, bit01==allow modifying
contents, bit02==allow copying, bit03==allow modifying annotation & forms,
other bits are 1.

65

Vault initialization files

NOTE: If Request.pdfsecuritymode==0, then Rendering Engine will use settings from
PROFILES.INI

Extracting summary document information from DJDE and DJDELINE
formatted documents
The GenericLINE extraction engine provides a User Configurable method for extracting
summary document information from documents with Format=DJDE and Format=DJDELINE.
When a string is found on a page, information is extracted based on (Row, Column, and
Length). For example, when “YOUR STATEMENT” is found, “Account Number” is extracted
from Row 5, Column 7, Length 15. The following steps are required and are further explained:
1.

Define rules for page types in the RCL (Row/Column/Length) sections.

2.

Provide the RCL mappings.

3.

Determine the profile definitions.

Define rules for page types in the RCL section(s)
Since it is possible for many search strings to have the same information (row, column, length)
settings, and it also is possible for each of those search strings to resolve to multiple pieces of
information. This mapping is abstracted by grouping the RCL Information Extraction Settings
together within a [User Named] section as the shown in the example that follows:
[Summary_Page_Information]
; configure each piece of information that exists on the Summary Page
5,7,15=account
4,64,8=date; MM/DD/YY
10,10,40=name
11,10,40=address

Each of these RCL sections is intended to define a certain look and feel of a page whereas all
pages using these RCL Settings should have their Account Numbers and/or other Fields
(name, address and custom attributes) in the same place on the page. You may have as many of
these sections as needed for your environment. The name of the [section] is configurable, but
the name should not be the same name as any profile in Profiles.ini.
Provide the RCL mappings
Once the various rules for a specific type of page have been defined, you need to decide when
to apply these rules. This is done in an RCL MAP Section. An RCL MAP provides the mapping
between (search string) on the page, and the RCL rules themselves. As with the RCL Sections,
an RCL MAP Section has a user-defined [section] name, as shown in the example below:
[My_RCL_MAP]
; provide the mappings from (Search String)s to (RCL Sections)
YOUR STATEMENT=Summary_Page_Information

66

Vault initialization files

You would add as many lines as needed. The pattern on the left will be compared against the
page contents. If it’s found, the RCL settings defined in the named [RCL section] will be used
to extract key document information from the page.
The PatternsList section allows you to define binary patterns for certain types:
Skip Page – do not add it to the current document at all.
Document – when this binary pattern is found, clear the current document and create a new
one. The alternate method of document detection is when the detected account number
changes. The example below illustrates how to use pattern lists:
[My_PatternsList]
C6D6D9D4E27ED6D7C2C1D5D9=SKIP
C6D6D9D4E27ED5D6D5C5=SKIP
4EC24040404040404040404040404040404040404040=DOCUMENT

Locate Profile Definition(s) in Patterns.ini
The final step is deciding when to use these settings. This is controlled by the Profile name.
The Profile name is determined and configured in profiles.ini; again, it is a user configurable
name, so the specific names of profiles in your environment cannot be known by this
document.
The code example below displays a profile called [Report7215A] as LINE or DJDELINE Format,
which is configured to use Documents=GenericLINE. In the Patterns.ini file locate a section
with the same name as that profile. In this case, [Report7215A]. The Profile-derived section of
patterns.ini has the following mandatory settings shown in the example below:
[Report7215A]
PatternsList=My_PatternsList
RCLPatternsMap=My_RCL_MAP
;Optional Settings
Date=1
DateFormat=YYMMDD
ReportSection=1

Keywords and parameters
[SectionName]

Name of the profile. There must be a corresponding section in the profiles initialization file.

Date

Set to 1, it uses the File Name to determine the default document date.

DateFormat

The format of the date within the filename is YYMMDD. They must be the first Numeric
characters.

ReportSection

Set to 1, it takes the “FORM=” name from a DJDE entry and uses it as a Section Name.Repeat
this section block as required for each Profile that uses GenericLINE extraction.

67

Vault initialization files

Characterset

When using DJDE format, characterset=1 converts the data from EBCDIC to ASCII. The
default 0 does not attempt to translate the data.

FontSelection

In DJDE format, this specifies the column the font code is in. Use -1 if the stream does not
have a font column. The default is column 1.

ChannelSelection

In DJDE format, this specifies the column the channel control code is in. The default is no
channel control column.

Characterset

When using DJDE format, characterset=1 converts the data from EBCDIC to ASCII. The
default 0 does not attempt to translate the data.

68

Vault initialization files

Server initialization file
This is used to store general configuration parameters for the Vault. The file can be found in
\server\server.ini.
Note that the file may contain settings other than those listed below but only those listed are
user-configurable. It is recommended that you do not modify any other sections or keywords.
Syntax:
[Server]
ResourceSet=xxx
[Paths]
DownloadPath=path;default installpath\server\download
PresentJournalPath=path
PresentResourcePath=path
PresentInlinePath=path
storagemodel=1

[Log]
Path=c:\e2\log

Data Types
number

a positive integer.

path

a directory pathname – can be one of the following:
relative – do not start with a drive letter or backslash, e.g. runfiles
absolute – start with a drive letter or a backslash, e.g. e:\app\runfiles
UNC – e.g. \\server\sharename\runfiles).
Note that changing the default is not advisable unless you are certain it is necessary.

Keywords and
parameters
[Production]
[Paths]
DownloadPath

This is the location that the Automated Data Manager (ADM) scans for incoming
output data streams and associated files. Default directory: download\.

PageDataPath

The file storage location for compressed streams and journals. Default directory:
pagedata\

IndexPath

The location for storing indexes and customer records. Default directory: index\

DocDataPath

The location for storing document records. Default directory: docdata\

69

Vault initialization files

InfoPath

The location where results from .info or audit.adm requests. Default directory: info\

RemovedPath

The location where page files, document files and journals are moved to after a
remove request. Default directory: removed\

DistributionPath

The image of the client used by loader to keep desktops up to date. Default directory:
distrib\

BackupPath

This path is used to store backup of index resulting from an indexbackup.adm
request. Default directory: backup\

ProcessPath

This is used to store intermediate ADM load results that need further processing.
Default directory: process\

WorkPath

This is used to store files currently being worked on by ADM, compressed files waiting
for their journal or vice versa. Default directory: work\

ResourcePath

This is where resource packs, such as .HIP and .HIM files, are stored until needed.
Default directory: resource\

Storagemodel

This changes the storage layout of the .drd and .drp files.
0/1: standard drd -> docdata, drp, jrn -> pagedata
2: year drd,drp,jrn -> storage\yyyy
3: month drd,drp,jrn -> storage\yyyy\mm
4: day drd,drp,jrn -> storage\yyyy\mm\dd
When alternate storage model is enabled, data files are stored under the storage path
directory. Like other Vault paths it can be redirected from its default location. For
example:
server.ini:
[Paths]
StoragePath=F:\Vault\Data

ReprintInputPath

This is the path where documents, and their resources, flagged for reprint will be
stored temporarily. This will default to the reprintinput subdirectory.

ReprintOutputPath

This is the path where the consolidated documents for reprint will be placed. This
will default to the reprintoutput subdirectory.

70

Vault initialization files

PresentJournalPath

This is an optional setting that allows you to specify a directory where the Vault
loader will copy the journal during a job load.
This is used with e2 Account Managment which uses these journals to determine
what documents are available in Vault. It can also be used to let other applications
know what documents are loaded in Vault. Another option is using ODBC export on
Windows platforms.
This setting is used with the Documents=xmljournal setting. It forwards the journal
once the document build stage finishes creating or updating the resource set based
on resource packs.
If the resource set update is deferred because of missing resource packs, the journal
forward operation will also be deferred.
If the resource extraction step is disabled with IgnoreResourcePacks=1, the forward will
occur after the document data file is built.
Note: The forward occurs before indexing. This means that the data may not be
available to users yet. If the job fails during indexing, some or all of the documents
may not be available.

[indexer1]
ipcname=

This options sets the name of the shared memory file used by e2serverd, e2loaderd,
e2util, and indexcheck to communicate with an indexerd instance. If you are setting
up an environment where more than one indexerd instance will be running (two or
more separate Vault systems on the same platform), then each indexerd instance must
have a unique shared memory filename set.
For Windows, the default shared memory filename is Global\idxreq. An example of an
Windows alternate setting would be: ipcname=Global\indexer1
For AIX, Solaris and Linux, the default shared memory filename is /idxreq.shared. An
example of a Unix alternate setting would be: Ipcname=/indexer1.shared. The “/” for
unix is not optional.

71

Vault initialization files

maxhits

The maxhits setting defines the maximum number of hits to return from a search
request when a request.max parameter is not provided.
The default is 30.
Notes:
•

Increasing the number of hits can increase the amount of work the server needs
to do to execute a search. In some cases this can have significant performance
implications for the server (see "Search performance considerations").

•

By default, Vault will use a specific key to resume a search. If the index contains
duplicate keys (e.g. large numbers of duplicate dates) this may cause the search
to resume in the wrong place (or even cause the caller to loop). Increasing the
default number of hits can reduce the need for this mechanism.

•

Older versions have different defaults or internal hard coded values for this
control.

It should also be noted that the current Perl sample provides these two settings in
interface.pl:
my $maxhits=20
This setting controls the maximum number of hits requested in searches.
my $maxdocs=100
This setting controls the maximum number of hits returned for the date drop down
box on the view page.
These set the request.max parameter in search requests sent to the server for their
respective search commands.
maxcap

The maxcap setting defines the highest value of the request.max parameter the
database component will allow in a request.
The default is 10000.
Note: Older versions had different defaults or internal hard coded values for this
control.

72

Vault initialization files

Database initialization file
This is used to configure databases. The list of searches available is now configurable on a
database-by-database basis. This allows databases with specialized indexes to show a search
that would not work in another database. This file can be found in
\server\database.ini.
Syntax:
[DatabaseName]
description=