DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 11 October 2022 is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more. Determining whether claims are statutory under 35 U.S.C. 101 involves a two-step analysis. Step 1 requires a determination of whether the claims are directed to the statutory categories of invention. Step 2 requires a determination of whether the claims are directed to a judicial exception without significantly more. Step 2 is divided into two prongs, with the first prong having a part 1 and part 2. See MPEP 2106.
Claim 1 recites a computer implemented method for managing connections in a connection pool, the computer implemented method comprising: creating, by a computer system, a modified call stack for a connection request in response to receiving the connection request, wherein the modified call stack comprises elements that call prepared statements that are part of an application logic for the connection request; identifying, by the computer system, a group of potential connections from the connections in the connection pool that matches the connection request, wherein the group of potential connections is associated with a group of associated modified call stacks that call the prepared statements; determining, by the computer system, a group of weighted match scores for the group of associated modified call stacks from a comparison of the modified call stack with the group of associated modified call stacks; and selecting, by the computer system, a connection from the group of potential connections based on a highest weighted match score in the group of weighted match scores.
Pursuant to Step 2A, part 1, claims are analyzed to determine whether they are directed to an abstract idea. Pursuant to MPEP 2106, claims are deemed to be directed to an abstract idea if, under their broadest reasonable interpretation, they fall within one of the enumerated categories of (a) mathematical concepts, (b) certain methods of organizing human activity, and (c) mental processes. Under the broadest reasonable interpretation, the terms of the claim are presumed to have their plain meaning consistent with the specification as it would be interpreted by one of ordinary skill in the art. See MPEP 2111.
The limitations of creating a modified call stack for a connection request in response to receiving the connection request, wherein the modified call stack comprises elements that call prepared statements that are part of an application logic for the connection request; identifying a group of potential connections from the connections in the connection pool that matches the connection request, wherein the group of potential connections is associated with a group of associated modified call stacks that call the prepared statements; determining a group of weighted match scores for the group of associated modified call stacks from a comparison of the modified call stack with the group of associated modified call stacks; and selecting a connection from the group of potential connections based on a highest weighted match score in the group of weighted match scores, as drafted, are processes that, under their broadest reasonable interpretation, covers performance of the limitation in the mind (including an observation, evaluation, judgement, opinion) except for the recitation of generic computer components. For example, these limitations depict modifying a list in response to a condition and then identifying a connection by comparing the modified list to other modified lists to see which connection they use. The connection with the highest score is then selected. If limitations, under their broadest reasonable interpretation, covers the performance of the limitation in the mind except for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
Pursuant to Step 2A, part 2, claims are analyzed to determine whether the claim as a whole integrates the recited judicial exception into a practical application of the exception. This evaluation is performed by (1) identifying whether there are any additional elements recited in the claim beyond the judicial exception, and (2) evaluating those additional elements individually and in combination to determine whether the claim as a whole integrates the exception into a practical application. See MPEP 2106.04(d). One way to determine integration into a practical application is when the claimed invention improves the functioning of a computer or improves another technology or technical field. To evaluate an improvement to a computer or technical field, the specification must set forth an improvement in technology and the claim itself must reflect the disclosed improvement. See MPEP 2106.04(d)(1).
This judicial exception is not integrated into a practical application. The claim recites the additional elements of a computer system. The elements are recited at a high level of generality (i.e., a generic computer performing the generic computer functions of creating, identifying, determining and selecting) such that it amounts to no more than mere instructions to apply the exception using a generic computer component (see MPEP 2106.05(f)). The claim also recites the additional element of receiving the connection request. This element is adding insignificant extra-solution activity to the judicial exception (see MPEP 2106.05(g)) since the element is gathering data. The term "extra-solution activity" can be understood as activities incidental to the primary process or product that are merely a nominal or tangential addition to the claim. Extra-solution activity includes both pre-solution and post-solution activity. An example of pre-solution activity is a step of gathering data for use in a claimed process, e.g., a step of obtaining information about credit card transactions, which is recited as part of a claimed process of analyzing and manipulating the gathered information by a series of steps in order to detect whether the transactions were fraudulent. An example of post-solution activity is an element that is not integrated into the claim as a whole, e.g., a printer that is used to output a report of fraudulent transactions, which is recited in a claim to a computer programmed to analyze and manipulate information about credit card transactions in order to detect whether the transactions were fraudulent. MPEP 2106.05(g). Accordingly, these additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea.
Pursuant to Step 2B, claims are analyzed to determine whether the claim as a whole amounts to significantly more than the recited exception i.e., whether any additional element, or combination of additional elements, adds an inventive concept to the claim. See MPEP 2106.05.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception. The claim recites the additional elements of a computer system. The elements are recited at a high level of generality (i.e., a generic computer performing the generic computer functions of creating, identifying, determining and selecting) such that it amounts to no more than mere instructions to apply the exception using a generic computer component (see MPEP 2106.05(f)). The claim also recites the additional element of receiving the connection request. This element is adding insignificant extra-solution activity to the judicial exception (see MPEP 2106.05(g)) since the element is gathering data. The term "extra-solution activity" can be understood as activities incidental to the primary process or product that are merely a nominal or tangential addition to the claim. Extra-solution activity includes both pre-solution and post-solution activity. An example of pre-solution activity is a step of gathering data for use in a claimed process, e.g., a step of obtaining information about credit card transactions, which is recited as part of a claimed process of analyzing and manipulating the gathered information by a series of steps in order to detect whether the transactions were fraudulent. An example of post-solution activity is an element that is not integrated into the claim as a whole, e.g., a printer that is used to output a report of fraudulent transactions, which is recited in a claim to a computer programmed to analyze and manipulate information about credit card transactions in order to detect whether the transactions were fraudulent. MPEP 2106.05(g). At Step 2B, the evaluation of the insignificant extra-solution activity consideration takes into account whether or not the extra-solution activity is well understood, routine, and conventional in the field. See MPEP 2106.05(g). The limitation is directed to IESA of gathering data, e.g., using the Internet to gather data, performing repetitive calculations, electronic recordkeeping, storing and retrieving information in memory, electronically scanning or extracting data from a physical document, a web browser’s back and forward button functionality, recording a customer’s order, shuffling and dealing a standard deck of cards, restricting public access to media by requiring a consumer to view an advertisement, presenting offers and gathering statistics, determining an estimated outcome and setting a price, arranging a hierarchy of groups, sorting information, eliminating less restrictive pricing information and determining the price, which is well understood, routine, and conventional. See MPEP 2106.05(d), subsection II and the Berkheimer Memo. Even when considered in combination, these additional elements represent mere instructions to implement an abstract idea or other exception on a computer, insignificant extra-solution activity and generally linking the use of the judicial exception to a particular technological environment or field of use, which do not provide an inventive concept. The claim is not patent eligible.
Claim 9 recites a computer system comprising: a number of processor units, wherein the number of processor units executes program instructions to: create a modified call stack for a connection request in response to receiving the connection request, wherein the modified call stack comprises elements that call prepared statements that are part of an application logic for the connection request; identify a group of potential connections from connections in a connection pool that matches the connection request, wherein the group of potential connections is associated with a group of associated modified call stacks that call the prepared statements; determine a group of weighted match scores for the group of associated modified call stacks from a comparison of the modified call stack with the group of associated modified call stacks; and select a connection from the group of potential connections based on a highest weighted match score in the group of weighted match scores.
Pursuant to Step 2A, part 1, claims are analyzed to determine whether they are directed to an abstract idea. Pursuant to MPEP 2106, claims are deemed to be directed to an abstract idea if, under their broadest reasonable interpretation, they fall within one of the enumerated categories of (a) mathematical concepts, (b) certain methods of organizing human activity, and (c) mental processes. Under the broadest reasonable interpretation, the terms of the claim are presumed to have their plain meaning consistent with the specification as it would be interpreted by one of ordinary skill in the art. See MPEP 2111.
The limitations of creating a modified call stack for a connection request in response to receiving the connection request, wherein the modified call stack comprises elements that call prepared statements that are part of an application logic for the connection request; identifying a group of potential connections from the connections in the connection pool that matches the connection request, wherein the group of potential connections is associated with a group of associated modified call stacks that call the prepared statements; determining a group of weighted match scores for the group of associated modified call stacks from a comparison of the modified call stack with the group of associated modified call stacks; and selecting a connection from the group of potential connections based on a highest weighted match score in the group of weighted match scores, as drafted, are processes that, under their broadest reasonable interpretation, covers performance of the limitation in the mind (including an observation, evaluation, judgement, opinion) except for the recitation of generic computer components. For example, these limitations depict modifying a list in response to a condition and then identifying a connection by comparing the modified list to other modified lists to see which connection they use. The connection with the highest score is then selected. If limitations, under their broadest reasonable interpretation, covers the performance of the limitation in the mind except for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
Pursuant to Step 2A, part 2, claims are analyzed to determine whether the claim as a whole integrates the recited judicial exception into a practical application of the exception. This evaluation is performed by (1) identifying whether there are any additional elements recited in the claim beyond the judicial exception, and (2) evaluating those additional elements individually and in combination to determine whether the claim as a whole integrates the exception into a practical application. See MPEP 2106.04(d). One way to determine integration into a practical application is when the claimed invention improves the functioning of a computer or improves another technology or technical field. To evaluate an improvement to a computer or technical field, the specification must set forth an improvement in technology and the claim itself must reflect the disclosed improvement. See MPEP 2106.04(d)(1).
This judicial exception is not integrated into a practical application. The claim recites the additional elements of a computer system, processor units and instructions. The elements are recited at a high level of generality (i.e., a generic computer performing the generic computer functions of creating, identifying, determining and selecting) such that it amounts to no more than mere instructions to apply the exception using a generic computer component (see MPEP 2106.05(f)). The claim also recites the additional element of receiving the connection request. This element is adding insignificant extra-solution activity to the judicial exception (see MPEP 2106.05(g)) since the element is gathering data. The term "extra-solution activity" can be understood as activities incidental to the primary process or product that are merely a nominal or tangential addition to the claim. Extra-solution activity includes both pre-solution and post-solution activity. An example of pre-solution activity is a step of gathering data for use in a claimed process, e.g., a step of obtaining information about credit card transactions, which is recited as part of a claimed process of analyzing and manipulating the gathered information by a series of steps in order to detect whether the transactions were fraudulent. An example of post-solution activity is an element that is not integrated into the claim as a whole, e.g., a printer that is used to output a report of fraudulent transactions, which is recited in a claim to a computer programmed to analyze and manipulate information about credit card transactions in order to detect whether the transactions were fraudulent. MPEP 2106.05(g). Accordingly, these additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea.
Pursuant to Step 2B, claims are analyzed to determine whether the claim as a whole amounts to significantly more than the recited exception i.e., whether any additional element, or combination of additional elements, adds an inventive concept to the claim. See MPEP 2106.05.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception. The claim recites the additional elements of a computer system, processor units and instructions. The elements are recited at a high level of generality (i.e., a generic computer performing the generic computer functions of creating, identifying, determining and selecting) such that it amounts to no more than mere instructions to apply the exception using a generic computer component (see MPEP 2106.05(f)). The claim also recites the additional element of receiving the connection request. This element is adding insignificant extra-solution activity to the judicial exception (see MPEP 2106.05(g)) since the element is gathering data. The term "extra-solution activity" can be understood as activities incidental to the primary process or product that are merely a nominal or tangential addition to the claim. Extra-solution activity includes both pre-solution and post-solution activity. An example of pre-solution activity is a step of gathering data for use in a claimed process, e.g., a step of obtaining information about credit card transactions, which is recited as part of a claimed process of analyzing and manipulating the gathered information by a series of steps in order to detect whether the transactions were fraudulent. An example of post-solution activity is an element that is not integrated into the claim as a whole, e.g., a printer that is used to output a report of fraudulent transactions, which is recited in a claim to a computer programmed to analyze and manipulate information about credit card transactions in order to detect whether the transactions were fraudulent. MPEP 2106.05(g). At Step 2B, the evaluation of the insignificant extra-solution activity consideration takes into account whether or not the extra-solution activity is well understood, routine, and conventional in the field. See MPEP 2106.05(g). The limitation is directed to IESA of gathering data, e.g., using the Internet to gather data, performing repetitive calculations, electronic recordkeeping, storing and retrieving information in memory, electronically scanning or extracting data from a physical document, a web browser’s back and forward button functionality, recording a customer’s order, shuffling and dealing a standard deck of cards, restricting public access to media by requiring a consumer to view an advertisement, presenting offers and gathering statistics, determining an estimated outcome and setting a price, arranging a hierarchy of groups, sorting information, eliminating less restrictive pricing information and determining the price, which is well understood, routine, and conventional. See MPEP 2106.05(d), subsection II and the Berkheimer Memo. Even when considered in combination, these additional elements represent mere instructions to implement an abstract idea or other exception on a computer, insignificant extra-solution activity and generally linking the use of the judicial exception to a particular technological environment or field of use, which do not provide an inventive concept. The claim is not patent eligible.
Claim 17 recites a computer program product for managing connections in a connection pool, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer system to cause the computer system to perform a method of: creating, by a computer system, a modified call stack for a connection request in response to receiving the connection request, wherein the modified call stack comprises elements that call prepared statements that are part of an application logic for the connection request; identifying, by the computer system, a group of potential connections from the connections in the connection pool that matches the connection request, wherein the group of potential connections is associated with a group of associated modified call stacks that call the prepared statements; determining, by the computer system, a group of weighted match scores for the group of associated modified call stacks from a comparison of the modified call stack with the group of associated modified call stacks; and selecting, by the computer system, a connection from the group of potential connections based on a highest weighted match score in the group of weighted match scores.
Pursuant to Step 2A, part 1, claims are analyzed to determine whether they are directed to an abstract idea. Pursuant to MPEP 2106, claims are deemed to be directed to an abstract idea if, under their broadest reasonable interpretation, they fall within one of the enumerated categories of (a) mathematical concepts, (b) certain methods of organizing human activity, and (c) mental processes. Under the broadest reasonable interpretation, the terms of the claim are presumed to have their plain meaning consistent with the specification as it would be interpreted by one of ordinary skill in the art. See MPEP 2111.
The limitations of creating a modified call stack for a connection request in response to receiving the connection request, wherein the modified call stack comprises elements that call prepared statements that are part of an application logic for the connection request; identifying a group of potential connections from the connections in the connection pool that matches the connection request, wherein the group of potential connections is associated with a group of associated modified call stacks that call the prepared statements; determining a group of weighted match scores for the group of associated modified call stacks from a comparison of the modified call stack with the group of associated modified call stacks; and selecting a connection from the group of potential connections based on a highest weighted match score in the group of weighted match scores, as drafted, are processes that, under their broadest reasonable interpretation, covers performance of the limitation in the mind (including an observation, evaluation, judgement, opinion) except for the recitation of generic computer components. For example, these limitations depict modifying a list in response to a condition and then identifying a connection by comparing the modified list to other modified lists to see which connection they use. The connection with the highest score is then selected. If limitations, under their broadest reasonable interpretation, covers the performance of the limitation in the mind except for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
Pursuant to Step 2A, part 2, claims are analyzed to determine whether the claim as a whole integrates the recited judicial exception into a practical application of the exception. This evaluation is performed by (1) identifying whether there are any additional elements recited in the claim beyond the judicial exception, and (2) evaluating those additional elements individually and in combination to determine whether the claim as a whole integrates the exception into a practical application. See MPEP 2106.04(d). One way to determine integration into a practical application is when the claimed invention improves the functioning of a computer or improves another technology or technical field. To evaluate an improvement to a computer or technical field, the specification must set forth an improvement in technology and the claim itself must reflect the disclosed improvement. See MPEP 2106.04(d)(1).
This judicial exception is not integrated into a practical application. The claim recites the additional elements of a computer system, program product, medium and instructions. The elements are recited at a high level of generality (i.e., a generic computer performing the generic computer functions of creating, identifying, determining and selecting) such that it amounts to no more than mere instructions to apply the exception using a generic computer component (see MPEP 2106.05(f)). The claim also recites the additional element of receiving the connection request. This element is adding insignificant extra-solution activity to the judicial exception (see MPEP 2106.05(g)) since the element is gathering data. The term "extra-solution activity" can be understood as activities incidental to the primary process or product that are merely a nominal or tangential addition to the claim. Extra-solution activity includes both pre-solution and post-solution activity. An example of pre-solution activity is a step of gathering data for use in a claimed process, e.g., a step of obtaining information about credit card transactions, which is recited as part of a claimed process of analyzing and manipulating the gathered information by a series of steps in order to detect whether the transactions were fraudulent. An example of post-solution activity is an element that is not integrated into the claim as a whole, e.g., a printer that is used to output a report of fraudulent transactions, which is recited in a claim to a computer programmed to analyze and manipulate information about credit card transactions in order to detect whether the transactions were fraudulent. MPEP 2106.05(g). Accordingly, these additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea.
Pursuant to Step 2B, claims are analyzed to determine whether the claim as a whole amounts to significantly more than the recited exception i.e., whether any additional element, or combination of additional elements, adds an inventive concept to the claim. See MPEP 2106.05.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception. The claim recites the additional elements of a computer system, program product, medium and instructions. The elements are recited at a high level of generality (i.e., a generic computer performing the generic computer functions of creating, identifying, determining and selecting) such that it amounts to no more than mere instructions to apply the exception using a generic computer component (see MPEP 2106.05(f)). The claim also recites the additional element of receiving the connection request. This element is adding insignificant extra-solution activity to the judicial exception (see MPEP 2106.05(g)) since the element is gathering data. The term "extra-solution activity" can be understood as activities incidental to the primary process or product that are merely a nominal or tangential addition to the claim. Extra-solution activity includes both pre-solution and post-solution activity. An example of pre-solution activity is a step of gathering data for use in a claimed process, e.g., a step of obtaining information about credit card transactions, which is recited as part of a claimed process of analyzing and manipulating the gathered information by a series of steps in order to detect whether the transactions were fraudulent. An example of post-solution activity is an element that is not integrated into the claim as a whole, e.g., a printer that is used to output a report of fraudulent transactions, which is recited in a claim to a computer programmed to analyze and manipulate information about credit card transactions in order to detect whether the transactions were fraudulent. MPEP 2106.05(g). At Step 2B, the evaluation of the insignificant extra-solution activity consideration takes into account whether or not the extra-solution activity is well understood, routine, and conventional in the field. See MPEP 2106.05(g). The limitation is directed to IESA of gathering data, e.g., using the Internet to gather data, performing repetitive calculations, electronic recordkeeping, storing and retrieving information in memory, electronically scanning or extracting data from a physical document, a web browser’s back and forward button functionality, recording a customer’s order, shuffling and dealing a standard deck of cards, restricting public access to media by requiring a consumer to view an advertisement, presenting offers and gathering statistics, determining an estimated outcome and setting a price, arranging a hierarchy of groups, sorting information, eliminating less restrictive pricing information and determining the price, which is well understood, routine, and conventional. See MPEP 2106.05(d), subsection II and the Berkheimer Memo. Even when considered in combination, these additional elements represent mere instructions to implement an abstract idea or other exception on a computer, insignificant extra-solution activity and generally linking the use of the judicial exception to a particular technological environment or field of use, which do not provide an inventive concept. The claim is not patent eligible.
Claims 4-7, 12-15 and 20 are directed to the abstract idea of “Mental Processes.” Each claim fails to provide any additional elements. This judicial exception is not integrated into a practical application because there are no additional elements to integrate the abstract idea into a practical application. The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception because there are no additional elements. The claims are not patent eligible.
Claims 2, 3, 8, 10, 11, 16, 18 and 19 are directed to the abstract idea of “Mental Processes.” The additional limitations of each of the claims is directed to adding insignificant extra-solution activity to the judicial exception (see MPEP 2106.05(g)). Accordingly, these additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. At Step 2B, the evaluation of the insignificant extra-solution activity consideration takes into account whether or not the extra-solution activity is well understood, routine, and conventional in the field. See MPEP 2106.05(g). The limitation is directed to IESA, e.g., using the Internet to gather data, performing repetitive calculations, electronic recordkeeping, storing and retrieving information in memory, electronically scanning or extracting data from a physical document, a web browser’s back and forward button functionality, recording a customer’s order, shuffling and dealing a standard deck of cards, restricting public access to media by requiring a consumer to view an advertisement, presenting offers and gathering statistics, determining an estimated outcome and setting a price, arranging a hierarchy of groups, sorting information, eliminating less restrictive pricing information and determining the price, which is well understood, routine, and conventional. See MPEP 2106.05(d), subsection II and the Berkheimer Memo. Even when considered in combination, these additional elements represent insignificant extra-solution activity which does not provide an inventive concept.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over US PGPub 2015/0026213 to Hedge et al (hereafter Hedge) in view of US PGPub 2007/0283338 to Gupta et al (hereafter Gupta).
Referring to claim 1, Hedge discloses a computer implemented method for managing connections in a connection pool [shareable global cache], the computer implemented method comprising:
identifying, by the computer system, a group of potential connections from the connections in the connection pool that matches the connection request (see [0017] and [0019] – Searching a shareable cache of connections); and
selecting, by the computer system, a connection from the group of potential connections (see [0017]; [0019]; [0021]).
While Hedge discloses selecting connections, Hedge fails to explicitly disclose the limitations of creating, by a computer system, a modified call stack for a connection request in response to receiving the connection request, wherein the modified call stack comprises elements that call prepared statements that are part of an application logic for the connection request; wherein the group of potential connections is associated with a group of associated modified call stacks that call the prepared statements
determining, by the computer system, a group of weighted match scores for the group of associated modified call stacks from a comparison of the modified call stack with the group of associated modified call stacks; and selecting, by the computer system, a connection from the group of potential connections based on a highest weighted match score in the group of weighted match scores. Gupta teaches the comparison of stacks including the limitations of
creating, by a computer system, a modified call stack [normalized stack] for a connection request in response to receiving the connection request, wherein the modified call stack comprises elements that call prepared statements that are part of an application logic for the connection request (see [0028], lines 25-28; [0033]; [0047] – Before matching the call stacks, we need to remove uninformative function names and the recursive function names and the recursive function calls from the call stacks.);
identifying, by the computer system, a group of potential connections from the connections [answer] in the connection pool that matches the connection request, wherein the group of potential connections is associated with a group of associated modified call stacks [candidate stacks] that call the prepared statements (see [0033]);
determining, by the computer system, a group of weighted match scores for the group of associated modified call stacks from a comparison of the modified call stack with the group of associated modified call stacks (see [0034]; [0047] – The matching algorithm assigns a similarity score to each candidate stack with respect to the query stack. These matching scores are used to generate a ranked list of related stacks.); and
selecting, by the computer system, a connection from the group of potential connections [solution] based on a highest weighted match score in the group of weighted match scores (see [0034]; [0035] – We may use the best matching stacks or a fixed number of stacks as output of the matching scheme. It is noted that a fixed number of 1 is construed as meeting the claimed limitation.).
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the claimed invention to utilize the process of Gupta for comparing stacks to identify a solution in order to select the best connection from the shareable cache of Hedge. One would have been motivated to do so to reduce the cost and to increase the efficiency of identifying connections using previous answers (Gupta: see [0029]; [0032], lines 16-19; [0036]).
Referring to claim 2, the combination of Hedge and Gupta (hereafter Hedge/Gupta) teaches the computer implemented method of claim 1, wherein creating, by the computer system, the modified call stack for the connection request in response to receiving the connection request comprises:
retrieving, by the computer system, elements from a call stack in response to receiving the connection request (Gupta: see [0033]; [0046]; [0047]);
removing, by the computer system, each element that is known to not be a part of the application logic for the connection request (Gupta: see [0033]; [0042]); and
placing, by the computer system, remaining elements in the modified call stack (Gupta: see [0033] – Creating the normalized stack.).
Referring to claim 3, Hedge/Gupta teaches the computer implemented method of claim 1, wherein creating, by the computer system, the modified call stack for the connection request in response to receiving the connection request comprises:
retrieving, by the computer system, elements from a call stack in response to receiving the connection request (Gupta: see [0033]; [0042]; [0046]; [0047]); and
adding, by the computer system, elements that are known to be part of the application logic for the connection request to the modified call stack (Gupta: see [0033]).
Referring to claim 4, Hedge/Gupta teaches the computer implemented method of claim 1, wherein determining, by the computer system, the group of weighted match scores for the group of associated modified call stacks from the comparison of the modified call stack with the group of associated modified call stacks comprises:
comparing, by the computer system, the elements in the modified call stack with associated elements in an associated modified call stack (Gupta: see [0033] and [0034]); and
assigning, by the computer system, a weighted match score to the associated modified call stack based on matches of the elements in the modified call stack with the associated elements in the associated modified call stack (Gupta: see [0034]; [0047] – Stack matching gives higher weight to the top of the stack.).
Referring to claim 5, Hedge/Gupta teaches the computer implemented method of claim 4, wherein the weighted match score is higher for a first match between more recent elements in the modified call stack and the associated elements in the associated modified call stack as compared to a second match between older elements in the modified call stack and the associated elements in the associated modified call stack (Gupta: see [0047] – Stack matching gives higher weight to the top of the stack.).
Referring to claim 6, Hedge/Gupta teaches the computer implemented method of claim 1 further comprising: excluding, by the computer system, a potential connection from the group of potential connections in response to an associated modified call stack for the potential connection being excluded because of a matching ratio for a matching of prepared statements in a prepared statement pool for the potential connection that is less than a hits to misses threshold (Gupta: see [0034]).
Referring to claim 7, Hedge/Gupta teaches the computer implemented method of claim 1 further comprising: excluding, by the computer system, a potential connection from the group of potential connections in response to an associated modified call stack for the potential connection being excluded because of a matching ratio for a matching of prepared statements in a prepared statement pool for the potential connection that is equal to or greater than a hits to misses threshold and a number of times prepared statements are discarded from prepared statement pool is greater than a discard threshold (Gupta: see [0034]).
Referring to claim 8, Hedge/Gupta teaches the computer implemented method of claim 1 further comprising: increasing, by the computer system, a size of a prepared statement pool in response to a matching for a matching ratio of prepared statements in a prepared statement pool for a potential connection that is equal to or greater than a hits to misses threshold and a number of times prepared statements are discarded is less than a discard threshold (Gupta: see [0034]).
Referring to claim 9, Hedge discloses a computer system comprising:
a number of processor units (see [0080]), wherein the number of processor units executes program instructions to:
identify a group of potential connections from the connections in the connection pool that matches the connection request (see [0017] and [0019] – Searching a shareable cache of connections); and
select a connection from the group of potential connections (see [0017]; [0019]; [0021]).
While Hedge discloses selecting connections, Hedge fails to explicitly disclose the limitations of create a modified call stack for a connection request in response to receiving the connection request, wherein the modified call stack comprises elements that call prepared statements that are part of an application logic for the connection request; wherein the group of potential connections is associated with a group of associated modified call stacks that call the prepared statements
Determine a group of weighted match scores for the group of associated modified call stacks from a comparison of the modified call stack with the group of associated modified call stacks; and select a connection from the group of potential connections based on a highest weighted match score in the group of weighted match scores. Gupta teaches the comparison of stacks including the limitations of
create a modified call stack [normalized stack] for a connection request in response to receiving the connection request, wherein the modified call stack comprises elements that call prepared statements that are part of an application logic for the connection request (see [0028], lines 25-28; [0033]; [0047] – Before matching the call stacks, we need to remove uninformative function names and the recursive function names and the recursive function calls from the call stacks.);
identify a group of potential connections from the connections [answer] in the connection pool that matches the connection request, wherein the group of potential connections is associated with a group of associated modified call stacks [candidate stacks] that call the prepared statements (see [0033]);
determine a group of weighted match scores for the group of associated modified call stacks from a comparison of the modified call stack with the group of associated modified call stacks (see [0034]; [0047] – The matching algorithm assigns a similarity score to each candidate stack with respect to the query stack. These matching scores are used to generate a ranked list of related stacks.); and
select a connection from the group of potential connections [solution] based on a highest weighted match score in the group of weighted match scores (see [0034]; [0035] – We may use the best matching stacks or a fixed number of stacks as output of the matching scheme. It is noted that a fixed number of 1 is construed as meeting the claimed limitation.).
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the claimed invention to utilize the process of Gupta for comparing stacks to identify a solution in order to select the best connection from the shareable cache of Hedge. One would have been motivated to do so to reduce the cost and to increase the efficiency of identifying connections using previous answers (Gupta: see [0029]; [0032], lines 16-19; [0036]).
Referring to claim 10, Hedge/Gupta teaches the computer system of claim 9, wherein in creating the modified call stack for the connection request in response to receiving the connection request, the number of processor units executes the program instructions to:
retrieve elements from a call stack in response to receiving the connection request (Gupta: see [0033]; [0046]; [0047]);
remove each element that is known to not be a part of the application logic for the connection request (Gupta: see [0033]; [0042]); and
place remaining elements in the modified call stack (Gupta: see [0033] – Creating the normalized stack.).
Referring to claim 11, Hedge/Gupta teaches the computer system of claim 9, wherein in creating the modified call stack for the connection request in response to receiving the connection request, the number of processor units executes the program instructions to:
retrieve elements from a call stack in response to receiving the connection request (Gupta: see [0033]; [0042]; [0046]; [0047]); and
add elements that are known to be part of the application logic for the connection request to the modified call stack (Gupta: see [0033]).
Referring to claim 12, Hedge/Gupta teaches the computer system of claim 9, wherein in determining the group of weighted match scores for the group of associated modified call stacks from the comparison of the modified call stack with the group of associated modified call stacks, the number of processor units executes the program instructions to:
compare the elements in the modified call stack with associated elements in an associated modified call stack (Gupta: see [0033] and [0034]); and
assign a weighted match score to the associated modified call stack based on matches of the elements in the modified call stack with the associated elements in the associated modified call stack (Gupta: see [0034]; [0047] – Stack matching gives higher weight to the top of the stack.).
Referring to claim 13, Hedge/Gupta teaches the computer system of claim 12, wherein the weighted match score is higher for a first match between more recent elements in the modified call stack and the associated elements in the associated modified call stack as compared to a second match between older elements in the modified call stack and the associated elements in the associated modified call stack (Gupta: see [0047] – Stack matching gives higher weight to the top of the stack.).
Referring to claim 14, Hedge/Gupta teaches the computer system of claim 9, wherein the number of processor units executes the program instructions to: exclude a potential connection from the group of potential connections in response to an associated modified call stack for the potential connection being excluded because of a matching ratio for a matching of prepared statements in a prepared statement pool for the potential connection that is less than a hits to misses threshold (Gupta: see [0034]).
Referring to claim 15, Hedge/Gupta teaches the computer system of claim 9, wherein the number of processor units executes the program instructions to: exclude a potential connection from the group of potential connections in response to an associated modified call stack for the potential connection being excluded because of a matching ratio for a matching of prepared statements in a prepared statement pool for the potential connection that is equal to or greater than a hits to misses threshold and a number of times prepared statements are discarded from prepared statement pool is greater than a discard threshold (Gupta: see [0034]).
Referring to claim 16, Hedge/Gupta teaches the computer system of claim 9, wherein the number of processor units executes the program instructions to: increase a size of a prepared statement pool in response to a matching ratio for a matching of prepared statements in a prepared statement pool for a potential connection that is equal to or greater than a hits to misses threshold and a number of times prepared statements are discarded is less than a discard threshold (Gupta: see [0034]).
Referring to claim 17, Hedge discloses a computer program product for managing connections in a connection pool, the computer program product comprising a computer readable storage medium having program instructions embodied therewith (see [0018]), the program instructions executable by a computer system to cause the computer system to perform a method of:
identifying, by the computer system, a group of potential connections from the connections in the connection pool that matches the connection request (see [0017] and [0019] – Searching a shareable cache of connections); and
selecting, by the computer system, a connection from the group of potential connections (see [0017]; [0019]; [0021]).
While Hedge discloses selecting connections, Hedge fails to explicitly disclose the limitations of creating, by a computer system, a modified call stack for a connection request in response to receiving the connection request, wherein the modified call stack comprises elements that call prepared statements that are part of an application logic for the connection request; wherein the group of potential connections is associated with a group of associated modified call stacks that call the prepared statements
determining, by the computer system, a group of weighted match scores for the group of associated modified call stacks from a comparison of the modified call stack with the group of associated modified call stacks; and selecting, by the computer system, a connection from the group of potential connections based on a highest weighted match score in the group of weighted match scores. Gupta teaches the comparison of stacks including the limitations of
creating, by a computer system, a modified call stack [normalized stack] for a connection request in response to receiving the connection request, wherein the modified call stack comprises elements that call prepared statements that are part of an application logic for the connection request (see [0028], lines 25-28; [0033]; [0047] – Before matching the call stacks, we need to remove uninformative function names and the recursive function names and the recursive function calls from the call stacks.);
identifying, by the computer system, a group of potential connections from the connections [answer] in the connection pool that matches the connection request, wherein the group of potential connections is associated with a group of associated modified call stacks [candidate stacks] that call the prepared statements (see [0033]);
determining, by the computer system, a group of weighted match scores for the group of associated modified call stacks from a comparison of the modified call stack with the group of associated modified call stacks (see [0034]; [0047] – The matching algorithm assigns a similarity score to each candidate stack with respect to the query stack. These matching scores are used to generate a ranked list of related stacks.); and
selecting, by the computer system, a connection from the group of potential connections [solution] based on a highest weighted match score in the group of weighted match scores (see [0034]; [0035] – We may use the best matching stacks or a fixed number of stacks as output of the matching scheme. It is noted that a fixed number of 1 is construed as meeting the claimed limitation.).
It would have been obvious to one of ordinary skill in the art prior to the effective filing date of the claimed invention to utilize the process of Gupta for comparing stacks to identify a solution in order to select the best connection from the shareable cache of Hedge. One would have been motivated to do so to reduce the cost and to increase the efficiency of identifying connections using previous answers (Gupta: see [0029]; [0032], lines 16-19; [0036]).
Referring to claim 18, Hedge/Gupta teaches the computer program product of claim 17, wherein creating the modified call stack for the connection request in response to receiving the connection request comprises:
retrieving, by the computer system, elements from a call stack in response to receiving the connection request (Gupta: see [0033]; [0046]; [0047]);
removing, by the computer system, each element that is known to not be a part of the application logic for the connection request (Gupta: see [0033]; [0042]); and
placing, by the computer system, remaining elements in the modified call stack (Gupta: see [0033] – Creating the normalized stack.).
Referring to claim 19, Hedge/Gupta teaches the computer program product of claim 17 wherein creating the modified call stack for the connection request in response to receiving the connection request comprises:
retrieving, by the computer system, elements from a call stack in response to receiving the connection request (Gupta: see [0033]; [0042]; [0046]; [0047]); and
adding, by the computer system, elements that are known to be part of the application logic for the connection request to the modified call stack (Gupta: see [0033]).
Referring to claim 20, Hedge/Gupta teaches the computer program product of claim 17, wherein determining the group of weighted match scores for the group of associated modified call stacks from the comparison of the modified call stack with the group of associated modified call stacks comprises:
comparing, by the computer system, the elements in the modified call stack with associated elements in an associated modified call stack (Gupta: see [0033] and [0034]); and
assigning, by the computer system, a weighted match score to the associated modified call stack based on matches of the elements in the modified call stack with the associated elements in the associated modified call stack (Gupta: see [0034]; [0047] – Stack matching gives higher weight to the top of the stack.).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
The article “Automated Problem Determination Using Call-Stack Matching” to Brodie et al – Brodie teaches matching program call-stacks against a historical database of call stacks. Brodie gives a higher weight to functions occurring nearer the top of the stack.
US Patent 10,552,071 to Harava et al - Harava teaches modifying a first stack to create a second stack.
US PGPub 2011/0029959 to Tackett – Tackett discusses what call stacks are and how connections are made.
Contact Information
Any inquiry concerning this communication or earlier communications from the examiner should be directed to KIMBERLY LOVEL WILSON whose telephone number is (571)272-2750. The examiner can normally be reached 8-4:30.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Aleksandr Kerzhner can be reached at 571-270-1760. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/KIMBERLY L WILSON/Primary Examiner, Art Unit 2165