This document generally relates to systems and methods for use with process integration components. More specifically, this document relates methods and systems for performing a health check on a process integration component.
Enterprise resource planning (ERP) systems allow for the integration of internal and external management information across an entire organization, including financial/accounting, manufacturing, sales and service, customer relationship management, and the like. The purpose of ERP is to facilitate the flow of information between business functions inside the organization and management connections to outside entities. One commonly used component in an ERP system is a process integration (PI) component. The PI component coordinates how various process components exchange data with one another.
The present disclosure is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
The description that follows includes illustrative systems, methods, techniques, instruction sequences, and computing machine program products that embody illustrative embodiments. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide an understanding of various embodiments of the inventive subject matter. It will be evident, however, to those skilled in the art, that embodiments of the inventive subject matter may be practiced without these specific details. In general, well-known instruction instances, protocols, structures, and techniques have not been shown in detail.
While the following description will describe various embodiments related to an enterprise resource planning (ERP) system, one of ordinary skill in the art will recognize that the claims should not be limited to merely ERP embodiments, as the solution described herein could apply to other systems such as Customer Relationship Management (CRM) systems, Supplier Relationship Management systems (SRM), or any other system having a process integration (PI) component.
The PI component 200 may manage the interactions between multiple entities 214a-214d. These entities may include, for example, an application 214a operated by the same entity as the PI component 200, a third party application 214b operated by a different entity than the PI component 200, a marketplace/business partner 214c, and a third party middleware component 214a.
The system landscape directory 206 is a directory of available installable software and updated data about systems already installed.
The central monitoring component 208 provides monitoring of many, if not all, aspects of the system. Some of the aspects monitored may trigger events in the integration server 204.
When the PI component 200 is not operating properly or operating at reduced efficiency, business messages may not be processed, which creates a big problem for a customer. Any downtime in a business setting could potentially cause significant monetary losses. While customers could detect the issues on their own and report them, the time delay in doing so costs money.
In an example embodiment, an automated process is provided that performs various health checks on the PI component 200 to ensure that any major problems are detected early and often. This can help the customer reduce the downtime associated with such detected problems. Automatic execution of this health check may be performed periodically. Alerts for any detected problems (or just the results of the health check) can be delivered via email, for example. Additionally, automated troubleshooting steps can be performed to resolve many common issues, thus reducing or even eliminating the need for the customer to participate in fixing any problems. Furthermore, a complete log of checks and any troubleshooting steps can be maintained, which can be used by technical support in case of future or unresolved problems.
In an example embodiment, the automated process may be embodied as a PI scenario which reads input from an Extensible Markup Language (XML file). The input may include a list of checks to be executed, and the components against which to execute these checks. The PI scenario can execute one or more application programming interfaces (APIs) to determine a health status for various components, as described by the list of checks to be executed. After execution of the API; the PI scenario can send a notification email to a system administrator if any of the health checks fail. The frequency with which the PI scenario is repeated can be set so that the PI scenario is executed automatically at a specified frequency and sends early alerts for detected issues.
In an example embodiment, there are four general categories of checks that can be automatically executed. The first category involves checking the system landscape directory (SLD) connection, which can include performing several tests, including determining if remote function call (RFC) connections relevant to the SLD are functioning (these RFC connections may include, for example, SAPSLDAPI and LCRSAPRFC), determining if the server-access settings in particular APIs (such as SLDAPICUST) are correct, determining if it is possible to read data from the SLD and an exchange profile, and determining if the integration server has a business system defined.
At operation 410, it is determined if there is a statement “Function call terminated successfully” in a “Calling function LCR_GET_BS_DETAILS” section. At operation 412, it is determined if there is an http://<host>:500<sysnr>/sap/xi/engine?type=entry URL in the “Calling function LCR_GET_BS_DETAILS” section.
At operation 414, it is determined if there is a statement “RFC Ping successful” in a “Properties of RFC destination LCRSAPRFC” section.
At operation 416, it is determined if there is a statement “Function call terminated successfully” in a “Calling function EXCHANGE_PROFILE_GET_PARAMETER” section.
If any of these tests fail, then, at operation 418, the system administrator may be notified, for example, via email. As will be described later, however, in some embodiments automatic troubleshooting may take place.
Of course, these descriptions of statements and sections are merely illustrative and are not intended to be limiting. In other example embodiments, similar, but not identical, statements located in similar, but not identical, sections may be examined.
The second general category of checks involves checking message processing in the PI system, which can include performing tests for receiving exchange infrastructure (XI) messages from an XI monitor (e.g., SXI_MONI) and checking whether XI messages are being processed in the system. In this check, messages that have already been processed are extracted, and the system can then check the processing status of the most recent message to determine whether it has reached the integration engine.
The third general category of checks may involve basic technical checks for the PI system, which can include performing several tests, including checking whether an internet communication management (ICM) is active in the system, checking whether a web service runtime is operating properly, checking whether a basic configuration for process agent framework is available, and checking whether an XI cache update is working.
At operation 610, the system may call transaction se38 and execute the program SRT_ADMIN_CHECK. Transaction se38 calls an Advanced Business Application Programming (ABAP) editor and ASRT_ADMIN_CHECK runs a program for checking technical settings and returns a report. At operation 612, it may be determined if there are any errors with the web service runtime based on the results of the execution in operation 610.
At operation 614, it is determined whether a basic configuration for a process agent framework is available.
At operation 616, an SXI_CACHE transaction is called. SXI_CACHE shows the content of the cache. A cache refresh is then called at operation 618. At operation 620, it is determined if cache contents are up-to-date. If the contents of the cache are not up-to-date, then at operation 622 a system administrator may be alerted. If the contents of the cache are up-to-date, then the process may periodically repeat to operation 602.
The fourth general category of checks involves checking technical aspects of a user, which may include performing tests for checking whether a user is able to log into a system, and whether a set of roles is assigned to the user.
It should be noted that in the above flow diagrams, a step of alerting a system administrator is performed if any of the checks detect a problem. In some embodiments, however, either in addition to or in lieu of alerting a system administrator, automatic troubleshooting steps may be performed. The following are example automatic troubleshooting processes that can be performed for various checks.
At operation 820, it is determined if the ICM has any remaining buffer. This may be determined by checking whether all message passing interface (MPI) buffers have been used, perhaps by checking whether a parameter peak buffer usage reaches a parameter total #Mpi buffer. If there is no buffer remaining, then, at operation 822, the buffer size may be increased.
At operation 824, it is determined if a port can be found. A port is found if a port has been defined for this connection. If no port can be found, then the method 800 proceeds to operation 808. If a port can be found, then the method 800 proceeds to operation 826. At operation 826 it may be determined if a Secure Sockets Layer (SSL error) has occurred. If a port cannot be found or an SSL error has occurred, then the process may alert the system administrator at 808. If it is determined at operation 826 that no SSL error has occurred, then the method 800 ends.
At operation 910, it is determined if the error message indicates a problem with the event handler. If the event handler is active, events that occur in connection with web services messaging are processed. Cancelling sequences with a sequence monitor is based on the event handler operating properly. If the event handler is not operating properly, then sequences may be cancelled. If it is determined at operation 910 that there is a problem with the event handler, the method 900 proceeds to operation 912. At operation 912, it is determined whether the service destination of a client has been set correctly. This may be determined by, for example, calling a report (e.g., RSEHCONFIG) and checking to see if the value 0 is in the maximum allowed processes field. If it is determined that the destination has not been set correctly, method 900 proceeds to operation 914, where this value can be changed. After operation 914, method 900 ends.
Embodiments may also, for example, be deployed by Software-as-a-Service (SaaS), application service provider (ASP), or utility computing providers, in addition to being sold or licensed via traditional channels. The computer may be a server computer, a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), cellular telephone, or any processing device capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that device. Further, while only a single computer is illustrated, the term “computer” shall also be taken to include any collection of computers that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
The example computer processing system 1100 includes processor 1102 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), main memory 1104 and static memory 1106, which communicate with each other via bus 1108. The processing system 1100 may further include graphics display unit 1110 (e.g., a plasma display, a liquid crystal display (LCD) or a cathode ray tube (CRT)). The processing system 1100 also includes alphanumeric input device 1112 (e.g., a keyboard), a cursor control device 1114 (e.g., a mouse, touch screen, or the like), a storage unit 1116, a signal generation device 1118 (e.g., a speaker), and a network interface device 1120.
The storage unit 1116 includes machine-readable medium 1122 on which is stored one or more sets of instructions 1124 and data structures (e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. The instructions 1124 may also reside, completely or at least partially, within the main memory 1104 and/or within the processor 1102 during execution thereof by the processing system 1100, the main memory 1104 and the processor 1102 also constituting machine-readable, tangible media.
The instructions 1124 may further be transmitted or received over network 1126 via a network interface device 1120 utilizing any one of a number of well-known transfer protocols (e.g., HTTP).
While the machine-readable medium 1122 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions 1124. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the computer and that cause the computer to perform any one or more of the methodologies of the present application, or that is capable of storing, encoding or carrying data structures utilized by or associated with such a set of instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media.
While various implementations and exploitations are described, it will be understood that these embodiments are illustrative and that the scope of the claims is not limited to them. In general, techniques for maintaining consistency between data structures may be implemented with facilities consistent with any hardware system or hardware systems defined herein. Many variations, modifications, additions, and improvements are possible.
Plural instances may be provided for components, operations or structures described herein as a single instance. Finally, boundaries between various components, operations, and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within the scope of the claims. In general, structures and functionality presented as separate components in the exemplary configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the claims.
While the embodiments are described with reference to various implementations and exploitations, it will be understood that these embodiments are illustrative, and that the scope of claims provided below is not limited to the embodiments described herein. In general, the techniques described herein may be implemented with facilities consistent with any hardware system or hardware systems defined herein. Many variations, modifications, additions, and improvements are possible.
The term “machine readable medium” is used generally to refer to media such as main memory, secondary memory, removable storage, hard disks, flash memory, disk drive memory, CD-ROM and other forms of persistent memory. It should be noted that program storage devices, as may be used to describe storage devices containing executable computer code for operating various methods, shall not be construed to cover transitory subject matter, such as carrier waves or signals. “Program storage devices” and “machine-readable medium” are terms used generally to refer to media such as main memory, secondary memory, removable storage disks, hard disk drives, and other tangible storage devices or components.
Plural instances may be provided for components, operations, or structures described herein as a single instance. Finally, boundaries between various components, operations, and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within the scope of the claims. In general, structures and functionality presented as separate components in the exemplary configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the claims and their equivalents.