Posts

Showing posts from May, 2011

ERP Implementation Steps - Planning, Design and Implementation

Image
Implementing an ERP software system not only involves a great deal of expenditure, efforts and time, it also involves change in some of the complex business processes. Such changes are often disliked by the employees and are a big risk. In order to ensure success, everyone in the company, from the leadership to back-office workers should cooperate. Implementing ERP requires a team of experts who understand the business and technical aspects of the project. A separate ERP solution provider is employed for working with each department in understanding their processes and challenges. Implementation of ERP involves the following steps: Planning and Requirements Analysis This is the initial phase where the company takes a decision on implementing ERP. The decision could based on their need to comply with legal requirements, replace their legacy applications, for benefits of integration, reduction of inventory, reduction of operational costs, risk management, additional fun...

SAP Not Just for Big Companies - Get Dedicated Servers and Business Solutions at Affordable Fees

If you walk around the stores in Germany, you may have noticed that even a small business is using SAP. These stores can't manage an IT staff to take care of installing, maintaining or configuring SAP, let alone pay the huge licensing fee. This is not just the case in Germany. Small and mid-size companies around the world are now able to use SAP. Thanks to bad phases of economy, SAP and its partners are looking at the market that is comprised of small companies and have come up with hosting and maintenance plans that are affordable by everyone. There financial plans out there specially designed to help mid-size companies implement SAP's business solutions and be more competitive in tough financial conditions. It is a win-win for both the vendors and the customers. Read how IT Service companies can help you http://www.wipro.com/industries/computer-software/solutions/saas-enabler.htm http://www.tcs.com/offerings/small-medium-business-SMB/Pages/default.aspx http://www.ibm.com/sol...

How to ensure that the database connectivity is not a bottleneck

Image
If your SAP XI application deals with a high volume of messages, you may have tuned the number of ABAP work processes, added server nodes or installed additional Dialog Instances. If you find that there is not much improvement in message processing power check the database logs. If you find errors like these, the database is not opening enough sessions and is a bottleneck. Oracle: ORA-00018: maximum number of sessions exceeded   ORA-00020: maximum number of processes exceeded   SAP DB: -9807 Task Limit Here is how you calculate the required number of connections that need to be opened: Number of connections required for ABAP work processes: ABAP_connections = 2*(Total number of work processes in all instances) + 20 Number of connections required by J2EE server nodes J2EE_connections = (Number of Java server nodes)*(Maximum No. of Connections in all DB pools) + 10 You can find out the maximum number of connections as shown in the screen shot. 100 is the default value...

Increasing Throughput for File Sender Channels

A file sender channel, when accessing a file, puts a lock on the directory to avoid the same file from being processed by other server node. This ensures that there is no duplication of data. If you want the files to be processed faster, adding another server node will not help. Distribute the files into multiple directories, so that multiple file senders can process these files resulting in increased throughput. Also, keeping a common directory to hold files for different channels should be avoided.

Condition Evaluation in UNIX Scripts

One of our previous blog post showed you how a decision is made using the result of evaluated condition in if statement . This post will provide a handy list of useful conditions. Evaluating Numbers -eq returns true for equality. Ex:   [ $ANSWER -eq 10 ] -ne returns true for inequality -lt returns true if the variable is less than other variable/number. -gt returns true if the variable is greater than other variable/number. -le returns true if the variable is less than or equal to other variable/number. -ge returns true if the variable is greater than or equal to other variable/number. Evaluating Strings string1 = string2 returns true if both strings are the same string1 != string2 returns true if both strings are the not the same -z string returns true if the string is null -n string returns true if the string is not null string returns true if the string is not null string1 < string2 returns true if ASCII value of string1 is less than that of st...

Script to Email the Database Backup Status

Image
Database backup is very important for its recovery from a crash. The administrator has to ensure that a backup is taken regularly. Here is a shell script to check and report the status of the backup via an email. #!/bin/sh . ~/.profile # -------- Set variables per your requirement --------- MAILSEND=/tmp/.mail.send SID= REPLACE_THIS_WITH_YOUR_SID mail_recipient= REPLACE_THIS_WITH_ YOUR_EMAIL_ID # ----------------------------------------------------- # Check for backup log file if [ -f /oracle/${SID}/sapbackup/back${SID}.log ] then # extract date information print The previous backup was attempted on `tail -1 /oracle/${SID}/sapbackup/back${SID}.log | awk '{print $3}'` > $MAILSEND # extract return code information rc=`tail -1 /oracle/${SID}/sapbackup/back${SID}.log | awk '{print $7}'` # check if backup is currently active if [ ` ps -eaf | grep ${SID} | grep brbackup |wc -l` -gt 0 ] then rc=7 fi # decode return codes case $rc in 0) prin...

SAP XI JDBC Communication Channels Not Polling or Hanging

Image
If you see that a JDBC sender channel is not polling after a java node crash , check the locks. When a JDBC sender channel polls, it sets a lock in the enqueue service (SCS instance). With a crash, these locks will be left hanging and the channel will not poll until the lock is removed. To get the channel to poll again , follow this process: 1. Stop the channel 2. Go to Visual Admin --> Locking Adapter --> Display locks tab and refesh the locks view. 3. Select the existing (hanging) enqueue lock with JDBC (The lock has $XIDBAD.JDBC2XI and channel ID in tis name. The channel ID can be determined from <Path to server node>/log/services/com.sap.aii.adapter.jdbc.svc) 4. Delete the lock. 5. Start the channel The problem can be avoided by setting 'taskTimeout' parameter in the channel. When the channel sets a lock, it passes the value of this parameter to the enqueue service and the enqueue service will not hold this lock longer than this time. If the c...

EULAlyzer - Detect Dangerous Terms in a License Agreement

Image
Most of us scan through the license agreements and simply agree to whatever the long boring text contains. When installing software, never just click past the license agreement. When joining a new site, don't just write off the privacy policy as too long and verbose to read. Copy and paste the license agreement into EULAlyzer, and it automatically tries to detect potentially dangerous terms and provide a detailed listing of potentially interesting words and phrases. You can also find out if the software you're about to install displays pop-up ads, transmits personally identifiable information or uses unique identifiers to track you. Download here:  http://www.javacoolsoftware.com/eulalyzerdl.html

Recuva - Recover Deleted Files

Image
Recuva is a free utility that helps in recovery of files deleted accidentally or by virus or due to system crash. You can also recover deleted emails (Microsoft Outlook Express or Mozilla Thunderbird). Recuva also helps in deleting your private files so that the file can't be recovered by any recovery software. Download Recuva:  http://www.piriform.com/recuva/download

JDBC Receiver Channel: 'Maximum Concurrency' and 'poolWaitingTime'

Image
The receiver communication channel uses ' Maximum Concurrency ' and ' poolWaitingTime ' parameters while negotiating a JDBC connection to a database. The default values of this parameters are 1 and 5000 ms respectively. Maximum Concurrency is the number of parallel database connections that receiver channel can open and poolWaitingTime is the amount of time, in ms, the channel waits for a free connection when all the parallel connections are being used. When Maximum concurrency is set to 1, poolWaitingTime should be set to 0. This makes sure the channel can wait infinitely to get the DB connection. This will prevent messages to get into error state with error similar to this: Delivery of the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: Channel has reached maximum concurrency (5,000 concurrent messages) and no free resource found within 5,000 milliseconds; increase...

Loops in UNIX Shell Scripts - until Statement

The until construct allows iterations through a block of script as long as a certain condition is false. Syntax: until condition do commands done Example: The example script counts up to 10 secs. #!/bin/sh i=1 until [ $i -gt 10 ]; do    sleep 1    print "$i"    i=` expr $i + 1 ` done exit 0

Loops in UNIX Shell Scripts - while Statement

The while construct allows iterations through a block of script as long as a certain condition is true. Syntax: while condition do commands done Example: The example script counts up to10 secs. #!/bin/sh i=1 while [ $i -le 10 ]; do    sleep 1    print "$i"    i=` expr $i + 1 ` done exit 0

Loops in UNIX Shell Scripts - for Statement

The for statement lets iterations through a list of values. Syntax: for variable in list_of_values; do commands done Example: The example script lists files and directories (with their content) starting with the letter a, b and c. #!/bin/sh for i in a b c; do ls  ${i}* done exit 0