Posts

Showing posts from November, 2010

Web Diagtool for Troubleshooting

Image
SAP has provided Web Diagtool that lets you set trace levels on a few locations and collect the information as zip file. It is much convinient to use diagtool compared to log configurator when the problem can be reproduced on demand. Once you have deployed the sda file attached to SAP Note 1045019, you can call the diagtool using http://<host>:<port>/diagtool Usage: 1. Open http://<host>:<port>/diagtool 2. Select "All" for "Component" 3. Using the "Search Pattern", add the location on which you would like to collect the trace 4. Press Start. 5. Reproduce the problem 6. Press Stop, when the error occurs. 7. The trace is presented as html. You can also downalod the trace as a zip file. - You may have to increase "Maximum number of collected records" property if you wish to run the tool for a long duration. - Before starting the diagtool, make sure you are ready to reproduce the problem. The following

Visual Admin Doesn't Open KeyStore

Copy the iaik_jce.jar or iaik_jce_export.jar from the SCS Instance \\<HOST>\SAPMNT\<SID>\SYS\global\security\lib\tools\iaik_jce.jar to your CI \usr\sap\<SID>\JC<Inst. Nr.>\j2ee\admin\lib

Channel Error: "No Adapter Registered"

Image
This means that the Adapter service/application hosting the CC is stopped. Check the corresponding Service to verify if it is running. In case of 3rd party adapters like Seeburger, check the applications on Deploy service. If the problem repeats with every restart, chances are that the service or application is set not to start automatically. The following example shows how a Seeburger application is set not to start:

J2EE Engine Doesn't Start (exitcode=-11113)

Attempt to start the J2EE engine fails with an exit code -11113 (check dev_* trace file). The exit code -11113 means that a mandatory service has failed to start. You need to check the std_* trace file to determine which service has failed. Sample Error 1: Core service p4 failed. J2EE Engine cannot be started. Solution: Check bindHost property using Config Tool. Navigate to configtool -> Instance -> dispatcher -> services -> p4 -> bindHost Make sure that a correct value is maintained there. Remove any additional IP(backup IP) maintained. Sample Error 2: Core service file failed. J2EE Engine cannot be started. Caused by: org.omg.CORBA.INITIALIZE: cannot instantiate com.sap.engine.system.PortableRemoteObject vmcid: 0x0 minor code: 0 completed: No Solution: In this example, one of the Java parameters is set incorrectly. The parameter should have been com.sap.engine.system.PortableRemoteObjectProxy instead of com.sap.engine.system.PortableRemoteObject. Naviga

High CPU Usage on Ubuntu By update-apt-xapi Process

Image
update-apt-xapian-index is truncated and shown as update-apt-xapi in top tool. This process is responsible for maintaining an index of packages to speed up search on Synaptic and is scheduled as a cron job (/etc/cron.weekly). This is the cron job, triggering the process: #!/bin/sh CMD=/usr/sbin/update-apt-xapian-index IONICE=/usr/bin/ionice # Rebuild the index if [ -x $CMD ] then if [ -x $IONICE ] then nice $IONICE -c3 $CMD --quiet else nice $CMD --quiet fi fi Edit the lines to show the following: #!/bin/sh CMD=/usr/sbin/update-apt-xapian-index IONICE=/usr/bin/ionice # Rebuild the index if [ -x $CMD ] then if [ -x $IONICE ] then nice -n 19 $IONICE -c 3 $CMD --update --quiet else nice -n 19 $CMD --update --quiet fi fi The modification will help reduce CPU usage . -n 19 option gives least favorable scheduling priority. --update option causes the process to update the index instead of rebuilding it every time.

Cluster Communication Through Message Server

The SAP architecture uses Message Server for handling cluster communication instead of each node contacting with every other node.  Had each node been designed to talk to every other node, it would need an open connection per node (point-to-point network was used in 6.20 architecture). For such a setup, the required number of connections would be n*(n-1)/2. The number of connections (network overhead) would increase as a quadratic function of the number of nodes. By using Message Server as the central service (star network) for cluster communication, the number of connections would be n, making it a linear  function of the number of nodes.

Incorrect Logon Data After Remote Login With SM59

There is an incompatibility between the way passwords are stored in older R/3 systems and the newer ones. When using a newer SAP system (> 640) to connect with older R/3 systems (<= 640), make sure that the password used for RFC authentication is not longer than 8 characters and is in uppercase letters. The older systems the password is converted to uppercase and truncated to 8 characters.

SAP Graphics - Graphics Rendering Problem

Image
If you see "Graphics Rendering Problem" while trying to view graphs/charts (ex: charts in nwa), check if IGS server is running by calling http://<hostname>:<4<instance number>80>. If the IGS server is running file, ensure that IGSUrl property is maintained correctly. 1. Log in to  Visual Admin tool of the SAP J2EE. 2. Expand the Server->Services tree on the left. 3. Click on the Configuration Adapter in the tree. 4. Expand  Configurations->webdynpro->sap.com->tc~wd~dispwda part of the tree on the right. 5.Change to edit mode. 6. Double-click default in the propertysheet tree. 7. Click on IGSUrl in the dialog box. 8. Enter the default URL (http://<server host name>< fully qualified path name>:4<server instance number>80) of the IGS under Custom. 9. Click on Apply custom. 10. Press Ok. 11. Change back to view mode and exit from the VA tool. For v7.1: 1. Open http://<your host name>:<port>/nwa 2.

SAPOSCOL Doesn't Start

If you see "The OS Collector &LT;PID&GT; is already running" while trying to start it and there is no process running with the ID, it is possible that there is a shared memory segment to while saposcol is unable to attach to. To ensure that there is no other saposcol running, execute the following commands: saposcol -k cleanipc 99 remove If saposcol still doesn't start after this, note down all the process IDs that are attached to segment 0x00004dbe: ipcs -ma | grep 4dbe Check if there are any processes active. There must be atleast one (which is preventing startup of saposcol): ps -eaf | grep &LT;PID&GT; Kill the process. It should be a work process or ccmsr process. Note down the shared memory ID (second column): ipcs -ma | grep 4dbe Remove the shared segment: ipcrm -m &LT;ID&GT; saposcol should start now.

Dealing with XI Messages in Holding Status

Image
For EOIO (Exactly Once In Order) type messages, the messages are processed in a sequential order. Unless the previous message is Successful or Cancelled from further processing, the message will be in Holding status. Open Runtime Workbench, go to Message Monitoring and select the component (ex: Adapter Engine SID, from Database). Open the message by its ID by selecting “Show Additional Criteria”. Open the Message Data tab and check Quality of Service is "Exactly Once in Order". Note down the Sender and Receiver Service details. Search for all messages processed in say 1 month for the given Sender and Receiver services. Expand Configure Table Columns and check Sequential Numbers. Sort the output by Sequential Number. Scan through the messages to locate the one that has errored out. You'll notice that the messages after the errored one are in Holding status. Fix the cause for message failure and resend the errored out message. Resend the next message in the sequence. Rest o

Why Paging is Bad for JVM

JVM Performance - Why JVM Should Not Page When the system runs out of physical memory, it pages (or swaps) out a part of the memory which is currently not in use so that the active applications can use the freed up memory. Paging causes the old memory content to be written on disk and when the content is required again, it is written back to memory from disk. The disk read/writes are slow and hence they have negative implications on performance for any application. There is an added performance problem in case of JVM. The garbage collection process requires the heap memory to be checked (including the part paged out to disk). The memory contents need to be paged back into the physical memory slowing down the GC.

SM35: Deleting Batch Session Data

APQD (batch input sessions) table can grow upto 100GB in size and requires a regular clean up. Scheduling RSBDCREO report should take care of the clean up. If there are any sessions that are not picked up by the report for some reason, g o to sm35, enter the session name, choose date (for example 3 months before current date) and delete the entries by clicking on the Waste Bin icon.

DB13: Block Fail Found for DBVERIFY

During a check of a datafile with dbv the following error occured: DBV-00102: File I/O error on FILE (/oracle/&LT;SID&GT;/sapdata3/btabi_5/btabi.data5) during end read operation (-1) Before you got the error for this file, a resize of the file was tried. The resize failed but the resize-size is written to the header of the datafile. dbv detects the mismatch between header value and the length of the file on operating system level. Resize the file again so that dbverify error doesn't occur. Command syntax for resizing datafile: ALTER DATABASE DATAFILE &LT;file_name | file_number&GT; RESIZE TO &LT;integer&GT;&LT;M | G | T&GT;;

Turning Oracle Listener Logging Off

You might want to avoid performance overhead due to logging on listener. The following steps will show you how to disable logging. 1) Take a backup of the current listener.ora file in $ORACLE_HOME/network/admin as ora&LT;SID&GT; user 2) Update the listener.ora file with parameter as ora&LT;SID&GT; user. LOGGING_&LT;LISTENER NAME&GT; = OFF Replace &LT;LISTENER NAME&GT; with the current Listenername with match case. e.g LOGGING_LISTENER = OFF save the listener.ora file 3) Enter the Listener control utility and reload the config as ora&LT;SID&GT; user. lsnrctl reload 4) In the Listener control utility run the stat command to ensure listener log entry is not visable lsnrctl stat there should be no line entry starting Listener Log File

OS Refused a TSM Request for Memory Allocation

If you are using TSM server for taking backups and get the following error in the brbackup logs BKI1214E: TSM Error: ANS1075E (RC102) *(*)The operating system refused a TSM request for memory allocation. BKI1201E: There are no Tivoli Storage Manager-Servers available. BKI1203E: Not enough sessions available (1 required and 0 available). Restart prole process (needs root access) to fix the problem.

Restoring Previous Table Statistics on Oracle Database

If you suspect that a recent update of table statistics has caused performance problems, you may want to restore the previous statistics. Check the statistics history to confirm if there was indeed a change in table stats: select stats_update_time from user_tab_stats_history where table_name = 'MSEG'; Take a backup of current statistics, in case you anticipate a restore: Create a temporary stat table to hold the current statistics: exec dbms_stats.create_stat_table ('SAPR3', 'MSEG_NEW_STAT'); Export the current table stats to the temporary stat table: dbms_stats.export_table_stats('SAPR3', ‘MSEG’, NULL, ‘MSEG_NEW_STAT’, NULL, true, 'SAPR3'); Restore the old stats (by time): execute dbms_stats.restore_table_stats ('SAPR3','MSEG','19-SEP-10 10.34.27.831098 PM +08:00'); If you have been facing problems every time there is a stat update, you can disable update using the following command:

End Backup on Oracle Database

If the BRBACKUP terminates before completion, it may leave the tablespace in backup mode. You can check this using txn DB02 --> Current Sizes (in Tablespaces). The last column Backup should show "NOT ACTIVE". To take them out of backup mode, you may run the following commands from sql prompt. spool endbackup.lst select distinct 'alter tablespace ' || tablespace_name || ' end backup;' from v$backup, dba_data_files where v$backup.status='ACTIVE' and v$backup.file#=file_id; spool off start endbackup.lst Remove the lock file (/oracle/SID/sapbackup/.lock) left due to termination.

Taking Backup Using Oracle Export Tool

Login as ora user cd to directory where you wish to export the DB exp \'sys/&LT;password&GT;@&LT;sid&GT; as sysdba\' file=expdbsapr3.dmp log=expdbsapr3.log owner='sapr3' direct=y compress=n