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.