![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: Alpha 8400, 2 node cluster, 4gb memory, VMS V7.1 Running Oracle V7.3x, >220 server processes, and multi-threaded lister. At any time,there can be many or a few processes active. The reason for all of the above is to dynamically determine the current channelcnt usage. This far, only method I have discovered is via sda: evaluate @ctl$gl_chindx For the above environment, the return value is 20 decimal. Is there a better way to get more meaningful (hopefully dynamic) info. I know very little about internals BUT I have considerable system background using DecC (*LIB$,SYS$,CLI$,etc) Thank You. The Answer is : There is no supported nor documented mechanism to acquire the current (dynamic) channelcnt usage. On OpenVMS Alpha, SDA> EVALUATE @CTL$GL_CHINDX shows the highwater of all channel numbers used by this process. On OpenVMS VAX, use SDA> EVALUATE (@CTL$GW_CHINDX&FFFF)/10 shows the same highwater. For dynamic use, you will have to evaluate the contents of the CCB (Channel Control Block) array, starting from the CTL$GL_CCBBASE, and working downward. (CTL$GL_CCBBASE is at the top of the array.) At least on OpenVMS VAX, the CCB$B_AMOD field contains a zero if the CCB is available, else it contains the access mode (biased by 1, thus a kernel-mode channel would have CCB$B_AMOD containing the value 1) of the I/O channel. For further information in this area, please consider acquiring the OpenVMS Internals and Data Structures Manual (IDSM), available from Digital Press.
|