SAP on IBM i

7 Posts authored by: Jan Stallkamp

SAP on IBM DB2 for i - News from Development

memberIsLeaving, /* 9 /, failover</pre>and<br /><pre>switchPrimary,   / 10 */, switchoverTo keep this blog readable the sourcecode is not included here but can be found on a separate page here in the SDN.

h5. Codelisting of ILE CL STRSAPCRG, gets called from CRGEXIT

STRSAPCRG gets the iASP name as input from CRGEXIT, and calls SYSSTRLIST for a list of SAP_systems_to start, retrieves the instancenumbers of the SAP systems and submits a startjob for every SID in the list.

To do that, it will need the programs RTVSAPINST and GETSAPINST that should be copied from a kernellibrary to QGPL. It will be implemented as ILE CL and is simple by design for better understanding.

PGM         PARM(&PAR)

DCL         &PAR     *CHAR 256

DCL         &INST1   *CHAR   2

DCL         &INST2   *CHAR   2

DCL         &SID     *CHAR   3

DCL         &MUTE    *CHAR   1 '1'

DCL         &FAILED  *CHAR   1

DCL         &LIB400  *CHAR  10 'R3   400  '

DCL         &IASPP   *CHAR  10 '          '

DCL         &SBS     *CHAR   5

DCL         &JOB     *CHAR   8    'START   '

DCL         &USER    *CHAR   6    '   ADM'

DCL         &SYSLIST *CHAR  61    ' '

DCL         &Z       *DEC    3 0

DCL         &MSG     *CHAR 512

 

/* GET LIST OF SIDS    */

CHGVAR &IASPP &PAR

CALL SYSSTRLIST PARM(&SYSLIST &IASPP)

     CHGVAR     VAR(&MSG) VALUE('List is ' *CAT &SYSLIST)

     SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA(&MSG) +

                          TOPGMQ(SAME) MSGTYPE(INFO)

 

IF (%SST(&SYSLIST 1 6) *EQ 'failed') DO

             CHGVAR     VAR(&MSG) VALUE('Error occured: ' *CAT &SYSLIST)

     SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA(&MSG) +

                          TOPGMQ(PRV) MSGTYPE(INFO)

     GOTO ENDE

ENDDO

/*   */

CHGVAR &Z 1

LOOP:

CHGVAR &SID %SST(&SYSLIST &Z 3)

IF (%SST(&SID 1 1) *EQ ' ') GOTO ENDE

IF (%SST(&SID 3 1) *EQ ' ') GOTO ENDE

 

CHGVAR %SST(&LIB400  3  3) ( &SID )

 

CALL RTVSAPINST PARM(&SID &INST1 &INST2 &FAILED &MUTE)

IF (&FAILED *NE '0') DO

     CHGVAR     VAR(&MSG) VALUE('Instance(s) of system ' +

                          *CAT &SID *CAT ' could not be +

                          retrieved')

     SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA(&MSG) +

                          TOPGMQ(SAME) MSGTYPE(INFO)

   GOTO NOINST

ENDDO

CHGVAR &SBS VALUE('R3_' *CAT &INST1)

             CHGVAR %SST(&LIB400  3  3) ( &SID )

             CHGVAR &SBS ('R3_' *CAT &INST1)

             STRSBS SBSD(&LIB400/&SBS)

             MONMSG MSGID(CPF1010)

             CHGVAR %SST(&JOB  6  3) ( &SID )

             CHGVAR %SST(&USER 1  3) ( &SID )

             DLYJOB 60

             CHGVAR    VAR(&MSG) VALUE('Now starting ' *CAT &SID)

             SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA(&MSG) +

                          TOPGMQ(SAME) MSGTYPE(INFO)

             SBMJOB     CMD(CALL PGM(STRSAP) PARM(&SID &INST1 +

                          &INST2)) JOB(&JOB) JOBD(&LIB400/&SBS) +

                          USER(&USER) INLASPGRP(&IASPP)

             MONMSG     MSGID(CPF1338) EXEC(GOTO CMDLBL(ENDE))

NOINST:

CHGVAR &Z VALUE(&Z + 3)

IF (&Z *GT 19) DO

             CHGVAR     VAR(&MSG) VALUE('Found too many entries in +

                          //usr/sap/sysstrlist')

     SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA(&MSG) +

                          TOPGMQ(PRV) MSGTYPE(INFO)

     GOTO ENDE

ENDDO

 

GOTO LOOP

 

ENDE:

ENDPGM# comment

  1. still commentline, now following are SIDs of systems to be started

 

  1. and so on

 

 

int main(int argc, char *argv[])

{

  int ret, fd, rc, pos;

  char in[100]="";

  char iASP[11];

  char first = '1';

  char *inP;

  char out[100]="";

  char *outP;

  char path[512] = "";

  char SID[3];

  int flag = O_RDONLY | O_TEXTDATA | O_CCSID;

  unsigned int open_ccsid = 37;

  mode_t mode = S_IRUSR | S_IWUSR | S_IXUSR;

  memcpy(iASP,argv[2],10);

  pos=strcspn(iASP, " ");

  iASP[pos]= ' ';

  sprintf(path, "/%s/usr/sap/sysstrlist", iASP);

  if ((fd = open(path, flag, mode, open_ccsid)) < 0)

  {

    sprintf(out, "failed, file sysstrlist not found in %s", path);

    strcpy(argv[1], out);

    return 0;

  }

  else {

      ret = read(fd, in, sizeof(in)-1);

      in[ret] = 0x00;

      if (close(fd)!= 0)

      {

         sprintf(out, "failed, file close error for %s", path);

         strcpy(argv[1], out);

         return 0;

       }

    }

  //

  inP = in;

  outP = out;

  while (*inP)

  {

     if ((inP == 0x25) && ((inP+1) == '#') || (*inP == '#') && first)

     {// comment - proceed until next CR/LF

         *inP++;

         while ((inP) && (inP != 0x25))

         {

            *inP++;

         }

     }

     first = '0';

     if((inP != ' ') && (inP != 0x0D) && (*inP != 0x25))

     {

        memcpy(SID, inP, 3);

        memcpy(outP, SID, 3);

        outP += 3;

        *inP++;

        *inP++;

     }

     *inP++;

  }

  strcpy(argv[1], out);

  return 0;

}

 

+----


|

| Driver Type . . . . . . . . . . *XDN

| Server Run Mode . . . . . . . . *STRRMTDB

| System Name (SID) . . . . . . . *ENV

| Instance Name . . . . . . . . . *ENV

| Instance Host . . . . . . . . . *LOCAL

| User profile . . . . . . . . . . QSECOFR

| User password . . . . . . . . . xxxxxxxxxx

|

+----


For more information about the profile parameters that are used to configure Direct Drive see SAP Note 1257635

h3. Requirements

Direct Drive is available for all SAP systems with a basis release of 6.40 or higher. You will need the following minimum release levels:

640:
ILE:
Stack: R3OPT_274-...SAR
DBSL: lib_dbsl_279-...sar
R3INLPGM: R3INLPGM_288-...SAR
NT/Linux:
DBSL: lib_dbsl_282-...sar
700:
ILE:
Stack: SAPEXE_201-...SAR
SAPEXEDB_201-...SAR
DBSL: lib_dbsl_204-...sar
R3INLPGM: R3INLPGM_204-...SAR
NT/Linux:
DBSL: lib_dbsl_206-...sar
701:
ILE:
Stack: SAPEXE_39-...SAR
SAPEXEDB_39-...SAR
ILE_48-...SAR
DBSL: lib_dbsl_42-...sar
NT/Linux:
DBSL: lib_dbsl_42-...sar
711:
ILE:
Stack: SAPEXE_29-...SAR
SAPEXEDB_29-...SAR
ILE_44-...SAR
DBSL: lib_dbsl_44-...sar
NT/Linux:
DBSL: lib_dbsl_44-...sar

 

 

In this edition of the SAP on IBM i news from development blog I would like to talk about decimal floating point. Of course this topic is not limited to SAP on IBM i, so users of other databases may want to have a look on this blog, too. But there are features that are specific to SAP on IBM i. I will present this features in the third part of this blog.

1. What is decimal floating point?

For most of us the „natural" representation of numbers is the decimal one. This representation is quite old (the oldest known sources are from India) and is used all over in everyday life. Other number representations like the sexagesimal system have only survived in small areas like trigonometry.

Unfortunately, all current computers are based on the binary system which makes it necessary to change the representation of all numbers that are transferred into the computer. And this change of representation yields some problems that are not easy to get around. First of all not every number with a fixed length representation in the decimal system has a fixed length representation in the binary system. As an example look at the decimal fraction 0.2. In the binary representation this is 0.(0011). Here the parantheses are indicating the period of the number. Some calculations that can be done without any loss of precision in the decimal representation cannot be done without loss of precision in the binary system. And of course the standard methods of rounding cannot be transferred into the binary world very easily. Calculations with fractions usually give results with a limited precision. But with different representations the results can vary.

For many applications these problems are not a big deal. Using floating point numbers is usually sufficient and increasing the number of binary digits usually increases precision as good as demanded. But for some business and scientific applications this does not work. One example are currency conversions. There are strict rules about rounding and the number of decimals to take into account. As these rules are based on the decimal system the binary calculations will not work in all cases. The solution to this issue are decimal floating point numbers (DFP) that represent numbers as decimal fractions in the binary world.

2. How is DFP integrated into SAP NetWeaver?

Most of the common programming languages like C/C++ and Java nowadays have been extended to offer support for DFP data types  There are software libraries available which perform the DFP calculations on the different processor architectures.

Starting with SAP NetWeaver Release 7.0 EhP2 and 7.1 EhP1, the ABAP programming language and the data dictionary (DDIC) also support decimal floating point data types. Two DFP data types are available, decfloat16 and decfloat34:

Type

Precision

Digits

Exponent Range

decfloat16

Double (64 bits)

16

-398 to +369

decfloat34

Quad (128 bits)

34

-6176 to +6111

You can take advantage of these data types in your reports and use them like the common data types you are used to. But although the DFP types are integrated into the DDIC, these types are not mapped to native decimal floating types on the database. This is not possible because ABAP OpenSQL code needs to be platform independent and not all database platforms offer a DFP data type yet.

In the example report you can see how to use this data type. Be aware that the first half of the report is specific to DB2 for IBM i but the second half is platform independent.

3. How to take advantage of DFP on IBM i?

With version 6.1 of the IBM DB2 for i database both decfloat16 and decfloat34 data types are natively supported. This allows you to store decimal floating point data in database tables without any type conversion and the risk of losing value precision.  The numeric functions of the database are also supporting DFP. In the example report I have chosen a simple substraction and the sum() function to show this.

In addition, the IBM Power6 processor comes with a hardware decimal floating point unit, meaning it is capable of calculating decimal floating point numbers without any software emulation.

All together, the ABAP, database, operating system and processor support for DFP provides a thoroughly integrated DFP solution running with SAP on IBM i.

In order to take full advantage of DFP for your SAP ABAP application you can use ExecSQL and ADBC SQL interfaces to work with the native DFP database types. Note that you cannot create tables with native DFP columns from the DDIC. You have to either execute a DDL statement with native SQL or create the table natively on the database on your own.

One drawback of native SQL should not be forgotten. Native SQL is database specific code. If you are going for a database migration at some point in the future you will have to rewrite all of this code. Native SQL should never be used withour considering what implications that might have for future changes. 

Example

The following ABAP code shows a basic example how you can use the DFP data type with native SQL. It's just an example so use at your own risk.

It shows how to create a table with column types decfloat16 and decfloat34, store data to the table from ABAP DFP variables and retrieve data from the database table into such variables. In addition to that some calculations are done directly in the database. At the end we drop the table to get to the original state again.

In addition, there is a short example where you can see that representation does matter. The decimal fraction 0.2 cannot be represented as a fixed length binary fraction. By adding up this fraction several times the tiny error gets more significant.


*&---------------------------------------------------------------------* *& Report ZDFPTEST *& *&---------------------------------------------------------------------* *& Demo: making use of decimal floating point support *& using native SQL *&---------------------------------------------------------------------* REPORT ZDFPTEST. TYPES: BEGIN OF DFP_ROW, I TYPE I, DF16 TYPE DECFLOAT16, DF34 TYPE DECFLOAT34, END OF DFP_ROW. DATA: EXC_REF TYPE REF TO CX_SY_NATIVE_SQL_ERROR, ERROR_TEXT TYPE STRING, I TYPE I VALUE '1', DF16 TYPE DECFLOAT16 VALUE '0.2345600', DF34 TYPE DECFLOAT34 VALUE '100.2001234', RESULT TYPE DFP_ROW. IF SY-DBSYS(3) <> 'DB4'. WRITE: / 'Native SQL demo is specific to DB2 for IBM i'. WRITE: / 'Skipped native SQL demo'. ELSE. *----------------------------------------------------------------------* * create a table with decfloat columns *----------------------------------------------------------------------* TRY. WRITE: / 'Creating table with decfloat columns: '. EXEC SQL. CREATE TABLE Z_TEST_DECFTAB (I INT NOT NULL WITH DEFAULT, DECF16 DECFLOAT (16) NOT NULL WITH DEFAULT, DECF34 DECFLOAT (34) NOT NULL WITH DEFAULT) ENDEXEC. WRITE ICON_GREEN_LIGHT. *----------------------------------------------------------------------* * insert decfloat data to the table *----------------------------------------------------------------------* WRITE: / 'Inserting data into table: '. EXEC SQL. INSERT INTO Z_TEST_DECFTAB (I, DECF16, DECF34) VALUES(:I, :DF16, :DF34) ENDEXEC. WRITE ICON_GREEN_LIGHT. *----------------------------------------------------------------------* * get decfloat data from the table *----------------------------------------------------------------------* WRITE: / 'Reading data from table: '. EXEC SQL. SELECT i, DECF16, DECF34 FROM Z_TEST_DECFTAB INTO :RESULT ORDER BY I ENDEXEC. WRITE: 'I:', RESULT-I, 'DECF16:', RESULT-DF16, 'DECF34', RESULT-DF34, ICON_GREEN_LIGHT. *----------------------------------------------------------------------* * calculations with decfloat data inside the database *----------------------------------------------------------------------* WRITE: / 'Calculating with DFP data inside the database '. DO 10 TIMES. I = I + 1. EXEC SQL. INSERT INTO Z_TEST_DECFTAB (I, DECF16, DECF34) VALUES (:I, '0.2', :DF34) ENDEXEC. ENDDO. EXEC SQL. SELECT SUM(DECF16) FROM Z_TEST_DECFTAB INTO :DF16 WHERE (DECF34 - DECF16) > 100. ENDEXEC. WRITE: '(Sum of 10 decfloat values of 0.2): ', DF16, ICON_GREEN_LIGHT. *----------------------------------------------------------------------* * drop table with decfloat columns *----------------------------------------------------------------------* WRITE: / 'Dropping table: '. EXEC SQL. DROP TABLE Z_TEST_DECFTAB ENDEXEC. WRITE ICON_GREEN_LIGHT. CATCH CX_SY_NATIVE_SQL_ERROR INTO EXC_REF. ROLLBACK WORK. WRITE ICON_RED_LIGHT. WRITE: / 'SQL-Error ', EXC_REF->SQLCODE, EXC_REF->SQLMSG. MESSAGE 'SQL-Error' TYPE 'I'. ENDTRY. ENDIF. "DB/OS release check *----------------------------------------------------------------------* * calculations with decfloat variables *----------------------------------------------------------------------* SKIP. ULINE. WRITE: / 'Comparison of float with decfloat variables'. WRITE: / 'Calculate sum 0.2 + 0.2 + ... + 0.2 and product 10 * 0.2'. ULINE. DATA: PRODUCT TYPE F, SUM TYPE F, PRODUCT_DFP TYPE DECFLOAT16, SUM_DFP TYPE DECFLOAT16. PRODUCT = '0.2' * 10. DO 10 TIMES. SUM = SUM + '0.2' . ENDDO. WRITE: / 'With data type float: sum = ', SUM, '; product = ', PRODUCT. IF SUM <> PRODUCT. WRITE ICON_YELLOW_LIGHT. ELSE. WRITE ICON_GREEN_LIGHT. ENDIF. PRODUCT_DFP = '0.2' * 10. DO 10 TIMES. SUM_DFP = SUM_DFP + '0.2' . ENDDO. WRITE: / 'With data type decfloat16: sum = ', SUM_DFP, '; product = ', PRODUCT_DFP. IF SUM_DFP <> PRODUCT_DFP. WRITE ICON_YELLOW_LIGHT. ELSE. WRITE ICON_GREEN_LIGHT. ENDIF.

In this issue of the SAP on IBM i SAP on IBM DB2 for i - News from Development Blog I would like to focus on performance improvements. In January a whitepaper called SAP on IBM i upgrade performance was released. You might have seen the announcement on the SAP on DB2 for i here in the SDN. But perhaps you just thought "Interesting, but I'm not about to upgrade, I'll read it when I plan an upgrade in the future." Well, you might want to think again. The improvements were made to improve upgrade performance but you can take advantage of them in other parts of system administration too. So I would like to give you a short overview:

On top of the R3trans improvement that was already covered in an SAP on DB2 for IBM i - speed up your imports, the white paper describes more developments that will also speed up typical administration and maintenance tasks while running an SAP system.

The following list shows the improvements and to which tasks they apply to. Please refer to the white paper for detailed information about each of the improvements and how to implement them.

  • R3trans improvements for transport tasks:
    • Parallel feature (white paper topic 'Modification Import'):
      Starting with R3trans patch level 172 for Netweaver release 7.00, the R3trans comes with a new feature that allows parallel import of transport packages. This applies to Support Packages as well as to language imports and custom development transports. Besides the minimum R3trans patch level the feature requires a minimum Support Package level of SAP_BASIS 15 or SPAM/SAINT level 32. If these prerequisites are fulfilled, the feature can be activated within transaction STMS in the transport tool configuration of you transport domain controller by adding the ‘parallel’ parameter. All STMS initiated R3trans jobs will use this setting then.
      To activate the feature for Support Packages and Add-On installations you need to have a minimum SPAM/SAINT level of 35. The feature is activated via menu Extras -> Settings via either SPAM or SAINT. We recommend a value of 8 for “Number of parallel processes per R3trans”.
       
    • Database interface improvement (topic 'Shadow Import Phase SHADOW_IMPORT_INC'):
      If you haven't patched your R3trans as described in the earlier blog entry "Speeding up Imports" we highly recommend doing so. The improvement is available for all Netweaver releases starting with 4.6C.
  • Database performance after system copy or codepage conversion (topic 'Database Optimizer Statistic Generation'):
    The tool described in the white paper that helps to improve initial database response times after the upgrade also can be used to improve response times after a codepage conversion or system copy. When performing a database codepage conversion or a system copy with export/import method, database statistics are lost. The missing statistics cause initial slow response times until the database generated statistics on its own. The tool requests statistic generation from the database based on information collected on the pre converted or copy source system. For more details have a look into the white paper and SAP Note 1264859.
  • Runtime performance improvements (topic 'Archiving and reorganizing database tables'):
    Archiving data and reorganizing database tables from time to time will have a positive impact on your system's response times. Both tasks together are reducing physical table sizes. Access to smaller tables is faster, online backup runtimes for the tables are shorter and moving archived data from hard disks to a tape library can save you costs.

This edition of the SAP on IBM DB2 for i - News from Development blog intends to give you a short heads up regarding some new options for Java on IBM i with SAP Netweaver 2004 and 7.0. These options were triggered and facilitated with introduction of the IBM Technology for Java (IT4J) JDK 1.4.2 64-bit.

IT4J 1.4.2 64-bit is available from IBM since October 2008 with IBM i 6.1 and it is supported by SAP for all products based on SAP Netweaver 2004 and SAP Netweaver 7.0 starting from 12/01/2008. All subsequent product deliverables of SAP on IBM i 6.1 based on SAP Netweaver 2004 and SAP Netweaver 7.0 will utilize IT4J 1.4.2 64-bit as their default Java technology.

Based on our positive experience described below we also recommend to switch systems that were installed with already delivered software packages from Classic VM to IT4J.

Jumping on this JVM means aligning to IBM's overall Java strategy, and taking advantage of any further development. Note that IBM will not even provide Classic VM in any OS release higher than IBM i 6.1.

Installation

The new JVM can simply be installed as option 13 of license program 5761JV1 on IBM i 6.1. The few details to be known can be found in the most recent Information APAR II14362.

Once it is installed you can make interactive use of IT4J by setting environment variable JAVA_HOME to /QOpenSys/QIBM/ProdData/JavaVM/jdk14/64bit. Running the CONFIGJVM tool (see below) for the conversion of your SAP system initializes your administration users' environment automatically for use of IT4J.

Performance

According to IBM and to our own lab exerience IT4J gives two major improvements for you. First, it shows a significantly lower resource consumption in terms of memory footprint and CPU utilization. On the other hand we observe an obvious performance benefit. Therefore, using IT4J should enable you to save resources and cut down expenses regarding hardware.

This is also experienced and confirmed by our first customers having started to utilize IT4J during the pilot phase.

Our pilot customers reported that 'To run our SAP Java workload we are now using IBMs new IT4J JVM, which is even more efficient than IBM's previous IBM i Classic JVM. The IT4J JVM runs faster, while needing less CPU and memory resources.'

The following figures are taken from an Enterprise Portal workload. They are given to confirm the above statements, knowing that it is hard to extrapolate from lab measurements to your particular workload. You see a comparison of CPU utilization, first.

Below an average view of response times for certain activities is shown.


New support tool CONFIGJVM

One might be concerned by the need of reconfiguring a J2EE engine for use of a new VM with all its new and specific parameters. Therefore, SAP developed a tool that is supposed to do this sophisticated job for you. Being installed with patches for SAPJ2EE (#35 in 6.40, #41 in 7.00) and MENUS (#2 in each release) or with coming stack kernels, CONFIGJVM is fully integrated into the SAP kernel and can be reached and utilized via menu options:

You start from menu R3MAIN and choose options
7. "Define or Change SAP", followed by
4. "SAP Java Stack"
to end up with menu CONFIGJVM:

The switch is a simple as that:

  • Run a preview and check in the logs if you like the changes.
  • Stop your system.
  • Run the switch (apply).
  • Restart your system.

Jürgen Kohrell, Solution Architect from the consulting partner basycs GmbH regarding the switch procedure: "Moving from the IBM 'Classic' Java engine to the new IT4J engine was really quick. The conversion was easy to handle and only took less than an 1 hour."

In addition to support the switch from Classic VM to IT4J this tool is capable of and should be used for checking parametrization of your system with either JVM and for applying default settings with a certain range of variability.

Memory Analyzer Tool

When being published for the first time the Eclipse Memory Analyser Tool (MAT) gained pretty high attention in the Java community. This tool allows to analyze huge heaps as they evolve in an productive environment. MAT can understand system dumps that are written by IT4J 1.4.2 SR12 and later. This is a major step forward in terms of supportability of the Java stack on IBM i and other IBM platforms.

Note that running your system with IT4J is a mandatory prerequisite for using this tool.


Sources of information

IBM information:

Note regarding IT4J and its configuration:

Notes describing CONFIGJVM and it's use:

MAT information:
https://wiki.sdn.sap.com/wiki/display/Java/Java+Memory+Analysis
http://www.eclipse.org/mat/
http://www.ibm.com/developerworks/java/jdk/tools/mat.html


Feedback

As this is new technology, and we want to continuously improve we encourage you to share your own experience with us by commenting on this Blog.

News from Development - August 2008

In the first edition of this blog I have given an overview about existing support resources available in the SDN. In this issue I would like to present a recent development that can increase performance of several maintenance tasks. If you are an administrator of an SAP system running on IBM DB2 for i the following information may come in handy.

One tool that is used in many maintenance tasks is R3trans. This program does all the transports between SAP systems. It is called when you transport some custom developments in your system landscape but it is also called when importing support packages. Importing languages or Add-Ons into your system is another situation where R3trans is used. Installing a new enhancement package requires a lot of transporting also and the biggest amount of transports have to be processed during upgrades. And in all these cases performance is key. Downtimes have to be minimized and imports and upgrades should be as fast as possible.

Since these performance aspects are of high importance, members of the IBM/SAP porting team have analyzed the R3trans program to find ways to improve it. During imports R3trans executes a huge amount of SQL SELECT statements. Taking a closer look at those statements the porting team was able to modify them in a way that the IBM DB2 for i database engine can use full advantage of its optimization routines. Therefore the database processing time for those statements went down significantly.

Tests on our internal systems showed a remarkable performance gain. I would like to present a language import as an example. Note that the example is showing the import duration of a single language package only. A language import consists out of several packages but the overall improvement in the language import duration is comparable.

 

You can see that the import time went down from more than 1:06 hours to less than 6 minutes. We got results from one customer who used the recent version of R3trans that support package import was down to a third. Of course you cannot expect such big improvements in all situations where R3trans is used, upgrade duration for example is affected by a lot of other processes and R3trans is mainly used during uptime. But during uptime R3trans is used in some long running phases and in these phases we have seen runtime going down by a factor of two.

To get advantage of this gain you only need to use a recent version of R3trans which you can download from the SAP Service Marketplace. The improvements have been introduced with patch level 170. After installation of the new R3trans version you do not have to change any configuration. All tasks handled by R3trans will run faster.

Note that this improvement has currently been added to the 7.00 release of R3trans only, other releases will follow. So stay tuned as I will keep you informed in this blog.

For more information also see SAP Notes 1174931 and 1232017.

This blog might be interesting for you if you are running SAP on IBM DB2 for i. If you have never heard about IBM i, perhaps you know the operating system and the integrated database under one of its former names like OS/400 or i5/OS. SAP and IBM formed a joint team to enable SAP's products to run on IBM i more than 10 years ago and nowadays this joint team is based at SAP's central location in Germany and in Rochester, Minnesota where IBM's development center for IBM i is located.

In the development and support team we see topics from time to time that might interest users of SAP on IBM i. Therefore we decided to start a blog series with news from the development team. We would like to present some background information, give some configuration advice and establish a direct contact between users and development.

In this first edition of the news from development blog I would like to give some ideas about how to find relevant information here in the SDN. If you have ideas about future topics feel free to make a comment to this blog. I have a list of future topics but if you have a special interest in some topic we may change the schedule.

Ok, now let's start with the question of "How do I find information useful for me as an SAP on IBM DB2 for i administrator"? The central web resource you should have bookmarked in your web browser is SAP on DB2 for i. This page is our central community home page from where a lot of resources are linked.

By the way... if you are wondering why we use DB4 as an alias for this web page, then you might look into this IBM DB2: 'Who is who' in the SAP environment. In short: DB4 is the ABAP name of DB2 for IBM i. If you want to know if you are running on DB2 for i you can check the value of sy-dbsys(3) in ABAP. If the value is DB4 you are fine. If it is something different you should think about migrating to this database :-)

Back to our community home page: In the upper part of the page you will see up to four small features. Here we announce recent whitepapers, articles, redbooks, certifications, benchmark results and much more. Have a look!

On the right part of the page you see links to some of the SDN Expert Forums. I would like to highlight our SAP on IBM i forum. This is the place where you can discuss with a lot of experts. If you have not yet participated in this forum, feel free to join us. In the last two years this online community has grown a lot. There are a lot of users and consultants active in this forum and many of the developers (both IBM and SAP) are participating too. But I would like to remind everyone that this is a forum and not an official support channel. This means everyone is helping voluntarily and you cannot demand to get an answer to every question. Some issues can only be solved by SAP or IBM support using classical support channels. And it means that you should not only ask questions but also help others if you can. Beside the forums there are links to the wiki and some blog areas that might be interesting.

But what makes that community home page something that should be in your bookmark list is the lower part of the page. There you can see an area named SAP on DB2 for i5/OS Knowledge Center. It is basically a collection of useful resources inside and outside the SDN. In the section Books you will find links to redbooks by IBM. If you don't know them yet you should definitely have a look at  them. They are a great source of knowledge for system administrators. Then there is a section Key Topics. It looks kind of small and unimportant but behind the links you will find web pages focused on special topics of system administration. SAP on IBM eServer iSeries: Installation and SAP on IBM eServer iSeries: Upgrademainly present a quick access to the relevant SAP documentation and present some additional information. The page SAP on IBM DB2 for i: Selected Support Resources is a collection of links and SAP Notes provided by our support team. And then there is a link to the SAP on IBM DB2 for i: Database Interface page. You will find a SAP on i5/OS - Database Interface Notes there. If you are facing an issue with something related to the database you should have a look there. Thinking about using database hints? You will find the relevant SAP Notes on that page. Unsure about how to analyze a database error? Find some SAP Notes describing it there. Beside that SAP Note collection we have made a SAP on DB2 for i5/OS - Profile Parameters that are special for running SAP on IBM DB2 for i.

If you look at the above mentioned lists of SAP Notes you will see that many of them start with the term iSeries in their title. And the older ones often start with AS/400. When searching for SAP Notes you should be aware that the titles of SAP Notes are not updated when the database, operating system or server names are renamed by IBM. So using a very new name for searching might not give you all relevant results. And as the recent name IBM i (and the last one System i) are not very search engine friendly many of the new IBM i specific SAP Notes still get an "iSeries" in their title.

Feel free to give feedback to this first issue of the news from development blog either here or in the SAP on IBM i forum.

Actions

Filter Blog

By author: By date:
By tag: