Skip to content
Database Blocks Explorer for InterSystems Caché
JavaScript ObjectScript CSS Dockerfile Shell HTML Makefile
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows ci Mar 21, 2020
.vscode
images
server some fixes Mar 24, 2020
web
.dockerignore Solid Docker image for the whole application Sep 8, 2018
.editorconfig
.gitignore generate blocks map as a picture Mar 22, 2020
Dockerfile
Dockerfile.iris
LICENSE
README.md
docker-compose.cache.yml
docker-compose.iris.yml
docker-compose.yml some fixed in docker-compose Mar 26, 2020
entrypoint.sh
makefile some fixes Mar 24, 2020
module.xml updated zpm package Mar 26, 2020

README.md

Blocks Explorer

Database Blocks Explorer for InterSystems IRIS/Caché

Key features

Tree explorer
  • Shows tree of database blocks;
  • Export tree as SVG or PNG image;
  • Shows every node in the block;
  • Open any block just by clicking on node in parent block;
  • Reload block info by clicking at the same node second time;
  • Zoom in and out, fit and navigator;
  • Easy way to switch between view modes (tree/map);
Fragmentation map
  • Shows every block with the same colour for every globals;
  • Legend for globals;

Run with Docker

You need license key for Caché or IRIS on RedHat systems.

Caché
docker run -d --name blocksexplorer --rm \
       -p 57772:57772 \
       -v /opt/some/database/for/test:/opt/blocks/db/test \
       -v ~/cache.key:/usr/cachesys/mgr/cache.key \
       daimor/blocksexplorer:cache

Generate blocks map as image file in out directory

docker run -it --rm \
       -v /opt/some/database/for/test:/opt/blocks/db/test \
       -v `pwd`out:/opt/blocks/out \
       daimor/blocksexplorer:cache generate
IRIS
docker run -d --name blocksexplorer --rm \
       -p 52773:52773 \
       -v /opt/some/database/for/test:/opt/blocks/db/test \
       daimor/blocksexplorer:iris

Generate blocks map as image file in out directory

docker run -it --rm \
       -v /opt/some/database/for/test:/opt/blocks/db/test \
       -v `pwd`out:/opt/blocks/out \
       daimor/blocksexplorer:iris generate

Development mode

Run with docker-compose, will start web part with hot reloading.

docker-compose up -d --build

It will start server base on IRIS To start on Caché use this command

MODE=cache docker-compose up -d --build

By default running on 80 port. To start using it, just open http://localhost/

Screenshots

Tree Map

CLI mode

Using prebuild docker image gives a way to generate a picture for any IRIS or Caché database. Use docker image daimor/blocksexplorer:iris for IRIS or daimor/blocksexplorer:cache for Caché Databases. Those images accepts command generate with arguments

  • path to the tested databases inside a container, by default /db, can be omited
  • cellSize - size of the cell in pixels, where each cell represents particular database's block, by default 1
  • cellSpace - sorrounding space between cell, by default 0
  • showFill - sign to show how much block fill by data, by default 0

This tool generates a square picture in folder /out inside a container in formats BMP and PNG.

So, with command like this

docker run -v `pwd`/out:/out daimor/blocksexplorer:iris generate 20 1 1

It will generate this picture for an empty database.

TESTDB With a lighter color visible that most of the blocks just empty.

The same test empty database, but with showFill=0

docker run -v `pwd`/out:/out daimor/blocksexplorer:iris generate 20 1 0

Blocks have different colors but just for globals, and does not show how much it fill.

TESTDB

More examples
ENSLIB

docker run -v `pwd`/out:/out daimor/blocksexplorer:iris generate /usr/irissys/mgr/enslib 5 1

ENSLIB

IRISSYS

docker run -v `pwd`/out:/out daimor/blocksexplorer:iris generate /usr/irissys/mgr/ 5 1 1

IRISSYS

For large databases, would not recommend to use have too big cellSize.

Useful Links

There you can find more about database internals, and how to use this tool.

You can’t perform that action at this time.