good day, I am using a natural environment where RPCs get done from a front end via entire X, there are 7 servers are running triggering the natural back end processing, my questions are
a) if we were to create more RPCs, increase to 14, how would I do that and also trace the natural logic from the first subprogram called via the RPC?
b) How can we identify in batch all the modules doing adabas calls and doing db2 calls (eg. retrieval of data, updates, etc)
c) optimise the performance to therefore use less cpu time in batch and provide better tuning.
d) Distinguish between those modules calling adobes only, those calling DB2 only (through sql statements), those that use adabas files and db2 files.
I will attempt to help, though many are more knowledgeable about RPC servers than I here on this board.
a) if we were to create more RPCs, increase to 14, how would I do that and also trace the natural logic from the first subprogram called via the RPC?
Someone else will have to answer the first part of this question, but there are plenty of tools for tracing the logic in a subprogram. In a non-production environment, you may use breakpoints and watchpoints. There are other products available like Natural Engineer that will render your code logic in an easy to understand format.
b) How can we identify in batch all the modules doing adabas calls and doing db2 calls (eg. retrieval of data, updates, etc)
Since you know the subprograms involved, you can go to Predict Xref and count view * ref prog objectname usage (*) and get the references to each DDM. You can identify which DDMs are DB2 and which are Adabas.
c) optimise the performance to therefore use less cpu time in batch and provide better tuning.
Performance and tuning is such a broad topic. The easiest answer I can give in a short sentence is that you will have better performance if you migrate your DB2 files to Adabas.
d) Distinguish between those modules calling adobes only, those calling DB2 only (through sql statements), those that use adabas files and db2 files.
Using the information you obtain from (b), you can construct this list. I am not sure if any easier way exists.
If you are running 7 copies of one Natural RPC Server via NTASKS=7, you can increase NTASKS to 14. You will probably need to update the batch JCL to include additional DD statements for CMPRTnn and CMPRINT*.
If you are running 7 different RPC servers (each has its own SRVNAME) and you now want 2 copies of each, then set NTASKS=2 (and update the JCL for the additional DD statements needed). See the Natural documentation on RPC servers “Running with replicates”
You can turn on Natural RPC Server TRACE to see what the incoming and outgoing data buffers are, giving you the input you need to do interactive debugging as Brian mentions. Further debugging and tracing during RPC execution can be done with WRITE/PRINT/DISPLAY statements in the code.
You may find better results if you post your questions once to the right forum: EntireX and Natural have their own forums. Try not to put too many different topics into one post.
hello… happy holidays!! i am lee, just a new member from new jersey and it is really my honor to be one of you guys… looking forward to merry discussions with you and prosperous posts of course