JAVA VIRTUAL MACHINE HAVING INTEGRATED TRANSACTION MANAGEMENT SYSTEM
A computing system includes at least one computing device is configured to execute computer program instructions to accomplish a fully transactional application, including managed objects. The managed objects are persisted in a shared memory of the computing system, such that a scope of the objects is global to the transactional application. Operations on the managed objects are restricted to being carried out with respect to a transaction being processed by the fully transactional application. For example, the managed objects may be JAVA objects configured to be distributed such that the managed JAVA objects are accessible from at least one JAVA Virtual Machine (JVM).
1 . A computing system, comprising:
at least one computing device configured to execute computer program instructions to accomplish a fully transactional application, including managed objects, wherein:
the managed objects are persisted in a shared memory of the computing system, such that a scope of the objects is global to the transactional application; and
operations on the managed objects are restricted to being carried out with respect to a transaction being processed by the fully transactional application.
2 . The computing system of claim 1 , wherein:
the managed objects are JAVA objects configured to be distributed such that the managed JAVA objects are accessible from at least one JAVA Virtual Machine (JVM).
3 . The computing system of claim 2 , wherein:
the managed distributed JAVA objects are configured to be accessible across all the instances of the JVM
4 . The computing system of claim 2 , wherein:
the managed Java objects are configured to be executed by a plurality of nodes of a domain; and
the managed Java objects are configured to be transactionally mirrored from a first node of the plurality of nodes to a backup node of the plurality of nodes.
5 . The computing system of claim 4 , wherein:
the managed Java objects have associated timers via which transaction deadlocks are detectable.
6 . The computing system of claim 5 , wherein:
the system is further configured to, for detected transaction deadlocks, roll back the detected deadlocked transactions.
7 . The computing system of claim 6 , wherein:
rolling back a detected deadlocked transaction includes returning objects, that were modified by the detected deadlocked transactions, to a state of those objects just prior to the detected deadlocked transaction.
8 . The computing system of claim 1 , wherein:
the system is further configured to, for an object being read and then set, promote a read lock operable during the read operation to a write lock operable during the write operation.
9 . The computing system of claim 1 , wherein:
the system is further configured to, for an object being read, to generate a write lock on that object without generating a read lock on that object.
10 . The computing system of claim 4 , wherein:
the system is further configured to manage a Java object of a distributed transactional application across multiple nodes by coordinating the operation of the nodes such that the Java object is consistently treated on the multiple nodes.
11 . The computing system of claim 9 , wherein:
the Java object being consistently treated on the multiple nodes includes treating the object, across nodes, in a transactional manner.
12 . The computing system of claim 1 , wherein:
the system is configured such that when multiple transactions attempt to promote a read lock on the same object, all of the multiple transactions but one will generate a promotion deadlock for that object; and
the promotion deadlock causes the transaction to rollback, dropping read locks on that object.
13 . The computing system of claim 12 , wherein:
the system is further configured to replay each rolled back transaction, causing the rolled back transactions to reacquire the locks on that object.
14 . A computer program product comprising at least one tangible computer readable medium having computer program instructions tangibly embodied thereon, the computer program instructions to configure a computing system comprising at least one computing device to:
accomplish a fully transactional application, including managed objects, including:
persisting the managed objects in a shared memory of the computing system, such that a scope of the objects is global to the transactional application; and
restricting operations on the managed objects to being carried out with respect to a transaction being processed by the fully transactional application.
15 . The computer program product of claim 14 , wherein:
the computer program instructions are such that the managed objects are JAVA objects configured to be distributed such that the managed JAVA objects are accessible from at least one JAVA Virtual Machine (JVM).
16 . The computer program product of claim 15 , wherein:
the computer program instructions are such that the managed distributed JAVA objects are configured to be accessible across all the instances of the JVM
17 . The computer program product of claim 15 , wherein:
the computer program instructions are such that the managed Java objects are configured to be executed by a plurality of nodes of a domain; and
the computer program instructions are such that the managed Java objects are configured to be transactionally mirrored from a first node of the plurality of nodes to a backup node of the plurality of nodes.
18 . The computer program product of claim 17 , wherein:
the computer program instructions are such that the managed Java objects have associated timers via which transaction deadlocks are detectable.
19 . The computer program product of claim 18 , wherein:
the computer program instructions are further to configure the computing system to, for detected transaction deadlocks, roll back the detected deadlocked transactions.
20 . The computer program product of claim 19 , wherein:
rolling back a detected deadlocked transaction includes returning objects, that were modified by the detected deadlocked transactions, to a state of those objects just prior to the detected deadlocked transaction.
21 . The computer program product of claim 14 , wherein:
the computer program instructions are further to configure the computing system to, for an object being read and then set, promote a read lock operable during the read operation to a write lock operable during the write operation.
22 . The computer program product of claim 14 , wherein:
the computer program instructions are further to configure the computing system to, for an object being read, to generate a write lock on that object without generating a read lock on that object.
23 . The computer program product of claim 17 , wherein:
the computer program instructions are further to configure the computing system to manage a Java object of a distributed transactional application across multiple nodes by coordinating the operation of the nodes such that the Java object is consistently treated on the multiple nodes.
24 . The computer program product of claim 19 , wherein:
the Java object being consistently treated on the multiple nodes includes treating the object, across nodes, in a transactional manner.
25 . The computer program product of claim 14 , wherein:
the computer program instructions are further to configure the computing system such that when multiple transactions attempt to promote a read lock on the same object, all of the multiple transactions but one will generate a promotion deadlock for that object; and
the promotion deadlock causes the transaction to rollback, dropping read locks on that object.
26 . The computer program product of claim 25 , wherein:
the computer program instructions are further to configure the computing system to replay each rolled back transaction, causing the rolled back transactions to reacquire the locks on that object.