Page 1 of 1

[RPG] Pass to another partition

Posted: Tue Mar 14, 2017 12:23 am
by DavidS
Hello, hopefully this is the right place for this question if not feel free to point me in the correct direction.

Our customer has two partitions on their IBMi server (for ease I'll be referring to "live" and "development".) I suppose my first question is since both partitions are part of the same server (same serial number, processor, etc) if they wanted to run the axes subsystem on their development partition would the existing license cover them?

Following on from that, I've tried starting the subsystem and the jobs appear to be working (although with a 30 day limit, see above.) The development partition is not on the network proper and so can only be accessed via telnet/etc from the live partition, I'm trying to setup so that a user can do this through longrange to assist in testing/development.

I've created a profile LRNGPASS (Passthrough) on the live partition which will pass to the development partition, I've then created the profile there to receive it. I've confirmed that the userprofile is getting as far as the development partition but the end user is just getting a blank screen.

Looking at the joblog I found:

Code: Select all

CPF9897    Escape                  40   13/03/17  12:48:11.816545  LRNGSRV      LRNG_SOFT   *STMT    LRNGDRIVER  LRNG_SOFT   *STMT
                                     From module . . . . . . . . :   LRNG984                                                      
                                     From procedure  . . . . . . :   LRNG_RaiseException2                                         
                                     Statement . . . . . . . . . :   12                                                           
                                     To module . . . . . . . . . :   LRNGDRIVER                                                   
                                     To procedure  . . . . . . . :   LRNGDRIVER                                                   
                                     Statement . . . . . . . . . :   1320                                                         
                                     Message . . . . :   Error received when READING from data queue QPADEV000C in                
                                       library LRNG_TEMP . Check queue existence and access rights.                               
                                     Cause . . . . . :   No additional online help information is available.                      
I assume there are some permissions which haven't been properly applied to their development partition. To try and prove concept I copied an existing data queue from LRNG_TEMP on their live partition to the development one and now get this error instead:

Code: Select all

CPF9897    Escape                  40   13/03/17  13:11:19.811965  LRNGSRV      LRNG_SOFT   *STMT    LRNGDRIVER  LRNG_SOFT   *STMT
                                     From module . . . . . . . . :   LRNG984                                                      
                                     From procedure  . . . . . . :   LRNG_RaiseException2                                         
                                     Statement . . . . . . . . . :   12                                                           
                                     To module . . . . . . . . . :   LRNGDRIVER                                                   
                                     To procedure  . . . . . . . :   LRNGDRIVER                                                   
                                     Statement . . . . . . . . . :   1320                                                         
                                     Message . . . . :   No CIK value or property was supplied by the client                      
                                       application.                                                                               
                                     Cause . . . . . :   No additional online help information is available.                      
Looking through the forum I can see this has been flagged in the past as something of a generic error as opposed to a specific problem which can be resolved on its own.

Has anyone else tried to do something similar and maybe able to offer advice on where I'm going wrong?

Thanks

David

Re: [RPG] Pass to another partition

Posted: Tue Mar 14, 2017 11:37 am
by MarkDuignan
Re- if they wanted to run the axes subsystem on their development partition would the existing license cover them?

Probably. However, even if it did not, as long as you can testify that one is for development only then you coudl probably get another one at no extra charge,

Re: [RPG] Pass to another partition

Posted: Tue Mar 14, 2017 11:47 am
by MarkDuignan
Re - Pass through session.

Presumably user LRNGPASS runs a CL program as soon as they logon that passes them through to the dev system?

Could you post the CL source code + the complete failing job log.

Also, the LongRange client has an option to trace what it receives from the server.
Could you capture that trace as well?

The other major test I guess is to check that aXes and LR are working okay on the dev system.

I know you said the dev system is not on the network proper - but it must be on some accessible network if you are inside the wall - otherwise your pass-through session could never work? You can generally test aXes by using the IP address and port it was installed with. You could also test LR with a device connected inside the wall? It would be good to verify that is all good before adding the pass-through complication?

Re: [RPG] Pass to another partition

Posted: Tue Mar 14, 2017 8:01 pm
by DavidS
Thanks Mark for the replies, I'll speak to our usual Lansa rep about the licensing.

For the session pass through:

The CL called on the live partition is below, the other programs referenced (UAT002/UAT003) take current user and check for a record on a physical file for that user. If found it returns username/password/system/etc to allow the telnet to complete. This is a general purpose program that I'm hoping is suitable to piggyback off for the purposes of getting the user onto the development partition, once on the development partition it uses LRNGLOGON with a minor amendment to remove the demo environment code from it.

Code: Select all

PGM                                                     
                                                        
DCL        VAR(&P#USRPRF) TYPE(*CHAR) LEN(10)           
DCL        VAR(&P#PASSWRD) TYPE(*CHAR) LEN(10)          
DCL        VAR(&P#UATSYS) TYPE(*CHAR) LEN(10)           
DCL        VAR(&P#VRTDSP) TYPE(*CHAR) LEN(10)           
DCL        VAR(&P#ACTIV) TYPE(*CHAR) LEN(25)            
                                                                                    
CALL       PGM(UAT002) PARM(&P#USRPRF &P#PASSWRD +      
             &P#UATSYS &P#VRTDSP &P#ACTIV)              
IF         COND(&P#USRPRF *EQ ' ' *OR &P#UATSYS *EQ ' + 
             ') THEN(DO)                                
GOTO       CMDLBL(NOPROFILE)                            
ENDDO                                                   
IF         COND(&P#ACTIV *NE ' ') THEN(DO)              
GOTO       CMDLBL(NOPROFILE)                            
ENDDO                                                   
TELNET     RMTSYS(&P#UATSYS) RMTVRTDSP(&P#VRTDSP) +      
             RMTUSER(&P#USRPRF) RMTPWD(&P#PASSWRD)       
                                                         
CALL       PGM(UAT003)                                   
                                                         
NOPROFILE:                                     
ENDPGM                                                   
First job log with the error reading data queue message:

Code: Select all

MSGID      TYPE                    SEV  DATE      TIME             FROM PGM     LIBRARY     INST     TO PGM      LIBRARY     INST
CPF1124    Information             00   13/03/17  12:48:11.581610  QWTPIIPP     QSYS        04C9     *EXT                    *N  
                                     Message . . . . :   Job 018610/LRNGPASS/QPADEV000C started on 13/03/17 at                   
                                       12:48:11 in subsystem QINTER_HHD in QGPL. Job entered system on 13/03/17 at               
                                       12:48:11.                                                                                 
CPF1015    Escape                  40   13/03/17  12:48:11.611938  QCLRTVDA     QSYS        026F     LRNGLOGON   MNIS_SOFT   0025
                                     Message . . . . :   Data area XXXX_SOFT in *LIBL not found.                                 
                                     Recovery  . . . :   Either correct the data area name or change the library                 
                                       name (DTAARA parameter).  Then try the request again.                                     
CPF1015    Escape                  40   13/03/17  12:48:11.624223  QCLRTVDA     QSYS        026F     LRNGLOGON   MNIS_SOFT   0031
                                     Message . . . . :   Data area XXXX_PROJ in *LIBL not found.                                 
                                     Recovery  . . . :   Either correct the data area name or change the library                 
                                       name (DTAARA parameter).  Then try the request again.                                     
CPC0904    Completion              00   13/03/17  12:48:11.636670  QWCCCRVC     QSYS        008E     LRNGLOGON   MNIS_SOFT   003B
                                     Message . . . . :   Data area LONGRANGE created in library QTEMP.                           
CPF2104    Escape                  40   13/03/17  12:48:11.636727  QLICHLBL     QSYS        02D7     LRNGLOGON   MNIS_SOFT   0044
                                     Message . . . . :   Library MNIS_SOFT not removed from the library list.                    
                                     Cause . . . . . :   Library MNIS_SOFT is not in the user portion (type USR) of              
                                       the library list and therefore cannot be removed. Recovery  . . . :                       
                                       Display the library list (DSPLIBL command) to determine if the library name               
                                       specified is correct or if the specified library is in the system portion                 
                                       (type SYS) of the library list.  If the library is a product library (type                
                                       PRD), the library will be removed when the command completes. If the library              
                                       is in the current library position (type CUR) of the library list, use the                
                                       CHGCURLIB command to remove the library from the current library position of              
                                       the library list.  If the library name is not correct, change the library                 
                                       name and try the command again.                                                           
CPC2196    Completion              00   13/03/17  12:48:11.636797  QLICUSRL     QSYS        0114     LRNGLOGON   MNIS_SOFT   004E
                                     Message . . . . :   Library MNIS_SOFT added to library list.                                
                                     Cause . . . . . :   If the ADDLIBLE command was used, MNIS_SOFT was added to                
                                       the user library list.  If the CHGSYSLIBL command was used, MNIS_SOFT was                 
                                       added to the system portion of the library list.                                          
CPF2104    Escape                  40   13/03/17  12:48:11.636831  QLICHLBL     QSYS        02D7     LRNGLOGON   MNIS_SOFT   0058
                                     Message . . . . :   Library MNIS_PROJ not removed from the library list.                    
                                     Cause . . . . . :   Library MNIS_PROJ is not in the user portion (type USR) of              
                                       the library list and therefore cannot be removed. Recovery  . . . :                        
                                       Display the library list (DSPLIBL command) to determine if the library name                
                                       specified is correct or if the specified library is in the system portion                  
                                       (type SYS) of the library list.  If the library is a product library (type                 
                                       PRD), the library will be removed when the command completes. If the library               
                                       is in the current library position (type CUR) of the library list, use the                 
                                       CHGCURLIB command to remove the library from the current library position of               
                                       the library list.  If the library name is not correct, change the library                  
                                       name and try the command again.                                                            
CPC2196    Completion              00   13/03/17  12:48:11.636889  QLICUSRL     QSYS        0114     LRNGLOGON   MNIS_SOFT   0062 
                                     Message . . . . :   Library MNIS_PROJ added to library list.                                 
                                     Cause . . . . . :   If the ADDLIBLE command was used, MNIS_PROJ was added to                 
                                       the user library list.  If the CHGSYSLIBL command was used, MNIS_PROJ was                  
                                       added to the system portion of the library list.                                           
CPF9897    Escape                  40   13/03/17  12:48:11.816545  LRNGSRV      MNIS_SOFT   *STMT    LRNGDRIVER  MNIS_SOFT   *STMT
                                     From module . . . . . . . . :   LRNG984                                                      
                                     From procedure  . . . . . . :   LRNG_RaiseException2                                         
                                     Statement . . . . . . . . . :   12                                                           
                                     To module . . . . . . . . . :   LRNGDRIVER                                                   
                                     To procedure  . . . . . . . :   LRNGDRIVER                                                   
                                     Statement . . . . . . . . . :   1320                                                         
                                     Message . . . . :   Error received when READING from data queue QPADEV000C in                
                                       library LRNG_TEMP . Check queue existence and access rights.                               
                                     Cause . . . . . :   No additional online help information is available.                      
CPF9897    Escape                  40   13/03/17  12:48:11.852296  LRNGSRV      MNIS_SOFT   *STMT    LRNGERROR   MNIS_SOFT   *STMT
                                     From module . . . . . . . . :   LRNG984                                                      
                                     From procedure  . . . . . . :   LRNG_RaiseException2                                         
                                     Statement . . . . . . . . . :   12                                                           
                                     To module . . . . . . . . . :   LRNGERROR                                                    
                                     To procedure  . . . . . . . :   LRNGERROR                                                    
                                     Statement . . . . . . . . . :   11100                                                        
                                     Message . . . . :   Error received when CLEARING data queue QPADEV000C in                    
                                       library LRNG_TEMP . Check queue existence and access rights.                               
                                     Cause . . . . . :   No additional online help information is available.                      
CPC2191    Completion              00   13/03/17  12:48:11.877813  QLIDLOBJ     QSYS        0686     QLICLLIB    QSYS        0697
                                     Message . . . . :   Object LONGRANGE in QTEMP type *DTAARA deleted.                         
CPF1164    Completion              00   13/03/17  12:48:11.877903  QWTMCEOJ     QSYS        0162     *EXT                    *N  
                                     Message . . . . :   Job 018610/LRNGPASS/QPADEV000C ended on 13/03/17 at                     
                                       12:48:11; .011 seconds used; end code 0 .                                                 
At this point I checked and the data queue did not exist which would explain the read/clear errors, this is where I concluded a permissions issue may be blocking creation and copied one from their live partition which gave the below joblog.

Code: Select all

MSGID      TYPE                    SEV  DATE      TIME             FROM PGM     LIBRARY     INST     TO PGM      LIBRARY     INST
CPF1124    Information             00   13/03/17  13:11:18.191879  QWTPIIPP     QSYS        04C9     *EXT                    *N  
                                     Message . . . . :   Job 018647/LRNGPASS/QPADEV000C started on 13/03/17 at                   
                                       13:11:18 in subsystem QINTER_HHD in QGPL. Job entered system on 13/03/17 at               
                                       13:11:18.                                                                                 
CPF1015    Escape                  40   13/03/17  13:11:18.221536  QCLRTVDA     QSYS        026F     LRNGLOGON   MNIS_SOFT   0025
                                     Message . . . . :   Data area XXXX_SOFT in *LIBL not found.                                 
                                     Recovery  . . . :   Either correct the data area name or change the library                 
                                       name (DTAARA parameter).  Then try the request again.                                     
CPF1015    Escape                  40   13/03/17  13:11:18.222184  QCLRTVDA     QSYS        026F     LRNGLOGON   MNIS_SOFT   0031
                                     Message . . . . :   Data area XXXX_PROJ in *LIBL not found.                                 
                                     Recovery  . . . :   Either correct the data area name or change the library                 
                                       name (DTAARA parameter).  Then try the request again.                                     
CPC0904    Completion              00   13/03/17  13:11:18.241870  QWCCCRVC     QSYS        008E     LRNGLOGON   MNIS_SOFT   003B
                                     Message . . . . :   Data area LONGRANGE created in library QTEMP.                           
CPF2104    Escape                  40   13/03/17  13:11:18.241921  QLICHLBL     QSYS        02D7     LRNGLOGON   MNIS_SOFT   0044
                                     Message . . . . :   Library MNIS_SOFT not removed from the library list.                    
                                     Cause . . . . . :   Library MNIS_SOFT is not in the user portion (type USR) of              
                                       the library list and therefore cannot be removed. Recovery  . . . :                       
                                       Display the library list (DSPLIBL command) to determine if the library name               
                                       specified is correct or if the specified library is in the system portion                 
                                       (type SYS) of the library list.  If the library is a product library (type                
                                       PRD), the library will be removed when the command completes. If the library              
                                       is in the current library position (type CUR) of the library list, use the                
                                       CHGCURLIB command to remove the library from the current library position of              
                                       the library list.  If the library name is not correct, change the library                 
                                       name and try the command again.                                                           
CPC2196    Completion              00   13/03/17  13:11:18.241990  QLICUSRL     QSYS        0114     LRNGLOGON   MNIS_SOFT   004E
                                     Message . . . . :   Library MNIS_SOFT added to library list.                                
                                     Cause . . . . . :   If the ADDLIBLE command was used, MNIS_SOFT was added to                
                                       the user library list.  If the CHGSYSLIBL command was used, MNIS_SOFT was                 
                                       added to the system portion of the library list.                                          
CPF2104    Escape                  40   13/03/17  13:11:18.242023  QLICHLBL     QSYS        02D7     LRNGLOGON   MNIS_SOFT   0058
                                     Message . . . . :   Library MNIS_PROJ not removed from the library list.                    
                                     Cause . . . . . :   Library MNIS_PROJ is not in the user portion (type USR) of              
                                       the library list and therefore cannot be removed. Recovery  . . . :                        
                                       Display the library list (DSPLIBL command) to determine if the library name                
                                       specified is correct or if the specified library is in the system portion                  
                                       (type SYS) of the library list.  If the library is a product library (type                 
                                       PRD), the library will be removed when the command completes. If the library               
                                       is in the current library position (type CUR) of the library list, use the                 
                                       CHGCURLIB command to remove the library from the current library position of               
                                       the library list.  If the library name is not correct, change the library                  
                                       name and try the command again.                                                            
CPC2196    Completion              00   13/03/17  13:11:18.242081  QLICUSRL     QSYS        0114     LRNGLOGON   MNIS_SOFT   0062 
                                     Message . . . . :   Library MNIS_PROJ added to library list.                                 
                                     Cause . . . . . :   If the ADDLIBLE command was used, MNIS_PROJ was added to                 
                                       the user library list.  If the CHGSYSLIBL command was used, MNIS_PROJ was                  
                                       added to the system portion of the library list.                                           
CPF9897    Escape                  40   13/03/17  13:11:18.352929  LRNGSRV      MNIS_SOFT   *STMT    LRNGDRIVER  MNIS_SOFT   *STMT
                                     From module . . . . . . . . :   LRNG984                                                      
                                     From procedure  . . . . . . :   LRNG_RaiseException2                                         
                                     Statement . . . . . . . . . :   12                                                           
MSGID      TYPE                    SEV  DATE      TIME             FROM PGM     LIBRARY     INST     TO PGM      LIBRARY     INST 
                                     To module . . . . . . . . . :   LRNGDRIVER                                                   
                                     To procedure  . . . . . . . :   LRNGDRIVER                                                   
                                     Statement . . . . . . . . . :   1320                                                         
                                     Message . . . . :   No CIK value or property was supplied by the client                      
                                       application.                                                                               
                                     Cause . . . . . :   No additional online help information is available.                      
CPF9897    Escape                  40   13/03/17  13:11:18.458591  LRNGSRV      MNIS_SOFT   *STMT    LRNGERROR   MNIS_SOFT   *STMT
                                     From module . . . . . . . . :   LRNG984                                                      
                                     From procedure  . . . . . . :   LRNG_RaiseException2                                         
                                     Statement . . . . . . . . . :   12                                                           
                                     To module . . . . . . . . . :   LRNGERROR                                                    
                                     To procedure  . . . . . . . :   LRNGERROR                                                    
                                     Statement . . . . . . . . . :   11300                                                        
                                     Message . . . . :   No CIK value or property was supplied by the client                      
                                       application.                                                                               
                                     Cause . . . . . :   No additional online help information is available.                      
CPC2191    Completion              00   13/03/17  13:11:18.472820  QLIDLOBJ     QSYS        0686     QLICLLIB    QSYS        0697 
                                     Message . . . . :   Object LONGRANGE in QTEMP type *DTAARA deleted.                          
CPF1164    Completion              00   13/03/17  13:11:18.472925  QWTMCEOJ     QSYS        0162     *EXT                    *N   
                                     Message . . . . :   Job 018647/LRNGPASS/QPADEV000C ended on 13/03/17 at                      
                                       13:11:18; .012 seconds used; end code 0 .                                                  
I assume for the trace we're talking about the client log? Attached as longrange-log from the windows 10 desktop I've been testing this on (I also have a couple of android devices available so could provide log from there as well if it might help?)

I'll speak to our hardware team about how the development partition is accessible, my understanding is that it is currently only visible from the live partition and so this is why I'm looking at passthrough as opposed to direct connection.

Hopefully some combination of the above helps.

Re: [RPG] Pass to another partition

Posted: Wed Mar 15, 2017 10:37 am
by MarkDuignan
I understand now - this approach is not going to work.

LongRange for RPG uses two data channels - the 5250 data stream - and an assigned temporary data queue in library LRNG_TEMP.
The data queue is where all the things that cannot go through the 5250 stream pass - both inbound and outbound.
The LongRange client needs to be able to access both those channels to work.

It can get indirect access to the dev system's 5250 stream via TELNET.
It cannot get indirect access to the dev system's data queues.

So the data queue errors make sense now.
The generic "No CIK" error is actually correct in this case - there is no license key in the inbound queue stream.

So you will need to install aXes onto the production system.

Re: [RPG] Pass to another partition

Posted: Thu Mar 16, 2017 9:54 pm
by DavidS
Thanks again Mark for the reply.

I've been told there is a reduced charge for an extra license on the development partition so have passed this to the customer for consideration. I'll also highlight that it would be necessary to make the partition directly available to the longrange client to ensure proper functionality.

Re: [RPG] Pass to another partition

Posted: Fri Mar 17, 2017 3:01 pm
by MarkDuignan
Their developers must already be able to access the dev server in some TCP/IP based way - 5250 terminal emulation, RDI, etc?
So to build and test LongRange against that server they just need to connect their device to that network.
That can all happen inside a firewall.

The other option I guess is to expose the dev server to the wider world in a very restricted way by using a reverse proxying front end server.
That could be via Apache on their production IBM i server, or via IIS on a Windows server.

Re: [RPG] Pass to another partition

Posted: Fri Mar 17, 2017 6:40 pm
by DavidS
At the moment the developers also have no direct access to the partition and have to connect via Telnet (either through the CL I posted earlier or via command line from within the 5250 client.) This is why I was hoping to use a similar technique to get the Longrange client on as with the way the system is currently configured there is no other access I can see to that partition.

The other option I've had floated to me is that they have a DR server at another site, its been suggested that they could restore the axes/longrange components onto there.