A method, apparatus, and computer instructions for programmatically generating synthetic transactions to monitor performance and availability of a Web application. The mechanism of the present invention may be implemented as a Java 2 Platform Enterprise Edition (J2EE) transaction, wherein the J2EE application is instrumented with just-in-time-instrumentation (JITI). A JITI probe determines if a customer request object contains a cookie. If not, the JITI probe inserts a cookie into the response object. The cookie is used to track URIs visited by the customer. An algorithm is used to identify the baseline customer transaction path based on the URIs in the cookie. All baseline customer transaction paths for all customers are then correlated to form a unique transaction, wherein the unique transaction comprises the most common tasks performed in the Web application. The Web application may then be monitored by programmatically recording and scheduling playback of the unique transaction.
Drawings
Claims19
A method for programmatically generating synthetic transactions for use in monitoring performance and availability of a Web application, comprising:
responsive to a determination that a request object does not contain a cookie, dynamically inserting a cookie into a response object, wherein the cookie is used to track uniform resource identifiers visited by a customer;
identifying a baseline customer transaction path of the Web application based on the uniform resource identifiers visited by a customer, in the cookie;
correlating the baseline customer transaction path with baseline transaction paths of other customers to form a global transaction path;
and
generating a unique synthetic transaction from the global transaction path, wherein the unique synthetic transaction comprises most common tasks performed in the Web application.
22 Apr 2028Estimated · howhide20 years from earliest known nonprovisional domestic filing plus recorded patent term adjustment, including 1,286 days of adjustment. Maintenance-fee lapses, terminal disclaimers and statutory extensions have not been checked. The continuity chain may be incomplete; this is not an enforceability determination.
#The present invention relates generally to an improved data processing system. In particular, the present invention relates to a method, apparatus, and computer instructions for programmatically generating synthetic transactions to monitor performance and availability of a Web application.
#The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
#FIG. 1 is an exemplary diagram of a distributed data processing system in which the present invention may be implemented;
#FIG. 2 is an exemplary diagram of a server computing device which may be used to send transactions to elements of the present invention;
Detailed description4,047 words
#With reference now to the figures, FIG. 1 depicts a pictorial representation of a network of data processing systems in which the present invention may be implemented. Network data processing system 100 is a network of computers in which the present invention may be implemented. Network data processing system 100 contains a network 102, which is the medium used to provide communications links between various devices and computers connected together within network data processing system 100. Network 102 may include connections, such as wire, wireless communication links, or fiber optic cables.
#In the depicted example, server 104 is connected to network 102 along with storage unit 106. In addition, clients 108, 110, and 112 are connected to network 102. These clients 108, 110, and 112 may be, for example, personal computers or network computers. In the depicted example, server 104 provides data, such as boot files, operating system images, and applications to clients 108-112. Clients 108, 110, and 112 are clients to server 104. Network data processing system 100 may include additional servers, clients, and other devices not shown. In the depicted example, network data processing system 100 is the Internet with network 102 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages. Of course, network data processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN). FIG. 1 is intended as an example, and not as an architectural limitation for the present invention.
#Referring to FIG. 2, a block diagram of a data processing system that may be implemented as a server, such as server 104 in FIG. 1, is depicted in accordance with a preferred embodiment of the present invention. Data processing system 200 may be a symmetric multiprocessor (SMP) system including a plurality of processors 202 and 204 connected to system bus 206. Alternatively, a single processor system may be employed. Also connected to system bus 206 is memory controller/cache 208, which provides an interface to local memory 209. I/O bus bridge 210 is connected to system bus 206 and provides an interface to I/O bus 212. Memory controller/cache 208 and I/O bus bridge 210 may be integrated as depicted.