Posts

Showing posts from June, 2012

Two or more aggregate functions in Oracle cause performance problems

There seems to be a bug with Oracle database that causes execution of two or more aggregate functions in an SQL statement to be time consuming. Example of two aggregate functions in same query: SELECT MIN(XYZ) MAX (XYZ) FROM TABLE_XYZ; SAP XI has one such statement in the report SXMS_PF_REORG (reorganization of adapter data). As a work around, SAP has split the two aggregate functions in one statement to run as two separate statements. Implement SAP note 1540734 to implement SAP's workaround if you are facing performance issues with regard to this report.

How to create Ubuntu Application

Watch this video to learn how to create a simple Ubuntu application:

Delete Unnecessary Workitems

If you find tables like SWWWIHEAD, SWWLOGHIST and SWWCNTP0 growing large, compared to other workflow tables, there might be entries in these tables that are no longer referenced in the header table SWWWIHEAD. Such orphaned entries can be cleaned up by running RSWWWIDE_DEP report. If the report cleaned up a lot of entries, it is a good idea to reorganize the tables (listed in the report).

Collecting System Information Dump for SAP HANA

When you open an OSS connection, you are requested to provide information about the HANA database. You can collect the system information dump using a built in python script. Login using <sid>adm Go to /usr/sap/<SID>/<INST>/exe/python_support Run  python fullSystemInfoDump.py Provide database user ID and password The system dump will be zipped and written to /tmp/system_dump For more information you can try the help feature: python fullSystemInfoDump.py --help

Non-transportable fields in XPI Communication Channels

When a Communication Channel is designed in Dev environment, it is configured to connect with Dev source or target systems. When the channel is transported to QA and then to production, it is expected to connect with QA and production systems respectively. The usual configuration differences are hostname, user ID, password, certificates etc. If you are looking to find the set of all the fields in a channel that are configured differently in Dev, QA and Production, open Integration Directory and navigate to SAP BASIS --> SAP BASIS <VERSION> --> http://sap.com/xi/XI/System --> Adapter Metadata. Open each metadata and search for the term nonTransportable . All the fields that have the nonTransportable flag set against them are the ones that need to be configured in the change list before activating the communication channel.

PI 7.3 Upgrade: Objects not visible in Integration Builder

If you do not find any objects showing up in the Integration Builder, but you are able to locate them using search, follow these steps: Call  http://<server>:<port>/nwa/sys-config Go to Services tab Select  'XPI Service: AII Config Service' Select 'com.sap.aii.ibrep.core.usage_type' in Properties tab Set the Value to the required Usage Type for the system. You can choose one of the following based on the usage type you have installed: XPI - for ABAP + Java system PI system AEX - for Advanced Adapter Engine Extended system Restart Java cluster

Technical Interview Panel: Basis seems to be a rare skill

I am forced into taking technical interviews now and then. I have barely attended a few myself, and consider myself unfit to conduct interviews, but the people I get to interview are no better either. Of the six interviews, only one person was able to clear the tech round. Here are some of the Q&As as I remember: His resume has OS/DB Migration in bold: Me: How much of data was migrated? Interviewee: 4 GB This guy is a certified OS/DB migration consultant. Me: How much of data was migrated? Certified Consultant: *thinks hard* 100 GB Me: How long did it take to migrate? Certified Consultant: 3 days This guy says he has 4 years of Basis experience Me: Did you ever face any performance issues Cool dude: No Me: Ok.... if someone reports that they are not able to login to SAP system, what will you check? Cool dude: Report to my lead Me: What are the common transactions you use to monitor SAP Cool dude: We don't monitor Me: *virtual facepalm* Basis guy has inst

PI 7.3 Messages fail with 401 error but get processed on resend

The PI system uses ABAP as the user master. This means that the user ID details and passwords are maintained in ABAP stack. When a session is created in the Java stack, the UME service connects to ABAP and checks the user details. The number of connections from Java to ABAP are limited and under heavy load, the user check may timeout causing the Java stack to interpret it as an authentication problem. The result in PI is message process failure with a 401 error . You have to tune your system to ensure that there are no 401 errors due to heavy load. This can be done by increasing the following parameters: Max.Connections Max.Wait Time in ms Max.Connections specifies the maximum number of parallel UME connections between Java and ABAP and when call these connections are used up,  Max.Wait Time determines the time a request waits to get a free connection. You can increase/tune these values in the RFC destination  UMEBackendConnection using NWA --> Configuration ->

Database Access through O/JDBC Service Connection

Image
You can now let SAP support personnel access your database through SAP service connection. Ensure that you maintain permit access to the database server and listener port in sap router table. Call service.sap.com/access-support Click on Maintain connection Choose the system to which you wish to open the connection Click on the JDBC/ODBC Connection type entry and provide the port number used by the listener Now go to Open/Close connection and click on JDBC/ODBC Connection to open the connection like any other SAP service connection

Video: JMS Thread Pool Usage

This video visualises the thread usage of the JMS Sender adapter in an SAP PI 7.11 interface deployed on the Advanced Adapter Engine, and highlights the sequential nature of message processing by a single adapter thread for each Java server node & communication channel combination. Advanced concepts such as JMS Prefetch Windows are not considered here for simplicity's sake.

SAP Transaction Steps

Image
SAP uses a 3 layer architecture. The presentation layer is typically where an end user triggers an SAP transaction; the application layer runs the programs required to fulfill the transaction using database layer for persistence. When the user has triggered a transaction (at t0), the request flows through their front-end to the application server, over the network. The request reaches the dispatcher (at t1). If the dispatcher finds a free work process that can cater to the request, the request is assigned to the WP. Otherwise, the request will be held in the dispatcher queue until a free WP is available (t2) An SAP transaction is usually a series of logical units of work. Each logical step may be executed by different WPs. During the change in the WP executing the transaction steps, the user context (internal tables, variables, screen lists etc) is retained in roll memory through roll-ins and roll-outs. The WP copies the user context from roll memory into its local memory (roll

Disaster Recovery Plan

Disaster Recovery is the process, policies and procedures of restoring operations critical to the resumption of business, including regaining access to data (records, hardware, software, etc.), communications (incoming, outgoing) workspace, and other business processes after a natural or human-induced disaster. Here are some common aspects of designing a Disaster Recovery environment for a business application: 1. DR Server The server-that you intend to use in case of disaster-should contain the same version/patch of the Operating System as the primary server. You have to ensure that the disk allocation is similar to that of primary. You need not allocate identical server resources on the DR site, but you may need them when you intend to run the DR site as primary in the event of a disaster. 2. Standby Database Most of the database vendors provide you with an option to install and maintain a standby database, which keeps itself cloned with the primary database. Ex: Oracle pr