研究、分享我学习零售业SAP的历程
------------打造中国第一个零售SAP博客

Main Tools

Transactions

SXMB_MONI

SXMB_ADMIN

SXI_CACHE

SICF

SUIM

SU01

SM59

SM58

PFCG

Integration Builder: Design/Configuration

Runtime Workbench

Exchange Profile

Visual Administrator

Analysis

The following figure gives you an overview of the analysis process:

clip_image001

1. Check receiver data

...

Log on to the receiver system and call monitoring transaction SXMB_MONI.

Choose Technical Monitor for Processed XML messages.

Define the selection criteria as appropriate to reduce the list of messages.

Double-click the first column of the problematic message to display the details.

Check the received application data. Is the content as expected?

clip_image002

2. Is an interface mapping executed on the Integration Server (IS)

1. Log on to the Integration Server system and call monitoring transaction SXMB_MONI.

Choose Technical Monitor for Processed XML messages.

Define the selection criteria as appropriate to reduce the list of messages.

Double-click the first column of the problematic message to display the details.

Check whether an interface mapping has been executed:

There are two ways to do this

Compare the payload before and after the mapping step (use the buttons Window 1 and Window 2).

clip_image003

Check the trace of the mapping step.
Three different outputs might occur. You can find the entry by searching (CTRL-F in the window) for the text CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV. The relevant entry is contained in the next Trace tag.

1. No interface mapping is necessary. In this case, the trace contains the message: No mapping required.

clip_image004

1. An interface mapping is executed. In this case the trace contains the key information (name and namespace) of the executed interface mapping.

clip_image005

1. An interface mapping is necessary but is not available in the cache. In this case, the trace would contain the following entry: Interface Mapping XY is not present in the runtime cache.

3. Should an interface mapping have been executed according to the configuration

If you have analyzed the trace as described in section 2 with the result that an interface mapping is necessary but not executed, the answer is clear – yes. Otherwise you have to perform the following steps to get the information:

From the details of the message, you can access the information about the sender and receiver.

clip_image006

1. Log on to the Integration Directory.

Use the navigation tree on the Objects tab or the query to get the interface determination used for the message.

clip_image007

Open the interface determination (with a double-click) and check whether an interface mapping is defined.

clip_image008

4. Check used interface mapping version

1. Open the interface determination in the Integration Directory (see section 3, for example).

clip_image008[1]

Start the Integration Repository and open the interface mapping referenced by the interface determination (name, namespace and software component version are given).

clip_image009

When you try to open the interface determination, an exception dialog may be displayed stating that the communication to the REPOSITORY is interrupted. After you close this dialog, the object editor does not show the name of the software component version but only a GUID. In this case, you can go on with number 8 in the flow chart, performing a check of the communication between Integration Repository, Integration Directory and Integration Server. You could also continue but then have to use the query in the Integration Repository to find the interface mapping. Start the query in the Integration Repository and choose Interface Mapping as the object type, and All Software Component Versions as the context, and specify the name and namespace as attributes. If the result contains more than one object - that is, with different software component versions - you have to check their GUIDs (open them from the navigation tree and check the entry on the Key tab – see below).

Use the navigation tree starting with the software component (version), selecting the namespace.
If the namespace is not visible, open the Basis Objects node. Look at the namespaces listed there. This Basis Objects node contains the namespaces of the software component versions the actual one is based on.

From the correct namespace, navigate to Mapping Objects ® Interface Mappings.
The interface mapping should be present there.

To check the version, open the software component object from the navigation tree and choose the Key tab. Look at the entry GUID.

clip_image010

Compare the information about the name, namespace and GUID of the software component version with that used by the Integration Server.
Start transaction SXI_CACHE.
From the navigation tree, select the interface determination and double-click on it.

clip_image011

Compare the version ID field with the software component version of the Repository and map Name/map Namespace field with the information stored in the Directory. Any difference indicates that the cache is not up-to-date and, therefore, that there is an incorrect version of the interface mapping.

5. Check used mapping program version

1. Open the interface mapping in the Repository (see section 4).

Make sure that the object is in status Active (see status information in the right corner of the editor or use the I-button). If it is in status Being processed, you are dealing with a version that is part of your change list but not active, that is, not relevant for the cache (the same holds for the mapping itself).

Navigate to the mapping program(s) (by double-clicking them).

clip_image012

Different types of mappings are possible.

Open the Mapping Program with a double-click.

clip_image013

In the new editor, choose the I button to display the date of the last change (Changed on).

clip_image014

To check the version of the mapping used on the Integration Server, start the Runtime Workbench and choose Cache-Monitoring. As the cache type, choose Search Mapping Programs and fill in the search criteria for the software component version and the mapping program name (we recommend you use the input help as the mapping program name has a special syntax).

clip_image015

Compare the two Changed on dates – in other words, check whether the cache was updated after the last time the mapping changed. If this is not the case, the cache is not the correct version.

6. Check cache notification status

The starting point is that the cache on the Integration Server is not up to date. An interface determination, interface mapping or mapping program is missing or not present in the correct version.

For the upcoming analysis it is helpful if information about the user who submitted the relevant objects and when this was done is available. You can find some hints by opening the relevant objects in the Integration Directory/Repository and clicking on the I pushbutton. This displays information about the last changes. The object ID is also of interest.

1. Start the Integration Repository.

Choose Environment ® Cache notification.

Look at the entries for the relevant user and date.

clip_image016

If the notification failed (indicated by the icon), there is a problem with the Repository -> Directory communication.

If all seems to be OK in the Repository, start the Integration Directory.

Choose Environment ® Cache notification.

Look at the entries for the relevant cache instance, user and date.

clip_image017

Check the notification status: green is OK, red indicates an error situation. In this case, the communication Directory -> Integration Server does not work properly.

7. Check cache update status

1. Perform the steps as described in section 6.

In this case, check the Cache update column. Green is OK, red indicates an error situation. In the case of an error, you have to switch to the Problems tab.

No entries

If there are no entries in the list, the communication between the Integration Server and the Directory may have failed.
Start transaction SXI_CACHE on the Integration Server and look at the status.

clip_image018

Double-click on the status to display more details.

clip_image019

Entries present

clip_image020

The list displays all objects that could not be updated. Search for the interface determination, interface mapping, or mapping program that caused the problem on the Integration Server (wrong version/not present) by its object ID (this can be found in the trace on the Integration Server or using the I pushbutton in the Repository/Directory). Double-clicking on the entry displays the error message that has to be analyzed (and should also be present in the logs).

In both cases, the update may have failed due to connection problems between the Integration Server and the Directory or the Directory and the Repository.

If there is no information in the Directory or on the Integration Server, you have to investigate the XI logs.

8. Check Directory->Integration Server and Repository-> Directory communication

Check Directory->Integration Server communication:

The notification of the cache on the Integration Server may have failed due to connection problems caused because the HTTP service is not running on the Integration Server.

1. Start transaction SICF.

Choose default_host ® sap ® bc ® ping (connection test) and choose Test service in the context menu of the entry.

clip_image021

A browser should be started requesting a logon (you may have to close all browsers). If this does not happen, this could be caused by a problem with the http service and has to be analyzed.

For the logon use the Directory service user (see section Check service user name and password). If the user and password are correct, a HTML page is returned containing the following message: Server reached successfully. If you get an authorization error, you have to check the user and password for the HTTP connection. Perform the check of the user name and password for the Directory service user by retyping the values as described in section Check service user name and password.

Repeat the connection test in transaction SICF and check if it works now.

Check Repository->Directory communication:

For Mapping objects edited in the Integration Repository, the initial notification is started from the Integration Repository. Therefore the Repository -> Directory communication must also be checked.

1. Start a Web browser and type in the following URL: http://<hostname>:<port>/dir/hmidiag/ext?method=info

(hostname and port could, for example, be extracted from the Exchange Infrastructure start page).

A logon request should come up. If this is not the case, the Repository (or possibly the whole J2EE) is not running and has to be started. Perform the steps as described in section Check Http-Service and status of the applications of the appendix.

If the logon pop-up appears, use the Integration Repository Service user to log on (see section Check service user name and password).

If the user and password are correct in both cases, a HTML page is returned containing information about the HMI service.

clip_image022

If you get an authorization error, you have to check the user and password for the HTTP connection.

You check the user name and password for the Integration Repository service user by retyping the values as described in section Check service user name and password.

9. Check Integration Server -> Directory and Directory -> Repository communication

The update of the cache on the Integration Server may have failed due to connection problems when trying to reach the Directory and/or the Repository and/or the Java stack of the Integration Server (Mapping Runtime). First check whether the Directory/Repository/mapping runtime is running (and the HTTP service).

Start a Web browser and type in the following URL:

1. Directory:

http://<hostname>:<port>/dir/hmidiag/ext?method=info

2. Repository:

http://<hostname>:<port>/rep/hmidiag/ext?method=info

3. Mapping Runtime:

http://<hostname>:<port>/run/hmidiag/ext?method=info

(hostname and port could be extracted from the Exchange Infrastructure start page, for example).

A logon request should appear. If this is not the case, the Directory/Repository/mapping runtime (or possibly the whole J2EE) is not running and has to be started. Perform the steps as described in section Check Http-Service and status of the applications of the appendix.

If the logon pop-up appears:

1. For the Directory URL use the Integration Server service user

2. For the Repository URL use the Directory Service user

3. For the Mapping Runtime URL use the Directory Service user

to log on (see section Check service user name and password of the appendix).

If the user and password are correct in all cases, a HTML page is returned containing information about the HMI service.

clip_image023

If you get an authorization error, you have to the check user and password for the HTTP connection.

Check the user name and password for the Integration Server service user/Directory service user by retyping the values as described in section Check service user name and password of the appendix.

Repeat the connection test with the URLs.

10. Retry the cache update and resend the message

1. To start a new cache update you have to open the problematic interface determination, interface mapping and/or mapping program in the Directory/Repository.

Change to edit mode and save the same version, that is, with no changes of the content (to activate the save pushbutton just add and remove a blank in the short description).

Submit the object and resend your message if the cache update has been made.

If you think that not more than one object is affected by the cache notification/update problems, try a full cache refresh (this will take a while!).

1. Start transaction SXI_CACHE.

From the context menu XI Runtime Cache choose Start Complete Cache Refresh.

Call transaction SM58 to check the status of the refresh process.

The cache update is finished if no entry for function module SAI_CACHE3_REFRESH_BACKROUND is present.

clip_image024

11. Analyze XI logs

1. Start the Visual Administrator or the Log Viewer.

Choose Applications ® com.sap.xi ® xi.log.

Additional information:

1. Check service user name and password

Different connections are important for the cache refresh. The applications involved are: Directory, Repository and Integration Server. For each of them there is a service user with a special user role:

Applications and user roles

Application

User role

Directory

SAP_XI_ID_SERV_USER

Integration Server

SAP_XI_IS_SERV_USER

Repository

SAP_XI_IR_SERV_USER

The following figure gives a short overview according to the communication for notification/update:

clip_image025

The information about the user and password is read from the exchange profile in the case of the Directory and Repository. The Integration Server uses a SM59 destination (INTEGRATION_DIRECTORY_HMI).

1. First you have to get the name of the user who is in the required role.
For the Directory/Repository, you have to call transaction SUIM in the SAP system that is used for the user management (the default should be the client of the Integration Server). If you are not sure, you can check it in the Visual Administrator. Choose Server ® Service ® UME Provider and look at the properties:

1. ume.r3.connection.master.client

1. ume.r3.connection.master.ashost

clip_image026

In transaction SUIM, choose User Information System ® User ® User by Complex Selection Criteria ® By Role.

clip_image027

Type in the service user role: SAP_XI_ID_SERV_USER/SAP_XI_IS_SERV_USER/ SAP_XI_IR_SERV_USER

A list of user name(s) is displayed (the name is probably XIDIRUSER/XIISUSER/XIREPUSER).

Call transaction SU01 to check whether the user is locked. The Logon Data tab displays the information about the lock status:

clip_image028

You can unlock the user on the initial screen by choosing Lock/unlock. You also have to check whether the service user has the correct user type: SERVICE (not Dialog)!

Check whether the profiles for the user have been generated. Choose the Profiles tab:

clip_image029

If the profile for the role is not generated, you have to call transaction PFCG. Select the corresponding role SAP_XI_ID_SERV_USER/ SAP_XI_IS_SERV_USER/ SAP_XI_IR_SERV_USER and display the definition. Choose tab Authorizations and check the status of the profile generation:

clip_image030

If the generation is incomplete, change to edit mode and delete it first. To generate the profile, choose Display Authorization Data on the same tab. Then choose the red/white ball icon and start the generation:

clip_image031

As final step after the successful generation, choose the User tab (on the previous screen) and perform a User comparison.

clip_image032

At this point, the user name for the service users should be clear and the users should not be locked. In addition the role profiles should be generated successfully. Now you have to check the caller side entries: Exchange Profile and SM59 destination.

Exchange Profile:

1. Go to the start page of the Exchange Infrastructure and click on the Administration link in the navigation area.

You have to log on with an XI administrator user.
Choose Administration of Properties ® Exchange Profile.

Navigate to IntegrationBuilder ® IntegrationBuilder.Directory ® com.sap.aii.Directory.serviceuser.name and .pwd or IntegrationBuilder ® IntegrationBuilder.Repository ® com.sap.aii.Repository.serviceuser.name and .pwd

Check the name of the service user and retype the password that is stored in the SAP user management (if you are not sure about the password, retype it also in transaction SU01). Afterwards choose Save.

clip_image033

Change back to the XI administration pages and choose Administration of Properties ® AII Properties and choose the Refresh button in the content area (this reads the properties from the Exchange Profile).

clip_image034

SM59 destination:

1. Call transaction SM59.

Choose RFC Destinations ® HTTP connections to ABAP system ® INTEGRATION_DIRECTORY_HMI.

From the context menu, choose Change.

clip_image035

On the Technical Settings tab you can check the target host and port (they have to correspond to the ones of the Directory – check this, for example, on the start page URL of the Exchange Infrastructure).

Switch to the Logon/Security tab. Here you can see the name of the user and the password. Check the name of the Integration Server service user and retype the password that is stored in the SAP user management (if you are not sure about the password, retype it also in transaction SU01).

Afterwards choose Test Connection.

A HTTP return code 500 (Internal Server Error) is OK.

If you have retyped the passwords and you are not sure if you have changed them by this action, follow Note 721548 to adjust other destinations that are relevant.

2. Configuration of the trace level for transaction SXMB_MONI

1. Call transaction SXMB_ADMIN.

Choose Configuration ® Configuration Data (Integration Engine).

Choose RUNTIME for the category and then choose Specific Configuration.

clip_image036

Set parameter LOGGING to value 1 and parameter TRACE_LEVEL to value 3.

clip_image037

3. Check the HTTP Service and status of the applications

To check if the HTTP service and the applications are running, perform the following steps:

1. Start the Visual Administrator and check whether Server ® Services ® HTTP Provider is running. If not, start it using the context menu.

Choose the Cluster tab and then choose Server ® Services ® Deploy.

On the Runtime tab, choose Application at the bottom of the right window and check the status of sap.com/com.sap.xi.directory, sap.com/com.sap.xi.repository and sap.com/com.sap.xi.services.

If the application is not running, highlight it and start it by selecting Start Application on the right hand side.

clip_image038

posted on 2009-03-10 11:44  会东  阅读(1632)  评论(1编辑  收藏  举报