US2002124083A1PendingUtilityA1

Method and apparatus for increasing the efficiency of transactions and connection sharing in an enterprise environment

43
Assignee: SUN MICROSYSTEMS INCPriority: Sep 6, 2000Filed: Mar 5, 2001Published: Sep 5, 2002
Est. expirySep 6, 2020(expired)· nominal 20-yr term from priority
H04L 67/34G06Q 10/06H04L 67/14H04L 69/329
43
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Methods and apparatus for improving the overall performance of a system which processes transactions and provides connections in an enterprise environment are disclosed. According to one aspect of the present invention, a method for processing a transaction in an enterprise environment includes receiving a request to start the transaction, storing information which indicates that the request to start the transaction was received, and accessing a first resource manager associated with the transaction. Typically, a container receives the request to start a transaction from a component such as an enterprise bean. Once the first resource is accessed, the transaction is initiated as a local transaction on the first resource manager, and, eventually, the transaction is completed. In one embodiment, completing the transaction includes using a local transaction mechanism of the first resource manager to complete the local transaction.

Claims

exact text as granted — not AI-modified
What is claimed is:  
     
         1 . A computer-implemented method for processing a transaction in an enterprise environment, the computer-implemented method comprising: 
 receiving a request to start the transaction;    storing information which indicates that the request to start the transaction was received;    accessing a first resource manager associated with the transaction;    initiating the transaction as a local transaction on the first resource manager; and    completing the transaction.    
     
     
         2 . A computer-implemented method as recited in  claim 1  wherein completing the transaction includes using a local transaction mechanism of the first resource manager.  
     
     
         3 . A computer-implemented method as recited in  claim 1  further including: 
 initiating a global transaction after initiating the transaction as the local transaction; and  
 completing both the local transaction and the global transaction substantially atomically using a last resource 2-phase commit optimization.  
 
     
     
         4 . A computer-implemented method as recited in  claim 3  wherein completing both the local transaction and the global transaction substantially atomically includes using the local transaction as a last resource in the last resource 2-phase commit optimization.  
     
     
         5 . A computer-implemented method as recited in  claim 3  further including lazily determining whether to initiate the global transaction.  
     
     
         6 . A computer-implemented method as recited in  claim 1  wherein the enterprise environment is a Java 2 Enterprise Environment, and receiving the request to start the transaction includes receiving the request from a component associated with the Java 2 Enterprise Environment.  
     
     
         7 . A computer-implemented method for implementing connections in an enterprise environment, the computer-implemented method comprising: 
 receiving a first request for a first connection between a component and a resource;    providing the first connection between the component and the resource;    receiving a second request for a connection associated with the component;    determining whether the first connection is sharable;    providing the first connection in response to the second request when it is determined that the first connection is sharable; and    providing a second connection in response to the second request when it is determined that the first connection is not sharable.    
     
     
         8 . A computer-implemented method as recited in  claim 7  further including: 
 receiving a subsequent request for a subsequent connection associated with the component;  
 determining whether the first connection is sharable; and  
 providing the first connection in response to the subsequent request when it is determined that the first connection is sharable.  
 
     
     
         9 . A computer-implemented method as recited in  claim 8  further including: 
 determining whether the second connection is sharable; and  
 providing the second connection in response to the subsequent request when it is determined that the second connection is sharable.  
 
     
     
         10 . A computer-implemented method as recited in  claim 9  further including: 
 providing a distinct connection in response to the subsequent request when it is determined that the first connection and the second connection are not sharable.  
 
     
     
         11 . A computer-implemented method as recited in  claim 9  further including: 
 providing a sharable connection in response to the subsequent request when it is determined that a sharable connection is available.  
 
     
     
         12 . A computer-implemented method as recited in  claim 8  further including: 
 providing a distinct connection in response to the subsequent request when it is determined that the first connection is not sharable.  
 
     
     
         13 . A computer-implemented method as recited in  claim 7  further including: 
 receiving a deployment hint from an application, the application being arranged to substantially communicate with the component, wherein the deployment hint is arranged to indicate whether at least one connection is sharable.  
 
     
     
         14 . A computer-implemented method as recited in  claim 13  wherein the deployment hint is further arranged to indicated whether the at least one connection is unsharable.  
     
     
         15 . A computer-implemented method as recited in  claim 13  wherein determining whether the first connection is sharable includes using the deployment hint.  
     
     
         16 . A computer-implemented method for processing a transaction in an enterprise environment, the computer-implemented method comprising: 
 receiving a request to start the transaction, the request being received from a component;    storing information which indicates that the request to start the transaction was received;    receiving a request for a first connection, the request being received from the component, the first connection being associated with a first resource;    providing a connection substantially between the first resource and the component;    initiating the transaction as a local transaction on the first connection; and    completing the transaction.    
     
     
         17 . A computer-implemented method as recited in  claim 16  further including: 
 a) receiving a request for a subsequent connection, the request for the subsequent connection being received from the component;  
 b) determining whether the subsequent connection is sharable;  
 c) determining whether the first connection is sharable;  
 d) determining whether the subsequent connection is associated with the first resource;  
 e) providing the first connection as the subsequent connection when it is determined that the subsequent connection is sharable, determined that the first connection is sharable, and determined that the subsequent connection is associated with the first resource; and  
 f) sharing the local transaction when it is determined that the subsequent connection is sharable, determined that the first connection is sharable, and determined that the subsequent connection is associated with the first resource.  
 
     
     
         18 . A computer-implemented method as recited in  claim 17  further including repeating steps a)-f) until it is determined that either the subsequent connection is not sharable or that the subsequent connection is not associated with the first resource.  
     
     
         19 . A computer-implemented as recited in  claim 17  wherein when it is determined that the subsequent connection is not shareable, the computer-implemented method further includes: 
 providing a first distinct connection as the subsequent connection; and  
 initiating a global transaction on the distinct connection.  
 
     
     
         20 . A computer-implemented method as recited in  claim 19  further including: 
 requesting a second subsequent connection;  
 determining whether the requested second subsequent connection is sharable;  
 determining whether the first distinct connection is sharable;  
 determining whether the requested second subsequent connection shares a common resource with the first distinct connection; and  
 providing the first distinct connection as the second subsequent connection when it is determined that the requested second subsequent connection is sharable, determined that the first distinct connection is sharable, and determined that the requested second subsequent connection shares the common resource with the first distinct connection.  
 
     
     
         21 . A computer-implemented method as recited in  claim 19  wherein when it is determined that the first distinct connection and the requested second subsequent connection are sharable, the method further includes determining whether the requested second connection and the first connection are sharable, and providing the first connection as the second subsequent connection when it is determined that the requested second connection and the first connection are sharable.  
     
     
         22 . A computer-implemented method as recited in  claim 21  further including: 
 providing a second distinct connection with a global scope as the second subsequent connection when it is determined that either the requested second subsequent connection is not sharable, determined that the first distinct connection is not sharable, or that the requested second subsequent connection does not share the common resource with the first distinct connection, or that the requested second subsequent connection and the first connection do not share a common resource.  
 
     
     
         23 . A computer-implemented method as recited in  claim 19  further including: 
 receiving a request from the component to complete the transaction;  
 completing the transaction using a last resource 2-phase commit optimization to globally finish both the global transaction and tile local transaction.  
 
     
     
         24 . A computer-implemented method as recited in  claim 17  wherein when it is determined that either the subsequent connection is not shareable, the first connection is not sharable, or that the subsequent connection is not associated with the first resource, the computer-implemented method further includes: 
 providing a first distinct connection as the subsequent connection; and  
 initiating a global transaction on the distinct connection.  
 
     
     
         25 . An enterprise computing environment comprising: 
 a first resource;    a component; and    a container, wherein the component is contained in the container, the container being arranged to receive a request from the component to start a transaction which includes the first resource, the container further being arranged to store information which indicates that the request to start the transaction was received, to access the first resource, to initiate the transaction as a local transaction on the first resource, and to complete the transaction.    
     
     
         26 . An enterprise computing environment according to  claim 25  wherein the container is arranged to complete the transaction using a local transaction mechanism of the first resource manager.  
     
     
         27 . An enterprise computing environment according to  claim 25  wherein the container is further arranged to initiate a global transaction after initiating the transaction as the local transaction, and to complete both the local transaction and the global transaction substantially atomically using a local resource 2-phase commit optimization.  
     
     
         28 . An enterprise computing environment according to  claim 25  wherein the enterprise computing environment is a Java 2 Enterprise Environment, and the component is an Enterprise Java Bean.  
     
     
         29 . An enterprise environment associated with a computing system, the enterprise environment comprising: 
 a resource;    a component; and    a container, the component being contained within the component, wherein the container is arranged to receive a first request for a first connection between the component and the resource, to provide the first connection between the component and the resource, to receive a second request for a connection associated with the component, to determine whether the first connection is sharable, to provide the first connection in response to the second request when it is determined that the first connection is sharable, and to provide a second connection in response to the second request when it is determined that the first connection is not sharable.    
     
     
         30 . An enterprise environment according to  claim 29  wherein the container is further arranged to receive a subsequent request for a subsequent connection associated with the component, to determine whether the first connection is sharable, and to provide the first connection in response to the subsequent request when it is determined that the first connection is sharable.  
     
     
         31 . An enterprise environment according to  claim 30  wherein the container is further arrange to determine whether the second connection is sharable, and to provide the second connection in response to the subsequent request when it is determined that the second connection is sharable.  
     
     
         32 . An enterprise computing environment comprising: 
 a first resource;    a component; and    a container, the container being arranged to receive a request from the component to start a transaction, to store information which indicates that the request to start the transaction was received, to receive a request from the component for a first connection to the a first resource, to providing a connection substantially between the first resource and the component, to initiate the transaction as a local transaction on the first connection, and to complete the transaction.    
     
     
         33 . An enterprise computing environment according to  claim 32  wherein the container is further arranged to receive a request from the component for a subsequent connection, to determine whether the subsequent connection is sharable, to determine whether the first connection is sharable, to determine whether the subsequent connection is associated with the first resource, to provide the first connection as the subsequent connection when it is determined that the subsequent connection is sharable, determined that the first connection is sharable, and determined that the subsequent connection is associated with the first resource, and to share the local transaction when it is determined that the subsequent connection is sharable, determined that the first connection is sharable, and determined that the subsequent connection is associated with the first resource.  
     
     
         34 . An enterprise environment according to  claim 33  wherein the container is arranged to provide a first distinct connection as the subsequent connection and to initiate a global transaction on the distinct connection when it is determined that either the subsequent connection is not shareable, the first connection is not sharable, or that the subsequent connection is not associated with the first resource.  
     
     
         35 . A computer program product for processing a transaction in an enterprise environment, the computer program product comprising: 
 computer code for receiving a request to start the transaction;    computer code for storing information which indicates that the request to start the transaction was received;    computer code for accessing a first resource manager associated with the transaction;    computer code for initiating the transaction as a local transaction on the first resource manager;    computer completing the transaction; and    a computer-readable medium that stores the computer codes.    
     
     
         36 . A computer program product as recited in  claim 35  wherein the computer code for completing the transaction includes computer code for using a local transaction mechanism of the first resource manager.  
     
     
         37 . A computer program product as recited in  claim 35  further including: 
 computer code for initiating a global transaction after initiating the transaction as the local transaction; and  
 computer code for completing both the local transaction and the global transaction substantially atomically using a local resource 2-phase commit optimization.  
 
     
     
         38 . A computer program product as recited in  claim 37  wherein computer code for completing both the local transaction and the global transaction substantially atomically includes computer code for using the local transaction as a last resource in the local resource 2-phase commit optimization.  
     
     
         39 . A computer program product as recited in  claim 37  further including computer code for lazily determining whether to initiate the global transaction.  
     
     
         40 . A computer program product as recited in  claim 35  wherein the computer-readable medium is one selected from the group consisting of a data signal embodied in a carrier wave, a hard disk, a floppy disk, a tape, an optical disk, a CD-ROM, and a computer memory.  
     
     
         41 . A computer program product for implementing connections in an enterprise environment, the computer program product comprising: 
 computer code for receiving a first request for a first connection between a component and a resource;    computer code for providing the first connection between the component and the resource;    computer code for receiving a second request for a connection associated with the component;    computer code for determining whether the first connection is sharable;    computer code for providing the first connection in response to the second request when it is determined that the first connection is sharable;    computer code for providing a second connection in response to the second request when it is determined that the first connection is not sharable; and    a computer-readable medium that stores the computer codes.    
     
     
         42 . A computer readable medium as recited in  claim 41  further including: 
 computer code for receiving a subsequent request for a subsequent connection associated with the component;  
 computer code for determining whether the first connection is sharable; and  
 computer code for providing the first connection in response to the subsequent request when it is determined that the first connection is sharable.  
 
     
     
         43 . A computer readable medium as recited in  claim 42  further including: 
 computer code for determining whether the second connection is sharable; and  
 computer code for providing the second connection in response to the subsequent request when it is determined that the second connection is sharable.  
 
     
     
         44 . A computer readable medium as recited in  claim 42  further including: 
 computer code for receiving a deployment hint from an application, the application being arranged to substantially communicate with the component, wherein the deployment hint is arranged to indicate whether at least one connection is sharable, and wherein the computer code for determining whether the first connection is sharable includes computer code for using the deployment hint.  
 
     
     
         45 . A computer program product as recited in  claim 41  wherein the computer-readable medium is one selected from the group consisting of a data signal embodied in a carrier wave, a hard disk, a floppy disk, a tape, an optical disk, a CD-ROM, and a computer memory.  
     
     
         46 . A computer program product for processing a transaction in an enterprise environment, the computer program product comprising: 
 computer code for receiving a request to start the transaction, the request being received from a component;    computer code for storing information which indicates that the request to start the transaction was received;    computer code for receiving a request for a first connection, the request being received from the component, the first connection being associated with a first resource;    computer code for providing a connection substantially between the first resource and the component;    computer code for initiating the transaction as a local transaction on the first connection;    computer code for completing the transaction; and    a computer-readable medium that stores the computer codes.    
     
     
         47 . A computer program product as recited in  claim 46  further including: 
 computer code for receiving a request for a subsequent connection, the request for the subsequent connection being received from the component;  
 computer code for determining whether the subsequent connection is sharable;  
 computer code for determining whether the first connection is sharable;  
 computer code for determining whether the subsequent connection is associated with the first resource;  
 computer code for providing the first connection as the subsequent connection when it is determined that the subsequent connection is sharable, determined that the first connection is sharable, and determined that the subsequent connection is associated with the first resource; and  
 computer code for sharing the local transaction when it is determined that the subsequent connection is sharable, determined that the first connection is sharable, and determined that the subsequent connection is associated with the first resource.  
 
     
     
         48 . A computer program product as recited in  claim 47  further including: 
 computer code for providing a first distinct connection as the subsequent connection when it is determined that the subsequent connection is not shareable; and  
 computer code for initiating a global transaction on the distinct connection when it is determined that the subsequent connection is not shareable.  
 
     
     
         49 . A computer program product as recited in  claim 48  further including: 
 computer code for requesting a second subsequent connection;  
 computer code for determining whether the requested second subsequent connection is sharable;  
 computer code for determining whether the first distinct connection is sharable;  
 computer code for determining whether the requested second subsequent connection shares a common resource with the first distinct connection; and  
 computer code for providing the first distinct connection as the second subsequent connection when it is determined that the requested second subsequent connection is sharable, determined that the first distinct connection is sharable, and determined that the requested second subsequent connection shares the common resource with the first distinct connection.  
 
     
     
         50 . A computer program product as recited in  claim 47  wherein the computer-readable medium is one selected from the group consisting of a data signal embodied in a carrier wave, a hard disk, a floppy disk, a tape, an optical disk, a CD-ROM, and a computer memory.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.