indexing description: "[ Provides an interface for a Transaction Manager. The Transaction Manager can be used to create a new transaction. There are 2 types of Transaction Managers: - >Local Transaction Manager - built-in, high-performance, single space transaction manager. Works only on a single Space instance. - Distributed Transaction Manager - Used for distributed transactions spanning multiple spaces. When working with only a single space instance, the Local %Transaction Manager should be used. When working with a clustered topology, and performing operations that span over several cluster members, the Distributed Transaction Manager should be used. Note, this can be avoided when working with the SBA model, where each cluster member works only with its local Space instance. Respectively, the methods to retrieve a Transaction Manager are: - EGS_SPACE_PROXY.get_local_transaction_manager - EGS_SPACE_PROXY.get_distributed_transaction_manager @see EGS_TRANSACTION, EGS_SPACE_PROXY, EGS_CONFIG, EGS_JINI_CONFIG ]" legal: "See notice at end of class." status: "See notice at end of class." date: "$Date$" revision: "$Revision$" class EGS_TRANSACTION_MANAGER inherit EGS_EXTERNAL_CPP_OBJECT EGS_SHARED_EXCEPTION_HANDLER create make_from_external feature create_transaction (lease_time: INTEGER_64): EGS_TRANSACTION is -- Creates a new Transaction. -- The type of the new Transaction is determined by the type of the Transaction Manager -- (Local vs. Distributed) -- -- @param lease_time - The time period in milliseconds until the Transaction is discarded. -- @return New Transaction local res: POINTER do res := cpp_create (exception_handler, object_ptr, lease_time) if res /= default_pointer then create Result.make_from_external (res) end end feature {NONE} -- externals cpp_delete (obj_ptr: POINTER) is external "C++ inline use " alias "delete ((OpenSpaces::ITransactionManagerPtr*)$obj_ptr)" end cpp_create (eh: EGS_EXCEPTION_HANDLER; obj_ptr: POINTER; lease_time: INTEGER_64): POINTER is require eh_not_void: eh /= Void obj_ptr_not_null: obj_ptr /= default_pointer external "C++ inline use " alias "[ try { return new OpenSpaces::TransactionPtr((*((OpenSpaces::ITransactionManagerPtr*)$obj_ptr))->create($lease_time)); } catch(OpenSpaces::XAPException& e) { EGS_HANDLE_XAP_EXCEPTION($eh, e); return 0; } ]" end indexing library: "egigs-cpp: Library for accessing the GigaSpaces platform, POCO library based implementation." copyright: "Copyright (c) 2008, Eiffel Software and others" license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" source: "[ Eiffel Software 356 Storke Road, Goleta, CA 93117 USA Telephone 805-685-1006, Fax 805-685-6869 Website http://www.eiffel.com Customer support http://support.eiffel.com ]" end