Methods and systems for debugging bytecode in an on-demand service environment
First Claim
1. A method in a host organization having at least a processor and a memory therein, wherein the method comprises:
- receiving a request at a web-server of the host organization, the request specifying one or more services to access a multi-tenant database of the host organization, the multi-tenant database operating within a production environment;
determining, via a trace flag analyzer, one or more trace preferences for the request, wherein the trace flag analyzer determines the one or more trace preferences are active for the request based on a client organization identifier (OrgID) associated with the request;
sending the request to a logging framework communicatively interfaced to the multi-tenant database, wherein the logging framework comprises an encapsulated library of services to access the multi-tenant database, the encapsulated library of services including the one or more services;
servicing the request via the logging framework while the multi-tenant database concurrently services requests each from a different respective one of a plurality of distinct customer organizations, wherein servicing of the request results in each individual service of the one or more services emitting respective execution data describing execution of each event by the individual service to service the request, wherein the servicing of the request generates the execution data without causing execution of the encapsulated library of services to be stopped or halted for any of the plurality of distinct customer organizations; and
tracing an execution of code by the one or more services to service the request, including tracing according to the OrgID associated with the request, the OrgID corresponding to one of the plurality of distinct customer organizations, wherein tracing the execution of code includes a listener receiving the execution data emitted by the one or more services and selectively sending only a portion of the execution data to a persistent storage based on the one or more trace preferences, wherein, after servicing of the request is completed, an execution debug simulation is performed with the portion of execution data sent to the persistent storage.
1 Assignment
0 Petitions
Accused Products
Abstract
Described herein are means for debugging byte code in an on-demand service environment system including a system for simulating execution debug in a multi-tenant database environment. Such means may include: receiving a request at a web-server of the system, determining one or more trace preferences are active for the request, sending the request to a logging framework communicatively interfaced to the multi-tenant database implementation, processing the request via the logging framework, and capturing at least a portion of the execution data emitted responsive to execution of the plurality of events for use in simulating execution debug of the events. Other related embodiments are additionally described.
129 Citations
20 Claims
-
1. A method in a host organization having at least a processor and a memory therein, wherein the method comprises:
-
receiving a request at a web-server of the host organization, the request specifying one or more services to access a multi-tenant database of the host organization, the multi-tenant database operating within a production environment; determining, via a trace flag analyzer, one or more trace preferences for the request, wherein the trace flag analyzer determines the one or more trace preferences are active for the request based on a client organization identifier (OrgID) associated with the request; sending the request to a logging framework communicatively interfaced to the multi-tenant database, wherein the logging framework comprises an encapsulated library of services to access the multi-tenant database, the encapsulated library of services including the one or more services; servicing the request via the logging framework while the multi-tenant database concurrently services requests each from a different respective one of a plurality of distinct customer organizations, wherein servicing of the request results in each individual service of the one or more services emitting respective execution data describing execution of each event by the individual service to service the request, wherein the servicing of the request generates the execution data without causing execution of the encapsulated library of services to be stopped or halted for any of the plurality of distinct customer organizations; and tracing an execution of code by the one or more services to service the request, including tracing according to the OrgID associated with the request, the OrgID corresponding to one of the plurality of distinct customer organizations, wherein tracing the execution of code includes a listener receiving the execution data emitted by the one or more services and selectively sending only a portion of the execution data to a persistent storage based on the one or more trace preferences, wherein, after servicing of the request is completed, an execution debug simulation is performed with the portion of execution data sent to the persistent storage. - View Dependent Claims (2, 3, 4, 5, 6, 7, 12, 13)
-
-
8. A non-transitory computer readable storage medium having instructions stored thereon that, when executed by a processor of a host organization, the instructions cause the host organization to perform operations comprising:
-
receiving a request at a web-server of the host organization, the request specifying one or more services to access a multi-tenant database of the host organization, the multi-tenant database operating within a production environment; determining, via a trace flag analyzer, one or more trace preferences for the request, wherein the trace flag analyzer determines the one or more trace preferences are active for the request based on a client organization identifier (OrgID) associated with the request; sending the request to a logging framework communicatively interfaced to the multi-tenant database, wherein the logging framework comprises an encapsulated library of services to access the multi-tenant database, the encapsulated library of services including the one or more services; servicing the request via the logging framework while the multi-tenant database concurrently services requests each from a different respective one of a plurality of distinct customer organizations, wherein servicing of the request results in each individual service of the one or more services emitting respective execution data describing execution of each event by the individual service to service the request, wherein the servicing of the request generates the execution data without causing execution of the encapsulated library of services to be stopped or halted for any of the plurality of distinct customer organizations; and tracing an execution of code by the one or more services to service the request, including tracing according to the OrgID associated with the request, the OrgID corresponding to one of the plurality of distinct customer organizations, wherein tracing the execution of code includes a listener receiving the execution data emitted by the one or more services and selectively sending only a portion of the execution data to a persistent storage based on the one or more trace preferences, wherein, after servicing of the request is completed, an execution debug simulation is performed with the portion of execution data sent to the persistent storage. - View Dependent Claims (9, 10, 11)
-
-
14. A system comprising:
-
a processor; a memory; a web-server to receive a request specifying one or more services to access a multi-tenant database operating within a production environment and servicing a plurality of distinct customer organizations'"'"' service requests concurrently; a trace flag analyzer to determine one or more trace preferences for the request, wherein the trace flag analyzer determines the one or more trace preferences are active for the request based on a client organization identifier (OrgID) associated with the request; a logging framework comprising an encapsulated library of services communicatively interfaced to the multi-tenant database to process the request, the encapsulated library of services including the one or more services to service the request while the multi-tenant database concurrently services requests each from a different respective one of a plurality of distinct customer organizations, wherein the one or more services to service the request results in each individual service of the one or more services emitting respective execution data describing execution of each event by the individual service to service the request, wherein the servicing of the request generates the execution data without causing execution of the encapsulated library of services to be stopped or halted for any of the plurality of distinct customer organizations; and a listener interfaced to the logging framework to trace an execution of code by the one or more services to service the request, including the listener to trace according to the OrgID associated with the request, the OrgID corresponding to one of the plurality of distinct customer organizations, wherein the listener to trace the execution of code includes the listener to receive the execution data emitted by the one or more services and to selectively send only a portion of the execution data to a persistent storage based on the one or more trace preferences, wherein, after the request is serviced, an execution debug simulation is performed with the portion of execution data sent to the persistent storage. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification