Hi,

Iris comes with a PDF render engine based on Apache FOP. This is though more used to create PDF documents from scratch than convert documents to pdf.

PDF render config documentation

Which is used in the now deprecated ZENReports %ZEN.Report.PrintServer - InterSystems IRIS Data Platform 2024.3 - including private class members

The other option is to make use of InterSystems Reports, but again this is for creating new pdfs from data contained in the database, not converting existing documents to pdf.

Option 2 is not totally correct.
The parameter [Startup] MaxIRISTempSizeAtStart=5000 will clear the IRISTemp database and shrink it to the size specified it will not prevent IRISTemp from growing further.
So you set the parameter and restart IRIS and the runaway IRISTemp database will be reset to 5000MB (per example)

To ensure IRISTemp is not taking over all your available space either relocate the DB to a dedicated volume or set the maximum DB size in SMP for the database. But this all has its own risk.

Hi Dmitrii,

The automated export of changed files can be handled by %Studio.SourceControl.File, this would export any changed file on save and import the latest from disk on checkout.

To automate import on a target system you can create a scheduled task that executes $system.OBJ.LoadDir regularly, this also per default compiles on load.

Hi,

not sure about Veeam installing stuff etc.

But i know some customers only backup the backup mirror, never the primary mirror as even with snapshot taking only a couple of seconds, QoS detection get triggered due to a slight performance degradation during the backup. If the backup is running against the Primary mirror, this then results in a forced failover being triggered.

Where you install IRIS depends on your use case. E.g. if you are "only" developing, no real user load the disc layout you would use is markedly different to a production system with 1000s concurrent connections.

so just a couple of thoughts on disk layout:

Install IRIS and every of its components in a dedicated folder e.g. /iris . Reasoning behind this is a single folder is easier to be excluded from any e.g. AntiMalware scanner that could wreak havoc on a database backend. 

In that subfolder separate data, file store, journals and executables.

Reasoning: For a high-performance system each of above has a different i/o workload and a different performance profile. e.g. while journals are nearly 100% sequential writes, database executable are a mix of read and writes.  Database files are also a mix of read and writes but usually much bigger block sizes. Also different filesystems have different performance profiles.

So taking above in account also following best practises for mounts and i/o workload separation:

root (/)
/{instancename}/iris -> instance installation folder
/{instancename}/journalPrimary
/{instancename}/journalSecondary
/{instancename}/database
/{instancename}/filestore
/{instancename}/webfiles

Based on above you can mount volumes depending on workload sitting on different physical disks/lvms also for high performance environment you might want to separate the disc on multiple scsi controllers. So each controller only served a specific i/o profile.

Also to note IRIS2021 changed the default disc i/o behaviour from use OS file cache to direct unbuffered i/o. Which again means separate IRIS workloads from any OS workload.

The beauty of the IRIS technology stack is that code and data is withing the same instance.

To separate code from data ISC uses the idea of code and data databases, which can be configured on a namespace level, this combined with global, package and routine mappings results in very versatile environment that should satisfy every need. If you want to actually separate compute from data storage, this is also possiple using the ECP protocol with dedicated app servers.