Using Google Chrome?

Download my
free Chrome Extension, Power Notes Searcher, to make searching for and evaluating SAP notes, much easier.

Recent Posts

Thursday, April 25, 2013

SAP Command Field Codes

Extracted from SAP Note 26171 – “Possible entry values for command field ("OK-code")”

Calling transactions & Session Handling:

/nxxxx
    This terminates the current transaction, and call transaction "xxxx", for example, "sa38" for reporting.

/n
    This terminates the transaction. This generally corresponds to going back with F15.

/nend
    This terminates all separate sessions and logs off (corresponds to "System -> Log off").

/nex
    This terminates all separate sessions and logs off immediately (without any warning).

/oxxxx
    This opens a new session and starts transaction xxxx in this session.

/o
    This lists existing sessions and allows deletion or opening of a new session.

/i
    This terminates the current session (corresponds to "System -> End session").

/i1 , /i2 ,...
    This terminates the session with the specified number.

.xyzw
    "Fast path": "xyzw" refers to the underlined letters in the menus. This type of navigation is uncommon and is provided more for emergencies (such as a defective mouse)


Background Input:


/n
    This terminates the current background input transaction and characterizes it as "Failed".

/bdel
    This deletes the current background input transaction.

/bend
    This terminates background input processing and sets the session to "Failed".

/bda
    This switches from "Display errors only" to "Process in foreground".

/bde
    This switches from "Process in foreground" to "Display errors only".



ABAP/4 debugging:


/h
    This switches into debugging mode.

/hs
    This switches into debugging mode and activates the debugging of system functions.


Buffer commands:


/$SYNC
    This resets all buffers of the application server.

/$CUA
    This resets the CUA buffers of the application server.

/$TAB
    This resets the table buffers of the application server.

/$NAM
    This resets the nametab buffers of the application server.

/$DYN
    This resets the screen buffers of the application server.


Out-of-date commands:


Pxxx
    From the menu system:
Calls transaction Pxxx.

If an ABAP list is displayed:
Send command Pxxx to the list processor (for example, P+, P--, PRI, and so on)
From a transaction screen:
Send command Pxxx to this transaction

xyyy (where x is not 'P', '/', '=' or '.') )
    From the menu system:

Calls transaction xyyy
Within a transaction:
Send command xyyy to this transaction

/*xxxx
   Calls transaction xxxx and branches to the next screen. So, it has the same effect as /nxxxx followed by ENTER.

=xxxx
   This entry is still possible for compatibility reasons, but is no longer supported.

%sc
    Searches for a string in lists (like "System -> List -> Find String")

%pc
    Downloads lists

%pri
    Prints lists

?STAT
    Displays the status dialog (such as "System -> Status...) )

Monday, April 22, 2013

Fuci Fuci insect Italia

Whilst in Puglia in the south of Italy, I've come across the locally named Fuci Fuci insect (in dialeto) which is Puliese dialect for "run run".
A quick search of the internet doesn't tell you what this insect is actually called, based on the dialect name, not surprising.
It's a member of the centipede family and is known as the House Centipede.  It is documented here:
http://en.m.wikipedia.org/wiki/Scutigera_coleoptrata
It's harmless and is probably on the hunt for spiders!
Still, it creeps me out that something can run 0.5 meters in 1 second!

Thursday, April 18, 2013

SAP Index is in the Customer Namespace

Scenario: You have your own SAP customer namespace (e.g. /MYSPACE/) and you are trying to add a new custom index Z01 to one of your tables in SE11.

When you try and “check” the index or activate it in SE11, you keep getting the error “Index xxxx is in the customer namespace”:



This problem is caused by the fact that the index name is the three character part of the index name at the end, and does not include the table name.

As an example:

/MYSPACE/MYTABLE~Z01 means the index name is Z01.

Because your table is in your customer namespace /MYSPACE, you cannot use the Y or Z development namespaces in your index name.

Therefore, remove the Z or Y from the index name.
You should be able to create an index /MYSPACE/MYTABLE~C01 instead.

Thursday, April 11, 2013

HP MSL 2024 LTO Tape Library on Oracle Enterprise Linux 5.7 (RHEL 5.7)

Whilst working on a HP ProLiant ML370 G6 server running Linux kernel 2.6.18 (Oracle Enterprise Linux 5.7), I was trying to get the O/S to see an HP MSL 2024 LTO-4 tape drive and library.

After a reboot, there was still no sign of the “st” device in /dev:

> ls -l /dev/st[0-9]*


And no SCSI device listed other than the DVDROM:

> cat /proc/scsi/scsi

Attached devices:
Host: scsi1 Channel: 00 Id: 00 Lun: 00
Vendor: hp Model: DVDROM DH40N Rev: IS01
Type: CD-ROM ANSI SCSI revision: 05


I found the following “page” very helpful:
https://www.kernel.org/doc/Documentation/blockdev/cciss.txt

It mentioned the HP Smart Array driver, also known as cciss.
I checked I had one of these puppies:

> lspci |grep Array
05:00.0 RAID bus controller: Hewlett-Packard Company Smart Array G6 controllers (rev 01)
1b:00.0 RAID bus controller: Hewlett-Packard Company Smart Array G6 controllers (rev 01)


Yep, I had two.
I checked the Kernel module for cciss was loaded:

> lsmod | grep cciss
cciss 125033 3
scsi_mod 199129 12 be2iscsi,ib_iser,iscsi_tcp,bnx2i,libcxgbi,libiscsi2,scsi_transport_iscsi2,sr_mod,sg,libata,cciss,sd_mod


Yep, it was loaded.
Also notice that the scsi_mod has 12 modules referenced.

So my problem was probably like the “page” I pointed out suggested:

Additionally, note that the driver will not engage the SCSI core at init
time. The driver must be directed to dynamically engage the SCSI core via
the /proc filesystem entry which the "block" side of the driver creates as
/proc/driver/cciss/cciss* at runtime. This is because at driver init time,
the SCSI core may not yet be initialized (because the driver is a block
driver) and attempting to register it with the SCSI core in such a case
would cause a hang. This is best done via an initialization script
(typically in /etc/init.d, but could vary depending on distribution).

Note the words “dynamically engage”.
They are not written like that for fun. Guess what was required? Yep, I need to engage the SCSI core:

> ls -l /proc/driver/cciss
-rw-r--r-- 1 root root 0 Mar 15 14:16 cciss0
-rw-r--r-- 1 root root 0 Mar 15 14:16 cciss1

> echo "engage scsi" > /proc/driver/cciss/cciss0
> echo "engage scsi" > /proc/driver/cciss/cciss1


Now load the “st” tape module into the Kernel:

> modinfo st
filename: /lib/modules/2.6.18-274.0.0.0.1.el5/kernel/drivers/scsi/st.ko
alias: char-major-9-*
license: GPL
description: SCSI tape (st) driver
author: Kai Makisara
srcversion: AA839FAA66A7758BC7A5C9D
depends: scsi_mod
vermagic: 2.6.18-274.0.0.0.1.el5 SMP mod_unload gcc-4.1
parm: buffer_kbs:Default driver buffer size for fixed block mode (KB; 32) (int)
parm: max_sg_segs:Maximum number of scatter/gather segments to use (256) (int)
parm: try_direct_io:Try direct I/O between user buffer and tape drive (1) (int)
parm: try_rdio:Try direct read i/o when possible (int)
parm: try_wdio:Try direct write i/o when possible (int)
module_sig: 883f3504e2dbc6ac74ff6cf7d76a7e6112d2d09e302b4a8f57e42688cd5258668b7a3044163799609e32cd3dacb7e842b9a84ef2d2032f542f69e866

> insmod /lib/modules/2.6.18-274.0.0.0.1.el5/kernel/drivers/scsi/st.ko


Check that it’s loaded:

> lsmod | grep st
st 72805 0
scsi_mod 199129 13 st,be2iscsi,ib_iser,iscsi_tcp,bnx2i,libcxgbi,libiscsi2,scsi_transport_iscsi2,sr_mod,sg,libata,cciss,sd_mod


You will see on the above output that the scsi_mod now has accessed the “st” module (in the list) and shows 13 (yours maybe different) modules.

Check we have a SCSI device:

> cat /proc/scsi/scsi
Attached devices:
Host: scsi1 Channel: 00 Id: 00 Lun: 00
Vendor: hp Model: DVDROM DH40N Rev: IS01
Type: CD-ROM ANSI SCSI revision: 05
Host: scsi3 Channel: 00 Id: 00 Lun: 00
Vendor: HP Model: Ultrium 4-SCSI Rev: U55W
Type: Sequential-Access ANSI SCSI revision: 05
Host: scsi3 Channel: 00 Id: 00 Lun: 01
Vendor: HP Model: MSL G3 Series Rev: 5.50
Type: Medium Changer ANSI SCSI revision: 05


Bingo!

We can confirm what DMESG sees:

> dmesg | tail
scsi2 : cciss
scsi3 : cciss
Vendor: HP Model: Ultrium 4-SCSI Rev: U55W
Type: Sequential-Access ANSI SCSI revision: 05
st 3:0:0:0: Attached scsi tape st0
st0: try direct i/o: yes (alignment 512 B)
st 3:0:0:0: Attached scsi generic sg1 type 1
Vendor: HP Model: MSL G3 Series Rev: 5.50
Type: Medium Changer ANSI SCSI revision: 05
scsi 3:0:0:1: Attached scsi generic sg2 type 8
st0: Block limits 1 - 16777215 bytes.


And there at the end is the confirmation that we should now have a /dev/st0 device:

> ls -l /dev/st0
crw-rw---- 1 root disk 9, 0 Mar 15 12:50 /dev/st0


With a tape confirmed as in the tape drive (through the web based HP MSL tape library web GUI), we can do a basic backup using TAR:

> echo "Hello Darryl" > /tmp/dmg.txt
> tar -cvf /dev/st0 /tmp/dmg.txt


Or to not rewind the tape after, we could use nst0:
> tar -cvf /dev/nst0 /tmp/dmg.txt

Then read the file back from the tape device:

> rm /tmp/dmg.txt
> tar -tvf /dev/st0
-rw-r--r-- root/root 13 2013-03-15 14:54:20 tmp/dmg.txt

> tar -xvf /dev/st0 tmp/dmg.txt

Thursday, April 04, 2013

SAP PI 7.0 JDBC Connectivity Issues

The following SAP Notes contain useful information about fixes in the SAP PI Adapter Framework Core (SAPXIAFC) and Adapter Framework (SAPXIAF) components.

The notes were found whilst searching for component: BC-XI-CON-JDB (JDBC Adapter).

SAP Note 1483974 - File and JDBC sender adapter's retry not working after error
SAP Note 1510659 - Improvement in Locking, Logging and Monitoring in JDBC
SAP Note 1083488 - XI FTP/JDBC sender channel stop polling indefinitely(04/04S)
SAP Note 1398891 - XI/PI Adapter for Oracle: Overcoming DB Connection Issues

I was seeing a constant problem whereby the JDBC Adapter would not restart after the destination database system went down for backup or had a failure, or was not started at the time that the SAP PI system was started up.

The SAP note 1483974 was interesting as it highlighted the use of the Scheduler, which I didn’t know existed.