Posts

Showing posts from August, 2011

Limitation on the Maximum Bytes per Call

The maximum memory that can be allocated for a single call in SAP is limited by the parameter ztta/max_memreq_MB . The default values are 64 (for 4.6), 250 (as of 32-bit 6.20) and 2047 (as of 64-bit 6.20). When this limit is crossed, the ABAP report dumps as DBIF_RSQL_NO_MEMORY, TSV_INDEX_INDEX_NO_ROLL_MEMORY, TSV_TNEW_OCCURS_NO_ROLL_MEMORY, TSV_LIN_ALLOC_FAILED or TABLE_HASH_NO_MEMORY and the dump contains the following line: Unable to fulfil request for <extra bytes> bytes of memory space. This kind of error is very likely to occur in Z-program which sorts an internal table. When the programs are developed, they may function properly, but over the years, the data grows and the sort hits the limit.

SAP Parameters - Kernel, Profiles, Tools

The SAP system first takes the parameters from the kernel, then updates them with those in default profile and then with those in the instance profile. Not all parameters can be changed by the admins as they are defined in the kernel code. The default profile and the instance profiles are stored in /usr/sap/SID/SYS/profile (and /sapmnt/SID/profile). To see the list of SAP parameters, run the report RSPFPAR or RSPARAM using SE37. The reports show the parameters for the instance from where you are running the reports. You can use TU02 to display the parameters for all the instances. You can display the parameters from OS using the following commands sappfpar name=<SID> nr=<nn> or sappfpar pf=<full_path_of_profile> sappfpar is useful when you want to verfy the paramters while the SAP system is down. Some parameters can be changed temporarily and dynamically using the transaction RZ11. Use RZ10 to change the parameters permanently.

How to Check and Add Tables to SAP Buffer

Image
If a table is small, accessed frequently and is not changed often, a copy of the table in SAP buffer will improve the time spent on fetching the table. To determine if any tables need to be added to table buffer: 1. Call ST10 and go to All tables --> Since startup --> This server --> Show statistics 2. Sort the output by ABAP/IV Processor requests - Total and export the output as an excel file 3. Create a new column and 'ABAP/IV Processor requests: Changes' / 'ABAP/IV Processor requests: Total' and filter out rows which are > .1%. We are not going to look at tables that are changed very frequently 4. Now call DB05 and check the table size or you can check the table size using Analyze table in ST10. If the table size is less than 1 MB, you can buffer the table with buffering type 'full' To add a table to buffer: 1. Call SE11 2. Populate the table name 3. Click on Goto --> Technical Settings --> Settings 4. Go to edi

Why Redo Logs Fill Up Fast During Backup

Image
Oracle Database Redo Archives During Backup When an online backup is triggered, the tablespaces are set to backup mode. During the time when the tablespace is in backup mode, any change to a table/index in that tablespace will cause the entire block to be written to the redo log. This causes the redo log to fill up faster during backup in comparison to the time when there is no online backup in progress. Ensure that you take online backups during low usage time and keep a track of the backup duration. If the backup process crashes, you should ensure that the tablespaces are not left in backup mode. You should manually alter the tablespaces to Active .

Stop Shell Script Execution on Error + Other Shell Controls

In some cases, running a shell script after an error in one of the commands defeats the purpose of executing it. You can control to stop script execution when any command returns an error by including this statement in the script: set -e You can also start the script with -e option to achieve same result #!/bin/sh -e Let's look at set command and other useful options it offers. Syntax: To turn on an option: set -<Abbr. > To turn off an option: set + <Abbr. > To turn on an option: set -o <Option > To turn off an option: set +o <Option > Examples: set -o errexit Executes ERR trap on a non-zero error set +o errexit ERR trap is not set set -e errexit Executes ERR trap on a non-zero error set +e errexit ERR trap is not set More Options Option Abbr. Brief explanation allexport a Variables are automatically exported to subshells bgnice Assign low priority to bg jobs noclobber Overwrite protection on re

Using ST04 Transaction to Analyze Oracle Database

Image
ST04 is a very good transaction to analyze database performance . To use it reliably, you need to reset the statistic using the reset button and check the new values after a few days' use to populate with new values and analyze it by using Since reset . Time/User call  should be less than 20ms . Note that the value can be much higher due to the inclusion of special idle events which limits the relevance of this data. The ratio of Busy wait time  to CPU time  should be close to 60:40 . This is an indication of a well-tuned system. If you see very high values (such as 80:20), system performance can be improved using 'wait event tuning'.  If the CPU time is significantly higher than 40%, check the CPU utilization on the database server. Hit ratio ( Quality ) of the data buffer should be more than 94% . A low hit ratio might be due to small size of the data buffer.Chek SAP note 619188 for a deeper analysis. Reads/User Calls should be less than 15 . If it is too high

Changing XI service User Passwords

Ensure that the XI users do not expire. If there is a need to reset a password, the password must be changed in SU01 and updated at various locations. Here is a list of users with the locations requiring update: User ID Where to update XILDUSER In Connection link from exchange profile http://<xi host>:<j2ee port> /exchangeProfile XIAPPLUSER In txn SLDAPICUST XIISUSER In txn SM59 update the password for the destination INTEGRATION_DIRECTORY_HMI User assigned for SLD bridge Under "Cluster --> Server --> Services --> SLD Data Supplier" XIRWBUSER Under "Cluster --> Server --> Services --> Destinations" for the destination pmistore SAPJSF Create a copy of SAPJSF and update under "Cluster --> Server --> Services --> JCo RFC Provider" User for End-to-end monitoring In txn SM59, for connections starting with PMI* under 'ABAP Connections' and 'HTTP Connections to External Server'. GRMG User In txn SM59, fo

Sound Problems with Intel HDA on Ubuntu

If you are facing problems with sound when using headphones ex: the sound is audible on speakers and headphones at the same time, you can fix it by modifying /etc/modprobe.d/alsa-base.conf. Determine the chipset using sudo lshw -c sound Determine your computer's model details sudo dmidecode Go to http://doc.ubuntu-fr.org/audio_intel_hda#acer and find the line you need to add Take a backup of /etc/modprobe.d/alsa-base.conf and add that line. Restart the system after you have saved the changes.

Changing Database User Passwords in an SAP System

Changing DB user's passwords using SQL commands is not advisable in some cases. The DB user's passwords are encrypted and stored in SAP tables or files which need to be updated with the new password. If you are using any custom script with passwords hardcoded, you will have to update them as well. 1. Changing DB Password for sapr3, sap<sid>, sap<xyz> or sapsr3 The passwords for DB users used by the ABAP engine are stored in the table SAPUSER. When the password is changed, the change must reflect in the table. To ensure that this is consistently done, use BR Tools: brconnect -f chpass -o [sapr3 | sap<sid> | sap<xyz> | sapsr3] -p <new_password> If the password changed using SQL command, the work processes, R3trans, saplicense etc will show error with return code ORA-01017. 2. Changing DB Password for sap<sid>db, sap<xyz>db or sap<sr3>db The passwords for DB users used by J2EE engine are stored in the file /usr/sap/<SID&

Splitting Entries from a Backlog Queue to More Number of Queues

If you find that there are a backlog entries on a queue in SMQ2 and wish to redistribute them into multiple queues, you can do so by activating the "Balancing" parameter in the " TUNING " category. The parameter can be set using SXMB_ADMIN transaction "Configuration --&GT; Integration Engine Configuration". With the "Balancing" parameter set, when any queue exceeds the set threshold, the system will temporarily stop processing the entries and redistribute them into multiple queues. Once redistribution is completed, the system deactivates the "Balancing" parameter and resumes normal operation. If you choose a very low threshold, the system will be spending the time balancing the queue and high influx of messages may cause it to remain in balancing state. The entries are specified in the parameters B_EO_IN_PARALLEL_SENDER, B_EO_OUT_PARALLEL, and B_EO_IN_PARALLEL.

SAP XI: Search Help for Selecting Certificates from Key Storage Not Working

Image
The search help (F4) for certificates in Integration Directory works only for the certificates containing Subject Key Identifier. If it is left blank, you can't use F4. You can 1. Type the view name and certificate name manually to populate certificate details. 2. Recreate certificate with a valid subjectkeyidentifier. 3. Get F4 working by ignoring subjectkeyidentifier. This can be done by editing the adapter metadata in Integration Repository. Edit the metadata file to remove the following lines: <HelpServiceQueryAttribute>   <Name>X509Extension</Name>   <Value>SubjectKeyIdentifier</Value> </HelpServiceQueryAttribute>

Problems After Changing Parameters in SAP Profiles

Image
When changes are made to SAP profile parameters, they must be made through transactions RZ10 or RZ11. The parameters are maintained in the database and when the changes are saved, the profiles files are updated at the file system. If you make changes directly to the profile files, they won't reflect in the database until you import the profile file using RZ10. If you never had plans to change parameters using RZ10, you may not have imported the profiles. Now, if you start making changes to the parameters using RZ10, a new profile file is created based on the settings in the database and you end up losing the changes that were made directly to the files. You would be under the assumption that it is the parameter that has caused your system to malfunction and try to undo the change, but that would not work.

Log SQL Statement for JDBC Receiver Channel

If you require the sql statement generated by the JDBC adapter for any error analysis, you can set logSQLStatement to true in "advanced mode" section of the communication channel. This will cause the generated statement to show in details page of the audit. This parameter is not supported for productive use and is meant for testing only.