Hi,

In our mail signing service implementation, we use multiple Djigzo worker nodes 
connecting to an Oracle database on a remote server. We manage the database 
from a separate host that's not used to sign e-mails, only to manage the 
database. It's also the only host that has digzo-web installed.
We don't use the webmail interface, the workers are not internet-facing, we 
don't use djigzo to encrypt e-mails (the management host is not 
internet-facing, either, it's only accessed internally).

The system works fine, allows really large volume of outgoing mail to be 
signed, but we identified two bottlenecks in the implementation and we're 
wondering if it's possible to eliminate them.
1. The service connects to the remote database to collect the certificate for 
every single signature made. This requires a significant number of logins to 
the database and our database admins asked us to check if we can limit this.
2. Mail signing workers connect to the database for every signature. We tried 
enabling cache in our testing environment (using EhCache), but djigzo.service 
fails to start, apparently there's no library. I didn't try adding it manually, 
I assume there is a reason for not shipping cache libraries with the product. 
Could you shed more light on it? We're not using the service to encrypt mail, 
we're only using it to sign.
3. Chipermail raises CRL lookup threads to our certificate providers. Internet 
connections are firewalled, so they time out. We don't even need the lookup 
functionality on workers and if we were to use it, we would run it on the 
management host. Can those threads be disabled?
4. Workers failed when we tried to access the database with a read-only user. 
Apparently Djigzo tries to write to the database and won't work if the user has 
no write access. Is there a way to disable writes to the database and use the 
database with a read only user?

To recap:
1: Can we limit the number of simultaneous logins and/or active connections to 
the database?
2: Can we enable caching? We don't write to the database, so if we enabled it, 
caching the signing keys locally would eliminate the remote database connection 
bottleneck.
3: Can we disable CRL lookups and all other internet connections from djigzo? 
Disabling them would eliminate a few threads that open a connection to the 
database which would also reduce the load on the db server.
4: Can we use the database from djigzo workers in read only mode? We would like 
to completely disable writes to the database to prevent any potential database 
corruption and to improve performance by eliminating any locking mechanism in 
the database.

Best regards, Marek

Reply via email to