You are on page 1of 14

1 Appendix

1.1 Errors and Issues


1.1.1 Error During Export from Source System
During the export of the Java configuration from the source system using SAPINST, the error Error while creating <export dir>/JAVA/SDM/SDMKIT.JAR appears Follow SAP Note 1169806 to correct this issue. Solution The problem is resolved in: SAP NetWeaver 6.40 SP25 SAP NetWeaver 7.0 SP20 SAP NetWeaver 7.01 SP4

If upgrade is not possible use the following steps Workaround: 1. Make sure you have selected the option "Update deployed SDAs/SCAs that have any version" in the SDM Remote GUI 2. Redeploy ADSSAP.SCA (and other potentially big SCAs) to trigger optimization of the repository Once completed, restart SAPINST and run a new installation instead of continuing the old one. Also, the SDM mode may need to be reset. The process puts it in Standalone mode, and it may have to be switched back to integrated before starting again. If so, follow note 1261756.

Page 1 of 14

1.1.2 adjustNametab error

Page 2 of 14

Log file dipgntab.log shows:


Could not open the ICU common library. The following files must be in the path described by the environment variable "LIBPATH": libicuuc30.a, libicudata30.a, libicui18n30.a [nlsui0.c 1489] pid = 1429748

Stopped SAPINST, added LIBPATH variable to kernel directory, and restarted SAPINST. Error at the same point, with the following log entries
ERROR in initialization (can't get SVERS-version) ERROR in initialization (can't get SVERS-version)

Updated the kernel again from original 159 sources. SR3 shipped with kernel 144. Once the kernel was back to the patch level it needed, started the database again. R3trans returned errors indicated the environment variable DB2DB6EKEY was not set. Setting this to QBIuswaxg171 resolved the database connection issue. Setting the environment variable and restarting SAPINST has corrected the adjustNametab error.

1.1.3 BDLS Source to Target Conversion of BI Systems


When refreshing a BI system and running the BDLS conversion of the source system to the target system, a workbench transport request box appears. If this conversion is run as a background job, it will fail as it waits for a prompt that cannot be seen. Run this conversion in the foreground in order to respond appropriately with a transport request number.

Page 3 of 14

The BI system appears to require a transport when performing this conversion as it attempts to modify the Data Transfer Process (DTP) items . See also Section 8.1.5

1.1.4 SAPINST GUI crashes during Unpack phase


This appears to be a bug in sapinst on this phase when no packages are selected to be unpacked. Modify keydb.xml, changing ERROR to OK for this phase and restart SAPINST. Select the same path shown and choose to continue an existing installation.

1.1.5 runRSWBOINS with ERROR status


Wen encountered the following error message during the QBI refresh, June 2008. She was able to Retry and continue successfully.

1.1.6 System High Swapping


QBI is swapping around 10% to 40% consistently following redirected restore and start of instance.

Page 4 of 14

1.1.7 BDLS creates Transport request


The BDLS conversion from PBICLNT100 to QBICLNT100 during QBI June 2008 refresh, running in background, cancelled around 16000 seconds. Rerunning in the foreground caused Workbench request prompt to appear. The job log could not be opened memory allocation short dump occurred. This change came in with SPS 14. It allows for changing DTP with BDLS, however this causes a transport. The BDLS conversion of the source system to the target system must be done in the foreground from now on for BI systems.

1.1.8 Error Invalid PKCS\#5 padding length: 224


Java server in QBI will not start. Looks like inconsistency in secure store settings. Possibly caused by keeping the PBI user master in ABAP instead of restoring QBI? Secure store files from an export of the java configuration through configtool were copied from PBI to QBI. File imported to QBI again after file replacement. Java was able to start, however, there were still issues with Java in QBI following the June 2008 refresh. Eventually SAP returned that the CAF package and one component in particular needed to be redeployed. The component was corrupt, causing the issue.

1.1.9 fillContext Executed with ERROR


The following screen shows an error encountered during the Java export steps for DB1. The error was passed by using the SAPINST_SKIP_ERRORSTEP=TRUE option of SAPINST.

Page 5 of 14

1.1.10

NIETIMEOUT warning
This error occurs when SAPINST attempts to start the instance. The connection to the message server fails. Check the /etc/services file to ensure there is not a conflict with the message server port. Check the parameter rslg/collect_daemon/listen_port. There may be a port conflict there. The default for this parameter should be 14<SYSNO>. If possible, change the ports to the default values and restart and continue or retry SAPINST.

1.1.11

TSV_TNEW_PAGE_ALLOC_FAILED
While running BDLS or other memory/space intensive tasks, the TSV_TNEW_PAGE_ALLOC_FAILED short dump may occur. The short description will be something like No more storage space available for extending an internal table. Check the value for abap/heaplimit and increase it as appropriate. This will require a restart of the SAP system. Continue the task following the restart.

1.1.12

Out of Memory errors during SAPINST


During the SAPINST System Copy steps on the Target System, an out of memory exception can occur. This is generally caused by the java commands not allocating enough heap memory for the process. These commands are in the control.xml file in the /tmp/sapinst_instdir directory and can be modified, restarting the SAPINST process and selecting Continue old installation. This parameter is Xmx64M, and should be changed to Xmx256M.

Page 6 of 14

1.1.13

DB2 Client Mismatch Error in trans.log


During the SAPINST portion of the refresh procedure, the instance may not start due to a DB2 client mismatch error. This can be verified by running an R3trans d and looking in the log for error messages indicated the client does not match the version of the server. This can be bypassed by adding the environment variable DB6_DBSL_IGNORE_VERSION_MISMATCH and setting it equal to 1. This will ignore the error and allow the process to continue. The details can be found in SAP Note 503122

1.1.14

BDLS Warnings Source System to Target System


When converting the source system to the target system using BDLS, warnings occurred. This can be identified when receiving a message to the effect that BDLS cannot change this BI system. Also, going to RSA1 will not work as the T000 table has been converted to the Target System, however the myself source system in RSA1 is still the Source System. The BDLS conversion log must be deleted and then the conversion can be attempted again. To remove the conversion log, run the program RSBDLSMAP_RESET. Once this finishes, return to BDLS and run the conversion again from Source System to the Target System. The warning will appear that the Target System already exists. Simply press Enter to continue.

1.2 Refresh Scripts - DEPRECATED


These scripts are deprecated. Please do not use these. All references have been removed above, and this section is being kept for historical reference purposes. Following are the scripts written to aid in the refresh. Included is a description of the script, how it works, and a listing of the C-shell code. At this time, the scripts are system specific and are located under the <sid>adm home directory. If the system does not have the scripts yet, be sure to update the script as appropriate for the system being worked on after copying the files. As will running any program, be sure to understand what each script is doing in the system before running it against the system. Also check the guide to ensure the steps in the script are run at the appropriate times during the refresh procedure. The scripts listed below were taken from a BI system. In this case, the database schema name is SAPR3. For systems that were installed more recently, be sure to update the schema name appropriately, i.e. SAP<SID>, where the <SID> is usually the source system for the refresh procedure. If this is the first time a system is being refreshed, the pre-steps script will use the target system SID.

1.2.1 <sid>_presteps.sh
The pre-steps script executes an export for users, EDI data (partner profiles and port definitions), PSE (SSO) and RFC destinations. The script uses control files along with the R3trans program to run database statements. The script requires no options to run, but will ask if the logs should be displayed during execution. All the exports will be run when the script is executed. The import step is more selective to allow for different strategies, mostly regarding the user master data. Script listing:
#!/usr/bin/csh #=============================================================================== # Program: <sid>_prestep.sh # # Author: Thomas Kremer # # Description: # Perform the export of EDI, RFC, User, and PSE data. #

Page 7 of 14

# TODO: # Add ability to pass "-y" in as command line parameter to automatically # confirm all prompts in the positive - i.e. run everything. # Make script more generic - prompt or use env and permit running from any # system. # # Revision History: #------------------------------------------------------------------------------# Date | Description | Author #------------------------------------------------------------------------------# 2007-07-27 | Initial version. | TAK #=============================================================================== clear echo "This screens exports the standard PLM records, are you sure? End with cntrl-c - do you want to see the outlogs (y/n)" set answer = $< switch ($answer) case [yY]: echo "Executing the Export of ALE/EDI/IDOC Ports and Partners...." R3trans -v -w ediexp100.log ediexp100 more ediexp100.log clear echo "Executing the Export of the User Records (Client 100)...." R3trans -v -w usrexp100.log usrexp100 more usrexp100.log clear echo "Executing the Export of the User Records (Client 000)...." R3trans -v -w usrexp000.log usrexp000 more usrexp000.log clear echo "Executing the RFC Export of the Records... " R3trans -v -w rfcexp100.log rfcexp100 more rfcexp100.log clear echo "Executing the PSE Export of the records..." R3trans -v -w pseexp100.log pseexp100 more pseexp100.log breaksw default: echo "Executing the Export of ALE/EDI/IDOC Ports and Partners...." R3trans -v -w ediexp100.log ediexp100 echo "Executing the Export of the User Records (Client 100)...." R3trans -v -w usrexp100.log usrexp100 echo "Executing the Export of the User Records (Client 000)...." R3trans -v -w usrexp000.log usrexp000 echo "Executing the RFC Export of the Records... " R3trans -v -w rfcexp100.log rfcexp100 echo "Executing the PSE Export of the records..." R3trans -v -w pseexp100.log pseexp100 breaksw endsw

1.2.2 <sid>_refresh.sh
The <sid>_refresh script automatically removes and modifies some data in the database to eliminate manual steps in the refresh process. For each step in the script, a Yes/No prompt appears. Pressing Y will execute the step. Any other key will cause the step to be skipped. Script listing:
#!/usr/bin/csh #=============================================================================== # Program: <sid>_refresh.sh # # Author: Thomas Kremer # # Description: # This script automates the removal of data from select tables folowing a

Page 8 of 14

# redirected restore. The user is prompted before each section to confirm # the data is to be removed. Ctrl-C can be used to cancel execution at any of # the confirmation prompts throughout the script. # # TODO: # Add ability to pass "-y" in as command line parameter to automatically # confirm all prompts in the positive - i.e. run everything. # Make script more generic - prompt or use env and permit running from any # system. # # Revision History: #------------------------------------------------------------------------------# Date | Description | Author #------------------------------------------------------------------------------# 2007-07-31 | Added prompts/switch statements. | RMD # 2007-07-31 | Initial version. | TAK #=============================================================================== # Variables and other global valuesA setenv logd `date -u +%a%d%h%y` setenv mylog {$0}_{$logd}.log setenv bdat `date -u +%H%D` echo "XB1 refresh script called at {$bdat}" | tee -a $mylog # Main Execution clear echo "This script will prompt for actions to perform as part of the system refresh." echo "Ensure that you are certain about steps you are skipping since this can have" echo "unwanted sideeffects and should only be performed by senior admins." echo "Do you want to delete old monitoring etc. tables no longer needed?" set answer = $< switch ($answer) case [yY]: echo "Selection to remove the old monitoring entries..." | tee -a $mylog db2 "delete from sapr3.alconseg" | tee -a $mylog db2 "delete from sapr3.alsystems" | tee -a $mylog db2 "delete from sapr3.dbsnp" | tee -a $mylog db2 "delete from sapr3.moni" | tee -a $mylog db2 "delete from sapr3.osmon" | tee -a $mylog db2 "delete from sapr3.pahi" | tee -a $mylog db2 "delete from sapr3.sdbad" | tee -a $mylog db2 "delete from sapr3.sdbap" | tee -a $mylog db2 "delete from sapr3.sdbah" | tee -a $mylog db2 "delete from sapr3.sdbar" | tee -a $mylog db2 "delete from sapr3.tpfet" | tee -a $mylog db2 "delete from sapr3.tpfht" | tee -a $mylog breaksw default: echo "Skipping removal of old tables." echo "Skipping to remove the old monitoring entries..." >>$mylog breaksw endsw #------------------------------------------------------------------------------echo "Remove lock table TLOCK?" set answer = $< switch ($answer) case [yY]: echo "Deleting lock table TLOCK." echo "Selection to remove the lock entries..." >>$mylog db2 "delete from sapr3.tlock" | tee -a $mylog breaksw default: echo "Skipping lock table TLOCK." echo "Skipping to remove the old lock entries..." >>$mylog breaksw endsw

Page 9 of 14

#------------------------------------------------------------------------------echo "Adjust printer server for <SID> refresh?" set answer = $< switch ($answer) case [yY]: echo "Selection to adjust the Print server hostname ..." >>$mylog db2 "update sapr3.tsp03c set PAMSSERVER='<hostname>_<SID>_<SYSNO>'" | tee -a $mylog db2 "update sapr3.tsp03d set PAMSSERVER=<hostname>_<SID>_<SYSNO>'" | tee -a $mylog db2 "update sapr3.tsp03d set PADISABLED = 'X'" | tee -a $mylog breaksw default: echo "Skipping to .djust the Print server hostname .." >>$mylog echo "Skipping print server adjustment." breaksw endsw #------------------------------------------------------------------------------echo "Remove table buffer synch data?" set answer = $< switch ($answer) case [yY]: echo "Selection to remove the table buffer synch data entries..." >>$mylog echo "Deleting table buffer synch data." db2 "delete from sapr3.ddlog" | tee -a $mylog breaksw default: echo "Skipping to remove the old table buffer synch data entries..." >>$mylog echo "Skipping table buffer synch data." breaksw endsw #------------------------------------------------------------------------------echo "Remove Logon groups?" set answer = $< switch ($answer) case [yY]: echo "Selection to remove the Logon Group entries..." >>$mylog echo "Deleting logon groups." db2 "delete from sapr3.rzllitab" | tee -a $mylog breaksw default: echo "Skipping logon groups." echo "Skipping to remove the old Logon Group entries..." >>$mylog breaksw endsw #------------------------------------------------------------------------------echo "Update Workbench information to new system (SE06)?" set answer = $< switch ($answer) case [yY]: echo "Selection to update the Workbench Information..." >>$mylog echo "Updating Workbench information to new <SID> system (SE06)" db2 "update sapr3.tadir set srcsystem='<SID>' where pgmid='HEAD' and object='SYST'" | tee -a $mylog breaksw default: echo "Skipping to update the Workbench Information..." >>$mylog echo "Skipping updating workbench information to new system." breaksw endsw #-------------------------------------------------------------------------------

Page 10 of 14

echo "Delete job for the Auto_session_Manager?" set answer = $< switch ($answer) case [yY]: echo "Deleting job for Auto_session_Manager." echo "Selection to remove the Auto_session_Manager entries..." >>$mylog db2 "delete from sapr3.tbtco where jobname like 'AUTO_SESS%'" | tee -a $mylog db2 "delete from sapr3.tbtcs where jobname like 'AUTO_SESS%'" | tee -a $mylog db2 "delete from sapr3.tbtcp where jobname like 'AUTO_SESS%'" | tee -a $mylog db2 "delete from sapr3.btcevtjob where jobname like 'AUTO_SESS%'" | tee -a $mylog breaksw default: echo "Skipping to remove the old Auto_session_Manager entries..." | tee -a $mylog breaksw endsw #------------------------------------------------------------------------------echo "Delete job for the SASM_Z* Jobs?" set answer = $< switch ($answer) case [yY]: echo "Selection to remove the SASM* entries..." >>$mylog echo "Deleting job for the SASM_Z* Jobs." db2 "delete from sapr3.tbtco where jobname like 'SASM_Z%'" | tee -a $mylog db2 "delete from sapr3.tbtcs where jobname like 'SASM_Z%'" | tee -a $mylog db2 "delete from sapr3.tbtcp where jobname like 'SASM_Z%'" | tee -a $mylog db2 "delete from sapr3.btcevtjob where jobname like 'SASM_Z%'" | tee -a $mylog breaksw default: echo "Skipping to remove the old SASM* entries..." | tee -a $mylog breaksw endsw #------------------------------------------------------------------------------echo "Clean out RFC destinations?" set answer = $< switch ($answer) case [yY]: echo "Cleaning out RFC destinations." echo "Selection to remove the RFC entries..." >>$mylog db2 "delete from sapr3.rfcdes" | tee -a $mylog db2 "delete from sapr3.rfcdoc" | tee -a $mylog db2 "delete from sapr3.rfcattrib" | tee -a $mylog breaksw default: echo "Skipping to remove the old RFC entries..." | tee -a $mylog breaksw endsw #------------------------------------------------------------------------------echo "Delete EDI table data?" set answer = $< switch ($answer) case [yY]: echo "Selection to remove the EDI entries..." >>$mylog echo "Cleaning out the EDI tables" db2 "delete from sapr3.EDP12" | tee -a $mylog db2 "delete from sapr3.EDP13" | tee -a $mylog db2 "delete from sapr3.EDP21" | tee -a $mylog db2 "delete from sapr3.EDIPO" | tee -a $mylog db2 "delete from sapr3.EDIPOA" | tee -a $mylog db2 "delete from sapr3.EDIPOD" | tee -a $mylog db2 "delete from sapr3.EDIPOF" | tee -a $mylog db2 "delete from sapr3.EDIPOI" | tee -a $mylog

Page 11 of 14

db2 "delete from sapr3.EDIPORT" | tee -a $mylog db2 "delete from sapr3.EDIPOX" | tee -a $mylog db2 "delete from sapr3.EDIPOXH" | tee -a $mylog db2 "delete from sapr3.EDIPOXU" | tee -a $mylog db2 "delete from sapr3.EDPI1" | tee -a $mylog db2 "delete from sapr3.EDPO1" | tee -a $mylog db2 "delete from sapr3.EDP03" | tee -a $mylog db2 "delete from sapr3.EDPP1" | tee -a $mylog db2 "delete from sapr3.EDPPV" | tee -a $mylog db2 "delete from sapr3.EDPST" | tee -a $mylog db2 "delete from sapr3.EDPVW" | tee -a $mylog breaksw default: echo "Skipping to remove the old EDI entries..." | tee -a $mylog echo "Skip cleaning out EDI tables." breaksw endsw #------------------------------------------------------------------------------echo "Delete PSE data? (this is still experimental and not tested)" set answer = $< switch ($answer) case [yY]: echo "Selection to remove the PSE entries..." >>$mylog echo "Deleting PSE Data" db2 "delete from sapr3.twpsso2acl" | tee -a $mylog db2 "delete from sapr3.ssf_pse_d" | tee -a $mylog db2 "delete from sapr3.ssf_pse_h" | tee -a $mylog db2 "delete from sapr3.strustcert" | tee -a $mylog breaksw default: echo "Skipping to remove the old PSE entries..." | tee -a $mylog echo "Skipping deletion of PSE data." breaksw endsw setenv edat `date -u +%H%D` echo "Script ended at {$edat}" >>$mylog

1.2.3 <sid>_poststep1.sh
The post step script runs the import of the data exported by the pre-steps script. This script contains logic to optionally import each exported data file. This allows us to selectively import the EDI and RFC data, but leave the user data alone based on requests from the system owners or Security. Script listing:
#!/usr/bin/csh #=============================================================================== # Program: xb1_poststep1.sh # # Author: Thomas Kremer # # Description: # Perform the import of data saved off before the refresh started - EDI data # RFCs, users, and PSE. # # TODO: # Add ability to pass "-y" in as command line parameter to automatically # confirm all prompts in the positive - i.e. run everything. # Make script more generic - prompt or use env and permit running from any # system. # # Revision History: #------------------------------------------------------------------------------# Date | Description | Author #------------------------------------------------------------------------------# 2007-07-31 | Added prompts/switch statements. | RMD # 2007-07-31 | Initial version. | TAK

Page 12 of 14

#=============================================================================== setenv logd `date -u +%a%d%h%y` setenv mylog {$0}_{$logd}.log setenv bdat `date -u +%H%D` echo "Script started at {$bdat}" | tee -a %mylog echo "This script imports the preserved data back into the target system, SAP needs to be up." echo "The data must have been exported prior to the start of the refresh in order to run this script." #------------------------------------------------------------------------------echo "Import RFCs?" set rfc = $< switch ($rfc) case [yY]: echo "Importing saved RFCs." | tee -a $mylog R3trans -v -w rfcimp100.log rfcimp100 | tee -a $mylog breaksw default: echo "Skipping RFC import." | tee -a $mylog breaksw endsw #------------------------------------------------------------------------------echo "Import EDI data?" set edi = $< switch ($edi) case [yY]: echo "Importing EDI data." | tee -a $mylog R3trans -v -w edimp100.log ediimp100 | tee -a $mylog breaksw default: echo "Skipping EDI data import." | tee -a $mylog breaksw endsw #------------------------------------------------------------------------------echo "Import saved user data for Client 100?" set user = $< switch ($user) case [yY]: echo "Importing user data." | tee -a $mylog R3trans -v -w usrimp100.log usrimp100 | tee -a $mylog breaksw default: echo "Skipping user data import for Client 100." | tee -a $mylog breaksw endsw #------------------------------------------------------------------------------echo "Import saved user data for Client 000?" set user = $< switch ($user) case [yY]: echo "Importing user data." | tee -a $mylog R3trans -v -w usrimp000.log usrimp000 | tee -a $mylog breaksw default: echo "Skipping user data import for Client 000." | tee -a $mylog breaksw endsw #-------------------------------------------------------------------------------

Page 13 of 14

echo "Import PSE?" set pse = $< switch ($pse) case [yY]: echo "Importing PSE data." | tee -a $mylog R3trans -v -w pseimp100.log pseimp100 | tee -a $mylog breaksw default: echo "Skipping PSE import." | tee -a $mylog endsw setenv edat `date -u +%H%D` echo "Script ended at {$edat}" | tee -a $mylog

1.2.4 Script To Do List


Review script for possible additions based on other manual steps during refresh procedure. Review script for any system specific changes or additions (BI, SCM, SRM, PLM, etc) Add parameters to scripts to make them system independent Move scripts to central location (software repository?) and reduce replication on each system one place to make changes to the script which everyone can then use.

1.3 Refresh Notes


This section contains general notes regarding the refresh, either specific or general. The notes should not include any issues or errors; issues or errors should be located above in section 8.1. Many of the general notes will be located throughout the document next to the pertaining tasks or screen shots.

1.3.1 J2EE does not start following SAPINST System Copy


Check the profile for the main instance. The SAPINST process backs up the current profile and installs a generic initial profile. Copy the customized profile back to be the current profile and restart the system. J2EE should start at this point. Double check that the correct profile has been imported via RZ10.

Page 14 of 14