When working with NaturalONE, following these aspects can improve the performance - especially when working with huge projects:
... instead of working from the Natural Server view.
The preferred working method with NaturalONE is the local mode, where you work with Natural projects in the Eclipse workspace (see also NaturalONE and the Eclipse Workspace).
If you work in the local mode, the connections to the Natural development (NDV) server will be reduced to a minimum and you can take advantage of the variety of features provided for Natural projects and Eclipse projects in general. Only to mention a few:
The Natural Builder keeps the information which sources have been changed. Moreover, it knows which other objects depend on the changed sources and allows to catalog only the relevant objects on the server.
The Natural Navigator view offers several options for changing the arrangement of the Natural project’s objects. Moreover, it is possible to define various types of filters.
The Deployment Wizard collects all required application information (such as the access information for the versioning repository and the Natural server) and writes it to an Ant script which is used to start the deployment process. This Ant script makes the deployment task highly configurable and repeatable and allows you to run the deployment process unattended. For more information see section Deploying Natural Applications of Using NaturalONE.
The Dependencies View shows the dependencies to other Natural objects that are referenced from the source in the active editor. It is described in the Associated Views sections that are available for each editor described in section Using the Natural Editors of Using NaturalONE.
The Debugger which allows to debug the different types of applications that can be created with NaturalONE.
The Application Testing component allows testing your application, creating Unit tests for your application and generating Ant scripts for starting these tests automatically.
... to display only relevant objects.
If you are working with a huge number of objects within your libraries and projects, you should consider working with filters to reduce the number of visible Natural objects to the number of objects you are currently working with.
This can improve the performance dramatically.
Filters can be defined in the Natural Navigator view and the Natural Server view.
... which objects must be updated.
The Natural Builder keeps the information which objects must be updated and cataloged on the server.
If you have huge projects, it is faster to update only these objects instead of rebuilding the entire project. So, after changing a source of a Natural project you should better use the command Build Natural Project instead of Update, Upload or Rebuild Natural Project.
In case you are using Natural deployment, you should use the Deployment Mode Incremental instead of Full.
When a Natural Ant build file is used the first time for deployment, the complete project is deployed and a cache file (cache _< deployFileName >_<projectName>.properties) is created. This cache file will be used for the next incremental deployment and must not be deleted from the project.
... which you do not currently work on.
Yes, it is that simple: Close all projects in your workspace, which you do not need for your current work.
Using a source repository is a must in modern software development. If you are working with Git as your repository, projects will show decorators that indicate, in what state the source currently is.
However, the Git label decorations could cause general performance problems with all active label decorations, because if a source change occurs, the Git Eclipse plugin sends update events for all visible project tree nodes (could be Navigator, Natural Navigator or Project Explorer view). This causes a label decoration calculation for all these nodes from all plugins with activated label decorations.
The following hints can reduce the label decoration drawing performance problem. If possible, you should:
reduce the number of visible project tree nodes and/or,
work with the Natural Navigator view, which is faster than the Project Explorer view if you have a huge number of visible project tree nodes (> 10000) and/or,
define filters in the Natural Navigator view to reduce the number of visible project nodes.
If all above mentioned tips are not feasible in your environment, you could also deselect the Git label decorations under the Eclipse Preferences > Appearance > Label Decorations. If you want to check your Git changes, use the Team Synchronize view or the Git Staging view in Eclipse. Moreover, there are several other tools which offer a very good Git support outside of Eclipse.
When a huge number of objects are contained in a library on the mainframe, the listing of these objects in the Natural Server view can take a long time. Starting from Natural for Mainframes version 9.1.2 on z/OS, Natural provides a hyperdescriptor that can significantly improve the database access required for this purpose. If the hyperdescriptor is available, Natural Development Server (NDV) uses it for a high-performance read. The installation of the hyperdescriptor exit and the allocation of the associated hyperdescriptor are described in the following sections:
Identify the Natural system file to be improved.
Add the following ADARUN
card to the Adabas
startup job of the database which contains the Natural system file:
ADARUN HEX15=NATHX15
Copy the hyperdescriptor exit NATHX15
to an
(APF-authorized) Adabas load library. For Natural for mainframe version, as of,
8.2.8 and 9.1.2 the hyperdescriptor exit is delivered as load fix (NAT828L001
and NAT912L001, respectively). For later versions it will be delivered in the
Natural load library PRD.NATvrs.MVSLOAD
.
Restart the Adabas nucleus.
Execute the Adabas ADAINV
utility with the
following settings:
ADAINV INVERT FILE=fnr ADAINV HYPDE='15,H1,18,A,NU=LJ,LK,LL,LM'
whereby fnr is the file number of the Natural system file to be improved.
Repeat this step for every Natural system file on which the
hyperdescriptor should be used. For further information regarding
hyperdescriptors and the Adabas ADAINV
utility see the Adabas for
Mainframes documentation.
In the following test, the program, subprogram and subroutine nodes in the Natural Server view are opened. The library contains in total about 15,000 objects, including 10,000 programs, 1,500 subprograms, and 100 subroutines. The image below shows the elapsed times of the NDV server component.
If the hyperdescriptor should not be used anymore, it can be deleted with the Adabas Online System (AOS). Proceed as follows:
Start Natural Tools and Utilities from NaturalONE and select AOS in the menu.
Or start AOS on the mainframe server with the following Natural commands:
LOGON SYSAOS MENU
Open the File Maintenance.
Select Release Descriptor with
the file number and DBID of the Natural system file in which the hyperdescriptor was defined, and
the descriptor name H1
.
Confirm the release (that is, deletion) of the specified descriptor.
If you want to use the hyperdescriptor again, you must rerun the
Adabas ADAINV
utility. If there is no Natural hyperdescriptor on
the Natural system files anymore for a given database, you may remove the
ADARUN
cards for NATHX15
from the Adabas startup
job.
A Natural system file which contains the hyperdescriptor can be
unloaded and reloaded with Adabas utilities. If you load the file, the
hyperdescriptor exit must be known to the target database as described in the
section Installing
the Hyperdescriptor Exit. If the file is loaded and the
ADARUN
card is not defined, or the hyperdescriptor exit
NATHX15
is not found, you will receive the following message when
adding, renaming or deleting a Natural object:
NAT3079 Descriptor exit error occurred. DB/FNR/Subcode .../.../1.
In this case proceed as follows:
If you need the hyperdescriptor in the target environment,
follow the steps described in the section
Installing the
Hyperdescriptor Exit. A reallocation of the
hyperdescriptor (Adabas ADAINV
utility) is not
required.
If the hyperdescriptor is not wanted in the target file, you can delete it with the Adabas Online System as described in the section Deleting the Hyperdescriptor.