appendix (sap-nw-7.0-dual-stack-refresh)
DESCRIPTION
Appendix (sap-nw-7.0-dual-stack-refresh)TRANSCRIPT
Page 1 of 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 2 of 14
1.1.2 adjustNametab error
Page 3 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 4 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 5 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 6 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 7 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 8 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 9 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 10 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 11 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 12 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 13 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 14 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.