4D_Info_Report

The 4D_Info_Report component (formerly called Info Report) is a powerful tool for analyzing and monitoring a running 4D database and its environment, which can help to size the cache, check activated logs or diagnose technical problems such as memory leaks, server misconfigurations, etc.

View on GitHub

Installation and Usage Guide

This guide covers all installation and usage options for 4D_Info_Report, including legacy 4D versions and manual setup.

For the recommended modern quick start (4D 20 R6+ with Dependency Manager), see README.

Installation Methods

Method 1: Automatic install with Dependency Manager (4D 20 R6+)

This method requires at least 4D 20 R6.

  1. Create a file named dependencies.json in Project/Sources/.
  2. Copy the following content:
{
	"dependencies": {
		"4D_Info_Report": {
			"github": "4d/4D_Info_Report",
			"version": "4d"
		}
	}
}
  1. Restart 4D or 4D Server.
  2. The component is loaded automatically when the project reopens.

Dependency cache locations:

Method 2: Manual install (all 4D versions)

  1. Download the component version matching your 4D version.
  2. Create a Components folder in your project root if it does not exist.
  3. Copy the unzipped 4D_Info_Report component into Components.
  4. Restart 4D or 4D Server.

For all version-specific download links, see DOWNLOAD.

Usage Modes

Reports are generated as text files in Folder_reports next to the data file.

There are 2 usage modes:

For each mode, you can run:

A) Generate reports every N minutes

Without modifying host code

From 4D Remote, run shared method:

A component dialog lets you start a stored procedure that generates a report every N minutes on the server.

With host code modification

Add the following code to your host database On server startup method:

var $NP : Integer
ARRAY TEXT($at_Components;0)
COMPONENT LIST($at_Components)
If(Find in array($at_Components;"4D_Info_Report@")>0)
  // to start the stored procedure creating report every 5 minutes
  $NP:=New process("aa4D_NP_Schedule_Reports_Server";0;"$4DIR_NP";5;0)
End if

Why this can be useful:

B) Generate a single report (on demand)

Without modifying host code

Run shared method:

With host code modification

Add this code in your host database:

var $NP : Integer
ARRAY TEXT($at_Components;0)
COMPONENT LIST($at_Components)
If(Find in array($at_Components;"4D_Info_Report@")>0)
  // to create a single report in "Folder_reports" next to the Data file
  $NP:=New process("aa4D_NP_Util_CreateReport_Serv";0;"$4DIR_NP")
End if

Analyze Reports

You can analyze generated reports: