System, method, program, and system implementation method for transaction process logging
Summary by NHIP
Variable Logging System
The system logs transaction processes by varying recorded data amounts based on response times against service level agreements. A logging control unit selects policies from a table to direct a storage device, which includes high-order and low-order sections, to record logs accordingly.
Claim Score by NHIP
Abstract
A system is provided to log a transaction process performed based on a service level agreement concerning the response time of the transaction process. The system includes a logging policy table, a transaction process monitoring unit, and a storage device. The logging policy table records one or more logging policies defined to log a transaction process with a varying amount of log data based on a required response time specified in the service level agreement. The transaction process monitoring unit automatically monitors the response time of the transaction process. The storage device records a transaction process log. The system further includes a logging control unit. The logging control unit uses response time of a transaction process monitored by the transaction process monitoring unit to select one of the logging policies stored in the logging policy table. According to the selected logging policy, the logging control unit allows the storage device to record a log of the transaction process.

Term
Projected expiry 15 March 2028.
- Priority
- Filed
- Granted
- Today
- Projected expiry
20 claims: 4 independent, 16 dependent
- 1A system for performing logging of a transaction process performed based on a service level agreement concerning a response time of a transaction process, the system comprising:at least one computing device including: a logging policy table for recording at least one logging policy, the at least one logging policy defined so as to perform logging of a transaction process with a varying amount of log data, wherein the amount of log data recorded is determined based on a required response time specified in the service level agreement compared to the response time of the transaction process;a transaction process monitoring unit for automatically monitoring the response time of the transaction process;a storage device for recording a transaction process log;and a logging control unit for selecting one of the logging policies stored in the logging policy table based on the response time of the transaction process monitored by the transaction process monitoring unit and allowing the storage device to record a log of the transaction process in accordance with the selected logging policy.
- 16Broadest claimClaim Score 59, broad(NHIP)A method for performing logging of a transaction process performed based on a service level agreement concerning a response time of a transaction process, comprising:storing a logging policy table for recording at least one logging policy, the at least one logging policy defined so as to perform logging of a transaction process with a varying amount of log data, wherein the amount of log data recorded is determined based on a required response time specified in the service level agreement compared to the response time of the transaction process;automatically monitoring the response time of the transaction process;selecting one of the logging policies stored in the logging policy table, based on the response time of the transaction process monitored in the monitoring step;and allowing the storage device to record a log of the transaction process in accordance with the selected logging policy.
- 18A program product for performing logging of many transaction processes performed based on a service level agreement concerning a response time of a transaction process stored on a computer-readable storage medium, the program product comprising computer program code for causing a computer system to execute the steps of:storing a logging policy table for recording at least one logging policy, the at least one logging policy defined so as to perform logging of a transaction process with a varying amount of log data, wherein the amount of log data recorded is determined based on a required response time specified in the service level agreement compared to the response time of the transaction process;automatically monitoring the response time of the transaction process;selecting one of the logging policies stored in the logging policy table based on the response time of the transaction process monitored in the monitoring step;and allowing the storage device to record a log of the transaction process in accordance with the selected logging policy.
- 19A method for implementing a system for performing logging of a transaction process performed based on a service level agreement concerning a response time of a transaction process, comprising:installing a transaction process monitoring program that automatically monitors a response time of a transaction process on the system;installing a logging control program that allows a storage device to record a log of the transaction process in accordance with a logging policy selected based on a transaction process response time on the system;setting at least one logging policy defined so as to perform logging of a transaction process with a varying amount of log data, wherein the amount of log data recorded is determined based on a required response time specified in the service level agreement compared to the response time of the transaction process to a logging policy table;setting a reference destination of a logging policy table used by the installed logging control program;and establishing connection between the installed transaction process monitoring program and the installed logging control program so as to receive a response time of each transaction process.
Independent claims4
85 paragraphs in 5 sections, as filed
FIELD OF THE INVENTION
The present invention generally relates to an information processing technology. More specifically, the invention relates to a system, a method, a program, and a system implementation method for transaction process logging.
BACKGROUND ART
A company or the like (hereafter referred to as a user) using an information system for business purposes may use an outsourcing service for information system-related business. The purpose is to supplement technical capabilities concerning the information system-related business, ensure the scalability, reduce costs, and avoid an investment risk. In many cases, the user concludes a service level agreement (SLA) with a service provider. The service level agreement defines the quality of services supplied from the service provider.
The service level agreement defines requirements for the quality of various types of services. The requirements include the response time of a transaction in an information system, minimum throughput of a communication line, and an upper bound for information system unavailability time. Accordingly, it is very important for an outsourcing service operation to monitor the actual service quality of the information processing system and verify whether or not a service level is satisfied. To monitor the actual service quality of the information processing system and analyze a problem, the service provider performs collecting of log data for a transaction process (hereinafter, referred to as “logging”), during a period to provide an outsourcing service.
Japanese Unexamined Patent Publication (Kokai) No. 2005-92885 discloses an example of such information processing system. The system embodied in Japanese Unexamined Patent Publication (Kokai) No. 2005-92885 records transaction data in the central logging database to determine a current service level. The system uses a service level parameter based on the prepared service level agreement between a customer and the service provider to determine whether or not the current service level violates the guaranteed service level. The system is implemented to specify a cause if the required service level is not satisfied.
As another related art, Japanese Unexamined Patent Publication (Kokai) No. 5-89051 discloses the following logging technology. The technology measures response information by initiating a transaction from a terminal connected to a host. The technology outputs a result to a log file on the terminal. When the log file exceeds a specified size, the technology transmits log file information to the host.
As yet another related art, Japanese Unexamined Patent Publication (Kokai) No. 2001-350640 discloses the following technology for monitoring transaction performance degradation. Transaction performance degradation monitoring means periodically collects transaction process situations to monitor the performance degradation. If the performance degradation is detected, a status flag is set to indicate the performance degradation.
The transaction process response time is especially important among service items supplied from the service provider. The IBM Tivoli Monitoring for Transaction Performance product (see, e.g., “IBM Tivoli Monitoring for Transaction Performance: Administrator's Guide”, written by International Business Machines Corporation, issued in September 2004) provides the function to monitor the transaction process response time.
The system described in Japanese Unexamined Patent Publication (Kokai) No. 2005-92885 similarly collects transaction data irrespectively of transaction processes. When many items are to be logged, the system needs to process a large amount of transaction data. A system load increases accordingly and output processes concentrate on a storage device. This may delay the transaction process. Generally, an outsourcing service is provided for a long term (e.g., several years), causing a large amount of transaction data to be recorded. On the other hand, there may be a case of logging only a few items to decrease the amount of transaction data to be recorded. However, it may be difficult to acquire sufficient information needed to record the actual service quality and to analyze a problem.
The transaction process system performs many transaction processes. A log is recorded for each of these transaction processes. The contents of the log may vary with the response time of each transaction process. Specifically, it is highly possible that a problem occurs when the transaction process causes a long response time. That transaction necessitates many pieces of information to be recorded for later analysis of the problem. Conversely, a problem is not likely to occur when the transaction process causes a short response time. That transaction may necessitate minimal information to be recorded for later analysis of the possible problem.
SUMMARY OF THE INVENTION
Accordingly, the present invention provides a technique that dynamically changes the data amount of a log for a transaction process according to the response time of the transaction process based on logging policy. The logging policy determines which item should be logged. For example, the technique increases the data amount of log when the transaction process causes the long response time. The technique decreases the data amount of log when the transaction process causes the short response time.
It is therefore an object of the present invention to provide a system, a method, a program, and a system implementation method for transaction process logging capable of solving the above-mentioned problem.
A system for performing logging of a transaction process performed based on a service level agreement concerning a response time of a transaction process is provided. The system includes a logging policy table for recording one or more logging policies defined so as to perform logging of a transaction process with a varying amount of log data based on a required response time specified in the service level agreement, a transaction process monitoring unit for automatically monitoring the response time of the transaction process, and a storage device for recording a transaction process log. The system further includes a logging control unit for selecting one of the logging policies stored in the logging policy table based on the response time of the transaction process monitored by the transaction process monitoring unit and allowing the storage device to record a log of the transaction process in accordance with the selected logging policy. Preferably, the logging policy table records a logging policy for performing logging of a larger amount of data than that for a case where the response time of the transaction process is shorter than the required response time, if the response time of the transaction process is longer than the required response time.
The storage device may include a high-order storage and a low-order storage, and the logging control unit allows the low-order storage to record all or part of the log of the transaction process recorded in the high-order storage, according to the logging policy.
Also, the system may include a log analysis unit for extracting information needed for analyzing the system to perform a transaction process, based on the log recorded in the storage device. The log analysis unit can extract information needed for the analysis in consideration for a logging policy applied to each transaction process. The log analysis unit can transmit extracted information needed for the analysis to a user-operated client via a network.
While there has been described the overview of the invention as the system for performing logging of many transaction processes, the invention can be also understood as a method, and a program or a program product. For example, the program product can include a recording medium for storing the program or a medium for transmitting the program.
Further, the invention can be understood as a method for implementing a system for performing logging of a transaction process performed based on a service level agreement concerning a response time of a transaction process. The method includes the steps of: installing a transaction process monitoring program that automatically monitors a response time of a transaction process on the system, installing a logging control program that allows a storage device to record a log of the transaction process in accordance with a logging policy selected based on a transaction process response time on the system, and setting at least one logging policy defined so as to perform logging of a transaction process with a varying amount of log data based on a required response time specified in the service level agreement to a logging policy table. The method further includes the steps of setting a reference destination of a logging policy table used by the installed logging control program, and establishing connection between the installed transaction process monitoring program and the installed logging control program so as to receive a response time of each transaction process.
The method further includes the steps of presenting a log recorded in the storage device for providing information about revision of the service level agreement, changing the logging policy table based on a revised service level agreement, and setting the reference destination of the changed logging policy table used by the logging control program to the logging policy table.
By adopting these constitutions, it is possible to implement a system for performing logging of a transaction process performed based on a service level agreement, and even if the service level agreement is revised, the system can be correspondingly re-implemented.
The above-mentioned overview of the invention does not describe all the necessary features of the invention. It should be noted that a combination or a sub-combination of the constituent elements can be also considered the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will be described in further detail with reference to the accompanying drawings. Throughout the description of the embodiment, the same components are designated by the same reference numerals.
<figref idrefs="DRAWINGS">FIG. 1</figref> is a conceptual diagram exemplifying an online system according to an embodiment of the invention.
<figref idrefs="DRAWINGS">FIG. 2</figref> is a functional block diagram of an application server according to an embodiment of the invention.
<figref idrefs="DRAWINGS">FIG. 3</figref> shows an example of a logging policy table according to an embodiment of the invention.
<figref idrefs="DRAWINGS">FIG. 4</figref> shows an example of a transaction table according to an embodiment of the invention.
<figref idrefs="DRAWINGS">FIG. 5</figref> exemplifies the first half (log/trace information) of a full set of transaction process log according to an embodiment of the invention.
<figref idrefs="DRAWINGS">FIG. 6</figref> exemplifies the last half (memory dump information) of a full set of transaction process log according to an embodiment of the invention.
<figref idrefs="DRAWINGS">FIG. 7</figref> is a flowchart showing a flow of operations of an active transaction process system according to an embodiment of the invention.
<figref idrefs="DRAWINGS">FIG. 8</figref> is a flowchart showing a method of implementing the transaction process system according to an embodiment of the invention.
<figref idrefs="DRAWINGS">FIG. 9</figref> is a flowchart showing a method of re-implementing the transaction process system when a service level agreement according to an embodiment of the invention is revised.
<figref idrefs="DRAWINGS">FIG. 10</figref> exemplifies the hardware implementation of an information processing apparatus functioning as a client, an application server, and a database server according to an embodiment of the invention.
DETAILED DESCRIPTION OF THE INVENTION
The invention is capable of many different modes. Interpretation of the invention should not be limited to the description contents of an embodiment. It should be noted that means for solving the problems according to the invention do not require all combinations of features described in the embodiment.
The following disclosure is mainly directed to a method and a system. It is clearly understood by those skilled in the art that the invention can be embodied as a program or a program product available on a computer. Accordingly, the invention can be embodied as hardware, software, or a combination of both. The program can be recorded on any computer-readable media such as a hard disk, CD-ROM, optical storage, and magnetic storage.
<figref idrefs="DRAWINGS">FIG. 1</figref> is a conceptual diagram showing an example of an online system <b>100</b> as an embodiment of the invention. The online system <b>100</b> includes a client computer <b>120</b> and a transaction process system <b>150</b>. The client computer <b>120</b> is connected to the transaction process system <b>150</b> via a network <b>130</b>. The transaction process system <b>150</b> is provided in an outsourcing center. Further, the transaction process system <b>150</b> includes an application server <b>160</b> and a database server <b>170</b>.
A user <b>110</b> operates the client computer <b>120</b> to request a transaction process from the transaction process system <b>150</b>. A service provider <b>140</b> operates and manages the transaction process system <b>150</b>. The user <b>110</b> concludes a service level agreement <b>180</b> with the service provider <b>140</b>
The client <b>120</b> is a terminal connectable to the known Internet. A person skilled in the art can easily implement the client <b>120</b>. It is typical to connect the client <b>120</b> with the network <b>130</b> with mediation of an ISP (Internet Service Provider, not shown). The client <b>120</b> may constantly connect to the ISP using a leased line, LAN (Local Area Network), WAN (Wide Area Network), ADSL (Asymmetric Digital Subscriber Line), or FTTH (Fiber to the Home).
The network <b>130</b> is a communication path that connects the client <b>120</b> with the transaction process system <b>150</b>. As an example, the Internet can implement the network <b>130</b>. The network <b>130</b> provided as the Internet connects systems to each other using TCP/IP (Transmission Control Protocol/Internet Protocol). The network <b>130</b> uses IP addresses to specify systems that communicate with each other. An IP address is represented by a global address or a local address.
The application server <b>160</b> is a computer that provides services such as a transaction process in response to a request from the client <b>120</b>. It should be noted that a person skilled in the art can appropriately implement such an application server <b>160</b> using the IBM WebSphere® Application Server (WAS) product provided by International Business Machines Corporation, the Microsoft IIS (Internet Information Server) product provided by Microsoft Corporation, the WebLogic Server product provided by BEA Systems, Inc., and the open source software products Apache and Apache Tomcat provided by Apache Software Foundation. To acquire data needed for the transaction process, the application server <b>160</b> also has a function to generate an SQL statement, i.e., a database query language, and issue a request to the database server <b>170</b>.
The database server <b>170</b> stores data needed for the transaction process. The person skilled in the art can appropriately implement the database server <b>170</b> using existing relational database management systems (RDBMS) such as the IBM DB2® Universal Database product provided by International Business Machines Corporation, the Oracle Database® product provided by Oracle Corporation, and the Microsoft SQL Server® product provided by Microsoft Corporation. It should be noted that the person skilled in the art can appropriately implement the database server <b>170</b> using not only RDBMS, but also existing data management products including the hierarchical database management system such as the IBM Information Management System (IMS) product and the transaction management system such as the IBM Customer Information Control System (CICS) product provided by International Business Machines Corporation.
<figref idrefs="DRAWINGS">FIG. 2</figref> is a functional block diagram of the application server <b>160</b> according to an embodiment. Components of the functional block diagram in <figref idrefs="DRAWINGS">FIG. 2</figref> can be implemented on an information processing apparatus <b>1000</b> having a hardware implementation as shown in <figref idrefs="DRAWINGS">FIG. 10</figref> (to be described) in cooperation with hardware resources and software. In this case, a hard disk device <b>13</b> or the like stores an operating system and computer programs that are loaded into main memory <b>4</b> and then are read into a CPU <b>1</b>.
The application server <b>160</b> includes a communication interface <b>210</b>, an application program storage unit <b>220</b>, a logging system <b>230</b>, a storage device <b>240</b>, and a log analysis unit <b>250</b>. The communication interface <b>210</b> has a function to receive a transaction process request from the client <b>120</b> via the network <b>130</b> and to return a transaction process result to the client <b>120</b> via the network <b>130</b>. The communication interface <b>210</b> also has a function to request data needed for the transaction process from the database server <b>170</b> and to receive the data from the database <b>170</b>.
According to an embodiment of the invention, the application program storage unit <b>220</b> includes three types of application programs <b>222</b> through <b>226</b>. The application programs <b>222</b> through <b>226</b> perform different transaction processes in accordance with transaction process requests received from the client <b>120</b> via the communication interface <b>210</b>. A transaction process request can be generated from a web browser of the client <b>120</b> and can be transmitted as an HTTP (HyperText Transfer Protocol) to the network <b>130</b>, but not limited thereto. Each of the application programs <b>222</b> through <b>226</b> has a function to allow the communication interface <b>210</b> to transmit an SQL request to the database server <b>170</b>. The SQL request is issued for data needed for a transaction process.
The logging system <b>230</b> is a mechanism which allows the storage device <b>240</b> to store a log of transaction processes performed by the application programs <b>222</b> through <b>226</b>. The logging system <b>230</b> includes a logging policy table <b>232</b>, a transaction table <b>234</b>, a transaction process monitor <b>236</b>, and a logging controller <b>238</b>.
The logging policy table <b>232</b> records logging policy in association with a condition of applying the logging policy (hereafter referred to as a policy application condition). The logging policy defines logging for more items than normal. The policy application condition is defined based on a required response time specified in the service level agreement <b>180</b>. The policy application condition can be defined based on not only the response time of the transaction process, but also any one or combination of: the type of an application to perform the transaction process; the ID of a client that requested the transaction process; and the ID of a client group containing the client that requested the transaction process. The logging policy table can record or defines, as output log contents, which data item on the transaction process among data items including any one or combination of input data, output data, intermediate data, and error message for the transaction process.
<figref idrefs="DRAWINGS">FIG. 3</figref> shows an example of the logging policy table <b>232</b> according to an embodiment of the invention. The logging policy table <b>232</b> in <figref idrefs="DRAWINGS">FIG. 3</figref> defines a first policy <b>310</b> and a second policy <b>320</b>. It is assumed that the service level agreement <b>180</b> according to an embodiment of the invention contains the following two service quality requirements: <ul><li id="ul0001-0001" num="0000"><ul><li id="ul0002-0001" num="0045">1. Let us suppose that a specially authorized user (hereafter referred to as a user belonging to a gold group) requests a transaction process that uses the application program <b>222</b> or <b>224</b>. In this case, the response time for the transaction process is assumed to be within 0.3 seconds.</li><li id="ul0002-0002" num="0046">2. Let us suppose that a user independent of any specific authority requests a transaction process that uses the application program <b>226</b>. In this case, the response time for the transaction process is assumed to be within five seconds.</li></ul></li></ul>
The first policy <b>310</b> is used for the first service quality requirement. The first policy <b>310</b> targets transaction processes (trx=“tran<b>1</b>,tran<b>2</b>”) belonging to a first transaction group (tran<b>1</b>) and a second transaction group (tran<b>2</b>). The first transaction group uses the application program <b>222</b> requested by a user belonging to the gold group. The second transaction group uses the application program <b>224</b>. As will be described later, the transaction table <b>234</b> defines the first and second transaction groups. The first policy <b>310</b> is applied on condition that the response time of 0.3 seconds or more is required for the transaction process monitored by the transaction process monitoring unit <b>236</b> (respTime=“300”: milliseconds).
When the first policy <b>310</b> is applied, the system outputs log/trace information about the transaction process at a “WARN” (warning) level (logLevel=“WARN”). The “WARN” level outputs reference information (“INFO”) and warning information (“WARN”) as the log/trace information. When the first policy <b>310</b> is applied, the system also records memory dump information as a log(dump=“on”). The first policy is defined to be executed up to 20 times (numOfinstance=“20”). When the execution count exceeds 20, the system outputs a log at an “INFO” (information) level. No memory dump information is output. The “INFO” level outputs only reference information (“INFO”) as the log/trace information.
The second policy <b>320</b> is used for the second service quality requirement. The second policy <b>320</b> targets transaction processes (trx=“tran<b>3</b>”) belonging to a third transaction group (tran<b>3</b>) that uses the application program <b>226</b>. As will be described later, the transaction table <b>234</b> defines the third transaction group (tran<b>3</b>). The second policy <b>320</b> is applied on condition that the response time of five seconds or more is required for the transaction process monitored by the transaction process monitoring unit <b>236</b> (respTime=“5000”: milliseconds).
When the second policy <b>320</b> is applied, the system outputs log/trace information about the transaction process at a “DEBUG” level (logLevel=“DEBUG”). The “DEBUG” (debug) level outputs the log/trace information containing debug information (“DEBUG”) in addition to the reference information (“INFO”) and the warning information (“WARN”). When the second policy <b>320</b> is applied, the system records also the memory dump information as a log(dump=“on”). The first policy is defined to be executed up to 100 times (numOfInstance=“100”). When the execution count exceeds 100, the system outputs a log at an “INFO” level. No memory dump information is output. The “INFO” level outputs only reference information (“INFO”) as the log/trace information.
According to an embodiment of the invention, the transaction table <b>234</b> defines a range of the transaction to be logged. Specifically, the transaction table <b>234</b> defines a range of the transaction to be logged using any of parameters contained in a transaction process request. These parameters include a URI, a query string for the GET method, form data for the POST process, header information in a SOAP message, a message received by Message Driven Bean, i.e., one type of EJB (Enterprise Java Bean), and a message listener, i.e., a feature for Message Driven Bean to receive a message. <figref idrefs="DRAWINGS">FIG. 4</figref> shows an example of the transaction table <b>234</b>. As shown in <figref idrefs="DRAWINGS">FIG. 4</figref>, the transaction table <b>234</b> according to an embodiment of the invention defines a first transaction group <b>410</b>, a second transaction group <b>420</b>, and a third transaction group <b>430</b>.
The first transaction group <b>410</b> is defined to have transaction ID “Trx0001” and group ID “GOLD”. The transaction ID is an identifier for selecting an application that is executed for the transaction process. The group ID specifies the group to which a user requesting the transaction process belongs. The second transaction group <b>420</b> is defined to have transaction ID “Trx0002” and group ID “GOLD”. One embodiment of the invention assumes the following. Transaction IDs “Trx0001” and “Trx0002” are assigned to transactions using the application programs <b>222</b> and <b>224</b>, respectively. Group identifier “GOLD” is assigned to a user who belongs to the gold group.
The third transaction group <b>430</b> is defined to have “/EMPSearch.do” at the end of a character string representing the URI (Uniform Resource Identifier) contained in the HTTP request for the transaction process. An example URI is “http://www.ibm.com/transaction/applications/EMPSearch.do” contained in the HTTP request from the client <b>110</b>. One embodiment of the invention assumes that a URI is specified in this manner to request the transaction process using the application program <b>226</b>.
Separation of the logging policy table <b>232</b> and the transaction table <b>234</b> can improve maintainability of the logging policy. For example, let us suppose that multiple transaction groups are mapped to one logging policy. In this case, the logging policy table <b>232</b> and the transaction table <b>234</b> are provided independently. Simply changing reference to the transaction table <b>234</b> from the logging policy table <b>232</b> can easily change the logging policy applied to a specific transaction group.
There may be a case where the transaction process satisfies none of the logging policy application conditions defined in the logging policy table <b>232</b>. In such a case, the logging is performed according to the method specified at initiation of the application program that executes the corresponding transaction process. In such a case, for example, the embodiment of the invention outputs the log/trace information at the “INFO” level and outputs no memory dump information. The “INFO” level outputs only the reference information (“INFO”) as the log/trace information.
The transaction process monitoring unit <b>236</b> can automatically measure at least the response time of the transaction process, but is not limited thereto. For example, a person skilled in the art can use the IBM Tivoli Monitoring for Transaction Performance product for the same purpose. Further, the person skilled in the art can create a program that records the beginning time and the ending time of the transaction process and calculates a difference between both to automatically measure the response time of the transaction process.
The logging control unit <b>238</b> has a function to determine whether or not the transaction process satisfies the policy application condition based on the response time monitored by the transaction process monitoring unit <b>236</b>. When the transaction process satisfies the policy application condition, the logging control unit <b>238</b> has another function to allow the storage device <b>240</b> to record a log of more items than normal concerning the transaction process in accordance with the policy corresponding to that application condition.
The storage device <b>240</b> records a log of transaction processes performed by the application programs <b>222</b> through <b>226</b>. The storage device <b>240</b> includes a high-speed buffer <b>242</b> as a high-order storage and a long-term storage <b>244</b> as a low-order storage. The high-speed buffer <b>242</b> can be implemented, for example, from a computer system's main storage capable of relatively fast reading and writing. The high-speed buffer <b>242</b> records a full set of logs for each transaction process for a relatively short period of time.
On the other hand, the long-term storage <b>244</b> can be implemented from a hard disk device (HDD) that is slower than the main storage but is available at a low unit price per bit. The long-term storage <b>244</b> records all or part (sub-set) of the full set of transaction process logs recorded in the high-speed buffer <b>242</b> for a long period of time in accordance with a logging policy to be applied to the targeted transaction process. The long-term storage <b>244</b> does not record the full set of logs concerning all the transaction processes. It should be noted that a necessary storage capacity is reduced from the long-term storage <b>244</b> to be prepared.
<figref idrefs="DRAWINGS">FIGS. 5 and 6</figref> exemplify a full set <b>500</b> of logs for the transaction process according to an embodiment of the invention. It is assumed that the application program <b>222</b> including components <b>1</b> through <b>4</b> performed the transaction process. The full set <b>500</b> of transaction process logs contains log/trace information <b>510</b> (see <figref idrefs="DRAWINGS">FIG. 5</figref>) about the transaction process and memory dump information <b>570</b> (see <figref idrefs="DRAWINGS">FIG. 6</figref>).
As shown in <figref idrefs="DRAWINGS">FIG. 5</figref>, the log/trace information <b>510</b> concerns the entire transaction process according to the embodiment of the invention and contains log/trace information <b>520</b>, <b>530</b>, <b>540</b>, and <b>550</b>, and response time <b>560</b>. The log/trace information <b>520</b> concerns a process performed by the component <b>1</b>. The log/trace information <b>530</b> concerns a process performed by the component <b>2</b>. The log/trace information <b>540</b> concerns a process performed by the component <b>3</b>. The log/trace information <b>550</b> concerns a process performed by the component <b>4</b>. The response time <b>560</b> indicates the total processed time for the entire transaction process.
The log/trace information <b>520</b> about the process performed by the component <b>1</b> contains: starting time <b>522</b> of the process performed by the component <b>1</b>; debug information about the process performed by the component <b>1</b>; ending time <b>526</b> of the process performed by the component <b>1</b>; and process time <b>528</b> of the process performed by the component <b>1</b>. It should be noted that the equivalent information is contained in the log/trace information <b>530</b>, <b>540</b>, and <b>550</b> about the processes performed by the other components <b>2</b>.
The log/trace information <b>510</b> in <figref idrefs="DRAWINGS">FIG. 5</figref> contains reference information (a line beginning with “INFO”), warning information (a line beginning with “WARN”), and debug information (a line beginning with “DEBUG”). However, note that the “INFO” level outputs only the reference information, the “WARN” level outputs the reference information and the warning information, and the “DEBUG” level outputs all of the reference information, the warning information, and the debug information.
As shown in <figref idrefs="DRAWINGS">FIG. 6</figref>, the memory dump information <b>570</b> according to an embodiment of the invention contains: instance information <b>580</b> about the component used for the transaction process; control information <b>585</b>; error information <b>587</b>; detailed output data <b>590</b>; and detailed input data <b>595</b>. According to an embodiment of the invention, the instance information <b>580</b> contains an SQL statement <b>582</b> used. The control information <b>585</b> contains a transaction ID, a thread ID, and a user ID. The transaction ID is an identifier for indicating the type of the executed application program. The thread ID is an identifier for indicating the thread that actually executed the application program. The user ID indicates a user who requested the transaction process.
Returning now back to the description of <figref idrefs="DRAWINGS">FIG. 2</figref>, the log analysis unit <b>250</b> accesses a log recorded in the long-term storage <b>244</b>. For example, the log analysis unit <b>250</b> extracts information needed for analysis of the transaction process system <b>150</b> to analyze a system error. According to an embodiment of the invention, the log analysis unit <b>250</b> can take into account the logging policy applied to each transaction process, identifies the transaction process to which a specific logging policy is applied, and extracts only the log about this transaction process as the information needed for the analysis. To provide the user <b>110</b> with the information needed for the log analysis, the log analysis unit <b>250</b> can transmit the extracted information to the client <b>120</b> via the network <b>130</b>.
<figref idrefs="DRAWINGS">FIG. 7</figref> is a flowchart <b>700</b> showing operations of the active transaction process system <b>150</b>. The process starts at Step <b>710</b>. At Step <b>712</b>, the process starts managing the logging policy table <b>232</b> stored in the system. At Step <b>715</b>, the transaction process monitoring unit <b>236</b> of the application server <b>160</b> starts monitoring the transaction process response time and the like in response to a service provider's instruction to start monitoring.
The process proceeds to Step <b>720</b>. The communication interface <b>210</b> of the application server <b>160</b> receives a request for the transaction process from the client operated by the user <b>110</b> via the network <b>130</b>. Upon reception of the request, the process proceeds to Step <b>725</b> to perform preprocessing for the transaction such as scheduling of each transaction process.
The process proceeds to Step <b>730</b>. The application programs <b>222</b> through <b>226</b> on the application server <b>160</b> perform each of the preprocessed transaction processes. At Step <b>732</b>, the high-speed buffer <b>242</b> as the high-order storage records a full set of logs for the transaction process as the transaction executing proceeds. When the transaction process is complete, the result of the transaction process is returned to the client <b>120</b> via the network <b>130</b> at Step <b>735</b>.
The process further proceeds. At Step <b>737</b>, the logging control unit <b>238</b> of the application server <b>160</b> determines whether or not the transaction process satisfies any of the policy application conditions stored in the logging policy table <b>232</b>. For this process, the logging control unit <b>238</b> uses the logging policy table <b>232</b> and the transaction table <b>234</b> based on the transaction's response time measured by the transaction process monitoring unit <b>236</b>.
When the transaction process satisfies any of the policy application conditions (Yes at Step <b>737</b>), the process proceeds to Step <b>740</b>. The logging control unit <b>238</b> selects the logging policy corresponding to the policy application condition. When the transaction process satisfies none of the policy application conditions defined in the logging policy table <b>232</b>, the process proceeds to Step <b>742</b>. The logging control unit <b>238</b> selects the default logging policy specified at initiation of the application program that performs the transaction process.
The process proceeds to Step <b>745</b>. According to the logging policy selected at Step <b>740</b>, all or part of the full set of this transaction log recorded in the high-speed buffer <b>242</b> is recorded in the long-term storage <b>244</b> as a low-order storage.
The process further proceeds. At Step <b>750</b>, the log analysis unit <b>250</b> analyzes the log recorded in the log analysis unit <b>250</b>. The log analysis is available in various methods. When the selected logging policy is applied to the log, for example, the log analysis unit <b>250</b> can extract only part of that log according to a specified rule and supply the extracted log to a service provider's administrator. In this manner, the administrator can easily analyze the problem using an editor or visually locate the primary cause. The log analysis unit <b>250</b> can be configured to supply a user with only part of the extracted log, not all the recorded logs. The process proceeds to Step <b>755</b> and then terminates.
<figref idrefs="DRAWINGS">FIG. 8</figref> is a flowchart <b>800</b> showing process steps of a method for implementing the transaction process system <b>150</b>. The process starts from Step <b>810</b>. At Step <b>815</b>, the user <b>110</b> concludes the service level agreement <b>180</b> with the service provider <b>140</b>. At Step <b>820</b>, the service provider <b>140</b> develops and introduces the application programs <b>222</b> through <b>226</b> needed for an outsourcing service. At Step <b>825</b>, a transaction process monitoring program is installed into the system to form the transaction process monitoring unit <b>236</b>. At Step <b>830</b>, a logging control program is installed into the system to form the logging control unit <b>238</b>. Both programs can be installed by a so-called installer, i.e., a program for program installation.
At Step <b>835</b>, the service provider <b>140</b> configures the logging policy table <b>232</b> and/or the transaction table <b>234</b> based on the service level agreement <b>180</b> concluded at Step <b>815</b>. The process proceeds to Step <b>840</b>. The service provider <b>140</b> specifies and configures a transaction policy table to be referenced by the logging control unit <b>238</b> formed at Step <b>830</b>. The process proceeds to Step <b>845</b>. A connection is made between the transaction process monitoring unit <b>236</b> and the logging control unit <b>238</b> so that the logging control unit <b>238</b> can acquire the response time for each transaction process. At Step <b>850</b>, the service provider <b>140</b> operates the transaction process system <b>150</b>. The process terminates at Step <b>855</b>.
<figref idrefs="DRAWINGS">FIG. 9</figref> is a flowchart <b>900</b> showing a method of re-implementing the transaction process system <b>150</b> when the service level agreement <b>180</b> according to the embodiment of the invention is revised. The process starts from Step <b>910</b>. At Step <b>915</b>, the user <b>110</b> and the service provider <b>140</b> analyze a recorded log using the logging policy table <b>232</b> and/or the transaction table <b>234</b> created based on the pre-revised service level agreement provided for the system. At Step <b>920</b>, the service level agreement <b>180</b> is revised based on the knowledge obtained from the result of the log analysis at Step <b>915</b>.
At Step <b>925</b>, the logging policy table <b>232</b> and/or the transaction table <b>234</b> is modified so as to change the policy application condition and the logging policy based on the revised service level agreement <b>180</b>. The process proceeds to Step <b>930</b>. The system is configured so that the logging control unit <b>238</b> references the modified logging policy table <b>232</b> and/or transaction table <b>234</b>. At Step <b>935</b>, the transaction process system <b>150</b> restarts. At Step <b>940</b>, the process terminates.
After the transaction process system <b>150</b> is re-implemented in accordance with the flowchart <b>900</b>, the process according to the flowchart <b>700</b> is performed. In this case, the transaction process system <b>150</b> uses the logging policy table <b>232</b> and/or the transaction table <b>234</b> after the modification to record a log appropriate for the revised service level agreement <b>180</b>. The user <b>110</b> and the service provider <b>140</b> can use the recorded log.
<figref idrefs="DRAWINGS">FIG. 10</figref> exemplifies a hardware implementation of an information processing apparatus <b>1000</b> appropriate for implementing the client <b>120</b>, the application server <b>160</b>, and the database server <b>160</b> according to an embodiment of the invention. The information processing apparatus includes the central processing unit (CPU) <b>1</b> and the main memory <b>4</b>. The CPU <b>1</b> and the main memory <b>4</b> are connected to the hard disk device <b>13</b> as an auxiliary storage via the bus <b>2</b>. Removable storages such as a flexible disk device <b>20</b>, an MO device <b>28</b>, and CD-ROM devices <b>26</b> and <b>29</b> are connected to the bus <b>2</b> correspondingly via flexible disk controller <b>19</b>, an IDE controller <b>25</b>, and an SCSI controller <b>27</b>. The removable storage is an external storage system whose recording medium is replaceable.
Storage media such as a flexible disk, MO, and CD-ROM are mounted on the removable storages such as the flexible disk device <b>20</b>, the MO device <b>28</b>, and CD-ROM devices <b>26</b> and <b>29</b>, respectively. These storage media can record a computer program code that supplies an instruction to the CPU and the like in cooperation with the operating system for embodying the invention. The computer program is loaded into the main memory <b>4</b> for execution. The computer program can be compressed or divided into multiple portions to be recorded on multiple media.
The information processing apparatus <b>1000</b> can be further provided with user interface hardware including a pointing device <b>7</b> such as a mouse, a keyboard <b>6</b>, and a display <b>12</b> for presenting visual data to a user. The information processing apparatus <b>1000</b> can connect with a printer (not shown) via a parallel port <b>16</b> or a modem (not shown) via a serial port <b>15</b>. A server <b>300</b> can connect with the network via the serial port <b>15</b> and the modem or via a communication adapter <b>18</b> (Ethernet® card or TokenRing card) for communication with the other computers and the like.
A speaker <b>23</b> receives an audio signal that is D/A-converted (digital-analog converted) by an audio controller <b>21</b>. The audio controller <b>21</b> A/D-converts (analog-digital converts) audio information received from a microphone <b>24</b> and enables the system to incorporate audio information outside the system.
According to the above-mentioned description, it will be easily understood that the information processing apparatus according to an embodiment of the invention can be implemented by an information processing apparatus such as a mainframe, workstation, ordinary personal computer (PC), or any combination of these. However, these components are examples. All the components are not required for the invention.
A person skilled in the art can easily suppose various modifications such as embodying the hardware components of the information processing apparatus used for the embodiment of the invention by combining multiple machines and distributing the functions to these machines. The modifications are duly attributed to the concept included in the spirit of the invention.
The client <b>120</b>, the application server <b>160</b>, and the database server <b>170</b> according to an embodiment of the invention can use an operating system that supports the GUI multi-window environment. Such operating system is available as the Windows® operating system provided by Microsoft Corporation, AIX provided by International Business Machines Corporation, Mac OS provided by Apple Computer Incorporated, or Linux®.
The client <b>120</b>, the application server <b>160</b>, and the database server <b>170</b> can uses a character-based operating system such as PC-DOS provided by International Business Machines Corporation and MS-DOS provided by Microsoft Corporation. Further, the client computer <b>110</b>, the application server <b>160</b>, and the database server <b>170</b> according to the embodiment of the invention can use a realtime OS such as OS/Open provided by International Business Machines Corporation, Vx Works provided by Wind River Systems, Inc., and a computer's built-in operating system such as Java® OS.
According to the above-mentioned description, it can be understood that the client <b>120</b>, the application server <b>160</b>, and the database server <b>170</b> are not limited to a specific operating system environment. Obviously, the client <b>120</b>, the application server <b>160</b>, and the database server <b>170</b> may operate on different operating systems.
While there has been described the embodiment of the invention, the technological scope of the invention is not limited to the scope of the above-mentioned embodiment. It is obvious for a person skilled in the art that various changes or improvements may be made in the above-mentioned embodiments. Accordingly, a form provided with such various changes or improvements is duly included in the technological scope of the invention.
Contents5
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
Every citation, both waysCites: the store holds 12 of 13
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US10439898B2 | Cited by | United States of America | Applicant |
| US2015143182A1 | Cited by | United States of America | Pre-grant |
| US2015161408A1 | Cited by | United States of America | Pre-grant |
| US9535780B2 | Cited by | United States of America | Search report |
| US2015006968A1 | Cited by | United States of America | Pre-grant |
| US10430298B2 | Cited by | United States of America | Search report |
| US8955144B2 | Cited by | United States of America | Search report |
| US9323942B2 | Cited by | United States of America | Search report |
| JP2001350640A | Cites | Japan | Applicant |
| US2003028753A1 | Cites | United States of America | Applicant |
| JP2003141076A | Cites | Japan | Applicant |
| JP2003178285A | Cites | Japan | Applicant |
| JP2005089051A | Cites | Japan | Applicant |
| JP2005092885A | Cites | Japan | Applicant |
| JP2005165108A | Cites | Japan | Applicant |
| JP2005242988A | Cites | Japan | Applicant |
| JP2005267036A | Cites | Japan | Applicant |
| JP2005302057A | Cites | Japan | Applicant |
| WO2007074680A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| JPH09244998A | Cites | Japan | Applicant |
| Piccinelli, "Service Provision and Composition in Virtual Business Communities", HPL-1999-84, 1999, Hewlett Packard. | Non-patent | – | Search report |
| PCT, Written Opinion of the International Searching Authority, International Application No. PCT/JP2006/325274, International Filing Date, Dec. 19, 2006. | Non-patent | – | Applicant |
| Hayato Ishibashi, "syslog/syslog-ng ni yoru seigyo", Open Source Magazine, Softbank Publishing Corp., Aug. 20, 2005, vol. 2, pp. 78-85. | Non-patent | – | Applicant |
| Kunihiro Tanaka, Server Unyo no Zentei Chishiki. Tune-up Web System No. 3, Linux World, IDG Japan, Inc., Oct. 1, 2001, vol. 5, No. 10, pp. 138-142. | Non-patent | – | Applicant |
| Yosuke Kimura, Performance no Takai Database wo Donyu Shiyou: SQL Server 2000 Unyo Kanri Master Kouza, Windows 2000 World, IDG Japan, Inc., May 1, 2003, vol. 8, No. 5, pp. 146-151. | Non-patent | – | Applicant |
8 members in 5 offices
Priority claims8
| Document | Office | Kind | Date |
|---|---|---|---|
| 2005372866 | Japan | A | |
| 2005372866 | Japan | A | |
| 2006325274 | Japan | W | |
| 2006325274 | Japan | W | |
| 2005372866 | – | – | – |
| JP20050372866 | – | – | – |
| PCTJP2006325274 | – | – | – |
| WO2006JP325274 | – | – | – |
Members8
| Document | Office | Kind | |
|---|---|---|---|
| WO2007074680A1 | World Intellectual Property Organization (WIPO) | A1 | |
| TW200809492A | Taiwan Province of China | A | |
| CN101346699A | China | A | |
| JPWO2007074680A1 | Japan | A1 | |
| US2009204645A1 | United States of America | A1 | |
| CN101346699B | China | B | |
| US8001094B2This record | United States of America | B2 | |
| TWI380168B | Taiwan Province of China | B |
49 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 12th Year, Large EntityM1553 | M1553 | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Correspondence Address ChangeC.AD | C.AD | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTR | EML_NTR | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Email NotificationEML_NTR | EML_NTR | |
| Email NotificationEML_NTR | EML_NTR | |
| Filing Receipt - ReplacementFLRCPT.R | FLRCPT.R | |
| Filing Receipt - CorrectedFLRCPT.C | FLRCPT.C | |
| Email NotificationEML_NTR | EML_NTR | |
| Email NotificationEML_NTR | EML_NTR | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Notice of DO/EO Acceptance MailedM903 | M903 | |
| Sent to Classification ContractorPGPC | PGPC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| 371 Completion Date371COMP | 371COMP | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Request for Foreign Priority (Priority Papers May Be Included)RQPR | RQPR | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
6 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 08001094
- Publication, DOCDB
- 8001094
- Publication, EPODOC
- US8001094
- Application
- 12159024
- Application, DOCDB
- 15902406
- Application, EPODOC
- US20060159024
Titles
- English
- System, method, program, and system implementation method for transaction process logging
Patent term adjustment
- A delay
- +401 daysthe office missed an examination deadline
- B delay
- +51 dayspendency past three years
- Net adjustment
- 452 days
Classification
- CPC, 4
- G06F11/3419
- G06F11/3476
- G06F11/3495
- G06F2201/87
- IPC, 2
- G06F7 00
- G06F17 00
- USPC, 1
- 707694000