IP Library › Granted Patent US 10,929,126
Granted Patent B2
US 10,929,126 · App. 16/433,016 · Granted Feb 23, 2021

Intercepting and replaying interactions with transactional and database environments

Inventors: Jeffrey Douglas (Raleigh, NC); Timothy W Wilson (Chapel Hill, NC)
Assignee: International Business Machines Corporation
G06F8/76G06F8/427G06F11/34G06F16/1865
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,929,126
App. No.
16/433,016
Granted
Feb 23, 2021
Kind
B2
Abstract

Methods, systems and computer program products for replaying arguments of a module in real-time is provided. Input includes indicator of the original execution environment, a location of load libraries having a plurality of callback modules, and a location of previously recorded data. A mapping table that corresponds to the execution environment is loaded into system memory. Batch execution of an application starts. Environmental calls to the application are intercepted. The transaction id and arguments are identified and previously recorded data that corresponds to the transaction id is loaded into system memory. The arguments to the call are populated with data from the corresponding record in the recorded data. Based on there being a corresponding callback module for the transaction, invoking the callback module and augmenting or replacing the arguments to the call with data in the callback module.

Claims (83)

1. A method for replaying arguments of a module in real-time, comprising:

locating and loading input into system memory, the input comprising, tags indicating an original execution environment, mapping tables corresponding to the original execution environment, a plurality of callback modules, and recorded data;

beginning a batch execution of an application, and in response to intercepting an environmental call issued by the application;

for each environmental call in the transaction:

identifying the transaction by transaction id, type of call and arguments to the call;

loading the recorded data that corresponds to the transaction id into system memory;

populating the arguments to the call with data from the corresponding record in the recorded data; and

reporting the populated arguments to the call; and

generating one or more callback modules;

identifying the original execution environment;

reading tags in the input parameter file to determine an environment and format of the recorded data;

parsing the recorded data for each transaction id to determine a transaction type;

matching the transaction type to a layout in the mapping table; and

writing the layout to a file, accompanied by programmatic formalities such that the skeleton can be compiled by a programming language.

2. The method of claim 1 , further comprising:

based on there being a corresponding callback module defined for the transaction, invoking the callback module with the populated arguments to the call;

executing logic in the callback module to modify or augment the populated arguments to the call with data included or calculated in the callback module; and

reporting the argument data resulting from the executing of the callback module.

3. The method of claim 1 , further comprising:

identifying the transaction by transaction id, and type of call;

loading the mapping table corresponding to the original execution environment;

locating the call type from the environmental call in the mapping table;

matching a layout of the call type in the mapping table to the recorded data; and

populating the arguments to the call with the matched data.

4. The method of claim 1 , wherein the replayer has read-write access to the system memory where the application load modules and the callback modules are loaded.

5. The method of claim 1 , wherein the execution of the replayer is self-contained.

6. The method of claim 1 , further comprising invoking the callback module that includes modified arguments and data for the intercepted environmental call.

7. A computer program product for replaying arguments of a module in real-time, comprising a computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code when executed on a computer cause the computer to:

locate and load input into system memory, the input comprising, tags indicating an original execution environment, mapping tables corresponding to the original execution environment, a plurality of callback modules, and recorded data;

begin a batch execution of an application, and in response to intercepting an environmental call issued by the application;

for each environmental call in the transaction:

identify the transaction by transaction id, type of call and arguments to the call;

load the recorded data that corresponds to the transaction id into system memory;

populate the arguments to the call with data from the corresponding record in the recorded data; and

report the populated arguments to the call; and

generate one or more callback modules;

identify the original execution environment;

read tags in the input parameter file to determine an environment and format of the recorded data;

parse the recorded data for each transaction id to determine a transaction type;

match the transaction type to a layout in the mapping table; and

write the layout to a file, accompanied by programmatic formalities such that the skeleton can be compiled by a programming language.

8. The computer program product of claim 7 , further comprising:

based on there being a corresponding callback module defined for the transaction, invoke the callback module with the populated arguments to the call;

execute logic in the callback module to modify or augment the populated arguments to the call with data included or calculated in the callback module; and

report the argument data resulting from the executing of the callback module.

9. The computer program product of claim 7 , further comprising:

identify the transaction by transaction id, and type of call;

load the mapping table corresponding to the original execution environment;

locate the call type from the environmental call in the mapping table;

match a layout of the call type in the mapping table to the recorded data; and

populate the arguments to the call with the matched data.

10. The computer program product of claim 7 , wherein the replayer has read-write access to the system memory where the application load modules and the callback modules are loaded.

11. The computer program product of claim 7 , wherein the execution of the replayer is self-contained.

12. The computer program product of claim 7 , further comprising invoking the callback module that includes modified arguments and data for the intercepted environmental call.

13. The computer program product of claim 7 , further comprising invoking the callback module that includes modified arguments and data for the intercepted environmental call.

14. A computer system for replaying arguments of a module in real-time, the system comprising:

one or more processors;

a memory coupled to at least one of the processors;

a set of computer program instructions stored in the memory and executed by at least one of the processors in order to perform actions of:

locating and loading input into system memory, the input comprising, tags indicating an original execution environment, mapping tables corresponding to the original execution environment, a plurality of callback modules, and recorded data;

beginning a batch execution of an application, and in response to intercepting an environmental call issued by the application;

for each environmental call in the transaction:

identifying the transaction by transaction id, type of call and arguments to the call;

loading the recorded data that corresponds to the transaction id into system memory;

populating the arguments to the call with data from the corresponding record in the recorded data; and

reporting the populated arguments to the call; and

generating one or more callback modules, wherein the generating comprises:

identifying the original execution environment;

reading tags in the input parameter file to determine an environment and format of the recorded data;

parsing the recorded data for each transaction id to determine a transaction type;

matching the transaction type to a layout in an in-memory mapping table; and

writing the layout to a file, accompanied by programmatic formalities such that the skeleton can be compiled by a programming language.

15. The computer system of claim 14 , further comprising:

based on there being a corresponding callback module defined for the transaction, invoking the callback module with the populated arguments to the call;

executing logic in the callback module to modify or augment the populated arguments to the call with data included or calculated in the callback module; and

reporting the argument data resulting from the executing of the callback module.

16. The computer system of claim 14 , further comprising:

identifying the transaction by transaction id, and type of call;

loading the mapping table corresponding to the original execution environment;

locating the call type from the environmental call in the mapping table;

matching a layout of the call type in the mapping table to the recorded data; and

populating the arguments to the call with the matched data.

17. The computer system of claim 14 , wherein a replayer has read-write access to the system memory where the application load modules and the callback modules are loaded; the execution of the replayer is self-contained; and the replayer executes the replaying without modifying or relinking the plurality of target modules, and without debugging or tracing tools.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2019
From: DOUGLAS, JEFFREY; WILSON, TIMOTHY W
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049389/0402 →
Continuity (1)
Related Publication 20200387370A1 · Dec 10, 2020