RXS Upgrade Procedure
From Wiki
|
| User Guide |
Upgrade Instructions
Upgrading RPG-XML Suite is laid out as a manual process that allows for a full "roll back" if something should not go well during the upgrade. We recommend an upgrade happen during non-business hours if possible.
To get the latest version of RPG-XML Suite if you are already a customer, please send an email to isupport@krengeltech.com.
In the below commands, ## should be modified to the version you are upgrading to, such as 23 for v2.30. xx should be modified to be the version you are upgrading from, such as 21 for v2.10.
- Unzip the downloaded file to C:\temp (or the directory of your choice).
- Issue the IBM i command:
CRTSAVF FILE(QGPL/RXS##) AUT(*ALL)
- FTP the file RXS from your PC to the IBMi in BINARY mode into the save file RXS in library QGPL.
- Open a DOS prompt (Start -> Run -> enter 'cmd' and hit enter)
- Type the following into the DOS prompt, replacing the IP address with that of your iSeries:
ftp 172.29.134.41
- When prompted enter profile and password
binary
- (where c:\temp is the location of the rxs.savf)
lcd c:\temp
quote site namefmt 0cd QGPLput rxs.savf rxs##.savf
quit
- Obtain the current version of RXS on your system.Something similar to the following will be produced:
CALL RXS/VERRXSBASE
"RPG-XML Suite Base Version 2.30"
- End the MYRXS Apache instance. Note this will mean your web services are NOT accessible!
ENDTCPSVR SERVER(*HTTP) HTTPSVR(MYRXS)
- Rename the current RXS/MYRXS library to RXSxx/MYRXSxx where xx is the version obtained in Step 4 (i.e RXS21). This gives us the ability to "roll-back" if necessary based on conflicts on your iSeries. If you have created more than the default environment library of MYRXS then the RNMOBJ needs to also be done for those libraries.
RNMOBJ OBJ(RXS) OBJTYPE(*LIB) NEWOBJ(RXSxx)
RNMOBJ OBJ(MYRXS) OBJTYPE(*LIB) NEWOBJ(MYRXSxx)
- Restore the RXS library from save file created in Step 2. Remember that ## should be replaced by a two-digit version number, such as 23 for v2.30.
RSTLIB SAVLIB(RXS) DEV(*SAVF) SAVF(QGPL/RXS##) RSTLIB(RXS)
- Copy minimal objects (i.e. no example programs) back into the MYRXS library.
CRTLIB LIB(MYRXS)
CRTDUPOBJ OBJ(GETURIRG) FROMLIB(RXS) OBJTYPE(*PGM) TOLIB(MYRXS)
CRTDUPOBJ OBJ(BLDPRSR) FROMLIB(RXS) OBJTYPE(*PGM) TOLIB(MYRXS)
CRTDUPOBJ OBJ(BLDPRS) FROMLIB(RXS) OBJTYPE(*CMD) TOLIB(MYRXS)
CRTDUPOBJ OBJ(BLDTPLR) FROMLIB(RXS) OBJTYPE(*PGM) TOLIB(MYRXS)
CRTDUPOBJ OBJ(BLDTPL) FROMLIB(RXS) OBJTYPE(*CMD) TOLIB(MYRXS)
CRTDUPOBJ OBJ(GU001CL) FROMLIB(RXS) OBJTYPE(*PGM) TOLIB(MYRXS)
CRTDUPOBJ OBJ(GU001RG) FROMLIB(RXS) OBJTYPE(*PGM) TOLIB(MYRXS)
CRTDUPOBJ OBJ(ERRORSV) FROMLIB(RXS) OBJTYPE(*SRVPGM) TOLIB(MYRXS)
CRTDUPOBJ OBJ(RXSSV) FROMLIB(RXS) OBJTYPE(*SRVPGM) TOLIB(MYRXS)
CRTDUPOBJ OBJ(RXSCFG) FROMLIB(RXS) OBJTYPE(*FILE) TOLIB(MYRXS) DATA(*YES)
CRTDUPOBJ OBJ(RXS) FROMLIB(RXS) OBJTYPE(*FILE) TOLIB(MYRXS) DATA(*YES)
CRTDUPOBJ OBJ(GETURI) FROMLIB(RXS) OBJTYPE(*CMD) TOLIB(MYRXS)
CRTDUPOBJ OBJ(GU001HP) FROMLIB(RXS) OBJTYPE(*PNLGRP) TOLIB(MYRXS)
CRTDUPOBJ OBJ(RXSBND) FROMLIB(RXS) OBJTYPE(*BNDDIR) TOLIB(MYRXS)
CRTDUPOBJ OBJ(RXSRTR) FROMLIB(RXS) OBJTYPE(*PGM) TOLIB(MYRXS)
CRTDUPOBJ OBJ(RXSRTRWR) FROMLIB(RXS) OBJTYPE(*PGM) TOLIB(MYRXS)
CRTDUPOBJ OBJ(KTIMSGF) FROMLIB(RXS) OBJTYPE(*MSGF) TOLIB(MYRXS)
CRTDUPOBJ OBJ(RXSRTRCTL) FROMLIB(RXS) OBJTYPE(*FILE) TOLIB(MYRXS) DATA(*YES)
CRTDUPOBJ OBJ(RXSRTRLOG) FROMLIB(RXS) OBJTYPE(*FILE) TOLIB(MYRXS)
CRTDUPOBJ OBJ(RXSRTRWD) FROMLIB(RXS) OBJTYPE(*FILE) TOLIB(MYRXS)
CRTDUPOBJ OBJ(INZRXSRTR) FROMLIB(RXS) OBJTYPE(*CMD) TOLIB(MYRXS)
CRTDUPOBJ OBJ(WRKRXSRTRE) FROMLIB(RXS) OBJTYPE(*CMD) TOLIB(MYRXS)
CRTDUPOBJ OBJ(RXSRTRHLP) FROMLIB(RXS) OBJTYPE(*PNLGRP) TOLIB(MYRXS)
CRTDUPOBJ OBJ(CONFIRMD) FROMLIB(RXS) OBJTYPE(*FILE) TOLIB(MYRXS)
- Copy the incrementer data area from the old library into the new where xx is the DUPOBJ created in step 6. This is necessary so your use of RXS_nextUnqNbr and RXS_nextUnqChar don't start back at 1 which could cause duplicate DB2 records or IFS files depending on how/if you are using those API's.
CRTDUPOBJ OBJ(RXSUNQ) FROMLIB(MYRXSxx) OBJTYPE(*DTAARA) TOLIB(MYRXS)
- Execute the following to ensure you have the latest version of template files for the code generators. This step is not required nor recommended if you have a significant amount of code developed using the traditional SECBEG, VARBEG, and VAREND delimiters (see next step for clarification).
CPYTOSTMF FROMMBR('/QSYS.LIB/RXS.LIB/QTXT.FILE/BLDTPL.MBR') TOSTMF('/www/MYRXS/templates/bldtpl.tpl') STMFCODPAG(819) STMFOPT(*REPLACE)
CPYTOSTMF FROMMBR('/QSYS.LIB/RXS.LIB/QTXT.FILE/BLDPRS.MBR') TOSTMF('/www/MYRXS/templates/bldprs.tpl') STMFCODPAG(819) STMFOPT(*REPLACE)
- Using UPDDTA, add a single record to PF MYRXS/RXSCFG with the values found at the bottom of these instructions. If a single record already exists, simply update that record. Note that if you have a significant amount of programs that use the original SECBEG=/$, VARBEG=/%, and VAREND=%/, then you will want to use those values in the below field value mapping instead of supplying new ones. The best practice would be to use the same values specified in MYRXSxx/RXSCFG, as that will assure that your existing templates (i.e. /www/myrxs/templates/*.tpl files) will continue to work without modification. We changed to using the new SECBEG, VARBEG and VAREND because of issues with CCSID's not native to the United States.
- If you are using the RXS Router, you will need to copy the values from physical file RXSRTRCTL in your old RXS library RXSxx (where xx is the version number, such as 21 for v2.10) to the physical file RXSRTRCTL in your new RXS library.
- Copy any programs or source members from your old MYRXSxx library to MYRXS. Do this as well for any other instance libraries you may have created.
- Start the HTTP server back up.
STRTCPSVR SERVER(*HTTP) HTTPSVR(MYRXS)
RXS Default Configuration (v1.40+)
| Field | Default Value |
|---|---|
| TPLDIR | /www/myrxs/templates/ |
| TRANSDIR | /www/myrxs/trans/ |
| DEBUG | F |
| MSNGDTA | *** |
| SECBEG | :: |
| SECEND | blank |
| VARBEG | .: |
| VAREND | :. |
| ELEMBEG | > |
| ELEMCNT | / |
| ELEMEND | /> |
| ELEMATTR | @ |
